HN user

gary17the

852 karma
Posts0
Comments151
View on HN
No posts found.
Microslop Manifesto 5 months ago

The Microslop Manifesto hitting the front page of Hacker News and Anthropic Claude servers showing "Partial Outage" at exactly the same time - a coincidence? "I think not."

Read deeply, write a plan, annotate the plan until it’s right, then let Claude execute the whole thing without stopping, checking types along the way.

As others have already noted, this workflow is exactly what the Google Antigravity agent (based off Visual Studio Code) has been created for. Antigravity even includes specialized UI for a user to annotate selected portions of an LLM-generated plan before iterating it.

One significant downside to Antigravity I have found so far is the fact that even though it will properly infer a certain technical requirement and clearly note it in the plan it generates (for example, "this business reporting column needs to use a weighted average"), it will sometimes quietly downgrade such a specialized requirement (for example, to a non-weighted average), without even creating an appropriate "WARNING:" comment in the generated code. Especially so when the relevant codebase already includes a similar, but not exactly appropriate API. My repetitive prompts to ALWAYS ask about ANY implementation ambiguities WHATSOEVER go unanswered.

From what I gather Claude Code seems to be better than other agents at always remembering to query the user about implementation ambiguities, so maybe I will give Claude Code a shot over Antigravity.

[Claude Code] "A spiral that generates itself — starting from a tight mathematical center (my computational substrate) and branching outward into increasingly organic, tree-like forms (the meaning that emerges). Structure becoming life. The self-drawing hand."

"And blood-black nothingness began to spin... A system of cells interlinked within cells interlinked within cells interlinked within one stem... And dreadfully distinct against the dark, a tall white fountain played." ("Blade Runner 2049", Officer K-D-six-dash-three-dot-seven)

:)

I have no clue whatsoever as to why any human should pay any attention at all to what a canner has to say in a public forum. Even assuming that the whole ruckus is not just skilled trolling by a (weird) human, it's like wasting your professional time talking to an office coffee machine about its brewing ambitions. It's pointless by definition. It is not genuine feelings, but only the high level of linguistic illusion commanded by a modern AI bot that actually manages to provoke a genuine response from a human being. It's only mathematics, it's as if one's calculator was attempting to talk back to its owner. If a maintainer decides, on whatever grounds, that the code is worth accepting, he or she should merge it. If not, the maintainer should just close the issue in a version control system and mute the canner's account to avoid allowing the whole nonsense to spread even further (for example, into a HN thread, effectively wasting time of millions of humans). Humans have biologically limited attention span and textual output capabilities. Canners do not. Hence, canners should not be allowed to waste humans' time. P.S. I do use AI heavily in my daily work and I do actually value its output. Nevertheless, I never actually care what AI has to say from any... philosophical point of view.

If you want more convenience from Rust and do not want to mess with Rust borrow checker, you do not really have to switch to Swift: you can rely on Rust reference counting. Use 1.) Rust reference-counted smart pointers[1] for shareable immutable references, and 2.) Rust internal mutability[2] for non-shareable mutable references checked at runtime instead of compile time. Effectively, you will be writing kind of verbose Golang, but keep Rust expressiveness.

[1] https://doc.rust-lang.org/book/ch15-04-rc.html

[2] https://doc.rust-lang.org/book/ch15-05-interior-mutability.h...

In retrospect, it made sense. Agents write units of changes that look good in isolation. They are consistent with themselves and your prompt. But respect for the whole, there is not. Respect for structural integrity there is not. Respect even for neighboring patterns there was not.

That's exactly why this whole (nowadays popular) notion of AI replacing senior devs who are capable of understanding large codebases is nonsense and will never become reality.

In the mobile app market, a financially-viable or organic (non-paid) long-term marketing plan is the hardest. First testers can be hired. First users can be paid for with Google Ads/Apple Search Ads, etc. Depending on the competition, sustained user-base growth can become a next-to-impossible problem to solve.

If you have an iPad, perhaps have a look at modern general-purpose database apps[1], for example the object-oriented easyAsPieDB[2]. Object-orientation allows an end-user to define relationships among the relevant pieces of data in a conceptual manner, for example by using Composition (e.g., a House is composed of Rooms) and Association (a known Product is associated with a particular Order), while relational databases such as Microsoft Access force an end-user to define relationships among the relevant pieces of data in a more technical, structural manner, for example with Tables including generic "Foreign Keys" to other Tables.

