HN user

DanielKehoe

1,870 karma

Daniel Kehoe

daniel@danielkehoe.com

https://www.linkedin.com/in/danielkehoe/

https://danielkehoe.com/

https://mac.install.guide/

Author, "Learn Ruby on Rails"

[ my public key: https://keybase.io/danielkehoe; my proof: https://keybase.io/danielkehoe/sigs/qP9p4_YG8jAMngn2mdrWnCNBG_1JG-qUP9t-DJwalms ]

Posts94
Comments224
View on HN
agenticresourcediscovery.org 1mo ago

Agentic Resource Discovery Specification

DanielKehoe
2pts0
crabnebula.dev 1mo ago

Why CrabNebula Cloud is now free: Tauri, the CRA

DanielKehoe
2pts0
en.wikipedia.org 2mo ago

Loki Patera

DanielKehoe
2pts0
paulkrugman.substack.com 7mo ago

Paul Krugman Talking with Paul Kedrosky

DanielKehoe
2pts0
www.warp.dev 1y ago

Warp 2.0: The Agentic Development Environment

DanielKehoe
12pts3
www.youtube.com 1y ago

The Future of Development: Introducing Warp 2.0 [video]

DanielKehoe
2pts1
www.mexicolore.co.uk 1y ago

Maya Blue: Unlocking the Mysteries of an Ancient Pigment

DanielKehoe
79pts17
jspm.org 1y ago

JSPM 4.0 Release

DanielKehoe
1pts0
www.perplexity.ai 1y ago

Perplexity Labs

DanielKehoe
3pts0
launchweek.dev 1y ago

Mega Launch Week is like Black Friday for developers

DanielKehoe
2pts0
mac.install.guide 1y ago

Claude Computer Use

DanielKehoe
2pts0
github.com 1y ago

GUI Agent

DanielKehoe
18pts0
github.com 1y ago

Out-of-the-Box Version of Anthropic Claude Computer Use for Windows and macOS

DanielKehoe
1pts0
mac.install.guide 1y ago

Mac Setup for Sequoia

DanielKehoe
2pts1
mac.install.guide 2y ago

How to fix 'Command not found: $'

DanielKehoe
1pts1
news.ycombinator.com 2y ago

Show HN: How to Install Python on a Mac

DanielKehoe
6pts7
www.imf.org 2y ago

Gen-AI: Artificial Intelligence and the Future of Work (IMF)

DanielKehoe
2pts1
www.gravestonestudies.org 2y ago

Association for Gravestone Studies

DanielKehoe
3pts0
lilianweng.github.io 3y ago

LLM Powered Autonomous Agents

DanielKehoe
285pts176
www.youtube.com 3y ago

The Ark Before Noah: A Great Adventure

DanielKehoe
4pts0
news.abs-cbn.com 4y ago

Philippines Congress OKs mandatory registration of SIM cards, social media accts

DanielKehoe
15pts1
en.wikipedia.org 4y ago

The Selden Map of China

DanielKehoe
1pts0
www.rappler.com 4y ago

Distraught Aetas Caught in a War

DanielKehoe
1pts0
www.sitepoint.com 5y ago

A Comparison of Ruby Version Managers for macOS

DanielKehoe
1pts1
formtek.com 5y ago

Coding: Do JavaScript Frameworks Have a Future?

DanielKehoe
1pts0
rodencrater.com 5y ago

Roden Crater

DanielKehoe
54pts12
mac.install.guide 5y ago

How to Downgrade Ruby on macOS

DanielKehoe
1pts1
coconuts.co 5y ago

Internet to stay on during Nyepi: Bali provincial government

DanielKehoe
3pts2
jspm.org 5y ago

Import Maps Release and Module CDN Launch

DanielKehoe
2pts1
thenewstack.io 5y ago

Web Frameworks: Why You Don’t Always Need Them

DanielKehoe
3pts4

Laplace would have cried if he saw this:

- differential equations? nah, the solar system is a resonant clock, calculate using hyperdimensionality

- there's a lava lake on Io that vibrates to the precise resonance he predicted

- that pesky pertubation in Mercury's orbit gets resolved with a General Relativity correction

- and pen and paper not needed! though you'll need a microcontroller chip

I've written high-quality technical how-tos for many years, starting with PC World magazine articles (supported by ads), a book that helped people learn Ruby on Rails (sales via Amazon), and more recently a website that's good for queries like "uninstall Homebrew" or "xcode command line tools" (sponsored by a carefully chosen advertiser). With both a (small) financial incentive and the intrinsic satisfaction of doing good work that people appreciate, I know I've helped a LOT of people over four decades.

A year ago my ad-supported website had 100,000 monthly active users. Now, like the article says, traffic is down 40% thanks to Google AI Overview zero clicks. There's loss of revenue, yes, but apart from that, I'm wondering how people can find my work, if I produce more? They seldom click through on the "source" attributes, if any.

I wonder, am I standing at the gates of hell in a line that includes Tower Records and Blockbuster? Arguably because I'm among those that built this dystopia with ever-so-helpful technical content.

Happy to see there's a way to get browser automation for AI without building infrastructure to support it. Yet I don't see examples of connecting an LLM to drive a web session, just examples of using Puppeteer or Playwright or Selenium to drive a web session. Presumably your user base knows how to write custom code for an interface between Claude or OpenAI API and Puppeteer/Playwright/Selenium. Sadly, I don't know how to do that. Would it be fair to expect your documentation to help? What would you suggest to get started?

Is the interface between Steel, or Puppeteer/Playwright/Selenium, something that might be implemented in the new Anthropic Model Context Protocol, so there's less custom code required?

I wrote this guide for configuring the Dock, Finder, and System Settings for macOS Sequoia. I'm posting it here for feedback and further suggestions, if you'd be so kind.

Sonoma vs. Sequoia 2 years ago

In my opinion, it’s worthwhile to upgrade, if just for the minor features of the Password Manager and Window Tiling.

I'm sure experienced Python developers will continue to use the familiar pyenv/venv/pip toolset, or its many variations. However, Rye is better for beginners and developers coming from other languages. First, Rye is an all-in-one tool, written in Rust for speed, with a unified set of commands for setting a Python version and installing packages, with environments created automatically. Second, the tool uses a folder/project approach to development like languages such as JavaScript and Ruby, where a developer sets up a project in a folder and then specifies a language version and dependencies, rather than the old Python approach where packages get installed into a Python version that is shared among projects (unless a virtual environment is created with venv). The Rye documentation is good, still I thought it's good to offer a tutorial for beginners, so I wrote "How to install Python on Mac" [0] and "How to use Rye for Python" [1]. I don't know if Rye will catch on, but it's a breath of fresh air.

[0] https://mac.install.guide/python/install [1] https://mac.install.guide/python/use-rye

Reddit is blocked in Indonesia because of its reputation for porn. I've lived in Indonesia for four years. It's mildly annoying to do a Google search, see anything from Reddit, and have to fire up a VPN to read it.

Many ordinary people in Indonesia browse porn on Twitter because porn sites are blocked by ISPs. Most people who browse Twitter porn on cellphones in Indonesia can't afford to sign up for a fee-required VPN.

A few years ago I might have felt upset that blocking access to Twitter limits awareness of controversies around human rights, corruption, or over-development. Now I see activists and opinions on Instagram so maybe Twitter is no longer so useful as a public forum. And any forum can now be polluted and manipulated.

Last month Elon Musk was on stage with various government ministers at the World Water Forum in Bali announcing government authorization of StarLink for Internet access in Indonesia. I wonder if the license requires StarLink to limit access to banned sites including Elon's own X. How are they handling that?

I think John Gilmore's statement that "The Net interprets censorship as damage and routes around it" is becoming more wishful than factual.

There are a lot of people coming to Python now, even among us who already code in other languages. The first thing I noticed was a confusing variety of ways to install Python, plus a lot of necessary-but-confusing tools for version management, package management, and environment management. I wrote a guide for my mac.install.guide website about installing Python [0] and then condensed it for freeCodeCamp [1].

In a nutshell, I recommend installing Python with Rye [2], an all-in-one project management tool for Python, written in Rust (for speed) and inspired by Cargo, borrowing a folder-based approach to development from other languages such as JavaScript and Ruby. Other people like Pyenv/Venv/Pip but I think it's easier to use a single all-in-one tool.

[0] "Install Python" (https://mac.install.guide/python/install)

[1] "How to Install Python on a Mac" (https://www.freecodecamp.org/news/how-to-install-python-on-a...)

[2] "Rye" (https://rye-up.com/)

I looked at that approach and it’s solid and well-supported. Comes down to a choice of multiple tools versus Rye as a single tool. Though you can say multiple tools are more Unix-like.

I'd like to hear viewpoints on using `~/.zprofile` versus `~/.zshrc` for setting `$PATH` on macOS. I was bothered for years that I didn't know the difference so I dived down the rabbit hole and wrote a guide [1]. In the end, I concluded:

- Use `~/.zprofile` to set the PATH and EDITOR environment variables. - Use `~/.zshrc` for aliases and a custom prompt, or anything tweaking the appearance and behavior of the terminal.

It seems the advantage of the `~/.zprofile` file versus `~/.zshenv` is that it sets environment variables such as `$PATH` without override from macOS. It seems the `~/.zshrc` file could be used for `$PATH` but, by convention and design, is intended for customizing the look and feel of the interactive terminal.

Frankly, saying `~/.zprofile` is better than `~/.zshrc` for setting `$PATH` only "by convention and design" feels like a cop-out. Wondering if anyone knows better.

[1] https://mac.install.guide/terminal/zshrc-zprofile

I'm delighted to see further advocacy for code reviews in a hiring process. As a software engineering manager, dir of eng, and CTO in 3 companies I replaced take-home tests with one hour code reviews. The process gave me everything I needed to evaluate and hire great people and everyone was happier. I explained to candidates (and my team) that I see software engineering as primarily a social practice. If I hire engineers for excellence in code reviews it means they are technically skilled and also a good fit for a collaborative team.

I created a GitHub organization just for the hiring process with a template repo that was published as a code review repo for each candidate. I feel there's benefit in using GitHub for the code review exercise because it's what we use on the job. But I'd like to try this dedicated tool as well. It's a worthwhile project. Thanks!

Ah, mobsters were part of the fabric of life in 1970s Milwaukee. Joseph P. Balistrieri, alleged Underboss of the Milwaukee crime family, owned a stately home on the same block as my parents, a few blocks from the lakefront. An old lady (his mother?) answered the door when I went door-to-door offering snow shoveling services. She said no and was not very nice about it. An unmarked surveillance sedan was parked, idling all winter long, across the street from Atty. Balistrieri's home. The agents (presumably FBI) never smiled to the kids who waved. My parents joked to neighbors that we lived on the safest block in the city. It was all very normal.

I ran a music newspaper in Milwaukee in the early 80s (the Express, still in business after all these years as the Shepherd Express). Our advertisers were bars and clubs. One club that wasn't very popular underwent extensive renovation frequently, changing themes from urban cowboy to disco to hard rock, and other club owners said it was a scheme to launder Las Vegas syndicate money. I went to sell advertising to the club owner and he memorably greeted me by saying, "You may be the apple of your mother's eye but you are nothing but a tiny speck of shit to me." After I established that my business partner was best friends in law school with the fiancee of his nephew the dentist and audaciously pitched a full-page ad, he amicably agreed to run a 1/8 page ad every month as long as I never bothered him again.

because of advances in textual analysis, judges are highly exposed to AI, but they are also highly shielded from displacement because society is currently unlikely to delegate judicial rulings to unsupervised AI.

Unlike judges, software engineers are less likely to be shielded from displacement by AI.

Ruby 3.3 3 years ago

Looks good. There's a new IRB, the interactive Ruby interpreter, with better autocompletion and debugging. Most of the Ruby 3.3 changes will lead to improved developer tooling. The language API is largely unchanged and consistent with previous releases. I wrote a guide [1] for the update to Ruby 3.3, with notes for each of the various version managers.

[1] https://mac.install.guide/ruby/update.html

Just curious, which version manager would you recommend? Previously I recommended asdf, frum, or chruby.

Yes, I wrote that message 30 years ago. I actually had copies of both "Words into Type" and the "Chicago Manual of Style" on my desk when I wrote that message because I had worked in the publishing industry as a copy editor before getting involved in the tech industry. Some publishing houses had their own style guides or were inconsistent from book to book (like O'Reilly), but WIT and Chicago were the accepted authorities. Whether the conventions of the book industry should have guided technologies like web browsers is a matter for debate, but at the time I wanted to make the point that two spaces after a period were typists' habit and not a publishing convention. I'm amazed that this point is still debated so passionately when most people have never touched a typewriter.

I'm Daniel Kehoe, and I participated in the brief www-talk "Space after Periods" discussion thirty years ago (as Daniel Miles Kehoe).

I wrote a blog post three years ago, "Personal History: Punctuating the Web (1993)," that offers more context and perspective on the discussion [0].

We discussed this on Hacker News three years ago when Microsoft Word began flagging double spaces after a period as errors [1].

That brief discussion thirty years ago still seems to arouse strong feelings for people.

Today, looking back, I'm mostly amused that Guido van Rossum (the developer of the Python programming language) wanted web browsers to collapse multiple spaces to a single space after periods. Python, notably among programming languages, treats whitespace as significant.

[0] https://danielkehoe.com/posts/personal-history-punctuating-t...

[1] https://news.ycombinator.com/item?id=22975299

Relay.club | AI Software Engineer | REMOTE | Full-time | https://www.relay.club/

LOCATION: Fully remote

TECH STACK: OpenAI, Typescript, NextJS, React, Supabase

We're relay.club, an influencer management platform that connects brands with social media influencers. We're a small and growing startup that has raised over $350,000 in our first round of funding.

Workplace satisfaction, code quality, and professional development are important to us. Strong company culture of empowerment.

► AI Senior Software Engineer

Show a job or personal project using the OpenAI API.

► AI Apprentice Software Engineer

For early career devs and coding camp new graduates. Show a personal project using the OpenAI API.

Our hiring process takes about three hours and consists of only interviews and a one-hour mock code review.

Job descriptions: https://hiring-relay-club.pages.dev/ Interested? Email our COO, sophia@relay.club.

Relay.club | JavaScript Engineer, Product Manager | REMOTE | Full-time | https://www.relay.club/

LOCATION: Fully remote

TECH STACK: NextJS, React, Supabase

We're relay.club, an influencer management platform that connects brands with social media influencers. We're a small and growing startup that has raised over $350,000 in our first round of funding.

Workplace satisfaction, code quality, and professional development are important to us. Strong company culture of empowerment.

► JavaScript Engineer

► Product Manager

Our hiring process takes about three hours and consists of only interviews and a one-hour mock code review (for engineers).

Job descriptions: https://hiring-relay-club.pages.dev/. Interested? Email our COO, sophia@relay.club.

In 1991, I wanted to write about the WWW for NeXTWORLD magazine. Tim Berners-Lee replied to my email, saying he was reluctant to widely publicize that code for the web was available for free, as management at CERN had not yet agreed to release it publicly. The web grew slowly the first two years. At the time, I really didn't understand his hesitance, but in hindsight it was for the best. Two years ago, I wrote about the early days of the web on its 30th anniversary [0].

To me, Tim Berners-Lee is brilliant not just for his vision of a WorldWideWeb and its technical underpinnings, but also for an astute political streak in shepherding it to widespread adoption. I appreciate Jay Hoffmann (the article's author) for marking the significance of the anniversary.

[0] https://danielkehoe.com/posts/early-days-of-the-web-1991/

Relay.club | Senior JavaScript Engineer | REMOTE | Full-time | https://www.relay.club/

LOCATION: Fully remote

TECH STACK: NextJS, React, Supabase

We're relay.club, an influencer management platform that connects brands with social media influencers. We're a small and growing startup that has raised over $350,000 in our first round of funding.

Workplace satisfaction, code quality, and professional development are important to us. Strong company culture of empowerment.

► Senior JavaScript Engineer

Our hiring process takes about three hours and consists of only interviews and a one-hour mock code review.

Job descriptions: https://hiring-relay-club.pages.dev/. Interested? Email our COO, sophia@relay.club.

Relay.club | Product Engineer, Tech Admin | REMOTE (Europe / Middle East / Africa / APAC ) | Full-time | https://www.relay.club/

LOCATION: Fully remote, within 6+/- hours of Singapore.

TECH STACK: Supabase, NextJS, React (req'd), JavaScript (req'd)

We're relay.club, an influencer management platform that connects brands with social media influencers. We're a small and growing startup that has raised over $350,000 in our first round of funding.

Workplace satisfaction and professional development are important to us. You'll find our company culture of empowerment and self-direction is more like working in California than many companies in Asia.

► Product Engineer (NextJS Supabase)

Our hiring process takes about three hours and consists of only interviews and a one-hour mock code review.

► Technical Team Administrator

An entry-level position to launch a career in tech, leading to software engineer, technical writer, or product manager.

Job descriptions: https://hiring-relay-club.pages.dev/. Interested? Email our COO, sophia@relay.club.