1. 13

Feel free to tell what you plan on doing this weekend and even ask for help or feedback.

Please keep in mind it’s more than OK to do nothing at all too!

  1.  

  2. 7

    I’m doing a 24 hour blacksmithing course. Very excited!

    1. 0

      Oh that is cool!

    2. 4

      Busy social weekend, got a friend and family staying over tonight then out exploring the bars of a nearby town with friends tomorrow. And Sunday a friend and I fly to Lanzarote (Canary Islands) for a week of cycling in the sun. Suspect I won’t be touching computers much, but it’ll be enjoyable!

      1. 3

        Checking out Linux distributions suggested under this comment of mine, learning new tools/services/providers used in new job (yay!) and re-learning stuff related to it, which I haven’t used in some time.

        Pleasurable weekend(s) ahead!

        1. 2

          Not in your suggestions but look at Fedora also. It is very set and forget if Gnome is your thing (or sway or i3).

        2. 3

          I wanted to do “freelancing while working on my personal projects” that’s the kind of lifestyle I want but I’ve not had much luck finding clients via Toptal and other freelance networks. Over the past 3 weeks I’ve been emotionally preparing myself for a longer term contract position, but after two weeks of shifting start dates the client pulled out of the contract entirely leaving me in the dry. Now I have to decide if I keep applying to the few jobs available, or if I “admit defeat” and accept a permanent position despite not wanting to give up the freedom. The whole situation is making me quite anxious, as the clock is ticking on my savings.

          Beyond fighting this anxiety I’ll be working on finishing up setting up localization in the gradesta manager and perhaps finishing up ZMQ unix socket support as well.

          1. 3

            I wanted to do “freelancing while working on my personal projects” that’s the kind of lifestyle I want but I’ve not had much luck finding clients via Toptal and other freelance networks

            I did this for several years. It helped a lot living somewhere with a low cost of living. Back then, I was living in Swansea where my total base cost of living (food, mortgage, utility bills) came to around £5,000/year, so anything above that was either paying off the mortgage quickly or spent on luxuries. House prices there haven’t changed much since I lived there, though utility bills have gone up quite a bit and so has the cost of food, so it would probably be closer to £10K now, which is less than rent on a small flat here.

            I didn’t get a single piece of work through this kind of platform. Everything was either word-of-mouth or via open-source projects. If you contribute to an open source project, it is likely to have a community are full of people that have problems that match your skills. I had several interactions that started with ‘can someone help me with this problem [bug / missing feature]’ and ended with ‘can I just pay you to solve this problem for me?’.

            1. 3

              How did you “roll into” these open source projects? They all seem so big and impenetrable to me.

              1. 4

                Hang around in IRC, forums, mailing lists and so on. Talk to people, but especially talk to new people. The people most likely to give you work are not the experienced people that everyone knows in the community, they’re the people who just showed up, need a problem solved, and have more spare money than spare time to solve it.

                1. 3

                  I’ve helped a lot of people in open source contexts but have never had someone offer to pay. Did you make it clear that this was a possibility somehow?

                  1. 2

                    At least most of the time it’s something that they’ve brought up. It probably helps that most of the projects I’ve been involved with have developers as the target audience, so a lot of the people asking for help are folks running teams with contracting budgets.

            2. 3

              I wanted to do “freelancing while working on my personal projects” that’s the kind of lifestyle I want but I’ve not had much luck finding clients via Toptal and other freelance networks.

              Best of luck. This is something I would like to try, but I’m pretty sure I would struggle to find projects (from what I’ve heard you get most gigs via connections, and admittedly I have a hard time connecting to people).

              That being said, I admire you for trying, regardless if it works out for you or not.

              1. 2

                From what I can tell, you can easily find clients if you are like %70 graphics design %30 full stack web developer helping people with special features for eshops and other simpler web applications. For me as a backend developer, I got one gig through toptal where I built an entire MVP from scratch in Django. Took like 3 weeks maybe, not working on it full time. I got another gig working for a mid sized company that had a custom product being used in a huge telecom company. They didn’t have much internal knowledge of the product and I basically just onboarded myself and taught their junior devs to work with it. Took me two months. I loved that, just reading code and documenting it for good money. If I could get two more jobs like that I’d be set for the year financially. I just need to find them.

              2. 1

                Yeah, you gotta stabilize the situation, which does mean sucking up a few things, and once that is covered you have a much better chance to get where you want again

              3. 2
                • I’m thinking about going back to my Raft implementation in Go. I already have the consensus, I could start to add the log and the snapshot system. Would be nice to cleanup the mess, maybe move the persistent state to the beginning of the log. Starting to write tests.
                • Getting more sleep.
                1. 2

                  I got a hand-me-down dell latitude laptop on which I promptly installed openbsd to play with. It’s been working flawlessly so far. even suspend/resume works out of the box. openbsd has been nice so far.

                  1. 2

                    I’m still prototyping my packet sniffing library. I’m looking at nom for the packet parsing part. I like almost everything about it but there are a few things I’m still unsure of, and I want to figure them out over the weekend.

                    First, both the library code itself and the code I wind up writing is pretty inscrutable, and I have no idea what the performance bottlenecks might be just by looking at it. I did some quick benchmarks for shits & giggles and it handles basic decoding tasks very well but I have no idea what to be on the lookout for. So, more benchmarking, yay. I just love looking at graphs.

                    Second, and this is kind of the second thing I’m not sure what to make of, some binary protocols don’t fit that framework very well. I’m looking, for instance, at packets that consist of multi-byte records, but have one 5-bit field and one 11-bit field in a two-byte word. Treating the whole packet as a bit stream is sub-optimal; separately munching a two-byte bitstream made out of the two-byte word is an extra step and also introduces a construct with no semantic significance (i.e. a two-byte thing that has no real correspondent in the record I’m parsing, it’s just a parser framework quirk).

                    The latter is less problematic, some impedance matching is inevitable when you bring in third-party dependencies and nom is clean enough that I think it would be more than worth it. #1 is the bigger deal.

                    The nasty part is that frankly parsing the packets isn’t even the hardest part in a library like this – it’s a boring and pretty well-understood problem. I’m actually aiming for other things, like better and more uniform handling of fragmented packets, a better interface for library users (making it easier to tie in if you’re writing a packet sniffing tool, partial packet decoding if you only need some of the fields, support for device-specific quirks – e.g. to allow packet sniffers to get “reading a floating-point value” instead of “reading two registers” over Modbus without compromising the actual Modbus decoding), parallel packet stream decoding. But, hey, I’m told Rome wasn’t built in a day.

                    1. 1

                      nom is very good for binary data I think. Nom is unlike “normal” parser combinator libraries it doesn’t track line & column numbers or automatically provide nice error messages. But you don’t need that functionality for binary parsing. Why wouldn’t you use a lexer step first to divide the input stream into 5 & 11 bit chunks?

                      1. 1

                        I probably will – my main concern is to make sure that what I write is idiomatic nom code, and I gotta do some reading to figure out what the idiomatic approach(es) would be in this case.

                        I really like nom, and the fact that it doesn’t push any preconceived ideas about position tracking and especially error signaling is one of the reasons why I’m considering it. Parsing binary protocols for packet sniffing purposes is very different from parsing them for protocol implementation purposes. E.g. you don’t want to just drop malformed packets, but you also need to signal that they’re erroneous (and in what way) to facillitate safe handling at the application end. I really like nom’s approach to this.

                        1. 1

                          I guess you just have to know what nom is for. I once implemented a simple markdown parser in nom and was disappointment by the lack of automatic error messages. So it’s really a matter of context whether it is the right library for the job. But I think for your use case it is perfect.

                          I’m not sure what the idiomatic way of doing what you want is. Coming from a Haskell background using a lexer in a lazy pipeline would be perfect, but I’m not sure if it is possible to do that zero copy in rust if you need the echt performance.

                        2. 1

                          Why wouldn’t you use a lexer step first to divide the input stream into 5 & 11 bit chunks?

                          That isn’t usually possible for packet parsing. Until you’ve parsed on header, you don’t know what the layout of the next one is and a lot of protocols have fields of weird bit widths.

                        3. 1

                          I feel like absolutely everything about Modbus is a gigantic kludge; but I see it as a product of its time.

                          1. 1

                            I feel like absolutely everything about Modbus is a gigantic kludge; but I see it as a product of its time.

                            It absolutely is a product of its time. It’s a protocol that served its original purpose very, very well, and it was actually very well-suited for it and not a kludge at all. Even the dreaded ASCII mode was… okay, it was a klduge, but a clever one, that saved unspeakable amounts of money. Once it got extended past that model, things went… well, after that it became a huge kludge, yep.

                        4. 2

                          Knee-deep in an Alloy specification for a custom ERP system, but I’ll make some time to take my son to the beach.

                          1. 3

                            I wrote some of the docs for that! Feel free to ping me if you have any alloy questions :)

                            1. 1

                              Thanks!

                              Today I was refering to your post introducing Alloy 6. I thought I would write the spec using only the old-style, but it got cumbersome. Thanks for the great docs and articles.

                          2. 1

                            I might gather my notes on domain lifecycles and expiration, and automate a bit. So the next time a domain I’m interested in starts to lapse, I can at least make new mistakes.

                            1. 1

                              Going through my stacked up GitHub notifications, mostly. If the weather permits, I want to go hiking somewhere in Cologne, and speaking of hiking, I’ve been thinking about hacking together a small web app for personal use that collects all trails I’ve been to and want to go to. I might give Rails another shot for this.

                              1. 1
                                • Watch lectures on Visual Group Theory
                                • Finish setting up my new work laptop and push the changes to my dotfiles
                                • Continue working through Black Hat Rust
                                1. 1

                                  Practicing for open mic on Monday, and planning to write a blog post about levelling up my pull-requests. (Expanding on a brief memo I did for work.)

                                  1. 1

                                    Hopefully finishing a blog post about generating a test suite. I always want things like this to be realistic, so actually the most time consuming part is setting up a realistic example application.

                                    1. 1

                                      For a few weeks, I’ve been working on a revision of our server-side cookie handling for session management, and a bunch of related machinery. I’m hoping tonight to finally get to the point where I can begin testing these changes en masse. Session cookies allow systems to dramatically improve an application user’s life, but they also introduce all sorts of possibilities for attacks (including but not limited to cookie theft), so the design work has been fairly brutal. Mix in the complexities of various poorly done HTTP specifications, and then the browsers not bothering to follow the HTTP specifications, and it becomes a bit of a nightmare.

                                      1. 1

                                        Mostly spending it attending the Philosophy of Deep Learning conference at NYU. I’m not a philosopher, but I like to keep up on philosophy of AI. So far it’s interesting!

                                        1. 1

                                          I’m currently messing around with FamiStudio, and checking out the latest Raylib release (4.5). Then heading back to Octopath Traveler II when my brain is finally squeezed dry, and needs to recover.