1. 22

Happy new year 2016 lobsters!

I think most people are on their way back from holidays, all set to join office from today. Welcome.

So what are you going to work on this week? Feel free to ask for help or advice or just talk about whatever you’re up to.

  1.  

  2. 10

    Happy new year all! Thanks to user pushcx for inviting me near the end of last year. I hope to be a part of this community, contribute a little, and not be in the way in 2016. Besides getting back in the swing of things work-wise after almost a week off, this week I will…

    • Have a bare-bones version of a personal site up for the first time in a long time
    • Write a reflection on 2015, the things I enjoyed, the things that went well, and the things that could have gone better.
    • Write the how and why for my 2016 plans. The year-long goals as well as the daily and weekly practices I’m committing to.
    1. 2

      Welcome! :)

    2. 8

      Work:

      • Catching up on 2 weeks of email
      • Continuing to build out a model for whether or not an application (on our platform) is healthy or not.
      • Helping to transition to a new metrics pipeline via Kafka

      Personal:

      • Screwing around with OpenBSD on an old laptop
      • Playing with a compiler written in Lua
      • Reading some crypto text
      1. 1

        How’s the crypto going?

        1. 2

          I’m reading Applied Cryptography, which has been sitting on my shelf for years now. Unfortunately, haven’t gotten very far yet. Something about kids always getting in the way, or something. :)

          1. 1

            Anything security-related by Schneier is an excellent read. He really knows his stuff.

            Are you subscribed to Crypto-Gram, by any chance?

            1. 1

              I subscribe to his RSS feed, though, to be quite honest, I’m so behind in RSS, email, and any other reading that I might as well say, “no, I’m not subscribed to anything.”

        2. 1

          I tried screwing around with OpenBSD. Of the BSD flavors I’ve played with it’s frankly my favorite. Never did fix my networking issues with it though.

          1. 2

            I had trouble getting networking setup correctly in a qemu VM with Debian as the host a while back. In 2004, on an old pentium 133 Toshiba Satelite, and a PCMCIA wireless card, everything “just worked.”

            This weekend, I borked my Dell sputnik, since there seems to be a bug in the BIOS, which doesn’t allow a drive to boot (even in “legacy” mode) without an EFI/GPT partition. The same drive/install worked fine in another machine, and after some fdisking, the Dell boots that harddrive. My wireless card is Intel, and there is some binary firmware available, which I’ve yet to try, but feel confident in.

            OpenBSD apparently, can now boot with EFI, so, I’ll let you know if I get the network device working. :)

            1. 1

              OpenBSD apparently, can now boot with EFI

              Ooh, goodie! Where can I find documentation on this?

              1. 1

                Ha!

                Unfortunately, I’ve found none. I have, however, found a few tutorials as to how to get it working, though I haven’t had a chance to try it: https://blog.jasper.la/openbsd-uefi-bootloader-howto/

                1. 1

                  Well, I somehow screwed myself again by not having an EFI / GPT partition and rebooting. Not sure how I managed to reboot without one (I thought I was being careful), but I did. I have to rip apart 2 computers to swap drives such that I can boot the Dell again.

                  I did notice, however, that install58.fs doesn’t have an fdisk on it that accepts a -b argument, so the tutorial I linked to on jasper.la doesn’t actually work. However, I noticed that it suggests using miniroot58.fs instead, which I didn’t do, so that could be my issue…

                  1. 1

                    I’ve been playing around with Libreboot firmware on a refurbished Thinkpad X200, but unfortunately it’s only able to boot Linux at the moment.

                    If I were to use Coreboot instead of Libreboot, it may be possible to chainload Coreboot -> SeaBIOS -> OpenBSD, but I got stuck trying to find the “VGA Option ROM” which SeaBIOS needs in order to talk to my GMA45 graphics chip.

                    In contrast, Libreboot+Linux have a free graphics driver implementation and don’t need the proprietary VGA Option ROM.

                    I’m confident OpenBSD would run with no problems if I simply restored the original firmware, but I’m not ready to give up just yet. I will be watching OpenBSD’s new EFI support closely.

                    1. 1

                      I did setup freeDOS and attempt to flash my BIOS to the latest, hoping that they fixed the “there’s no GPT/EFI partition and I care, even in legacy mode”, but this was a failed experiment as the .EXE couldn’t extract itself.

                      I need to do more investigation there, but I think the way to fix it is to run it from within Windows (ugh), which I don’t currently have a way to install. This will be my last Dell laptop.

                      Edit: Also, there’s no way in hell, unfortunately that any of the open BIOS will work on this machine, which would give me a chance in hell. I’ve ordered an mSATA to USB enclosure so I can easily fdisk and such.

          2. 4
            • spending time with coworkers in hamburg, doing braindumps and productionizing a high performance erlang load balancing and service discovery system
            • After making a good bit of progress at 32c3, the work to add multiple shard support to rasputin is mostly complete! I hope to get this finished by the weekend, and then it will just be a short time until there exists a strongly consistent auto-sharding kv/log/object store in rust :)
            1. 2

              This sounds like tons of fun. Happy new year, mate!

            2. 4

              Over the holiday, I finally started Doing The Work necessary to get Hython closer to done on the rewrite branch.

              The object system has been bootstrapped for awhile, but I added functions to easily invoke methods from Haskell, along with create new objects. The list/dict classes are now built out of Python code, and call into Haskell via a primitive system. I’ve added hooks for a bunch of the magic __whatever__ methods that Python uses (such as __str__() and __len__()); doing so has made most of the builtin functions remarkably impure (as denoted by the MonadInterpreter constraint).

              For fun, I added destructuring in yesterday, and can now write:

              d = { 'test': 42 }
              for k, v in d.items():
                print(k)
              

              d.items() returns a list of tuples, the for loop calls iter on that list, which calls __next__() on the iterator, and finally assigns the tuple members to k and v respectively.

              1. 3

                Work started well, having to spend about half an hour ripping the house apart to find where I’d hidden the work laptop before Christmas. Happily I’d left myself a bunch of notes about what state different things were in before I finished, so that was a great post-holiday present to myself. Good job, 2015 Caius.

                Outside of work, fitness training is back and going better than ever. Got a couple of turbo trainer sessions that are pretty effective (feeling them far more the day after than just a normal ride.) And as bloody boring as it is, it’s easier than donning all the clothes to go cycle in the rain.

                Also trying to figure out iOS configuration profiles as both kids now have iPad minis I’d like to lock down somewhat, without having to fiddle around with Settings.ipa every time I want to change a setting. Tempting to just stick OS X Server somewhere for the MDM server it makes available (plus Software Update/App Store cache), as I can’t find a working open source version. Sorely tempted to start hacking on one instead though, we shall see.

                1. 3

                  My current job tends to be boring, so I’ll limit the answer to my free time activities.

                  I’ll be working on my IRC client, which is a never-ending story (but isn’t all software like that?) I’ve just finished moving DNS resolution to its own thread so that it doesn’t freeze when the network is down. Now I’ll probably work on extending the Lua API so that I can write myself a last.fm plugin to retrieve the currently playing song when I want to share it.

                  1. 1

                    Is your IRC client written in Lua, too? Or is that just for scripting?

                    1. 2

                      Just for scripting, client is written in C. Originally I didn’t even want it but then I got bored once and made an initial design for the mapping, which I’ve eventually managed to actually implement.

                  2. 3

                    work: mostly documentation and dependency updates. yay.

                    personal: exercism.io Elixir problems. It’s hard since my brain seems unwilling to stop thinking in Ruby.

                    1. 2

                      exercism.io Elixir problems

                      Oh! I missed that they had other languages available. Thanks for the reminder, will have to give them a go. (Also in the same boat trying to get my head out of ruby mode and into elixir mode.)

                    2. 3

                      Work: Besides my main $PROJECT, continuing work on open-sourcing our office plan layout app.

                      Personal:

                      • Writing more short blog entries, AKA Tedbits.
                      • Creating labs/projects for my non-beginner Java 8/Modern Java course - related to my Awesome Java 8 list.
                      • Working on longer blog entries to provide fodder for promoting the above.
                      • Spending more quality time in IRC/Slack channels (most recent is RandsInRepose' Leadership team).
                      • Upping my distance to prep for upcoming 10mile/half-marathons.
                      1. 2

                        Work-in-office: - Feeling refreshed after 2 weeks off, and ready to tackle any challenge with a more centered and professional attitude. - No idea.

                        Work-as-consultant: - I disconnected pretty much completely during the holidays, so I didn’t get around setting up my site yet. I have to do it this week.

                        Work-as-personal-therapy: - I want to toy around with an idea I had about a database; I want to write out objects directly on the fs. The DB would behave like a KV store, mostly, but would also keep track of items and periodically (idk, maybe, seems like an okay-ish idea) persist them for you. I’d see this more as a generic application cache for apps that have everything in memory. - I wanna try my shot at writing a UNIX-styled mail client that reads Maildir-formatted mailboxes, more as an educational project than an actual thing that people would use but ya. Still. - I’m not certain I actually want to do any of those two things because they seem like an immense useless time sink and I should instead be learning about maths, algorithms, and data structures, where I seem to be lacking. This also seems like a useless time sink because somehow, I’ve yet to professionally see stuff that use any of those three things, and this makes me sad.

                        1. 2
                          • Starting my math and science prereqs for engineering
                          • Start training again ( this year i’m thinking swimming)
                          • Play around with merging linux from scratch and suckless
                          • Keep reading “The c programming language”
                          1. 2

                            Lesse here, not blocked on anything ;-)

                            Back to work for me and I’ll be diving into a bit of Rust, Swift and Haskell this week I think. Rust and Haskell will be mostly getting into with Swift the only thing that I’ve got an actual idea for on OSX.

                            1. 2

                              Personal:

                              • Spent all weekend messing around with FreeBSD, OpenBSD, DragonFlyBSD, and Ubuntu only to end up installing Fedora. Oh well. I think I’ll try messing around with OpenBSD in a VM until I can get the hang of it.
                              • I’ve debated on re-writing my pet app in Qt instead of Gtk. A lot of signs would seem to point to Qt being better or the way of future, etc. Yet Gtk is not only still around it still seems very dominate.

                              https://github.com/steveno/balistica

                              Work:

                              • I’m going to see about getting a PostgreSQL database to run in memory (the tablespace at least) to speed up a large number of select statements.

                              1. 2

                                Work: Looks like I will be getting into a small web programming project for the first time in a couple years. Hope I can use SuaveIO and Websharper and/or Freya

                                Personal: Pretty near completion of F# VerbalExpressions project I started 2 days ago. I took it a step further and made all the VerbExs composable, the lack of which has annoyed me with Regexs in F#. Hope to have it published next weekend.

                                1. 2

                                  Looks at OPS Kanban board: a long list of more or less mundane tasks that just needs doing.

                                  Outside work I’m looking at houses to buy and toying with creating an app using duct, which seems to bring together a lot of best practice techniques for Clojure app development.

                                  Also, cursing at my new Apple TV. Setup was a dream, but usability is poor because our internet is so slow that streaming is impossible. A 5-hour wait before watching a film is annoying, but expected for the first download. (I could try standard definition, but who wants pixelation?) However the Apple TV seems to delete films after watching, which completely fails at my son’s use-case: watch Wall-E over, and over, and over, again. It wants to re-download for every re-watch, which does not make for a quiet household when The Boy wants to watch Wall-E NOW. (He’s been used to watching it about 10 times a week for the last few months. He’s 4.) Current work-around: download the film on a hitherto unused laptop and stream the film from it via the Apple TV. It works, but more cumbersome than should be necessary. I don’t understand why the Apple TV deletes stuff before it runs out of storage :-(

                                  I’m also finding the Apple TV very slow. This could be due to loading everything over our excruciatingly slow network too, I guess, but I don’t see why it can’t cache things a little for the list of our purchased movies for example. I really want to like it, but it’s a bit hard right now. Currently debating whether to attempt to send it back or suck it up and keep it as we are planning to move soon-ish and will hopefully have better internet there.

                                  1. 4

                                    However the Apple TV seems to delete films after watching,

                                    Defective by design. :-(

                                  2. 2

                                    I am going to be heading back up to school for the upcoming semester Wednesday, So I am going to pack up tomorrow. Otherwise, I am going to do a little refactoring of a ruby gem I created a few weeks ago (cosi-temp), and redesigning a startpage that contains relevant links to sites I go to often.

                                    1. 2

                                      Work:

                                      • Catching up with PRs (we’re in online retail so we don’t ship code during the second half of December to avoid rocking the boat in the holidays).
                                      • Doing performance work on the browser2 gem and features on the async_cache gem.

                                      Personal:

                                      • Implementing the actual bytecode interpreter for hivm2 (the spiritual successor to hivm). Spent the holidays writing the syntax tree and the parser for the assembly language and a compiler to turn that higher-level assembly into lower-level bytecode instructions.
                                      • Later this week I plan to ship a redesign to the personal site that I did over the holidays.
                                      1. 2
                                        • trying to ship things for work, real crunch modes coming up.
                                        • clearing out my email inbox from the holidays
                                        • continuing efforts on a backup utility that I think is relatively novel. Learned a lot about the tar format that I didn’t know, been very useful
                                        • getting back on the gtd bandwagon for the year. I’ve finally gotten a system that is consistent for more than a few years, so it should be straight forward.