Feel free to tell what you plan on doing this weekend and even ask for help or feedback.
Please keep in mind it’s more than OK to do nothing at all too!
Preparing to party for my home country ending the dictator rule.
Sleep. Exercise. Eat healthy food.
I should exercise too. It’s too easy to neglect self-care during this pandemic, and I definitely have been. Thanks for reminding me :)
I’m writing a Self-hosted software development platform with Git VCS. It’s going to be written in C.
C is quite familiar for me as I’ve been programming in Golang for the last 2, 1/2 years and in Python for about 4 years. Thing is I still gotta look at some intermediate and expert books regarding how to handle memory allocations and avoid the pitfalls that C developers usually face it. If you ask me now, I really don’t know - just got my basics good.
Some books which I’m referencing are:
Furthermore, I’m also thinking about reading a book on PostgreSQL. I’m going with Practical SQL up and running from O’reilly. Going to spend today and the weekend to read these to see how far I can go.
Learning C will also help me to build another project which I have in mind - building a voice assistant with PocketSphinx. It’s a desktop app which will utilize GTK3. And I have to get my ideas consolidated on how will this work. Basically trying to build a wrapper where people could upload their voice data and train their keywords and add functionalities that will do what they want to do.
Crank the compiler warnings as high as they go, and fix all warnings. Also, run the program under valgrind and fix all those warnings as well. I’ve been doing that for my Pascal compiler and I’ve fixed what seems like a memory leak or invalid memory read/write every third test run. Well worth the effort.
Also, try to avoid casts. You don’t need them for malloc(), calloc(), realloc() or free(), and if you do need to cast, isolate it. For instance, I keep procedure/function parameters in a linked list, and the structure is declared like:
And to run through the list of parameters, the code looks a bit like this:
Node *n = ListGetHead(params);
n = NodeNext(n)
parameter__s *parm = parm_from_node(n);
// rest of code
The “function” parm_from_node() is one of the few places where I do casts, and it looks like this:
static inline parameter__s *parm_from_node(Node *n)
return (parameter__s *)(((char *)n) - offsetof(parameter__s,node));
By using offsetof(), I can reorder the fields around and still have this work in valid C .
 Okay, explaination. You can always cast any pointer to char * (and back again—it’s mandated by the standard). The function offsetof() (it may be a macro—be careful) is how one portably finds the offset of a field in a structure) is used to adjust the pointer and that is then cast back to the appropriate type. I use an actual function for this instead of a macro because macros don’t typecheck (technically, if you pass the wrong Node * to this, it stands a chance of crashing, but at least it will typecheck that you are passing a Node * and not a foo *).
