What are you doing this week? Feel free to share!
Keep in mind it’s OK to do nothing at all, too.
For an article I’m writing, I’m trying to talk to people who are using WebAssembly in production or in side-projects (if that’s you, message me!)
I’m also trying to read more widely on the internet. Anything long form and interesting (and independent if possible).
I’m one of those people! I haven’t done much with it in a while due to life circumstances getting in the way, but I’ve written a bit about WebAssembly: https://christine.website/blog/series/olin
Neat! I’ll read through these and ping you if I have any questions.
My initial research is focused on projects where computation, that was previously done on the server, has been shifted to the client. For example, using WASM for searching static websites. But I’m also looking at the wider WASM landscape!
I’m continuing to build little prototypes and demo videos with my language that’s implemented in machine code and mostly translates 1:1 to machine code. Some recent ones:
In the process I expect to continue improving unicode support and error messages for incorrect programs (which are at about 80% coverage so far).
I’m gonna start a planning document for a novel I want to write during NaNoWriMo. It should be fun!
I’m writing up a blog post on making a pytorch style autograd library in Rust. It’s still a wip but i have a draft up https://bilal.software/2020/8/02/l2/
Any feedback would be welcome!
Taking a week off. Take care of yourselves, folks. 🖤
Hope to finish updating my Ruby Regexp book by this weekend.
Started reading Dragontamer’s Daughters - aimed at kids, but I’m liking it so far.
$work: Figuring out some performance mysteries for some hardware. It’s not I/O bus bound (as far as I can tell), it’s not CPU bound, and it’s not memory bandwidth bound. Mysterious.
$notwork: I’ve decided to try alternating side-projects on a weekly basis, so this week I will be working on gamedev stuff. I’ve recently resolved to get ggez working on OpenGL ES 2 out of the box. ES 2 is ancient and kinda dysfunctional, but there’s so much cool hardware out there like the Clockwork Pi, which is cheap because it uses older hardware… which doesn’t support ES 3.
$work: I’m defining some API contracts between our team’s service and some other, internal, services we’re going to be using.
$personal: I want to finish up reading Effective C and start on a small side project. I want to write it in Go, but I’m not too sure about the authentication/sessions story for Go and webapps yet.
Work wise, setting up a gitops automation stack
Personally, writing a “who is currently active/online” feature for a chat application
I’ve have some free time so I started learning XCB to write a small non-skeuomorphic Go (as in the game) client. I’m sad to see that XCB lacks documentation/explanations at so many points, that I have to fall back to searching GitHub for how functions are used. I managed to get a quite comportable C setup (haven’t set up eldoc yet), so I might write an article on what I did, because it doesn’t seem to be common knowledge.
And I have a few patches I have to finish.
Edit: It finally draws the way I want it to: https://0x0.st/i3r9.png
I am slowly progressing on my task queue whenever I find time https://github.com/husio/masenko
There are two topics that I am working on improving right now:
Next step is to find testers and customer that could provide a feedback, but that is a task for another week.
Theorem what_i_will_do_this_week : ∀ day : Weekday, game ∘ watch ∘ work day.
At work, I’m going to be putting down an estimate for how long it’ll take to bring a service into operation with all the required safeguards and monitoring
At home, I expect I’ll be working on the infrastructure for the newly-seated 2022 Worldcon in Chicago, since there are several niceties that need to be sorted out in the registration and payment systems on it.
I have some time off before my last semester of college starts, so I’ll be working a lot on personal projects! Mostly my terminal RSS reader, but also a couple of other things including adding a networking stack to xv6.
$work - looking at some wordpress code; creating a new page to redirect to when some action happens that warrants the redirect.
$personal - continue messing with Perl. I’ve got markdown converting to HTML and I’m planning to look at HTTP::Engine.
I’m reading “New Rules for Marketing & PR”, trying to get better at how to market my side-projects and to broaden my understanding. It’s.. good, but lord it could have been a third as long. Does anyone have a marketing book you enjoyed or recommend?
At work I’m prepping a workshop for our SRE team on JVM memory; some mix of theory (mmap -> malloc -> JVM Heap | GC) and practice. Eg. why YourKit and similar profilers are to be avoided, and how to use tools like JFR, and HeapDumpOnOOM + MAT to find allocation issues.
Oh! And I’m trying to find time to revisit mmap/msync. A long time ago we shunned OS memory mapping at Neo4j, for many reasons and many of which I now know were misunderstandings on my part. One of the remaining issues I have is about controlling flush ordering; having a user space virtual memory impl allows us to do stuff like “hey, if you need to flush this page, then please notify me because there are other pages that must have gotten flushed before it’s safe for this one to go to disk”. That and IO error handling. Spiking some toys in Rust to try to learn and explore ideas.
$WORK: continuation of python 2 / django 1.8 project, now it is running with python 3.6 and django 2.2 but many things are broken in non obvious ways, still the test runner is green and manual testing show 60% coverage which ok
%INDIE: I made progress on the web stack for scheme
Since Firefox Send is on a hiatus, I decided to build a smaller clone of it. Instead of using browser-side encryption, I am taking advantage the excellent age package. The files will live in an S3 like object storage and have a configurable lifetime. The idea is that you can send files to a recipient with their public age key and only they can download it. It could be fun to host but then I may end up in the same boat as Firefox Send!
$work: finish building libraries from code seperated of a large enterprise application, to be consumed by the entire organisation. The motivation arrived from the fact that the enterprise application we built to serve users of a specific role needed unidentical twin systems to be used by their managers and supervised employees respectively. We’ve marked a grow from a large application fitting specific hierarchy levels of a role to providing these capabilities similarly, but differently, to the whole chain, and to external systems additionally. So we’ve seperated all common parts and of course basic utilities like logging, authentication, impersonation, data base and feature management to libraries as well. NuGet packages on the backend and node or angular packages on the frontend. Most of them are shipped, managed in accessible repos, tested and shipped continously via ci/cd processes.
Soon to be honourly released from the army as I mark my total of 6 year contribution of mandatory and, later extended service.
$home: finish working on the stupid RGB windows application that attempts to manage and control any RGB device or peripheral detected by the host or locally in the network. Wanted to play around and try UWP for its sexy UI and good UX, backed off because UWP limits 20% of APIs we had to use, transitioned the app to run on WPF with XAML Island bridges in order to still enjoy WinUI in a non-UWP app. Regretful, painful but still enjoying. First dive into WPF / UWP / working with .NET Core & .NET Standard and bridging technologies with an event based communication layer.
hoping to get into reading and researching the world of procedural content generation - any contribution will be highly appreciated!
I’ve gone down a rabbit hole with rust and windows performance counters. It’s a maze down here and if I’m not careful I’ll have built a working prometheus windows exporter for performance counters complete with windows service integration :-p
At work, starting in on an integration project with a third-party financial API whose behavior is poorly documented and highly inconsistent despite already being used to move huge sums of money around. Kind of par for the course in fintech, sadly.
At home, setting up a new enclosure for one of my pet lizards, who suddenly decided to get very territorial and started fighting with the other lizards, so needs to be by himself. Using my quarantine time to impose a quarantine, in other words.
Adding AVIF support to all my image processing software.
It’s a very new format, so all libraries for it are very actively developed. OTOH I have no choice but use some C++ libraries for it, so I’m fighting same old problems with duct-taped build systems, some requiring perl5, everything barely supporting Windows’ C tooling, etc. I may end up writing a cmake-to-cargo converter.
i,m rebuilding my workstation, so a break from coding.
reviewing the state of things with my project and trying to dogfood it as is, pretending development is frozen and i have to use it as it stands forever, on an ipad ios 9.x.
So much work this week. I’ll probably take a day off next week though
Honestly, pulling my hair out over a mailing list management supplier. Basically they held onto a whole load of subscriber data after I closed my account. I went to open a new account for a completely different org and they dropped me back into the old one with all the old subscribers names and email addresses (which they’re billing me for).
Despite my best efforts over the past couple of weeks they’re doing their best to ignore any attempts for me to try and resolve the situation with them. I’m finding it shocking and infuriating just how little they seem to care about it.
They’re probably holding 100s of thousands of pieces of PII where people have closed their accounts but not cleared out subscriber lists beforehand (probably because nobody ever told them to).
Building a debian image deployment situation for the ever increasing number of raspberry pi and related boards in my house. Would like to have a git repo build an image that can be either written to an SD card for initial use, and then pushed over ssh for updates.
PicoLisp on PicoLisp on LLVM-IR.
I inherited a god-awful, hand-rolled E-commerce platform shoehorned into a WordPress theme and it has been causing our organization so much pain these last few weeks. A great lesson in vetting your vendors (they came with the acquisition, unfortunately), and not rolling your own E-commerce.
Edit: I’m fixing all the stupid bugs that arise from it that seem to have been masked by the shared hosting it was on before we transitioned it to AWS like our other platforms.
May I recommend magic mirrors for your screens? I’m preparing to use one of my many surplus screens in a test build.
Ooh, there’s an idea. I always think of tablets only for those, but I guess an RPi 0 attached would do the same but bigger. 🤔
Anything that can drive a screen, and any screen you can put right up against the back of the glass (otherwise the screen draws somewhere behind the mirror and the illusion can be broken or headaches can result).
I personally have a number of failed laptops that might be able to serve as controlling hardware, or I can use my small collection of single board computers. Have not chosen yet for myself.
Also worth knowing: there is a magic mirror squared software project which is heavily webstack but has many modules, and does the software heavy lifting already.