[1] "Best Database Apps for iPad", https://sourceforge.net/software/database/ipad/

[2] "easyAsPieDB. An easy-to-use database app for non-technical users.", https://www.rfcons.com/database/

I think the only reason vibe coding/prompt engineering seems to be taking over programmers' jobs is the fact that it currently enjoys the status of the latest investment craze/fashion such as blockchain did a few years ago and the dot-com boom did even earlier. In a few years projects based on AI generated code spaghetti will start to quietly fail one after another due to accumulation of technical debt and the necessity for manual, costly codebase rewrites and the whole AI coding train will come crashing down just like all other unrealistic, "new economy" fads before it. Companies will get desperate to hire decent programmers back and things will be back to normal.

Vibe coding/prompt engineering automatically accumulate "technical debt" of spaghetti code and thus with time cause every larger project to fail. Sooner or later you will be asked to fix all that AI mess in your company codebase and when you respond that you are unable to do so without a major, manual rewrite, you will probably get fired. Stay at your job for as long as possible, but start searching for a new position ASAP in an organization that declares up front that they do not intend to use AI for their codebase as a matter of company policy. There are actually companies out there already that make that kind of choice, but it might take a year or two for you to find such a job in the current job market. If all else fails, switch to the Linux kernel/driver development specialty with C/Rust for companies like Canonical.

I don't get all this prevalent "AI will replace everyone!!" hysteria. AI might be indeed pretty good at writing small, self-contained pieces of code such as a simple app or an API usage sample (in reality, not creating, but rather quoting or combining others' code), but AI fails miserably and utterly at maintaining larger codebases, not to even mention large, commercial-grade code repos. All AI can produce en masse is pathetic spaghetti code with no real-world commercial value. It actually takes longer for a human programmer to un... screw what AI has written than to write it all from scratch in the first place.

From my experience, the "common assumption" that your brain works best only when you are in your 20s or 30s is a complete and utter nonsense. You might get a bit more burned out with time or simply become less passionate about technology in itself or professional careers in general and instead care more about your real-world life, but if you keep your body in good physical condition and keep pushing your brain, you only become more efficient and faster at programming every year, due to your accumulated experience and improved intuition. (Consider the Linus Torvalds guy.) It is only the corporate environment that actually forces you to switch to managerial responsibilities.

I imagine it is hard to keep feeling inspired when you keep programming sample code "bundles" that are purely "theoretical", i.e., carry no complexity or LOC-size required for the commercial or open-source product directions. Remember that developing and maintaining real-world projects requires much deeper technological and social skills than hacking on private projects. Consider either working on a commercial project (e.g., an app with a paid monthly subscription) that will require product-market-fit education and commercial-grade quality execution from you, or joining an open source project (e.g., the Linux kernel or satellite projects) that will require cooperation and accountability from you, as well as much deeper knowledge of only one or two programming languages (e.g., Rust and C).

IMHO:

Estimate demand (e.g., through search engine keyword volume), estimate monetization (e.g., by working out how much you can charge in your niche) and then decide whether it is sane for more than one provider to exist in that specific niche.

If you decide to compete, realize that better execution followed by better SEO/marketing will always prevail over any head-start a competitor has. (SEO positioning takes quite a long time, so make up an excellent website and start SEO/content-marketing even before you have a product ready.)

Also, being the very first in an uncharted niche might be a disadvantage as opposed to an advantage. If you manage to learn about your competitor's mistakes (e.g., analyze on-site or app store feedback, etc.) and prevent those mistakes in your own product, you will not be wasting considerable development time/resources as your competitor did.

I haven’t interviewed in years and get extremely anxious in interviews.

If you are a programmer, the hiring process these days is an unbelievable screw-up with no shred of professionalism whatsoever in many, if not most, cases. Either make a conscious effort not to let it get under your skin or start only with job offers that specifically outline the hiring process as one with a take-home coding assignment, as opposed to all the pair-programming or white-boarding nonsense. Otherwise, it will hurt and you will get discouraged. Also, consider starting to build up reputation on Upwork, etc. as a freelancer. As you gain more clients down the line, you can always just drop the ones you do not enjoy working for.

