1. 19

Feel free to tell what you plan on doing this weekend and even ask for help or feedback.

Please keep in mind it’s more than OK to do nothing at all too!

  1. 13

    Next monday I start at my new job, and in a month I take the JLPT N5 (Japanese Language Proficiency Test), started studying a month and a half ago and it’s been an amazing experience. I’ll spend most of my time studying japanese this week before I am too busy with my new job.

    1. 5

      That’s awesome! I recently started studying, with a dream to get to N1 before I die…

      What is your study plan?

      1. 5

        I’m using JLTP more as a motivation than a goal, my objective is to be able to go to Japan and be able to have a normal conversation with just about everyone.

        Right now what I’m doing is vocabulary and kanji learning in the morning and grammar in the afternoon. I have a teacher at preply.com (really recommended), will not disclose the teacher here but if you are interested I can send it to you in a PM. She teaches me grammar basics and we have conversation practice. Then I got the “Dictionary of basic japanese grammar” and some other books and I deep dive into grammar topics myself in the afternoons while reading japanese texts, practicing writing and listening to japanese radio/tv.

    2. 12

      We cloned Faceapp! https://twitter.com/theshawwn/status/1182208124117307392

      Our app is called Faceweave. It’s similar to Faceapp in that you can make yourself look older or younger, but the key distinction is that you can apply multiple effects simultaneously. You use sliders and machine learning to morph your face over time.

      Here’s an example of making James Bond from N64 Goldeneye: https://twitter.com/theshawwn/status/1185272469046939648

      You can see the whole editing process in that video. It’s very fast.

      It uses StyleGAN with latent vectors. That’s machine learning mumbo jumbo for “holy shit this looks cool.” There are some neat unexpected discoveries; for example, if you set “baldness” to -300%, it gives you a mullet! Which kinda makes sense. https://twitter.com/theshawwn/status/1178167072448233472

      I have also experimented with a skin tone classifier. I’m trying to be sensitive with this work for obvious reasons, but I’m hoping that if it looks good enough, people will be ok with it. Here’s an example of making someone look asian: https://twitter.com/theshawwn/status/1184074334186414080

      The skin tone classifier was my first experience with underrepresentation in machine learning. Black people are underrepresented in the FFHQ dataset (which is what our StyleGAN model was trained on), and hence it was much harder to come up with a good black skin tone modifier. Asian was comparatively easy. We’re lucky our product is visual, because we could see immediately that the black skin tone wasn’t working as well as the asian skin tone. Usually when you run into bias in machine learning, you only discover it after the fact. I’d like to go into more detail with our experiences correcting for this bias.

      Our app is built using Expo, and most of the work was done by the illustrious Emily Kolar. We were surprised to find that ~90% of our users are using Android! For every 9 people who wanted to try the alpha, only 1 of them were on iOS. So React Native ended up being key for our product.

      The backend is worth doing a writeup about too. I wrote a custom Lisp implementation in Python, which I’ve been calling Pymen (it’s a fork of Lumen). This turned out to be very important for rapid prototyping. I got the initial app working on a simple webpage using canvas and basic javascript, and then the unmodified server was sufficient to power our react native app. We basically send raw code expressions to the server. This gives us the ability to do things like “add two slider effects together” by sending a form like (+ (* weight1 slider1) (* weight2 slider2)), which gets compiled to weight1*slider1 + weight2*slider2 and passed to python’s exec function. Since the images are based on PIL with numpy, the math ends up very natural.

      Most of our alpha testers came from the dota 2 subreddit. They turned out to be very interested in transforming dota 2 heroes into “real life” people! https://www.reddit.com/r/DotA2/comments/dfv0z3/im_making_a_neural_network_photo_editor_i_used_it/

      We have a discord for FaceWeave too, if you want to come hang out or try out the alpha on Android: https://discord.gg/xsbxKPK

      This week I’ll be getting a TestFlight build up for our iOS users, and setting up another Google Compute Engine server.

      1. 7

        Putting the CWL language server on PyPi.

        Finishing up the conditionals proposal for CWL

        1. 3

          VERY cool! What do you see as some good uses for CWL? Do you see folks using it mainly for data transformation stuff, building complex infrastructure, or complex process control?

          1. 3

            Hi @feoh! Thanks for letting me practice the elevator pitch :)

            CWL is good when you have a non-interactive workflow* which you want to share with others in a way they can easily reuse it, replicate your results and incorporate your workflow in their own workflows. It is good when you want to provide a workflow in a machine parsable way that makes it easier to audit workflows and determine what is inside them and what steps they entail (say if you are submitting to the FDA)

            The use case I’m most familiar with is data transformation. The community I most interact with are bioinformaticians. CWL is more annoying to write than Bash scripts, but is more portable, more durable and more inspectable. However, anything that requires these properties would benefit from CWL.

            *You can have interactive steps (say by running a process that communicates with a client over the network for instructions before proceeding) but it isn’t what CWL was designed for and not its strong suite

            1. 2

              Ah i can envision this coming in super handy for bio-informatics. I worked with the Broad Institute some years ago and there was a tremendous amount of data management and transformation happening for their sequencing and analysis platform.

              Thanks for the explanation!

        2. 6

          Continuing my “do a thing and write about it” method of making myself actually finish my projects.

          Last week I accidentally started writing a compiler (to Lua) for my pet language, which turned into a yak shave in the form of an interpreter written in itself. It’s only 250 lines (with comments) for the core loop, which is nice. This week I’ll keep working on it and start writing about it.

          Although, I dug out Summoner (PS2) over the weekend, so I’m not going to do much else, realistically.

          1. 6

            At LISA19 this week.

            1. 5

              Rewriting a big sip.js event handler closure thing as a far simpler React+Redux component.

              Setting up a blog of some kind.

              Getting more involved with my understanding of cjdns.

              1. 5

                More go training stuff, writing out the first lesson today and hopefully more over the week. Meetings willing.

                Edit: here’s a draft of lesson 1: https://xena.greedo.xeserv.us/articles/gotraining/1.md what did I mess up?

                1. 5

                  I FINALLY finished the 100 days of code with Python course a couple weeks back.

                  Now I’m just doing a bunch of small coding exercises through PyBites and thinking about what I want to do for a side project going forward.

                  Did a lot of vague thinking about the work I did on my final course project with a RESTful game using Flask and SQLAlchemy, wondering if maybe that could be used to create some kind of distributed game or interactive art project etc but got lost in the weeds. Not giving up on that yet but I should probably set my sights a bit more narrowly at first :)

                  1. 4

                    A quick book on Facebook’s Libra. “Quick” means it might take less than a year. So far I have 20k words in disjointed lumps of a few paragraphs, in several loose categories. I took a week off work last week and literally spent 14 hours/day reading absolutely all the relevant press coverage of Libra (FT, WSJ, NYT, Reuters, Bloomberg).

                    it’s 0% a technology story and 100% a corporate hubris story

                    working title: “Libra Unbalanced: How Facebook’s blockchain dream crashed and burned - and what happens next”

                    arguably it’s too early to wrap it up as a story, but then there have been precisely two mainstream cryptocurrency stories this year, and this is the bigger one. (The other is QuadrigaCX.)

                    next hard bit: ! have to write a few thousand original words on how “bank the unbanked” can only functionally mean “take over small economies entirely”, which means reading several books’ worth of text so I know what the hell I’m talking about - at the stage where 1 book -> 3 paragraphs

                    1. 4


                      A new quarter starts next week, finishing up a lot of medium-term planning, re-evaluating certain metrics (e.g. “is this the right metric to aim for?”), roadmapping, and trying not to distract my team in the process.

                      Project-wise, we’ve begun a consolidation of plans from our various experiments in enterprise pricing. Grouped them by common aspects/needs, and now bringing them into the platform, one group at a time, so that account managers don’t have to derive invoices from a bunch of reports.


                      I split the rhizomes of my Peace Lily apart this weekend, and I had so many that I ran out of pots and soil to re-plant them all! Painted some pots over the weekend, and this afternoon I’ll re-pot the ones that are still sitting out in a jug of water.

                      Also overhauling a lecture I give at a university once a year. It’s been easy to roll through the same content over and over, but six years on, I feel the need for a more substantial update.

                      1. 4

                        Ordinary work.

                        Studying for the “Google Cloud Certified Professional Cloud Security Engineer” (I copy pasted that, hopefully they don’t ask about on the exam.)

                        1. 4

                          “Cloud” really occurs twice in that certification title?

                          1. 3

                            Good catch : )

                            I’m actually not sure, copied it from the search results preview of an official Google page after the page timed out.

                            Tried again now and got “Professional Cloud Security Engineer” on one Google site, possibly the same.

                            I’m fairly certain that I got the copy paste right so based on this and other experiences I suspect they have some kind of funny summarizer sitting there messing up my search results.

                            Edit: after first deciding to not care I still went back and checked, here’s the page:


                            There’s no mention of the word “certified” on that page so either Google is doing some black hat seo on itself, or the excerpt is stale or there’s a snag there.

                            1. 2

                              So parse it as ‘Professional Cloud Security Engineer’ certified on ‘Google Cloud’?

                              Either way - good luck with the exam!

                              1. 2


                            2. 2

                              I guess it makes sense? <Brand/Product Area>

                          2. 4

                            Adding Reward Points Redemptions to the line items of an order to send over to AvaTax. If any one has any Magento 2 experience in this particular area, hit me up.

                            Also working on a massive JS refactor of a small “serverless” service we provide.

                            Editing a lot of podcasts, getting ready for the Hot Docs Podcast Festival next week in Toronto!

                            1. 3

                              Finished a landing page for my task management app https://pomoday.com

                              Still working on adding more feature to the actual app and improving the landing page before launch :D

                              1. 1

                                Also, please try it out, any feedback would be very appreciated!

                              2. 3
                                • It looks like I accidentally started organizing a Plan 9 hackathon.
                                • Improving my writing.
                                • Trying to get back to hacking on some OpenBSD code.
                                • Working on a rewrite of the Myrddin parser, so that the information for type inference is available in a cleaner manner.
                                • Reviewing the improvements and rewrite of the Myrddin pattern matcher that a contributor sent in.
                                • Trying to decide what my job hunt will look like. (Currently, I’m not searching particularly hard, but I’m open to talk.)
                                1. 3

                                  Working on implementing sound support in my NES emulator. I completely lack basic DSP knowledge, so this is foreign territory, but I’ve got something that sounds kinda sorta right at the moment.

                                  Otherwise, I’m also researching other gaming consoles for potential next emulator project…

                                  1. 3

                                    I (finally) finished the Jenkins pipeline changes I was tied up with, and now I’m finishing up a few changes to the debug dumper in our Android app.

                                    Outside of work, I’m still playing with Lisp + GDAL + Blend2D.

                                    Also looking into building a new computer. My 2011 iMac hard drive was dying, so the last few months I’ve been using an AMD Phenom 2 I built in 2009, and it’s fast enough, but limited to 8Gb of RAM, which is (apparently) not enough for Firefox. Thinking about one of the newer AMD processors, 32 GB RAM, a $500-$1000 graphics card, and an NVME hard drive.

                                    1. 3

                                      I want to finalize SRFI-167 and SRFI-168. Ported the code to Chibi Scheme and improved the (sample) in-memory implementation. I preparing an interview. Also I will probably work on peer-to-peer. Or maybe do improve my function-based reactjs state manager https://github.com/amirouche/ff.js

                                      1. 3

                                        Studying for a magento certification

                                        1. 1

                                          I have been reading some material from swiftotter for this, recommended from coworkers. anyone knows any other nice source for study guides/material?

                                        2. 3

                                          I had a great time and learned a whole bunch at NixCon over the weekend, so I’m spending time now bumping versions of nixpkgs and GHC in my projects, and generally improving all the infrastructure stuff.

                                          1. 3

                                            Work: prepping configuration files for a test flight later this week, and probably searching for annoying hardware bugs in the process.

                                            Non-work: if I have time and energy, learning more Vulkan in Rust with the rendy crate. It would be nice to actually get a reusable graphics library written someday.

                                            1. 3

                                              Trying to bring up website analytics collection into clickhouse database. As one page load generate 30-50 events, load and performance should be considered. At first, going to do it directly, without message broker in between web backend and clickhouse. Tried to write simulated events, was impressed of compression abilities of clickhouse — sometimes one event took less than 1 byte!

                                              1. 3

                                                A privacy-focused analytics plugin for WordPress.

                                                I’m the original author of Fathom, a reasonably popular (but still young-ish) self-hosted open-source analytics dashboard using Go but have since realised that for an enormous amount of low- to medium-traffic websites, PHP will do just fine, especially with the right constraints (of which most happen to play well with privacy anyway) and data retention defaults. Hoping to release a first version and write a bit more about it in a few weeks.

                                                1. 1

                                                  Speaking as a language snob who does devops part time for fun, a Go service is far easier to set up than a PHP one unless you’re using PHP already.

                                                  1. 1

                                                    Yes, agreed, that’s why I was building it on top of WordPress.

                                                2. 3

                                                  Adding oauth1 support for JIRA API in Yetibot. JIRA API is a beast.

                                                  1. 2

                                                    Switching the tool that generates xcode project-files from phoenx to tuist.io

                                                    1. 2

                                                      I’m practicing building stuff with code. I’ve spent the last year analyzing/improving/fixing other people’s code and haven’t gotten to write hardly any, so I feel horribly out of practice.

                                                      1. 2

                                                        Digging through a bunch of data pipeline and other code to understand how it works. It’s a mix of Kotlin, Java, Python, and multiple infrastructure/build file scripts, so this should be fun.

                                                        1. 2

                                                          We’re shipping early this sprint so I have time to clear some of our quality of life tickets like fixing our project scaffolding and updating documentation to reflect actual functionality rather than expected