1. 31

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. 9

    Working on a C API for Rust’s regex library. See rure.h and some test examples here. Still a work in progress.

    Last week, I added Tcl and RE2 to the benchmark harness (which also includes PCRE1, PCRE2 and Oniguruma). It’s pretty cool because it lets me compare a whole bunch of regex engines under very tightly controlled micro benchmarks. You can see some of them here.

    1. 7

      Started working on a mood tracker android app for my friend, he has some health issues that need him to keep a log of his mood continuously and was using a spreadsheet for it. I am using Kotlin instead of Java and SnappyDB for the datastore.

      The android dev environment is pretty great these days even if you are not using Java. Kotlin feels great and is less verbose than java.

      1. 6

        Finished the scaffold of the final chapter for the Haskell book. Julie and I are discussing what should be a priority for me tonight. We’ve got quite a sprint if we’re to get this in print in time for LambdaConf. I will not write a book this long again.

        Spinning a few different plates with some nice people on surprises for later this year.

        Ubuntu 16.04 LTS seems nice, fixed my networking problems.

        1. 2

          Can’t wait for Haskell education to be rated “Mature”!

          1. 1

            Just bought the book, cant wait flr the final chapters to come out.

            1. 2

              Thank you!

              Re: final chapters - us too ;)

          2. 6

            I’ve put my gameboy game off for about 2 weeks now, which is unfortunate. I’m starting to lose motivation. Not entirely sure why. Actually I feel myself starting to fall into the “what’s the point of anything” pit.

            This week I’m going to implement a concurrent quicksort in JavaScript, just for practice. The only time I’ve ever done this is with C. I will probably implement a few other sort algorithms too.

            Another thing on my list is writing something simple in web assembly and JavaScript, and do a benchmark. Maybe even have someone write the same on OCaml and compile it to web assembly. My reasons for this are: familiarize myself with web assembly, see where it’s currently at, and give myself something to write about for my blog. I will probably just implement a simple bubble sort.

            In non-technology news, it’s finally sunny in this part of Canada. I’ve begun running again, but with a new goal: 5km every day. So far I’ve done 4 days (1 day break inbetween every 2 days) and my knees are killing me. Today I will be taking another break, but that 5km is already getting easier. I would like to eventually reach 10km once every 2nd day, but we’ll see.

            Have a good week everyone!

            1. 2

              My tip is to increase the training load slowly. Once you start to get problems with runner knee or ITB it’s really difficult to get rid of. Good luck with the running!

              1. 2

                Yep, running is one of those things you don’t want to go too far too fast on. Your muscles will outclass your bones/ligaments fast. Honestly the couch to 5k app should probably be followed. Get a treadmill if you can or go to the gym in the winter to keep your body in shape. Note, I live in Minnesota, I know what winter is like for running. :)

                1. 1

                  I tried with all my might to go running in the Winter. I probably went 5 times, even when it was snowing and flipping cold. It just totally shuts me down. Next Winter I am definitely going to get a gym membership or something.

                  1. 1

                    I know you said you tried with all your might but I still say do it fucking anyway. You can do it, if you really put your mind to it. Like watch that Shia LaBeouf motivational video or this https://www.youtube.com/watch?v=T7A_QUlMbvY every morning and just fucking do it. You can.

                    1. 1

                      That or if you can spring it get a treadmill. I have one at home and its a huge help.

                      I also know I can run 4 miles in -30F weather (not converting that to C as its almost at the merge point for both), so maybe I’m weird. :)

              2. 6

                I’ve decided to take up mountain biking this year, so I hope to hit a couple trails this week. Currently trying to learn how to lift my rear wheel. Out of curiosity, does anyone here know how to do this on a fork suspension bike without clipless pedals?

                1. 3

                  Pushing your weight forward from what I remember. GMBN is a really good youtube channel/network with weekly content & tutorials on mountain biking. (I watch the road biking sister channel - GCN)

                  Something like how to bunnyhop should give you some pointers I think.

                  1. 2

                    Thanks, I’ve been trying to learn the rear wheel lift as part of learning to bunny hop. The thing is, even though I am pushing my weight forward I can’t figure out how to lift the rear wheel with my feet without my feet coming off the pedals.

                    Also, thanks for the channel recommendation, I’ll check it out when I get home. :)

                    1. 3

                      (with my BMX coach hat on)

                      When learning to bunny hop / manual / endo (rear wheel off the ground) always use flat pedals - clipless pedals will develop bad habits :~)

                      The starting point is level pedals (cranks and pedals level with the ground) - with the ball of your foot over the pedal axle - as you go for the endo / manual / bunny hop for feet need to “scoop” the pedal up - so the pedals are at 30 - 40 degrees from the horizontal cranks. Then lots of practice :~) Hope that helps.

                      Sam Pilgrim has some good how-to video’s on Youtube.

                      1. 2

                        Thanks, I’ll try that when I get home. :)

                        1. 1

                          Didn’t get a chance to try this last night, hopefully it’s not too late to ask, but how do you keep the cranks from turning while you do the scoop with your feet?

                2. 4

                  Starting on a new team at $work, which basically means I get to pick off stuff day to day which I’d previously pick up in downtime between other projects. Gonna be fun >:-)

                  Achieved my (meagre) cycling goal last week of doing more than 10 miles on the bike. (Did 27 in the end.) So thankful I changed my gears from a fairly close 46/36 + 28-11 to now a much wider 50/34 + 32-11, climbing the same hills as last year in about the same time even though I’m nowhere near the same level of fitness. So nice not to be going into oxygen deprivation to get up a hill in my lowest gear. (Downside of buying a cyclocross bike, you’re expected to run up anything steep…)

                  Spent most of the weekend playing with FreeBSD on my Hetzner box. It’s similar enough but yet different to SmartOS (at least in terms of setting up Jails) that I’m mostly at home with it. The documentation is very good, I’d forgotten just how nice it is to have good docs whilst exploring something.

                  1. [Comment removed by author]

                    1. 1

                      I don’t know a lot about this area, but was checking it out a while ago, and read that EXEs packed with packers like UPX can have that issue - some anti-virus softwares wrongly detect them as malware. I think I read the same about some apps created with Delphi too, but don’t remember if the reason was mentioned.

                      What are you writing your Podcast Downloader in?

                    2. 4


                      • Cranking out revamped UI for an important section of our school counselor admin interface
                      • Putting stronger code quality safeguards in place. Sass linting, in particular.


                      • Re-reading and editing a YA horror novel I wrote a while back
                      • Looking for reviewers of the YA fantasy novel I published recently.
                        • Interested? Happy to provide a free review copy. :-)
                      1. 3

                        This week I’m learning Go with help from the book Introduction in Programming with Go.

                        1. 1

                          how are you finding it so far? i kinda like Go, have been using it for all my bots and stuff.

                          1. 1

                            i love it. it’s compiled and it has some really nice features. i like how variables are declared, name first, type second.

                        2. 3


                          • Two weeks of classes left before graduation. After five years the end is in sight.
                          • Catching up on reading missed due to a fraternity outing eating the whole weekend. Got to drive $REALLY_FAST in $NOWHERE East TX tho which was fun.


                          • Jaunt is on hold for the time being. I don’t have any immediate friction points, and am happy with the present 0.3.0-SNAPSHOT for my day to day use working on other hobby stuff. It’s not Haskell, but it’s better than stock Clojure. The last thing I want to implement before I drop 0.3.0 is an efficient reached-by analysis for the compiler. Changes in argument lists (read: type) are a common pain point for me when exploring/refactoring. It’d be awesome if the compiler could issue warnings that previously callsites have become erroneous.
                          • Hyperwave is my experiment in building a really crappy Twitter clone atop redis and is probably gonna get the most love this week. I haven’t done a whole bunch of CRUD development, so it’s interesting and educational to make myself work with a real datastore and think about implementing streams/websockets efficiently etc.
                          1. 3

                            Working on a blog post / derbycon submission on STPA and safety in the information security industry

                            Working on … other things at work.

                            Listening to the entire Prince studio discography in order.

                            1. 3

                              Getting ready to move to the UK at the end of the week. Have my visa and plane tickets sorted out, now packing and trying to figure out what other bureaucracy I need to take care of. I think applying for a National Insurance number and a bank account are the next two things to do once I arrive. Apparently there’s some kind of catch-22 with needing proof of address (utility bills, etc.) to open a bank account, and needing a bank account to do various other things (get paid, rent a place, etc.), so we’ll see how that goes. Then after that it’s looking for a place to live.

                              As far as activities other than moving. An expanded version of a blog post I wrote last year about the patent on the videogame Tapper was accepted as a conference paper, so I need to polish the final version of that. And for a new project I’m investigating scaling curves of various standard algorithms like monte carlo tree search (MCTS) on the General Video Game AI Competition corpus of 62 arcade-style games. I’ve gotten interested recently in not just absolute performance, but things like scaling with CPU time, ratios between algorithms, etc. Both to learn something about the algorithms, but possibly also the games; a hypothesis is that relative profiles of algorithm performance can tell you something qualitative about games, giving you a lens to look at what’s different about the challenge presented by different games.

                              1. 3

                                Apparently there’s some kind of catch-22 with needing proof of address (utility bills, etc.) to open a bank account, and needing a bank account to do various other things (get paid, rent a place, etc.), so we’ll see how that goes.

                                I had that exact scenario when I moved to HK a few years back. The bank was very used to it though, and just set my home address to be my office. Since you have a job, I don’t expect it to be a problem.

                                1. 1

                                  That’s good to hear. I have a colleague’s address I can use to receive mail, but I’d heard some banks want proof that it’s really your address, like a formal rental contract or a utility bill with your name on it. I suppose if that happens I’ll just try another bank.

                                2. 2

                                  Congratulations, and good luck!

                                3. 3

                                  Work: picked up a part-time consultation contract. Looking for a fulltime Rails mid-level position. Willing to relocate.

                                  Otherwise, hacking away at elisp and trying to build a ruby + org-mode app that suits my PIM needs.

                                  1. 2


                                    • More dissertation writing. I’m happy enough with it to let people read it if they want to, besides, there is still two weeks until hand in, so I would have time to make changes too ;) I’ve had my dissertation looked over by a coursemate, and have reviewed theirs in return, which was a fantastic exercise; critiquing another’s work made me realise what kind of mistakes I’ve been making.
                                    • I’ve been doing an interesting piece of coursework about methods for parallelising the computation of solutions to partial differential equations. In short, the Gauss-Seidel is hard to parallelise, since each iteration of the algorithm depends directly on the previous one, so you can split the work for each iteration over many threads, but all the threads need to sync at the end of each iteration (this is slow). I’ve been looking at how asynchronous methods (where threads don’t sync on every iteration) can be used to sacrifice determinicity for convergence speed.


                                    • I installed an atom-optimised kernel on my Acer Aspire One in the hope of making it a little faster (plus I wanted to try out BF Scheduler at the same time). It seems to make a small positive difference, but I’ve not ran any benchmarks.
                                    • I’ve been hitting the gym (a mix of weights and cardio) every day (with occasional rest days) for a few months now and am starting to see an effect physically. Mentally, it’s had an incredible impact on my work output and at reducing stress levels :)
                                    1. 2

                                      Not anything concrete, but I’ve been looking for excuses to use neural networks or machine learning in a chess context. Some use cases:

                                      • Using a db of games, try to group players with a similar “style” of playing.

                                      • Try to classify games as “interesting” or “not interesting”, definition of “interesting” to be defined :)

                                      • Using some sort of training, try to “learn” the sort of positions where someone is more error prone

                                      • More ideas appreciated

                                      Any links / similar ideas / thoughts appreciated.

                                      1. 2

                                        $work: We are closing due to an alleged software patent infringement and we do not have the capital for defense. That’s what you get for challenging the big boys…really a low blow.

                                        $home: Updating my resume and looking for a remote gig. Working on a side project to refresh my programming skills as I was in a management / make this damn thing faster role for the last year. My son is getting so big, its amazing how fast they grow.

                                        1. 2

                                          Preparing for our first public talk on Peergos, this week at squatconf. The slides are here if anyone is interested. Should be a fun conference!

                                          1. 2

                                            This week is finals week, so I’ve got that (1 exam and 1 project), and a bunch of grading once the prof I TA for gives me the rubrics.

                                            The ASONAM paper deadline also got moved to this Friday, so I’m working more on our submission to that conference as well.

                                            1. 2

                                              HOME I’ve been asked to potentially start doing some “after-hours” contracting work. This is my first time getting into this and I’m a little worried. Questions like, “how much am I worth per hour?” are nagging me and I don’t really know how to figure that out.

                                              WORK Nothing exciting. I’ve spent the past couple of days working on a Cisco ASA. I really have very little networking experience so it’s a lot of learning the hard way.

                                              1. 1

                                                The usual “consultant” rate is thrice your salary rate.

                                                1. 1

                                                  Setting your rates takes a bit of trial and error. Since you’re doing it in your spare time I would go for a higher rate unless you really need the extra cash.

                                                2. 2

                                                  Still working on NeuralObjects, our new open source Machine Learning / Analytics as a Service offering. Over the last week I did a lot of work on the UI for signing up and creating environments. What I’ll be doing this week is finishing up the wizard for configuring a new environments, and hopefully test the full end-to-end flow of “sign up as a customer, create an environment, train a model, make some predictions”.

                                                  Beyond that, the TODO list still includes doing Stripe integration, figuring out pricing, writing documentation / tutorials / blog posts, integrating Candlepin, and getting Google Analytics setup. I also want to integrate the customer registration stuff with the main Fogbeam CRM system.

                                                  Looking further out, we need to get things setup so you we can deploy TensorFlow1 and other packages. We also want to offer more than just spark/hadoop clusters, and we’ll be looking at making MPI clusters part of the offering as well. One specific thing I’ll be looking into, is making it an option to provision a cluster running MPI with R + R/MPI2 installed, for people who want to use R and MPI. Depending on how far down this path we go, we may look at using a provider that supports high speed interconnects like Infinband.

                                                  We’ll also be looking into whether or not it makes sense to introduce something like Apache Taverna1 into the stack.

                                                  Another option we might explore, is defining a IoT specific environment, add “baked in” support for MQTT and the like, and offer something that caters specifically to IoT analytics.

                                                  When it’s all done, we’re going to have a really nice setup that makes it pretty painless to provision environments for doing a variety of machine learning / analytics tasks, and then use APIs to drive the entire process. We’ll also have Apache Zeppelin4 configured for doing interactive and collaborative exploration of data in the environment.

                                                  1. 2

                                                    I start my new gig on Monday, so this is my last week at home with the baby. So I’m going to be working on getting her to say “dada” more. I also have a list as long as my arm of administrivia I need to address before our wedding in June (we do things backwards). I’m also getting a new NixOS install working in a VM, as that’s what I’ll probably be living in for work once it starts up.

                                                    1. 1

                                                      For my JiraFS, starting to get a handle of FUSE, continued working on my Jira client library to expose more properties as I go. Got an early prototype of grepping through descriptions from the command line, I was quite overjoyed. This week, I expect to expose summaries, assignees, and more fields as files. Comments as a directory. I don’t know how to do the top level organization. One mount point per Jira search query? Not sure yet.

                                                      Command-line companion thing just got EDITOR support. I intend to add STDIN support for stuff soon. I’d also like it if at some point I could get it to swallow its own output so you could chain calls, especially in the case where you’d like to do batch jobs on tasks, although that’s low on the list.

                                                      1. 1

                                                        Continuing to work on Oak! I’ve revamped the API a bit in light of an oak-todomvc example which helped me refine the use, get schema-based checking in place, and begin to define how global “oracle” state works. So far it’s been a pretty nice experience and I’m eager to keep building tools to make working with the system easier and easier.

                                                        Next steps will be continuing to refine the Oracle system to include some common patterns like single-atom data and more complex datascript and API subscription workflows. The goal with these will be to put the oracle API through a few tests to see if what is there now is comprehensive.

                                                        1. 1

                                                          I’m building out a set of microservices in Servant fronted by a (nodejs for now) GraphQL server (and the associated Relay/React frontend) for a new product aimed at tracking olympic weightlifting. I finished a users service yesterday and have found Servant quite nice to work with. Today I’m writing the GraphQL mutations for user signup and later this week I’ll set up Kong for API management and OAuth, etc.

                                                          Otherwise, I’m in-between jobs right now looking mainly for remote positions. I’m doing a little consulting again and considering going back to doing it full time.

                                                          1. 1

                                                            At work: Finishing up a big Angular related ticket. I don’t really like the framework (maybe it’s because I don’t have much front-end experience) and I’m slowly removing logic from the Angular code to plain JavaScript.

                                                            Home: Not much. I just moved to a new place and I’m still figuring out what I need to do.

                                                            1. 1

                                                              I have 4 latent libraries living inside my largest project at work. Spent the weekend, and will continue this week, to extract them and publish them to Rubygems.

                                                              I tend to go the extra mile on testing library code. Good coverage feels much more achievable due to smaller size. Plus it’s for consumption by other devs, and I definitely benefit from a perception of peer pressure (even if no one else ever uses it!). Furthermore, our team is growing and I’d rather some library-esque code be truly stabilized, patterns of use be codified and then properly extracted. That, versus continuing to use it in some semi-abstracted state with it not-quite-fully documented because a quarter of it is still mixed in with some business logic.

                                                              1. 1

                                                                Working on fixing up a chess library I wrote a while back and writing a front-end for it so I can play with my friends. The end goal is to have a site where you can play star-trek chess or other chess derivatives. If I can get it working pretty well in the next week or so, I might sign up for a talk at pyohio about it. https://github.com/theovoss/Chess

                                                                1. 1

                                                                  I’m continuing trying to teach myself about web performance testing. It’s weird that there are tons of blog posts and books about unit testing, integration testing, etc, but almost nothing I can find about performance. Anyway, the big breakthrough last week was a one line change. We were already using New Relic for monitoring, and just updating from a year-old version of their node library gave me a bunch of more detailed measurements that more accurately detail where our app spends most of its time.

                                                                  Outside work, I’m still prepping for my talk at the local WebGL meetup. Last year I read Robert McKee’s book about screenwriting, Story, so I’m curious to see if applying some of those ideas to my presentation makes a more compelling talk.

                                                                  1. 2

                                                                    Might be worth checking out Gatling for web performance testing. I’ve had good experience with it.

                                                                    1. 1

                                                                      Thanks for the recommendation, I’ll have a look!

                                                                  2. 1

                                                                    Work: I’m on a short week and I got a ton of stuff piled on me for the end of day on Thursday. Not excited about it. A miscommunication ended up moving timelines up a full 2 weeks.

                                                                    Home: So much weeding. I need to clean up the pool area, too.