This is the weekly thread to discuss what you have done recently and are working on this week.
Please be descriptive and don’t hesitate to champion your accomplishments or ask for help, advice or other guidance.
Do I plan on working a lot this week? No, not really.
Oh, I’ll have spare time then, will I learn a lot of new technology this week for fun? Also no.
But I will certainly spend this week to improve my family life and make deeper connections with my friends? I mean… also no but now I’m starting to feel bad about being in this thread.
I support you in this non-endeavor.
Following in Peter’s footsteps? ;)
Working on my first contribution to Rust itself: https://github.com/rust-lang/rust/issues/48103
Nothing big, but that makes it a good opportunity to learn about the surrounding infrastructure, how to compile rust, testing, how the code is structured, etc.
I will also continue with reading through ‘Programming Rust’ and adding more Anki cards to my collection. I currently have about 30, but want to add at least 20 more this week.
I ended up being off sick for most of last week, and because I was travelling last week that means I missed an entire sprint for my team. So I’m getting up to speed on what’s been done, and planning the next sprint. It looks like it went well so maybe I should stay away more often :).
I’m giving a talk in MCE conf later in the year, and I’m working with the organisers on choosing a talk topic: I have three potentials and would like to understand which fits their programme better.
Side project work around the edges: I’m learning Russian from a book. It’s a book on technical Russian for scientists, rather than conversational Russian for going on holiday (which is easier, because almost all technical words are Greek or Latin anyway, and you don’t need to be able to pronounce things well). I’m fascinated by the history of computing research, but being Western my education in this area is “the Russians were late to the party and copied Western computers”, and I don’t believe that that’s true. My understanding of Soviet cybernetics, for example, is that it’s very different from American and European cybernetics, because the social and cultural background informing the idea of control systems is very different. Anyway, that’s a long way round of saying that I want to be able to read primary literature in 20th century computing in the Soviet Union and draw my own conclusions.
For some reason I’ve picked up Blender and went through a real nice set of tutorials (armed with this awesome cheatsheet). Will try to keep up the pace of just building random things in Blender
I’ve gotten a bit burned out on tech-y stuff recently, so opting for drawing and the like for my free time. I’m not good but it’s still relaxing and satisfying.
Nice! I’ve played around with Blender some myself, and have been meaning for a while to learn it more thoroughly. I really enjoy Blender Guru’s tutorials.
My extensible parser is up and running. I’ve stuck to a vision of a language with conventional syntax where all core syntax is defined at the library level. It has been hard to conceptualize, and I’ve been lost in the woods of parsing for awhile now, but I finally have something that works well enough to move on. I’m super excited to finally bridge the gap between what I wanted and execution.
One issue remains: what is the language of semantic actions? Ideally, we’d use the language being defined, but, there may not be syntax to support what we’re specifying! Therefore we need some sort of metalanguage for bootstrapping. Perhaps a bastardized sexpr syntax is good here (wear your influences on your sleeve!). Elixir uses a three-tuple of the form (:call, <metadata>, <call_args>). I’d prefer to use the language being defined for those actions, but that makes my head hurt.
(:call, <metadata>, <call_args>)
Looking into whether it’s worth building on Oracle’s Graal/Truffle this week.
ActivityPub support in Pleroma
Reading “The Science of Debugging” (Telles and Hsieh) and “Why Programs Fail” (Zeller) for my next round of debugging book reviews. I spent last week spot-reading the first chapters or parts of various books to see what I wanted to cover, but I settled on a couple of heavyweight ones. Maybe I’ll finish them by the weekend. I’ve read Zeller’s book before, but the other one is pretty long.
After that, I’ll have to start learning some COBOL, Fortran, and BASIC because the next books I want to cover are all from the 70s and early 80s, and following the code samples seems to be necessary.
Recently left a burning-down startup, so there’s some job search activity going on.
Scuba diving in Mexico for a few days, although Roatan in August will be the big diving trip this year.
I think my hybrid genetic/gradient approach will allow me to get a working AI for Ambition. I’d like to go model-free, but if this approach doesn’t learn the game in that way, then I’ll implement rollouts and MCTS and use game-specific knowledge.
Farisa: pulling the pieces back together, after 3 unplanned months off from writing (my job was toxic, but the writing slowdown was still largely my fault). Figured out some tie-ins to the second book, and how to connect a few scenes to each other.
I’m trying to build a PowerDNS web frontend in Angular (the latest, I think 5). Here’s a video recording.
I started on Friday, I wanted to finish it in this week, and it kinda works, although I’ve got major issues with Angular itself, mostly routing being confusing and annoying. I’ll probably put the project on GitHub tomorrow. Let’s see where it goes from there.
I spent most of this weekend working on a fork of RegexGenerator. It is a Java tool to generate regular expressions automatically from examples. I’ll probably try to rebase my changes onto another fork that changes the build to use Gradle.
I find this interesting, because I one wrote an android game where one was supposed to solve regular expression-based tasks, but since I was randomly creating the strings the RE should match or not, some people suggested using something like what you are currently working on. I never got around to implementing it, partially because at the time I constantly had build problems with AndroidStudio but also because I couldn’t find any good libraries at the time - so maybe your project might turn out very helpful for my game.
What else do you plan to change or improve?
I’ll start by writing tests. After I raise the coverage high enough, I would also like to reduce mutable state, split up some of the larger classes, and change the representation for regular expressions. The current representation has node that contain an array of child nodes that are directly manipulated by calling code. I might also move the code to Kotlin.
I’m working on a Ruby talk called “Metaprogramming with super powers” that I’m giving at the Indianapolis Ruby Brigade meetup on Valentine’s Day. Sadly it was rejected from RailsConf, so I’m 0/4 on my conference talk submissions - just gonna keep working the meetup circuit.
Also working on some finishing touches on an Instrumentation gem based loosely on my blog post on instrumenting Ruby methods. I released 1.0 last Friday, but there’s still some improvements I want to make. It’s not currently open source, but may be suitable to release at some point.
I’ll be working on learning Angular in preperation for an upcoming burst of work on a new thing at work. Today was starting to write the Angular version of this TCL script. I’ll probably be polishing that off tomorrow.
I exercised (as defined by my fitbit) 4 days last week (all walking), I’ve done a few quality of life changes to my personal wiki, and have been enjoying some new video games. I’ve also been participating on this site a bit more, which has been fun.
For this week: make a toy project using Miso (Haskell framework), to see how it holds up compared to Elm.
Have you tried ReasonML in the way of trying Functional languages for front end?
I had a look before, but it seems to target people living in the npm world. But I like how Reason seems to try to make readable code.
Perhaps this will interest you: https://redex.github.io/
Finishing the signing of Android APKs in Go.
To be clear, it’s the signing that happens in Go, and the APKs are just regular APKs, right?
More Rust work, specifically on Rustwell, which is a slow plod, but I just started on something reasonably interesting: defining a CRUD trait that can then be implemented against any resource with CRUD semantics.
Plan is to implement a CRUD trait for the local filesystem and CIFS share first of all, and then move to a few RUST-based resources. Once it’s written, compiled, and tested, I hope to troll other Rustaceans into defining it properly.
I moved my portfolio website (Hugo static site generated) and resume (Latex) to Gitlab/Gitlab pages. The initial motivation was to use SSL certs with my custom domain (something Github pages doesn’t support).
Using Gitlab CI is super simple, I just push new markdown and tex files and the website gets magically updated. In the past I used to go overboard with automating the CI/CD of my personal projects, but I think Gitlab CI hits a sweetspot of effort and reward.
Got a new job last week, spent all last week building graphql prototypes for them and now I have to build the current mobile app on my computer so I can test out the connection between it and the new backend I’m building.
Then I’ll be replacing minor functionality with the new backend. (the faq page questions are queried from the database)
Currently preparing for my last two university exams and searching for a future job on the side.
As for software, recently implemented a miniature domain-specific language for our window-manager-manager (https://github.com/fsmi/rpcd), which is now being used to automate our signage display windows.
Up next is a custom wireless network infrastructure monitoring application (basically tracking WiFi clients via their access point association, regardless of vendor).
Working, and also I have university coursework, which to be honest I’m finding rather tiresome (we have to make a game with Java, and demonstrate the use of classes, among other things)
I do mostly Python at work, Java at uni, but outside of those I’m trying to learn as much Rust as I can - enjoying it a lot so far. I’m hoping to make a contribution to Rust at some point in the near future.
Otherwise, I have a couple of projects I’m working on in my free time.
Working on open source project, web cache server nuster, developing more powerful cache purging features(purge cache by tag/name/regex), disable/enable cache on the fly, etc
$dayjob: Mostly working on support tooling. There are some issues that support needs to diagnose that aren’t hard per se, but definitely take alot of time since the proof requires collecting data from way too many places. Should actually be really fun to write the diagnostic/pattern matching code…the rest is plumbing and string handling.
$sideproject: Kicked off work on a new SaaS over the weekend. Co-founding with an old coworker who is a great product manager and business guy (without sarcasm quotes.) It’s already insanely different compared to building on my own. We took the raw idea and workshopped it, cut crazy amounts of scope for the MVP but left enough to provide tons of value, and found a way to launch into an open part of the industry where we can then grow to the next step.
As someone who constantly needs to remind themselves to step back from the product, code, and pure ideal vision…it’s crazy exciting to see them make such a massive improvement right off the bat.
Last week on work was good, at least the later half.
This weekend was nice, watched a bunch of talks, read a bunch of stuff in my backlog, and worked a bit on my minimalist RSS project (in both functionality and style), maybe in some weeks I can share that here when it’s functional like I want it.
Looks like another busy week this week, end-of-sprint week and we’ve got another release going soon. I’ve no particular plans for side-projects, maybe some game dev and the RSS project.
I have my last exam for this semester tomorrow, so today will be spent preparing for that.
Afterwards I need to evaluate topic models that have been implemented in a probabilistic programming framework. My deadline for that is this thursday so I will be doing that afterwards. I have invested some time in the past few weeks but I feel like I still lack a lot of theoretical understanding of the topic.
Then finally on friday I can celebrate my first Master’s semester being over (except for two assignments).
Last week I got really stuck into my home automation stuff by writing a DHT11/22 server for Raspberry Pi’s in Golang with quite specific requirements for the behaviour. I wanted it to poll the sensor a couple of times a minute for a reading & cache the latest reading for up to a minute (the sensors aren’t the most reliable!) Exposing that cached reading over HTTP as JSON. Turned out to be quite a nice problem to write in golang, the sensor stuff is all encapsulated in it’s own goroutine emitting readings to a channel, and the webserver handles expiring the latest reading & serving it until that point. Even managed to write some tests as part of it.
This week is hopefully getting my Digistump Oak‘s hooked up to some more DHT22’s to spread around the house. And a lot of DIY, lots of things sat waiting to be either put up on walls or build from flatpack. Must get that done to reclaim some space.
I’m working on a design approach for macros in SECL, atm I’m favoring a template based approach; a macro definition would contain specially formated elements which would be replaced with the proper AST elements when the macro expands.
The macro defining function will likely break behaviour a bit as I don’t want to run functions in the context of a macro definition yet, so I might have a go on how to figure that one out.
I’m also thinking about including a special internal function to merge AST trees with a parent node, this would make macros more useful as they would expand into the containing context instead of creating a distinct context below it.