1. 25

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

    Writing more C. After writing so much Rust and C++ recently it’s been lovely stepping back into a simpler, better (subjectively! in my opinion!) language that really forces me to think about every line of code. C really gets out of your way and lets you focus on what you want your code to actually do instead of spending so much time getting bogged down in how to express code. “There’s just functions and pointers and that’s all you’re going to get so just get on with it.”

    1. 4

      This perspective is super interesting to me since I find needing to do the malloc() / free() dance to be the ultimate getting in my way :)

      I’ll admit up front I’m not well suited to writing super low level code. I suspect I could develop that discipline if I worked at it, and maybe someday I’ll have time, but for now I’m just trying to attain mastery of my simple old Python world :)

      1. 9

        The more C I write, the more I realize how little I actually need to allocate by just looking ahead and defining and error checking “reasonable” bounds. Adding error checking around these bounds has caught many errors, like string parsing issues which would have otherwise been missed and been bugs later.

        1. 2

          Having trouble understanding what you mean here. I realize it’s a stretch but you wouldn’t happen to have an example you could link, would you?

          1. 9

            e.g. Rather than allocating names for shader uniforms, I define a maximum length for a uniform name, check it against the graphics API, and then don’t have to allocate:

            typedef struct {
              char name[RLL_MAX_UNIFORM_NAME_LENGTH];
              GLuint location;
              // snip...
            } Uniform;
            

            I don’t allocate lists of uniforms either, I just use a fixed size array, and then verify the number of uniforms I’m using is less than the maximum supported, and than every shader uses less than that value as well.

            typedef struct {
              Uniform uniforms[RLL_MAX_UNIFORMS];
              uint32_t numUniforms;
              // snip...
            } Program;
            

            I think I only allocate in my game engine so far on file reads, such as for images (for now, it’s probably going to change to reuse specially allocated blocks for that, or just parse 4KiB at a time with a static buffer or something).

            1. 2

              Ah I get it! That’s very cool.

              So you’re letting the compiler handle data structure allocation for you.

              That makes a lot of sense.

              1. 2

                It is often advantageous to break your structure up column-wise:

                struct {
                  char name[RLL_MAX_UNIFORM_NAME_LENGTH][RLL_MAX_UNIFORMS];
                  GLuint location[RLL_MAX_UNIFORMS]; 
                

                This tends to be faster when you’re more likely to be working on a list of locations, instead of the list of pairs (names and locations).

                I wish C compilers had an option to group members together in memory so you could write things using nested structs.

                1. 2

                  Very true. I’m going for “Make it work” right now, and was then going to profile to determine how much faster “Struct of Arrays” is in this case. A major component of what I’m doing is to document the rationale (with data where appropriate) to help people learn about the decisions which go into designing these types of things.

                  The idea is a simple but functional game engine which kind of “grows up with you” to get people (especially kids) started programming, where you can get started learning by writing Python code which the driver will run, and then as you learn more you can get into the guts of extremely well-documented C code with rationales and write plugins and games.

                  1. 1

                    As much as I hate to admit it, an array-of-struct to struct-of-array transformation would probably be relatively easy to implement using Rust’s new procedural macros.

                    1. 2

                      Why would you hate to admit that?

            2. 2

              Don’t worry I absolutely love Python too (but not Python 2!) :)

              1. 3

                I really prefer 3 myself. I know some people feel like they’ve ruined the language but I really enjoy all the new feature comforts like f”” and dicts being ordered by default :)

                1. 2

                  They’re absolutely wonderful, aren’t they? Maybe a little too easy to use, if anything. I saw f"some static string with no formatting" the other day in a friend’s code and he was very embarrassed.

            3. 1

              I’m curious about the experience of the C language after using Rust. Do you think in terms of lifetimes and ownerships in your C code now?

              1. 3

                I thought about lifetimes and ownership in C code before I had even heard of Rust. I’m pretty sure modern C++ (and to a lesser extent Rust) exposure has strengthened my thinking about object lifetimes, but the concept has been quite common in (well-written) C code forever.

                One of the nice things about C is that you can reason about lifetimes that your compiler can’t understand without the compiler throwing a tizz :P

                1. 3

                  However, the downside is that the compiler doesn’t point out lifetime problems in places the programmer can’t understand.

                  1. 7

                    Quite right! But I try to write nice simple code so that I can still understand it many months later.

            4. 10

              Writing more Rust

              1. 2

                No Rust for me this weekend but only because I’ve been working with it all week. The ray tracer is coming along nicely.

                1. 1

                  Oh wow, you just reminded me that I should work on my raytracer again.

                  I bought a big book on raytracing a few years ago, had a brief skim through it, implemented the very most basic ideas and promptly put it into my bookshelf and totally forgot about it. It was (I think?) not long after I had completed a graphics course at university where we’d covered and implemented basic raytracing and I wanted to dive deep right into it, but I probably wasn’t quite ready.

                  1. 1

                    I’ve been going through this book and have found it very accessible even without a background in matrix math.

                    1. 1

                      https://www.pbrt.org/ this is the book I was thinking of! Found it at last, hidden away in a stack of books.

                      1. 2

                        Nice! Thanks.

                        The third edition is online for free now, too: http://www.pbr-book.org/.

                2. 0

                  This weekend I will do the same

                3. 9

                  Camping!

                  1. 2

                    Away from your computer? Ugh. :p Enjoy!

                    1. 2

                      I’ll probably even leave my phone at the trailhead. :)

                  2. 8

                    I really really need to bring my bike to the shop to get its headlights fixed (been putting it off for weeks). And I am going to make a new release candidate for CHICKEN 5.2.0!

                    1. 7
                      • Lobsters dark mode.
                      • Ongoing work on unifying let, var and fun syntax in a programming language I’m contributing to.
                      1. 3

                        Lobsters dark mode.

                        Oh yes please!

                      2. 6

                        I will continue to learn SDL2 and game development in general by reading the book SDL Game Development. Even if the book is in C++, it is really easy to rewrite it in Zig :)

                        Refs: SDL Game Development, Shaun Mitchell, 2013

                        1. 6

                          Starting in on a tough chapter in my book that may take a week or more to complete. I had been writing essays, posting them here, getting some feedback. The idea was to join up the best into a longer work. But there must be glue, you have to create a unified theme, and you have to be driving towards an interesting an unique point, otherwise it’s just a vanity work. So this week it’s a background in semiotics and how C.S. Pierce’s work influences tech development to a huge degree even though most folks don’t even know who he is. Fun stuff. Wish I were coding. :)

                          1. 3

                            (Looks at post history) - Looks like I’ve got a lot of cool things to read :)

                          2. 6

                            I’m going to try and fail at learning Typescript and React at the same time to create an interface for a project of mine. Hopefully I can at least make it work :P

                            1. 4

                              Failing is good despite what you may see, think, or hear others tell you. I think the majority of us here have failed more than we let on ;) Which is good, it helps us grow.

                              I suggest you first learn React, and then learn TypeScript in that order. You need to understand how React applications are structured and defined before starting to type-check them.

                            2. 5

                              Beating Dark Souls (for PS3! Yep, people are still playing) after like 2 years. Just beat Gravelord Nito and fighting Demon Firesage. This game has been SO hard because I ended up 1. Killing the Blacksmith in Undead Parish and 2. Thought fighting Sif the Wolf at level 24 was the normal thing to do 3. Having no idea what the stats REALLY do and how weapon scaling worked. I grinded levels to make the game bearable and now I’m 81 with Smough’s Armor and Gravelord Sword +4 since I had so much Demon Titanite saved.

                              I would like to maybe try rushing out this memory game idea I had. I’m playing with ggez (Rust graphics library inspired by LOVE from Lua) as a precursor.

                              1. 2

                                I started out DS1 by going down the graveyard and skeleton path, and instead of taking every possible hint to explore elsewhere I got really good at exploiting AI pathing weaknesses. Got all the way down to the gate block before taking the hint that maybe, maybe take the other road from the shrine. The game got much more enjoyable after that.

                                1. 1

                                  Yeah after awhile, I think majority of players that finish the game who had a hard time end up being better than most, because you’re forced to have totally dissected how the AI code is working, and also you end up with this really good sense of direction and can “see” the level design eventually. I think I got through 2/4ths of the game now in like less than a month of on/off playing.

                                  Got all the way down to the gate block

                                  Heh, about 5 minutes further and you could’ve had the Gravelord Sword early.

                                  1. 1

                                    Been on a roguelike binge (isaac, gungeon, dead cells) for a while now, but every Soulsborne marathon I start DS down there for the great scythe.

                              2. 4

                                Helping my brother renovate his home and hacking away on a static site generator I’m building in C. In between the usual parental obligations that come with having 2 toddlers to care for.

                                Current working name for the site generator is Coconut, unless I can think of something better.

                                Enjoy your weekends everyone!

                                1. 4

                                  I’m reading Daniel J. Solove’s “A Taxonomy of Privacy” (https://papers.ssrn.com/sol3/papers.cfm?abstract_id=667622).

                                  1. 4

                                    Have a small backlog of things my friends were asking me to machine, so it’s going to be few hours with a lathe in the basement. Then, a checkup on the vintage hardware: a PDP-11 singleboard clone, and a ZX-Spectrum clone that I haven’t powered in 2 decades.

                                    1. 4

                                      2D C99 game engine. I’m continuing with font rendering, and skipping TrueType fonts for now. I got Bizcat (thanks @robey) loading from the psf file and the unicode map and into a texture already, I just need some glue to better distribute the glyphs in the texture and to write rendering code to use the texture atlas. Once I have text working, I’m moving onto ECS and making some simple sample games. Whee!

                                      1. 4

                                        I’m at a code camp for Zetkin Foundation, at a country house somewhere in south Sweden.

                                        1. 4

                                          I just joined a maker space so getting an orientation on the table saw then doing some woodworking (working on a bed headboard thingy). Plus a custom gear mount for my van dashboard and maybe some 3D prints if there’s time.

                                          1. 3

                                            Taking the long weekend away from the keyboard. I managed to aggrivate my wrist a few weeks back doing something stupid (Would you believe playing with my Mattel Intellivision I resurrected from storage? I got a ROM cart for it and loaded every game ever developed for the platform on :) and I’ve been babying it while trying to get my day job done, so it’ll be good to take a long breather.

                                            Also good to take a solid, several day break largely offline from a mindset perspective. Plan to get some reading done, watch The Expanse with my wife, and spend lots of quality time with her and our rescue dog Chiweenie :)

                                            1. 3

                                              I need to catch up on reading. I’m working my way through, what I consider, the Jocko trilogy: The Dichotomy of Leadership, Extreme Ownership, Leadership Strategy and Tactics. I finished Dichotomy and am almost through E.O.

                                              Other than that, I’ll, hopefully, be mostly focused on family time and away from code for the weekend.

                                              1. 3

                                                Continuing to give my blog a facelift: removing Bootstrap, switching to a serif font, etc.

                                                I’m pretty slow with CSS stuff, so this has taken a lot longer than I expected. Bootstrap (and similar frameworks) are great, but for me it’s become a crutch…

                                                1. 2

                                                  I would describe myself as “pretty slow” with CSS too—I just implemented prefers-color-scheme on my own website and can attest to how simple it is. If you haven’t considered adding that to your blog I would highly recommend it (having dark mode just work with a few extra lines of CSS is super satisfying).

                                                  1. 1

                                                    I use bootstrap a lot at work and I wouldn’t describe it as a crutch, I feel more like it’s not reinventing the wheel. I know how the underlying rules work so I can utilize the library to its potential. If I didn’t use a CSS framework I would probably just be rewriting what a lot of frameworks already have.

                                                    1. 3

                                                      This prompts me to wonder: What’s the difference, exactly, between a hiking pole and a crutch?

                                                  2. 2
                                                    • Working Party at the sailing club
                                                    • Bringing some infrastructure online for a friend to consolidate hosting into (and setting up things like backups from the off…)
                                                    • Working on the race management system for the sailing club, slightly more urgent as our racing calendar starts on March 1st and that’s not far away
                                                    • Gym, as I’ve not made it yet this week and I really need to do something
                                                    • Some time with the family, probably Mario Kart shaped as I’ve not played for a week or so
                                                    1. 2
                                                      • Time with my girlfriend. (It’s Valentine’s weekend!)
                                                      • A sleep study. (Quality sleep is a force multiplier for mental health!)
                                                      • Working on my game project. (One of my daily habits.) Going to sketch more music with my Pocket Operators in the process.
                                                      • Play more of Mistover. It’s strongly inspired by Darkest Dungeon, another excellent game I’ve played, but with a stronger JRPG vibe.
                                                      1. 2

                                                        I’ve queued up a number of USB HID devices that needs some reversing. To step out of my normal ‘script for open + send report read and pipe into xxd’ flow and comfort zone, I’ve started writing a TUI tool to handle collection, fuzzing, diffing, visualization and note taking. The tool is about ‘good enough’ now that I am going to start testing it.

                                                        1. 2

                                                          This weekend I’m going to mostly relax. I’ve been exploring some more creative hobbies recently (photography and illustration). I might take some courses on concept art as it’s something I find attractive in the illustration realm specifically. I’ll probably also watch Evangelion 3.33 :)

                                                          1. 2

                                                            Continuing to do some work on TinyDevCRM (or “tinydev”): https://bytes.yingw787.com/posts/2020/02/08/tinydevcrm_1/ (Can’t publish a new post due to new lobste.rs rules, which is all good with me!)

                                                            Hopefully I can get to MVP stage by end of next week, how likely that is I’m not sure.

                                                            1. 2

                                                              I finished Dune last weekend. After giving up on The Lord of the Rings 15+ years ago, I will attempt reading it again. This weekend, I will start reading Fellowship and hopefully this time I will get into the literary style of Tolkien.

                                                              1. 1

                                                                From my memory of The Fellowship of the Ring, the first 2 or 3 chapters can be a slog. It picks up after that.

                                                                1. 2

                                                                  I love the Lord of the Rings… but it is a glacial book. Maybe that’s just because the last time I read it I was trying to get back into the habit of reading and my attention span was shot, though… do read it, though :-)

                                                              2. 2

                                                                I am gonna try to compile ANGLE library and use their layered GLES on Windows. The library exposes a GLES API on top of Direct3D or Vulkan, so it is neat for portability. :)

                                                                1. 2

                                                                  Cold and snowy here in Montana. Snowboarding on Friday, then on Saturday clearing some brush and dead trees on some property I own in preparation for building a house. Probably writing zero code, which is abnormal.

                                                                  1. 1

                                                                    After failing at selling my idea to wikimedia, I choose to continue nonetheless working on nomunofu, except I will drop support for wiredtiger and focus on FoundationDB (which can scale down since it can work in standalone mode). Instead of full RDF specification compliance, I will work on an easier to grab fruit that is a subset linked data fragments.

                                                                    So, the goal for this week-end is to implement FoundationDB bindings.

                                                                    1. 1

                                                                      Lambdadays conference in Kraków. Workshops took place today - I have chosen an elixir workshop.

                                                                      I recommend you to have a look at videos when they come out. John Hughes was awesome as usual.

                                                                      1. 1

                                                                        Hedonic tone. Become aware of it. Maintain a positive hedonic tone.

                                                                        1. 1

                                                                          Writing Nim. I don’t know what for, though…

                                                                          1. 2

                                                                            Let me know if you want any ideas! If you like command line stuff, I recommend porting your favorite parts of your favorite command line tool to Nim. Otherwise, websites in Jester are pretty quick to get started with, if you have examples.

                                                                            I’ve written a basic ls in Nim recently (to make it less of a pain on Windows. dir /W just isn’t the same). I’ve also written a jumplist tool, and a time-tracking application.

                                                                          2. 1

                                                                            Buying a new cell phone. I lost my One Plus 5. Going to looking for something cheap, until I can save up for another One Plus phone in a quarter or so, depending on how the cheap phone treats me.

                                                                            1. 1

                                                                              Reading Engineering: A Compiler by Keith Cooper and Linda Torczon and taking notes along the way.

                                                                              1. 1

                                                                                I still got a big todo on my list: Decommission a old dedicated server with a lot of WordPress sites (a lot of small websites) on it and migrate the important sites to a VM at our new site.

                                                                                But I’m now really tending to avoid using the computer over the weekend at all to just clear up my mind.

                                                                                1. 1

                                                                                  doing a hackathon!

                                                                                  only problem is I don’t really have an idea… open to suggestions :)

                                                                                  1. 1

                                                                                    What interests you? Is it an open-ended event? If so, it’s always rewarding to find an open source project to contribute to! There are also many repositories that contain project ideas that people have requested to be implemented.

                                                                                    1. 1

                                                                                      It’s fairly open ended. There are 6 categories to win grand prizes in, and then other prizes related to various software/hardware that you incorporate in your project. I’m actually super interested in contributing to open source! I think at this hackathon last year there was a prize for most impactful open source contribution but I don’t think they’re doing that again this year. If I don’t end up on a team going for one of the main prizes, I might just work individually or one or two others to contribute to open source!

                                                                                  2. 1

                                                                                    Visit family, maybe restructure my docket project if I get an hour or two :)

                                                                                    1. 1

                                                                                      Visit family, maybe restructure my docket project if I get an hour or two :)

                                                                                      1. 1

                                                                                        Catching up on sleep and hanging out with friends & GF. Working on a side project for work to parse JS in our huge SPA codebase and find all the remaining angularjs definitions along with their dependencies so that we can map out the remaining migration effort. Maybe try to finish the parser chapter of FP in Scala which has been challenging. Definitely playing some Assetto Corsa Competizione here and there as well :)

                                                                                        1. 1

                                                                                          I’m working on a native, cross platform desktop MFA app. Think of Authy app but run on desktop too, and no electron.

                                                                                          The UI is still ugly but the functionality is there. If you want to try it out, head to: https://github.com/yeo/bima

                                                                                          Or email me [this-username]@getopty.com

                                                                                          1. 1

                                                                                            Probably packaging zzt, zeta, and kevedit for NixOS so I can get my submission in for the community’s Town of ZZT remix.

                                                                                            1. 1

                                                                                              The weather forecast suggests an indoor weekend, though I hope to take my son (8) out to drama class and the swimming pool. I hope to spend some time making music, playing the Discworld board game (son’s current obsession) and gathering all the information to apply for UK citizenship.

                                                                                              1. 1

                                                                                                I’m gonna try to finish writing an article for my personal website regarding a programming idea I had. If I can get that up I’m gonna try to finish a videogame in Unity that my girlfriend wanted. A simple balloon popping game that used to be on some old Nokia phone.

                                                                                                1. 1

                                                                                                  Continue farting around with an Alpine Linux install on an old x240 I have. Everything is running pretty well just a few minor annoyances to smooth out.

                                                                                                  Also maybe play some Rocket League and help a friend build their first gaming pc.

                                                                                                  1. 1
                                                                                                    • Getting in touch with more old friends and colleagues in the Bay Area, now that I’m back here most of the time.
                                                                                                    • Hacking along on the hobbyist control plane.
                                                                                                    • Buying a second Apple USB keyboard from the Inner Sunset ($25!). I work out the x key of my old, home keyboard, and seems likely the office one will be back in an office soon.
                                                                                                    • Moving back into my old apartment as a short term lease.