I’m reviewing other people’s blog posts. I’ve been encouraging other bloggers, especially first-time bloggers, to send me their posts for review. This goes for anyone reading this comment too if you think I can be helpful.
I love reading posts by people who have just arrived at a technology. They are so close it and their posts can sometimes be enlightening (and always inspiring).
I found a really nice crate for accessing Discord’s API called Serenity, so I’ve been having some fun writing a little Discord bot called rsPhate. Yes, I am aware that the name isn’t in snake case (rsPhate -> rs_phate), as the compiler has told me probably 300 times by now.
I’m also working on breaking up my dotfiles repo. It’s simply becoming too cluttered with lots of things that could easily have their own repos due to how much stuff I have. I already had to move my configurations for mpv out of the dotrfiles repo to a new one (mpv-config) because I got tired of Github telling me that like 30% of my dotfiles were all coded in Lua. I had the same problem with my Bandaged Better Discord stuff, because they were making Github think my dotfiles were mostly CSS and JS.
Besides those, I plan on binging a bunch of anime while interspersing intervals of programming between them. As per usual, no time for sleep. It’s times like these that I’m glad I stocked up on caffeinated beverages. I don’t know what I would do without them.
I’ve been going kinda nuts with MIDI lately. Plugged in a piano keyboard with its usb port and was delighted to see it sent events, so I wrote a new little program to plot the notes on screen, record files, etc. I want to extend even further and then maybe play with the raspberry pi having the midi trigger lights or something too!
I used to love midi a long time ago but haven’t worked with it much lately so it is tons of fun to get back into it.
I might go for a bike ride if the weather and my schedule allow it.
I’ll hopefully be doing our usual tabletop RPG night with friends on Discord (mixed blessing because we now have friends from other states involved, but also just not the same as being at a real table).
I’ll likely be working on Saturday because I’m working on stuff that requires downtime in our database.
Otherwise, I’m not touching a computer or work or anything else if I can avoid it because having a family means I’m not busier during this pandemic that I am on a normal three day weekend. Certainly not going to make a real difference otherwise. No vacation. Can’t run a lot of errands with things closed. Just… experiencing time and whatever struggle I have for the day that isn’t my blocked off time.
Going to setup Postgres DB and backend in Go and recreate Pinboard functionality.
It’s needed in order to build a dream educational platform of mine. In short the idea is to build an amazing link manager, a knowledge graph of topics and a tool to create guides out of the links to learn anything.
2D C99 Game Engine. I had been committing every day for several months and then had to take a break or burnout. Spinning things up again feels difficult, so I’m going to plan some smaller stuff out, and then hopefully finish a plugin system.
that’s exciting. a simple game engine is on my short list of projects to step up my C skills. What would you say is a good first milestone for making one?
Oh duh. Yeah that’s a good point. Don’t worry so much about every single detail. Get something on the screen. How do I move it? Remove it? Add more of it? etc… Thanks!
I’ve recently been laid off so I’m going to rework my resume and do some cold applications. Outside of that, I’m going to rework my streaming schedule so I can live code more and begin looking into some of my side projects and see if I can polish them up a bit more.
That’s great! I always think it’s better to write a personal configuration if one wants to take their setup seriously. I recently rewrote parts of my configuration, and the best thing to keep in mind is to use the customisation system, and avoid setq when possible.
It’s not uncommon, just not pervasive. Here’s another example.
setq is a low level mechanism, with little abstraction power, developers find it harder to maintain forwards or backwards compatibility when variables are manually set. The “user option” concept that customize uses allows actions to be performed, such as values being transformed or side effects being triggered. For example, every minor mode is a user option (when defined properly). Usually it doesn’t change much, but that little bit of abstraction helps to avoid some nasty issues down the way.
If you dislike the syntax, consider using a macro like this one
to allow “setq”-like assignments of user options, without having to worry about default or non-default values and the like. Or if you use a use-package-like system, just use :custom (...) instead of :config (setq ...).
I’m going to start messing around with some kernel development on my new used laptop I just got last week. And I’ve been dusting off my C programming skills, so I’m going to keep reading “effective c” and continue with advent of code in C.
ALSO: I need to do a little research on some good hardware project ideas. I’m excited to move into more systems related stuff….
Seeing a friend for the first time in 2.5 months outside in the park (distance laws yes yes yes).
Bloodborne: just beat shadow of yahrnam. Apparently I’m pretty much halfway done the game? Surprisingly short compared to Dark Souls IMO.
Random studying I think. Currently looking through microKanren paper, playing around. Hoping to get some insight into relational programming (rather than just surface knowledge which most people end up stopping at).
Oooh, if you find anything cool related to relational programming, I’d be interested in hearing about it. I’ve been messing around with applying logical/relational programming to gamedev recently, and I keep falling back on column-oriented dataframes (inspired by kdb/pandas) since they fit the problem domain well. I feel like the pandas DSL is an improvement on SQL (i.e. it’s more composable and cleaner syntactically), but I’m hoping to investigate other options. I’d also like to find an extension to the standard relational queries that allows for streaming/lazy time-based queries (kdb has some inspiration for this with the as-of joins).
I haven’t been able to find too many relational database resources besides the wikipedia article and Foundations of Databases (which is a bit dense for what I’m looking for at the moment), so I’ve mostly been working off of implementation details of kdb, SQLite, pandas, etc.
My wife and I originally wanted to set up our new tent for the first time in our back yard this weekend, but it’s gonna storm all weekend. So I’ll probably either take the dog for a few rainy bike rides (which he absolutely loves, and I enjoy it, too) or just relax after a challenging, yet rewarding, week of work.
Either way, I’ll be spending some time with the missus and the doggo.
This is something I want to do too. But haven’t done it. Howz the experience of staying in tent in your own Backyard? I don’t have big backyard, but hoping kids will love to have that experience.
We haven’t done it, yet. Our backyard’s a bit small and our tent might actually be bigger than our back yard. But we have a shared common area that we can “spill over” to. The tent is a six-person tent that I got as my five-year tenure present at the job I just resigned from.
Setting up an automated watering for our roof terrace, hopefully some biking with my family.
Tech side: I’m reading Elixir in Action, 2nd edition and I am having a blast. I haven’t enjoyed a tech book so much since a long time. Feels like reading about superpowers :)
It’s probably the typical Erlang stuff (but I didn’t know it). So in no particular order:
the idea of message-passing between lightweight processes
the very clear boundary between data and functionality
enforced immutability (no libraries to help with that, which then don’t work with the rest of the code)
stateful server processes (GenServer) feels like a better OOP
ready to use language constructs that would normally require external dependencies/tools - e.g. GenServer/Agent for stateful server processes, Tasks for one-off computations, GenStage for pub/sub, Supervisor trees for fault-tolerance, Registry for processes, etc.
The direct relationship between the programmer and the program they’re creating. People work one way. Computers work another way. Nobody ever explains to us what the differences are. Because most coders don’t grok it, it tends to make really bad people and really bad technology.
After that is explained, there’s a pivot from that to all sorts of logical implications, like static code analysis, structuring microservices, supercompilers, AGI, etc. The book is half narrative and half code, bouncing back and forth from humans to formal systems and back, each time picking up something on one side that can be applied to the other, seeing where that leads us.
Sounds really interesting. As a new developer I could see how that would be useful. How do you plan to publish it? Is there a way I can follow the progress?
Go the f@#$% outside after being cooped most of the week because of the weather and the pandemic.
Get an NXT instance running in Docker on my NAS or on an unused Pi. I had it working years ago but I felt like I was watching an SD card fail in real-time from the writes. I started writing something that would enable NXT to use a remote MariaDB or PostgreSQL instance but never finished it. I doubt I’ll pick it back up, though.
Clean my office.
Update my personal finances tracked with ledger and the plaintext accounting ecosystem. I’m really far behind on expense tracking – missing records from May 2018 onward but have my checking accounts tracked through March 2020. I want to get it all up to date so I can know where my money is going. As long as my job holds – I work for a company for which the pandemic has been a good thing financially – I am looking to exploit the wildly-low interest rates to buy House 2.0. When I started looking last July, I was looking at 4.25% and now I’m seeing 2.85% for the same loan term…
When you say NXT you are not thinking of the Lego product, are you.
plaintext accounting ecosystem. I’m really far behind on expense tracking
I’m thinking of using a combination of autoledger and a small gui program to keep my expenses up to date and also have an automatic link where I can verify what my receipts and credit card say at the end of every day.
When you say NXT you are not thinking of the Lego product, are you.
Nope. Blockchain, cryptocurrency, and distributed application system. I was really into it a few years ago and submitted a few patches but I don’t think anything ever got in.
autoledger
I’ve been thinking about doing more automation. I’ve gotten myself into using ledger-autosync with manual exports but I probably need something even more automated to be able to keep up.
Rebuilding my raspberry pi 4 running pi-hole in a Docker container because this bright boy forgot to ensure it was plugged into the UPS so it went comatose after a power spike. I got the actual proper Micro HDMI -> HDMI adapter so I can plug in my monitor.
Thinking to run Ubuntu 20.04 on it rather than Raspbian because I’m using it strictly as a little server and don’t plan to do any of the maker-y stuff with it at all, and I like the familiar administrative interfaces.
Also continuing through The Nature of Code and really enjoying it! Probabilistic random number currently.
So, I ran into an interesting wrinkle that was the result of a network configuration decision I made last year.
I unfortunately am running Apple Aiport Extremes as both my router and my wifi AP(s) here at home. I bought them years back when I drank the Apple Kool-aid WAY more deeply than I do today, and now they’re no longer supported, but I’m loathe to touch them because they mostly work :)
In any case, sometime last year I read that Comcast residential internet in the Boston area was IPV6 native, so I went about understanding how I could turn that on for my home LAN.
Oh hey, there’s a switch here, I can flip this and my home network goes IPV6 native. Neat! Let’s do that! And it worked (and works) great!
What I didn’t properly appreciate or understand is that in doing that I switched off all the local DHCP / address management stuff and basically turned my router into a passthrough for Comcast’s gear.
This means that when I thought I was making my rpi4 running Pihole the primary DNS server for my LAN, it was actually having no effect. Wups :)
I’m kind of amazed I haven’t unintentionally stepped on my own toes with this decision, because I have a couple of pieces of hardware (The pi and my NAS) using fixed IPV4 addresses, but I haven’t seen any outages so far, so either:
The comcast stuff somehow ‘sees’ this and is purposefully not allocating DHCP leases that are in conflict or
I’ve been lucky :) I consider this the more likely scenario.
So obvious next steps I see are to try to discern if there are any administrative interfaces I can legitimately access on the Comcast gear so I can at least understand the configuration I’m running with, and eventually maybe switch to a newer setup with a different more configurable router and APs.
The Ubiquiti EdgeRouter and APs might be a good bet. The EdgeRouter runs Debian.
Turns out Comcast has their own Gateway network device web admin UI which thankfully DID seem to detect my IP reservations, and allow me to switch them from DHCP to fixed address, which is nice.
Sadly though they offer no option to change the DNS server, so my pihole will remain shelved until I buy a new router.
Working on a bit of game development with Python. I’m experimenting with the possibilities of relational databases (pandas dataframes), event streaming and hierarchical finite state machines. I have a feeling there’s a way to fold together the last two, but I haven’t gotten there yet.
I wrote a bit of code and already hit a performance snag, so I’m working on building out a quick frame profiler. I wanted to experiment with Linux tracing tools (using USDT probes). I ended up burning an afternoon jumping through hoops to write an eBPF frame tracer, only to realize that it requires root to run. After trying (and failing) to use systemtap and lttng to trace my USDT probes without root, I’ve now decided to write a frame profiler that just runs in-process. If anyone has suggestions for easily accessing UDST probes in another process from userspace in python without root access, I’d be ecstatic to hear about it.
After getting the frame measurements dumped into a sane format (probably just going to use cProfile for something quick and dirty), I’m going to build a thread/callstack viewer like RADGames Telemetry. Granted, with the GIL, the thread view won’t be much help right now, but as I build to out more and integrate Cython into the profiling results, there will a bit of code that runs in parallel.
I had this stupid idea to create a game that takes the resource-farming and levelling-up game mechanic to a ridiculous new low, and I’m using it to learn VueJS and websockets stuff and brush the dust off my very out of date front end skills.
This weekend I’m going to relax a bit, this week I got a decent amount of OSS work done through Jazzband.
I do have a sketch of a blog post , “the impatient’s guide to getting Bazel working on an existing project” (need a better title) basically wanting to share my 3-4 weeks of frustration with the tool
My original plan was to disable the code in my BIOS that disabled KVM, but then, I found the setting in the BIOS to enable KVM (hidden under advanced overclocking features (why?)) so now I’m just writing a clone of AWK in C and then Zig.
Not really much idea, as I am waiting from university related feedback. Also thinking of doing some web project, but I have absolutely no clue what tech to use (kind of knowledgeable with python, but not web side, and did some projects in PHP few years ago).
lifting off the hallway door and replacing it with a piece of plywood with a cat hole so we can live for ten seconds without the baby trying to eat the cat’s food
After nearly a decade of doing mobile engineering, I’m going back to my early roots and building an API service in Dropwizard. The API will be consumed by a web and mobile frontend.
I’m intentionally picking Dropwizard because I want to use something that is as straightforward (and battle tested) as possible, and I want to spend effort on Doing The Right Things — automated tests, CI/CD, etc. Maybe too much to expect in a weekend, but I’m excited!
I’m playing with WSL2 & friends for a bit. I heard the grass might be greener on the other side so I figured I’d have a look. VMs are fast enough today that I can do kernel development on one. I use a lot of basic command-line tools anyway so I don’t mind if I have to ssh into other machines (or into VMs). Plus whatever bash & friends inside WSL2 can’t do for me, I bet I can get PowerShell to do. Basically, I’m trying to see if there’s anything that I regularly do today on my main machine and I can’t do on Windows. Unfortunately, all I’ve heard about WSL2 so far is basically “Docker finally runs fast enough” but I don’t really care about Docker.
I’m pretty sure that a bunch of tools that I use don’t work well on it, but I’m willing to work around one or two via some other means. E.g. I don’t expect qemu will work, like, at all. Others, like radare2, I can use in a VM. I just have to figure out a good workflow, I guess – I can’t image greping through 4 GB of crap mounted over the network is too fast…
I already have a Windows 10 machine – a laptop which I use for work occasionally, because that’s what some of my customers are using – and I’ve been reasonably happy with it. The updates are annoying and the privacy policy is shady as fsck but other than that it’s been okay.
It’s a bit of an emotional rollercoaster though. I used to be a “big believer”, for want of a better term, in the spirit and strength of open source development. But in the last 5-6 years or so, I’ve found myself wasting more and more time dealing with the UX changes in almost every popular desktop program. I find myself reverting more and more often to programs that I haven’t used since, what, 2004? – fvwm, mutt, mc. That can’t be healthy, and I’ve already dragged myself out of the suckless rabbithole once, I don’t want to go down it again.
I guess my generation is already old enough that UX designers in the FOSS world don’t want to deal with it (it feels weird saying that – I’m actually pretty young but I had a head start with computers, which put me pretty firmly in the generation of computer users that held their breaths for Y2K a bit). I guess that’s a good thing, in a way, free software can’t thrive by appealing to the same people who found it appealing 20 years ago. But I am pretty bitter about it, and pretty disappointed (enough that I’ve spent like an hour writing this post – and most of it was spent deleting snark and sarcasm). And, on top of that, I’m concerned about how much time I’ve wasted on it lately, so I’m starting to look into alternatives.
A few years ago I finally gave up on my Gentoo laptop, and life is better for it. I then more recently gave up on awesome wm for dwm. Yes I’m using more suckless tech, but I don’t rice, and maybe spend an hour a year actually fighting to keep my setup the way I like it. I have the same setup on 4k monitors and my little old laptop. The UI just works for me, and importantly, I don’t feel like I’m working for it.
I find Linux in general powerful enough that my work windows machine feels hard to use, and I don’t find myself in a hard hole. But I use find, not some modem remix, and grep, and vim. My email setup is closer to mutt than anything else, and yet I’m not unhappy. These tools feel like mine, and I think I can go another ten years without a major shift in my personal tools.
Just because UX seems off in Linux doesn’t mean it’ll be too hard to have and use and maintain your own setup in a way that leaves you with your most valuable asset.
Remember that the computer works for you, not you for it, and I hope you will find the set of tools that will serve you well for the next ten years. I personally doubt you’ll find it in Windows, but good luck.
I personally doubt you’ll find it in Windows, but good luck.
Thanks! I’m not really holding my breath about it but it’s worth investigating at least.
A few years ago I finally gave up on my Gentoo laptop, and life is better for it. I then more recently gave up on awesome wm for dwm. Yes I’m using more suckless tech, but I don’t rice, and maybe spend an hour a year actually fighting to keep my setup the way I like it.
Back in 2011 or so, when I went down the suckless rabbithole :) I had a pretty stable setup, too (I used ratpoison for a few months, then wmii for a few years). It was indeed pretty stable, I never got into the whole ricing thing. Back in the day I dropped it mostly because it was pretty hard to shoehorn things that didn’t fit into the whole “emacs and a couple of xterms” workflow – graphics, music, even some graphics programming (dealing with SDL windows is pretty annoying on any tiling WM). It was a setup that worked great for most programming work, but that’s not all I do on my computer.
I tried a similar setup on a large monitor and I wasn’t thrilled though. Every window is either too big to read comfortably, or too small for things to fit. Plus, since I’m okay with mice, the real estate gain I get from a tiling WM vs. overlapping windows with focus-follows-mouse is modest.
User interfaces aside though (I mean, I can always reach for fvwm and xterm :) ) I really do have a growing mistrust of lots of FOSS software. A few years ago, for example, that infamous Dolphin bug ate a large chunk of my music collection, and I then spent almost a month ripping CDs again. The last time I lost data because of a buggy file manager was when I tried some obscure DOS Navigator clone from a “1,001 shareware programs for DOS” CD. On the other hand, I must have copied petabytes of stuff with Konqueror back when KDE 3 was all the rage and it always worked okay. It’s not just that I don’t like the UX (which I don’t, but change is inevitable in tech, I can always adapt) – it’s also that I get the feeling that the steady march of UX improvement has brought us software that looks great in screenshots, but it’s less functional and less reliable (and, at least for me, a lot harder to use, but that’s not so important – if I can spend at least 8 hours a day writing obscure code, I can certainly click a hamburger menu or whatever).
I’m trying hard to both ignore and retain all the kubernetes expertise I crammed in this week. Ignore so I can recover, retain so I never have to re-learn it.
Let me know if you need help mounting NFS volumes in a Pod, though.
I’m reviewing other people’s blog posts. I’ve been encouraging other bloggers, especially first-time bloggers, to send me their posts for review. This goes for anyone reading this comment too if you think I can be helpful.
I love reading posts by people who have just arrived at a technology. They are so close it and their posts can sometimes be enlightening (and always inspiring).
This is super cool!
Maybe I’ll send you the first post in a new series I want to write.
Feel free to! My email is my lobsters username
@gmail.com
I found a really nice crate for accessing Discord’s API called Serenity, so I’ve been having some fun writing a little Discord bot called rsPhate. Yes, I am aware that the name isn’t in snake case (rsPhate -> rs_phate), as the compiler has told me probably 300 times by now.
I’m also working on breaking up my dotfiles repo. It’s simply becoming too cluttered with lots of things that could easily have their own repos due to how much stuff I have. I already had to move my configurations for
mpv
out of the dotrfiles repo to a new one (mpv-config) because I got tired of Github telling me that like 30% of my dotfiles were all coded in Lua. I had the same problem with my Bandaged Better Discord stuff, because they were making Github think my dotfiles were mostly CSS and JS.Besides those, I plan on binging a bunch of anime while interspersing intervals of programming between them. As per usual, no time for sleep. It’s times like these that I’m glad I stocked up on caffeinated beverages. I don’t know what I would do without them.
I’ve been going kinda nuts with MIDI lately. Plugged in a piano keyboard with its usb port and was delighted to see it sent events, so I wrote a new little program to plot the notes on screen, record files, etc. I want to extend even further and then maybe play with the raspberry pi having the midi trigger lights or something too!
I used to love midi a long time ago but haven’t worked with it much lately so it is tons of fun to get back into it.
I might go for a bike ride if the weather and my schedule allow it.
I’ll hopefully be doing our usual tabletop RPG night with friends on Discord (mixed blessing because we now have friends from other states involved, but also just not the same as being at a real table).
I’ll likely be working on Saturday because I’m working on stuff that requires downtime in our database.
Otherwise, I’m not touching a computer or work or anything else if I can avoid it because having a family means I’m not busier during this pandemic that I am on a normal three day weekend. Certainly not going to make a real difference otherwise. No vacation. Can’t run a lot of errands with things closed. Just… experiencing time and whatever struggle I have for the day that isn’t my blocked off time.
Going to setup Postgres DB and backend in Go and recreate Pinboard functionality.
It’s needed in order to build a dream educational platform of mine. In short the idea is to build an amazing link manager, a knowledge graph of topics and a tool to create guides out of the links to learn anything.
Will do it all in the open https://github.com/learn-anything/learn-anything
Researching building a desktop computer - because I haven’t tried to do it in almost 20 years and I need more power.
Would love to know more it, if you can I will read your blog updates on this if you are planning to do research and then complete it all the way!
2D C99 Game Engine. I had been committing every day for several months and then had to take a break or burnout. Spinning things up again feels difficult, so I’m going to plan some smaller stuff out, and then hopefully finish a plugin system.
that’s exciting. a simple game engine is on my short list of projects to step up my C skills. What would you say is a good first milestone for making one?
Getting a graphic up on screen should probably be your first milestone. It was mine. It got the ball rolling from there.
Oh duh. Yeah that’s a good point. Don’t worry so much about every single detail. Get something on the screen. How do I move it? Remove it? Add more of it? etc… Thanks!
I don’t feel experienced enough to tell you. I’ll let you know when I finish making one. :)
I’ve recently been laid off so I’m going to rework my resume and do some cold applications. Outside of that, I’m going to rework my streaming schedule so I can live code more and begin looking into some of my side projects and see if I can polish them up a bit more.
Twitch: https://twitch.tv/jackyalcine if you’d like to follow along.
Sorry to hear about that and I hope you get a great, next job.
I’m going biking! I’ve got a long weekend so with any luck I’ll be able to put some miles in.
Also at some point I’d like to go back to my emulator and figure out why some core CPU instructions are broken. And start writing about it.
I gave up Doom Emacs to build my own config from scratch. This weekend I’m going to make a final push towards it becoming my daily driver.
That’s great! I always think it’s better to write a personal configuration if one wants to take their setup seriously. I recently rewrote parts of my configuration, and the best thing to keep in mind is to use the customisation system, and avoid
setq
when possible.Why avoid setq? You’re the first person I’ve ever seen advise that.
It’s not uncommon, just not pervasive. Here’s another example.
setq
is a low level mechanism, with little abstraction power, developers find it harder to maintain forwards or backwards compatibility when variables are manually set. The “user option” concept that customize uses allows actions to be performed, such as values being transformed or side effects being triggered. For example, every minor mode is a user option (when defined properly). Usually it doesn’t change much, but that little bit of abstraction helps to avoid some nasty issues down the way.If you dislike the syntax, consider using a macro like this one
to allow “setq”-like assignments of user options, without having to worry about default or non-default values and the like. Or if you use a
use-package
-like system, just use:custom (...)
instead of:config (setq ...)
.I actually do use use-package and I considered using
custom
rather thansetq
but ultimately just went with what I knew.Shaolin is still in early enough of a stage for me to migrate over to relying more on the use-package so I’ll definitely consider this.
Skate, weather permitting, and finish a rewrite of the frontend for synsh.dev, a tool for creating shell pipelines from example inputs and outputs.
Do a kick flip!
In no particular oder:
fish
in lieu ofzsh
, andTerminal.app
instead ofiTerm 2
.I like this term :)
Nice
I’m going to start messing around with some kernel development on my new used laptop I just got last week. And I’ve been dusting off my C programming skills, so I’m going to keep reading “effective c” and continue with advent of code in C.
ALSO: I need to do a little research on some good hardware project ideas. I’m excited to move into more systems related stuff….
Seeing a friend for the first time in 2.5 months outside in the park (distance laws yes yes yes).
Bloodborne: just beat shadow of yahrnam. Apparently I’m pretty much halfway done the game? Surprisingly short compared to Dark Souls IMO.
Random studying I think. Currently looking through microKanren paper, playing around. Hoping to get some insight into relational programming (rather than just surface knowledge which most people end up stopping at).
’bout it.
Oooh, if you find anything cool related to relational programming, I’d be interested in hearing about it. I’ve been messing around with applying logical/relational programming to gamedev recently, and I keep falling back on column-oriented dataframes (inspired by kdb/pandas) since they fit the problem domain well. I feel like the pandas DSL is an improvement on SQL (i.e. it’s more composable and cleaner syntactically), but I’m hoping to investigate other options. I’d also like to find an extension to the standard relational queries that allows for streaming/lazy time-based queries (kdb has some inspiration for this with the as-of joins).
I haven’t been able to find too many relational database resources besides the wikipedia article and Foundations of Databases (which is a bit dense for what I’m looking for at the moment), so I’ve mostly been working off of implementation details of kdb, SQLite, pandas, etc.
I only know of one person who has read that, and they did it twice. I’ve only attempted the Datalog part.
Two projects: building a Pi Hole on NetBSD (which is surprisingly plausible) and turning a Dell 1210 into a usable machine with a modern-ish OS.
My wife and I originally wanted to set up our new tent for the first time in our back yard this weekend, but it’s gonna storm all weekend. So I’ll probably either take the dog for a few rainy bike rides (which he absolutely loves, and I enjoy it, too) or just relax after a challenging, yet rewarding, week of work.
Either way, I’ll be spending some time with the missus and the doggo.
This is something I want to do too. But haven’t done it. Howz the experience of staying in tent in your own Backyard? I don’t have big backyard, but hoping kids will love to have that experience.
We haven’t done it, yet. Our backyard’s a bit small and our tent might actually be bigger than our back yard. But we have a shared common area that we can “spill over” to. The tent is a six-person tent that I got as my five-year tenure present at the job I just resigned from.
Introducing coconut kefir and vegetables on top of my carnivore diet, to see how well my body reacts.
And setting up a new dedicated server (Ryzen 7 PRO 3700) from OVH with NixOS. Very excited!
OVH, yup: https://www.ovh.com/ca/en/dedicated-servers/infra/infra-limited-edition-2/
Setting up an automated watering for our roof terrace, hopefully some biking with my family.
Tech side: I’m reading Elixir in Action, 2nd edition and I am having a blast. I haven’t enjoyed a tech book so much since a long time. Feels like reading about superpowers :)
Curious about the super powers, anything specific or the typical Erlang stuff?
It’s probably the typical Erlang stuff (but I didn’t know it). So in no particular order:
I guess it must have its warts, but so far it’s been very reasonable. This video made me consider it - https://www.youtube.com/watch?v=JvBT4XBdoUE.
I’ll be implementing lenses in Curv, which is a pure functional language for live/creative/graphical programming (github.com/curv3d/curv).
I will also be riding my bike.
I’m going to look into https://deno.land/ and make a small app in it.
Hiking and photography with my wife, then finishing up the draft of the second third of my book for my beta reader group.
Whats your book about?
The direct relationship between the programmer and the program they’re creating. People work one way. Computers work another way. Nobody ever explains to us what the differences are. Because most coders don’t grok it, it tends to make really bad people and really bad technology.
After that is explained, there’s a pivot from that to all sorts of logical implications, like static code analysis, structuring microservices, supercompilers, AGI, etc. The book is half narrative and half code, bouncing back and forth from humans to formal systems and back, each time picking up something on one side that can be applied to the other, seeing where that leads us.
Sounds really interesting. As a new developer I could see how that would be useful. How do you plan to publish it? Is there a way I can follow the progress?
In no particular order:
ledger
and the plaintext accounting ecosystem. I’m really far behind on expense tracking – missing records from May 2018 onward but have my checking accounts tracked through March 2020. I want to get it all up to date so I can know where my money is going. As long as my job holds – I work for a company for which the pandemic has been a good thing financially – I am looking to exploit the wildly-low interest rates to buy House 2.0. When I started looking last July, I was looking at 4.25% and now I’m seeing 2.85% for the same loan term…When you say NXT you are not thinking of the Lego product, are you.
I’m thinking of using a combination of autoledger and a small gui program to keep my expenses up to date and also have an automatic link where I can verify what my receipts and credit card say at the end of every day.
Nope. Blockchain, cryptocurrency, and distributed application system. I was really into it a few years ago and submitted a few patches but I don’t think anything ever got in.
I’ve been thinking about doing more automation. I’ve gotten myself into using ledger-autosync with manual exports but I probably need something even more automated to be able to keep up.
Rebuilding my raspberry pi 4 running pi-hole in a Docker container because this bright boy forgot to ensure it was plugged into the UPS so it went comatose after a power spike. I got the actual proper Micro HDMI -> HDMI adapter so I can plug in my monitor.
Thinking to run Ubuntu 20.04 on it rather than Raspbian because I’m using it strictly as a little server and don’t plan to do any of the maker-y stuff with it at all, and I like the familiar administrative interfaces.
Also continuing through The Nature of Code and really enjoying it! Probabilistic random number currently.
So, I ran into an interesting wrinkle that was the result of a network configuration decision I made last year.
I unfortunately am running Apple Aiport Extremes as both my router and my wifi AP(s) here at home. I bought them years back when I drank the Apple Kool-aid WAY more deeply than I do today, and now they’re no longer supported, but I’m loathe to touch them because they mostly work :)
In any case, sometime last year I read that Comcast residential internet in the Boston area was IPV6 native, so I went about understanding how I could turn that on for my home LAN.
Oh hey, there’s a switch here, I can flip this and my home network goes IPV6 native. Neat! Let’s do that! And it worked (and works) great!
What I didn’t properly appreciate or understand is that in doing that I switched off all the local DHCP / address management stuff and basically turned my router into a passthrough for Comcast’s gear.
This means that when I thought I was making my rpi4 running Pihole the primary DNS server for my LAN, it was actually having no effect. Wups :)
I’m kind of amazed I haven’t unintentionally stepped on my own toes with this decision, because I have a couple of pieces of hardware (The pi and my NAS) using fixed IPV4 addresses, but I haven’t seen any outages so far, so either:
So obvious next steps I see are to try to discern if there are any administrative interfaces I can legitimately access on the Comcast gear so I can at least understand the configuration I’m running with, and eventually maybe switch to a newer setup with a different more configurable router and APs.
The Ubiquiti EdgeRouter and APs might be a good bet. The EdgeRouter runs Debian.
Turns out Comcast has their own Gateway network device web admin UI which thankfully DID seem to detect my IP reservations, and allow me to switch them from DHCP to fixed address, which is nice.
Sadly though they offer no option to change the DNS server, so my pihole will remain shelved until I buy a new router.
Working on a bit of game development with Python. I’m experimenting with the possibilities of relational databases (pandas dataframes), event streaming and hierarchical finite state machines. I have a feeling there’s a way to fold together the last two, but I haven’t gotten there yet.
I wrote a bit of code and already hit a performance snag, so I’m working on building out a quick frame profiler. I wanted to experiment with Linux tracing tools (using USDT probes). I ended up burning an afternoon jumping through hoops to write an eBPF frame tracer, only to realize that it requires root to run. After trying (and failing) to use systemtap and lttng to trace my USDT probes without root, I’ve now decided to write a frame profiler that just runs in-process. If anyone has suggestions for easily accessing UDST probes in another process from userspace in python without root access, I’d be ecstatic to hear about it.
After getting the frame measurements dumped into a sane format (probably just going to use cProfile for something quick and dirty), I’m going to build a thread/callstack viewer like RADGames Telemetry. Granted, with the GIL, the thread view won’t be much help right now, but as I build to out more and integrate Cython into the profiling results, there will a bit of code that runs in parallel.
I had this stupid idea to create a game that takes the resource-farming and levelling-up game mechanic to a ridiculous new low, and I’m using it to learn VueJS and websockets stuff and brush the dust off my very out of date front end skills.
More work on my game engine. If I get basic lighting done I could now switch to making an actual example game.
This weekend I’m going to relax a bit, this week I got a decent amount of OSS work done through Jazzband.
I do have a sketch of a blog post , “the impatient’s guide to getting Bazel working on an existing project” (need a better title) basically wanting to share my 3-4 weeks of frustration with the tool
Got several Pull Requests / Merge Requests in open source projects which I started but have yet finished… $DAY_JOB was too busy.
Learning how to make kimchi with the wife :)
My original plan was to disable the code in my BIOS that disabled KVM, but then, I found the setting in the BIOS to enable KVM (hidden under advanced overclocking features (why?)) so now I’m just writing a clone of AWK in C and then Zig.
Not really much idea, as I am waiting from university related feedback. Also thinking of doing some web project, but I have absolutely no clue what tech to use (kind of knowledgeable with python, but not web side, and did some projects in PHP few years ago).
I am creating Dart bindings for the Beakerbrowser new p2p hyper protocol: https://beakerbrowser.com/. The effort is githubed: https://github.com/gladimdim/beaker_bindings
See it running in Flutter PWA applications. They talk to each other via p2p:
https://twitter.com/dmytrogladkyi/status/1263779503307882496?s=21
lifting off the hallway door and replacing it with a piece of plywood with a cat hole so we can live for ten seconds without the baby trying to eat the cat’s food
Groovy on Exercism.io and eksworkshop.com
After nearly a decade of doing mobile engineering, I’m going back to my early roots and building an API service in Dropwizard. The API will be consumed by a web and mobile frontend.
I’m intentionally picking Dropwizard because I want to use something that is as straightforward (and battle tested) as possible, and I want to spend effort on Doing The Right Things — automated tests, CI/CD, etc. Maybe too much to expect in a weekend, but I’m excited!
I’m playing with WSL2 & friends for a bit. I heard the grass might be greener on the other side so I figured I’d have a look. VMs are fast enough today that I can do kernel development on one. I use a lot of basic command-line tools anyway so I don’t mind if I have to ssh into other machines (or into VMs). Plus whatever bash & friends inside WSL2 can’t do for me, I bet I can get PowerShell to do. Basically, I’m trying to see if there’s anything that I regularly do today on my main machine and I can’t do on Windows. Unfortunately, all I’ve heard about WSL2 so far is basically “Docker finally runs fast enough” but I don’t really care about Docker.
I’m pretty sure that a bunch of tools that I use don’t work well on it, but I’m willing to work around one or two via some other means. E.g. I don’t expect qemu will work, like, at all. Others, like radare2, I can use in a VM. I just have to figure out a good workflow, I guess – I can’t image greping through 4 GB of crap mounted over the network is too fast…
I already have a Windows 10 machine – a laptop which I use for work occasionally, because that’s what some of my customers are using – and I’ve been reasonably happy with it. The updates are annoying and the privacy policy is shady as fsck but other than that it’s been okay.
It’s a bit of an emotional rollercoaster though. I used to be a “big believer”, for want of a better term, in the spirit and strength of open source development. But in the last 5-6 years or so, I’ve found myself wasting more and more time dealing with the UX changes in almost every popular desktop program. I find myself reverting more and more often to programs that I haven’t used since, what, 2004? – fvwm, mutt, mc. That can’t be healthy, and I’ve already dragged myself out of the suckless rabbithole once, I don’t want to go down it again.
I guess my generation is already old enough that UX designers in the FOSS world don’t want to deal with it (it feels weird saying that – I’m actually pretty young but I had a head start with computers, which put me pretty firmly in the generation of computer users that held their breaths for Y2K a bit). I guess that’s a good thing, in a way, free software can’t thrive by appealing to the same people who found it appealing 20 years ago. But I am pretty bitter about it, and pretty disappointed (enough that I’ve spent like an hour writing this post – and most of it was spent deleting snark and sarcasm). And, on top of that, I’m concerned about how much time I’ve wasted on it lately, so I’m starting to look into alternatives.
A few years ago I finally gave up on my Gentoo laptop, and life is better for it. I then more recently gave up on awesome wm for dwm. Yes I’m using more suckless tech, but I don’t rice, and maybe spend an hour a year actually fighting to keep my setup the way I like it. I have the same setup on 4k monitors and my little old laptop. The UI just works for me, and importantly, I don’t feel like I’m working for it.
I find Linux in general powerful enough that my work windows machine feels hard to use, and I don’t find myself in a hard hole. But I use find, not some modem remix, and grep, and vim. My email setup is closer to mutt than anything else, and yet I’m not unhappy. These tools feel like mine, and I think I can go another ten years without a major shift in my personal tools.
Just because UX seems off in Linux doesn’t mean it’ll be too hard to have and use and maintain your own setup in a way that leaves you with your most valuable asset.
Remember that the computer works for you, not you for it, and I hope you will find the set of tools that will serve you well for the next ten years. I personally doubt you’ll find it in Windows, but good luck.
Thanks! I’m not really holding my breath about it but it’s worth investigating at least.
Back in 2011 or so, when I went down the suckless rabbithole :) I had a pretty stable setup, too (I used ratpoison for a few months, then wmii for a few years). It was indeed pretty stable, I never got into the whole ricing thing. Back in the day I dropped it mostly because it was pretty hard to shoehorn things that didn’t fit into the whole “emacs and a couple of xterms” workflow – graphics, music, even some graphics programming (dealing with SDL windows is pretty annoying on any tiling WM). It was a setup that worked great for most programming work, but that’s not all I do on my computer.
I tried a similar setup on a large monitor and I wasn’t thrilled though. Every window is either too big to read comfortably, or too small for things to fit. Plus, since I’m okay with mice, the real estate gain I get from a tiling WM vs. overlapping windows with focus-follows-mouse is modest.
User interfaces aside though (I mean, I can always reach for fvwm and xterm :) ) I really do have a growing mistrust of lots of FOSS software. A few years ago, for example, that infamous Dolphin bug ate a large chunk of my music collection, and I then spent almost a month ripping CDs again. The last time I lost data because of a buggy file manager was when I tried some obscure DOS Navigator clone from a “1,001 shareware programs for DOS” CD. On the other hand, I must have copied petabytes of stuff with Konqueror back when KDE 3 was all the rage and it always worked okay. It’s not just that I don’t like the UX (which I don’t, but change is inevitable in tech, I can always adapt) – it’s also that I get the feeling that the steady march of UX improvement has brought us software that looks great in screenshots, but it’s less functional and less reliable (and, at least for me, a lot harder to use, but that’s not so important – if I can spend at least 8 hours a day writing obscure code, I can certainly click a hamburger menu or whatever).
I’m trying hard to both ignore and retain all the kubernetes expertise I crammed in this week. Ignore so I can recover, retain so I never have to re-learn it.
Let me know if you need help mounting NFS volumes in a Pod, though.