HNHacker News
TopNewBestAskShowJobs

paddy_m

2,239 karma · joined April 9, 2008

Hacking on buckaroo the exploratory data analysis table widget for pandas and jupyter https://github.com/paddymul/buckaroo hnchat.com:yPQM3az7FbxcBqz4ZUyD hn@paddymullen.com
submissionscomments
paddy_m··on Nearly all UK drivers say headlights are too bright
Blame the obama CAFE regulations that accounted for wheelbase and car volume, giving manufacturers lower fuel economy standards for larger cars. Then the CAFE standards that hold trucks/SUVs to a lower standard.

The economically efficient way to get the fuel economy result would have been to increase gasoline taxes, but that's a non starter politically. Higher gas prices would allow people to choose to keep a cheap gas guzzling truck/car, buy a new more efficient and expensive car, or buy a new slightly more efficient slightly more expensive car. It would have been simpler though and given consumers more choice.

paddy_m··on Ask HN: What Are You Working On? (Nov 2025)
I have been working on Buckaroo - my table display library for dataframes in notebook environments. Buckaroo adds table and analytics features like histograms, summary stats, sorting, and search to every dataframe. Recently I have been working to make it work better with large datasets.

This involves making it lazy for polars, allowing it to read arbitrarily large files no longer requiring loading the entire dataframe into memory. When a large dataframe initially displays, no summary stats will be available. Summary stats are computed in the background in groups of columns. Then results are cached per column. To accomplish this I wrote a polars plugin in rust that computes hashes of columns. Dealing with large data like this is tricky, operations sometimes crash, sometimes take all available memory, and sometimes they just run for a very long time. I have also been building an execution framework for Buckaroo. It uses multiprocessing based timeouts, and the caching to execute summary stats in the background.

Being able to control the execution, recover from timeouts, crashes and memory exhaustion opens up some interesting debugging tools. I have written methods that take arbitrary groups of polars expressions and produce a minimal reproduction test case through a git-bisect like process.

All of this assures that if individual columns of a dataframe fits into memory, summary stats will be computed for the entire dataframe in the background. And because it is cached, the next time you open the same dataframe, the stats will be display instantly. When exploring data I do this in an adhoc way manually (splitting up a dataframe by columns and rows), but it is error prone. This should all be automatic.

I will be presenting this at PyData Boston in December.

The Column's the limit: interactive exploration of larger than memory data sets in a notebook with Polars and Buckaroo

paddy_m··on Ask HN: Who wants to be hired? (November 2025)
Location: Boston Remote: Yes Willing to relocate: Yes Technologies: Python, Pandas/Numpy, Jupyter, JS/TS and something many devs skip: actually talking to users. Résumé/CV: https://www.linkedin.com/in/paddymullen/ Email: paddy@paddymullen.com I'm a developer who believes code isn't valuable unless it's used. That's why I start with conversations, not commits. I work to understand real problems before reaching for shiny new packages. I build tools that are simple, effective, and easy to adopt. My goal is always to solve the problem and make sure people know there’s a solution. In my next role, I'm looking to work with a team that values clarity and impact. I'm especially interested in data heavy environments where thoughtful tooling can make workflows better. Most recently, I built [Buckaroo](https://github.com/paddymul/buckaroo) an open source data table for Jupyter using Pandas/Polars. It combines fast rendering, summary stats, and a low-code UI. It scratches an itch I've had for over a decade and has already streamlined my own analysis workflow.
paddy_m··on Bare Metal (The Emacs Essay)
https://github.com/paddymul/emacs-from-scratch/blob/master/p...

and

https://github.com/paddymul/emacs-from-scratch/blob/master/p...

The emacs-lisp for changing the behaviour of consult-grep was quite complex and took a while to write.

paddy_m··on Show HN: Apache Fory Rust – 10-20x faster serialization than JSON/Protobuf
How does this deal with numeric types like NaN, Infinity...?
paddy_m··on Show HN: Apache Fory Rust – 10-20x faster serialization than JSON/Protobuf
What's the story for JS. I see that there is a javascript directory, but it only mentions nodejs. I don't see an npm package. So does this work in web browsers?
paddy_m··on Bare Metal (The Emacs Essay)
I customized grep-find on my setup. I have a shell script so that it does the following (in typescript-mode)

first search ts, tsx, js, jsx files in the current project. Exclude .git, node_modules...

then search node_modules with the ts.. extensions, still exclude .git

finally search the whole tree for .py files still exclude .git, /dist...

This is coupled with consult-find-grep. I basically want to find a string in the most relevant file type. I never want a result from node_modules first in the results. It took some work, but the results are quite nice!

paddy_m··on US cities pay too much for buses
Busses are loud, but not nearly as load and polluting as cars in aggregate
paddy_m··on US cities pay too much for buses
citation needed.
paddy_m··on How I, a non-developer, read the tutorial you, a developer, wrote for me
If anyone has an open source project and wants a review of their README and docs, please get in touch. I enjoy providing this type of feedback, and I think every project can benefit from it.
paddy_m··on Formatting code should be unnecessary
This comes up in testing a lot. I want testing data included in test source files to look tabular. I want it to be indented such that I can spot order of magnitude differences.
paddy_m··on Coalton Playground: Type-Safe Lisp in the Browser
I have heard multiple people claim that macros are incompatible with strong or static typing and I don't see why.

