1. 16

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

Be descriptive, and don’t hesitate to ask for help!


  2. 8

    Hopefully shipping another internal build of Swift for z/OS (a.k.a. Swift on the mainframe). DLL support is on its way.

    It’s been pretty much nose-to-the-grindstone getting this to work. From a technical standpoint, it’s fascinating. The object format used on the mainframe is much different than ELF/Mach-O, and Swift’s runtime tends to take advantage of the ELF/Mach-O features. I’m a little amazed that it’s actually working. There’s still a long way to go (EBCDIC, need I say more?) but making the proverbial square peg fit in the round hole is certainly engaging. I’m told that someone may actually use it. ;)

    Hopefully I’ll have a chance to write up some of the technical details soon. One of my co-workers says that what we’ve done to make data relocations work is worthy of at least a tech report.

    I also got a Surface Book and have been tinkering with the Windows Subsystem for Linux. Never thought I’d say something like that.

    1. 6

      work: iOS build automation

      home: all mechanical keyboard tinkering stuff…

      • Working on designing custom cherry mx sliders (the part that moves up and down and pushes against the leaf spring in a switch). The jailhouse blue mod on my mechanical keyboard is very satisfying but the actuation point feels far too low.
      • Searching for ways to have custom rubber o-rings manufactured since the 1.5mm blue rings sold by WASD that I use in the mod can slip out when cut in half to fit, a half-circumference version would be real nice.
      • Hunting down zealencio silencing clips, to see how the MX-Brown/Zealio style switch + zealencio combo stacks up against my mod
      1. 1

        I’m guessing that o-ring in the switch primarily for noise reduction on key release ala a Topre-S switch?

        If so I can ask why do that with MX Blues, whose calling card is literally making noise?

        1. [Comment removed by author]

          1. 1

            Ah, nevermind, I was mis-interpreting the image. I thought that based on the positioning of the o-ring (interior to the switch rather than between the keycap and stem) was intended to emulate a silenced Topre switch which silences the click on key-return rather than silencing bottoming out.

            Now taking a closer look at an animation of the MX Blue switch I see that it wouldn’t quite do that.

            1. 3

              Cherry mx silencing clips actually function more similarly to dental band topre mods than anything, with the added benefit of bottom-out dampening which rubber dome switches have by nature.

            2. 1

              I’ve found that after regular use, some of the o-rings have come loose, which is a huge PITA since my current plate isn’t cut to let me remove the switch-top without desoldering. Did you find any trick to get them to stay put better?

            3. 1

              I use a blue switch because the slider is separate from the stem, and I was looking to replicate as big of a tactile bump as Matias Quiet Clicks with a cherry switch with at least a decent amount of silencing (the tactile bump is also most pronounced among cherry switches on the clicky variants). As /u/hga said, bottoming out (and the ‘actuation’ click) are silenced, although working to silence the key-return noise is up on my priority list. This mod also makes the keys feel more springy, without raising the actuation force too much.

              1. [Comment removed by author]

                1. 2

                  The WASD red rings are substantially less thick than the blue rings. Once I’m home and take apart a switch, I can send what my method looks like, and where I get friction/issues

          2. 5

            I obsessed a bit with the Burning Ship Fractal, and managed to get this beauty: http://i.imgur.com/E3kfD0R.jpg (colorized: http://imgur.com/a/B8XG1). Pretty cool for a wall poster if you ask me, I generated a bunch of sections of this fractal, going to build a mural sometime :)

            1. 5

              Advent of Code is happening, and I need to learn F# for a new job. So I’m having a lot of fun with that.


              1. 5

                Last week I installed FreeBSD on my desktop since I’m getting a little tired of the linux ecosystem. Besides for having trouble getting the sound to work it all went swell.

                I’m still working on my yesod app, going a little slower than expected, but trudging along just fine. I need to integrate stripe for payment processing. Here’s the marketing splash page for those interested; www.oneshotartists.ca

                And unrelated to programming, I’ve also starte skiing again! Which is great. Leaving for the slopes now as I have to teach one of the children in our “Montagne pour Tous” program (Children and adults with various physical or mental handicaps) in a few hours.

                1. 2

                  How’s Chrome working for you? When I ran FreeBSD a few months ago, I was having issues with Chrome crashing on certain websites.

                  1. 2

                    Havent tried it yet, I almost always use firefox (vimperator/pentadactyl), I only ever use chrome for testing discrepancies in css and watching netflix.

                2. 5

                  I’ve just been named HIPAA compliance officer at my work, so it looks like I’ll become the most hated person in the office pretty soon.

                  Also, I am trying to wrap my head around unikernels with Project Unik. I tried the MirageOS route with OCaml, but that looks like it will require more of my undivided attention than I am able to give at the moment.

                  1. 5
                    • elm-lint, a project to provide linting for Elm. It’s written in Elm, then distributed via npm. It’s still got a long way to go, since it will involve parsing Elm entirely
                    • elm-doc-test, a project which brings doc tests to Elm in a somewhat sensible fashion. I’m already using it in a few of my projects, like elm-lint, and for the most part it’s great. There’s a few minor tweaks that need to be done, and a bunch of design decisions.
                    • advent of code solutions in Idris and Elm. I’m compiling Idris to JS, then using Elm as a frontend to the logic of the Idris solution. Elm for the UI, Idris for the meat and bones. It’s working out pretty nicely so far.
                    • elm-static-html, which allows you to generate static HTML from given Elm code. I have an older version called elm-static-site, but that only worked with 0.16 and before. It was also not distributed by npm, so sadly no Elm devs really used it since they fear Python. Right now I’m adding the ability to send JSON to it
                    1. 5

                      Setting up an OpenVPN server for the first time.

                      Feeling slightly intimidated by it, so if anyone with experience has any tips or gotchas to share, they are appreciated.

                      1. 3

                        Anything in particular you’re stuck with/unsure about?

                        BTW, if you’re not tied to OpenVPN I’ve heard good things about SoftEther. Streisand may be a useful starting point if you want something “in a box”.

                        1. 2

                          No particular trouble yet. However, a few friends whom I look up to in sysadmin/ops terms expressed significant frustration when working with it in the past. I am not sure if they were doing something unique, or something simple.

                          All I’m trying to do is have the simplest VPN setup that will allow Windows Remote Desktop. Team members with weak-spec’d or mid-spec’d laptops need to run occasional long-running jobs (with a GUI-based program) on a much more powerful machine.

                          Thanks for the recommendation on SoftEther. I might try that out first. So far I’d just been preparing by reading a few separate guides and manuals.

                      2. [Comment removed by author]

                        1. 3

                          That backup system you describe exists (or very close). I’ve been using camlistore for awhile synchronised between local and s3. Bit of a learning curve unfortunately, still somewhat early, but I’ve found it good and my backups restore successfully.

                          1. [Comment removed by author]

                            1. 2

                              It took me a few tries to get it to stick - between docs needing work, the difference between ‘simple’ and ‘complex’ configuration files, and the different meaning of the different places you can sync data to.

                              It also implements a few things I don’t use (e.g. file publishing), which adds complexity - but having spent some time in the code that complexity is well and truly separated from the rest of the app.

                              If it turns out not to suit you, I’d have some professional curiosity RE what doesn’t fit.

                              1. [Comment removed by author]

                                1. [Comment removed by author]

                        2. 4

                          I’m setting up a build environment for the last feature (data export) for a dead-end project that will get scrapped soon. I’m using nix which allows me to express everything (including android sdk, ndk, various native dependencies) in a declarative manner. This allows me to reproduce the environment anywhere.

                          Private, I’m hacking on a 3D engine using OpenGL 4.1 in my free time. Implementing the Component-Entity-System pattern was quite fun (and enlightening), but right now I’m stuck as I don’t really know what to do with the engine. A simple Pong or Chess sounds boring, but everything else is very complex and I’m not the most creative guy. Current code is at Github (ignore the name, it was literally the first thing that came to my mind when I created the github repo).

                          1. 2

                            Asteroids clone you gradually add complex collision and effecrs to. A useful tool with GUI that looks cool and animated. Easiest & most fun probably be to look up Artifical Life or Cellular Automata simulators like Conway’s. Then clone one and/or add some new variables in there. Usually just different color blocks on a grid if the designers arent focused on visuals. Lots of fun, emergent behavior.

                          2. 3

                            Carrying on with the iOS prototypes I’ve been tinkering with (at what point do they become apps? One has an icon and everything.) Also had to change the brakes on the car, finally bit the bullet and done it myself rather than paying my friendly mechanic to do it. Fairly straightforward, just required a little more brute force than I was expecting.

                            We rewired the office last week (~16 patch panels of ports to connect), and messing around with the switch/router configs for that gave me the networking itch again, so I’m probably going to segregate (vlans/firewall) my home network properly including a guest wifi network & possibly time-limiting the kids on the wifi.

                            1. 3

                              I’m finishing up the last finishing touches on our registration survey. We’re enrolling a thousand Kenyan farmers in a pilot program to make fertilizer and seed loans to them on credit. The app is one of the really vital pieces of this since we need to be collecting very high quality data to be able to base our credit prediction models on it.

                              I’m also realizing how great it would be to have another couple of engineers on my team and realizing that I’ve been neglecting hiring. Right now we’re super remote friendly, but I’d love to hire some folks in a similar timezone to Nairobi/Berlin. If anyone could introduce me to some nice developers in Germany/Czech Republic I’d love to make some friends there.

                              1. 3

                                I’ve dropped off these weekly threads purely because I rarely get the time to do much interesting work atm. But this weekend I will be taking part in Ludum Dare (a global game 48hr game jam) so I’ve got that to look forward to! Anyone else here taking part?

                                I’ve dabbled with various game engines/frameworks in the past, but have decided this time to stick to phaser because it’s nice and easy to distribute browser-based games, and I can use my usual stack of tools for developing (on linux) - rather than having to deal with Unity on windows or mac.

                                1. 3

                                  I’m off work for the week so I’ve started working through Dasgupta’s Algorithms. My math is pretty terrible so progress has been much slower that I expected :(

                                  1. 2
                                    • Built a Django app to manage Secret Santa - Github
                                    • What does Reddit India like to read? - link
                                    1. 2

                                      Still hacking away at my Python 3-based roguelike, using BearLibTerminal. Got the basics figured out, but now I’m considering switching to an Entity-Component-System architecture, because they’re all the rage on /r/roguelikedev and I wanna be like the cool kids.

                                      1. 2

                                        I’d like to make some improvements and documentation for my Rx-based Phoenix channel client. The main thing I changed since last week was that it used to accept a string for the websocket endpoint to connect to, now it accepts an IObservable<string>. Here’s the source for it: https://github.com/bratsche/kastchei

                                        1. 2


                                          • Set up A/B testing in our web app
                                          • Improve the load performance of our web app (note to company: don’t make us write a SPA and then ask to make it as fast as the static website it replaced)


                                          • Learning Haskell through Chris Allen’s book and going to my weekly study group
                                          • Doing Advent of Code in Elixir
                                          • Reading Designing for Scalability with Erlang/OTP
                                          • Reading Montaillou when I get sick of looking at computers
                                          1. 2

                                            I’ve been playing around with micro and was thinking of making some plugins for it (if I can, that is).

                                            Still playing around with my PocketCHIP. Didn’t install void on it but I was thinking about alpine instead, idk. I also replaced my laptop (Acer c720) with a new screen because apparently I broke it communting to and from my girlfriend’s house.

                                            Other than that, I need to get back into the just of actually making stuff. I mean, I program my guild’s discord bot but that’s about it. I was thinking about re-doing that from scratch and throw myself in the deep end but we will see.

                                            1. 2

                                              With some friends; a quick casual multi-player gaming site. If you remember OMGPOP, something like that.

                                              I no longer fear MongoDB, though it’s hard to distinguish between JavaScript language feature and bad fever dream.

                                              1. 2
                                                • Having fun at work: implementing IPSec for overlay networks and fixing IPSec related bugs in the Linux kernel.
                                                • Learning Rust at home.
                                                1. 2

                                                  This week is mostly Yak shaving: upgrading a project to Django 1.8 (from Django 1.7), as a precursor to upgrading it to Celery 4, so I can migrate it to use a SQS broker.