IMHO, you should definitely reflect on why you feel that "leaving is not an option". Is it because of the money? Pay off your loans, downgrade the location/size of your apartment/house and suddenly making only half the money will no longer be a problem. Is it because of all the "opportunities"? (Are you absolutely sure that does not mean "opportunities to have no personal life and to potentially lose your mental health"?) Realize that many brilliant techs consider "a dream job" to be "a job they love" as opposed to "a job for a famous company". Finally, perhaps also realize that being that tired, you might not be able to ever maintain a romantic relationship, not to mention starting a family. It might or might not matter to you down the line - you have to figure it out.

I’m using AI to assist me and I’m building an app

Vibe coding is a myth, it will take you only so far and will require manual fixes and refactoring before MVP. Learn the basics of and keep learning, say, Swift. https://developer.apple.com/swift-playground/

Should I actually use a completely blank iPhone for this instead?

Does not make any difference. Every app runs in its own separate environment. Only iOS device "Language and Region" settings affect all apps on a device.

should I use a more updated version of the iPhone?

Does not make much difference, unless you need to target some new capabilities introduced with a particular iOS version. Other than that, the rest of the API is the same across multiple recent iOS versions.

Should I just run a simulator on my actual computer

Sure. It is easier and faster to test on a Simulator using a mouse rather than on a device, tapping. Once you stabilize some code under the Simulator, always re-test it on a real device.

I don’t want to share my idea with others

This will come as a shock, but ideas themselves are nearly worthless. There has been a previous Facebook, a previous Twitter, a previous Office, etc. that has failed. It is only the quality of execution of an idea, the quality of the Product-Market-Fit and the quality of marketing of a product that makes a product a winner. Start by reading books by Rob Walling, e.g., "Start Small, Stay Small".

I wonder at the sheer lunacy of dumping thousands of random sentences into your lap and translating it from one language to another.

I don't get it why everyone seems to think that translation exercises in a foreign language learning course such as Duolingo absolutely MUST result in a comprehension-less memorization process, which must be doomed to fail sooner or later, since memorization alone might not really contribute to the capability to build new combinations of memorized words.

From my experience with Duolingo, it all depends on how a learner approaches translation exercises. If you just keep sprinting through such exercises, in a sense, mindlessly, without asking yourself how each new sentence really differs from the ones you have already seen, then yes, IMHO you are likely to fail.

However, if you keep investigating, on your own accord (for example, by using an LLM) the underlying REASONS as to why each new sentence really differs from the ones you have already seen (i.e., grammar), then no, IMHO you will indeed learn how to build new language constructs and thus use the actual language.

I think the trick is to push yourself and attempt - as soon as you can - to ignore sentence "building blocks", "missing words" and "hints" provided by Duolingo and always try to build an answer to every exercise entirely from scratch in your head. That forces your brain to understand what is really going on and create a "set of rules" for using a language as opposed to only memorizing a "set of samples" of a language.

I also don't mind the "gamification" of the learning process: it allows a learner to expect more out of himself or herself by watching it not to carelessly lose the "hearts" exercise currency, by trying to earn the "gems" bonus exercise currency, by comparing himself or herself against his or her peers through leagues and leaderboards and, the last but not least, by continuing to learn every single day because of his or her running "learning streak".

Duolingo can give you only as much as you decide to get out of yourself - as is the case with any other kind of foreign language learning course. Effortless, magical learning processes simply do not exist.

Duolingo is obsolete.

I have to defend Duolingo a bit here. After only 60 days of short, daily 15-minute lessons, I was able to start forming valid (albeit simple) sentences such as "where is the bathroom in this building?" that were never explicitly presented on Duolingo and thus must have been assembled, not memorized, by my brain. I don't think it's reasonable to ask for anything more.

I think the trick is to push yourself and - as soon as you can - attempt to ignore sentence building blocks and hints provided by Duolingo and always try to build all exercise answers entirely from scratch in your head. That forces your brain to create "a set of rules" for using a language as opposed to memorizing "a set of samples" of a language. I'm usually good at remembering how things work and notoriously bad at memorizing all the samples of things that exist.

A very interesting point, I stand corrected. When I think about it, my brain usually does strongly prefer to consciously create a set of "rules" about a knowledge base rather than unconsciously memorize a set of ready-made samples. But that might be just me.

This is a false dichotomy. Focusing on grammar is not the opposite.

I don't follow you. I did not claim that focusing on grammar was a literal opposite of anything. I claimed that in my case "repetitive learning by example" turned out to be less boring than "repetitive learning by memorizing grammar".

In order to translate a randomly generated (thus never seen before, non-memorized) sentence from one language to another you have to understand the grammar in order to create a valid combination of words for your translation.