HNHacker News
TopNewBestAskShowJobs

jongjong

3,069 karma · joined July 22, 2022

submissionscomments
jongjong··on The most important product decision is what you don't build
I would say that 'what not to build' is the second most important decision.

The most important decision is what limitations and constraints you are prepared to accept. There are always limitations and constraints but they are rarely identified up-front.

The most difficult, hard-to-revert decisions are those related to hard constraints imposed by the systems and/or data you have to rely on. Maybe it's not physically possible to obtain the data you need to solve the problem you need to solve for the price you need for it to be viable. Maybe you need to be able to process large files which may take many hours to complete. Or your input data grows father than you can process on a single CPU core. Or the security requirements of a particular piece of data means that you can't efficiently connect it to some external piece of data as you need.

jongjong··on Backups Aren't Simple
This is your intent until I finish implementing and then you complain that it doesn't also work with folders or large files and it doesn't work with any file system. Or you will complain if your colleague accesses your file without your permission.

Reality of software development is that the user would expect every single one of those things but they simply don't understand what they want up front.

There are three different aspects to consider in my experience; what the user says they want, what the user thinks they want and what the user actually wants.

The three can have substantial differences.

jongjong··on Everybody's Lost Their Minds
I've been coding for 22 years, 14 years professionally, so I appreciate AI coding.

It was annoying before when I had a very clear idea of what I wanted and yet it still took a whole week to implement.

Now, with AI coding, I can implement any decent sized feature, exactly how I want, in a few hours and it's all polished and ready, all edge cases handled.

Everything it's generating looks almost exactly like what I would have written, just written faster.

Personally, I feel avenged by AI because I had been saying for years that you don't really need static typing once you reach a certain level, getting types right isn't the most difficult problem and isn't a significant source of bugs. Everyone was gaslighting me about this... Yet now everyone can verify themselves because AI has reached this level I was speaking of.

Now anyone who coded with a frontier model on both TypeScript and JavaScript can see that it makes no difference at all. I can't remember ever seeing Claude mistake the type of a variable with either language... And TBH, I find Vanilla JavaScript from AI to be more succinct, not over-engineered like Typescript. Which is a point I'd been trying to make for years about incentives and actual patterns of usage (as opposed to theoretical benefits).

jongjong··on Developing provably correct Rust code with Verus
>> Don't let perfect be the enemy of good.

I feel like the exact same line could be used to argue the opposite point against formal verification.

I'm not saying that proof is inherently bad. If it was free, then I agree it would be good, but my point is that it's not free. Proofs are expensive to produce, maintain, they lock-down flawed implementations, focus on correctness but disregard more important aspects like modularity (I.e. loose coupling, high cohesion). Also; formal proofs discourage change and they create false confidence about reliability because sometimes the bug is in the spec itself, especially as the spec gets more complicated.

I think modularity is a more useful property to aim for in terms of achieving the right degree of correctness over the life of the software, in a practical sense.

Formal proofs can work against modularity if the proof must be rewritten in order to achieve modularity as requirements change over time; which is the reality for most software.

jongjong··on Developing provably correct Rust code with Verus
What if the 'mathematical specification of its functionality' is incorrect? How to prove the correctness of the mathematical specification faster than the underlying environment, code and dependencies change?

IMO, formal verification is never going to work. It's very clear that a lot of people are desperate to see it used in mainstream software development, but every innovation which proponents have seen as an opportunity to finally prove its utility has only served to further discredit it.

Now proponents are at a point that they literally have to convince us that people who aren't able to write correct code are somehow able to write correct mathematical specifications!

This is quite an extraordinary claim given that the mathematical specification is an order of magnitude longer and more complex than the code itself... And every experienced software engineer knows that mistakes grow proportionally to the size of the logic... Unfortunately, mathematical spec is logic; just like code, except it's more complex and thus more error-prone.

And don't even get me started on the fact that APIs, engines and languages change constantly from under you and thus the mathematical spec would get completely invalidated every week or so each time you did an update. Unfortunately, even in the best case scenario, reality is always going to change and invalidate our proofs faster than we can publish them. By the time you've proven the theory, its underlying assumptions already ceased to hold true.

Even in a far simpler hypothetical world with just one piece of software; the software's own execution could potentially change the reality which it relied on to prove its own correctness and would thus invalidate its own correctness merely by executing.

