1. 14

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

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

  1. 10

    I’m working on creating my life-size animatronic butterfly jewelry. No, alas they do not fly. But they do sit there on your clothes looking pretty.

    Last week I scaled down the mechanism from about 7cm to about 1cm wide. (old gears for reference)

    This week: scaling down the “backpack” containing the electronics. Instead of Arduino+motor driver board+breadboard it’ll soon be just one ATTiny85 chip and a small charging board.

    In a few weeks I hope I can report back that I’ve CNCed the shell in metal instead of 3D-printing it. Fingers (and antennae) crossed!

    1. 8

      Restarted working on Scheme targeting web assembly!

      1. 2

        Good luck! Makes me want to draft a Smalltalk implementation that targets WASM, likely using Rust.

        1. 1

          Or better maybe do a WebAssembly back-end to Squeak? :)

          (OK OK I’m sure as a seasoned Smalltalk-er there are probably 100 reasons why this won’t work and you hate Squeak, it’s just got a nice corpus of software available for it)

          1. 1

            Oh, I’ve never heard of Squeak and I only have nominal exposure to Smalltalk. Tell me more!

            1. 1

              Absolutely! As I say IANAS (I Am Not A Smalltalker! :) so I’m hardly competent to evaluate its goodness or lack there of, but Squeak is a multi-platform interpreter smalltalk implementation that’s been actively hacked on to greater or lesser extents for YEARS and has a huge body of software written for it - server side frameworks, browsers, graphical doo dads of various sorts, an entire UI framework, and a lot more I can’t even speak to.

              I’ve always been enamored with it. Smalltalk is on the list of languages I’ve barred myself from spending time on until I master some CS basics more fully.

              1. 2

                Nice! That does look pretty neat.

      2. 7

        Aside from regular work, I’m working on my code editor: cross platform, simple, modal and opinionated terminal code editor.

        It’s been about 2 months that it’s now my main editor (just uninstalled neovim :D). It’s coded from scratch using rust, and today I removed the last non-platform dependency (fuzzy-matcher) and now the only dependencies are winapi and libc that are used in the platform layers.

        My next milestone is updating the screenshots/gifs on github and some more polish before going 1.0

        1. 1

          Well done! Now I need to go digging for a link :D

            1. 1

              Thanks! Is it okay to link it here? Anyways, the project’s name is Pepper which is named after my cat :D

              1. 1

                It’s probably fine. After all; we are here to share our thoughts on technology!

                Edit: it looks like a cool project, the opinionatedness is very much in line with my opinions.. leave everything to other tools and focus on the editor component.

                1. 2

                  Thanks and thanks for taking a look! I took lots of inspiration from Kakoune on that

                  1. 2

                    That’s great, I love Kakoune’s take on vim commands. I wish it was supported in popular IDEs (there’s a buggy one for vscode, and that’s it I think).

          1. 5

            Finally got around to restarting my roguelike attempt, this time heavily inspired by pushcx’s 7DRL Ironwood. I just can’t stop myself from getting obsessed on the mapgen, though.

            1. 5

              I’m working on my little D language gui library again. I started writing it back in.. 2013 I think and wrapped basic Windows controls then emulated them on Linux, buttons, checkboxes, etc. I made the event model based on Javascript, so you’d button.addEventListener("click", function () { ... });. Well, there’s a bunch of things I regretted about this as time went on (D is a statically typed language yet I’m using strings and generic event objects instead of regular interface), but it seemed like too big of an effort and too much of a breaking change change it so I just kept going.

              Well throughout this month I finally thought of a transition path I didn’t hate and have been working on it… it started with just adding an alternative button.addEventListener((ClickEvent ev) { ... }); instead of just the strings. And now my todo list for this 2.0 transition is… 27 items long. So I gave myself a deadline of next Monday and will just see how much of it I can actually get done.

              1. 5

                Learning Elm for creating a web UI(experimenting rather than using existing JS frameworks) for Python Typing Koans and add more examples from third party libraries like Django

                1. 4

                  I am working on my DOS Games Jam entry. Learning C programming for DOS and attempting to use as few libraries as possible.

                  1. 1

                    TOO funny! It feels like we’re scratching a very similar itch (See my entry above).

                    DOS is actually an incredibly cool and VERY deep ecosystem. I had no real appreciation for that until I lived with some people who worked for FTP software where they implemented a TCP/IP stack for DOS including async I/O / callbacks etc and ultimately full WinSock support when that became a market driver.

                    Out of curiosity what are you using for a stack? e.g. which compiler suite and such?

                    1. 1

                      I’m using Open Watcom on Windows 10 to cross compile for a 16 bit DOS target, and for now testing in DOSBox. I have an 8086 that I am hoping to have it run on, if that proves too challenging before the jam completes I also have a 386 and a pentium machine to run it on.

                      Aside from having my entry run on real vintage hardware I also plan on using js-dos to allow people to play it from the comfort of their browser.

                      I see things like the PICO-8 where people have recreated the limitations of older hardware and how vibrant the community is around that. DOS, especially with js-dos also I feel should appeal to the same crowd.

                      1. 2

                        Oh for sure! It’s why I’ve gotten back into the Atari 8 bit. There’s something incredibly refreshing about working in an architecture that’s SMALL and easy to understand!!!

                        WRT PICO-8 - I love that community but wish he’d open source the engine. I’d love to get people to look at TIC-80. Same idea, almost feature compatible, but 100% FLOSS.

                        I look forward to playing your game!

                  2. 3

                    Waiting in the lobby to get my second shot right now, then finishing a move, them prepping for next week’s tla+ workshop.

                    This has been a very, very long May.

                    1. 3

                      Finishing a compact TUI task manager I used to start learning Rust. After that I will try to get some feedback on my code. I stuck to cargo clippys feedback but I can learn a lot more by specific suggestions from better Rust programmers. Even without feedback I’m immensely satisfied. Learning Rust was this big daunting task to me. Now I managed to build a working application in a few hours. Really looking forward to dive deeper.

                      On Saturday I participate in a 24 hours / 400 km cycling race so I will definitely pack and prepare my gear in the evenings.

                      1. 3

                        Rust is pretty fun learning! Once the borrowchecker clicks for you, it becomes really pleasant to write.

                        Are you using any crates in your project? I’m curious on how you interact with the tasks. Are they always single line and you edit them in place? Do you open an external editor? Did you implement and editor withing the application?

                        1. 1

                          Thanks for the encouragement. I also realized how little I know about memory management. String and str made that obvious very quickly.

                          I’m using three crates: termion, uuid and sqlite. There are three screens. Task list, adding a new task and editing an existing task. The input screens are only static text with a single line for the input and cursor. I implemented an editor in the sense that the application handles any character key, backspace and return to finish.

                          The task list shows the four states (todo, done, in progress, discarded) as color and symbol in front of every task. You can select a specific task with the arrow keys. There are hotkeys to change a tasks state, edit it or add a new task to the end of the list.

                          It’s really basic but was great for starting to learn Rust. I have a hard time with theory or toy examples. Instead I tend to build real things when learning something new. Sometimes this is a challenge but with Rust it turned out easier than anticipated to get going. The compiler is fantastic, I rarely had to use the internet, better than I imagined.

                          1. 1

                            Cool! Learning these rust stuff also made me a better programmer. I’d love to see some screenshots/gifs of it in action!

                            One “trick” I use when developing in rust and need info on, say, a stdlib struct, “!rust ” will search rust docs (if you have duckduckgo as your default search engine). I always take a look at the available methods (and examples) to see if there’s anything that already solves the problem I have (usually there is).


                      2. 3

                        Working on an Ada tool for code discoverability for myself. I’ve been playing with parallelism and managed to get a good improvement in an area by distributing work and keeping CPUs running when I/O is blocked.

                        1. 2

                          Experimenting with C4 model diagrams (using C4 PlantUML) to document the architecture for a greenfield project we’re building, and really liking it! Hoping to also write more implementation notes/guidelines and some tickets for said project.

                          1. 1

                            I like C4 model. Thanks for the remainder. Too bad I am not in a position where I am expected to produce that kind of diagrams. And doing those for my pet project seems an overhead.

                          2. 2

                            Hopefully, if the cable arrives in time, test firing my newly acquired Atari 800XL and starting my side projects of first doing a couple of mostly throw-away programs in Atari BASIC, and then OSS Action! a language I fell in love with immediately about 40 years ago and have VERY much wanted to get back to ever since for something more substantial like a game or perhaps a usable utility.

                            Once I get my Atari programming chops back I’d love to use the new Fujinet project which adds a TCP/IP stack and do something fun with 8 bit networking. Perhaps a simple MUD like thing or something.

                            I just need a radical shift from the Python programming I do day in day out as I’m getting kind of burned out doing that in my off time as well and I associate 8 bit platforms with pure, unadulterated fun :)

                            1. 1

                              Update: ITS ALIVE!!!

                              Gotta say having a 64K 6502 based computer with 64GB of storage hanging off it makes my inner 12 year old feel like he’s gone to Disneyland :)

                              The work FlashJazzcat has put into the firmware is pretty incredible. The Side3 cart emulates cartridge and floppy drive, as well as bundling an extended DOS (SpartaDOS to be exact) with a clock/calendar and a bunch of other features.

                              Gonna enjoy hacking some 6502 ASM with MAC65 on this machine and maybe some BASIC for old time sake :)

                            2. 2

                              At least partially, trying to figure out how to setup vulnerability scanning for The Company™ system, any tips are appreciated.

                              1. 2

                                One thing that would be helpful is knowing the language/framework The Company is working in.

                                Like, obviously there’s Metasploit, but if you’re working in Python as a for-instance there’s a ton of great tooling including Bandit but there are also more specific tools depending on whether you’re using something like Django or Flask or even not working on the web in general.

                                1. 2

                                  Right now we’re focusing on static analysis, and more specifically on docker image vulnerability analysis (mostly because we have an annoying customer). We tried snyk but the webapp is really slow, trivy is cooler, but there are license issues with the vulnerability database.

                              2. 1

                                Dumb stuff with virtual machines!

                                1. 1

                                  I made Preql thread-safe, and I’m going to add syntax for column indexing.