1. 34

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

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

  1.  

  2. 13

    I had a talk accepted by wroc_love.rb. Due to a tight planning schedule and time spent working out logistics, I have less than two weeks to go from acceptance to giving the talk. Pretty much everything else is on hold so I can prepare. The talk is a redefinition of the Liskov Substitution Principle for folks who know inheritance is a bad idea, giving insight to why Ruby struggles with NoMethodError on nil, why all the Rails Base classes include callbacks, and how to avoid “oh what the hell now” when you get an exception five steps from where the bug. It is my second Ruby talk secretly about Haskell.

    I’m also in the point of talk production where I feel stupid for ever proposing it. It’s some combination of how repeating a word over and over makes it sound meaningless, plus being close to the topic for long enough that everything feels either trivial or in need of a dozen obscure caveats. Just too close to have any perspective on what the audience will find insightful and useful. The only way I know to deal with this is giving practice runs, which I don’t have much time for. I welcome advice from experienced speakers.

    Work: Achieved one year as a 0x developer. :tada::sarcastic-tone-3:

    1. 9

      I’m writing a orthogonal Vim-clone in C, because I don’t really like Vim’s bloat and lack of extensability at a low level due to bit-rot. Neovim is doing some OK stuff, but I’m going for an even more minimal design (under 8K SLOC). Most features will be handled by piping out to other processes, including window layout (which will be handled by tmux rather than the internal editor). This simplifies the code, makes keybindings more sane across the three vim-like levels of bindings (editor, multiplexer and window manager).

      That’ll probably be the main thing I work on this week, but if I get something finished faster than I was expecting, I’ll start rewriting my lisp interpreter. It’s kind of working at this point, but there are far too many memory leaks, so I’m probably going to have to start from (mostly) scratch :\

      If anyone knows of a good minimal lisp implementation in C (maybe with static memory allocation? At least with a sane memory management model), let me know!

      1. 5

        You might also be interested in Jeff Bezanson’s femtolisp.

        1. 2

          chibi scheme is well worth a look too

          1. 1

            Interesting project. Thanks for the link!

          2. 4

            You may find kakoune interesting, though it’s C++ rather than C.

            1. 2

              Yeah! That’s one of the projects that’s inspired me. I would use it, but Vim bindings are too embedded in my muscle memory at this point :P

              1. 1

                Thanks for this. I’m going to try out kakoune. Also willing to test-drive nc’s thing when it’s ready.

          3. 9

            Last week, I announced my Jaunt (formerly Clojarr, renamed due to name proximity to clojars) fork of Clojure.

            This weekend I overhauled my grimoire to add live search and a responsive cheatsheet. Work on the documentation pages is ongoing.

            This week I’ll be splitting my efforts between some of my Fraternity’s projects, Grimoire and Jaunt trying to maintain my commit a day streak without over-committing and logging 100 commit days.

            Next week is my last round of college midterms for which I’m not especially excited.

            1. 8

              New release of the Haskell book which includes non-strictness, data structures, and IO. We’re particularly proud of this one and believe it’ll make these topics dramatically more accessible to programmers.

              This week I begin the groundwork and scaffolding process for the final (still secret) release.

              Day job stuff is the usual happy-fun-times Haskell. Got our stuff deploying with Ansible last week which was a mostly pleasant experience save for a few bits and bobs. Finding Vagrant+LXC to be preferable to Docker for local dev provisioning/deployment testing. Think I’ve sold my coworker on Yesod more than I have Persistent but they still appreciate the benefits of the model schema DSL.

              Julie and I are sponsoring Lambda Conf and providing commercial Haskell training (beginner & intermediate) this year, so we’re pretty excited about prepping that material. We’re also excited that we’re on the final stretch of the book. After this, it’s just editing and going to print.

              We have a somewhat ambitious plan for how our next two books get done.

              1. 7

                I am still tinkering away at Ruse, my embedded Scheme for Rust. I’ve added a few repos to the GitHub organization, including:

                • The Stress-Free Manifesto: A document for declaring your open source project as a stress-free environment. I’ve only done a first draft so far, and want to expand it some more before actually using it for Ruse. Ruse is not designed to be the sort of thing other people begin to rely on and make demands about, and I wanted to codify that ahead-of-time. Figuring other projects may want to do the same, I wrote this.
                • Langs In Rust: A list of programming languages implemented in Rust (which of course includes Rust itself). This is a useful thing for me to keep in mind for comparison and inspiration, and may be useful to other people interested in implemented programming languages in Rust, or in seeing what sort of prior art exists.
                • Reading: A collection of links to interesting reading material relevant to the creation of Ruse. This includes documents about the specifics of implementing a Lisp, history of different Lisps, and really anything else I find interesting. This is, in effect, just a commented version of my Pinboard tag for Ruse, but this is easier for other people to find and potentially add to.
                • The Ruse website repo: I put together a small and simple website for Ruse, and this is the repo for it. It’s nothing more than a basic Jekyll site at the moment, with just one page. Will probably expand it later.

                Edit: I should add that anyone interested in contributing or even joining the team is more than welcome to let me know.

                1. 3

                  Great name for a project! In fact, many years ago, I wrote a Scheme to Python bytecode compiler called Ruse. I never released it though. This was the logo.

                  1. 1

                    Glad you like the name! That logo is fantastic, and the project sounds interesting. Shame it was never released.

                2. 6

                  Realised my cycling events this year aren’t as far away as I thought they were, and thus have ordered a few upgraded parts for the bike to get used to them ahead of time. This week will be split between getting back into a training regime and fettling the various upgrades onto the bike as they arrive. (Very interested to see what difference shortening my cranks 2.5mm makes.)

                  Also just ordered a Raspberry Pi 3, as not having to mess with wifi dongles is a major bonus, and it has Bluetooth LE. First project to be a “how many people in the house right now” API I think.

                  1. 3

                    Also just ordered a Raspberry Pi 3, as not having to mess with wifi dongles is a major bonus, and it has Bluetooth LE

                    Have you checked out http://getchip.com/? They don’t ship until June 2016, but for $9 it’s pretty amazing. I ordered 5 last November.

                    1. 3

                      Ah! I did see those at the time, but didn’t jump on that bandwagon. I got three Oaks a month or so ago but haven’t had a chance to play with them yet (firmware is still beta), but they should do a similar job I think.

                      1. 3

                        Cool, I hadn’t seen that one. It’s great how ubiquitous micro-controllers with built-in wireless are becoming. I spent hours programming and soldering BT chips for Arduino Minis. Never again!

                      2. 2

                        My CHIP from the crowd funding campaign turned up over a month ago - I need to sit down and play with it - it’s a neat device.

                      3. 2

                        I’ve got less that 14 days to get my son’s BMX race ready (it’s missing wheels and cranks :~/) Looking forward to a busy year of BMX racing. Shorter cranks should give you more power - no excuse for not winning now!

                        1. 1

                          Pardon my ignorance, but how do shorter cranks give more power? The tradeoff with a longer crank is less force required but over a greater distance correct? My recollection of classical mechanics is not great.

                          1. 3

                            The impact of crank length on power is surprisingly complex [pdf]!

                      4. 6
                        1. I got accepted to speak at SATURN 2016 on code review. I’ll be working on that talk this week, based on a code review talk I’ve been working on for a few years.
                        2. I’m actively seeking sponsors for Abstractions, a 1,500+ person software conference in Pittsburgh in August. Interested? Hit up our sponsorship page.
                        3. I’ve been chipping away at enabling support for MySQL/MariaDB in NXT NRS, a lightweight cryptocurrency. I might work at that some more this coming weekend.
                        1. 3

                          I live and work in Pittsburgh… there’s nothing easy about getting downtown to the convention center. Congrats on the Saturn speaker gig though!

                        2. 5

                          I’m working on disrupting the fashion industry.

                          1. 2

                            What kind of disruption does it need?

                            1. 3

                              Nudity?

                              1. 4

                                I don’t think that would be a disruption…

                              2. 2

                                My comment wasn’t entirely serious, rather, tongue-in-cheek. I can’t reveal the “disruption” yet, but it’s going to be a hilarious thing people will spend a few minutes laughing at, I hope. I’ll be sure to run it by lobste.rs. :)

                            2. 5

                              A couple of weeks ago I tried working on learning a few new languages for small projects… crash. burn. So this week I’m focusing on just one and I’m working through Chris and Julie’s haskell book.

                              At work I’m migrating one of my environments from Puppet over to Ansible as a thought experiment.

                              1. 1

                                Any book reviews yet? I’d be curious to hear.

                                1. 2

                                  Maybe when I reach the end.. I can say this though, I’ve always found starting in on Haskell hard so I’m taking Chris & Julie’s advise on starting out with a beginners mind (harder than I thought it would be) so it’s slow going.

                                  What I appreciate are the exercises along the way and the fact that the book is forcing me to think again (like when’s the last time I actually think about reducing problem until I couldn’t any more).

                                  It’s also a fun read. I have not read too many other books about Haskell, however the ones I have always felt harder (maybe that’s the right word?) than I expect they were meant to be.

                                  1. 1

                                    The recent site update led to the addition of some reviews for the Haskell book

                                    1. 1

                                      I’m a bit worried that, despite your best intentions, reviews you publish on the same site will be skewed towards the positive.

                                      1. 2

                                        If you’re so concerned, use Google and search the site URL/domain and the book’s title / “Haskell book”, or Julie and I’s names. You can plumb the entirety of what’s been written about us, including a nasty and misogynistic 4chan thread, in about 30 minutes.

                                        I’m not invested in specifically you learning Haskell. Do as thou wilt, but I’m no gatekeeper. I find this feedback via Twitter and Google search.

                                2. 5

                                  Outside of work, I’m going to try releasing a real version 1 of Serv, my kind-safe framework for type-safe API servers in Haskell (sort of a bizarro world Servant for people who are familiar with it). I’m also reimplementing virtual-dom in a more type-safe and pure way in Purescript for fun. This has been quite interesting as I’m digging into the right way to have pure functional tree edit scripts which also work well as mutable edit scripts. Virtual-Dom uses a tree traversal indexing system which works nicely, but I think with a good data type I can eliminate the need for indexing entirely!

                                  I’d love contributors to Serv, btw (https://github.com/tel/serv). Docs, small tweaks, or if you’re ambitious I’d like to see what we can do about making a Swagger2 generator!

                                  A big deal around kind safety is that it ought to be easier to examine the API type space since it’s well-defined. Further, Serv APIs expose more information in their description than Servant ones do (status codes in particular) so that ought to be exploitable. Swagger is modeled in a similar way.

                                  1. 4

                                    getting a new job!

                                    if anyone has a cool haskell/ml/ai job in melbourne or really anywhere in the world let me know :)

                                    1. 3

                                      I’ll be working on securing some Ubuntu Linux servers. At this point I’m mostly thinking IP tables. Any suggestions in that area would immensely appreciated.

                                      I’ll also be looking into the best way to add formatted text my pet project using GTK and Vala. Right now I’m just writing out to a textbox and frankly it’s hideous and unreadable. I need a better way really bad.

                                      1. 5

                                        i’ve always ran http://www.fail2ban.org/wiki/index.php/Main_Page + some aggressive firewall rules

                                        1. 2

                                          Fail2ban looks like something we could really use, thanks!

                                        2. 3

                                          I recommend using ferm instead of messing with iptables rules directly. It makes some great abstractions and it’s a lot cleaner to read imho.

                                          As others have said, run fail2ban on any public facing services. rkhunter and Monit can also be helpful.

                                          Make sure you also subscribe to ubuntu-security-announce so you stay up to date with any security releases.

                                          1. 3

                                            How are you liking the new valadoc the designers did an amazing job. I didn’t like the 90’s look it had earlier.

                                            1. 2

                                              I really like it actually. I’m glad someone finally put time in to making it look nice.

                                              I don’t know for sure, but I assume, the same people are doing vala-lang. I wish they would finish.

                                              1. 2

                                                The valadoc website was mainly designed by the folks at elementary OS and yes the person from vala-lang is also involved with the project. If you want to give some feedback on the website, you can dropinto #elementary on freenode, it’s bridged to the slack where everyone hangouts. You can also send me a message and i’ll relay it there (i am a contributor to elementary OS)

                                            2. 3

                                              Is your vala project on github?

                                              1. 1
                                              2. 2

                                                I use logwatch for emailing me logs.

                                                If someday you happen to have your servers invaded it would be great to have non-compromised logs.

                                                1. 2

                                                  IIRC, GTK labels support very basic HTML, and worst case, you can render it with Pango manually.

                                                  1. 2

                                                    If your UI isn’t terribly complicated and portability isn’t an issue, then honestly the best way is to toss GTK in the trash.

                                                    I maintain a MUD client which I initially wrote against GTK. I ran into the same problem as you, got annoyed, and rewrote it to directly call X11 functions. The new code is shorter and it’s not a gigantic pain in the ass to go off-piste.

                                                    1. 2

                                                      I maintain a MUD client which I initially wrote against GTK. I ran into the same problem as you, got annoyed, and rewrote it to directly call X11 functions. The new code is shorter and it’s not a gigantic pain in the ass to go off-piste.

                                                      Calling X11 directly is cleaner than an actual GUI toolkit? Or even Athena vs. any modern toolkit? Most people I’ve seen would have switched to Qt, but I’ve never seen anyone call X11. How is portability?

                                                      1. 1

                                                        For what it’s worth, my UI looks like this.

                                                        How is portability?

                                                        It runs on at least two different Linux distributions :)

                                                        1. 2

                                                          Blast from the past! Does Medievia still claim not to be a Diku? :)

                                                          1. 1

                                                            I don’t think anyone has brought it up for a few years, but you can still pay cash for ingame items, so I guess that counts. :<

                                                      2. 1

                                                        No, at this point, the UI isn’t that bad. I’ve seen a lot worse.

                                                        I’m not wedded to GTK in any other way except the rest of the program is written in Vala.

                                                        I’ve thought about just embedding a web browser and going that route. I think I can do WebKit without a lot of work. My only hesitation there is that I’ll have to do web design and I’m terrible at that.

                                                        1. 2

                                                          Is your project open source? I’d be open to helping you with the design part. ;)

                                                          1. 1
                                                      3. 2

                                                        Ossec.net is nifty to get you alerts about what’s happening on the system ?

                                                      4. 3

                                                        Work: Just got back from a conference where I spent 5 days throwing up in a hotel. Had to cancel my talk. Not my idea of a productive conference, and Vegas is about the least fun place for me to be sick in.

                                                        !Work: Working on getting my dotfiles back in order and doing some general workstation cleanup / looking for devtools to make my workflows a little easier.

                                                        1. 3
                                                          1. Working on a talk I’m giving at work (public speaking is my kryptonite)
                                                          2. Working through Haskell Book, one chapter a day
                                                          3. Putting together Fogey League, a respectful Heroes of the Storm community for people with responsibilities. This has been really fun. Looking into good ways to have a semi-public calendar of events.
                                                          1. 1

                                                            Which Haskell book? How are you liking it?

                                                            1. 3

                                                              Haskell Programming from First Principles: http://haskellbook.com/

                                                              It’s excellent.

                                                          2. 3

                                                            Investigating CI/CD tools: HashiCorp Atlas, Scalr, Spinnaker, Jenkins, StackStorm.

                                                            1. 3

                                                              Learning about GTK+, Swift, and I2P.

                                                              1. 3

                                                                We’re building a new Machine Learning PaaS, which will support SystemML, and (eventually) TensorFlow, Warp-CTC, etc. For right now, I’ve been working on getting SystemML running on a test Spark cluster so I can validate some of the existing algorithms, etc. Now that that’s working, the next step is to start building out the back-end automation for provisioning clusters, and then build the API(s) for managing data, submitting jobs, etc.

                                                                Once all that’s done, I need to finish the registration/signup stuff, do Stripe integration for payments, and integrate with Candlepin.

                                                                I also have a couple of talks to write (one on SystemML) and some blog entries and marketing material to write.

                                                                So yeah, a ton of stuff to do, but I’m pretty excited about this service and can’t wait to get it out there.

                                                                1. 2

                                                                  This is my march break so I’ll be spending most of my time teaching alpine ski. I’ll also be going through the k&r c book.

                                                                  Work wise I’m transitionning from school to work (Cant seem to concentrate properly in school and learn better on my own anyways) I’m going in france for the entire month of may so I dont think I’ll be looking for full time jobs untill after I get back, but I am on the lookout for contract work.

                                                                  If any of you need some contract programming work done I’m based in Montreal and I can do remote work.

                                                                  1. 1

                                                                    Where do you ski around here? Having grown up skiing on the rockies, I’m unimpressed by the local mountains.

                                                                    1. 2

                                                                      Mont Tremblant, its where I grew up! Its not perfect, but its one of the best in the east.

                                                                      1. 1

                                                                        I should try it, never been there. Maybe it’s better than St Sauveur.

                                                                        1. 1

                                                                          There is no night skiing, but its definitly better. Just make sure you dont come during us or ontario march break. Quebec march break is rather calm.

                                                                  2. 2

                                                                    This week I am on location in Münich, Germany, for our bi-monthly meetup. Got a tight programme, so probably won’t get time for much personal work this week. I love working remotely but it’s good to meet up with colleagues once in a while :-) We’re a 6-person tech team, so get to actually talk to everyone.

                                                                    At the end of last week made good on my promise to do a JIRA export backend for Org mode. It should be available from Melpa tomorrow. I’m seriously impressed with the Org export backend—it’s well thought out and approachable. The module is not complete, but does most of what I need it to do. Pull-requests welcome :-)

                                                                    1. 2

                                                                      Working on my final project to finish up a stint at General Assembly’s WDI. I’m creating a coding tutorial site, on a similar vein to egghead.io or laracasts. Utilizing Rails 5 API with Angular 2 (and webpack), planning on integrating Stripe subscriptions.

                                                                      During the course, I’d jot down notes and re-write some of the curriculum in my own words, as well as make a few screencasts for fellow students to refer back to– I’m going to use massage that material into being my seed content and go from there. I also plan on making a few short screencasts about setting up Webpack, Rails 5, and Angular2 (as it’s currently very topical for my project).

                                                                      I spent last night drawing up my mock-ups, and took this morning to set up CI/CD with Travis and Dokku (which, I’ve been using religiously for all of my projects in WDI, so I know that landscape fairly well).

                                                                      One of the harder parts of this is finding restraint and making fair decisions about my schedule. It’s definitely going to be an ongoing project, but having something polished and presentable by Friday is going to be a task. I’m using it as an opportunity to play up my strengths and have a fair range of material to discuss with potential employers.

                                                                      1. 2

                                                                        Visiting some friends in SF who have a computer in the basement of their event space with twelve 4k displays and will be dabbling with software that can render to all those pixels (99.5 million of them) efficiently. Sadly, Java/Processing wasn’t up to the task, even with opengl or running a separate application on each display. My best results so far have been with pygame+opengl [1], but I’m probably going to struggle to make much as a python noob (not great with GL either).

                                                                        [1] https://www.dropbox.com/s/1x8nxnmrhv9hpi2/nebula.mp4

                                                                        1. 2

                                                                          Playing with ESP8266 controllers and toy robots mostly in NodeMCU and trying to get FloBot straight in my head so I can make some progress on development.

                                                                          And coming to the end of my current engagement so trying to line up some more paid work in Melbourne, Australia.

                                                                          1. 1

                                                                            Writing arduino code on ESP8266 is pretty good. i wrote some basic things and they worked exceptionally well.

                                                                            1. 1

                                                                              See also: https://twitter.com/mnemote/status/704640555863531520

                                                                              So far I’m very impressed by how well Lua works in this kind of environment. Although I’d love a python-notebook-like editing environment too!

                                                                            2. 2

                                                                              Same things as before. I just need to get off my ass and actually do them.

                                                                              I will be switching from Express to Koa though, since Koa is the successor to it anywho.

                                                                              1. 2

                                                                                I had attended GopherConIndia in Feb, this week i’ll be following up with all the new projects and talks that were given there.

                                                                                Started using a physical notebook two weeks ago using just the daily log, it’s been pretty useful.

                                                                                @work: moving a giant C++ project to gcc 4.9 which sounds fun.

                                                                                @home: write an android application for RSS feeds in kotlin (i don’t like java that much)

                                                                                1. 1
                                                                                  1. 1

                                                                                    Actually that thread was my source of inspiration to start taking notes, I haven’t really decided on what kind of notebook I want to use.

                                                                                    I got a diary from work which I’d like to say is of A6 size which I am using right now. I also have another one that is slightly smaller that I’ll use next.

                                                                                2. 2

                                                                                  Very briefly:

                                                                                  • Work: Implementing in Ruby the use of a payment processor’s SOAP API; doing devops tasks; managing my [shrinking] team.
                                                                                  • Personal:
                                                                                    • Implementing a DHCP server in D that uses an embedded Lua interpreter to process the configuration file. Currently it decodes and dumps packets and options and the sandboxed interpreter works to build up pools, etc. I was personally and professionally disgusted with commercial IPAM “solutions” at another employer and want to see if I can do better. Will put it up on github eventually.
                                                                                    • Dabbling with Elixir.
                                                                                    • Signed up for my first organized bicycle ride of the year. 70 miles including getting to and from the ride.

                                                                                  Also, searching for my next position :)

                                                                                  1. 1

                                                                                    Implementing a DHCP server in D that uses an embedded Lua interpreter to process the configuration file. Currently it decodes and dumps packets and options and the sandboxed interpreter works to build up pools, etc. I was personally and professionally disgusted with commercial IPAM “solutions” at another employer and want to see if I can do better. Will put it up on github eventually.

                                                                                    This sounds very interesting to me. I look forward to its publication on github!

                                                                                  2. 2

                                                                                    I’m working on a WebGL RPG game, and I released the backend renderer: https://github.com/KMahoney/funscene

                                                                                    Still early days!

                                                                                    1. 2
                                                                                      1. I’ve been working on trying to familiarize myself with the nix/nixos environment by way of packaging a blog site for deployment with nix.
                                                                                      2. I just got my first pull request upstreamed to NixOS/nixpkgs, so that’s exciting.
                                                                                      3. I finally gave hakyll a try for static site generation (it’s so good).

                                                                                      Next up is trying to set up a hydra build server on a raspberry pi, but it’s midterms season so that will have to wait.

                                                                                      1. 1

                                                                                        Steering NTK towards openness, fighting TTIP, setting up database backups, learning Haskell…

                                                                                        Please help!

                                                                                        1. 1

                                                                                          Work:

                                                                                          Shoehorning things into SendGrid’s templating system that the UI doesn’t explicitly intend or allow for. Will let my team iterate faster on the copy in all sorts of user notifications and customer education emails.

                                                                                          Personal:

                                                                                          Implementing pattern matching for Ruby as a mixin module. The more I play with Elixir, the more I want to write my Ruby in a similar manner, and since it’s Ruby, I sorta-kinda-mostly can!

                                                                                          1. 1

                                                                                            Well that happened.. Whilst writing a new Peergos site for an announcement in a few weeks someone else posted us on Hacker News over the weekend and we made it to the front page. It’s generated a huge amount of interest and our signups to our demo server are still rising. It’s always nice to get positive feedback!

                                                                                            1. 1

                                                                                              Starting at a new job, learning as much mongodb as possible, this week probably reading the little mongodb book and the definitive guide by kristina chodorow, other resources are welcome

                                                                                              1. 1

                                                                                                Improving our e2e testing on an electron application. The application is a fairly complex Angular application (used to control a DNA sequencer). I’ve written jsonifier, which allows us to (I think elegantly) construct JSON objects for testing. Early stages though.