If there were a lisp with optional static typing like typescript, it would seem to me to be completely possible to write macros that write types. In many cases it woudl do away with the need for generic types (and allow multiple competing syntaxes for dynamic types). Most interestingly it would allow you to write new generic forms instead of waiting for whatever the language designer gives you. It would also allow you access to types at runtime (which the typescript language designers took away).

Maybe people were telling me that lisp style macros were incompatible with hindley millner typing, but I still don't see how. The macros would just emit a hindley milmner subset.

What am I missing?

paddy_m··on AOL closes its dial up internet service
I was recently wondering if that was still running.
paddy_m··on Claude Code IDE integration for Emacs
That would be a reasonable stance if the difference were in incubating a new project vs excluding functionality from blessing because it interfaces with non free software. The functionality I'm talking about is excluded because of the latter.
paddy_m··on Claude Code IDE integration for Emacs
Well the linking into GCC was a C code issue. For emacs, there is a large collection of elisp that is shipped with the official package. Preventing worthy enhancements of that core package solely in the name of a distorted view of freedom hinders emacs and the adoption of emacs.
paddy_m··on Claude Code IDE integration for Emacs
I haven't misunderstood the problems that RMS talks about, I agree with his prescient analysis. I firmly disagree that RMS the person is the best person to lead a software producing organization that aims to deliver a free future.

A simple reductive example. Imagine a great software leader that leads an org that writes great code and generally achieves the org's goals, but once a week, they say something offensive that discourages 1/10th of new users. A better leader would be someone who does all of the same things, except for the offensive comments.

I am saying that RMS makes offensive distracting comments, and regularly makes project manager choices that slow the adoption of free software. If you criticize him, people come back to "but he's right philosophically" which he is, and that misses the point. He has wrapped the FSF into an ego play for himself where he is in control or at least an important roadblock to software progress. If RMS cared as much about software freedom (as opposed to his ego) as he says, he would work to allow better leaders to develop and have power in the FSF org.

paddy_m··on Claude Code IDE integration for Emacs
This is due to Richard Stalllman. He thinks that integrating "non-free" alternatives when free alternatives don't yet exist slows down free software development. Not just free as in freedom alternatives, not just free as in GPL licensed, but free as in FSF controlled projects. He did the same thing with linking extensions to GCC, LLVM debugger integration into emacs (fuzzy on that one), possibly treesitter into emacs, bzr vs git for emacs code source control, and a CI build farm for emacs. In each one of those cases, he eventually relented and the core project, eventually integrated the non-free alternative years later.

In the meantime this delaying didn't stop the non-free alternatives, but it did slow down adoption of the core project. This is attrocious project management that is driving people to non-free software. In the most egregious cases (bzr and CI build farm), it was done only because of his ego and wanting the FSF to matter.

paddy_m··on Ask HN: Who wants to be hired? (August 2025)
Location: Boston

Remote: Yes

Willing to relocate: Yes

Technologies: Python, Pandas/Numpy, Jupyter, JS/TS and something many devs skip: actually talking to users.

Résumé/CV: https://www.linkedin.com/in/paddymullen/

Email: paddy@paddymullen.com

I'm a developer who believes code isn't valuable unless it's used. That's why I start with conversations, not commits. I work to understand real problems before reaching for shiny new packages. I build tools that are simple, effective, and easy to adopt. My goal is always to solve the problem and make sure people know there’s a solution.

In my next role, I'm looking to work with a team that values clarity and impact. I'm especially interested in data heavy environments where thoughtful tooling can make workflows better.

