HN user

jkkramer

1,624 karma

https://twitter.com/jkkramer

https://jkkramer.com/

contact@jkkramer.com

Posts26
Comments136
View on HN
jkk.github.io 9y ago

Why I Don't Use React Router

jkkramer
122pts75
jkk.github.io 11y ago

Frontend Is Eating the World

jkkramer
3pts0
conscientiousprogrammer.com 11y ago

Understanding Clojure Transducers Through Types

jkkramer
73pts23
nathanmarz.com 14y ago

Suffering-oriented programming

jkkramer
301pts59
www.time.com 15y ago

Bill Gates: Creative Capitalism (2008)

jkkramer
42pts3
news.ycombinator.com 15y ago

Ask HN: Review my startup - YumTab, universal recipe box, Delicious replacement

jkkramer
14pts24
www.johndcook.com 15y ago

Simple Legacy

jkkramer
1pts0
ruhlman.com 15y ago

So You Wanna Be a Chef - Anthony Bourdain

jkkramer
259pts63
www.youtube.com 15y ago

Soda Pop Stop - Niche Business Insights

jkkramer
9pts2
briancarper.net 16y ago

Clojure, from a Ruby Perspective

jkkramer
65pts2
blogs.nybooks.com 16y ago

Margaret Atwood on Twitter

jkkramer
2pts0
trailofbits.com 16y ago

No More Free Bugs

jkkramer
1pts0
www.youtube.com 16y ago

Robotic Pancake Sorter

jkkramer
2pts0
www.ironicsans.com 16y ago

Migraine headache triggers crazy typing

jkkramer
2pts0
www.screamingduck.com 17y ago

Using evolving images for image compression: 256x256 image in 1k

jkkramer
96pts23
www.museumssuck.com 17y ago

On museums: Define your goals and then don't suck

jkkramer
2pts0
www.theonion.com 17y ago

Apple's Keyboard-Free Laptop

jkkramer
3pts0
www.squarefree.com 17y ago

Fuzzing TraceMonkey

jkkramer
10pts0
arstechnica.com 17y ago

Almost Human: Google's Android G1 Phone

jkkramer
3pts0
jackcheng.com 17y ago

Muji Chronotebook -- Innovative new day planner

jkkramer
43pts17
realdanlyons.com 17y ago

Inanity at EmTech -- Web 2.0 and bad restaurants

jkkramer
4pts2
www.boston.com 17y ago

The Big Picture: Large Hadron Collider nearly ready

jkkramer
9pts5
news.cnet.com 18y ago

Google could pick Git to manage Android code

jkkramer
15pts9
kerneltrap.org 18y ago

Git Management

jkkramer
3pts0
arstechnica.com 18y ago

From Win32 to Cocoa: a Windows user's conversion to Mac OS X

jkkramer
3pts0
www.microsoft.com 18y ago

IE8 Beta Released

jkkramer
5pts1

I did do it again, and spent time figuring out how to do it even more.

The cool thing though is that I could have chosen to do something else, too. I’m not at a loss for fulfilling, productive things to do. AI won’t change that.

Just yesterday I noticed I was mentally EXHAUSTED after building out a feature with Claude Code.

I actually had to think really, really hard to keep up with the idiot savant as it cranked out code.

Correctness was extremely important for this feature. Claude would consistently make subtle mistakes, and I needed to catch them to keep things from going off the rails. I could have done it myself, but it would have taken MUCH longer.

I essentially compressed a week’s worth of work into a few hours, and my brain paid the price.

So yeah. You can use AI to replace your thinking, or you can use it to push yourself to your max potential.

Kagi for Kids 1 year ago

As a fellow parent and hater of YouTube Kids, I've thought about building a replacement.

What holds me back is knowing that -- if this was an iPad app, for example -- I'd be at the mercy of both Google AND Apple. It's a minefield of sensitive topics:

- Kids & privacy

- Content moderation

- Intellectual property

- Third-party UGC

Way too risky.

Great little product! Seems like this could actually make good money with the right marketing.

Are you doing anything special to leverage TikTok or Instagram Reels? I notice you had a few sample posts. I'd go hard on that if you're not already: post yourself, hire micro influencers, etc.

3 that I always watch for:

- Lenny's newsletter. While lately it's become mostly about how to succeed as a PM in Big Tech, he occasionally covers juicy startup tactics. For example, "What is good retention?" was solid gold.