jongjong··on AWS says it can't restore some data from mideast facilities struck by Iran
This is almost always the case. It's one of the frustrating things about the software industry; because everything is much more complicated than the customer is able to comprehend, a software company can promise anything and the customer can't actually verify.

So any software company/project which actually took the time and effort to fully handle the enormous complexity, they can't sell themselves based on that fact because every other company (who didn't invest the effort) is also claiming it and the customer has no mechanism to verify the claims until some major rare event occurs.

And most of the effort is required precisely to handle those 1% of rare situations.

jongjong··on Backups Aren't Simple
When it comes to software, it's almost never simple. What people think of as simple is rarely so.

For example:

Requirement:

"Just copy a file from folder A to folder B."

Minimal translation:

"Implement the capability to copy any file, in any format and of any size from SharePoint, located at a configurable path, with appropriate authentication and access control checks, then stream it in chunks to a different, configurable path inside an S3 bucket, also with appropriate authentication and access controls in place. Ensure that any disruption in either service which may occur while the file is streaming can be recovered from at the point it failed instead of having to restart from the beginning. Ensure that the retry mechanism is built-in and that the retry window is configurable; if the file cannot be copied within the specific time window, then an error should be sent via email to a configured email address. Ensure that the entire transfer is encrypted in transit... If the file happens to be a folder, then you must copy across all of its contents recursively up to a certain configured MAX_DEPTH to avoid DoS and ensuring that the system does not get caught in an infinite loop due to symlinks pointing to a parent folder... In this case, send an email to the configured address... Etc... Etc..."

And the thing is; if you tell AI "Just copy a file from folder A to folder B." - It will not meet your 'basic' needs because even if it does a great job at filling the gaps in your requirements, it will still take shortcuts. In order for an AI to avoid taking shortcuts, it would have to make you fill out a questionnaire and make you sign up for and configure services; it would not be a pleasant user experience. The user experience cannot be pleasant, because the AI cannot read your mind and it cannot know your intent.

jongjong··on Most people prefer traditional architecture
I like modern architecture but I wouldn't want to live in it or near it. Modern architecture is depressing.
jongjong··on Suspected sabotage causes major Netherlands rail disruption
If we think about public infrastructure in an adversarial way, the same way we think about software systems; we could say that it's full of critical zero-day vulnerabilities.
jongjong··on Distributed Systems Classics (2017)
Rendezvous hashing is so simple and elegant.

I implemented a library for rendezvous hashing with skeleton in order to get a similar performance as consistent hashing; it gets much more complicated and IMO loses some of the elegance once you add the skeleton. Most of the challenge is that the skeleton structure relies on a tree and so has to be rebalanced sometimes and this means that sometimes you have to move around more keys than ideal. The startegy you can use to perform the rebalancing can become very complicated.

Though the 'virtual nodes' in consistent hashing also add a lot of complexity there.

jongjong··on Copyright does more harm than good and should be abolished
Sure why not. Maybe we can also abolish private property in 30 years. The work and entrepreneurial achievements which produced it were made in the past so we can just phase out ownership. No incentive problem there, the suckers already built all the stuff so there's no problem and they'll have 30 years to adjust. How generous are we!
jongjong··on People who can't picture anything are rewriting the science of imagination
People with aphantasia probably overestimate how good it is.

I think I have good visualisation ability (based on spacial reasoning tests and ability to visualise complex software systems) but it's not like seeing something in real life; there is much less detail. Though on the plus side, I can manipulate the scene flexibly; I can zoom in, rotate, hover but a lot of detail is missing.

It's not blurry, it's more like what happens when you watch an AI-generated video of a four-legged animal walking and you didn't immediately notice that there was a fifth leg which popped out briefly before disappearing again... Or a bunch of mice are running around and one of the mice splits into two. It has a similar kind of quality where it's not constrained by the laws of physics and I only really see what I choose to focus on. What I'm not focusing on essentially disappears. I can zoom into some detail and it becomes clearer/more realistic but I sacrifice the big picture view. It's not uniformly vidid like something I see in real life.

