I’ll be publishing my next debugging book review either today or tomorrow, and I’m now reading debugging books from the early 80s. I’m going todebug some of the BASIC and Pascal programs in these books, which means entering the programs. The line numbers are actually really useful!
I’m working on a small project to use audio stenanography to transmit PICO-8 carts. The holy Grail is “mix a copy of Celeste into some music from Celeste” and be able to decode it through the computer/phone mic.
I’m super unsure of if things are going to work but yesterday I got comfortable with some Python libs for working with audio and I have some (really limited) knowledge of Fourier transforms, so I’m hopeful this will work
Hoping to improve the build process of rust-clippy by checking beforehand if the used rustc version can be used to build it. In the best case this prevents a bunch of bug reports due to nightly rust upgrades that are incompatible with clippy.
I have a comedy show I recorded last monday to do post for and edit. I started a new podcast with a fellow comedian over the weekend - the basis of which we watch sequels to film franchises, hopefully without seeing the first, and do a companion/riff trax cut, and then a 30minute review episode. My other podcast released an episode where we interview Martin Wallstrom (listen to it!). I am giving a small 5-10 minute talk at a coder meetup on wednesday about softskills for IT professionals and students.
At work we’re slowly chugging along with magento 2 integration into our production facility. Its going much slower than I anticipated.
Working on a really fun project that I hope to present at a conference this summer (I’ll post something here if that comes to pass). The project is for work, but we’ll be open-sourcing it.
Without giving too much away, it involves efficient evaluation of potentially enormous sets of boolean functions with predicates of different costs, where predicates can be shared among functions. The goal is to find all of the functions that match a given set of predicates while minimizing the cost function.
(All of this is to massively speed up the primary product that I work on, which ends up solving a lot of decision problems in a soft-real-time environment.)
On the personal side of the house, I’m thinking about removing the ncurses dependency in mtm by creating a lighter-weight terminal abstraction library that assumes it’s running on a fairly recent terminal. I’ve been tinkering more with sam as well, though it’s getting to the point that 30 year old code just isn’t cutting it…I think the terminal part is going to have to be completely rewritten.
(All of this is to massively speed up the primary product that I work on, which ends up solving a lot of decision problems in a soft-real-time environment.
I was going to say that a NIDS could use that but I figured you were ahead of me there. Fascinating project. :)
Given what I’ve seen you post here (and your username), I have a feeling you and I do a lot of similar work. Actually, given how small the industry is, I wouldn’t be surprised if we know each other or are at most like one degree of separation away.
I appreciate it. I’m not currently in the industry, though. Most of the jobs I was offered in industry were about doing security on paper in companies that don’t really care. That’s just not me. I do this stuff on the side of my main job that’s more business and service oriented. I work with people all day, do deep programming and security R&D at night. Or vice versa depending on scheduling. It did buy me a chance to survey, study, and do activist work with thousands of people over time. Learned and experienced a lot the security jobs wouldn’t have taught me.
I’m thinking of switching into paid R&D soon, though. I want to try to build my Brute-Force Assurance concept in case it’s useful to people in your position. Plus cuz someone needs to build something like it. Maybe also try injecting high-security into commercial and FOSS products in way that maintains competitiveness and minimizes cost. If things go well, you’ll probably run into me in person at a conference eventually. :)
Atm I’m implementing IndieAuth, Webmention and RSS for my federated link aggregator. IA is mostly so I can use the webmention.rocks verifier to ensure I did everything correctly. The other two features would enable a first simple but workable federation method and I can pull lots of content into stuff.
However, this work is triggering a lot more work downstream in the package, I’m also planning to switch ORM from gorm.io to go-pg/pg which means writing migrations and managing them too. Additionally the federated content requires most of the resource cache I had planned for later to be implemented now to reduce the long load times when I request data from the internet in the background and convert media from remotes (protect user IPs and make CSP enforcement easier by not loading third-party data on the page).
Otherwise I’m going to try out PJON for my LED Strip/Arduino setup to control it remotely. I’ll also try to make a simple long distance experiment by running two wires for about 20 meters or so and checking how much data I can do safely with the LEDs. And of course, doing work for uni courses.
Probably a day or so of consulting for a small client. I’m open to more web development focused on business outcomes.
Setting up an LLC via Stripe Atlas, the government paperwork should be coming this week. This is for the consulting + a project I want to work on a bit more before I talk about.
Getting my motorcycle out of winter storage. The tachometer broke shortly before I put it up for the season, but my fingers are crossed that’s the only repair. The bike’s vintage (‘81 Kawasaki 440LTD), so anything I can’t fix myself will total it at a time I can’t afford a replacement.
Nice list of highlights. This one popped out at me:
“an online clothes retailer that has a return for almost every sales event.”
Does that mean people return almost everything they buy, part of almost every order, or they profit on almost everything? The first possibility would be an extreme case of living on razor-thin margins. ;)
It’s part of their lifecycle. They send a couple outfits for people to try on and return the parts of that they don’t care for. Careful planning and monitoring is required to ensure the business stays profitable, so cutting package handing costs was meaningful to their bottom line. And the shipping team was so happy about how much easier their job got that they bought me a bottle of whiskey, which was a treat.
The product that I’ve been working on for the better part of a year is going into production this month. This week, we’re figuring out the deployment automation parts. We’ve decided on Terraform, so we’re learning about it and finding a lot of solid examples for how to deploy our several services to AWS.
What’s the stack you’re working on? Our team has looked at Terraform and Cloudformation in the past but decided on using Jenkins and Ansible instead. Working with NGINX, PHP 5.6, MySQL 5.6, Redis, and Cloudfront over here.
Mostly Scala: Scalatra + Jetty, with no database for any part: two apps are acting as A&A for S3 buckets, while the other is A&A for a Kinesis sink. We have another part that’s Rails atop Postgres but we’re keeping it in Heroku until we get the other components stable. There are some other teams within my org that are Rails shops. Everyone’s doing something a little different so we’re going to powwow in June about a unified deployment methodology and platform.
I’m now a maintainer on this project https://github.com/fsprojects/FSharpx.Collections
Working on a 2.0 release of the project which will include implementing the libraries in netstandard2.0 and converting all the unit tests to Expecto
Outside of the usual stuff, I’ve been feeling interested consistently in Rust lately, and have been working on learning it. I think it’s related to a desire to have a go-to compiled language to build things that seem to benefit from that. I learned some Go, but I’m having a hard time getting enthusiastic about writing it because of the awkward boilerplate around errors and how clumsy the types feel. Rust’s generics seem to let you do some really cool things, and the error handling seems much smoother - feel free to unwrap with reckless abandon the things you don’t care about or know can’t actually fail, and plenty of helper functions to handle things that can fail in reasonable ways. It may also be that dealing with the borrow checker business so far is a little tricky but not overwhelmingly hard. I think I could get my head around Haskell if I really plugged away at it for a while, but it’s so different from everything else that it’s hard to get enthusiastic about right now. Rust seems more approachable.
The packages I’ve been working on for the last 5ish weeks are going into use for the client.
The cluster is already running, we just need to do final performance/failover testing and then schedule the migration.
Following that is likely business as usual back to regular dev for the clients site.
Besides $WORK we’ve got a price for the labour to do the renovations we’ve wanted for ~ 2 years so we’ll start looking at doors and windows and lights soon.
Edit: forgot to mention, I’ve also started cycling again, hopefully I’ll be able to stick to it this time.
Working on a tool to help manage project dependencies, particularly to coordinate branch checkouts on our development machines. I’m sick of working on a branch, checking out one of our backend services and having a runtime error because one of our share libraries is on the wrong branch.
This week’s a mix of hardware hacking, conference stuff and GDPR:
I’ve been working on my Chip-8 box and am currently refactoring drawing routines to use less SRAM.
I’ve built a HIDIOT-based IR thermometer thing I call thermoboy to show off on our Devoxx table this week, and hopefully write up in any quiet periods.
I’ll be at Devoxx UK later this week, helping people learn to solder and handing out 44CON stickers.
I finally got the 44COIN PCB prototype order in after Ragworm let us down (again).
I’ve got to get all of our GDPR exercise output together into a single draft doc this week that reflects our current state - we’ve done a ton on GDPR and thankfully have always been a bit more paranoid about attendee info than required, but distilling it into something manageable for attendees is the main sticking point.
If after all that I have some time, I’m going to be inspired by Roman Zolotarev’s work and set up an OpenBSD desktop using an old NUC I have lying round.
This week I’ll merge a branch that removes over 4000 lines of duplicate code from the test framework at my jobby job.
I’ve also begun making our builds reproducible by porting our custom scripts from groovy that only runs on our Jenkins machines, to MSBuild tasks that will run anywhere.
This week I am mostly working on my suntan in the outside office. (5Ghz wifi, power, a gazebo for the screen, decent table & chairs on the patio…) It seems the UK is in a minor heatwave at the minute so time to take full advantage of it.
Also need to work on the garden, ignoring it for a few weeks has lead to rampant growth of everything and it all needs trimming back. Time to break out the power tools for some fun playtime.
I’ll be publishing my next debugging book review either today or tomorrow, and I’m now reading debugging books from the early 80s. I’m going todebug some of the BASIC and Pascal programs in these books, which means entering the programs. The line numbers are actually really useful!
I’m working on a small project to use audio stenanography to transmit PICO-8 carts. The holy Grail is “mix a copy of Celeste into some music from Celeste” and be able to decode it through the computer/phone mic.
I’m super unsure of if things are going to work but yesterday I got comfortable with some Python libs for working with audio and I have some (really limited) knowledge of Fourier transforms, so I’m hopeful this will work
Hoping to improve the build process of rust-clippy by checking beforehand if the used rustc version can be used to build it. In the best case this prevents a bunch of bug reports due to nightly rust upgrades that are incompatible with clippy.
I have a comedy show I recorded last monday to do post for and edit. I started a new podcast with a fellow comedian over the weekend - the basis of which we watch sequels to film franchises, hopefully without seeing the first, and do a companion/riff trax cut, and then a 30minute review episode. My other podcast released an episode where we interview Martin Wallstrom (listen to it!). I am giving a small 5-10 minute talk at a coder meetup on wednesday about softskills for IT professionals and students.
At work we’re slowly chugging along with magento 2 integration into our production facility. Its going much slower than I anticipated.
Working on a really fun project that I hope to present at a conference this summer (I’ll post something here if that comes to pass). The project is for work, but we’ll be open-sourcing it.
Without giving too much away, it involves efficient evaluation of potentially enormous sets of boolean functions with predicates of different costs, where predicates can be shared among functions. The goal is to find all of the functions that match a given set of predicates while minimizing the cost function.
(All of this is to massively speed up the primary product that I work on, which ends up solving a lot of decision problems in a soft-real-time environment.)
On the personal side of the house, I’m thinking about removing the ncurses dependency in mtm by creating a lighter-weight terminal abstraction library that assumes it’s running on a fairly recent terminal. I’ve been tinkering more with sam as well, though it’s getting to the point that 30 year old code just isn’t cutting it…I think the terminal part is going to have to be completely rewritten.
I was going to say that a NIDS could use that but I figured you were ahead of me there. Fascinating project. :)
Given what I’ve seen you post here (and your username), I have a feeling you and I do a lot of similar work. Actually, given how small the industry is, I wouldn’t be surprised if we know each other or are at most like one degree of separation away.
I appreciate it. I’m not currently in the industry, though. Most of the jobs I was offered in industry were about doing security on paper in companies that don’t really care. That’s just not me. I do this stuff on the side of my main job that’s more business and service oriented. I work with people all day, do deep programming and security R&D at night. Or vice versa depending on scheduling. It did buy me a chance to survey, study, and do activist work with thousands of people over time. Learned and experienced a lot the security jobs wouldn’t have taught me.
I’m thinking of switching into paid R&D soon, though. I want to try to build my Brute-Force Assurance concept in case it’s useful to people in your position. Plus cuz someone needs to build something like it. Maybe also try injecting high-security into commercial and FOSS products in way that maintains competitiveness and minimizes cost. If things go well, you’ll probably run into me in person at a conference eventually. :)
I need this. I thought about making something like that for a long time to optimize some code if have.
[Comment removed by author]
Atm I’m implementing IndieAuth, Webmention and RSS for my federated link aggregator. IA is mostly so I can use the webmention.rocks verifier to ensure I did everything correctly. The other two features would enable a first simple but workable federation method and I can pull lots of content into stuff.
However, this work is triggering a lot more work downstream in the package, I’m also planning to switch ORM from gorm.io to go-pg/pg which means writing migrations and managing them too. Additionally the federated content requires most of the resource cache I had planned for later to be implemented now to reduce the long load times when I request data from the internet in the background and convert media from remotes (protect user IPs and make CSP enforcement easier by not loading third-party data on the page).
Otherwise I’m going to try out PJON for my LED Strip/Arduino setup to control it remotely. I’ll also try to make a simple long distance experiment by running two wires for about 20 meters or so and checking how much data I can do safely with the LEDs. And of course, doing work for uni courses.
Last week
This week
Nice list of highlights. This one popped out at me:
“an online clothes retailer that has a return for almost every sales event.”
Does that mean people return almost everything they buy, part of almost every order, or they profit on almost everything? The first possibility would be an extreme case of living on razor-thin margins. ;)
It’s part of their lifecycle. They send a couple outfits for people to try on and return the parts of that they don’t care for. Careful planning and monitoring is required to ensure the business stays profitable, so cutting package handing costs was meaningful to their bottom line. And the shipping team was so happy about how much easier their job got that they bought me a bottle of whiskey, which was a treat.
I had the regular, e-retailer model in mind. That’s really different and interesting. Nice, personal touch buying you a bottle haha.
The product that I’ve been working on for the better part of a year is going into production this month. This week, we’re figuring out the deployment automation parts. We’ve decided on Terraform, so we’re learning about it and finding a lot of solid examples for how to deploy our several services to AWS.
What’s the stack you’re working on? Our team has looked at Terraform and Cloudformation in the past but decided on using Jenkins and Ansible instead. Working with NGINX, PHP 5.6, MySQL 5.6, Redis, and Cloudfront over here.
Mostly Scala: Scalatra + Jetty, with no database for any part: two apps are acting as A&A for S3 buckets, while the other is A&A for a Kinesis sink. We have another part that’s Rails atop Postgres but we’re keeping it in Heroku until we get the other components stable. There are some other teams within my org that are Rails shops. Everyone’s doing something a little different so we’re going to powwow in June about a unified deployment methodology and platform.
I’m now a maintainer on this project https://github.com/fsprojects/FSharpx.Collections Working on a 2.0 release of the project which will include implementing the libraries in netstandard2.0 and converting all the unit tests to Expecto
Outside of the usual stuff, I’ve been feeling interested consistently in Rust lately, and have been working on learning it. I think it’s related to a desire to have a go-to compiled language to build things that seem to benefit from that. I learned some Go, but I’m having a hard time getting enthusiastic about writing it because of the awkward boilerplate around errors and how clumsy the types feel. Rust’s generics seem to let you do some really cool things, and the error handling seems much smoother - feel free to
unwrap
with reckless abandon the things you don’t care about or know can’t actually fail, and plenty of helper functions to handle things that can fail in reasonable ways. It may also be that dealing with the borrow checker business so far is a little tricky but not overwhelmingly hard. I think I could get my head around Haskell if I really plugged away at it for a while, but it’s so different from everything else that it’s hard to get enthusiastic about right now. Rust seems more approachable.Finished up a consulting project and looking for something more permanent: either management or R&D role (I live in the DC area).
Rewriting the first chapter of Farisa’s Crossing to fix timeline issues and make the first 10,000 or so words less confusing without being boring.
The packages I’ve been working on for the last 5ish weeks are going into use for the client.
The cluster is already running, we just need to do final performance/failover testing and then schedule the migration.
Following that is likely business as usual back to regular dev for the clients site.
Besides $WORK we’ve got a price for the labour to do the renovations we’ve wanted for ~ 2 years so we’ll start looking at doors and windows and lights soon.
Edit: forgot to mention, I’ve also started cycling again, hopefully I’ll be able to stick to it this time.
Working on a tool to help manage project dependencies, particularly to coordinate branch checkouts on our development machines. I’m sick of working on a branch, checking out one of our backend services and having a runtime error because one of our share libraries is on the wrong branch.
This week’s a mix of hardware hacking, conference stuff and GDPR:
If after all that I have some time, I’m going to be inspired by Roman Zolotarev’s work and set up an OpenBSD desktop using an old NUC I have lying round.
This week I’ll merge a branch that removes over 4000 lines of duplicate code from the test framework at my jobby job.
I’ve also begun making our builds reproducible by porting our custom scripts from groovy that only runs on our Jenkins machines, to MSBuild tasks that will run anywhere.
Working on open source project, nuster, a cache server based on HAProxy.
https://github.com/jiangwenyuan/nuster
Update to HAProxy v1.8.8, finally HTTP/2 support
Personal - hacking on language interpreters (FP, JOSS, and SETL)
Work - Fixing some Windows 10 issues with a crufty application that I support.
This week I am mostly working on my suntan in the outside office. (5Ghz wifi, power, a gazebo for the screen, decent table & chairs on the patio…) It seems the UK is in a minor heatwave at the minute so time to take full advantage of it.
Also need to work on the garden, ignoring it for a few weeks has lead to rampant growth of everything and it all needs trimming back. Time to break out the power tools for some fun playtime.