1. 12

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!

  1. 10

    Hey guys! First time poster here. I thought this thread looked like a good place to make my first appearance!

    I have a lot to work on this week, both technical and personal. I work as a web developer for a small local business, and we are looking to launch a new eCommerce store this month, so that has been the major stressor as of late. My project for fun is a C++ GUI program I started called OpenRPG. The GUI itself is written using Electron, but the backend logic itself is written as a CLI program in C/C++. If you have any interest in helping, the repo can be found here.

    In my personal life, tonight my roommate and I are starting a Pathfinder campaign we call “The Post”. The concept is really cool. Essentially there is this organization the players are involved in called The Post. The Post is a military organization formed to defend the planet from evil. But what if there is no evil you may ask? Well then they deliver mail. Yup. They are mailmen.

    It should be a good week!

    1. 9

      Well I just finished coding up an implementation and writing a tutorial on higher-order unification so I guess I’ll have to shamelessly self-promote that ;) It’s also my last two weeks in Denmark working at Aarhus university so I’m finishing writing up the technical reports for the work I’ve done this summer. Explaining math is hard.

      In my spare time I’m now fidgeting with an implementation of “typical ambiguity”, the algorithm used by Coq and others to implement universe polymorphism/simulate the experience of Type : Type. I’m also trying to get through Streicher’s paper on fibered category theory which is an excellent overview of the subject but very dense. If anyone wants to read this with me and chat about it I’d love the company!

      1. 8

        I’m getting ready for a new release of theft, my property-based testing library for C.

        Version 0.4.0 (CHANGELOG):

        Most significantly it adds support for shrinking crashes and infinite loops, and improves dataflow for the hooks – this should make certain custom behaviors easier to set up. For example, there’s less indirection necessary to pass a log level to the property test function, which can be bumped way up when re-running the failing test after it finishes shrinking its input.

        There’s a few more API changes, but the major version is still 0, and the changes should help with usability long-term. The details are in the changelog.

        I’m running final tests now on several platforms, with and without valgrind. This takes a bit, because part of the test involves intentionally crashing thousands of times.

        Work this week is going to involve a lot of fuzzing and property-based testing, working on stressing some exciting new code in novel ways and shaking out obscure bugs before deployment.

        1. 6

          On sabotage linux, the kernel build breaks after upgrading busybox to a recent version. We already tracked it down to an busybox bug being solved and a missing bc. This week i will try to apply Rob Landleys patch for removing the dependency on bc, which will need to be customized heavily to be able to apply to a recent kernel.

          Like, just maintaining software isn’t as interesting as creating new, but it still needs to be done tho.

          1. 5

            Like, just maintaining software isn’t as interesting as creating new, but it still needs to be done tho.

            A quick shout out to you and all the rest doing the drudgery of maintenance work (esp bugfixes). I appreciate all the effort yall put in keeping things working. :)

          2. 6

            I’m learning GameMaker Studio 2, an IDE and toolkit with a language that feels very much like PHP 3 (small code post). It’s got a friendly community and has been used for some well-polished successes. I’m picking it up because my 10 year old nephew is interested in making games (and, honestly, so is the 10 year old inside me).

            A friend of mine has been quickly growing an audience for game streaming and I’ve enjoyed Gary Bernhardt‘s livestreams, so I’ll probably stream some of GMS2 tinkering, Haskell studying, and/or TwoFactorAuth updates on Twitch this week. I set up OBS for streaming and it seems to work, but I’d appreciate any pointers or tips from folks experienced with OBS or Twitch in general.

            1. 5


              • library for using/manipulating position weight matrices
              • helping a semi-external project team with SSL (and security in general)


              • got another pi3 to build a home media/plex system
              1. 5

                Been working on full system call coverage for all operating systems that Myrddin supports.

                The ones I’ve done so far:

                • Plan 9: Done ages ago. It’s easy to do it by hand when you only have ~30 system calls to support.
                • FreeBSD: Did it a short while ago. Parsing syscalls.master and then writing a pycparser script to conver types wasn’t too bad.
                • OpenBSD: See FreeBSD. The scripts are shared, and the syscalls.master format is only slightly different.

                The ones that are pending, but close:

                • NetBSD: This one should be a matter of just running the same scripts as FreeBSD and OpenBSD.
                • Linux: I tried using FreeBSD’s linuxulator syscalls.master, but it’s not great. I’ve started working on parsing syscalls.h and syscalls_64.tbl to bring full coverage in.

                The one that’s going to be a problem:

                • OSX: It’s also got a syscalls.master, but many of the system calls in there are missing type information. I can translate useraddr_t to void# (void* for C folks), but that’s not very satisfying.

                The missing chunks:

                • Enums and defines. Currently, the important ones are added by hand incrementally. I’m not sure if there’s a good way to automate this, so it’ll probably stay that way.
                1. 4

                  I started working on a little 3D game/graphics engine in C with Chibi Scheme embedded inside. I ran into some issues with the automatic FFI code generator (for static arrays inside structs), so I’m working on a patch to correct that.

                  I’m interested to see where performance will actually be a problem, especially since Chibi isn’t an especially performance aggressive scheme. I’ve fallen into a little premature optimization trap since I decided to make vectors and matrices packed C structs rather than using a scheme vector/list for storage. I’m sure boxing/unboxing of matrices would be the source of a performance bottleneck and implementing all the important math in C should head it off before it becomes a problem. Probably.

                  1. 4

                    I’m trying to replace all apps on my phone with a single one I’m building.

                    I’ll start with the alarm clock, task list, and calendar. Then I’ll tackle news and social networks (Hacker News, Lobsters, Reddit, etc.). After that I’ll tackle messaging apps (SMS, Messenger, Gmail, Outlook, etc.).

                    My goal is to build one unified experience for everything. I intend to make most apps, websites and web services obsolete.

                    I’m borrowing on ideas from Google Lens, Akinator, Tinder, Semantic Web, GTD, lojban, Bitcoin, Ethereum, IPFS, Urbit, Idris, Prolog, Eve, webOS, Naked Objects, AR, Bret Victor, etc.

                    1. 1

                      Do you mean a individual “Tasks” app + Messages” app + “Browsers” app? Or literally a single app that does everything? You would probably be making it less secure to bundle literally every function into a single app, as a flaw in PDF viewing could allow something to send SMS for example. For borrowing ideas do you mean the idea for a single app architecture? Or do you mean function ideas? Have you thought of just using third party or non-standard email/SMS/browser apps instead?

                    2. 4

                      This morning I fixed a few bugs in OSH reported by a user trying to build Nix packages with it [1]

                      This led me to read some Nix bash code, and I found that it uses tons of dark corners of bash [2] ! As far as I know, Arch Linux and Alpine Linux are also heavily bash-based. Building Linux distros has always been one of the use cases I have in mind for shell-as-a-programming-language, so I’m glad someone tried it with Nix.

                      I was able to fix the bugs pretty quickly, and I’m interested in more bug reports. Release announcement: http://www.oilshell.org/blog/2017/07/23.html

                      [1] https://github.com/oilshell/oil/pulse

                      [2] https://github.com/oilshell/oil/issues/26

                      1. 4

                        Work: End of project crunch, so 10 hour work days are the norm this month. But my bosses are being more lenient about work at home, so thats nice.

                        Personal: I’m taking a break from coding this month as I’ll be doing so much at work, but after trying it on one computer I’ve decided to switch all my other computers to Alpine Linux. (Except my vultr server, I am still very satisfied with openbsd)

                        I’ve also ordered a homebrewing starter kit alongside a recipe kit for an Irish Stout. But wont be getting that until next week.

                        1. 4

                          My new CPU for the microserver arrived, so I’ll be installing that at some point. (Going from a G1610T to an E3-1265L v2. Mmmm.) Also moving my blog from middleman to hugo, and have another server to migrate to the SmartOS host. (Currently it’s a FreeBSD VM in the cloud somewhere.)

                          Got a triathlon on Sunday as well, so I should finish servicing my bike and put it back together for that. Possibly even ride the thing too. Waiting on bits & pieces arriving for a cycling adventure too, looking at doing a 200 mile ride through Scotland over two days sleeping wild for the night at the end of the month. Should be fun!

                          1. 4

                            I’m building a stateless service for generating iOS Wallet passes through a json api to be used at checking. The service will also be able to generate SVG/PNG QR-codes and icalendar events.

                            My PoC is done and I’m mainly working on making the API thorough enough while staying really simple for the basic use cases. A problem I noticed is that generating a rasterized QR-code in a requested size can be slightly problematic due to the way sizing with versions works, if anyone have first hand experience or recommendations on how to tackle the sizing dilemma without constraining the requester to predefined sizes I’d appreciate pointers. Right now I’m leaning towards finding the largest possible scale with needed version to encode the data that fits within and placing that image centered on a canvas of the requested size, drawback is that there will be unpredictable whitespace surrounding the code.

                            1. 3

                              This past weekend, I tore up the carpet in the den. This week, I’ll be stripping the remaining underlayment adhesive so I have a nice smooth surface to put the new laminate flooring down on. I’ll also be repairing various tools (primarily a janky chainsaw) as the parts come in. I spend lots time working on my tooling.

                              1. 3

                                I’m trying to finish up my implementation of Plan 9’s “file” protocol, 9p, in rust. I’m still trying to wrap my head around implementing certain things in Serde.

                                Ideally, I’d like to have a minimal working sample in time for rustconf.

                                1. 3

                                  I’m coming from Rails and learning Elixir/Phoenix from scratch as my first functional language. If anyone has any tips/tricks that helped them move from Rails to Phoenix or Ruby to Elixir, I’m still compiling good resources. I’m not actually a very good programmer, so 1:1 comparisons between like “this is Ecto, it’s like ActiveRecord but instead of X you’d use Y” or “if you liked these gems, try this in Elixir” would be amazing.

                                  1. 3

                                    $work: migrating servers to CentOS 7

                                    $fun: actually soldering my hidiot so I can play with it

                                    1. 2

                                      Add kangaroo12 to nim

                                      1. 2

                                        I’m working on porting parts of the Go standard library to Javascript. I constantly wish for better string formatting and manipulation, time manipulation, figured I would just write it myself.

                                        (before you ask) yes I have heard of GopherJS and no it is not a good fit for a variety of reasons.

                                        1. 2

                                          Working on my weight, which has gone up too much in the last few years. My tools include a bicycle ;)

                                          1. 2

                                            I’m improving elm-debug-decoders, a tool designed to help you visually iterate on your decoders.