Though I think the emotions I experience are the similar to reality (if it's a memory) so it feels like re-living the moment. The emotional and conceptual aspect is higher fidelity to me than the visual.

Overall though, my thinking style is very emotions-driven. I think I have a kind of synesthesia where every logical and visual concept in my mind is associated with a complex feeling.

But ironically, I don't usually act emotionally in my day to day. People I know would say I'm very rational but it's like my emotions themselves are rational if that makes sense. I feel complex emotions though not very strong ones.

jongjong··on Rope, twine and thread: Invisible technologies of the Stone Age
Sometimes I take up the most obscure hobby imaginable and then somehow it comes up on HN months later.

I discovered a plant near where I live which has really strong, thin, long leaves and I started twisting them together and it makes strong, shiny green twine. I made a 3 meter long twine and then wove it into a tiny basket.

It works with only 2 strands and you can do it by yourself without any tools; just your fingers. Though I found some 3D printed plastic parts online which have a component which looks eerily similar to the one in the article.

jongjong··on Silicon Valley is transforming the military-industrial complex?
The most unethical aspect IMO isn't what they're building but the taxpayer money which those big companies are getting. These are essentially handouts.

Taxes are not paid voluntarily but coerced out of citizens under the threat of force. So when they hand out such large contracts, the government is taking from all taxpayers by force and giving it selectively to a few chosen people who happen to own shares of those companies.

Many of those shareholders aren't even US citizens!

jongjong··on Automattic's board forces CEO Matt Mullenweg into leave of absence
I'm surprised that founders still care about all that stuff. They already made tons of money, who cares. None of it means anything. Nothing is fair in this society.

They don't mind the system working unfairly in their favor; they only have an issue with it when it starts working against them. At that point, it's too late; you have no voice.

jongjong··on Mistral raises €3B
In Australia, house would be at least 50% more, apartment would be maybe 70% more. Beef is cheaper (about half price) and tastier (from my experience). Bread is probably half price and way tastier in France though.

Actually, after living in Europe and coming back to Australia, the quality and price of meat is what surprised me most. A lot of times in Europe, I would order a burger and the patty would basically taste like sausage meat; tough and flavorless. In Australia, beef is really good and cheap.

jongjong··on What will our economic future look like?
I appreciate the question.

It kept getting slightly worse every year since I joined the workforce. My salary is 2x when I started 14 years ago but it buys less than half what it could back then. Most of it goes into rent. It's almost impossible to save. I was never given a salary increase even with excellent reviews of my work as a software developer. I even built a popular open source project with 6k stars on GitHub which was a lot back then but it didn't yield any good opportunities.

I only got increases by changing companies which I did at least 10 times over the last 14 years (a lot of contract jobs). I also changed countries several times. I only worked for one company which grew pretty well and got some shares as early employee but they're not liquid currently and maybe worth $150k USD tops but who knows where it will end up with AI disruption. Anyway I can't cash out.

I work non-stop, still working side projects nights and weekends. Feels like there are no opportunities at all and all media channels are full of bots so I can't promote my product. When I tried social media ads years ago, it felt like it was only shown to bots so I've been skeptical of this approach since (especially now with LLMs around). Also, the internet is full of fake products which claim to have similar features as my product but they don't actually deliver so my target customer grew distrusting of all small projects like mine, making it impossible to gain trust.

So yeah my work life sucks. I struggle to save. Can rarely go on holidays. Can't even take leave without raising eyebrows at work. Day job is more demanding, less fulfilling. I don't have much personal life because I work weekends. If I started talking about my career in detail, it just gets awful and Kafkaesque.

So it's pretty bad. I regret having hustled so hard. While others were out partying, I was working and improving myself through open source, now my open source work was scraped by AI and sold for a profit while I get zero opportunities from it and copyright laws which I based much of my career strategy around are being dismantled.

Also, there is another terrible thing that happened to me in my personal life but it's just bad luck. So I can't blame that on "the system." I appreciate improvements to medicine like another commenter also said but that's essentially the only improvement.

jongjong··on Microsoft says email spammers are adopting ASCII smuggling
Currently, my experience is that spam filters often block non-spam messages and allow many spam messages through. Platform notifications are spam! Yes, even if I signed up for it, I agreed to be contacted by the company, I never agreed to be spammed by them 100 messages a day.

Platforms should aggregate all their notifications into a single daily or weekly email unless the thing is marked urgent! It's not difficult to do!

jongjong··on Function Arguments Are Not Function Colors
As someone who coded professionally in Python, C, C++, C# and Typescript, I disagree. JavaScript is my favourite language.

I just avoid the bad parts. Just like everyone else avoids the bad parts of their favorite programming languages. I compare languages based in the patterns and functionality that are actually used, not based on the sum of all its theoretical parts.

jongjong··on What will our economic future look like?
Before AI, my worldview was that our monetary system was concentrating wealth in a negative-sum game; essentially; every so often, taking wealth from 100 people, destroying half the underlying value and giving the remaining value with a 2x nominal markup to 1 rich person who is already spending more than they can physically spend and so they won't realize that the 2x amount of wealth they got on paper only buys them a quarter of the stuff compared to the previous decade (for example). They won't know how frothy their wealth is until they start selling large quantities of their stocks. It's just buying nominal 'growth' at the cost of risk/fragility/frothiness.

In such system, you could hit record nominal GDP numbers every year while simultaneously destroying the real economy. This was my view of the economy before AI.

Now I think AI will deliver real efficiency gains but also, it provides a convenient narrative to explain why people might be losing jobs in a way which distracts from much bigger systemic issues which existed prior to AI.

My negative-sum economy example with 'booming GDP' is possible without AI even as net economic value is being destroyed. So basically we won't be able to tell if people are losing jobs to AI or to systematic wealth transfer mechanisms which predate AI.

I suppose if we see people losing jobs permanently and workers in other sectors aren't seeing wage increases with more openings, that may be the most reliable indicator we have that the system is losing real wealth faster than AI productivity can offset it.

The bad news is that we won't see any problem in the numbers; the problem would show up as polarization and radicalization of the masses... Which is more qualitative . Since almost everyone is being radicalized concurrently as everyone is affected by the same pressures (both from monetary system and AI automation). The question is not "how many people became radicalized this quarter?" but "how much more radicalized is everyone feeling this quarter?"

jongjong··on Gambling with our lives: AI researcher quits Anthropic with warning about safety
I'm not worried about AI safety. People greatly overestimate the utility and capabilities of intelligence. I'm not afraid of intelligence, I'm afraid of idiocy.
jongjong··on Copyright does more harm than good and should be abolished
I'm still waiting to get my first revenue from copyright content I created 10 years ago. Not everyone gets instant recognition.
jongjong··on Copyright does more harm than good and should be abolished
We can't abolish it. That would be theft. A lot of people worked very hard based on the assumption that their work would be theirs and that they could monetize it.

It would be the greatest theft of human labor since slavery.

If we switch to a communist system with UBI, then that might be acceptable. Otherwise not. You can't arbitrarily abolish laws as soon as they become inconvenient to capital.

jongjong··on Function Arguments Are Not Function Colors
>> JS... Because our strawman is a modern (shitty) language

This is an attitude I dislike from all these niche language communities. They give each other pats on the back for shitting on the most popular, versatile, compatible and adaptable programming language of all time.

I started using JS back in 2004 and, since then, I have watched it constantly being shat on by theoretically-minded folks. Before Node.js, people would keep pointing out "JS is a scripting language, not a programming language." Then, it became a programming language and went through the biggest adoption growth phase of any language in the history of mankind. I literally saw hardware manufacturers adopting JavaScript and even building custom JavaScript engines for their custom hardware, all while their academically-minded peers simultaneously shat on the language. They shat on it wave after wave, while it kept getting better and better and proved itself to be more adaptable than their own pet languages.

People are so hard-headed and biased against JS that the community literally had to invent a new label/wrapper; 'TypeScript' as a Trojan horse to get those stubborn folks to use it.

My view now is that JS critics are all talk. JS has been doing the walk; trampling all over their theories and abstractions and leading the way in many regards. Yes, it has bad parts, but all of these parts are avoidable; none of these parts are fundamental to the language. The matrix showing of how JS comparison operators down-cast everything to a string (leading to un-intuitive results) keeps being brought up but nobody asks the question "Why would anyone use a casting comparison operator to compare variables of two different types in the first place?". The fundamentals are excellent and proven as such.

jongjong··on An overview of how our family is prepared
Survival is not the problem if the land provides abundant resources. The limiting factor is procreation. Hermits don't tend to have children so they 'die out' as a species but they're fine as individuals. In reality there needs to be a balance; enough people to procreate but not so much as to take resources faster than surrounding nature can produce.

Of course, in densely populated parts of the world, society is completely dependent on modern farming because the 'surrounding nature' cannot provide anywhere near enough food for the population without advanced farming. A disruption in the social order or supply chains would mean that people would have to cannibalize to reach an equilibrium with the surrounding nature.

Survival is nowhere near as hard as most people believe, especially in a warm country without seasons. I used to do week-long camping trips to remote islands without any civilization there. There are people who have been living on remote islands by themselves without any issues for years. Australia is actually quite safe. The things which can kill you are pretty easy to avoid. Snakes are scared of you, crocodiles are only near rivers and lakes and only in some states, sharks and jellyfish are only in the sea, dangerous spiders are pretty rare and mostly mind their own business... No bears, no lions, no wolves (except dingoes but they're smaller and more like wild dogs), no nasty bug-borne diseases.

jongjong··on Mistral raises €3B
My wife and I love British culture, architecture, parks, etc... But compared to Australia, I felt like it was still feudalism over there. It's like everyone knew their place. I could feel the class system; the software contracting 2-tier system (inside IR35 vs outside IR35) really emphasized that.

Similar vibes in Germany though a more modern version.

The Netherlands seemed relatively egalitarian for Europe. It's what I like most about Australia. In Australia, there are no artificial social barriers, no class system.

After failing at startups after a decade, I had to live somewhere I would not be seen as a second-class citizen.

jongjong··on An overview of how our family is prepared
Part of my motivation for moving back to Australia was because the low population density means I could potentially survive on a hunter-gatherer lifestyle.

In the event of an apocalypse, I would probably move back with my parents as they live near a beach in Queensland which is a really good fishing spot. My parents catch big fish from the beach every week. They never buy fish. The area has lots of mango trees. Also, there are kangaroos in the area so there is no shortage of options.

I remember I was surprised when I moved to The Netherlands for a while and one of my colleagues said something along the lines of "As humans, we can't survive without each other." I was thinking to myself WTF? Of course you can. But in retrospect I think maybe Europe isn't quite in the same situation. Low-density nations with good weather like Australia and New Zealand are actually quite unique in that way.

jongjong··on Mistral raises €3B
When I was in Germany a few years ago, I was browsing jobs available in France and most software development jobs were under $55K USD. I don't know how you're supposed to survive on that. You can probably make more money as a waiter.

Germany is not so great either in that sense though at least in crypto sector, the pay was reasonable... Though as a job it was total BS.

UK was pretty good at some point (though all the really good jobs were gate-kept by IR35 regulations), The Netherlands was pretty good (especially contract roles thanks to big tax discounts for foreigners). But IMO, one of the best countries outside of the US for software work has been Australia. I actually came back to Australia because of it. Though it's not quite as lucrative today but it's certainly still much better paid than France and has potential.

That said, if you want to do your own startup and you do not have special business connections or pedigree, then the US is the only real option IMO.

I think it comes down to easy money. Easy come, easy go. To be rich enough to invest in startups in France, you need to be born into old money or be a complete freak of nature. These kinds of people don't part with their money easily. They need a guaranteed return and they can't rely on any media channel to bring traffic. If you live outside of the US, all media channels are essentially working against you; you can literally feel that and so everything is riskier. It's like playing the same game with a massive handicap.

jongjong··on Cloud in a Bottle: making self-hosting accessible to everyone
It's not spam if it's the first time I heard of it and it's useful. It shows they care about their project. This makes me want to try it out even more.

Meta and Google can spam their unsolicited ads to a billion users but regular people aren't allowed to promote their own projects on niche forums? This is bs. You're the problem here. Self-promoting your harmful values. You're the spammer.

jongjong··on VC isn't VC anymore
I've been feeling this for years. From my perspective, the purpose of VCs was to:

- Waste my time filling out forms to participate in incubators they would always reject me for.

- Fund my competitors so much as to drive up CPC for any given keyword as to make make ROI on ads impossible.

- Monopolize all tech markets through a variety of ways including contributing to the culture of making it taboo for companies to purchase solutions from small vendors who aren't funded by them. My friend who did get into the club described the ecosystem as 'incestuous'. The circular deals we saw going on with AI companies and hardware companies recently are not new; just the same thing they always did, on a bigger scale.

I entered the industry in 2012 so for me it has always been like this.

That said, it's really a deeper system issue which allows this.

← PreviousPage 5 of 34Next →