Another tip would be to switch between compilers, and especially try clang’s various sanitizers (memory, address, undefined behavior, …). And generally, adding assertions can help a lot, both to ensure that changes don’t break unrelated modules, and to formally write down what your assumptions are while writing the code.
Thank you very much! Valgrind is recommend by 21st Century C book. I’ll definitely try what you have said. I just saw your website, and you seem like you have knowledge on this. But for me, I’m just taking baby steps so far. And I need some time to look through what you have suggested.
I might send an email to you if I have any questions on what you have mentioned above :)
Nothing, at least nothing work-related.
Mowing the grass. Going for a hike in the mountains. Perhaps visiting our local pinball museum. We went last week and I had a blast playing old pinball games. Forgot how much physical fun they were to play.
It would be quite the project, but how cool would it be if there was a MAME-cabinet equivalent for pinball? Some kind of reconfigurable deck, and maybe like a lego-kind of system for the rails, chutes, etc…
I am writing a text about the way I do self-tracking. I log what I eat, how I feel, my sports routine and other aspects of my life. I am not sure if anybody else is doing this. There are many tools to do self-tracking in specific areas like nutrition, sport, sleep etc. But I have not seen context free tracking tools so far.
So I want to write a bit about it and see if there is demand for such a tool. If so, I might evolve my own approach into a mobile app.
If anyone here is aware of such “meta tracking”, let me know.
If anyone here is aware of such “meta tracking”, let me know.
https://julian.digital does a lot of self-tracking
I started doing this since last Dec in markdown files with the intention to some day build an app to parse natural language and then build a selfhosted personal dashboard. Of the things I am tracking weight watching is an interesting thing given the Covid situation and how it relates to how depressed/disciplined I was that day.
Do you have a blog or somewhere to subscribe to where we can read this once you’re done? Very interested in folk’s approach to this
I will surely announce it on my Twitter account: https://www.twitter.com/marekgibney
Drugging up at friend’s place.
On Saturday, I’m hosting the last day of Heartifacts, a Code & Supply conference about mental health, community building, and career management. Breakouts require registration but the stream is on our YouTube and Twitch, embedded on and linked from the main page. I hope you’ll peek in. Wednesday and Thursday nights’ streams are on the Heartifacts 2020 YouTube playlist.
On Sunday, I’m spending a day in a kiddie pool because I’ve earned it.
I’m creating a modern-looking 4chan-like website in mighty Rails. The reason is because my ISP has been blocked from 4chan at least a year ago, and I haven’t found 4chan alternatives that I like. I’m trying to make things as simple as possible. So simple in fact, everything under the root directory is a board, as in /*. And everything under /* is a post. Posts are stored linearly, but graphically grouped into a tree of posts and replies (which are also posts). Damn you ISP block! But also thank you ISP block.
Playing with the GPIO pins of my Raspberry Pi for the first time. (Researching what it would take to get a friend’s large, antique, wall-mounted rotary phone wired up such that it can be used to order pizza at parties.)
have fun with the GPIO. Which version of the raspberry pi are you using?
Thanks, got a button and some LEDs working already. The 4.
That first time you make an LED blink it is glorious!
Just because, I’m implementing Pascal (based off this document [PDF]) as a jumping off point for language design. This version is simple enough to be doable in a reasonable amount of time (I hope) and as something to do while quarantined. I’m also doing it in C because, why not? (valgrind is my friend).
valgrind is my friend
valgrind is my friend
Have you tried ASan too? In my opinion it produces much nicer output.
No, I haven’t. My tool chain is a bit old for it. And I don’t mind the output from valgrind (then again, I don’t know any better).
Looking forward to getting away with just the wife for an evening. Also, house-hunting continues. This is not a great time for it, with everyone fleeing cities and low rates, but we’d prefer if we didn’t continue renting this house.
Since finishing FF7 Remake yesterday, I’m in that ever-so-slight-wistfulness you get when a good piece of media is done. Time to start looking for a new project to work on; perhaps another Unity game. SwiftUI is also a possibility if I can figure out an app to make. (Still have a goal of making a sale of something this year.)
Which city are you looking in? I’ve been very curious about accounts of the “fleeing”. I have family and friends in New York that see it happening but I haven’t much seen or felt it whereabouts I am.
DC metro area. Definitely a sellers market. We lost one offer because we didn’t waive everything.
Trying to figure out why the CPU debug light is on for the Ryzen on this A570 motherboard. Seems to be a common problem but without a definitive cause and solution.
Turns out that I am a complete idiot and accidentally bought ECC RAM which does not work at all. Things are happily buzzing along now that I have non-ECC RAM. (It would be nice if the RAM light had come on instead of the CPU light, mind.)
I’m thinking about creating some video content. I’m still deciding between video-on-demand or streaming. It’ll be about programming. I’m not sure if it will be pre-planned or exploratory but I’m excited.
Any resources for creating programming video content are welcome!
📝 Read Computers then and now and copy it into HTML form.
💸 Finish my bank account scraper.
👾 Play Zelda, Tetris 99, Streets of Rage 4, and Risk of Rain 2
🤳🏾 Video chat with friends.
💌 Send postcards.
🚴🏾♂️ Ride my bike!
Finish my bank account scraper.
Finish my bank account scraper.
I’m curious why one needs to write a scraper to get information from bank account, when there are better tools like Mint are available to help you aggregate such information.
I thought mint was garbage the last time I used it. This was a few years ago, is it any better now?
I use tiller and hledger now.
I have an hledger set up but downloading all the transactions and cleaning/transforming is a bit of a chore. That’s were tiller comes in to get all the transactions in one spot.
What I like about hledger is it’s double entry accounting.
If you use hledger to it’s full extent you can see how much you really pay in taxes (down to the pennies if you choose) including payroll taxes, and what your real tax rate is. Great for personal finance nerds.
Interesting. Haven’t heard about these both options till now. Will give a try. Thank you!
I hadn’t heard of tiller! They appear to get transaction data from yodlee. Very useful and a good price! I’m playing with it now.
(I use hledger too!)
Because I have bank accounts domiciled where Mint in specific and tools like it don’t work.
And organisations (government, corporate, etc.) often require copies of my account statements. I have enough bank accounts that logging in, downloading, and filing the latest PDFs every month is a real pain.
Or open standards like FinTS (https://www.hbci-zka.de/spec/spezifikation.htm)
It must be nice to live in Germany.
Advent Of Code 2016 in Kotlin. So far lots of fun.
Spent a lot of time reading Type-Driven Development in Idris to buff up my skills from experienced Haskeller using Idris as Haskell+ to actually understanding the proving mechanisms in Idris 2. Going back to finish basic functionality in my libgit2 bindings now that I’ve cleared my hurdle!
Not thinking about work 
I’m going to make a dashboard up on my personal site and fill it with random stuff. Like a histogram of how many times I poop a week.
More colemak learning. Trying to unlearn bad typing posture and continue getting better. 30 words per minute on level 1 of colemak academy! It’s a far cry from my normal 100+ words per minute, but I’ll get there.
I will be catching up on my sleep, probably trying to normalize my sleeping hours now that the heat wave is passing~ish out of Germany. I will continue working on gluying together some pieces for my website analytics solution here and here. I made some progress this week and want to finish a couple of pending tasks.
Will probably go swimming to a nearby lake to cool off :)
Teaching someone to juggle. Prepping for a move Monday.
Easy weekend here. Watching lots of football, especially the Europa and Champions league.
I’ve been wanting to dive into a hobby Elm project, so I’m looking to get a hard start.
Resting, in preparation for a rediculous amount of effort Monday morning.
Wrapping up my custom-chess-poster-generator site checkmateposters.com. Now I have to learn how to market it! Any tips?
Dropping my son off in Vermont for his first day of college in 14 days.
Getting another beta of TenFourFox out, though this one has only minor changes because of $DAYJOB and me being ill (NOT COVID-19). Then uploading the old Yahoo Groups archive of the Tomy Tutor users group I was on/ran from 2001-2019 now that I’ve converted it from YG’s JSON archives to static HTML.
Try to get sensor readings from a Honeywell MPRLS sensor and making a first shot on a “bubbler type liquid level sensor” (“Einperlsensor” in german), to measure water levels in cisterns. First prototype with python on an old raspberry pi2 and piface board, and if aliexpress delivers my solenoid valves, maybe I can even start with multiplexing the measurement ports.
Replaying Skyrim for a while, working on my nixinfo crate, and working on the undeprecated overlay for Gentoo which fixes some of the mistakes that Gentoo has been committing such as forcing libglvnd and removing consolekit and any way to keep it without following the standard procedure of deprecating (but still allowing the usage of) the package.
Studying for my oral exams next week. Also maybe play around with Wayland compositing when I get bored of studying.
Probably going out and taking some photos and working on a Python library for BARE that supports streaming.
Hopefully help some more on Arbor tree-based chat, and probably doing some work towards writing a small web proxy in rust.
Now that I’m funemployed again, I get to focus on finishing my apartment move and then start doing project work!
Finally done with updating all my ebooks (some minor todos pending, but those never ever go away, do they?). Currently converting them all to web books using mdBook - see GNU grep and ripgrep for example.
I didn’t like second book of “The Wounded Kingdom” trilogy, so have to spend some time going through TBR to decide what to read next.
I’m planning on starting on the Miz game jam this weekend, as well as some general shopping and prepping for my wife’s next infusion treatment next weekend.