1. 23

This is the weekly thread to discuss what you’ve done recently and are working on this week.

Please be descriptive and don’t hesitate to ask for help, advice or other guidance.

  1. 17


    I haven’t felt much like posting (or talking) in the last couple of weeks. I’ve been busy though as that helps keep some of the demons away.

    In Dylan land, I’d like to say that we’re looking for an intern for a “Summer of Dylan”. This would be paid ($4k out of own pockets). Exactly what would be worked on would be open to discussion, but we’re particularly interested in work in the area of type system improvements, Unicode, numerics, networking, or usability.

    For my client work, I’m getting my client upgraded from a version of Emscripten from December to the current version. This includes an update from LLVM 3.4 to 3.6. There have been a lot of difficulties along the way, but it is starting to look like most of them have been resolved. It has been quite a challenge, with fixes needed in LLVM, emscripten and my client’s code. The goal here is to get them running entirely in valid asm.js, but that comes after the update to current emscripten.

    I’ve been doing some work with Dylan recently as well.

    I dug out some old patches that we had for supporting FE_INVALID floating point exceptions, cleaned it up, wrote some tests and got it merged. Unfortunately, doing so has revealed a bug in the code generated by our old (ancient) native code generating compiler backend that will need to be fixed. I wrote extensively about this as I tracked it down. The fix will probably involve needing to save and restore the x87 FPU tag word during stack unwinding so that we don’t continue to lose x87 FPU stack slots when a floating point exception occurs.

    I’ve also been starting to do more work with the LLVM compiler backend for Dylan. I am working on getting some of the compiler support needed for my Objective C bridge working. In the process, I’ve also been cleaning up some parts of the overall compiler.

    In Emscripten land, apart from the work on getting my client updated to the current version, I’ve been taking on a lot of clean up within Emscripten itself. (This is largely to support some changes that my client needs.) There were 2 compilers in Emscripten. The “old” compiler and “fastcomp”. In recent months, the “old” compiler was deprecated officially and is no longer supported. After the last week, it has largely been removed from the codebase and that’ll help simplify things a lot going forward.

    There’s been a bunch of other stuff over the last month, but that’s all stuff from the last week.

    Until next week, maybe!

    1. 7

      Unbelievably good weather for April in the UK this last week has meant lots of outdoor exercise for me, both putting miles in on the bike and donning the wetsuit to jump in lakes & meres. Very enjoyable, and hopefully more of the same this week as the weather looks to be holding for a second week.

      Got my media server ansible playbook to a point where I’m happy with it as a first revision. Going to investigate jails & moving some of the applications within them before I spend an evening reinstalling the physical server first I think. Downside is I now have the itch to spin up some FreeBSD webserver playbooks locally to replace my Ubuntu VMs for personal sites. No doubt a future project!

      Hoping to get some car hackery finished this week too. (Although it depends a little on eBay items shipping on time.) FORScan now has support for triggering the pairing procedure for new keys for my car, so I can finally have two spare keys for the car instead of one. (Before this point the only way to associate a new spare key is to take it in to Ford and pay them £200+ to do it. Ouch.)

      1. 6

        Last week I was oncall, which was really frustrating. Oncall is currently “who is the engineer available to help us with whatever”, not “something is broken and requires your immediate attention.” Fine during the week, but very frustrating on Saturdays and Sundays. Also it’s hard to get other engineers on the rotation to investigate deeper than just fixing the issue on the surface, so the same issues keep popping up for months. Sigh.

        I looked into why our test runner is slow, and wrote about it.

        Hopefully this week I’ll have some time to go back into coasters. I have some good books from the library on genetic algorithms that I’m hoping to dig into.

        1. 1

          What would saying “This isn’t an immediate oncall issue, closing ticket” do? Good places to work usually understand that they can’t yank you out of whatever because someone in the org needs another body to help.

        2. 6

          I’ve gotten more involved in Angular’s devtools and have started contributing to Angular-hint, the engine behind Batarang, the most popular Angular debugging tool. I’ll be building out more in-depth profiling tools. (Get excited, all three of you Angular people here!)

          There’s also a lot of cleanup that I’ve been doing and will continue to do on Card Minion. I’ve been putting off cutting out a largely useless chunk of functionality but I don’t think I can do that much longer. Launch will come soon!

          1. 6

            Been playing around with my Raspberry Pi. Wrote a Common Lisp wrapper for wiringPi, and wrote a few libraries for interacting with some sensors (GPS, ultrasonic range sensor, etc.). Now I’m working on using an Arduino motor shield from the Pi, but I’ve almost convinced myself that I’d be better off making the Pi control an Arduino that in turn controls the motor, so I may go that route.

            I’ve also been picking out the components for my next bike. 95% sure I’m going with this one, but I’m still obsessing about details and exactly which components to get.

            At work, I’ve been bug fixing.

            1. 5

              Outside of work I’ve been continuing a great groove I’ve established around weightlifting. It’s a very new thing to me, but I feel as though my form is somewhat established and as the weight keeps going up I’m reaping the rewards. I still need work on my overhead press, though, as I can definitely feel the energy drain away almost immediately when I “miss”. I’m hoping that within the next couple weeks I’ll also get up to 3 sets of 10 pull ups and dips using the resistance band I’m on right now and then I’ll be able to “go up a level” and buy a lighter one.

              (I also kind of want to get to the point where I feel safe trying to learn olympic lifts. Those things are the epitome of power.)

              Ultimately, I got into all this because I fell pretty badly out of shape a while ago and lost my ability to do much rock climbing. That sport is all about strength to weight ratios and so while I lose some weight I can accelerate change by also gaining strength. I’m giving it about 6mos before I try hitting the walls again and I’m excited to see how things change.

              1. 5

                For work, I hope to start gluing together some of the newer Haskell microservices I’ve been writing with some of our other infrastructure, which I’m quite excited about.

                Outside of work, I’m hoping to get the 0.7 release of the PureScript compiler wrapped up this week, and start writing my second talk for LambdaConf. I’m hoping to get back into running outdoors as well, if the ridiculous weather cools off a bit.

                1. 1

                  What exactly is a “microservice?” A quick Google didn’t really bring back anything.

                  1. 1

                    In my case, I’m using it to describe a service with a single, small responsibility: checking permissions, caching something, managing a resource on disk, whatever. The overall architecture is made up of several such services, communicating over HTTP. Some of them are written in Haskell, which has been a good way for me to use Haskell in a small way at work.

                2. 4

                  It’s the last week of teaching for me at $uni, before 2 weeks of revision (aka holiday), then 1 week of exams, then I’m done. So excited.

                  I have two deadlines though, so I should get to them.

                  1. 2

                    Good luck with the upcoming deadlines/exams!

                  2. 4

                    This week is primarily about RSA conference. Not the conference per se, but all the people that come for it. So far Monday, Tuesday and Wednesday are booked and I am irrationally happy about that. Hopefully some interesting things will come of it.

                    1. 3

                      Have people forgotten RSA’s involvement with NSA backdooring already? In my mind, this makes RSA irredeemably tainted. Why would people still attend their conference?

                      1. 1

                        No I haven’t forgotten but as far as I am concerned no one is not tainted and the conference has everything going on in the Enterprise security world. Keep your friends close and your enemies closer.

                        1. 2

                          no one is not tainted

                          Please be more positive and less cynical. Of course that there are people that are doing far better in the world than those who promote NSA backdoors because they were bribed. It’s up to those people to shame RSA into bankruptcy for what they’ve done. RSA has done exactly the opposite of what its whole purpose of existing as a company is.

                          If people like you just think, “everyone is shit anyways” (paraphrased), then that’s how things will stay: shit.

                          Can you or your buddies do anything to start a different conference that is not affiliated to RSA? Pycon is one such community-run non-corporate conference. It’s taken many years to become what it is, but it has turned out quite well, and it has principles which have resulted, as I have heard it, in the only tech conference where women face bathroom lines.

                    2. 4

                      New week, new challenges. @work I’ll be starting on a new project – still deciding on language etc. Currently leaning towards Node JS since this will be primarily a fast web front end for showcasing products (also, I don’t know node js so potential learning opportunity). On the personal side, the 3rd golang challenge just started, so I’ll be diving into that as well. The last two have been pretty fun to work on, and have let me dig into some places I’ve never needed to dig into before (decoding binary data, and encryption). Got my primary and secondary MX’s back online (after catastrophic disk failure) and am now back to where I was before, running spamd from OpenBSD in greylisting mode and wasting spammer’s time.

                      1. 4

                        Working the “implementation details” of an idea - a vinyl-pressing-as-a-service. Basically talking, emailing and phonecalling - definitely not as fun as actually building things…

                        1. 4

                          This week for me is mostly about attempting to get back into habits. I’ve had a sinus thing for the last week or two, so all of my routines have gone out the door. When I get sick that stuff just falls apart.

                          I’m mostly trying to keep the docs bugs squashed and fill out the things that are missing, as usual.

                          1. 4

                            Back to working on my PropellerEngine, wrote a blog post of the past progress here: http://devblog.laurimakinen.net/2015/04/rendering-update-and-physics/

                            I also continued my HTML5 port of the engine. Currently 2D rendering with input is supported:

                            1. 4

                              I’m currently doing a bit of self reflection & review outside of work. As part of that, I’m setting up a copy of @cheeaun’s life timeline for myself. However, I’m a shy guy so I’m also looking at authentication proxies using open technologies (OpenID, BrowserID).

                              At work, a coworker had left recently, leaving me as the only official sysadmin (though far from that practically) so I’ve been deep-diving Nagios, Icinga and Shinken and whipping our alerts & monitoring stack into shape. (Over the past 24 hours, I’ve gotten over 150 emails from Nagios! o_O )

                              1. 1

                                I see you’ve got a shy Nagios install ;~)

                              2. 3

                                This week, after more user testing, I am changing the Fire★ conversation UI from a accordion interface where apps are added vertically to an MDI interface where each app gets its own window.

                                People were confused by the accordion type interface I previously had and found scrolling annoying when there were lots of apps in a conversation. An MDI interface should be more intuitive and make the user feel more in control with what they see when.

                                1. 3

                                  With Jazz Fest and friends/family visiting, I’m going to have much less time to work on side projects. That said, I’m going to make it a priority to get the last screen all laid out for my game. Once the final screen is designed/laid out, then it’s time to polish the game content, and then push it live!

                                  Oh, also starting to generate social media posts for marketing .

                                  1. 1

                                    Hm, which jazz fest is that? We have a pretty big one here in Montréal, but not for a couple more months.

                                    1. 1

                                      New Orleans. Don’t take the name too literally, though. ;) http://www.nojazzfest.com/

                                  2. 3

                                    I’m finally cracking down and going to look into what it will take to run docker without iptables.

                                    1. 3

                                      I’ll continue to work on my PureScript toy project with Halogen. It’s definitely the most fun I’ve had with web development in a long time.

                                      1. 2

                                        First, lurking lobsters a bit more :)

                                        Second, I’m creating a conversational adventure, just for fun. I’ve always wanted to write a novel but I’m not that good of a writer, so the prospect of only writing interesting interactions in the format of a game is interesting.

                                        Due to that, I had to consider which computer language to write it in. I wanted to go for C, for nostalgia’s sake, but I found it impossibly difficult to reframe which is clearly an object-oriented problem (entities, verbs, items, locations…) with a non-OOP language. I know it can be done, but I decided it’s not worth it, so I went with Java to make it portable.

                                        Anyway, the framework is almost finished; I have a working UI and the baselines of the story are in my head. Now for the hard part, to define the rooms, item interactions and restrictions, and of course writing a compelling story.

                                        As for help, I’m thinking of using ANSI images to illustrate the adventure; I want it to be text-only. Does anybody know a good tool to convert images to ANSI?

                                        1. 2

                                          Does anybody know a good tool to convert images to ANSI?

                                          I was looking for one when building the BBS, but I couldn’t really find any good ones. There are a bunch of image-to-ASCII converters but none that try to stick to the 16-color palette and use the high bit characters for shading.

                                          I started doing it myself by scaling an image down to 80x24 and then just looking at the pixels in an enlarged view in one window and PabloDraw open in another window to try to duplicate them.

                                          1. 1

                                            Thanks for the directions, that’s what I was fearing. Basically, downsample as much with algorithms (e.g. Gimp) and then manually “fix” the pixels.

                                            I’ve actually done some image processing recently and have a strong AI background, so I was thinking of creating a simple converter with genetic algorithms, basing its scoring on HSV similarity to the original. That’s probably nuts, because for a good result I would need to account for dithering and I don’t know enough about that, but I really don’t want to spend hours squinting my eyes.

                                            I guess I’ll google as much as possible to see if some guy implemented something similar for their PhD (which is much more common than I imagined). If I can get ANSI images with a quality similar to those of your BBS I’d call it a day, they were pretty good.

                                            1. 1

                                              If you get anywhere, let me know, I still have an image I’d like to convert for a welcome screen.


                                              1. 1

                                                Well you were right, it’s impossible to do it algorithmically. 16 colors is just not enough for the human eye to allow for an automatic picture->ANSI conversion. I tried with 256 colors and you can get away with most of the dithering and color downsampling, but not with 16. It has to be done manually.

                                                Besides from libcaca, which converts an image to B/W ASCII and the result is acceptable, the only way to get anything remotely similar to ANSI is this service http://manytools.org/hacker-tools/convert-image-to-ansi-art. The result is not great and detailed areas look like a mess, but it’s the best I could find which implements the ANSI palette.

                                                Just in case, things I tried which didn’t work:

                                                • Convert to an ANSI palette with Gimp. The dithering converts the picture in basically a pixel pattern and has to be fixed manually. Very time consuming and the final result isn’t great.
                                                • Vectorize with Inkscape, then convert to a color palette. Better results than with the Gimp but much more difficult.
                                                • Use the color information from a Gimp/Inkscape downsampling and add ASCII characters from libcaca. Doesn’t help, result isn’t good

                                                Looking at games from the era (Loom, LSL, Wolfenstein 3D, The Hobbit) all the graphics look hand-made and cartoony. So that’s that. There is probably no better way and ANSI/early EGA artists needed to create images from scratch, even if copying a real picture.

                                                This bummed me a bit, as I was hoping to add some graphics to key moments of the game to shock the player. I’ll probably go with editing pixel images with Gimp/Pablo, and instead of starting from scratch, I’ll base on a 16-color downsampled picture

                                        2. 2

                                          $work: ongoing work on my news-collection-and-analysis set of tools. Feel a bit like a duck - not much going on above water, but underneath, paddling like the clappers ;-) The visible, above-water bit is our ongoing analysis of the media coverage of the UK election:


                                          Currently improving my tools for feeding in twitter data to the mix and analysing the twittersphere (is that really a word?). Looking forward to the election being done and dusted. Got to start thinking up how to further fund this stuff ;- )

                                          $nonwork: slowly (very slowly!) hacking away at a prototype sort of ‘shared clipboard’ kind of thing that I’ve been wanting and has been kicking around my head for a good few years now. Trying really hard to keep it pared back and simple. Hopefully have something to show over the next couple of weeks.

                                          1. 2

                                            I’m about to start work at SlamData as a PureScript engineer. In preparation I’ve been working on some PureScript stuff:

                                            1. purescript-css, a type-safe CSS library.
                                            2. Optimising f <<< g $ x into f (g x)
                                            3. Optimising f <<< g into \x -> f (g x)

                                            And I’ve been learning about Halogen. I’m really impressed by the recent quality of tooling for working with frontends! Can’t wait to help out more.

                                            1. 2

                                              $work: the “feature feature” (total refactor of how we do feature flags): taking us from 3 different management systems to 1, and letting our superusers manipulate their states.

                                              Also recovering from PyCon, fixing up my bicycle, pondering how to create a startup to support social workers.

                                              1. 2

                                                I haven’t posted to lobsters yet, so hi. I’m an engineer at a cryptocurrency company in SF. This week I’m working on regaining some spoons. I had an awful burnout breakdown of sorts a few weeks ago and had to force myself to take a couple of days off. Luckily, it was only a few weeks prior to tomorrow, where I’m riding a train up the west coast into Seattle with some people who are very close to me and that I love very much. We’re going up to Linux Fest Northwest where I’ll also be running into other people of my KDE family. It should be a lot of fun, and I’m looking forward to having all this time to decompress, get away, and chill out with these folks who always make me feel loved.

                                                1. 2

                                                  (Hey, I’m new to lobste.rs. Finding it a pleasant read so far!)

                                                  Mostly working on cleaning up/re-styling a project I iced about a year ago, Sprigot so I can add the ability to shared nodes between documents. Which is a form of procrastinating on working on my resume.

                                                  Also, picking at various Twitter bots, released and unreleased.

                                                  1. 1

                                                    Work Working on doing reporting for my document tracking application. Surprisingly, reporting is hard. At least Visual Studio’s built in reports are a massive pain in my opinion. I’ve done a lot of work before with Crystal Reports, and frankly, I wish they were still an option at this point.

                                                    Home Kotlin is my new fancy. I set myself up with JetBrains IDE and checked out the Kotlin source code (more for learning than contributing). Either way, hopefully I’ll be better for it.

                                                    1. 1

                                                      Just a small little tool to interface with the remote desktop services on Windows.