1. 23

What are you doing this week? Feel free to share!

Keep in mind it’s OK to do nothing at all, too.

  1.  

  2. 7

    I have this shite-tier scheme compiler that I am writing as a hobby. It just poops out x86_64 instructions with no optimization whatsoever. It’s very tricky to debug and I would love a tool that runs x86 binaries and shows the state of the stack, etc, in parallel. GDB can do this to some extent but not visually.

    1. 6

      GDB can do this to some extent but not visually.

      Have you tried radare2? It’s geared more toward disassembling than debugging, but its visualization is fantastic. There’s even a GUI for it – cutter.

      1. 3

        Wow, cutter is really neat. It even has a simulator. I realized after the fact that it is integrated with the NSA’s Ghidra, though, which is moderately off-putting.

        1. 2

          I have not. The compiler emits nasm-compatible assembly, so I can view the assembly there. The problem comes with things like calling conventions, register clobbering, etc. I will investigate radare2 and cutter. Thank you.

          1. 2

            reverse engineering tools definitely help, they are designed for dealing with strange and obfuscated assembly without debug symbols.

      2. 6

        Continuing to work on a reverse shell controller written in Go. I haven’t started working on the implant yet, but I’m thinking of writing it in Rust.

        1. 2

          As a package maintainer, I’ll say it is annoying when a project uses both Go and Rust.

          1. 2

            What package system do you find it to be annoying for? Is the reason it’s annoying because you’re working with multiple toolchains at the same time, or is there something specific to the packaging process that makes working with multiple languages difficult?

            1. 1

              More toolchains just mean more problems, More libraries to find and install, more patches to apply specific to your distro.

        2. 5

          Besides writing and preparing slides, I have been working a bit on a UI to inspect word embeddings in our finalfusion format. I don’t expect the software to be generally useful, except for people who actively use embeddings and want to inspect their metadata and/or do a few quick queries (ie. me).

          I’ve always used Qt for GUI work from when C++ was my main language. However, since Rust Qt bindings are not really a thing yet, I have been writing an implementation in Rust + Gtk+3 and Python + PyQt5 in parallel (we have a Python binding for our Rust stuff through pyo3).

          Pro’s and cons so far of both (I have been on the fence which direction to go):

          Rust + Gtk+3:

          • Pro: I love the type checking.
          • Pro: Gtk is nicer than I expected
          • Pro: looks great on Linux
          • Con: pretty abysmal on macOS: I can accept that widgets don’t look native, but rendering is slow, the keyboard shortcuts are wrong, I don’t get a native menu. I still have to look more deeply to see if this can be improved
          • Con: not yet a lot of crates for visualization and dimensionality reduction.

          Python + Qt:

          • Pro: I like Qt, it’s as great as it always was.
          • Pro: Python’s data science ecosystem is great: I can plot natively in Qt with matplot lib, do dimensionality reduction with scikit-learn, etc.
          • Pro: looks great on both Linux and macOS.
          • Con: runtime errors that would be compile-time errors in Rust.
          • Con: not great for concurrency (though the pyo3 flavor of BEGIN_ALLOW_THREADS makes it possible to remove most GUI freezes).
          1. 4

            I successfully set up Searx, which is a FLOSS meta search engine [which you can host yourself]. It actually wasn’t that complicated or time-consuming. So, I will be testing out how that feels (the quality of results) compared to my usual default search engine (startpage).

            1. 4

              Just finished the customizable feature for my task management web app, now writing up some documentation and working on the database/sync feature. Great thanks to the fellow lobsters who gave me a lot of feedback when I first launched it a couple weeks ago!

              1. 4

                https://github.com/sneak/merp

                It’s the beginning of an open source clone of the https://dweet.io API. I liked the idea of a simple unauthenticated message bus that can be curl’d from embedded systems. Also I wanted to learn more about go’s http interfaces.

                1. 4

                  I’m improving my bookshops management software (here), and dealing with a lot of technical debt :S (Python2 and Angularjs 1.x…) I’m getting my feet wet for a rewrite in Common Lisp. Currently the very basics work in a readline interface (a handy one, with autocompletion for everything). I didn’t decide on the web frontend yet… I’m productive in Vue, but my dream would be to use Weblocks (it’s seeing a rewrite since a couple years), but I must complete the documentation myself (coming soon: routing). I’d like a simple GUI too. Probably with the IUP bindings.

                  I’m also trying out isomorphic web frameworks. Last in date: Hyperstack (Ruby & React), but the installation instructions failed for me. I’ll have a look at Rust’s seed-rs, but they all are alpha… I have a little list here. I welcome any feedback. Can we write isomorphic webapps today?

                  1. 3

                    Being sick, trying to gnaw on $WORK anyway despite it being all the tedious stuff due to poor processes that I’ve been putting off, and generally working on that whole self-care thing.

                    For fun, I’ve been writing a small 2D graphics engine in Rust, with the intention of using it to upgrade ggez. Depressingly, despite all the work put into gfx-hal, rendy, wgpu, and all the other next-gen graphics API stuff, it is increasingly looking like the best way to get something that Just Works on desktop, web and mobile is still to just use OpenGL.

                    I will say that figuring out how to use Vulkan is a great way to learn how to write sane OpenGL code, though.

                    1. 3

                      I’m thinking about and prototyping a browser framework that somehow combines the following things into a system for making interactive apps: async/await, a hierarchy of concurrent functions that meshes with the hierarchy of DOM nodes, the notion of “structured concurrency” with channels, and trying hard to eliminate explicit state machines.

                      1. 3

                        A few different things.

                        1. Moving my personal website over from markdown + static cms setup to editing html files by hand directly. At the same time experimenting with using monospaced fonts for everything in there. Quite like it so far.

                        2. Finishing and publishing a new simple R package to CRAN. This was a collaboration with another R user, was nice experience overall, now will be waiting for feedback and criticism.

                        3. Trying to tie different work related results together somehow into a coherent story. But it most certainly will take more than a week.

                        1. 3

                          I’ve been dabbling with a side project for managing my IBS. Essentially I want to make a toolkit for monitoring and tracking foods that cause me digestive problems (FODMAPs).

                          I’m also spending some time learning SwiftUI and reading Real World OCaml as I try to get my head around ReasonML and functional programming.

                          1. 3

                            This week I continue to improve my small Nim web framework Express.

                            Now that I have a CI server setup and some integration tests, I can finally focus on handling routes with parameters.

                            In the meatime, I try to lose 2-3 Kg before christmas by eating a bit less a continuing to swim/climb regularly.

                            Have a nice week !

                            1. 2

                              Web framework for Haskell based on Warp and Lucid with Applicative routing, content negotiation, form builder and customizable Action monad.

                              I have two goals:

                              1. To learn Haskell better.
                              2. To be able to build complex websites without Template Haskell.
                              1. 2

                                At home for a few days due to a back injury, so I’ve decided to go restart work on my Forth OS. I’m not a fan of grub (it does too much, and is GPLv3), thus I’m writing my own minimal ISC licensed multiboot-2 compatible bootloader first.

                                1. 2

                                  On Monday night I made a tool for creating quick placeholder images (https://sneaky-image.now.sh/200/200). I want to get a frontend design going for it, and also start planning out some more optional features (color change, transparancy, text, etc)

                                  1. 2

                                    Started learning rust on a number of personal projects. The first was a simple todo app (meant more for learning basics), but now I’m on to trying to port my IRC bot to see how that goes.