Saw this on Hacker News. The discussion on it is also worth reading.
Entrepreneurship is like one of those carnival games where you throw darts or something.
Middle class kids can afford one throw. Most miss. A few hit the target and get a small prize. A very few hit the center bullseye and get a bigger prize. Rags to riches! The American Dream lives on.
Rich kids can afford many throws. If they want to, they can try over and over and over again until they hit something and feel good about themselves. Some keep going until they hit the center bullseye, then they give speeches or write blog posts about “meritocracy” and the salutary effects of hard work.
Poor kids aren’t visiting the carnival. They’re the ones working it.
Life isn’t fair. But then, each one of us have our own unfair advantage. We just don’t compare our unfair advantage.
Doug Slater talking about input risk when using LLM to code.
An LLM does not challenge a prompt which is leading or whose assumptions are flawed or context is incomplete. Example: An engineer prompts, “Provide a thread-safe list implementation in C#” and receives 200 lines of flawless, correct code. It’s still the wrong answer, because the question should have been, “How can I make this code thread-safe?” and whose answer is “Use System.Collections.Concurrent” and 1 line of code. The LLM is not able to recognize an instance of the XY problem because it was not asked to.
The post covers a lot more ground on the risks involved with LLM generated code. Another thing that caught my attention was:
LLMs accelerates incompetence.
Simon Willison talks about the other side when he says:
LLMs amplify existing expertise
The conclusion is: If you are smart, LLMs can make you—or at least make you sound—smarter. If you are dumb, LLMs will make you dumber, without you ever knowing.
Fred Benenson talking about how you can get addicted to vibe coding. Yes, vibe coding.
I’ve been using AI coding assistants like Claude Code for a while now, and I’m here to say (with all due respect to people who have substance abuse issues), I may be an addict. And boy is this is an expensive habit.
Its “almost there” quality — the feeling we’re just one prompt away from the perfect solution — is what makes it so addicting. Vibe coding operates on the principle of variable-ratio reinforcement, a powerful form of operant conditioning where rewards come unpredictably. Unlike fixed rewards, this intermittent success pattern (“the code works! it’s brilliant! it just broke! wtf!”), triggers stronger dopamine responses in our brain’s reward pathways, similar to gambling behaviors.
What makes this especially effective with AI is the minimal effort required for potentially significant rewards — creating what neuroscientists call an “effort discounting” advantage. Combined with our innate completion bias — the drive to finish tasks we’ve started — this creates a compelling psychological loop that keeps us prompting.
However, the post is less about addiction and more about the perverse incentives that AI companies have for verbose code generation.
The AI generates verbose, procedural code for a given task
This code becomes part of the context when you ask for further changes or additions (this is key)
The AI now has to read (and you pay for) this verbose code in every subsequent interaction
More tokens processed = more revenue for the company behind the AI
The LLM developers have no incentive to “fix” the verbose code problem because doing so will meaningfully impact their bottom line
Don’t miss to read the chuckle inducing postscript.
Dustin Curtis talking about how AI is impacting his—and possibly others—thinking.
I thought I was using AI in an incredibly positive and healthy way, as a bicycle for my mind and a way to vastly increase my thinking capacity. But LLMs are insidious–using them to explore ideas feels like work, but it’s not real work. Developing a prompt is like scrolling Netflix, and reading the output is like watching a TV show. Intellectual rigor comes from the journey: the dead ends, the uncertainty, and the internal debate. Skip that, and you might still get the insight–but you’ll have lost the infrastructure for meaningful understanding. Learning by reading LLM output is cheap. Real exercise for your mind comes from building the output yourself.
Extracting text information from PDFs is a significantly bigger challenge than it might seem. The crux of the problem is that the file format isn’t a text format at all, but a graphical format.
It doesn’t have text in the way you might think of it, but more of a mapping of glyphs to coordinates on “paper”. These glyphs may be rotated, overlap, and appear out of order, with very little semantic information attached to them.
You should probably be in awe at the fact that you can open a PDF file in your favorite viewer (or browser), hit ctrl+f, and search for text.
Today I learned, text in PDF is just mapping of glyphs to coordinates on “paper”.
It is easy to tell how happy someone is to see another person enter a conversation. There is happy, and there is polite, and they look very different. Polite has a mechanical quality to it, like carrying out all the right movements to replace batteries in a remote. Happy has a boundless quality: unpredictable, even when it is at a low level. There is an openness, allowing another person to surprise and delight them. The easiest way to say this: there is no script for happy. It tumbles out of the body. Polite comes from the mind –it is restrained and calculated – measured lines and pauses. There are reinforcing loops in a polite person and a happy person. A person closed to the possibility of delight finds less of it. A person open to it finds more.
Jason Cohen talking about how LLMs, in their knowledge, are wider but shallower than humans.
It’s interesting how LLMs are wider than any human, but shallower than the best humans. (At many things; not, e.g. chess)
It can’t do customer service as well as the best humans, but it can do it in 100 languages, which no human can.
It can’t program as well as the best humans, but it can program in 100 languages and 1000 libraries, which no human can.
It’s not as good at math or law or medicine or research or history as the best humans in each of those fields, but it is better than the median human in those fields.
A student of mine named Eric once joked that Visual Basic 6 was “the un-killable cockroach” in the Windows ecosystem. That analogy goes deeper than you might think. Cockroaches are successful because they’re simple. They do what they need to do for their ecological niche and no more. Visual Basic 6 did what its creators intended for its market niche: enable very rapid development of limited programs by programmers of lesser experience. It was never meant for heavy-duty coders developing complex applications.
Visual Basic 6 accomplished its goals by abstracting away the complexity of the underlying Windows OS. Simple things were very simple to accomplish. On the other hand, complex things, such as dealing with threads, were impossible. My rule of thumb for Visual Basic 6 was: if I couldn’t do it within 10 minutes, I couldn’t do it at all.
…
Almost all Visual Basic 6 programmers were content with what Visual Basic 6 did. They were happy to be bus drivers: to leave the office at 5 p.m. (or 4:30 p.m. on a really nice day) instead of working until midnight; to play with their families on weekends instead of trudging back to the office; to sleep with their spouses instead of pulling another coding all-nighter and eating cold pizza for breakfast. They didn’t lament the lack of operator overloading or polymorphism in Visual Basic 6, so they didn’t say much.
The voices that Microsoft heard, however, came from the 3 percent of Visual Basic 6 bus drivers who actively wished to become fighter pilots. These guys took the time to attend conferences, to post questions on CompuServe forums, to respond to articles. Not content to merely fantasize about shooting a Sidewinder missile up the tailpipe of the car that had just cut them off in traffic, they demanded that Microsoft install afterburners on their busses, along with missiles, countermeasures and a head-up display. And Microsoft did.
But giving Visual Basic .NET to the Visual Basic 6 community was like raising a coyote as a domestic dog, then releasing him into the woods, shouting, “Hunt for your dinner as God intended, you magnificent, wild creature!” Most of them said, “Heck with that. I’m staying on my nice warm cushion by the fire while you open me a can of Alpo.” And Visual Basic 6 kept right on going.
Ryan Lucas then goes on to argue that because Microsoft made it very difficult—if not impossible—to move from Visual Basic 6 to VB.NET, it ended up costing Microsoft the battle for web.
Microsoft had broken the trust of its army of Visual Basic developers. Faced with the options of either starting over from scratch in VB.NET or moving to new web-native languages like JavaScript and PHP, most developers chose the latter—a brutal unforced error by Microsoft. (It’s easy to forget the pole position that Microsoft had on the web in 2001: Internet Explorer had 96% market share, and Visual Basic apps could even be embedded into web pages via ActiveX controls.)
Back in 2019, at my previous workplace, we had a bit of a tradition. Every month or so, stalls would pop up, selling everything from clothes to toys and other knick-knacks. During one of those fairs, I connected with a mutual fund advisor and struck up a conversation about investing. He recommended three funds, one of which was the Axis Bluechip Fund. Since I was investing through an advisor, it would be a regular plan.
Now, I was fully aware of the higher expense ratio that comes with a regular plan. But given that my earlier picks—HSBC ELSS Tax Saver Fund (erstwhile L&T Tax Advantage Fund) and Motilal Oswal Long Term Equity Fund—hadn’t quite met my expectations, I figured it was worth getting some professional help this time. As you read along and see the performance of Axis Bluechip Fund, you will realise that getting professional help, hasn’t helped much. And this is not to put shade on my mutual fund advisor. It is just that some events—as you will read later—are really beyond anyone’s control.
I have stayed with Axis Bluechip Fund for five years starting FY 2019-20. In Sep’22, I decided to increase my SIP. However, this time, I opted for the direct plan to reduce the expense ratio. As a result, this analysis includes investments made through both the regular and direct plans. You can see the uptick in my investments since FY 2022-23 in Figure 1.
I might be providing a solution which would have been solved umpteen times. But this solution is something I use and was born out of my own unique requirements.
Someone who is buying and not selling. Yes, no selling. In fact, I only track my buy transactions in this sheet. If you are a trader then this sheet is useless for you. You can skip reading the rest of the post. But if you are a long term investor—like me—then give this sheet a try.
Someone who wants to see how their equity and mutual fund investments are performing vis-à-vis Nifty indices or competing mutual funds.
Someone who wants to see how their equity investments are performing taking into consideration demergers that will happen along the way of their investment journey. Remember this is for long term investors.
Quick disclaimer. I have tested it only for Indian equities and mutual funds. Although I have kept it generic, it should work for other assets, but no guarantees.
Now coming to the Google Sheet itself.
It is divided into three tabs.
Summary: This is where you will see details—Profit, XIRR, performance vis-à-vis Nifty index or mutual fund—of all your investments based on the data that you have entered in the Transactions tab.
Transactions: This is where you will enter your transactions. Remember, only buy transactions. No sell transactions.
Index Master: This is where you will list all the indices that you want to compare your investments against. This will end up showing in the Summary tab (column F). You will be updating this tab once in a while.
How to use this sheet?
It’s a two-step process.
First, go to the Transactions tab (Figure 2) and enter the data in columns A to E. Columns F to J are all formulas and should not be modified.
Figure 2
In column B you will be entering the code of your equity or mutual fund that appears when you search for it on Google Finance. Some examples are given below.
For symbol, there is a space that Google adds after the colon. Remove that space before adding it to the column B, else the formula will give error.
At times companies demerge some of their entities. Like Greenply did with Greenpanel and Grasim did with Aditya Birla Capital. To track these demerged entities, add the transaction of demerged entity with zero cost and the appropriate symbol name. You can see this in action in row 4 (Figure 2) where I added Greenpanel transaction with zero cost (column D) and Greenpanel symbol (column B). For the name (column A), keep it the same as Greenply since we received this share due to our investment in Greenply.
In the second step, you come to the Summary sheet. Here you add a new row and in the column A you mention the name of company of mutual fund matching the name you entered in the column A of Transactions tab. If the formula for the other columns doesn’t get auto updated, drag the formulas from the above row and select the Comparison Index (column F) to appropriate index. You can see this in action in Figure 1.
A couple of additional notes.
If you want additional indices or mutual funds to be compared you can add them in the Index Master sheet (Figure 5). The column B is the symbol name that appears on Google Finance. Just like we did in Figure 3 and 4. The column A is the name and you can enter the text that you want.
Figure 5
The mutual fund data that Google fetches is a bit stale. Maybe by 2-3 business days. Keep that in mind if you are looking at this sheet and making a sell decision.
You must be logged in to post a comment.