1. 18

It’s Friday again; as always feel free to post your plans or projects for the weekend.

    1. 11

      Cycling! My local brewery is hosting a cycle sportive in partnership with a local cycling club. I’ve done it the last couple of years, they pick a fairly interesting route and there’s free beer at the end. What’s not to like.

      Also need to break out the gardening tools and attack the wild growth that is currently lurking outside the house. Was much easier to maintain when the UK was scorching it into nothingness with a heatwave.

    2. 6

      Replacing the front derailleur on my road bike and recompiling my desktop kernel with a patch so my mouse works in 4.18, woo-hoo.

    3. 5

      Moving from a place that’s 40 minutes from $WORK to a place that’s 10 minutes from $WORK.

      Depending on how the move goes, I might also write some Pony. I’m working on a small language for playing with attaching bits of text to nodes in a directed graph, and I’m starting with a readline-based REPL for this language.

    4. 5

      Contributing to Nim


      1. 1

        How do you find nim? Is it easy coming from Python? I’ll be honest, the reason I stick with Python for almost any little quick programme I need to write is that I know it like the back of my hand. But being able to replace it with something that was a little more easily metaprogrammable (and faster) would be nice.

        1. 1

          Albeit Nim is not meant to have the same syntax as Python, it feels very close to statically-typed Python. There’s even an experimental py2nim converter. For most metaprogramming you can get away with templates which are easier to learn and use than macros. Ping me or ask on #nim on Freenode if you have any question.

    5. 5

      My wife accepted a job in The Netherlands, so we are moving back to NL after five years in Germany. We are both really looking forward to moving back and to the new apartment. Our 4 year old daughter is also pretty excited about the move (moving closer to grandparents) and starts to practice Dutch more.

      We are have been packing the last few days and will continue throughout the weekend (won’t have much time the last 2.5 weeks at work).

      We are not moving the furniture, turns out that it is cheaper to repurchase all the furniture than to use a moving company.

      1. 3

        🇳🇱 🧀 ❤️

    6. 4

      Adding the final slides to my ElixirConf presentation next week and also practicing. Nervous to say the least. Spending time with family and possibly trying to fix my car.

    7. 4

      A friend and I dug up most of our gravel driveway with a tractor so that we can put grass down instead. There’s about 60m2 of unnecessary gravel driveway that we’re going to use to extend the kids grassy play area. When it’s done it’ll be great, but it’s looking pretty messy half-way through.

    8. 3

      Hand-writing a parser for a clone of pgbench aimed at Neo4j - both to learn more on parsers by eschewing parser generation, and to learn Rust, and because I really would like a static-binary benchmarking tool for Neo :)


    9. 3

      I’m going to make an app for lobste.rs with Flutter (just to see how quickly I can make something functional). I made an app for my school in Flutter recently and was able to reach feature parity with the older version in 20% of the time. A lot of that was the fact that I already knew what I was doing, but added to the fact that I’ve never used Dart or Flutter before it’s a huge improvement.

      I also need to review some Calculus for a test next week, and study for the ACT. Oof.

    10. 3

      BMX racing on Saturday - 20” and Cruiser - so will be exhausted by the end of the day…

      Sunday hopefully installing OpenBSD on a Rock64.

    11. 3

      I’ve spent the last couple weekends out adventuring, so now I have a weekend to get caught up on life and maybe start reading Programming Rust.

    12. 3

      Going to Atlantic City for this long weekend!

    13. 3

      I want to solder up some PCB boards for my collection of 18650 cells.

    14. 3

      It’s bucketing down, so I’m working on FuPy, or at least getting the build environment up and running at home.

    15. 3
      • remotely attending as technical support a demo/testing event of a work product
      • playing urban terror with #openbsd-gaming this evening (drop by on IRC!)
      • reading https://nostarch.com/seriouscrypto
      • trekking a mountain trail with wife and the dog (tomorrow)
    16. 3

      Playing with a toy language design, where I want to explore getting the things right that were often well-known for decades, but always implemented imperfectly. Id’ call it a “modestly modern, mostly minimalistic” language.

      Short overview:

      • stuff that should be standard by now: no semicolons, [] for generics, traits, virtual classes
      • very minimal set of keywords (no null, no keywords for instance of/cast operations) and control flow constructs (no break, no continue, no exceptions)
      • stuff I want to toy with
        • useful predefined identity and equality across reference and value types (NaN == NaN is true, NaN === NaN is false)
        • classes and traits can only introduce fields in constructors, no additional state allowed
        • all modifiers are (hard-coded) annotations, so @override, @private, etc.
        • no nulls everywhere, experiment with some approaches to handle things like uninitialized arrays
        • tab-based indentation, so that everyone can decide how much indentation provides the best readability (no strong opinion about it, I just want to experiment with the idea)
        • String (bare-bone representation of UTF-8) vs. Text (contains locale, support stuff like casing operations, “real” length etc.)

      Syntax primer:

      object Person               // all types start uppercase ---v
      	fun apply(firstName: String, lastName: String, age: Int32): Person =
      		Person.new(name, age)
      	fun from(string: String): Person =
      		let (firstName, lastName, age) = ??? // parse string
      		Person.new(firstName, lastName, age)
      // one and only constructor, no secondary constructors allowed
      // constructor fields are the only way to introduce state into an instance
      class Person(firstName: String, lastName: String, age: Int32)
      	fun isAdult = age >= 18
      	fun fullName = firstName ++ lastName
      let persons = List(Person("John", "Doe", 42), Person("Jane", "Doe", 23))
      let result: String = if persons(0) // no special syntax for element access
      	// pattern matching
      	is Person("Jane", _, _)    then "Hey, here is Jane!"
      	// introducing bindings with $, also used in string interpolation
      	is Person("John", _, $age) then s"Joe is $age years old."
      	// identity comparison
      	=== persons(1)             then "They are the same person."
      	// equality comparison
      	==  persons(1)             then "They are equal!"
      		else ""
    17. 3

      Powerlifting workout Saturday, then eating and sleeping. OpenBSD Sunday.

    18. 3

      I already finished up re-writing my CV, because I didn’t have a nice one and don’t want to wait until I actually need it.

      I’ll probably spend some time tinkering with my iOS app as well (me being a backend dev).

    19. 3

      It’s very foggy but not raining here, so I went for a walk on the coastal path and picked (and ate) a bunch of wild blackberries. I think I had an ambition to do something more related to a side-project, but this was nice.

    20. 3

      I bought two Thinkpads (T420 and X230) and I’m installing Win10, Ubuntu and OpenBSD in all of them. I want to run benchmarks, CPU- and battery-wise.

      Both are great machines under 200€. The 420 is a heavy workstation, the 230 is the thinkpad version of a Macbook air, with an IPS panel. Great stuff :)

      Pic of my current setup: https://i.imgur.com/W1AatOh.jpg

      1. 1

        Very interesting, if you publish those benchmarks publicly anywhere could you link it on lobsters please? I suspect a few crustaceans would be interested in what you find (:

        1. 2

          Sure. It may take a few days to publish the post but here are the raw results. Geekbench + very unscientific battery life.

          • mba i7-4650U 1.7GHz. 1p, 2c, 4t. 8G RAM DDR3 1600MHz

            • OSX 3609/6720
            • battery 8-10h (3h under heavy load)
          • x230 i5-3320M 2.6GHz. 1p, 2c, 4t. 8G RAM DDR3 800MHz. 63Wh battery

            • win7 3376/6375. 7h battery life
            • win10 3288/6262. 6h battery life
            • ubuntu 3528/6648. 6h battery life
            • openbsd 4-5h battery life
          • t430 i7-3520M 2.9GHz. 1p, 2c, 4t. 8G RAM DDR3 800MHz. 99Wh battery

            • win7 3544/7003. 8h battery life
            • ubuntu 3848/7346. 7h battery life
            • openbsd 4-5h battery life
    21. 2

      I’d love to go out to the beach — it’s 30-35ºC every day here —or at least go to the gym, but it looks like I’m spending all weekend hacking on NewBusinessMonitor. It’s getting traction, and my Y Combinator Startup School classmates will be holding me accountable for my progress.

      At least it’s a project I enjoy working on!

    22. 2

      Working on a Node.js dns-over-tls library - https://github.com/sagi/node-dns-over-tls and a command line client that uses it.

    23. 2

      Just changed the oil in my car. That clears up the rest of the weekend for interview practice / leetcode &c.

    24. 2

      I’m going to try and finish off my followup to Password Generation in Ruby and Rust, showing how easy it is to make small changes that significantly improve performance.

      I might also spend some time on Gutenberg #381, making external link checking more usable and robust.

      Or maybe I’ll just build more terrible hospitals.

    25. 2

      Probably gonna work on those FFVI screenplays.

      I’ve been writing and rewriting the “pilot episode” (up until the moogle battle) for far too long. It’s time to take the plunge and write the story after that.

    26. 2

      Implemented a monitor in SDL for my DCPU-16 emulator. That took an awful lot of debugging. As is typical with these sorts of things, the bug that took me many, many hours to fix ended up being s/WIDTH/HEIGHT/.

      Almost have my email set up properly as well: mutt configuration is mostly sorted, msmtp and offlineimap are talking to pass instead of reading passwords from plain text files. Only think I still need to set up is signing my emails using gpg and then I’ll finally be able to say goodbye to using Google’s botnet webmail.

    27. 2

      Wanting to go to the mountain bike park but it’s not looking like the weather will be good. Will likely just continue working on my web app.

    28. 2

      Going to see if I can get my NEC PC-88 floppy adapter board to work now that it’s back from the fab. With any luck (and enough bodges), I should be able to get it at least pretending to work with a 3.5” floppy drive.

    29. 2

      I’m going to put in some time to fix remaining bugs in CHICKEN Scheme 5.0.0rc1 so we can make a second release candidate. I’ll also go to the weekly market to buy some food for next week on the cheap :)

    30. 2

      Wrote a small tool to track how much time I spend at the computer/at work yesterday. (It writes to the same file every day, and then counts the time since then. Very simple, has know bugs, but also covers all I need after maybe an hour of work plus some experimentation before and after.)

      Looked into recipes for making (vegan) phô. Have one that is simple enough to hopefully make this weekend, and of course also found lots of other neat recipes to do.

      Will also clean my flat a bit and maybe help with a move.

      Edit: Oh, and maybe I’ll continue with the overthewire.org games. Got until level 4 of krypton, which was pretty fun. (Also got through bandit and leviathan in the past two weeks.)

    31. 2
      10 Try to find a bike before my master starts
      20 GOTO 10
    32. 2

      Planned to install a crank based powermeter on my road bike but destroyed (or rather will destroy) a set of chainrings after I’ve used the wrong chainring bolts (in hindsight over tightened them and stripped them when trying to remove them) on them.

      So now I had to order another set of chainrings and another set of chainring bolts which will only arrive on monday.

      Other than that I’m relaxing, finished a project on Friday new project/assignment from boss coming monday.

      Also a question: Why is cycling so popular in this community (and HN) ?