HN user

jayceedenton

538 karma
Posts3
Comments93
View on HN

How do you end crunch? Teams always work at a more relaxed pace when the deadlines are years out. You can't beat Parkinson's law no matter how generous you are with the estimates.

We've all tried methodologies to counter this problem and create a continuous, sustainable pace. Unfortunately there's something deep in human nature that prevents us spreading that effort out evenly from day one.

Without the explicit recur it's far too easy to misidentify a tail call and use recursion where it's not safe.

Recur has zero inconvenience. It's four letters, it verifies that you are in a tail position, and it's portable if you take code to a new function or rename a function. What's not to love?

It's not really surprising. Hetero sexual desire has been framed negatively for well over a decade, as at best exploitative and at worst misogynistic and perverted. Men told that if you want sex you're part of society's biggest problem, and women told that if you give in to a man's sordid desires you are being taken advantage of and subjugated. All we ever talk about is the dreaded 'power imbalance'.

We've removed sex from normal life as far as possible. Films can be full of violence but any hint of titillation is verboten now. Any reference to sex in normal walks of life is seen as harassment, chauvinistic or pandering to the male gaze. Our culture is influenced by global social and religious conservatism in the quest to sell media to as many markets as possible. Our own new conservatism (the so-called left wing) is just as bad.

On top of that we have the culmination of a few decades of obsessive education about STDs and sex as a dangerous act that can ruin lives. A far cry from 'The Joy of Sex' as a cultural phenomenon.

We're letting prudes and those with deep psychological issues around sex call the shots. Millennials and Gen Z may be a lost cause, but let's hope that Gen A can rewrite the rules.

Age limits on buying cigarettes are easily thwarted by finding a corner shop that needs the sale and will sell to kids. Height restrictions on fairground rides are easily thwarted by putting bits of wood in your shoes. None of this matters.

The point is that this kind of control will drastically reduce under 18s consuming content that they shouldn't. We don't need the all of society's controls to be flawless.

Why Clojure? 1 year ago

10+ years ago Clojure had a fantastic introductory experience. lein new and away you go. lein was so good and effective, for both tiny hello world projects and real production apps.

The experience has gotten worse and worse now for a decade. The core team have continued to take things in a worse direction (supported by a small group of fanboys) and most newcomers are now completely baffled by the tooling.

Is there any benefit to using workspaces over just introducing some variables and having an 'environment' variable?

You can have a directory per environment and a directory of shared resources that are used by all environments.

It seems like workspaces add a new construct to be learned and another thing to add to all commands without much benefit. Could we just stick with the simple way of doing this?

This is a good example, I think, of why a future in which all homework is obsolete because of AI is actually not likely.

If a lecturer at university sets a task for 100 students (say, write an essay about the factors that led to the first world war), there will be clear and glaring similarities between the way that points are made and explained if many students use chatgpt. Yes a student might rewrite or paraphrase chatgpt, but low effort copy and paste is going to be very obvious because chatgpt's model cannot produce an entirely unique approach to the task every time it is asked.

I know there are weights and parameters that can be adjusted, so there is some variety available, but I think better to think of the LLM as an additional (all-knowing) person you can consult. If everyone consults that same person for an answer to that assignment it's trivial to detect.

My friends and I had great fun with Micro Machines 2 on the Mega drive (Genesis).

The cartridge itself was fascinating because it had two extra controller ports on it! You had for player gaming by plugging two controllers into the console and two controllers into the cartridge that was protruding from the top of the console. The cartridge was a little taller than usual to accommodate the extra hardware.

This seems pedantic, but I suppose anyone using the term 'superset' is inviting the pedantry.

For almost all intents and purposes, if you are asked to create a YAML file then you can choose JSON as your syntax instead, because your file will be understood by the YAML parser. The benefit being that JSON has far fewer quirks and edge cases.

It's comical that when people get confused with YAML (which is often) they convert their YAML snippet to JSON to see what's really going on. YAML is horrible for humans to write. Let's just use JSON, the sane syntax, instead. A few extra parents and quotes is really no big deal, and it's far easier to read unambiguously.

I guess at least their work has confirmed what we probably already knew intuitively: if you have CPU-intensive tasks, without waiting on anything, and you want to execute these concurrently, use traditional threads.

The advice "don't use virtual threads for that, it will be inefficient" really does need some evidence.

Mildly infuriating though that people may read this and think that somehow the JVM has problems in its virtual thread implementation. I admit their 'Unexpected findings' section is very useful work, but the moral of this story is: don't use virtual threads for this that they were not intended for. Use them when you want a very large number of processes executing concurrently, those processes have idle stages, and you want a simpler model to program with than other kinds of async.

