1. 23

Monday means it’s the weekly thread to talk about projects you’re working on this week or worked on this last week. Feel free to say as much about it as you want, and please don’t hesitate to ask for help, review, etc…

  1. 20

    This weekendish I started putting together a set of tutorials on embedded development. Some of my friends wanted to get started in embedded and “bare-metal” programming, so I started writing them the guide I’d wished I had. I found a lot of the material that exists either moved to slow because they assumed you didn’t know much about programming or moved too fast because they assumed you knew too much about embedded systems. I picked the Arduino (though programming it with plain C, not the Arduino environment or Processing/Wiring) because they’re fairly low-cost to start with and you get started right away; the AVR architecture is also not so complex that you have to learn a lot of additional stuff while trying to figure out how to write your program.

    Also, I’m slowly burning out on the tech industry and finding some refuge in building a small rover-like robot.

    1. 3

      Thank you already for the tutorials you’ve written so far. Learnt a huge amount from reading them, looking forward to pulling out my Arduino and playing a bit more. Not gone outside the Arduino editor before, but reading the intro guide make a whole bunch of stuff in my head just click. Maybe my ‘duino controller RC car might get finished this year now. (Was previously attempting to control with an RPi, using Go. Never finished it.)

      1. 2

        Glad it was useful! If there’s anything in particular you’d like to know about, I’m always looking for ideas. I’ve got analog inputs, I2C, SPI, and maybe threading as planned future posts; once the AVR series is done, I’ll probably start a series on ARM and/or the MSP430. I’d love to hear more about the RC car as you work on it (maybe in future weekly threads?).

        1. 3

          Having failed to find my ‘duino, I’ve just picked up a micro on eBay cheaply to play with for this, heh.

          My adventures with the car so far have been hooking up a RPi through a L298N controller to get the forward/backwards & left/right motors in the car working independently. (It’s a cheap kids remote control car that I think the RC crystal has been busted in. Wasn’t working with any of my remote handsets at least.) I kinda stagnated at that point, needed to get an interface in there somehow to have remote control of it (I was thinking from my phone over wifi at that point, hence having it controlled via a Go program.)

          I’m now thinking I might try and have the arduino control the motors through the L298N (if required? Not sure, need to look up the voltage specs of the ‘duino), and control it via serial to start with. Possibly piggyback the RPi on there or try hooking a bluetooth or wifi module into the 'duino.

          Not really done much hardware stuff beyond making plug n play devices work on OS' that don’t have out the box support for them before. Got a bunch of LEDs & buttons to start learning with though, but having the car project progressed me from “I’ll learn this stuff one day” to “how do I get this thing moving forwards”.

          1. 1

            I like these small 4800 bps transmitters and receivers when I want something dead simple. You might find those easier to work with for radio control than wifi or bluetooth.

      2. 3

        Seconding the slow burnout. This week I’m adding “PDF generation not required” to the list of things that I look for in a job. Also starting to pick up a little Elixir.

        1. 1

          Also, I’m slowly burning out on the tech industry and finding some refuge in building a small rover-like robot.

          Is there anything in particular driving that, or just general constant churn from the industry?

          1. 1

            It’s complicated; there are specific things, but I don’t really want to mention them because I don’t think it would be productive.

            1. 1

              Fair enough, over the years I’ve wondered about the various drivers behind burn out, looking at ways to dampen their effect. Alternatively, they can become a catalyst for something else. Obviously it is different for every one person.

        2. 10

          This is my last week as an undergraduate. This Saturday I’ll be graduating with my Bachelor of Science in Computer Science, and next month I start work as a Systems Engineer at MITRE. I’m really excited.

          As far as work: for the last year I’ve been running a personal newsletter called US+TECH, and soon (hopefully in the next month) it will be launching as an online magazine (slightly renamed Us & Tech), and publishing its first issue. I have four other friends signed on as writers, and right now I’m just building up the site, front–end and back–end.

          1. 7

            I had been pretty busy … but last Friday, I had a stupid / silly accident while walking and ended up with a mild concussion which seems to have re-triggered migraine headaches. I’m kind of taking it easy this week as a result.

            1. 5

              Hope you recover quickly.

            2. 6

              Learning me a haskell as another foray into FP after not really grokking scala properly last year, playing with d3 and maps - I want to do some whizzy visualisations of a group of friends travel plans.

              1. 1

                Good luck with that Haskell. I’ve been slowly trying to not hate it myself. I’m almost there!

              2. 4

                Pounding out C++. I will never love this language, and it will never love me, but we have reached a wary detente. There is something fun about convoluting images by monkeying with raw data, and OpenCV makes some of what I have to do pretty simple. I also had to edit a few Makefiles today and while that’s never something that improves one’s mood, I was able to get in and out without injury.

                Otherwise, still preparing for the arrival of child #1, one week from today.

                1. 3

                  I have never really liked C++ much even though it’s my “mother tongue”. But when I was able to transliterate almost exactly some Python into C++11, I started liking it more. And C++14 is getting better too.

                  I will always have to read someone else’s crappy and old C++, but if I can always write C++14 or later myself, I think I can finally make peace with this language.

                  Good luck with that kid. May she or he bring you joy.

                  1. 1

                    Question for a C++ native: is there a good, standard template for starting a new project? I’m currently inside an existing codebase but will be emitting stand-alone projects for libraries and binaries in the not-too-distant future. If this were Objective-C, I would simply let Xcode start a new project for me, but I’m unsure of what would be a “native” structure for a C++ project. Any tips?

                    1. 1

                      I don’t know of one. I guess some people like yasnippet in Emacs.

                      If a programming language requires boilerplate, then I’d rather not use that language to begin with. That’s one thing I am enjoying about C++11: less boilerplate compared to C++03.

                      Edit: wait, by “project” you mean a build system, right? I like CMake and autotools.

                      1. 1

                        Not so much boilerplate, but more a template that adheres to the informal community standards for e.g. setting up paths, build stuff, dependency declaration, that sort of thing.

                  2. 1

                    I’ve been writing a lot of C++ for embedded systems outside of work lately, can’t say I really hate it. C++11 seems like a major improvement over the C++ I’d done previously, though.

                    Congratulations on your first kid!

                    1. 2

                      C++11 is so much better than I remember C++ being that I am OK with a lot of what I don’t like.

                      We got 3D renders of Peanut today from a prenatal MRI. They are … horrifying.

                  3. 4

                    Last Week

                    I released Fire★ 0.10 last week which has some UI improvements and a bug fix in the TCP stack.

                    This Week

                    On vacation doing nothing. Will be back next week browned and ready to code.

                    1. 3

                      Getting my ass rained out. :(

                      http://blog.chron.com/weather/2015/06/tropical-system-organizing-how-will-it-impact-houston/

                      Also, testing testing testing in C#. This is seriously nifty, though slow as balls on my current machine.

                      1. 3

                        Not a great start to the week at work. Just not feeling it lately. I think I either need a nice long vacation, or to start looking for a new gig.

                        As far as not work stuff, I successfully migrated my home media server’s zfs raidz2 into a raid10, without having to restore from backup. I wrote it up if anyone is interested.

                        Got a new (more powerful) home server and consolidated lots of random stuff (network shares, media server, poudriere builder, stats, etc) from a few other machines onto it. Upgraded some of the home network gear too. That left me with a little pile of now unused hardware that I now need to get rid of. Thinking craigslist but that can be a bit of a hassle sometimes.

                        1. 1

                          Always fun to read about ZFS related shenanigans, thanks for writing up!

                        2. 3

                          Building an etcd mesos framework so that it’s easier to run HA kubernetes clusters on top of mesos (or anything else that has made the decision to use etcd over zk or the mesos replicated log.) I’ve got it handling failover of the scheduler or the mesos master, and seamless recovery when up to (N-1)/2 etcd instances fail. Etcd mutates its membership by invoking RAFT itself, which is why it’s a little more interesting to recover from more than (N-1)/2 failures. Next I’ll be adding periodic backups to HDFS/S3/etc… so that the cluster can be restored in catastrophic scenarios. If up to N-1 failures occur, it will be able to just dump the current snapshot and spawn a fresh cluster using that as the seed.

                          1. 1

                            is it possible to run mesos under etcd instead of zk yet? the jira looks like it’s still open, but i would be willing to try a branch if it’s something that’s semi-functional

                            1. 1

                              It’s in progress currently, but I’m not sure how far along it is. There is also desire to make mesos self sufficient by handling its own leader election, but zk is going to be the most reliable option for the time being.

                          2. 3
                            • uni: continuing my thesis on porting Go to Barrelfish OS. Particularly, making use of the port by writing services for BF in Go. Also, rethinking Go channels integration with BF messaging system (Flounder).
                            • work: painful refactoring. Despite hating Erlang, I still think that it is the first choice for writing a fault-tolerant software.
                            • free time: trying to get into rumpkernels thing to see how easy to create my own unikernel. hacking my diet and sleep.
                            1. 3

                              Today, I had my high school graduation.

                              Tomorrow, I’ll be starting a summer job at a software company called (bouvet)[http://www.bouvet.no/]. I’ll be working with a team to make a mobile app for one of their services.

                              During the evenings, I plan to work on a static site generator I’m writing in C (http://github.com/mortie/housecat), as part of a project to learn something low level, as I come from a mostly web and JavaScript background.

                              1. 2

                                This week I am working on the last post in a series on web dev I was requested to write by a friend.

                                Also learning Vala.

                                1. 2

                                  @home: Working with Flask/Restless to start the API layer for one of the side projects I have in my head. Also I have been using Headspace for meditation, I have been enjoying it so far!

                                  @work: I am setting up a new developers laptop so when they come in they can get right to work. Very little effort as all I do is run an Ansible script, but I would still like to get as much out of their way as possible. Other than that just the normal 9-5 tasks, nothing exotic this week.

                                  1. 2

                                    Been working on colors. A simple program to extract colors from pictures using the k-means algorithm. I am trying to wrap my head around the various difference approaches (k-means, k-medians and so on).

                                    This is mostly for experimentation. A friend of mine wrote about it on his blog. The version used in the blog is quite buggy though.

                                    1. 2

                                      Cycling, lots of cycling. Spent last Sunday at the Welshpool Airshow and saw XH558 flying for what might be my last time seeing her. (This is her final display season sadly.)

                                      Not too much planned this week, got a puppet master up and running at last at home, so probably build out some manifests for the various nodes I have. Also started on some new webservers to replace my (rather) long in the tooth Ubuntu VMs I have currently.

                                      1. 2

                                        I’ve got a promising on-site interview this weekend at a local company. Counting my unhatched chicks has me kind of distracted from everything else.

                                        1. 1

                                          What are you working on, @kyle?

                                          1. 2

                                            My comment just took a few minutes to write, and two tries to submit because flaky internet ;)

                                            1. 1

                                              I caught you off guard! Sorry. :-)

                                          2. 1

                                            Finished up my first conference talk and coming back to thinking about side projects. Interested in learning about automated validation and have a really strong itch to build generators from state machines, starting with regular expressions.

                                            1. 1

                                              (The talk was about testing distributed systems, nothing was recorded and I have slides but they’re not terribly useful without actual speech to give context)

                                            2. 1

                                              I’ve started working on LXD (github page, ubuntu.com LXD page), initially trying to make system containers space-efficient and faster to start on stock installs, so I’m getting acquainted with LXC, Go and linux storage management.