Irfan Ahmad retweetledi
Irfan Ahmad
5.3K posts

Irfan Ahmad
@virtualirfan
Loves new code smell. Startup Investor/Founder/Advisor. Equity Partner DCVC. Founder CloudPhysics. VMware DRS lead. Open to new startup pitches.
California Katılım Haziran 2010
727 Takip Edilen1.7K Takipçiler
Irfan Ahmad retweetledi

It’s not #LearnToCode
It’s #LearnToThink
Code or coal is just the artifact. Good miners and good coders alike are “good” because of how they think about the tasks, resources, risks, and outcomes.
English
Irfan Ahmad retweetledi

It's good to see they are investing in an AI humanoid but I think he prefers to be called Mark.
Shay Boloor@StockSavvyShay
$META TO MAKE A MAJOR AI-POWERED HUMANOID ROBOT INVESTMENT 👀
English

Side note: I believe the age old problem of generating a dynamic UI form for some back-end data type is really about schema generation in disguise. I've solved it recently with that approach, and it's funny how well it works.
The classic solutions fall apart because they end up hacking in ad-hoc dynamicism which is really modeling dependent types in the value tree.
English

The optics in the new ZIO Schema I am working on are "reflective optics" (a term I just made up, but it fits).
This means that, in addition to letting you do get- & set-like things (like legacy optics), you can ALSO access the reified structure of the underlying types.
This lets you use the optics in DSLs, like SQL, DynamoDB, or Cassandra. e.g.:
selectFrom("foo").where(Person.age > 20)
Interestingly, however, reflective optics beat legacy optics at their own game in one important way: killer error messages.
Optic composition invariably introduces optionality in "getting". With almost all legacy optics, you learn that SOME value had an unexpected constructor, but you don't get any information on the error, leaving you to puzzle over why some update operation didn't work.
With reflective optics, it should be possible to support brilliant error messages, along the lines of:
"In Order.items[*].billingAddress.country, expected field billingAddress to be Some but found None."
Boom! You know exactly how your expectation differed from reality when doing some targeted operation on a deeply nested structure.
As a bonus, reflective optics are also eminently usable as "keys" in maps, because the data they contain is sufficient for disambiguation. This means another place where they will shine is in applications involving data-generic metadata.
Currently, if you have a deeply nested structure like Order, there's no good type-safe, expression-oriented way to attach metadata to particular parts of its substructure--not without modifying it and adding slots for the metadata.
For example, you might want to attach documentation, validation rules, or format hints.
With reflective optics, you can now attach arbitrary metadata to arbitrary parts of a substructure.
For example:
val validatedCodec =
orderCodec.validate((items)(billingAddress)(country))(CountryCodes.contains(_))
This is going to open up new applications for optics, as well as greatly simplify some tasks that were possible before, but only at great cost to ergonomics (using fixed point data and recursion schemes, zippers, etc.).
In short, reflective optics aren't your grandpa's optics--they're way better! 😅
English

@debasishg Looking for dynamic^ user level* typing. Use case: type safe, completely dynamic computation graph with V,E type safety
^ ie not compile time specification and enforcement of types.
* ie not in language itself; not in a DSL facility provided by a language.
#Scala
English

@debasishg I took one of my undergrad algo courses with Prof J Ian Munro!
English
Irfan Ahmad retweetledi
Irfan Ahmad retweetledi
Irfan Ahmad retweetledi

After years of working when nobody is watching, it's so nice to see the results pay off.
I am putting a free learning cohort together for 2024 so this is just the start... 👇👇👇
If you're thinking of, are are currently podcasting, this is for you.
Startups, enterprises, influencers, and independent voices all have one thing in common: we want to share our message.
The problem is most podcasts fail to engage listeners, and your story goes unnoticed and unremembered. We have mastered the art of engagement, conversation, and storytelling so your business gets noticed, and customers find you.
I'm unpacking it all for you on March 6th at 1PM ET and this is a LIVE Q&A so you are all welcome to come in and ask questions. The show keeps going until the questions are done!
p.s. it's free because I truly believe in sharing success any way possible. There should not be a barrier to learn.
gtmdelta.com/webinars
Thank you to amazing folks like @virtualirfan @GTMDeltaTeam @robertoblake @NickNimmin @TheNJDevOpsGuy @_JonMyer @SFoskett @petermckinnon @thatnateblack @Ned1313 @ecbanks @Drew_CM @etherealmind @vClouder @BobWambach1 @ericsenunas @zehicle @SwapBhartiya and the whole team at @kitcasterpod and so many others for being supportive through this journey.
English
Irfan Ahmad retweetledi
Irfan Ahmad retweetledi

BTW I want to reshape work for freelance content engineers to give the ability to work anywhere and as much or as little as you want. If you want to freelance with me and my team come check us out: gtmdelta.com/join
English

We are seeking Legendary Technical Writers, to research and write content for blog posts, articles, and whitepapers. If this is your calling, have a chat with us and join the @GTMDeltaTeam community
English

Compelling freelance Content Engineer job opportunities for world-class technical minds who write!
Have a look at us at gtmdelta.com/join if you are interested in working around #AKS #PublicCloud #DisasterRecovery #Database #AI #Monitoring #CAD #CAM & more..
English

@RPCraig You and your team is up at the top of that list honestly.
English
Irfan Ahmad retweetledi

I’m really excited to learn about @GTMDeltaTeam, a new technical marketing content company from my friends @DiscoPosse and @virtualirfan! gtmdelta.com
English