I struggle with this one because exceptions are a perfectly good solution. The compiler will tell you when you are not handling a failure case. And if exceptions are unchecked, then you won't get a compiler warning but at least failures will be obvious at runtime.

Why push java towards this 'failures as return values' when we already have a solution? Yes, you will be able to get the compile-time safety by immediately using switch on the return value, but what if you don't? Exceptions are a completely sound solution, failures as return values can easily escape detection.

No-one likes having to think about the error cases, it feels like it complicates things. But we need to stop seeing exceptions/try/catch as something to eliminate and realise that this approach is one of the best innovations of Java. Using return values, or monadic approaches to error handling, are fundamentally unsafe when you have a mixed paradigm language. Far too easy for the programmer to do something wrong, so we're relying on discipline again and not the compiler. In other words, back to square one.

This issue is nuanced for Microsoft . The health of PC gaming is a huge factor in the sales performance of home consoles, and of course Microsoft dominates that arena via Windows.

Xbox does not have true exclusives these days, because of a strategic choice by Microsoft to ensure that Windows PC gamers (and Xbox owners that also have a Windows PC) will get the same experience. So how do we apportion successes PC gaming market when we look at "Who's winning in gaming"?

For sure, this strategy of letting Windows join the 'Xbox' family seems to have hurt sales of the console itself. A Windows PC and a PS5 seems to be the perfect combination to play all the best games. But is it a problem that Microsoft is making and selling fewer of a certain kind of hardware unit?

I really want Xbox to survive as physical hardware. We need competition in the market to push those gaming devices to be the best they can be. I just hope that it's understood how shifting fewer units is a natural and inevitable consequence of bringing Windows PCs into the family.

It might be assumed that Xbox lost this console generation. Yes, there were some major mistakes made in this generation and the last that must have hit sales. What has also happened, though, is that Xbox as an overall gaming brand has grown beyond the console itself.

Amen, and if you try to keep pure parts and side-effecting parts separated, the problem of reasoning about side effects is limited to a very small part of your code.

The pure typed religion and huge weight of theory that goes with it is one reason why I find it so sad that Rust has seemingly won out over Zig.

making me admit I smoked a joint in California (not legal on a state level)

Wait, so weed is not actually legal in California?

I see big billboards around the valley and SF, advertising gummies as if it is a normal part of life. Is it inadvisable for any visitor to partake? This is useful information. It seems to be so normalised amongst tech folks in California these days that I could well imagine being offered a joint (or similar) if socialising in the evening whilst on a business trip.

Yes it is. Asking your waiter to wrap up the rest of your food to go almost never happens in the UK.

Maybe this is creeping in due to seeing Americans doing this in movies. You start to realise how people cope with those huge portions sizes in the US. Many people don't eat everything in one sitting.

It's hard to explain why we don't do it in the UK. We generally assume that packaging is not free so therefore wouldn't expect someone to give free takeaway boxes. Also, like almost everything cultural in the UK, I expect it is rooted in class snobbery. If you need to take away, maybe this indicates that you're poor and need to make a meal last. These aren't conscious prejudices, they're relics of the past and subconscious.

I think that GitHub is a massive factor here. The emergence of distributed version control created the battle ground, but GitHub meant that the entire world of open source and sharing code online would be dominated by git. It was their execution (marketing as well as good tech) that was better than bitbucket and attracted more and more of the open source world to GitHub and therefore git.

There's a powerful network effect with choice of version control tool, because others need to collaborate with you (even if just to pull or browse your repository) so the tool that starts to dominate will likely monopolize. This isn't the same with browsers.

My first thought was, "Needs more monads".

Sure enough, in the commentary:

Monads are woefully un-represented here; I would be grateful if someone could contribute a few (progressive) examples in the spirit of the development above.

It's the 'accidentally' part that's the problem. Finding out that you need to delete something is not the same as accidentally deleting it.

'Unexpectedly' would be a little more accurate I think. Or just 'That time I deleted a game from MAME'.

Dallol 2 years ago

Sadly, visiting many parts of Ethiopia (including Dallol) is now not recommended unless essential, with large areas of the country having blanket 'Do not visit' advice due to violence and kidnapping. So think twice before booking, or recommending that others should go.

Ten years ago things were very different, with huge growth in tourism. The famine of the early 80s finally receding into history. In the 2020s, war and starvation have returned.