Advertisement · 728 × 90

Posts by Joseph Hale

New Podcast by 37signals - Sneak Peak!
New Podcast by 37signals - Sneak Peak! First episode drops never 😹 April Fools! Sorry if you got your hopes up, but a real podcast about this would be too difficult and off-brand. #aprilfools #cats #dogs

www.youtube.com/watch?v=4JGn...

6 days ago 0 0 0 0

1001-1000 = 1
500-433 = 77, oh wait it's actually 67
1000-500 = 500
500 + 67 + 1 = 568

Essentially, (1) determine the "diff" between each operand and an easy to compute number, (2) do the easy computation, (3) add the easy result and the diffs.

3 weeks ago 0 1 0 0

Just wait until you start getting all the free ebooks too :P

Gotta love the spammers putting your email in every open form that will accept it.

1 month ago 0 0 0 0

`frozendict` has officially been accepted as part of #Python 3.15!

discuss.python.org/t/pep-814-ad...

1 month ago 1 0 0 0

Wow! This is excellent!

I think the alignment also gives a visual anchor point for each column. That lets me read down each column along a straight line instead of a jagged edge. My eyes feel much more relaxed as I scan the information.

The spans for equal values and subtle bars are amazing too!

2 months ago 2 0 0 1

Excellent choices of stats for the comparison!

One nit... The center alignment makes it harder to visually compare the sizes.

2 months ago 3 0 1 0

DRY code is pretty good. DRY teams, not so much.

Open source is just as much about the people it builds up as it is about the projects/code those people then build and share.

2 months ago 1 0 1 0

Fortunately, computers are already being updated to use 64-bit integers, which will delay the Epochalypse for approximately 292 billion years 🎉.

#NerdyHolidays

2 months ago 2 0 0 0

Many computers track time by counting the number of seconds since January 1, 1970 (the "Epoch"). They count with a signed 32-bit integer, which will last until January 19, 2038 at 03:14:07 UTC. Then, the value will "overflow" and computers will think it is December 13, 1901. 😧

2 months ago 1 0 1 0
Video

Happy #Epochalypse Day! It's T minus 12 years until the world faces new set of Y2K-type issues.

Why?

2 months ago 1 0 1 0
Advertisement

jhale.dev/feed.xml

2 months ago 0 0 0 0
ActiveRecord::FinderMethods Returns true if a record exists in the table that matches the id or conditions given, or false otherwise. The argument can take six forms:

It's fun when framework/library APIs make me smile. Check out `ActiveRecord.forty_two`

api.rubyonrails.org/classes/Acti...

3 months ago 2 0 0 0
Preview
PEP 814 – Add frozendict built-in type | peps.python.org A new public immutable type frozendict is added to the builtins module.

Full details in PEP 814: peps.python.org/pep-0814/

4 months ago 1 0 0 0
Two Python code snippets demonstrating the value of the new `frozendict` immutable type coming in version 3.15

Typically, you should avoid using a `dict` as a default argument in a function because it's mutable. When 3.15 is released, you can safely use a `frozendict` instead.

Two Python code snippets demonstrating the value of the new `frozendict` immutable type coming in version 3.15 Typically, you should avoid using a `dict` as a default argument in a function because it's mutable. When 3.15 is released, you can safely use a `frozendict` instead.

Looks like #Python 3.15 will include a built-in, immutable `frozendict` type.

"Using an immutable mapping as a function parameter’s default value avoids the problem of mutable default values."

There are other benefits too (e.g. `frozendict`s are hashable).

4 months ago 2 0 1 1

And it's now part of Mona OS, the badge's operating system!

github.com/badger/home/...

5 months ago 0 0 0 0

Some legit-ish reasons I've heard:

(1) First time OSS contributors learning about contribution flows, without creating new (pointless) issues/PRs.

(2) Attempts at helping to triage PRs, e.g. unblock/"upvote" a desired patch.

5 months ago 0 0 0 0

Some of the Hack Club students were working on this during the conference!

5 months ago 1 0 0 0

github.com/thehale/badg...

5 months ago 0 0 0 0
Post image

If you're at #GitHubUniverse, I just wrote a custom filesystem app for the hackable badges!

5 months ago 1 0 1 1
Advertisement

So exciting! Congrats!

5 months ago 1 0 0 0

Hilos como este son fantásticos :D

Y u-te-efe ocho :)

5 months ago 1 0 0 0
[LinkedIn Post by Ben Bradford]

Every time I switch AI tools, I start from zero. I'm starting to think that I can't be the only one feeling this frustration.

