Sign in

Paddy Mullen

@paddymullen.bsky.social
96 followers 550 following 118 posts

Boston/Newport. Python/PyData/Jupyter dev. Building the Buckaroo widgetto enhance the DataFrame viewing experience in Jupyter github.com/paddymul/buckaroo

PostsRepliesMedia
Paddy Mullen @paddymullen.bsky.social · 20/02/2026
Ran out of tokens at 430 on Friday. Reset at 6, time to head home
030
Paddy Mullen @paddymullen.bsky.social · 11/12/2025
19 million rows. 450 MB parquet file. Fully interactive in Jupyter. No servers. No subscriptions. Still open source. Just Unix processes doing the heavy lifting in the background while you keep exploring. That's LazyBuckaroo - interactive data exploration on your laptop, powered by Polars.
040
Paddy Mullen @paddymullen.bsky.social · 15/10/2025
Next fun polars extension I’m going to write - Crash_on_demand. It will crash whenever called or at specified conditions. Why? Well polars and analytical workflows fail occasionally, I’m writing a resilient workflow engine, and I want deterministic crashes for testing.
030
Paddy Mullen @paddymullen.bsky.social · 05/10/2025
I wrote my first rust code and polars extension - pl_series_hash. It runs xx_hash over an entire series to get a single hash u64. Works on most all Polars data types including nested structs, it's fast. WIll be very useful for caching summary stats. github.com/paddymul/pl_...
github.com
GitHub - paddymul/pl_series_hash: a polars plugin to performantly cache series
a polars plugin to performantly cache series. Contribute to paddymul/pl_series_hash development by creating an account on GitHub.
120
Paddy Mullen @paddymullen.bsky.social · 21/08/2025
Looking at the data with Buckaroo - My talk from PyData Boston is now up on youtube. www.youtube.com/watch?v=Htah...
youtube.com
Paddy Mullen - Looking at the Data with Buckaroo (PyData Boston 2025)
YouTube video by PyData
110
Paddy Mullen @paddymullen.bsky.social · 11/08/2025
After a bunch of work with prot, I got my custom find-grep script plumbed into emacs. It searches a python project for matches in preferred files first (not site-packages, node_modules, py, js, tx extensions preferred). Then it runs a much more comprehensive search of those excluded directories
100
Paddy Mullen @paddymullen.bsky.social · 11/08/2025
Life pro tip. Next time you have to assemble IKEA furniture, buy yourself a 4mm hex t-handle. and a 4mm wera (or wiha) allen key. So much easier. www.kleintools.com/catalog/t-ha...
kleintools.com
4 mm Hex Key, Journeyman™ T-Handle, 6-Inch - JTH6M4 | Klein Tools
Klein hex-keys are the tools professionals cannot afford to be without. Heat-treated and tempered for superior strength and durability. Klein hex-keys are designed for a precise fit in sockets, preven...
020
Paddy Mullen @paddymullen.bsky.social · 09/08/2025
UGH, I thought I was so slick. I had a nice function that used polars to convert a csv to parquet with enum columns for sparsely populated columns. I thought it saved about 30% on a 700 meg parquet file (10G csv). Then I dug some more and found out that I was encoding all possible sparse value
100
Paddy Mullen @paddymullen.bsky.social · 01/08/2025
Some content is on Youtube and few other places (heavy equipment, dirt bikes...). But I realized generally I have been searching youtube for more topics because I trust the results more than SEO spam... And this is after I switched to ddg. Obviously there are shills on yt, but beats listicles.
000
Paddy Mullen @paddymullen.bsky.social · 17/06/2025
There is some good stuff on facebook. Fun post from the mainframers group about an IBM Sytem 370 card for the IBM PS/2. www.facebook.com/share/p/17tx...
Some people may ask, "What is a mainframe?".  Well, the answer varies, everything from the multi-ton beasts, to the smaller versions.  How small?  May I present one of the mainframes I used to operate/administer, an IBM P/370.  That's a complete IBM S/370 processor, including a full 16M of memory, on a single MCA card, which fit into a PS/2 model 95 system, and which ran VM/SP 5.  
Once, just for grins and giggles, I IPLed a second level VM system.  Then, for more grins and giggles, I IPLed a third level VM system.  But, it drove me crazy trying to remember which prompt to use for which system.  Still, it demonstrated how thorough of an architecture implementation the card was. 
https://en.wikipedia.org/.../PC-based_IBM_mainframe...
It was great having my own personal mainframe, which I used for product development and testing.  It allowed me to do test installs of software on a real mainframe.  
Anyway, since some of y'all are posting really great pictures of machine rooms and big mainframes, I thought I'd offer a glimpse of what may be one of the smallest mainframes.  🙂
Oh, yeah, there was a follow-on product, the P/390, which was a S/390 system on a card.  I lusted after one for many years, but was never able to justify it.  And, there were a couple of proceeding products, the 7437, which was a full S/370 in a box about the size of a PS/2 model 95.  There was also the XT/370, which was a PC/XT, with a card-set in it which was a partial implementation of the S/370 instruction set (one of which I happen to personally own).I was the team leader for the 7437 project and designed most of the CPU. It used an IBM bit slice (similar to the AMD 2900), and an IBM chip called FLAINE which implemented the floating point instructions. The rest of the CPU was built using mostly 7400F and 7400LS chips. The CPU had a writeable control store of 8K words of 96 bits each. Initially, we implemented dynamic address translation in 7400 logic, but then one of our engineers, Tak Ng, designed a CMOS chip to do the translation, and that went into the product-level release. The chip replaced a whole card worth of 7400 logic. The 7437 consisted of 6 cards, each approximately 9x12". The cards were the Instruction Unit, Execution Unit, Control Store, PS2 Interface and two 8 MB memory cards. Below is a photo of the writeable control store card. It's the only piece of hardware I still have.
The XT/370 was based on a Motorola 68000 that IBM paid Motorola to modify to execute 370 instructions. The chip only could run CMS and not CP as it did not support supervisor state. Instead CP functions were provided by X86 code running on the PC.
The P/370 and the P/390 chips were also designed by Tak Ng.
The 7437, P/370 and P/390 were all done in Bill Beausoleil's IBM Fellow department by a team of 6 to 10 engineers and programmers.
Bill wanted IBM to sell the 7437 for about $5,000. But that would have seriously broken IBM's pricing model vs the cost/performance of traditional mainframes like the 4341 which sold for something like $100,000. VM wanted to charge something like $100K for a 7437 license,
Upper level executives were frightened that customers would buy a slew of 7437s instead of a 3090, costing IBM millions in profit. They swore that they would never let the 7437 go out the door if it meant losing the sale of even one 3090. In the end, they severely restricted who could buy a 7437 by bundling it with a 5080 graphics workstation and pricing it at $50,000.
000
Paddy Mullen @paddymullen.bsky.social · 13/06/2025
On the toughest most annoying problems I need to try to put in a half hour to an hour a day, and let ideas percolate. But actually do that work, it's much more effective than hours of grinding. I'm thinking about devops stuff especially
000
Paddy Mullen @paddymullen.bsky.social · 13/06/2025
You hear those stories about how garbage collection on lisp machines in the 80s didn't really work and engineers just restarted the machine once a day. Then I realized I do the same thing with firefox/chrome. Need to upgrade to a 32+GB laptop
000
Paddy Mullen @paddymullen.bsky.social · 11/06/2025
I have started heavily typing my python code. I’m late to the party on this one, I know, but here are some thoughts. I was prompted by finally getting eglot mode working with basedpyright in eMacs.
100
Paddy Mullen @paddymullen.bsky.social · 09/06/2025
Hit a snag with the multi-index refactoring. The short of it is that dataframe serialization is really tricky and relying on assumption and default behavors will bite you, always
100
Paddy Mullen @paddymullen.bsky.social · 08/06/2025
And I now have pandas MultiIndex columns rendering nested locally.
Image showing buckaroo in marimo rendering a dataframe with multi index columns.  the headers are nested
100
Paddy Mullen @paddymullen.bsky.social · 08/06/2025
Bahhhh. Traitlets doesn't like typing. I'm trying to add types to my project, and I have written most of them, but my project heavily uses traits, and they don't get along with python typing
000
Paddy Mullen @paddymullen.bsky.social · 07/06/2025
I'm kneedeep in adding proper multi index-column support to Buckaroo. MultiIndexes are kind of a corner case of pandas, super powerful but often forgotten. Many tables don't display them properly because they are tricky. They don't serialize to JSON natively. #python #pandas #datascience #pydata
Mockup of multi indexes in storybook for buckaroo.  This shows the nested column headers
110
Paddy Mullen @paddymullen.bsky.social · 05/06/2025
So, apparently SRAM NX 1x12 isn't a good fit on a 20 inch wheel. The RD hits the tire in the 3rd largest gear. #cargobike #bike
Image showing limited clearance between the derailleur and tire. Here the derailleur is in the 3rd or 4th largest gear Clearance between the derailleur and the ground when the derailleur is at it's most downward extended position.Riding the cargo bike on grass.  Note the 20 inch rear wheel and 26 inch front wheel.  A coastal scene is in the background.
211
Paddy Mullen @paddymullen.bsky.social · 01/06/2025
I have been playing with beartype. It's a library for fast runtime type verification in python. The maintainer is one of the most entertaining writers I have seen. Period. His response to my feature request/(trying to understand his library) has brought so much joy. github.com/beartype/bea...
github.com
[Feature Request] New `BeartypeInferHintConf(infer_hint_dict_kind)` configuration option for fine-grained dictionary type hint inference 🧘 · Issue #529 · beartype/beartype
Is it within the scope of beartype to do the following: def takes_a_dict(foo): temp = foo['a'] + len(foo['some_str']) b = "asdf" return dict(temp=temp, b=b) infer_hint(takes_a_dict) --- collections...
000
Paddy Mullen @paddymullen.bsky.social · 17/05/2025
#Cargobike wheel build complete. Excited to try this tomorrow
040
Paddy Mullen @paddymullen.bsky.social · 12/05/2025
I made a new Buckaroo general overview video. youtu.be/t-wk24F1G3s (6m50s). It demonstrates the main features of the Buckaroo table UI. #python #jupyter
youtu.be
Buckaroo full tour
YouTube video by Paddy Mullen
010
Paddy Mullen @paddymullen.bsky.social · 11/05/2025
Buckaroo Autocleaning released. Dataframe columns are inspected and cleaning operations are suggested. Different strategies can be interactively cycled through. All of this is extensible. Because it uses heuristics and not LLMs, everything is local and fast. www.youtube.com/watch?v=A-GK...
youtube.com
Buckaroo Autocleaning in depth
YouTube video by Paddy Mullen
120
Paddy Mullen @paddymullen.bsky.social · 05/05/2025
Just had my first emacs coaching session with prot. I have used emacs for years and I'm at a local optimum. So excited to have someone to work through and intentionally get better at the program I live in. protesilaos.com Do any other programmers have coaches?
protesilaos.com
Contact me
Information for contacting Protesilaos Stavrou.
130
Paddy Mullen @paddymullen.bsky.social · 04/05/2025
There is cad vs cad esports. If you are a UI/UX designer, pay attention to how efficient experienced cad users are. Even better, This videos shows a competition measuring the mass of a complex design. Open to any program (Solidworks, NX, Catia) www.youtube.com/live/C1CqIcf...
youtube.com
CAD vs CAD esports Tournament - 2025 SPRING OPEN - 1 PM East Coast, USA
YouTube video by Too Tall Toby
100
Reposted by Paddy Mullen
bobbicodes @bobbicodes.bsky.social · 30/04/2025
I've been writing a #Clojure compiler in JavaScript, and I just benchmarked it with my NES audio emulator and it clocked at over 60fps which means it's fast enough to run in real time. Compiler source: codeberg.org/bobbicodes/n... Emulator: codeberg.org/bobbicodes/n...
codeberg.org
nomad-vite
ES6 Lisp interpreter
193
Paddy Mullen @paddymullen.bsky.social · 01/05/2025
Autocleaning for buckaroo is really shaping up. This is the JLisp code editor showing operations that were added by an auto-cleaning strategy in purple. Multiple strategies are available and they can be cycled through quickly to try different approaches. #buildinpublic
110
Paddy Mullen @paddymullen.bsky.social · 26/04/2025
There is a whole genre of youtube videos explaining how the @mcmastercarr.bsky.social website is so fast. Love the company, love the attention to non react framework of the day JS stuff. www.youtube.com/watch?v=-Ln-...
youtube.com
How is this Website so fast!?
YouTube video by Wes Bos
100
Paddy Mullen @paddymullen.bsky.social · 21/04/2025
Playing with lisp, building mini languages and frameworks is so much fun. It brings a sense of wonder.
010
Paddy Mullen @paddymullen.bsky.social · 21/04/2025
I'm having fun improving my little lisp interpreter. Writing a couple of macros. Added gensym and symbol-value. Gensym was easy, symbol-value and getting it to work in define was much more complex.
000
Paddy Mullen @paddymullen.bsky.social · 15/04/2025
I made a styling gallery for Buckaroo on @marimo.io There are a variety of configurations displayed with narrative explanation, a live widget, and the exact configuration code. Play with it in the browser thanks to the Marimo WASM version. marimo.io/p/@paddy-mul...
marimo.io
marimo | Buckaroo-styling-gallery
Explore data and build apps seamlessly with marimo, a next-generation Python notebook.
010
Paddy Mullen @paddymullen.bsky.social · 05/04/2025
Cleaning up my home directory. Pruning .git's saves a bunch of space find . -type d | grep \.git$ | xargs -I{} sh -c 'cd {}/..; time git gc --prune=all'
000
Paddy Mullen @paddymullen.bsky.social · 26/03/2025
Just stumbled onto VTable from bytedance. It looks like a pretty serious JS Table offering. Possibly a competitor to ag-grid. github.com/VisActor/VTa...
github.com
GitHub - VisActor/VTable: VTable is not just a high-performance multidimensional data analysis table, but also a grid artist that creates art between rows and columns.
VTable is not just a high-performance multidimensional data analysis table, but also a grid artist that creates art between rows and columns. - VisActor/VTable
000
Paddy Mullen @paddymullen.bsky.social · 19/03/2025
Marimo is working hard on making notebooks better. The team has a vision for a better notebook environment and they are executing on it, in the open.
110
Paddy Mullen @paddymullen.bsky.social · 13/03/2025
Buckaroo now works on marimo. marimo.io/p/@paddy-mul... . Sometimes there are benefits to supporting extra platforms. I found a bunch of performance problems because of marimo, that now benefit all notebook environments.
marimo.io
marimo | Buckaroo-Proof-of-Concept
Explore data and build apps seamlessly with marimo, a next-generation Python notebook.
031
Paddy Mullen @paddymullen.bsky.social · 18/01/2025
I have been working on a dataframe diffing tool built on top of buckaroo and datacompy. Here is a preview. Source here github.com/paddymul/buc...
000
Paddy Mullen @paddymullen.bsky.social · 27/11/2024
I saw the office for www.motorvalleyaccelerator.com/en/index.htm... While walking through Modena. Interesting to see startups around cars/racing in Italy
motorvalleyaccelerator.com
Motor Valley Accelerator | The Mobility Startup Accelerator of the Motor Valley, Modena
000
Reposted by Paddy Mullen
Matthew Kay @mjskay.com · 24/11/2024
To give an example of what I was talking about in this #datavis #typography thread: this figure uses at least seven (just counted!) different weights of Source Sans Variable to both create visual hierarchy/emphasis and to maintain even visual texture
Figure 2 from Kay, Matthew. "ggdist: Visualizations of Distributions and Uncertainty in the Grammar of Graphics." IEEE Transactions on Visualization and Computer Graphics (2023).
1676
Paddy Mullen @paddymullen.bsky.social · 24/11/2024
@chittimarco.bsky.social can you recommend any urbanism/transit tours in Florence, Milan, or Genoa?
100
Paddy Mullen @paddymullen.bsky.social · 24/11/2024
Ahh, so frustrated. trying to watch the race from italy first #f1tv acted like the pre-reace show was in progress, with no option for the race. Tried logging out and back in, found out race is geo restricted (even with a VPN). Poor UI, and hard to help yourself w/goog when you don't want spoilers
000
Reposted by Paddy Mullen
Simon Willison @simonwillison.net · 23/11/2024
I think this may be the new hardest problem in computer science - this is very comprehensive, I added some of my own commentary here simonwillison.net/2024/Nov/23/...
simonwillison.net
Importing a frontend Javascript library without a build system
I sometimes think the hardest problem in computer science right now is taking an NPM library and figuring out how to download it and use it from a `<script>` tag …
1719713
Paddy Mullen @paddymullen.bsky.social · 23/11/2024
I mostly plan to post about python, data analysis and what I’m building with Buckaroo for jupyter. Currently though, I’m on vacation in northern Italy. Excited to figure out bsky.
000
Paddy Mullen @paddymullen.bsky.social · 23/11/2024
Just found this cargo bike list. go.bsky.app/33Xj6wT
020
Paddy Mullen @paddymullen.bsky.social · 22/11/2024
Did the Ducati Factory tour today, pictures prohibited 😔. Stood on the floor feet from workers on the 2 engine assembly lines. New line has 36 stations, 5 minutes each, 2 rest stations. Crank/cam machined in house, all else sourced. Amazing to see fixturing and lean manufacturing in person.
030
Paddy Mullen @paddymullen.bsky.social · 22/11/2024
Just trying to keep track of starter packs I have added. bsky.app/starter-pack...
000
Paddy Mullen @paddymullen.bsky.social · 20/11/2024
I found this Apollo book from the 70s wit what looks like computer generated charts. I'm curious what charting software existed back then. #dataviz
000
Paddy Mullen @paddymullen.bsky.social · 19/11/2024
@mkennedy.codes What kind of bike are your riding in your profile picture? Does it have an engine?
100
Paddy Mullen @paddymullen.bsky.social · 19/11/2024
I have to update the error messaging, because the next release will add backwards compatability with notebook 6.5.4 thanks to anywidget.
000
Paddy Mullen @paddymullen.bsky.social · 19/11/2024
I'm getting into bluesky through starter-packs, it's a great concept. I wish the app kept track of which people I'm following came from which pack. I don't even remember all of the starter packs I have visited
000
Paddy Mullen @paddymullen.bsky.social · 19/11/2024
I started working on Buckaroo just before @manzt.sh made AnyWidget. Between that and IPYReact from @maartenbreddels.bsky.social I probably would have saved 4-8 weeks of JS Packaging debugging and errors.
010
Paddy Mullen @paddymullen.bsky.social · 18/11/2024
Thanks @lernerpython.com Excited to see more of the python community here! go.bsky.app/M5WjB4s
010