Most recently, I built [Buckaroo](https://github.com/paddymul/buckaroo) an open source data table for Jupyter using Pandas/Polars. It combines fast rendering, summary stats, and a low-code UI. It scratches an itch I've had for over a decade and has already streamlined my own analysis workflow.

paddy_m··on Mini robots detect and fix water pipe leaks without digging
Also, fun fact about Boston (MA?) construction laws. Per block, a crew is only allowed two steel plates...

In the past year, the gas line and water main on my street has been replaced. Which has resulted in 6 excavations of the street at excruciatingly slow and loud pace with the vac truck. They excavate once to transfer each finger connection (to the houses) and attach the feeder to a temporary pipe, refilling their progress each day. Once a segment (about a city block or two) been transferred to the temporary line, they excavate again to remove the old line, refilling each day. Finally they lay the new line and connect the finger lines to it.

If you can only cover two steel plates worth of trench overnight, there isn't a chance for the gas team to coordinate with the water team.

With better laws this would have taken a 1/3rd of the excavation, possibly a 1/6th of the excavation. Since excavation and refilling were most of the work in any day, this should also have led to the same cost decrease.

I don't know the exact law or regulation, but I have heard about it from multiple sources, and do intend to being it up with city council.

paddy_m··on Mini robots detect and fix water pipe leaks without digging
The giant vac truck generally is for safe digging around other unknown utilities. Sometimes this is combined with a water jet that loosens soil, and the vac sucks up the soil and water.

If they wanted to just drain an excavation, they would use a regular trash pump (capable of handling solids/sand) and run the discharge hose to a nearby stormdrain.

paddy_m··on A Rust-TypeScript integration
So, this is a jupyter/anywidget project. I think OpenAPI can work, but it's a bit of grafting I think.

Further, I develop the frontend visualization library separately from the python code. It is much more natural to write typescript there, first for types that power the frontend. I just want to make sure earlier that python is sending the same types. I'd like to avoid pydantic, because it is a another dependency, and I control both sides. I'm not worried about an errant request/response, just proviing at build time that I am sending and receiving the proper compatible types.

paddy_m··on A Rust-TypeScript integration
I have a project that has a python backend and react typescript frontend. Both are typed. How do you all handle resolving types between two systems like that. Ideally I'd like to be able to write types in typescript, and write python types, then verify that the types are compatible (not identical). I frequently frontend side features that add new keys to dicts, and fill in python support later.
paddy_m··on Ask HN: Who wants to be hired? (July 2025)
Location: Boston

Remote: Yes

Willing to relocate: Yes

Technologies: Python, Pandas/Numpy, Jupyter, JS/TS and something many devs skip: actually talking to users.

Résumé/CV: https://www.linkedin.com/in/paddymullen/

Email: paddy@paddymullen.com

I'm a developer who believes code isn't valuable unless it's used. That's why I start with conversations, not commits. I work to understand real problems before reaching for shiny new packages. I build tools that are simple, effective, and easy to adopt. My goal is always to solve the problem and make sure people know there’s a solution.

In my next role, I'm looking to work with a team that values clarity and impact. I'm especially interested in data heavy environments where thoughtful tooling can make workflows better.

Most recently, I built [Buckaroo](https://github.com/paddymul/buckaroo) an open source data table for Jupyter using Pandas/Polars. It combines fast rendering, summary stats, and a low-code UI. It scratches an itch I've had for over a decade and has already streamlined my own analysis workflow.

paddy_m··on Framework Laptop 12 review
FWIW I didn't choose the docker or nextjs stack. Sometimes you have clients or work at a job that makes tech stack choices you don't agree with.
paddy_m··on Framework Laptop 12 review
What do you all use for a modern web development machine. 16GB of ram is no longer enough, I will soon upgrade to a new MBA with 32GB, but I still fear that won't be enough. I was looking at the latest framework and you can get it with 96GB of ram for $2k, that's $3600-$3800 for a mac and it's a much larger mac than I want. A quick scan of Dell and Lenovo non workstation class laptops didn't show any with more than 32GB.

Memory used by various apps:

docker VM take 8Gb for simple supabase images

Firefox take 5-8GB

BasedPyRight takes 2GB

Nextjs server takes 2GB

paddy_m··on Biofuels Policy, a Mainstay of American Agriculture, a Failure for the Climate
Because resources are finite. Subsisdies and household income invested in Electric cars would have a much greater benefit if put towards ebikes. Most car trips are short and could be replaced with ebike trips (and that's without any infrastructure change). Leave long trips to gas cars that already exist.

For public transit, rail should be electrified because it has lower maintenance requirements and better acceleration. Trolley busses are great for similar reasons (and noise). Battery busses are a horrible idea, expensive and not yet reliable. Transit agencies are replacing diesel busses with battery because of lower emissions, and at the same time reducing frequency of service, making public transit less usable and less used -- encouraging personal vehicle use.

paddy_m··on Biofuels Policy, a Mainstay of American Agriculture, a Failure for the Climate
BEV are not a serious climate solution unless you are talking about ebikes. BEV also contribute a load of pollution to waterways via tire wear. ebikes are cheaper to purchase and make a significant change.
paddy_m··on Show HN: McWig – A modal, Vim-like text editor written in Go
That's a lot of code for a toy project, impressive commitment!

How does the VIM family generally handle extensibility?

Do you have any unique takes there?

I use Emacs, and I get how emacs does it (smallish runtime for text display and lisp interpreter, everything else in lisp).

paddy_m··on Brian Wilson has died
Ben probably wouldn't be offended by that. He described Ben Folds Five as "punk rock for sissies". Further he said that he was always compared to Billy Joel, but hadn't heard him until he was much older, he always cited Elton John as an influence.
paddy_m··on Tesla seeks to guard crash data from public disclosure
An e-bike is one of the few places where DRM is actually attractive. I don't know the state of DRM on batteries, but I would feel significantly more confident parking an e-bike if I could remove the battery, and know that a replacement battery had to be paired with the frame/motor from a reputable dealer. Listing a bike as stolen would prevent this. I know that DRM can be cracked, but this would help a lot. note: I don't currently own an e-bike.

Note how infrequently iPhones are stolen since apple got serious about preventing it.

← PreviousPage 2 of 21Next →