Final touches on the barn go up this week. Our new hops separator should arrive sometime midweek, and we’ll be starting in on the harvest shortly after.
Gonna start the week by installing FreeBSD on my main desktop machine (was initially interested in OpenBSD, but I have an nvidia card and wanted to still play steam games).
Also going to continue working on sanegl. Over the last week I added:
A PBR shader that uses Cook-Torrence BRDF for specular and Lambert BRDF for diffuse. It works with point lights right now.
Added skyboxes
This week, I’m going to start adding IBL and dynamic shadows. I found out about apitrace which will make life a whole lot easier when debugging GL calls.
OpenBSD only has the nv driver for nvidia cards, which is actually slower than software rendering (a total waste for my GTX 960). FreeBSD has the proprietary drivers, and I’ve seen a few articles about its linux emulation layer being able to run steam (if all else fails, I can use wine pretty easily too).
Yes, I am hoping to learn lots of new things (always been programming in imperative languages).
As of now I haven’t had any issues, because mostly I am learning and haven’t really written anything big. I have a side project to build a small job board and I have decided to use Clojure for it. Then I will know the real stumbling blocks and difficulties. I will surely write a blog post or a self post here in Lobsters.
I’ve been poking around at updating my mail reading setup in a sort of desultory fashion for a while ; I’m 90% of the way there. I’ve been able to discard great gobs of my own horrible elisp customization in favor of mu4e’s context abstraction, and msmtp makes sending a lot cleaner. This is useful because I hate all IMAP clients on OS X, and I can run mu4e inside emacs on my Linux machine and just avoid the whole stinking mess.
Amusingly enough, the only way for me to be satisfied with the UI of software on Linux is to run it inside an ancient and crufty lisp development environment.
I also have to retube my amp, because I blew a power tube last practice. It hardly seems fair; it’s way too much amp for the practice space, so I play through a powersoak, which means it doesn’t sound as glorious as when it’s driven full-throated. But I still run the tubes at full power, so BLAM, there goes $250. Sigh.
For work, wrangling a bunch of scratch tables into a sane, normalized schema that enables actually reasoning about the data, rather than just throwing ad-hoc queries against the wall. The observation that joins can slow queries down has metastasized into a mythology that normalization is bad. I blame the active record pattern, and ActiveRecord in particular, for this criminally negligent cargo-cult belief system. Just because Rails is too dumb stupid to make use of the tools the database provides is no reason to ignore them, particularly when we’re not using an ORM.
Nice. I use mutt + offlineimap + msmtp. Do you have multiple email accounts you need to smtp through? Last week I discovered I was doing multiple msmtp accounts all wrong, and it was sending through the default account every time. You need the from field for envelope-from matching:
account foo
host foo.example.com
port 587
auth on
from me@foo.example.com
user me@foo.example.com
This wasn’t an issue for me until recently, when I discovered that sending through the wrong gmail account added the X-Google-DKIM-Signature: header instead of the DKIM-Signature: header, and gmail receivers with DMARC enabled don’t like the former. Also: the report I got by sending mail to mailtest@unlocktheinbox.com was invaluable in tracking down DKIM / DMARC issues.
This is good to know. I have a half-dozen different accounts, so I’ll need to be careful with msmtp. Still, it’s better than having all my various SMTP niblets stuck in various s-expressions scattered about my org-mode startup file. Hat tip for that mailtest business, that’ll help a lot.
This is a pretty exciting week. Two people will start working for me part time this week on my Rust projects. It’ll be interesting to see how this goes and, if it goes well, I hope to be able to expand on this arrangement in the future.
I’ve continued my rapid pace of learning over the last week. Despite being in my 40s, I feel like I’m learning more per day now than at any time in a very long time. I’m almost at a point where I want to start diving into writing my RDF library and other things.
Around the house, while we were away recently, we had a large number of caterpillars come to live in some of our bushes. My wife wasn’t happy about this as she deeply dislikes caterpillars. But, a bright side is that a green billed malkoha (a type of non-parasitic cuckoo) has moved into the tree next to us and is enjoying many fine meals from our bushes. It is pretty fun to watch him hop back and forth along the fence, occasionally jumping down and coming back up with a caterpillar in his beak.
I’ve been sick for the last 5 days, but starting to feel better today, so hopefully I’ll be able to get a lot done this week.
I played a bit with Pixar’s Universal Scene Description last week. I submitted a fix to homebrew for one of the dependencies and got USD to mostly build locally. I’m waiting for them to process a CLA that I sent in so that I can submit some pull requests with various fixes.
My software plans require embeddable libraries that don’t require a server, can hopefully expose an API that is C compatible for use from other languages, and that can run in many places, from mobile to desktop to server. That’s why Rust.
As for the RDF library itself, I’m starting out with a library for XSD datatypes, one for CURIEs, and a base library for RDF models / graphs themselves. Over time, I’d like to expand this as I need query and other things.
I’d like to explore, in the future, ways to integrate native structs with this. I have some ideas like using an RDF model as a trait and let it generate the graph data on request, or perhaps integrating with serialization systems so that you reconstruct native Rust structs from the underlying graph data. I don’t know though yet what will work the best or make the most sense.
This all ties into a much larger set of projects that I want to build on top of all of this. It is my life’s work.
Trying out a haskell web app, I’m using servant to write out the api and now I have to think about the other various pieces of it, I think it’s going to be fun!
Work side I’m finishing and starting up some contract work and finalising a data migration from my jobs old app to the new app, though it has proved exceedingly hard to do so. I believe it’s mostly due to my inexperience with the stack (And there being no senior programmers at the company) and the small amount of time I have per week. Though php is surely a factor here as well.
For money, gonna be planning out a migration to SOA. Wonder how that will go. I’ve been yapping about OSIMM for a while, nobody is listening, I expect we’ll probably end up making mistakes n stuff, that are covered by OSIMM.
For not money, gonna continue on my massive refactor of my project. It is starting to look satisfactory, and I’ll soon be able to add new features without being held back by my poor initial design decisions. Yay!
In other news, it seems like the offer I made on the house right across the street from where my parents live is going to stick; this means I’m probably moving out of Montreal and back in the burbs in April, May, or June. This means, in turn, that I will either have to convince my current director that working more from home (I’m gonna have an actual closed-off office, it’s going to be awesome). This part doesn’t seem like a done deal.
If by January I don’t have an arrangement that is satisfactory for all parties involved, I’m going to start looking for a new job. On my wish-list if push comes to shove: Remote-first, 5% more monies than what I make now, not PHP (in order of preference: Go, Elixir, Anything That Runs On The JVM, Some Compiled Language I Don’t Know Yet, Some Functional Language I May Or May Not Know Yet, Python, Ruby, Other Interpreted Language I May Or May Not Know Yet Hopefully Not Javascript). But yeah. For some reason, Montreal PHP gigs are numerous.
I’m back to working on BedquiltDB (https://bedquiltdb.github.io), specifically adding ‘advanced’ query operators like “$eq”, “$gt”, and so forth, enabling more interesting queries than ‘where the document is a super-set of this document’.
I am working on a small C++ cli application that will basically act as a download manager front end. curl/wget/aria2 already handle downloads quite smoothly the only thing that i miss is launching them and let them intelligently handle retrys, failures, etc. Right now i have a bash script that creates a .down file in the current folder and download <url> appends the url to the file along with the flags, then i run download do which does for url in .down; wget -c url this is single threaded and to continue a partial download i have to run the command again.
This application will create all the download processes (limited by max-concurrent-downloads) and manage them, and when i call the –progress flag, display the current progresses/failures/pending etc.
There isn’t much code there right now but i am adding it and also learning how to do other stuff in C++ along the way.
Continuing consolidating things from VMs to physical server. Managed to make puppet-master-over-ssh work for the hypervisor, and also work using the hypervisor as a jump ssh host to run against the VMs within the server too. No need to run a puppet master node on there. Pretty neat.
Also trying to get the boat rigged this week so I can sail her. That might be more of a challenge than I expect, but we’ll see.
Once I got over the “not twiddling raw bits hewn from stone and sweat” (and there’s certainly time for that, as I had previously made Pong in Rust), I actually had a lot of fun
The language seems to be a variant of ECMAScript. The UI neatly syncs sprites and game objects, and so I was able to follow a tutorial and make Asteroids in less than a couple hours – sound effects and everything!
My project now is to migrate my website onto Google Cloud. It’s currently running on an outdated version of Django and powered by a Digital Ocean micro instance for $5 per month. That’s pretty cheap, but I figured that if I migrate it, then it’s essentially free (my usage is comfortably below the free tier limits), more secure (since everything is sandboxed, and the current instance is not exactly hardened), and I’ll also get lots more geeky graphs than I have now. I’ve migrated (read re-written) pretty much the whole back end (~10 hours) and am now working on a re-write of the front end to make it a one page app.
Still working on the book! This weekend and week is interpolation and easing functions, with a guide to procedurally generated explosions. I already have some nice looking pixel fireworks coded, that I will write up over the next several days.
Final touches on the barn go up this week. Our new hops separator should arrive sometime midweek, and we’ll be starting in on the harvest shortly after.
Gonna start the week by installing FreeBSD on my main desktop machine (was initially interested in OpenBSD, but I have an nvidia card and wanted to still play steam games).
Also going to continue working on sanegl. Over the last week I added:
This week, I’m going to start adding IBL and dynamic shadows. I found out about
apitrace
which will make life a whole lot easier when debugging GL calls.So OpenBSD has bad support for all that then?
OpenBSD only has the
nv
driver for nvidia cards, which is actually slower than software rendering (a total waste for my GTX 960). FreeBSD has the proprietary drivers, and I’ve seen a few articles about its linux emulation layer being able to run steam (if all else fails, I can use wine pretty easily too).I wanted to learn Lisp, so I picked up Clojure. Really enjoying it so far!
I started with Learn Clojure in 15 minutes which gives nice taste of Clojure syntax. Now I am currently doing Clojure for the Brave and True, which just a brilliant book imo. Its lot of fun reading it and really engaging.
Best of luck digging into Clojure, it’s something I really got a lot of value out of for a long time and hope you do too.
I would be fascinated to see a blog post or just a gist of notes on things you found to be stumbling blocks both with the language and tooling.
Yes, I am hoping to learn lots of new things (always been programming in imperative languages).
As of now I haven’t had any issues, because mostly I am learning and haven’t really written anything big. I have a side project to build a small job board and I have decided to use Clojure for it. Then I will know the real stumbling blocks and difficulties. I will surely write a blog post or a self post here in Lobsters.
I’ve been poking around at updating my mail reading setup in a sort of desultory fashion for a while ; I’m 90% of the way there. I’ve been able to discard great gobs of my own horrible elisp customization in favor of
mu4e
’scontext
abstraction, andmsmtp
makes sending a lot cleaner. This is useful because I hate all IMAP clients on OS X, and I can runmu4e
inside emacs on my Linux machine and just avoid the whole stinking mess.Amusingly enough, the only way for me to be satisfied with the UI of software on Linux is to run it inside an ancient and crufty lisp development environment.
I also have to retube my amp, because I blew a power tube last practice. It hardly seems fair; it’s way too much amp for the practice space, so I play through a powersoak, which means it doesn’t sound as glorious as when it’s driven full-throated. But I still run the tubes at full power, so BLAM, there goes $250. Sigh.
For work, wrangling a bunch of scratch tables into a sane, normalized schema that enables actually reasoning about the data, rather than just throwing ad-hoc queries against the wall. The observation that joins can slow queries down has metastasized into a mythology that normalization is bad. I blame the active record pattern, and ActiveRecord in particular, for this criminally negligent cargo-cult belief system. Just because Rails is too dumb stupid to make use of the tools the database provides is no reason to ignore them, particularly when we’re not using an ORM.
Nice. I use
mutt + offlineimap + msmtp
. Do you have multiple email accounts you need to smtp through? Last week I discovered I was doing multiplemsmtp
accounts all wrong, and it was sending through the default account every time. You need thefrom
field for envelope-from matching:This wasn’t an issue for me until recently, when I discovered that sending through the wrong gmail account added the
X-Google-DKIM-Signature:
header instead of theDKIM-Signature:
header, and gmail receivers with DMARC enabled don’t like the former. Also: the report I got by sending mail tomailtest@unlocktheinbox.com
was invaluable in tracking down DKIM / DMARC issues.This is good to know. I have a half-dozen different accounts, so I’ll need to be careful with
msmtp
. Still, it’s better than having all my various SMTP niblets stuck in various s-expressions scattered about my org-mode startup file. Hat tip for thatmailtest
business, that’ll help a lot.Howdy all!
This is a pretty exciting week. Two people will start working for me part time this week on my Rust projects. It’ll be interesting to see how this goes and, if it goes well, I hope to be able to expand on this arrangement in the future.
I’ve continued my rapid pace of learning over the last week. Despite being in my 40s, I feel like I’m learning more per day now than at any time in a very long time. I’m almost at a point where I want to start diving into writing my RDF library and other things.
Around the house, while we were away recently, we had a large number of caterpillars come to live in some of our bushes. My wife wasn’t happy about this as she deeply dislikes caterpillars. But, a bright side is that a green billed malkoha (a type of non-parasitic cuckoo) has moved into the tree next to us and is enjoying many fine meals from our bushes. It is pretty fun to watch him hop back and forth along the fence, occasionally jumping down and coming back up with a caterpillar in his beak.
I’ve been sick for the last 5 days, but starting to feel better today, so hopefully I’ll be able to get a lot done this week.
I played a bit with Pixar’s Universal Scene Description last week. I submitted a fix to homebrew for one of the dependencies and got USD to mostly build locally. I’m waiting for them to process a CLA that I sent in so that I can submit some pull requests with various fixes.
Hope you all have a great week!
Your RDF library sounds interesting. Is it for Rust? Any idea of specific features you plan for it?
Yes, it is written in Rust.
My software plans require embeddable libraries that don’t require a server, can hopefully expose an API that is C compatible for use from other languages, and that can run in many places, from mobile to desktop to server. That’s why Rust.
As for the RDF library itself, I’m starting out with a library for XSD datatypes, one for CURIEs, and a base library for RDF models / graphs themselves. Over time, I’d like to expand this as I need query and other things.
I’d like to explore, in the future, ways to integrate native structs with this. I have some ideas like using an RDF model as a trait and let it generate the graph data on request, or perhaps integrating with serialization systems so that you reconstruct native Rust structs from the underlying graph data. I don’t know though yet what will work the best or make the most sense.
This all ties into a much larger set of projects that I want to build on top of all of this. It is my life’s work.
I welcome help.
Reverse engineering the UT2004 network protocol the odd night, dentist appointment, and watching Blender modeling videos.
Which videos are you watching? I’m interested in trying to pick up 3D modeling.
Trying out a haskell web app, I’m using servant to write out the api and now I have to think about the other various pieces of it, I think it’s going to be fun!
Work side I’m finishing and starting up some contract work and finalising a data migration from my jobs old app to the new app, though it has proved exceedingly hard to do so. I believe it’s mostly due to my inexperience with the stack (And there being no senior programmers at the company) and the small amount of time I have per week. Though php is surely a factor here as well.
Might finish up the app I’m developing, but fighting GTK isn’t too fun.
For money, gonna be planning out a migration to SOA. Wonder how that will go. I’ve been yapping about OSIMM for a while, nobody is listening, I expect we’ll probably end up making mistakes n stuff, that are covered by OSIMM.
For not money, gonna continue on my massive refactor of my project. It is starting to look satisfactory, and I’ll soon be able to add new features without being held back by my poor initial design decisions. Yay!
In other news, it seems like the offer I made on the house right across the street from where my parents live is going to stick; this means I’m probably moving out of Montreal and back in the burbs in April, May, or June. This means, in turn, that I will either have to convince my current director that working more from home (I’m gonna have an actual closed-off office, it’s going to be awesome). This part doesn’t seem like a done deal.
If by January I don’t have an arrangement that is satisfactory for all parties involved, I’m going to start looking for a new job. On my wish-list if push comes to shove: Remote-first, 5% more monies than what I make now, not PHP (in order of preference: Go, Elixir, Anything That Runs On The JVM, Some Compiled Language I Don’t Know Yet, Some Functional Language I May Or May Not Know Yet, Python, Ruby, Other Interpreted Language I May Or May Not Know Yet Hopefully Not Javascript). But yeah. For some reason, Montreal PHP gigs are numerous.
I’m back to working on BedquiltDB (https://bedquiltdb.github.io), specifically adding ‘advanced’ query operators like “$eq”, “$gt”, and so forth, enabling more interesting queries than ‘where the document is a super-set of this document’.
I am working on a small C++ cli application that will basically act as a download manager front end. curl/wget/aria2 already handle downloads quite smoothly the only thing that i miss is launching them and let them intelligently handle retrys, failures, etc. Right now i have a bash script that creates a .down file in the current folder and
download <url>
appends the url to the file along with the flags, then i rundownload do
which doesfor url in .down; wget -c url
this is single threaded and to continue a partial download i have to run the command again.This application will create all the download processes (limited by max-concurrent-downloads) and manage them, and when i call the –progress flag, display the current progresses/failures/pending etc.
There isn’t much code there right now but i am adding it and also learning how to do other stuff in C++ along the way.
Continuing consolidating things from VMs to physical server. Managed to make puppet-master-over-ssh work for the hypervisor, and also work using the hypervisor as a jump ssh host to run against the VMs within the server too. No need to run a puppet master node on there. Pretty neat.
Also trying to get the boat rigged this week so I can sail her. That might be more of a challenge than I expect, but we’ll see.
Tinkered with Game Maker this weekend.
Once I got over the “not twiddling raw bits hewn from stone and sweat” (and there’s certainly time for that, as I had previously made Pong in Rust), I actually had a lot of fun
The language seems to be a variant of ECMAScript. The UI neatly syncs sprites and game objects, and so I was able to follow a tutorial and make Asteroids in less than a couple hours – sound effects and everything!
My project now is to migrate my website onto Google Cloud. It’s currently running on an outdated version of Django and powered by a Digital Ocean micro instance for $5 per month. That’s pretty cheap, but I figured that if I migrate it, then it’s essentially free (my usage is comfortably below the free tier limits), more secure (since everything is sandboxed, and the current instance is not exactly hardened), and I’ll also get lots more geeky graphs than I have now. I’ve migrated (read re-written) pretty much the whole back end (~10 hours) and am now working on a re-write of the front end to make it a one page app.
Nothing to report on any other fronts :)
Still working on the book! This weekend and week is interpolation and easing functions, with a guide to procedurally generated explosions. I already have some nice looking pixel fireworks coded, that I will write up over the next several days.