- Casey Newton's Platformer. Balanced and insightful coverage of breaking industry news

- Data Analysis Journal. Goes deep on many growth topics, with tons of real SQL code from an experienced practitioner, which is extremely hard to find.

https://www.lennysnewsletter.com/ https://www.platformer.news/ https://dataanalysis.substack.com/

A rule of thumb I sometimes use to assess products, including ones I've built:

Looking back at the last year, are you (or your users) happy with the time spent using the product? Do you/they regret it?

Juicing short-term engagement can be effective for startups, but it isn't everything, and doesn't necessarily lead to lasting value.

Everyone seems to be missing the obvious reason they want you to view Wrapped in the app: because they want you to share it to your stories on Instagram, Snapchat, etc, which you cannot do on the web.

When Wrapped came out a few days ago, virtually every person I follow on IG had shared their Spotify Wrapped. It's phenomenal marketing.

I would call its style unorthodox rather than nonhuman. It still plays common josekis (standard opening sequences) but often chooses uncommon variations. Its mid game is full of startling moves backed by VERY good reading. There's definitely still discernible strategy that us mortals can learn from.

If I recall correctly, the version that beat Lee Sedol was trained on amateur games plus self-play. My guess would be that this new version relies more heavily on pro games.

One technique that can be useful is imposing domain-specific restrictions, then passing responsibility down the chain.

For example, most people only have a handful of recent conversations; can you get away with ignoring distant-past conversations when it comes to read/unread marking? If so, you could send recent normalized data to the frontend and let it derive the unread state client-side. React has some nice tools for efficiently deriving state from server-sent data.

This isn't always the best solution, but it's something to consider.

It's interesting to contrast how Google and Facebook both approach open source for the web.

Google tends to release code and promote it without really using it much internally first. Documentation is prolific but confusingly organized and often fragmented among several versions simultaneously (cough, Google Analytics).

Facebook, on the other hand, actually seems to use their code before releasing and promoting it. Look at how they handled GraphQL: spec and reference implementation released a year ago, clearly labeled as a "Technology Preview". A lot of design work went into it before that, informed by the problems of internal product teams. Only a few days ago was it promoted as ready for production. The spec hardly changed it the last year. Documentation is good, and they work with the community to improve DX.

Why the difference? Hard to say, but my feeling is that there's a more direct link between Facebook's product-driven open source work and their bottom line. There are other startups constantly nipping at their heels, so they need to be on their game product-wise. Better code -> better products -> profits.

Google is largely impervious in the search and ad space, which is their cash cow. It almost doesn't matter how good or bad their other products are. The company is not at risk. Their open source work reflects that.

It looked like a risky dependency, simple as that. Despite the HN title, the point of the article was not to talk about React Router.

EDIT: Additionally, I'm not saying React Router is bad per se, just that it's not fully baked. I'm glad to see people working on the problem. I look forward to leveraging the fruits of their labor in the future (in fact, I already do - I use the history library on which RR is built).

You're not wrong. But it feels worse in JS. In both cases lib authors would do well to set proper expectations - if your lib is half baked, be up front about it.

Further thoughts: choosing an unstable library and then criticizing it for being unstable seems silly. There are two sides: library authors need to value things like careful design, real world testing, and backwards compatibility. Library consumers need to advocate for the same things, plus learn how to identify risk (semver isn't going to save you), and take ownership of their choices.

Yeah maybe. To me it feels like many in the community complain and shirk responsibility, and some stern words were needed to counterbalance that position. If the community wants stability in its projects, it needs to learn what it takes to achieve that.

Thanks for the thoughtful reply! I don't have a problem with strong opinions and harsh words when warranted, with the understanding that we're all learning.

What I wrote wasn't entirely in response to the HN thread. Similar thoughts about the JS community have been brewing for a while and the discussion prompted me to speak my mind.

As programmers, we suffer from various maladies. NIH is one, laziness and shiny-chasing are others. As in life, balance is needed. Don't forget the cost part of cost/benefit analysis.

Clojure Doc is easier since it doesn't require a CA.

IRC (#clojure and #clojure-doc on Freenode) is good for coordinating with other contributors.

There's also the Stack Overflow method for first-time users: no sign-up at all. Let them use the site anonymously but fully, and register at their leisure. I'm using that for a current project.