1. 22

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

    Early week, I’m syncing up with @silentbicycle and giving a wildly experimental talk on cache invalidation and naming things. The first draft had a long tangent into Talmudic exegesis I stripped out in favor of a rant about wittgenstein.

    I’ve finally officially announced the business. Later week is all about sending feelers to a few potential clients and writing marketing material (mostly formal methods demos).

    Also I’m in a Prolog class that starts Friday. Not sure if I’ll have the time, but hoping it’s fun.

    1. 2

      Please post the talk when it’s out, sounds fascinating!

      1. 1

        I’ve finally officially announced the business.

        Good luck, buddy! Hope you get the stuff mainstream! :)

      2. 11

        Looks like I will be migrating off from Github onto something self hosted, for peace of mind.

        1. 2

          Yea, looks like I need to do that too.

          1. 1

            Until now I treated self-hosting with “well I know it’s best to control my own files and code, but I can probably vaguely trust BigCompanies.”

            Thanks to the acquisition I finally got off my ass and got a DO droplet to use as my source of truth (didn’t take long to set up at all).

            Gitlab is my primary mirror. I will keep GitHub as a source of truth for a handful of projects - namely the ones with contributions from other developers.

            1. 1

              Even though MIcrosoft hasn’t done anything egregious to irk me in about 8 years, I will also be doing that.

            2. 8

              Maybe I should be talking more about Mercurial this week.

              1. 7

                This week on my free time (and probably on the following as well), I will try to build a WebSub Hub using rust in order to practice and improve my skills on this language.

                1. 6

                  BSDCan!

                  1. 2

                    I was on my way to BSDCant, but it turns out they’ve cancelled it. There’s nothing BSD Can’t do!

                    Enjoy!

                    PS: (I made this joke on Mastodon as well, with similar groans for responses).

                  2. 6

                    This week I’m:

                    • Sorting out talk and speaker announcements for 44CON to go live on Wednesday
                    • At Infosecurity Europe’s Geek Street doing soldering workshops
                    • At BSides London on Wednesday doing soldering workshops, 44CON table and mentoring a rookie
                    • Dying on Thursday
                    • Sorting out a HIDIOT project involving Devoxx, Cern and the University of Lancaster to teach kids coding and hardware hacking this summer.

                    At least on Friday I’ll be playing with Neopixels most of the day. I hope.

                    1. 6

                      I’m working on moving the central PKI in Peergos from sqlite to ipfs itself. We’re using a champ (compressed hash array mapped trie) - the same data structure which we’ve already migrated all user data to. It has a lot of nice properties, like insertion order independence and fast lookups.

                      This will make mirroring the PKI trivial, and allow private public-key lookups on the mirrors.

                      1. 6

                        Comprehensive exams this week, then interview prep for the following week.

                        Paper I, Wednesday:

                        • Basic epidemiology
                        • Robust statistical methods
                        • Probability
                        • Frequentist Statistical Inference
                        • Clinical Trials
                        • Analytical Techniques X 2 (i.e. univariate / bivariate analyses
                        • Regression

                        Paper 2, Friday: some of the above, plus GLM X 2, Survival analysis X 2, and Bayes.

                        1. 5

                          I am reimplementing the fastText embeddings papers in Rust (at the very least the skipgram model). Reasons:

                          • I need to use fastText-like embeddings in several Rust programs.
                          • I want to use/try some other ideas from the literature (such as position-dependent context vectors).
                          • It’s fun ;).

                          I have training working now. Next up: saving/loading models, clean up first version for code review. Other than that running some final experiments for a paper. Preparing/giving lectures.

                          1. 5

                            We released pool mining for Merit recently and I’m working on integrating pool mining directly inside our desktop wallet. The wallet uses electron and I just released a new library called libmeritminer that I wrote and nodejs wrapper called merit-miner-node. Integrating C++ code into electron was fairly painless but has more boilerplate than I enjoy.

                            In addition, This week I am going to start work on community support outlined in the bluepaper.

                            1. 5

                              Work:

                              • Building an XMPP spam-detection application on top of Wallaroo. First stab will probably be chat message frequency analysis, but I’d love to also plug in a bayesian filter.

                              Non-work:

                              1. 4

                                Work, creating devicetree definitions for a new board.

                                Hobby, learning how to make an app with Swift/10code.

                                1. 4

                                  I received a Soviet-era desk/house phone from Lithuania (I’m in the US) that I’m attempting to integrate with my Incredible PBX. The phone is push-button, but is definitely pulse-dialing instead of using touch-tones, so I ordered a Grandstream HT502 analog phone adapter because (nearly) everyone recommends these for pulse-dial phones on a PBX.

                                  Long story short, I’m still unable to register the adapter on my PBX and have it respond to the extension I’ve created for it. For such a popular device, I’m surprised there isn’t more documentation out there to get it PBX ready, but I haven’t given up yet! If you are a Grandstream/FreePBX guru, please let me know :)

                                  1. 1

                                    Do you have the name or pics of the phone?

                                    1. 3

                                      It is a VEF TA-01LXA, and there are pics available at the eBay listing but let me know if you need more, https://m.ebay.com/itm/USSR-Phone-VEF-TA-01LXA-Working-Condition-/332638456798

                                      Everything seems to work as you would expect, but I have no idea what the R/K/M/W keys are for, or the round button on the bottom left.

                                      1. 2

                                        That’s about the plainest, toughest-looking phone I’ve ever seen haha. Thanks for the picture.

                                    2. 1

                                      Got it all worked out now :) I hope to do a few writeups on all of this shortly.

                                    3. 4

                                      Last week

                                      However, the more I try to do, the more conventions, file formats and Linux-specific knowledge is needed. I think I’ll reduce the scope and not try to make something too general.

                                      One example was trying to make a function call and break right after the call returns. That is, interrupt the current execution to make that call. In assembly, this would just be

                                      call func_name
                                      int3
                                      

                                      The simplest way is to just write these instructions below the current program counter, run and revert the write. But that wouldn’t work for recursive calls and if we’re near the end of the function, maybe we might write over something else that matters during the call to func_name?

                                      So now we could try to simulate the call by crafting a stack frame by hand but the program still wouldn’t break if it finishes. We can reserve some new memory with mmap (syscall #9) and write our instructions there, out of the way of anything else. But the parameter to most calls are relative and only take a 32 bit address difference as argument instead of 64. So I don’t know how to make a call that’s far and the mmaped chunk can be in a different segment as func_name.

                                      I ended up just writing func_name’s address into a register (rax) and ran call rax instead of call func_name.

                                      Maybe I should post about this. But its likely to be a lot of things you shouldn’t do…

                                      This week

                                      • Try to add enough to the debugger so the beginning of flpc is easier to make (if recreated from scratch).

                                      I probably have to look into dynamically adding functions to C at some point. Dynamically adding to assembly isn’t so bad since I mostly just have to find some empty space to write those bytes.

                                      I don’t know if I should go the dlopen way or if that’s more conventions and formats than its worth.

                                      1. 4

                                        I’m at MCE 2018. First time in Warsaw, I didn’t know Poland was such a warm country :)

                                        1. 2

                                          Enjoy Warsaw! The Vistula riverbank is a great place to chill after a long summer day :)

                                        2. 4

                                          I’m trying to hack together a “git symlink as a service” product. Ideally, it’s a simple URL that should not change in the future, and resolves to a git repository hosted somewhere on the internet. In light of GitHub acquisition, this could be handy in avoiding things like this in the future.

                                          1. 4

                                            Working on a couple of “how do I..” blog posts for Wallaroo Labs. Might submit them to lobste.rs. Still up in the air on that. Also working on my deck for my talk at VelocityConf San Jose on Pat Helland’s “Beyond Distributed Transactions”…

                                            https://conferences.oreilly.com/velocity/vl-ca/public/schedule/detail/66765

                                            1. 3

                                              As mentioned last week, today I published my first timed-exclusive article in collaboration with Jonathan Boccara of Fluent C++.

                                              I’m still trying to figure out how best to handle such content. Keep the paywall? Run it for one day or one week? Should it be totally exclusive? Time, and feedback, will tell.

                                              The growth has been slowing down significantly though. I noticed that every day I don’t share (read: advertise) the newsletter, I lose subscribers. If I do share (read: advertise), I’m “breaking even” or adding a few more. The hope, I guess, is that one day I get lucky and get thousands of subscribers (like what happened with Hacker News a few weeks ago).

                                              The problem is that I do not like spamming. And I have a feeling that’s NOT a good thing for growth :/ I started doing Monday Editions exactly because I didn’t want to spam every single issue.

                                              But nothing beats publishing the newsletter at 4AM because the weekend was crazy and wake up to emails like this:

                                              “Hi Pek!

                                              This is the first mailing list I have religiously read every morning, and you’re doing awesome!”

                                              <3

                                              1. 2

                                                Paper-reading log:

                                                I’ve been more or less keeping up with my experiment in keeping a paper-reading log. Reasonably happy with it so far. The original ambition was a more public-facing “these papers are neat and here’s why I think so” blog that explicates important papers in an accessible style. But as will probably not surprise you, that turns out to be a significant undertaking for even one paper, let alone a regular series.

                                                This version limits me informally to ~250 words per paper and a “just notes on this paper to myself” style, meaning the notes should be comprehensible to future me given the context of the title/abstract, but not necessarily to a general audience. That reduces the usefulness to others, of course, but there seems to be no real reason not to put it online, so I did so anyway. The win is that the constraint to be short and just-notes-to-me means it’s been easier to slip it in as a routine part of my paper-reading without it becoming a big writing project in itself. Though I still don’t write an entry for every paper I read; that’d be nice, but to avoid making it too tedious I limit it to papers I’ve read, liked, and want to be able to find again in the future.

                                                Blogging:

                                                In public-facing explanation mode, on the other hand, I did write a blog post giving an informal overview of some recent work we’ve been doing where I work on “rapid game jams”, which are 1-2 hour game jams using parametric game-design apps.

                                                Exhibition setup:

                                                Besides that, I’m helping to set up an art/games exhibition that we’re hosting. I am not very good at this kind of thing. Neither my comp. sci. bachelor’s nor PhD gave me any useful training in how to drill into different kinds of walls and mount pieces on them, nor how to pack and unpack fragile things. It’s useful to learn something about, though. Today I learned that it is very easy to ruin drill bits by drilling into cinder-block walls.

                                                1. 2

                                                  working on a big feature of open source cache server nuster

                                                  1. 1

                                                    What is that feature?

                                                    1. 1

                                                      active cache