Here's a small example...I recently used an AI tool to build a presentation and the AI kept structuring slides in ways that didn't match how I actually present. It was text heavy, wrong flow, missing my voice. It had no idea how I work because it had no context about my previous presentations. I stopped and built the slides manually.

My problem is that my context is locked up somewhere else. I've spent hours with Claude, ChatGPT and Gemini and none of that travels with me when I jump into a different tool.

And this is happening everywhere now. Most of the SaaS apps I use daily are adding AI powered features by the same foundational models. But when I use those features, they start from zero. They don't know anything about how I work or what I need.

What I actually want is control over my own context, locally. Build it once, keep it with me, and selectively share pieces with whatever tool I'm using. When a new model comes out that's better for my specific task, I want to test it without rebuilding my entire workflow from scratch. When I open an app with AI built in, I want to drip in just enough context to make it useful without explaining myself all over again.

Right now it works backwards. The tools own my memory. I'm stuck rebuilding context in every new app, every new conversation, every new project. And when the AI doesn't have that context, it's not useful to me at all.

I've been researching tools like Mem0 and SuperMemory but they feel more like tools an engineer would use to build an app. I know folks like Dharmesh Shah of HubSpot have written about this and he seems optimistic about where the solutions are headed. 

Has anyone found a better way to manage context across multiple AI tools?

[LinkedIn Post by Ben Bradford] Every time I switch AI tools, I start from zero. I'm starting to think that I can't be the only one feeling this frustration. Here's a small example...I recently used an AI tool to build a presentation and the AI kept structuring slides in ways that didn't match how I actually present. It was text heavy, wrong flow, missing my voice. It had no idea how I work because it had no context about my previous presentations. I stopped and built the slides manually. My problem is that my context is locked up somewhere else. I've spent hours with Claude, ChatGPT and Gemini and none of that travels with me when I jump into a different tool. And this is happening everywhere now. Most of the SaaS apps I use daily are adding AI powered features by the same foundational models. But when I use those features, they start from zero. They don't know anything about how I work or what I need. What I actually want is control over my own context, locally. Build it once, keep it with me, and selectively share pieces with whatever tool I'm using. When a new model comes out that's better for my specific task, I want to test it without rebuilding my entire workflow from scratch. When I open an app with AI built in, I want to drip in just enough context to make it useful without explaining myself all over again. Right now it works backwards. The tools own my memory. I'm stuck rebuilding context in every new app, every new conversation, every new project. And when the AI doesn't have that context, it's not useful to me at all. I've been researching tools like Mem0 and SuperMemory but they feel more like tools an engineer would use to build an app. I know folks like Dharmesh Shah of HubSpot have written about this and he seems optimistic about where the solutions are headed. Has anyone found a better way to manage context across multiple AI tools?

#atproto app idea: Sharing personal context between AI model providers...

5 months ago 3 0 2 0

I got the same email. I read it more as a product announcement/advertising about their vision for what's to come in the future.

6 months ago 0 0 0 0
Preview
GitHub - thehale/HabitSync-for-Todoist: Sync completed tasks from Todoist to Loop Habit Tracker. Keeping track of your habits has never been easier! Sync completed tasks from Todoist to Loop Habit Tracker. Keeping track of your habits has never been easier! - thehale/HabitSync-for-Todoist

And/or check out the code (it's open source)!

github.com/thehale/Habi...

6 months ago 2 0 0 0
Preview
Habit Sync for Todoist - Apps on Google Play Keeping track of your habits has never been easier!

Try out the app!

play.google.com/store/apps/d...

6 months ago 1 0 1 0
Video

My "Habit Sync for @todoist.com" app is about to get a significant update, so here are some "behind the scenes" of what it took.

- 9 major version upgrades of #ReactNative
- Writing my own component library
- Translating #Java to #Kotlin

@github.com #ZeroToMergedContest

6 months ago 4 3 1 0
Preview
My experience at Rails World 2025 Last week I had the privilege of attending Rails World 2025 in Amsterdam. I learned a ton! and I met lots of amazing people! Here’s my story…

jhale.dev/posts/rails-...

6 months ago 0 0 0 0
Post image

"It felt a bit like the opening of 'A Hitchhiker’s Guide to the Galaxy' ..." #RailsWorld 2025

6 months ago 0 0 1 0
Preview
My experience at Rails World 2025 Last week I had the privilege of attending Rails World 2025 in Amsterdam. I learned a ton! and I met lots of amazing people! Here’s my story…

jhale.dev/posts/rails-...

6 months ago 0 0 0 0
Advertisement
Post image

"The message was clearly that individuals, like you and me, have the power to build things to improve the world – we don’t have to wait for someone else" #RailsWorld 2025

6 months ago 0 0 1 0