1. 28

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

    I’ve got an ESP8266 microcontroller board that is notable for costing US$3 but still having onboard wifi. There’s an existing firmware which runs a trimmed down version of Lua. I’ve been trying to load the Fennel compiler into it (https://fennel-lang.org) which is written in Lua, but it’s been a challenge since the board is limited to 80kb of memory.

    I recently found a new feature which allows you to compile bytecode ahead of time and load it into the onboard flash storage and run it from there instead of loading it into RAM: https://nodemcu.readthedocs.io/en/master/en/lfs/ I’m hoping that this will allow the Fennel compiler to fit. My fallback plan is to run the Fennel compiler on a PC and stream the Lua code directly to the device; my end goal is to have a networked microcontroller which supports interactive lisp development.

    1. 5

      I’m also planning for Fennel Conf 2019 which is coming up in a couple months: https://conf.fennel-lang.org/2019

      It’s a very small 1-day conference, but I’m putting together a schedule and figuring out logistics.

    2. 9

      I’m delivering a 5-day TLA+ workshop next week and in the process of radically restructuring everything to better teach the mental models. As part of this process I’m writing a lot of beamer and tikz slides, which means hitting all sorts of weird beamer and tikz quirks, which means shaving many, many yaks. Unrelatedly, writing Practical TLA+ errata.

      For personal stuff I’m starting to feel the pain of not having a good exobrain, so more work on that. Probably set up a research notebook system.

      1. 2

        Let us know what you land on for that exobrain :)

        1. 2

          I’ve been using Zotero for a while now to store citations and their attached documents (PDFs, full webpages, etc. all get stored in a Zotero SQLite DB). With the browser plugin, it’s usually one click to import a citation and its attached document. Zotero also supports fully-searchable tags and notes. In retrospect I should have probably set up the online syncing sooner.

          For more unstructured notes I use the Mac OS Notes app. My complaint with both apps is their default notes font is too small.

          1. 2

            Zotero looks great! I’ve been feeling overwhelmed at the amount I reading I plan to do this year. This should greatly help in keeping it structured. Just installed it.

          2. 1

            where is that TLA+ workshop being delivered? That sounds interesting to me…

            1. 1

              Chicago! David Beazley’s been a great mentor to me.

            2. 1

              I ended up, after too much thinking about research notebooks, with a template text file. The app that wasn’t

            3. 9

              I am working on integrating a new life into our family workflow. We’ve already finished some tests, and are now trying to figure out our daily sprints.

              1. 1

                Expect your velocity to go way down.

                1. 1

                  Very cute. 🥰

                2. 7

                  For $DAYJOB: I’m working on a malicious hypervisor for our malware lab.

                  For HardenedBSD: I’m researching Cross-DSO CFI, SafeStack on arm64, and attempting to get HardenedBSD on our Cavium ThunderX2 server.

                  1. 2

                    working on a malicious hypervisor

                    What’s the purpose of that?

                    1. 3

                      Bug hunting, exploit dev, malware dev, ability to emulate malicious implants, etc.

                      1. 1

                        I mean, are you specifically trying to make the hypervisor be the exploit/malware payload? Or does a “malicious” hypervisor help you developing other components? I was just trying to grok how it would be useful past testing reliability of components in presence of malice or detection/mitigation techniques aiming at malicious hypervisors.

                        1. 4

                          A healthy mixture of both. If configured a certain way, it’ll be able to perform tasking similar to syzkaller. If configured another way, it’ll add a custom implant somewhere along the chain.

                          1. 1

                            Oh neat. That makes sense. Thanks.

                  2. 6

                    I’ve been working on my journal software a lot over the holiday, and have been using it to track various things, like diet and reciepts. I’ve also been using it to track my creative ideas. In the past week, I’ve been refining the facilities exposed to the lua scripting that I integrated into this software the week before.

                    This week, I plan on building some basic web-based tools with it, like a small shopping list page, and an agenda mode that allows me to see what I’ve marked as TODOs for each given day in a week, so I know if I need to move things around.

                    I have also started working on tracking and classifying my expenses better, in an attempt to work on better saving my money. So far, that’s a work in progress python script over a CSV of financial activity from my bank.

                    There are other ideas I have in mind for this week, but those are the main 2 that I know I’ll be working on for sure. And, since I’ve following this set of emails, I’ve started to try to embrace making the decisions to embrace working on only a few things, rather than spending my time dreaming of all the things I could do.

                    1. 2

                      Ooh, those Creative Compass essays go well with Jon Acuff’s “Finish” (that I just started reading). Perfectionism is such a huge issue for me.

                      1. 1

                        I’d be interested to see what you think when you finish that book (no pun intended). The one thing about Growing Gills that’s been a bit of a difficult thing for me, at least without someone else to go through it with, is that it’s more of a workbook than a “read this and just get ideas” book. That being said, the emails that I’ve been signing up for along-side it have been good, and I think once I get to a certain place (I’m currently addressing other issues in my life outside of creative output), it may be a valuable tool.

                    2. 5

                      Working on a Small CI system in Go. Started off single server based, working on developing into a Master Worker based architecture currently.

                      1. 4

                        I’m in a final two-week push to deliver Magento 2 to the company so I’ll be a big ball of stress trying to hammer out some features.

                        1. 4

                          Good luck, you got this!

                          1. 1

                            Thank you!

                        2. 4

                          For work I’m trying to land a large C++ refactor that exposed all kinds of surprising behavior.

                          For fun I’m continuing to hack on an audio synthesizer in FPGA.

                          1. 4

                            Personal: I’m adding to my bytecode interpreter blog post – virtual frames, name resolution, etc.

                            Work: Adding some more features to the runtime at work so we have feature parity with upstream.

                            1. 4

                              For work I’m fixing/refactoring some Jenkins jobs. I volunteered to do it, so I’ve only myself to blame.

                              Outside of work, I found a CL library that can read/write from ALSA, so I’m playing with that. For now I’m implementing a real-time FFT visualization of incoming sound.

                              I also realized the other day that I never finished the book scanning project I was working on a couple months ago, so I should probably do that. The difficult bits of code were all working, I just need to tie up some loose ends and take a bunch of barcode pictures.

                              1. 4

                                I found a CL library that can read/write from ALSA, so I’m playing with that.

                                Cool! I happen to be an author of one. If it’s the same, let me know how it worked.

                                1. 3

                                  Yep, that’s the one!

                                  So far it’s been great, but I did run into two problems.

                                  First, I had to add 32-bit types to support my sound card.

                                  Next, and this might be an SBCL or CFFI problem, the ref and (setf ref) functions seem to cons a lot. I spent a little while trying to figure out why, but wasn’t seeing it. To solve my immediate problem I added a few functions to work on entire buffers.

                                  I’ll open a pull request for the 32-bit types later tonight, but want to look at the buffer issue more before I submit that.

                              2. 4

                                We finally deployed a ‘feature’ that’s been in progress since June (replacing the entire Model layer of a PHP app with new Models based on a newer framework/library) over the weekend, so this week will be about picking off a number of small-ish tasks/improvements that were either waiting for the new Models as a prerequisite, or were simply lower priority and thus not touched before now.

                                1. 1

                                  Are you able to speak to the model layers moved from and to at your work? I’m always interested in new PHP technology.

                                  1. 2

                                    The old ones are something based on ZF1. I’m honestly not sure if they could be considered “normal” for ZF1 though. Effectively everything is instance based, and methods might mutate/inspect the instance itself, or might run a query which updates the instance with the found record OR might return an array of data or whatever. Frankly it was a mess (hence replacing it).

                                    The new ones build on Bamboo 5 follow IMO a cleaner concept based generally on ActiveRecord, so that static methods (with the help of a query builder class) return single/sets of instances of the class.

                                    The project itself is for a client, Bamboo is a framework I started writing about 10 years ago which is now owned by my company, Koalephant.

                                    1. 1

                                      Oh wow that first model implementation sure does sound like a mess. I’ve never looked into Bamboo but it looks like its worth a look. Thanks!

                                2. 4

                                  Still trying to find customers! I’ve got a meeting that should be useful midweek and I’m giving a talk on Java by Contract at a local tech meetup, so that’s something. I’m starting to think I may never work again, though :-/

                                  1. 4

                                    I’m working on Synacor’s challenge.

                                    The idea there is that they give you the spec for a fictitious machine and a binary to be executed. There are hidden secrets in the binary that you gotta uncover to progress through the challenge.

                                    So far I’ve only managed to get the first secret and now I’m stuck with the program just printing some output with missing pieces and asking for the user’s input. Not sure how to proceed now.

                                    What I’ll try to do is write a disassembler so I can read the program properly and figure it out from there.

                                    What I might also do is write visual emulator/debugger so I can step through the instructions manually and see what is the VM’s memory state. May be totally overkill, but it sounds fun!

                                    1. 4

                                      I’m trying to combine pgp and torrenting into a cludge of madness. I’m not sure if this is a good idea.

                                      1. 3

                                        Work: I’m developing a language server extension for CWL. I need to understand how VS Code extensions are written since my test bed for the server will be VS Code.

                                        Advice needed: If anyone has experience how to integrate a lang server with VS Code or has written an extension for VS Code I would much appreciate pointers. I’m going through the example code, but I’m a bit lost. Thanks!

                                        1. 3

                                          A python library to make fried memes. It was born as a telegram bot but now we are moving it to a dedicated library with a decent API and we will add more features.

                                          Also I’m trying to write a gaussian random number generator in Pony but it’s taking me forever.

                                          1. 1

                                            Is the bot publicly available?

                                            1. 1

                                              yes. Both the library and the bot are in a veeeery early stage but they work.

                                              https://github.com/CapacitorSet/personal-bot https://github.com/chobeat/memefryer

                                          2. 3

                                            Making a semi-production k8s deployment. If it goes well, we may move to it. Else, I think Nomad is our way

                                            1. 3

                                              As predicted by the last time I commented on this weekly thread, I’m moving from actively resting to actively searching for a new job. I’m anywhere from “application sent” to “interview scheduled” with 11 companies with another 9 in my “investigate” column on a Trello board. I’ve got an interview in 10 minutes, so I should probably do a tech check instead of writing more here!

                                              Want to hire me? My LinkedIn and my GitHub largely allude that I’m looking for an architect, small team director or engineering manager, or senior SWE position, preferably working in Scala, Rust, or Ruby.

                                              I’m heading to Codemash this week in Sandusky, Ohio, near Cleveland. Maybe I’ll see some of you there!

                                              1. 3

                                                Just a second ago, I deployed a new version of my personal website, now generated using POSIX sh. I’m pretty happy with the results so far, and I’m going to work to make it better in the coming week.

                                                I’m also working on a collection of utilities for the Unix shell written in sh and C (at which I’m a beginner). I’m just writing small programs whenever I need a piece of functionality for which there doesn’t seem to be a simple command.

                                                Also, this weekend, I replaced my mouse with a trackball (Logitech MX Ergo), which I’m currently getting used to. So far, it feels good!

                                                1. 1

                                                  I really like your barebones approach …. and that Kill Javascript post is so fresh …. keep up :)))

                                                  1. 1

                                                    Thanks, that means a lot :-)

                                                2. 3

                                                  Doing a first pass through Coq’Art and probably also starting Adam Chlipala’s book on certified programming in Coq.

                                                  1. 2

                                                    He has a new book published as a free draft. Just in case you want to try it out.

                                                  2. 3

                                                    Still on my language tinySelf. Since last time I’ve posted here I’ve implemented tail call optimization and all kind of stuff, so it is possible to run basic scripts. It is still kind of fragile and impractical, but I am slowly getting there. Yesterday, I’ve measured the speed and it is really slow, but that is probably ok, since there is no optimizations yet.

                                                    I’ve done a lot of work around, like created a series of article in Czech language about the interpreter, which should be fun, because there is not really anything like that on the Czech net. I’ve also written small series of articles about Self and it should be finished soon, so that was fun too.

                                                    1. 3

                                                      I just moved my sprites into a new spritesheet manager for my videogame. This week I will finish up the generic base behaviour for the NPCs.

                                                      1. 3

                                                        Working on my first startup with a close friend. Parts should arrive this Wednesday for us to do some experiments with in meatspace. I’ll be working on v0.00001 of our tech over the weekend.

                                                        If anyone wants to grow some houseplants (with a (little) tech help) let me know. Happy to send some beta boxes out for free in a few weeks in exchange for feedback. Just DM me!

                                                        1. 3

                                                          Personal: fuzzing around with a BuckleScript binding to the Web API, https://github.com/yawaramin/bs-webapi , and a ReasonML/BuckleScript binding to Hyperapp (which is a 1KB JavaScript UI library), https://github.com/yawaramin/re-hyperapp .

                                                          The attraction for me is trying to come up with minimalistic bindings that get optimized away, yet as type-safe as possible. I’ll probably write up a blog post about it at some point.

                                                          1. 3

                                                            Writing code for esp8266 to do periodical measurements on sds011 sensor, which measures concentration of solid particles in air (PM2.5 and PM10). Going to query the sensor each few hours and log results to server.

                                                            At first I tried to use the port of Arduino as an OS, but it doesn’t have any concurrency/multitasking/scheduling, so I decided to try Simba OS which is a simplistic RTOS similar to FreeRTOS. It’s somewhat beta, compared to more mature FreeRTOS, but has much nicer API aesthetics (FreeRTOS has hungarian notation and mix of camel case and snake case), nicer docs and in-tree hardware drivers. I had to make client library/driver to interface with sds011; debugging it now and adding cmocka tests. Almost not touched C for many years, now it feels weird, having fun with it, but I’d probably choose Rust if it (its llvm backend) supported Xtensa ISA.

                                                            1. 3

                                                              I quit my day job last month, so now I just have my own projects to work on.

                                                              I launched a staging server for Moneygains so we can test things live before deploying to production. Luckily with NixOps this was really easy. I’m overall very happy with NixOps.

                                                              For NewBusinessMonitor I hired a company to create a 90 second explainer video. They’ve finished that now, so I will add this video to the site and include it in some startup competition pitches. I also need to work on general maintenance stuff, most importantly, automatically pulling invoices from Stripe and GoCardless when they become available.

                                                              I happen to be in Russia right now, which is cold, and also it’s made my life difficult because some AWS IPs are blocked here. To solve the blocking, I’ve had to shuffle my application servers around to different regions just to get SSH access. To solve the cold, I’ve booked tickets to Thailand for two months. Leaving early February.

                                                              1. 2

                                                                I’ve become complacent with my emacs set up with regards to code navigation…. I think it should be possible to do better…. but C/C++ is horrid because the preprocessor makes a horrible syntax horribler and Ruby is happy to invoke methods on anything….

                                                                1. 2

                                                                  Trying to organize my thoughts on why social media is better disconnected/limited, centralized, and fail-unsafe.

                                                                  1. 2

                                                                    For work I’m working on finishing off an MVP for a potential new product. It’s a Ruby GraphQL backend and a React frontend with Apollo which has been a nice combination and has reminded me how much I like Ruby after not working with it for quite a while.

                                                                    For personal stuff, I started building a mobile app with Flutter over the weekend to see what that’s like. It’s pretty cool and was easy to get up and running very quickly which was nice. It’s very much in the early stages so far but hopefully I can get it to a stage where I can release it in an app store later this year.

                                                                    1. 2

                                                                      I was supposed to be doing a ton of stuff but am full of a cold. Instead, I’m fighting a cold, ditching Shopify on the Raw Hex site and switching it over to being self hosted and setting up the marketing for the next 3 months for 44CON training this March.

                                                                      I’ve got a small supplier review gig to work through some docs on too, and put into some form of coherent structure, so I’ll do some of that too, but I need to get better first for that.

                                                                      1. 2

                                                                        I’ve been working on a small clone of the annotate models Ruby gem in my spare time for about a month now. I’m pretty happy with it so far! I hope to get it to a place where I can give it a bit of a “stress” test on some of the Rails apps we have at work, hopefully later this week or early the next.

                                                                        Completely unrelated but my brother lent me Breath of the Wild this past weekend, and I’ve been liking it a lot. It’s definitely gonna distract me from my aforementioned goal :)

                                                                        1. 2

                                                                          Work isn’t too publicly noteworthy, but in personal project land this week, I plan to finish up some gnarly bugs (some are showstoppers) in my Python-based mechanical keyboard firmware and start preparing it for release to the world. The project has been in kinda up-and-down development since September (usually a few weeks of grind, a few weeks of zero progress due to burnout, repeat with ever-fewer weeks or days per cycle), so it’s awesome to see that (1) in dogfooding this recently, MOST things are so stable I forget I’m running firmware I wrote myself, and (2) that there’s only a short, manageable list of v1 release-blockers to get through. There’s a release-shaped light at the end of a previously-undefined tunnel, and that’s an awesome feeling.

                                                                          Beyond that, I’ve been getting more into streaming games lately as a hobby to pass time when I don’t have energy for code or music projects, so realistically I’ll be doing a bit of that, as well.

                                                                          1. 2

                                                                            Work: I am writing a C# program to mirror workspaces in my employer’s document management system. You can think of a DMS as a primitive version control system targeted at end users.

                                                                            1. 2

                                                                              Working on my program for creating videos for my new Reddit quote YouTube channel.

                                                                              1. 2

                                                                                I’m working on a thesis about synthetic neural network training data for school. I spent the fall thinking about the theories and use cases of my project, and I’m planning on doing some actual synthetic vs. real training data comparisons in the spring. That means in the winter I get to figure out as much of TensorFlow as fits into my use case: this is proving to be tricker than anticipated. I have lots of time this week to learn, so I’ll be hunkered down studying.

                                                                                I’m also writing a Markdown to HTML transpiler in Swift (a language with complicated string behavior and limited regular expression abilities). I fixed some issues with my rules engine last week, and this week I want to knock out a few more individual rules.

                                                                                1. 2

                                                                                  I’m going to try to get task switching to work in my kernel, it’s been a long while since I did work on it but after New Year I picked up pace and wrote a lot of code and had to work around a number of compiler bugs in Rust or LLVM.

                                                                                  Additionally I’m somewhat lazily working on a “as small as possible” Solar MPPT charger/UPS for 12V devices, though I still need to verify that the charger chip I used is correctly wired up.

                                                                                  1. 2

                                                                                    For work, our team is doing polishing/tech debt work on our product which measures SLOs for the various teams (ie from their own New Relic queries) to build an overall picture of the company.

                                                                                    You can then drill down to a particular product, or even the components that make up said product for example. That’s the idea anyway.

                                                                                    Ah, I should mention I’m a Site Reliability Engineer for context


                                                                                    Personally, I started building a Django app w/ Celery/Rabbit in the background. It scrapes comments from the New Zealand news site https://stuff.co.nz. They’re somewhat notorious for being like YouTube comments is a way to describe them.

                                                                                    From that data set, I actually do 2 things at the moment: 1) I render the latest articles Hacker News style. That is, I literally reskinned HN but the content is all replaced with Stuff articles and comments.

                                                                                    It’s actually a way nicer UI to consume NZ news that I thought, so much so that I actually use it on my laptop locally.

                                                                                    What I /actually/ did all this for was that I wanted to use markov chaining to generate new Stuff comments out of old comments. Thanks to Django, I actually just made an extra route where you visit an article and the comments are all randomly generated. It’s so bad, you almost can’t tell the difference ;)

                                                                                    Ultimately, I’d make a Twitter bot that tweets said comments too. Maybe it mixes real and fake comments, in order to add an element of mystery haha


                                                                                    So yeah, good ol’ over engineered nonsense really. I hope this was interesting? I’ve been meaning to post in one of these threads for a while now :)

                                                                                    1. 1

                                                                                      What I actually did all this for was that I wanted to use markov chaining to generate new Stuff comments out of old comments. Thanks to Django, I actually just made an extra route where you visit an article and the comments are all randomly generated. It’s so bad, you almost can’t tell the difference

                                                                                      Love it. I did the same for Slashdot back in the paleolithic era. It almost worked, too.

                                                                                    2. 2

                                                                                      Alternating between building a house, building a server rack/dehydrator combination (equipment in the top section, warmed air from equipment used in dehydrator in the bottom section -> efficient use of power and space) and teaching a well-known media server some new tricks, if only to become re-acquired with the reasons for not doing more Java development than I have to.

                                                                                      1. 2

                                                                                        After I found this great computer store e-commerce template, I spent few days porting it to Sass (originally it uses Less). I’m planning to use this theme on my website along some more improvements at the backend. Theme is free and awesome at the same time, so check it out, maybe you too can find it useful: