Happy Monday folks, roll call time! What are you going to build/work on this week, how’s work treating you or whatever you want to share. We all love to talk about our pet projects.
My book launch went really well. I sold several dozen copies and the response from readers has been universally positive. This week I’m reaching out to podcasts to talk about the book, typesetting it to my heart’s content, and doing taxes. I also picked up the card game Star Realms, and it’s a fun, streamlined ~15m deckbuilder for two players. The theme is completely incoherent, but it has spaceships, so whatever.
I’m also going to throw a one month birthday party for my Lenovo laptop repair, which I was told would take “six business days”. I see this morning it has a new, fourth delay for parts. From interacting with them and finding other Lenovo users, this is not a weird fluke, it is the standard Lenovo repair experience.
Congrats on the book mate :)
which I was told would take “six business days”
Type error with the units? Maybe they meant six business weeks!
What kind of laptop, and what broke?
An X1 Carbon, three weeks out of its 1-year warranty. I used it, turned it off, turned it on when I got home and without warning or precipitating incident the built-in display was dead. They have blown three repair estimates and I have to chase them again today because they claimed a supervisor would call me back Friday but of course that never happened.
Wow, that’s bad. I have a 2015 X1 Carbon, is this something that seems pretty widespread, or is yours a one-off, do you think?
I think their repair service is completely FUBAR at nearly every level and that anyone mailing in a machine for repair should expect a 5-10 week response time billed at their max cost ($650 for this machine) regardless of what the issue is, what your warranty status is, or what they claim beforehand.
Ouch. I was referring more to the damage than the repair process though. ;)
Also, $650 is almost as much as new Carbon…
Ah, the fault. I have no idea if it’s widespread and I’d be shocked to learn that Lenovo could answer that question, either.
haha, k. Guess I’ll just have to wait and see what happens. Out of curiosity, did you get the touchscreen version? Also, do you think you did anything that might have caused damage to the screen (I’m guessing you didn’t though, since you didn’t mention it).
HiDPI, no touchscreen. No flickering or other warning that it was about to fail, no drops or other damage that might have caused it.
After calling them again, the repair is now waiting for a replacement palm rest. They could not explain how this was related to a broken display, refused to estimate when it would arrive or the repair would complete, said maybe “corporate” will call me by noon Wednesday to discuss the repair, and claimed “corporate” does not have a phone number I can call.
Wow, sounds sad.
Lenovo’s repair process would indeed be significantly improved by a rogue engineer breaking into my home.
For work, I’m working on updating my client to the current version of emscripten from a version from last October or November. Something odd has broken in our usage, so there’s some fun stuff to debug and it isn’t clear yet where the bug is.
We’re spending much of this week visiting my wife’s father in the countryside of Thailand near the Cambodian border. Today the temperature got up to 42C / 108F, but with the humidity, the heat index was 53C / 127F. That was a bit beyond bearable and much of the week is supposed to be like this.
In my own work, I’m working on a bunch of minor improvements to some Open Dylan documentation. This started out with me adding a couple of new compiler primitives (for calling rdtsc on x86-oids) and for accessing the return address, and then I noticed that our documentation of compiler primitives could use some improvement and things sort of snow-balled from there.
I looked at Algebrite after I saw it posted on HN. It might be useful for my Workbench project, which is something I’m writing in TypeScript and React and that employs concepts from the Lisp Machines and CLIM (Common Lisp Interface Manager), in particular, the concept of CLIM presentations. This is a pretty general platform that is useful for building tools, but it is actually the basis for building out many of my long term projects that I plan to work on for the next 10 years or more.
I was a bit sad that Algebrite was written in CoffeeScript (really, a port from the C++ Eigenmath to CoffeeScript). I contacted the author to ask if he might be interested in switching to pure ES6 or TypeScript. He isn’t, but suggested that if I am, I am free to fork it and do as I like. This is moderately tempting, but unless someone was to help out, this would go deep in my TODO list for things related to Workbench. (Primary on that list is getting it to a semi-working state and to solve some lingering design issues via experimentation.)
I haven’t gotten much further with getting udanax-green to actually run, but I have been examining the source code and learning a lot about how some parts of the Xanadu system were intended to work. Pretty fascinating stuff so far.
Is 108F typical for this time of year? That’s crazy hot!
I think it is a bit warmer than average for this province. The weather reports for our home look like it is a good bit cooler, but still hot, but we’re also near the sea at home and far from it here. Typically, March, April and May are the hottest time of year and we can easily have temperatures over 90F for much of that time. The temperature where we are has been over 104F for the last week and will be over 106F for the next week.
You get a bit used to it after a while. (I’ve been in this country for about over 6 years.) But it still makes me feel stressed out and can bring on anxiety attacks when I’m too hot for too long.
It’s temps like that that make me happy I live in the north-ish US (NE Ohio).
I wrote my first blog post in English last weekend. The plan is to write at least a single post every month from now. Right now I’m really slow and there must be a ton of mistakes, but that’s understandable because this isn’t my native language and I’m just starting. I really hope I will get better with time.
The English in your post is really good!
Thanks, that means a lot!
First off, like @curtis said, your English is great! Secondly, I love your blog’s design. I’ll be looking forward to reading your posts :)
At work: Setting up Gitlab CI for various projects to have automated tests running. Currently trying to set up Code Composer Studio in a Docker container to build microcontroller projects on it.
In my free time: Working on qutebrowser - probably a mixture between finally building/releasing a dmg for OS X, merging some pull requests, fixing bugs, writing tests, and organizing t-shirt/sticker printing for the crowdfunding.
I’m really excited for you to work on qutebrowser! Congratulations on making it so far into your funding.
I tried to switch to qutebrowser for my daily driver, but I browse a little too much, and the failures were making life hard. I’m going to be straight over once you’re using chrome.
You may have answered this, but will it be possible to load chrome plugins into qutebrowser? That would give you a vast array of extensions.
Thank you! 2 months of funded full-time work is quite close :)
What Qt version were you using? (See :open qute:version) - 5.4/5.5/5.6 were pretty stable here.
Unfortunately loading Chrome plugins won’t be easily possible, as QtWebEngine doesn’t use that part of Chromium as far as I know. I’ll look into it when I work on a plugin API (which is after QtWebEngine and per-domain settings), but first I’ll add a Python plugin API.
I use Qt 5.5.1, and qutebrowser 0.5.1, thinkrelevance.com was really bad, the page partially loads, but freezes up Qutebrowser completely.
I didn’t think so, that’s okay. I look forward to your api! I should be able to implement everything I want with it.
Thanks again for your hard work, I’ve enjoyed seeing how responsive you are everywhere, you’re clearly really passionate about Qutebrowser.
Still working on stuff for the final sequence of the book.
Rolling things around in my head for monitoring and logging for the production AWS deployment I got setup for $dayjob. Currently thinking about Prometheus & Elasticsearch/Kibana.
Somewhat unhappy so far with Ansible, though I have beaten it into place. Malcontent is from knowing what convergence in config management could/should look like. Wondering if I should pick Puppet back up or look into Chef. Or something else entirely - Propellor is Haskell, for example, but not entirely different from Ansible. Talking me down from this ledge is welcome, but what I really want is a config management system that:
Uses the type system to prevent unforced errors in your deployment & provisioning
Can self-bootstrap or do one-off deploys like Ansible without obligating you to manually provisioning a client for a server-client setup (a la chef zero)
Has an optional “plan” mode like Terraform for letting you know what it would change, ideally runnable from the dev’s computer. Ansible’s dry-run is not good enough.
Keep trying to think about alternatives to LaTeX, but there really isn’t anything better as far as I can see. I’ve given Prince XML a try, but it’s not better.
Have you had a look at Scribble? I can’t speak from experience but it might be something to look into.
Scribble’s a documentation tool, not typesetting. I had to do a lot of work to make the Haskell book look professional and using something like Scribble drops all that on the floor.
The other problem I’m having is that anything capable of equivalent or better fidelity (InDesign, Framemaker, Scribus) is either proprietary, not available on Linux, or not very automated.
Home I’ve discovered some fairly nasty flaws in the ballistics program I translated in Vala. Debugging has become more difficult than expected. I had hoped that the miscalculation was happening late in the process but it now looks like the culprit is buried much deeper than I hoped. On the plus side I have found a convenient way to log debug messages with Vala. I know there are some programs out there that are designed just for debugging but I was hoping for a build in GLib method that would “always be there.”
Work We had a pen tester that came in and discovered a bunch of flaws in our IT department’s setup. He didn’t find anything wrong with the boxes I setup though!
Debugging in Vala, sigh i’ve handled that more times than i’d like.
There is a flag that puts line number of vala code that was translated to each line of C code, then you build using -g and use gdb to debug. When you find an error go to the C code, find the relevant Vala line then fix that.
He didn’t find anything wrong with the boxes I setup though!
I seem to be way off in a pile of research yaks right now. I had a (possibly) novel idea for the representation of boolean functions (intended partly as a precursor to handing them off to a SAT solver) which I’m playing around with. I’m currently having a go at using this to write a solver for Feedback Arc Set for Tournaments.
None of this is remotely related to anything I’m supposed to be working on, but one of the benefits of being an un err self employed bum is that I get to go haring off on research tangents if I feel like it.
[Comment removed by author]
If you haven’t already seen them, there are some minimal distros at there that you could use for reference/inspiration:
As for C compilers, it’s kinda hard to find any that have “modern” support and compile fast code. Here are a few interesting ones that I’ve seen:
voidlinux.eu has a musl version as well and a slightly different take on package managers.
Alternatives to which compilers and why?
TCC is p cool
Working on emulating MESI (the memory cache coherence protocol) in Rust to get a better understanding of how it works. Have it mostly working but the miss rates reported in my benchmark/exercising code seems to be off or something. For example, my false sharing test case is way slower than when each cache is operating on a unique block (as expected), but despite that it isn’t reporting the higher miss rates I would expect from getting cache lines invalidated by other caches' writes. Need to dig in more.
Documenting EVERYTHING for the last week of my old gig, getting ready to go to work for Amazon Web Services! So excited!
Congats on finding your way in to Amazon. I know of at least one former and one current (myself) employee who follow Lobsters. I sit firmly on the other side of the house (consumer) but have worked closely with many AWS infrastructure and product teams in the last couple years.
Expectations are high, you will be expected to deliver, but honestly at the end of the day it is what I am looking for in an employer. YMMV.
Best of luck!
Thank you very much! With regard to being expected to deliver, I wouldn’t want to work in an environment that didn’t have that as a core characteristic. I get very frustrated working in environments where accountability isn’t considered a base principle.
Good luck. As Blake mentioned, there is a strong focus on delivery and other principles, which vary depending on level at which you join and your functions. My best advice to anyone joining amazon is to make the most out of broadcast, a “pseudo-youtube” containing tons of interesting information, in particular the ‘Principals of Amazon’ series. It’s by far one of the things I miss the most (along with having somewhat unmetered access to AWS)
Thank you I will definitely check out broadcast. Didn’t know it existed!
One former, One current and One Intern (me!)
This week i’m working on installing Crux. Crux is a simple minimal Linux distro with multiple neat features. I’m also going to be trying alternative init systems and compilers. Any suggestions for the alternative compilers and init system?
I just quit my job! Hoping to start another one soon.
In the interim I plan on doing some open-source Swift work, practicing my (awful) drawing skills, learning Chinese, reading various novels, and generally taking it easy.
If anyone has any ideas for a Swift library that doesn’t exist but should, let me know.
Finally bit the bullet and ordered me a Hetzner server (16GB ram, 2x 3TB disks, €39/month - crazy cheap.) So now I need to set it up, with FreeBSD I think. (I would stick SmartOS on it, but that means getting them to jam a USB stick in the thing, which is more €€. FreeBSD lets me do root-on-ZFS as well, and is a fairly sane OS to boot.)
Also making a concerted effort to get back into an exercise routine. My level of fitness is so far below what it has been for the last couple of years it’s quite saddening. Few weeks of exercise should get it back though, just need to put the time in and actually do things (as is always the way.) Friend and I have signed up for a Triathlon in three months time, so there’s a nice goal to hit and motivate us.
Did you get it at their server bidding? Mine is at Kimsufi but with the prices you mention I wonder if I should switch…
Yep. Make sure you grab one with ECC ram (just put ECC in the freeform search box on the auction page), then choose whatever power/size of disks you want. I wanted something moderately powerful, but that had two 3TB disks so I can run a ZFS mirror and backup a couple of shares from my local Microserver there for safety. Also intending on consolidating a handful of VMs to the single place, don’t particularly need redundancy for them but not having to worry about updating multiple machines will be a bonus. Will cost me about the same in £ once they’re moved, which is quite nice.
(Also gives me a server outside the UK, but within the EU, which is quite appealing with some of the fucked up snooping bills being shoved through parliament.)
Work on Haskell Book continues. I hope to get 2-3 chapters done this week. Looking forward to Monoid and Applicative!
I’m looking into instructional material I could walk through at work to improve our practices. Current ideas are Haskell Book or Clean Coder videos. Any other ideas are welcome!
I’d like to finish my blog’s redesign as well. Need to brush up on CSS a bit more to see what’s possible.
Projects-wise, I’m now 39 days into only a few (mean 10) commits a day and loving it. Definitely a good way to pace my work on Jaunt, balance hobby work with school and still feel that I’m making headway.
Jaunt got an 0.2.0 and then an 0.2.1 last week the primary changes in which were adding a reader conditional and support for the .jnt file extension which together help establish Jaunt as an independent platform. More interesting for this week, I hacked the compiler to make metadata on functions efficient and added use set information to all compiled functions (PR). This change will let me start working on a bunch more static analysis stuff this week and finally get the namespace reloading changes I initially advertised out the door.
Need to find the time/motivation to circle back to Grimoire and to build something at http://www.jaunt-lang.org
You mean http://haskellbook.com >:P
The same thing we do every week. Try and take over the world.
Honestly though, more work on our NodeJS application, more work on my Game Boy game, and playing more Steam games.
I have a new setup that I configured last week. I’ve used Linux exclusively (Debian) for 7-8 years, and today I’ve gone back to Windows - with a twist. I only use the Windows part for gaming, and a very restricted Google Chrome for browsing. Nothing else. I’ve downloaded Xming and KiTTY to X11 forward so I have access to my “Linux part”, running on a laptop directly connected to my router. The entire experience is awesome. You get the best of both worlds. Now I have Hexchat and Emacs running and don’t have to worry about malware infested Windows, as long as I stick to using NoScript and keep a strict firewall (in case I do in fact contract a virus, then hopefully there’s no way for it to communicate back to headquarters).
Have a good week everyone!
Started off this week by writing a little library in C to create spinners in the terminal. I plan to work on my text editor and finally correct piping out sections to external processes (which, if impelemented correctly will get me 70% of editing features that I really need to add to it). Also working on some CTF challenges (which I really suck at) throughout the week with some friends.
I’m also trying to find a decent soundcloud CLI app. If I can’t find anything, I’ll write one when I find the time to do so.
Work: Waiting for the rest of my team to be hired / start working. Should start being productive next Monday. Right now is a good time to just talk to folks and see how things work. Also get to help write an ERP for some assets I currently know nothing about.
Fun: Decided to start biking again. Got a good road/mountain hybrid (cyclocross-ish) with disk brakes. Going to start commuting to work and most other places by bike. So far so good.
A civilized way to use the Java Native Interface.
JNA isn’t fast enough for my needs. Raw JNI is excessively laborious and C++ code generators are double no fun at all.
Class project– A semantic analyzer for TinyJava.
Finishing the first draft of my final year dissertation (parallelisation of text mining algorithms). The format is now something I’m happy with (though it remains to be seen whether my supervisor will be happy too), but now I need to start trimming it down since it’s currently ~12k words when it should be ~8k.
I’m also planning my finances for when I’m doing my master’s degree next year. Despite a student finance loan, a bank loan (both of which I am not guaranteed to get), and working throughout the whole Summer, I am still facing a shortfall financially. I’m applying to various educational bodies and charities for additional funding, but this takes a lot of time (mainly writing, printing and sending letters, getting references etc). I don’t know what I’ll do if I don’t get enough funding…
I’m doing three group projects at uni at the moment, one is solving initial value problems applied to biochemical reactions (enzyme substrate binding), another is writing an AI to price products in a store (against other competing stores), and the final one is from a biology module where we’re producing a short video about bioprinting (essentially placing stem cells on a scaffold and growing them in a bioreactor to grow organs and other tissues).
I’m trying to figure out (along with my tax lady in Germany), how to claim back tax under the income threshold that I paid while working there last Summer. I don’t think it’d be hard normally, but since I live in the UK, I seem to need to get everything approved by the UK tax authorities as well as their German counterparts :/
I switched to Emacs, which is really good so far. However, I’ve also been feeling a bit of tightness/pain in my wrist, and can’t decide if I’m developing emacs pinky, or if I’m a hypochondriac… Considering how much typing I’ve been doing for my dissertation, I think it could be a combination of both.
Any possibility of reading your dissertation? I’ve been out of the text analysis for some years, but parallel text mining looks promising.
Of course, I’ll post it when it’s finished :)
Still plugging away with paperdoll (freer monads / more extensible effects in Scala) - I haven’t had a lot of time but the list of TODOs has got encouragingly shorter. Partly this is realizing that many combined effect stacks via ScalaZ or the like can’t be translated into this model - if you have a StateT[F, S, A] then it is, I think, impossible to disentangle the State and F effects and interpret both orthogonally (as the freer monad model requires).This means less to write, but does sadly make the project less useful, since it’s impossible to adapt existing monad transformer stacks in full generality into this model.
StateT[F, S, A]
(You can of course still treat StateT[F, S, ?] as a single effect, but that doesn’t let you compose it with F and State[S, ?] stacks from elsewhere. And you can still handle a paperdoll Effects[Layer.Aux[F] :+: State_[S] :+: ..., ..., A] into a Effects[..., ..., StateT[F, A]] (I think - I haven’t implemented it yet), so the integration in that direction should be ok).
StateT[F, S, ?]
Effects[Layer.Aux[F] :+: State_[S] :+: ..., ..., A]
Effects[..., ..., StateT[F, A]]
Maybe actually start work on my website/s in node instead of PHP. Moving from Laravel to Express/Koa is kind of hard for me though, since some things are pretty different.
I’ll get there.
Last week, I worked ~70 hours, which completely obliterated my plans to finish learning about/implementing a dozen or so data structures in plain C.
This week, I’m hoping to get a surveyer to confirm the boundaries of our property so I can put up a perimeter fence. I’m also considering where to put the bees this year, reading Real World OCaml, and continuing to hack on those data structures.
More testing of our FUSE implementation for Peergos. The basic operations are working, but need more coverage, and also figure out how to get the linux kernel to override it’s max block size of 64 KiB for writes et al.
Start work on a talk for Squatconf on Peergos.
Planning to start looking into/learning React Native. Apparently everything needs to be an app, these days.
Hypothetically today is my first day on the new job, but we have a bunch of visa stuff to sort out. That said this week is gonna be training and reviewing the existing codebase.
I swear I will do my best to not complain that everything sucks.
hobbywise, I’m still working on a form validation lib in js, and helping a friend with his project in clj;
For work: removing a bunch of code that isn’t being used anymore. Merging in some features/bugfixes I did last week.
For fun: probably writing stories about weird places around my city.
Rest of the week:
For work, doing a project at a consulting firm with the Hololens right now. Trying to figure out how best to use it to impress a client. I have lots of ideas for side projects, but ideally I would want to make my work project exciting enough that I feel that same sort of enthusiasm.
For side projects, learning Windows 10 deving so I can do 2D apps for the HL.
For work, focusing on launching a new set of API endpoints. I’m also slowing migrating a set of tables to a simpler data model.
I’m trying to start blogging again. Check out stackmachine.com of your interested in developer tools or API discussion.
Working on Stash, the personal finance tool. Currently reading Tutfe and thinking about how to design the UI.
Home Working through the Exercism.io Rust Track and a Linear Algebra course.
Work Trying to dockerize a rails app that I maintain. It’s turning out to be quite frustrating.
working on reading and writing native-format qxw files. qxw is an awesome app for constructing grids, but it doesn’t deal with setting clues at all; i’d like to write a complementary app that let you read in a grid from qxw and helped with everything else (setting clues, exporting the finished product to popular fileformats). going to start by adding qxw support to pangrid and then port the algorithm over to crosspad
More applications and interviews, learning elisp for configuration of the One True Editor, building a cool 3d cube in CSS.
Rails 5 + ActionCable is pretty nifty for building sockets based apps so I keep that on the tinker-schedule tonight
Have you let Emacs into your heart? Are you typing in its Holy Name?
For CSS, have you looked at rainbow-mode? It’s almost built-in these days.
Emacs came to me, my enlightenment was near instant. I had been following false proVits but now I see the True Way.
Nope but thanks! Looks perfect. I’ve been focusing on familiarizing with org-mode so much I haven’t even started using it as my full-time editor (way too much to learn). I need to learn (read: muscle memorize) how to switch between files/projects/tests/node as quickly as I can in my current workflow.
Week by week. Org mode is too powerful. Even if it was a perfect port to atom I’d have a hard time leaving the console. Can’t run atom in the terminal.
I’ve been putting some time towards a recent open source project to create an open data portal for housing sales. The project is an initiative of the Data Skeptic podcast which is quite good. We’re looking for some more contributors if anyone is interested, still a very early stage project.
Other bits and pieces, editing some papers for my PhD. Cleaning up some side projects for a possible public test run and trying to familiarise myself with ionic to see what benefits it might provide. I’m also planning to work through the University of Pensilvania Rust course over the next couple of weeks.
Would be nice to read answers to “What are you working around this week” as well.
Work on a simple web app written in Go to do invoicing, payment followup and document management. Inspired by Gogs and a way to learn/get better at Go.
I’ve got a bunch of stuff written in PHP but the one binary to run approach from Go is so much simpler, easier to setup and a lot more portable. (usb drive, raspberry, just run when you need it locally)
There are a lot of apps out there but they usually cost money and don’t to the things I want it to do. They are not flexible to tinker with, hard to host or not really suited for all the tax and business rules in belgium/europe. My goal is to automate the extra unpaid grunt work I have as a freelancer, and an reason to play with other technologies outside my main work.
I’m doing such a high amount of things at once it’s kind of blowing my mind and I need to organize or I will be defeated.
Work: Whatever is on the Jira board, I shall nuke.
Reading: I’m 78% through Pragmatic Thinking and Learning. Up next is “No-Bullshit Guide to Maths and Physics”, because I want to learn mostly about maths. Not my strong suit, this should fix a bit of it.
Learning: I’ve started some MOOC, Google’s Deep Learning thingie. So far so good, by which I mean not very far, so, not very good. I need to carve out a solid amount of hours for that.
There’s probably other stuff but I’m super busy.
Up next is “No-Bullshit Guide to Maths and Physics”,
Oh, hey, do you know the author? He is a local buddy of mine from McGill.
This is going to make me sound like a broken record, but still working on NeuralObjects, our new machine learning platform. Last week I knocked out getting a CAS server setup for SSO and integrated CAS with the site, and started getting the user registration flow working so that registering creates your SSO account (we’re doing all this because we envision this site as just one of (eventually) many under the overall Fogbeam banner).
Anyway, last night I pulled the latest code to the main site and started making the changes to bring things up with the live SSO server. Tweaking postgresql config, configuring data sources, etc. Still have a bit of twiddling to do to finish getting the new version of the live site up, but I expect to finish that tonight.
After that, I still need to finish fully fleshing out the user registration stuff, do the Stripe integration, and then more work on the core API’s for submitting jobs, making predictions, etc.
Work: backed into a corner where I need to learn Ruby+Rails, which I had successfully avoided thus far in my career. Already frustrated by the bootstrapping necessary to get something up and running. I’m sure this isn’t worse than getting started in the Java world, where I’ve lived for 20 years, but it doesn’t feel that way. Also, still getting used to the Mac, where I haven’t figured out all of the keyboard shortcuts I need so I don’t have to keep touching the mouse (Safari is particularly frustrating in this regard).
Mostly customer related stuff this week, but I did create this text ruler for the console .