Working on my JVM programming language. I decided to take the plunge last week and it’s been a lot of fun. It’s partially an exercise in better understanding the JVM, but I’d like to get to the point where I can at least write a static site generator with it.
The language itself is strict functional. It is most similar to Ocaml and Gluon, though it borrows from a bunch of different languages. I’m experimenting with making only a single way to declare something syntactically, e.g. a regular function and lambda are defined the same way. Similarly, modules are just a slightly specialized case of structs. It’ll be interesting to see how larger programs compose.
Clearing out clutter in my house. After a week of travel and the subsequent spurt of straightening, I’ve noticed just how much the clutter around here has impacted both my focus and productivity. That, and find a therapist to deal with my packrat’s worth of mental clutter.
I like that, and am doing some of the same right now. I got through most of my desk, bin of cables/adapters/bits, and desktop/laptop computer stuff last weekend. This week the workbench and server/equipment rack are up. (plus I have some new toys that will be moving into the rack soon, so likely will want to dismantle and rerack stuff in a more sensible layout.)
Working on the FUSE filesystem tool in Rust for my document schema with tags in sqlite3. I’m thinking of the interface of querying for files with the filesystem: thinking of having a virtual “query.sql” file that you can write your sql into and the same directory as the file gets filled with its results.
Working on hacking in keyboard handling to Neovide using new upstream Winit keyboard apis. Hopefully going to unblock making a new release with font fallback, opengl rendering, and much faster text shaping
I had Friday off due to Juneteenth. I slept in, took the dog for his first 5km run, and afterwards took my 9yo son to our allotment (“community garden”). He read comics and watched Horrible Histories in the camper van while I was weeding. We harvested our first onion and cooked it right there, with spam and rice. Delicious :-)
While weeding I’m listening to a series of audio books called Shadows of the Apt, by Adrian Tchaikovsky. Not quite the caliber of his Children of Time (which was sensational) but I’m enjoying them.
Hoping for more days at allotment this weekend as there’s still a lot of weeding to do. It’s our first year renting this plot and it had been fallow for 10 years before.
I probably need to clear creepers off my house as well. We need to do it periodically as we like look but need to restrict them to the ground floor. If they grow too high they can damage the roof, by dislodging its tiles. (“They” tell me.)
Logistics. We are moving from an apartment + storage unit into our first-ever house as part of a inter-state move. Moving company, painting, cleaning, packing, house signing, travel, dogs…. so much logistics to figure out in the next month. No side projects, no games. Just lots of phone calls, emails, and spreadsheets.
I have a Raspberry Pi 4 in need of a project, so I am going to turn it into an access point (as per this post: https://willhaley.com/blog/raspberry-pi-wifi-ethernet-bridge/). I have a spot in the house that is going to be hard to run Ethernet cable to, so this is a good use for it, although overkill.
I’m making myself wake up a little earlier each day to try to shift my schedule ahead less abruptly before I have to start doing it next week.
Have a few new (to me, at least) computers to add to my collection of less common processor architectures. so plan to do some hardware setup and installation on those.
Likely will spend a few quiet hours polishing a work project that’s being reviewed next week.
I’m working on a tiny AI project called littlefish, been really fun noodling in a domain I don’t have much experience in. There’s a public version anyone can play with at https://littlefish.fish
Wrapping up work on bumping my library zigler(zig + elixir) to use the new version of zig. The feature I’m most excited about is merging zig’s error return traces with elixir’s stacktraces, so if you return an error in your zig code your error stacktraces in elixir will tell you where in your zig code you ran into the error.
Thinking mostly. Past few weeks have brought me some food for thinking and I want to do some reflecting on the things of life.
Also, I have some furniture that needs assembling and chores.
I want to get a working version of sub-rosa, my Patreon RSS feed generator. It works by reading your e-mails, so I don’t have to deal with Patreon’s API (which requires you to keep the client secret confidential, which is clearly impossible in an open-source application!) and I can also generalize to other services like SubscribeStar that don’t have an API period.
It’s my elder daughter’s sixth birthday party, which will be held in the park, socially distanced, with cake and snacks. I can’t even begin to wrap my head around the idea that I have a six year old.
Otherwise, I’ll lift some weights, clean the house, maybe find some time to get high and play video games when the rest of the household is asleep.
trying to add IMAP support for my email forwarding app https://hanami.run Not going to be a full feature IMAP but with limited so people can access email through IMAP progamatically is good enough.
Working on my JVM programming language. I decided to take the plunge last week and it’s been a lot of fun. It’s partially an exercise in better understanding the JVM, but I’d like to get to the point where I can at least write a static site generator with it.
The language itself is strict functional. It is most similar to Ocaml and Gluon, though it borrows from a bunch of different languages. I’m experimenting with making only a single way to declare something syntactically, e.g. a regular function and lambda are defined the same way. Similarly, modules are just a slightly specialized case of structs. It’ll be interesting to see how larger programs compose.
Are you generating JVM bytecode or what else does the compiler generate?
I’m generating bytecode, it’s surprisingly straightforward with the ASM library. I’m using ANTLR for parsing, the base was following this tutorial until part 10, at which point I got the hang of things: http://jakubdziworski.github.io/enkel/2016/03/16/enkel_3_hello_enkel.html
Clearing out clutter in my house. After a week of travel and the subsequent spurt of straightening, I’ve noticed just how much the clutter around here has impacted both my focus and productivity. That, and find a therapist to deal with my packrat’s worth of mental clutter.
Now I’m thinking about de-cluttering and straightening as the household equivalent “commit rebasing.”
I like that, and am doing some of the same right now. I got through most of my desk, bin of cables/adapters/bits, and desktop/laptop computer stuff last weekend. This week the workbench and server/equipment rack are up. (plus I have some new toys that will be moving into the rack soon, so likely will want to dismantle and rerack stuff in a more sensible layout.)
Working on the FUSE filesystem tool in Rust for my document schema with tags in sqlite3. I’m thinking of the interface of querying for files with the filesystem: thinking of having a virtual “query.sql” file that you can write your sql into and the same directory as the file gets filled with its results.
Working on hacking in keyboard handling to Neovide using new upstream Winit keyboard apis. Hopefully going to unblock making a new release with font fallback, opengl rendering, and much faster text shaping
I had Friday off due to Juneteenth. I slept in, took the dog for his first 5km run, and afterwards took my 9yo son to our allotment (“community garden”). He read comics and watched Horrible Histories in the camper van while I was weeding. We harvested our first onion and cooked it right there, with spam and rice. Delicious :-)
While weeding I’m listening to a series of audio books called Shadows of the Apt, by Adrian Tchaikovsky. Not quite the caliber of his Children of Time (which was sensational) but I’m enjoying them.
Hoping for more days at allotment this weekend as there’s still a lot of weeding to do. It’s our first year renting this plot and it had been fallow for 10 years before.
I probably need to clear creepers off my house as well. We need to do it periodically as we like look but need to restrict them to the ground floor. If they grow too high they can damage the roof, by dislodging its tiles. (“They” tell me.)
I’m shipping. I am finally shipping.
Logistics. We are moving from an apartment + storage unit into our first-ever house as part of a inter-state move. Moving company, painting, cleaning, packing, house signing, travel, dogs…. so much logistics to figure out in the next month. No side projects, no games. Just lots of phone calls, emails, and spreadsheets.
I have a Raspberry Pi 4 in need of a project, so I am going to turn it into an access point (as per this post: https://willhaley.com/blog/raspberry-pi-wifi-ethernet-bridge/). I have a spot in the house that is going to be hard to run Ethernet cable to, so this is a good use for it, although overkill.
I did the opposite somewhat. I put my wifi router as the access point and my rpi as the internet router.
Finishing up a week crewing for a friend in the Ionian Sea on his yacht and flying home to return to work (whilst quarantined at home) this week.
It has been glorious, I’d forgotten just how enjoyable yacht sailing is. (Last few posts on https://www.instagram.com/caius/ if you want a sneak peak)
Hopefully getting desktop builds out for an IDE I’m working on: https://github.com/multiprocessio/datastation. That or cleaning up UI bugs in it.
I’m working on a tiny AI project called littlefish, been really fun noodling in a domain I don’t have much experience in. There’s a public version anyone can play with at https://littlefish.fish
Wrapping up work on bumping my library zigler(zig + elixir) to use the new version of zig. The feature I’m most excited about is merging zig’s error return traces with elixir’s stacktraces, so if you return an error in your zig code your error stacktraces in elixir will tell you where in your zig code you ran into the error.
Thinking mostly. Past few weeks have brought me some food for thinking and I want to do some reflecting on the things of life.
Also, I have some furniture that needs assembling and chores.
I am learning about terminal emulation and VT100.
I want to get a working version of sub-rosa, my Patreon RSS feed generator. It works by reading your e-mails, so I don’t have to deal with Patreon’s API (which requires you to keep the client secret confidential, which is clearly impossible in an open-source application!) and I can also generalize to other services like SubscribeStar that don’t have an API period.
Make it a configurable secret, so anyone wanting to run it themselves needs to register their own API Client and inject their secret at runtime?
Finishing up a second workbench, lower and narrower this time, to mount a vise and drill press.
Working more on dep-organizer and sprucing up my nvim config that’s done in pure lua.
It’s my elder daughter’s sixth birthday party, which will be held in the park, socially distanced, with cake and snacks. I can’t even begin to wrap my head around the idea that I have a six year old.
Otherwise, I’ll lift some weights, clean the house, maybe find some time to get high and play video games when the rest of the household is asleep.
cut
like syntax with regexp delimiterstrying to add IMAP support for my email forwarding app https://hanami.run Not going to be a full feature IMAP but with limited so people can access email through IMAP progamatically is good enough.