HN user

froderick

60 karma

Software Engineer, Architect

[ my public key: https://keybase.io/froderick; my proof: https://keybase.io/froderick/sigs/dgpGJVHSCbH4wnGwKx2vL4DGYu1QhvDhL6ezvJu3acM ]

Posts0
Comments22
View on HN
No posts found.

As an exclusive Firefox user, with really great ad blocking features, I didn’t notice that Chrome got worse on this front. I’m sorry to hear that. Perhaps it’s time for a change. Best of luck.

I already have functors, effectively, by writing sql queries in clojure with honeysql. The clojure data structures make behavior composition from reusable sql snippets easy, and the testing of sql snippets is just based on literals as the article describes. Works really well.

I wrote a bespoke scheme interpreter, then a virtual machine, a bytecode serialization format and a fun standard library. All in C. Totally useless for real work, not unique in any way, but really fun and great for learning. Sometimes useless shit is the best.

In my startup experience, the pager never really ends. I’ve got one eye on my alerts inbox, and one eye on John McLane complaining about California. Still, I would rather be doing what I want, the way I want it rather than spending my days paying lip service to who ever might be within earshot. To those that choose the hard path rather than the easy lucrative one, I salute you.

Question: Eat a cat

Answer:

Eat a cat is a game of tag in which a person who has the cat is "it" and must tag another person. For the song by the British rock band the Cure, see Eat the Cat.Eat a Cat Contents Rules Rules

One person has a cat and is "it", while the other players have to run to a specified point, usually a fence or wall, and remain there. The cat must then "eat" another player, by touching them, before the cat can be "eaten" itself. The cat may only touch one person at a time. In some variations, players may have to jump over the cat, rather than touch it. The cat may also have to eat two people in succession, before being able to eat itself. In some variations, the cat may have to "eat" an additional player, by touching them, before it can touch the person it is currently touching.

The surest way to get depressed is to worry about what everybody else is doing, and compare yourself to them.

My recommendation is to fill your mind——every waking moment——with ideas, plans, hopes that inspire you, that you want to chase whether anyone else ever sees or knows or appreciates. Things you’d chase on a desert island or the middle of Manhattan.

Then find people you can share them with, that can magnify what you love.

Occasionally you might find yourself tempted to make value judgements about what happens. Don’t do it. Things aren’t good or bad, wonderful or a waste. They just are. You can’t choose the thoughts that intrude, but you can choose how you respond to them. Practice choosing to respond by being in the moment, and making the moment be about pursuing something you love.

Most people I know are controlled by ideology. Imagined imperatives handed down from ancestors and influencers. Their loves take a back seat or remain undiscovered and they get old with regrets. What I propose is the opposite. Let the philosophies and values of the day burn. They can't offer you anything you can’t offer yourself. Make the things you love eclipse everything else around you. You only live once. This is your chance to be free.

Best of luck.

I've been reading this site fairly regularly since 2010. Not as long as many, but long enough to feel confident saying that though the cast is always changing, this site remains one of my favorite places to 1. discover things I hadn't considered previously 2. reevaluate my past decisions in a way that makes me thoughtful about future ones

It is partly the articles, but more the comments (and careful modding).

HN stands out as a great place to expand my awareness. There are people here with deep technical experience that care about the outcome of their conversations. The flame-bait and regressive behavior isn't the main thing going on, it is a sideshow. If that ever changes for me, I'm out of here.

The article fodder is not as interesting to me as it used to be, but there are gems, and the comments remain engaging.

Who knows, perhaps I'm one of the jerks? Perhaps I'm the dreamer that dreams the dream and am therefore the jerk expert? Hard for me to say, but I welcome your opinion.

I think you will find that a great diversity of minds are attracted to this site, and for reasons you may not have considered. Curiosity is a giddy thing, and it is a fundamental part of what draws me here. If you read this site and see only the occasional jerk rather than the experience-driven insights, that is your misfortune. Maybe instagram is your thing. I hear they have a lot of cat pictures.

Cold Showers 4 years ago

We’ve been moving steadily to malli over the last 6 months. I have to say, programmatically composing malli schemas as values (rather than macros) is really powerful. I like being able to define a base set of fields on a map, and then merge in other schemas and different sets of fields that are required in different cases. Nice for modeling apis with reused structures but with varying field requirements.

Cold Showers 4 years ago

Same here. Clojure offers a bunch of different invariants than ‘this field is a string’. Things like ‘nobody is modifying this complex data structure out from underneath you’ or ‘this complex value is trivially printable, readable, inspectable, comparable, diffable, etc’. And if you want to know for sure that field will be a string, you can spec it and enforce it where it matters. And ignore it where it doesn’t.

Fossil versus Git 4 years ago

As an avid git worktree user, I use multiple checkouts for the same repo all the time. It avoids a lot of context-switching pain.

It took me a long time to realize that the universe doesn’t give a shit about me. In the grand scheme of things my life isn’t going to rate a mention. There is such a freedom in this understanding. Nothing inherently matters, so I can just make my life about what I want.

I spend time deciding what matters to me, then I fill my mind and heart with it. I don’t generally pay attention to what everyone else is doing, unless it helps me with what I’ve decided is worth doing, or makes me aware of something great that I’ve missed. I definitely don’t compare myself to some external standard. My life, my measuring stick.

At the end of my life I will die, and at that moment I will be alone, no matter how many friends surround me. In that moment, I will have things I’m proud of and things I regret, and they will based entirely on my own value judgements and experiences, not on other people’s ideas about what matters. So I focus on that. What will I regret? What will I be proud of?

It works for me, where other things have not. Perhaps this gives you a contrasting perspective. Perhaps I just needed to write it out. Either way, best of luck and may you find freedom in your own way.

Rabbit's federation is a good way to bridge point-to-point connections between geographically distributed systems. I'm not sure that's a great scaling pattern for throughput though.

The clustering might look tempting but it hasn't been resilient for me in the face of janky networks. Split brains and data loss can result.

In the past I've scaled my rabbits for throughput by implementing my own routing/sharding layer.

If you're tempted to use the message persistence and you care about retaining messages, kafka is a bigger but much more capable hammer.

No, can’t delete what I don’t have.

My dad gave me some great advice pre-social media, and it still applies:

“If you want to get really depressed, spend your time worrying about what everybody else is doing.”

I realize Facebook offers more utility than just peering over fences, but that is what it would be to me.

too much and too soon

That's the critical part of that statement. It is not important to solve for performance concerns until the code actually works so you can verify you've solved the problem at hand.

The academics are certain that there will therefore be a shift from human coders to AI-driven coders by 2040.

On the ML front, little appears to be fundamentally new in the last two decades. Not sure how the ML classification craze is going to metastasize into full AI in the next two without some major new developments. ‘Academic certainty’ isn’t going to do it.

IME, human beings generally expect things that are true to be intuitive, and tend to interpret causality eagerly. The history of science is littered with folks that ended upon the wrong side of it because their intuition couldn't be rationalized (the earth _not_ being flat, for instance).

It doesn't surprise me that many countries will be very slow to change. Change would require citizens to invest in understanding the research and to recognize that the "obvious" solutions to drug addiction aren't necessarily the effective ones.

The tricky thing with abstract class (oop) hierarchies is that deeply nested ones tend to be 1. hard to understand because parent behavior is shared concretely rather than modeling it behind protocols. 2. hard to change without breaking lots of dependent code because the dependencies are not obvious. 3. hard to debug because state internals easily leak out of parents and into children.

I wonder how they're managing this problem in HSM's. Seems like transitions between parent/child states would need some kind of protocol to define state entry/termination criteria so that the concrete dispatch mechanisms themselves could be abstracted away from the parents/children.

Maybe its just me.

Why I love Go 9 years ago

This is one of the more measured cases for golang I have read.

When it comes to my default set of tools, I gravitate towards dynamic, expressive languages that provide greater leverage rather than ones with fast startup times, c-like speed, native binaries, etc.

That said, when you need those things, I agree with this guy--golang has been a far better experience for me than any other language of its ilk. I'm not claiming it has magic powers like rust or a sentient type system like haskell, but I spent hours learning go fundamentals, and days figuring out how to get real work done with it. I can't say that for many other languages with go's compile and runtime capabilities.