ben vogt

filters:
view:
tags:
about:
Spreadsheets and similar toolsI tracked various spreadsheet software, services, products, and more for a couple years. Here are some of those notes.Spreadsheets and similar tools2025-05-03T00:00:00IMG_56652025-04-28T00:19:35ZBuilding a music making app with Swift (Part 2 of N)A long overdue update on building a little beat making app with Swift and AudioKit. Chipping away here and there, and having fun with clip art.Building a music making app with Swift (Part 2 of N)2025-04-05T00:00:002025-03-08-ag2025-03-08T00:00:00Z2025-03-08-ajl2025-03-08T00:00:00Z2025-03-08-ct82025-03-08T00:00:00Z2025-03-08-hb2025-03-08T00:00:00Z2025-02-09-feeder2025-02-09T00:00:00Z2025-02-09-h2025-02-09T00:00:00Z2025-02-09-m2025-02-09T00:00:00Z2025-02-09-p2025-02-09T00:00:00Z2025-02-07-lesser-golf-finch2025-02-07T00:00:00Z2025-02-07-us2025-02-07T00:00:00Z2025-02-06-says-phoebe2025-02-06T00:00:00Z2025-02-06-says-phoebe-22025-02-06T00:00:00Z2025-02-06-the-birder2025-02-06T00:00:00Z2025-02-06-tory-pines-rock2025-02-06T00:00:00Z2025-02-05-nick2025-02-05T00:00:00Z2025-02-05-swim-area2025-02-05T00:00:00ZAboutLife, work, contact info, and so on.About2025-02-01T00:00:00Z2024-11-27-crestline2024-11-27T00:00:00ZLogSmall notes of what I'm working on.Log2024-11-17T00:00:002024-11-16-cdf5aa2024-11-16T00:00:00Z2024-10-31-fence2024-10-31T00:00:00ZZig GUI From Scratch (Part 1)A fun project to build a GUI in Zig, targeting WASM, macOS, Linux, and Windows.Zig GUI From Scratch (Part 1)2024-10-27T10:24:06-07:002024-10-19-cat-curtain2024-10-19T00:00:00Z2024-10-07-switzer-canyon2024-10-07T00:00:00Z2024-09-27-green-beetle2024-09-27T00:00:00Zc2d709ef2024-09-14T18:40:05Z2024-09-05-new-neighbor2024-09-05T00:00:00Za6ae1c252024-09-03T13:28:38Z56004bec2024-09-03T13:28:36Z2024-09-02-cowles-mountain2024-09-02T00:00:00Z2024-08-28-pelican-sunset2024-08-28T00:00:00Z2024-08-11-4d5cc8e2024-08-11T00:00:00Z2024-08-11-9f4a14f2024-08-11T00:00:00ZQuick tree-sitter grammarsA formula language that I wrote for a spreadsheet product called PT1 a couple years ago.Quick tree-sitter grammars2024-07-28T11:22:44-05:00annies-canyon2024-07-10T14:08:22Zwelcome-utah2024-06-28T04:03:41Zalcatraz-seaguls2024-06-19T15:23:37Zalcatraz-seaguls-moon2024-06-19T15:16:50Zalcatraz-seagul-fireplace2024-06-19T15:14:38Zsf-from-alcatraz-4ef8db2024-06-19T15:12:49Zalcatraz-seagul2024-06-19T08:42:30Z440-n-wells-e869c02024-06-12T21:10:16Z2024-04-19-bloom2024-04-19T00:00:00Z2024-04-12-break2024-04-12T00:00:00Z2024-04-03-mx2024-04-03T00:00:00Z2024-04-02-chichen-itza2024-04-02T00:00:00Z2024-04-02-fl-tr2024-04-02T00:00:00Z2024-03-24-cat-brick2024-03-24T00:00:00Z2024-03-09-moss2024-03-09T00:00:00Z440-n-wells-5ffd462024-02-28T01:50:07Zduck-b-2024-02-262024-02-26T15:11:16Zduck-a-2024-02-262024-02-26T03:34:28Zsf-99cd562024-02-17T19:54:18Zwww2024-02-04T22:48:35Zsurf-the-net2024-02-04T22:48:09Zsketching-529e482024-01-26T14:17:54Zsketching-0fe4da82024-01-25T14:30:35Z2024-01-20-uptown2024-01-20T00:00:00Z2024-01-01-new-year2024-01-01T00:00:00Z2023-12-23-IMG_23692023-12-23T00:00:00Z2023-12-09-IMG_22712023-12-09T00:00:00Z2023-11-27-winter-leaves2023-11-272023-11-18-cat-radiator2023-11-182023-10-08-ohare2023-10-082023-10-05-the-generationals2023-10-052023-09-23-garfield-park-conservatory-night2023-09-232023-08-07-acadia2023-08-072023-08-07-acadia-lookout2023-08-072023-08-06-acadia2023-08-062023-08-06-acadia-rock2023-08-062023-07-13-rock-island-boat-house2023-07-132023-07-13-rock-island-sunset2023-07-132023-07-13-sunset2023-07-13Building a music making app with Swift (Part 1 of N)A little beat making app with Swift and AudioKit. Went from design to prototype in about a 10 hours of work, and about another 20 to get it to something a little more polished.Building a music making app with Swift (Part 1 of N)2023-07-09T10:19:01-05:002023-06-30-the-mountain-goats2023-06-30Status update - May 2023Here's what I've been doing in May.Status update - May 20232023-06-05T14:54:42-05:002023-05-29-nylon-stitching2023-05-292023-05-27-confluence-great-blue2023-05-272023-05-27-confluence-with-rocks2023-05-272023-05-13-alice-lake-michigan2023-05-13Status update - April 2023What I've been up to in April.Status update - April 20232023-05-09T13:49:44-05:00Git static site generator toolSimple static html site generator for multiple git repos.Git static site generator tool2023-04-07T13:31:49-05:00Excel pivot cache madnessAn archaic and terrible corner of Excel.Excel pivot cache madness2023-01-24T13:11:42-06:00SQLite notesSome personal notes on SQLite.SQLite notes2023-01-22T11:09:17-06:00Postgres notesPersonal notes on Postgres.Postgres notes2023-01-19T11:10:00-06:00Makefile notesJust some useful notes on Makefiles.Makefile notes2022-10-27T15:38:00-05:002022-10-13-arches-park-near-balanced-rock2022-10-132022-10-13-beneath-pine-tree-arch2022-10-132022-10-13-colorado-river2022-10-132022-10-13-crow2022-10-132022-10-13-dead-horse-state-park2022-10-132022-10-13-delicate-arch2022-10-132022-10-13-devils-backbone-highway2022-10-132022-10-13-goat2022-10-132022-10-13-lizard2022-10-132022-10-13-more-canyon-lands2022-10-132022-10-13-sandstone2022-10-132022-10-13-self2022-10-132022-10-13-the-narrows2022-10-132022-10-13-zion2022-10-132022-10-10-computer-brain2022-10-102022-08-01-mushroom2022-08-012022-08-01-porch-coffee2022-08-012022-07-27-corner-cat2022-07-27Docs, tests, design, and RFCsRFCs, designs, tests, and documentation can tell you when you're getting it right.Docs, tests, design, and RFCs2022-06-18T10:07:29-05:00F7 spreadsheet engineF7 is a spreadsheet engine that can parse and run formulas like a spreadsheet.F7 spreadsheet engine2022-06-06T10:19:53-05:002022-06-01-blue-line2022-06-01Quick XLSX automationCheap and easy way to run XLSX files with containers and LibreOffice.Quick XLSX automation2022-05-29T08:00:45-05:00Custom scrollbars in FlutterBuilding custom scrollbars in Flutter with Dart.Custom scrollbars in Flutter2022-05-24T14:23:08-05:002022-05-14-tallest-brick-skyscraper2022-05-14Simple Typescript performance functionsSimple functions and annotations to add to other functions to monitor performance.Simple Typescript performance functions2022-04-07T08:10:12-06:00A poem made by searching for "can always" in my programming notesA poem made by searching for 'can always' in my programming notesA poem made by searching for "can always" in my programming notes2022-01-27T20:31:11-06:002022-01-20-jumbo-rocks-joshua-tree2022-01-202022-01-20-san-diego-pacific-sunset2022-01-202022-01-19-cacti2022-01-192022-01-19-cacti-glow2022-01-192022-01-19-driving2022-01-192022-01-19-inside-the-rock2022-01-192022-01-19-joshua-tree-shadow2022-01-192022-01-19-off-in-the-distance2022-01-192022-01-19-peach-sky2022-01-192022-01-19-twenty-nine-palms2022-01-192022-01-18-scrub-jay2022-01-182022-01-17-chicago-alley2022-01-172022-01-17-pelican-san-diego2022-01-17Designing and building a couchHere are some pictures of the design and build, which was in total around 80 hours.Designing and building a couch2021-12-19T13:24:03-06:00Status update - November 2021An update for the month of NovemberStatus update - November 20212021-12-05T19:03:41-06:00Html input auto-width work-aroundMaking the html input element auto-width work based in interior value.Html input auto-width work-around2021-11-28T21:51:07-06:00Excel and beyondThe good, the bad, and the ugly of Excel.Excel and beyond2021-11-04T12:21:43-05:00Status update - October 2021October updates and more.Status update - October 20212021-11-02T07:53:12-05:00Status update - September 2021Here's a little of what I've been up to in September.Status update - September 20212021-10-02T12:08:33-05:00Status update - August 2021Going to try something new. Just listing things that I learn each month. Not on any particular topic, just writing them down as I learn them.Status update - August 20212021-08-31T15:10:57-05:00PSQL functions for simpler queriesUse custom PG functions to raise not-found, and permission-denied errors inside of Postgres to save the round-trip time for common auth-wrapped, and dependency-prefaced queries.PSQL functions for simpler queries2021-08-09T12:33:59-05:002021-07-16-accidental-shot2021-07-16Writing tests is different from writing codeAbstraction and factoring aren't super helpful when you're writing tests.Writing tests is different from writing code2021-05-16T12:17:18-05:00Running CI tests with two stepsTesting software is hard, and writing YAML configs makes it harder. A simple two-step process makes it easier to reason about.Running CI tests with two steps2021-03-14T20:40:29-05:002021-02-01-snowstorm-chicago2021-02-012021-02-01-sub-zero-chicago2021-02-012020-12-01-ice-crystals2020-12-012020-12-01-ice-crystals-b2020-12-012020-12-01-ice-crystals-c2020-12-01Rust macro for enum variant pseudo-subtypingGetting closer to treating enum variants like types through the use of simple generative macros.Rust macro for enum variant pseudo-subtyping2020-10-14T15:21:18-05:00Writing on a single-purpose deviceTwo months of using an AlphaSmart Neo2 - a 16-year-old, single-purpose word processor that costs about $40.Writing on a single-purpose device2020-10-11T12:46:32-05:00Elmore Leonard's 'Ten Rules For Writing' for designElmore Leonard's 'Ten Rules For Writing', roughly applied to design.Elmore Leonard's 'Ten Rules For Writing' for design2020-08-29T14:33:59-05:00Notes from 'Programming Rust' bookJust some from the 'Programming Rust' O'Reilly book.Notes from 'Programming Rust' book2020-07-04T09:45:06-05:002020-06-01-balloon-appleton2020-06-01CSS For range highlightingHighlighting elements using CSS only.CSS For range highlighting2020-04-152020-03-01-longboard-ca2020-03-012020-03-01-longboard-ca-alt2020-03-012020-03-01-mountain-view-sky-alt2020-03-012020-02-10-redwoods-ca2020-02-102020-01-10-ikea-mountain-view2020-01-102019-12-01-appleton-winter2019-12-012019-10-01-chicago-sky2019-10-012019-10-01-gull2019-10-012019-09-01-austria2019-09-01Spreadsheet grid designImproving spreadsheet grid design by thinking of the grid as an item inside of a container, instead of a container with items.Spreadsheet grid design2019-08-10Review of spreadsheet user interfacesYou can find these images with a quick image search, but I wanted examples of each on one place so I can see the general UI patterns. What are the common elements that a user would see when using them? What do they have in common beyond the grid?Review of spreadsheet user interfaces2019-08-06Spreadsheet reading listA list of stuff about spreadsheets.Spreadsheet reading list2019-08-062019-05-01-treehouse2019-05-012019-01-01-mirror2019-01-012018-12-01-san-diego2018-12-012018-11-01-ben-and-dad-christmas-tree2018-11-012018-09-10-rain-on-booth-lake2018-09-102018-07-01-garage-a2018-07-012018-07-01-garage-c2018-07-01Acoustic fingerprinting televisionLet's jump to the good stuff: How hard is it to create a program that can acoustic fingerprint a television show? Can we identify the playback position of a video based on audio tracks? For this blog post I'll use The Drew Carey Show, because it's the only show of which I have multiple seasons.Acoustic fingerprinting television2018-02-062018-02-01-snowshoe2018-02-01horse-lobby-painting-draft-2018-01-022018-01-02T14:27:53Z2018-01-01-the-loop-winter2018-01-011.0.1 Release of js-spreadsheetAdded 121 formulas, and fixed a few bugs, made Cells easier to handle, added support for scientific notation, clarified license, cleaned up parser a bit, added support for comma separated lists and much more.1.0.1 Release of js-spreadsheet2017-12-03garage-painting-draft-2017-11-192017-11-19T14:25:46Z2017-11-01-chicago2017-11-012017-09-01-edinburgh2017-09-012017-09-01-scotland2017-09-012017-09-01-scotland-ben-neigh-a2017-09-012017-09-01-scotland-ben-neigh-b2017-09-012017-09-01-scotland-ben-neigh-other-side2017-09-012017-09-01-scotland-museum-stairs2017-09-012017-09-01-scotland-red-skyline2017-09-012017-09-01-scotland-sunset2017-09-01Building a spreadsheet with formulas in javascriptThe first crack at trying to write a spreadsheet engine in typescript & javascript. Parser and grammars were mostly written by hand or converted from other OSS, which made this a lot of fun to write, but probably filled with all sorts of errors.Building a spreadsheet with formulas in javascript2017-04-26A guesser's guide to Google SpreadsheetsStumbling through types, formulas, and errors in Google Sheets. I wrote this long before I had a firm grasp of spreadsheets, and their inner-workings, so this might best be described as my interior monologue when trying to figure out how and why spreadsheets sometimes do weird and interesting things.A guesser's guide to Google Spreadsheets2017-04-042017-01-01-shark-bowl2017-01-01Procedural terrain generationUsing procedural algorithms to generate terrain maps.Procedural terrain generation2016-11-30From IDE to binary writing Go in InteliJGetting the plug-in right, and living in the IDE. This was written before Goland came out, but here for posterity.From IDE to binary writing Go in InteliJ2016-11-052016-10-10-utah-a2016-10-102016-10-10-utah-b2016-10-102016-10-10-utah-c2016-10-102016-05-01-chicago-above2016-05-012016-02-01-cables2016-02-01Captain's Log a timestamped note taking appAn electron app that uses a command-line like log to keep track of what you're doing and working on, saving it to a YAML file. I used this for a while at work to track some trial-and-error performance tuning of Java apps. Not being able to go back and change your text frees you from the desire to make each sentence perfect.Captain's Log a timestamped note taking app2015-09-262014-10-01-cabin2014-10-01Hexcraft: a Minecraft-like hexagonal tile editorHexagonal tiles that you can edit like a voxel-explorer game.Hexcraft: a Minecraft-like hexagonal tile editor2014-03-06T10:19:53-05:00Live special effects for theatre performance with the KinectShakespeare's Hamlet opens with a scene of two sentries discovering the Ghost of King Hamlet. More often than not, the part of the ghost is played by an actor in white makeup walking on stage to deliver his lines. I approached this project with the idea that through live motion capture and replay, theatre visual effects can serve to strengthen a performance, and breath new life to dead characters, even the ghosts.Live special effects for theatre performance with the Kinect2013-12-062013-07-01-dad-cabin2013-07-01