1. 11

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

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

  1. 14

    I’m writing a guide in Italian for majoring CS students and how to avoid exploitation in their first jobs.

      1. 1

        Exploitation in what sense?

        1. 1

          exploitation by the employers: low wages, crunching, attacks on workers’ autonomy and so on.

      2. 8

        Working on laarc. https://www.laarc.io/

        Around 300 people show up each day now.

        traffic graph for laarc.io at 1.5 months

        vs

        traffic graph of Hacker News at 6 months

        There’s an interesting discussion about two-way string matching: https://www.laarc.io/item?id=1197

        You can view multiple tags at once now: https://www.laarc.io/l/essays|classics

        And you can search stories and comments: https://search.laarc.io

        Today I’m setting up json endpoints for our iOS app. Here’s an album of WIP screenshots: https://imgur.com/a/5L5v65N

        1. 2

          Ooh I like this!

          1. 2

            Issue:

            • fix RSS thing. Expected: a few entries (say, the recent ones of the last 3 days) Found: 700+ links up to “Test post please ignore” dated 61 days ago

            Feature request:

            • add something more than a title/link (keywords? quick abstract? reason why the article was suggested?)

            Super feature request:

            • a “category”, similar to a tag. Every submission will be tagged to a single category. There will be no more than a couple dozen categories. Every category will have a RSS feed. Use case: “only bother me with videos, news, rants”.
            1. 2

              I added RSS feeds for tags:

              https://www.laarc.io/l.rss/!programming&!dev&!news

              https://www.laarc.io/l.rss/ask|show

              It’s experimental; let me know if it works how you expect.

              1. 2

                fix RSS thing. Expected: a few entries (say, the recent ones of the last 3 days) Found: 700+ links up to “Test post please ignore” dated 61 days ago

                That was actually my idea, which in hindsight might not be a great one. Is it a bad idea for the rss feed to show everything? I figured “Why not” since most RSS feeds do. But a news site might be fundamentally different from someone’s personal blog in that respect.

                add something more than a title/link (keywords? quick abstract? reason why the article was suggested?)

                You can. One diff vs HN is that you can submit text along with your URL.

                The trouble is that it’s hard to notice. It doesn’t show up as a comment, so people rarely check the actual story. I could show the text on the front page, but then the front page would be less information-dense at a glance. That has ill effects on stories lower down the page, since the top 10 stories end up becoming the de facto frontpage.

                a “category”, similar to a tag. Every submission will be tagged to a single category. There will be no more than a couple dozen categories. Every category will have a RSS feed. Use case: “only bother me with videos, news, rants”.

                There are actually two feature requests embedded in this excellent suggestion: an RSS feed for tags, which I have always intended to do and can re-prioritize now that it’s come up again. And categories, which were recently introduced via tag combining operators:

                https://www.laarc.io/l/!programming&!dev&!news

                ^ that’s laarc without programming, dev, or news.

                https://www.laarc.io/l/essays|classics

                essays+classics.

                It feels much more freeform than categories, and users can configure them how they like.

                The idea is that you should be able to add /.rss to the end of a link like https://www.laarc.io/l/essays%7Cclassics and get an RSS feed, similar to reddit. Would that work for your suggestion? (Tag-combining operators weren’t exactly what you asked for, and categories might be worth considering.)

            2. 8

              Absolutely nothing and my brain needs this I think.

              1. 2

                I do this as often as I can on weekends. Burnout is real and it hurts.

              2. 6

                When somebody posted here a link to broot just before last weekend, I got a bunch of unexpected stars… and PR and issues.

                So I’ll still be doing what must be done, more especially working on this issue to ensure having broot fully installed is as smooth as possible for everybody (and improving a lot of small things with the underlying refactor).

                1. 2

                  It was a really, neat project. I like the concept of showing pieces of each directory. That alone is worth further exploration in UI design.

                2. 6

                  Jumping ship from (newbie) Rust to (newbie) Nim with my WIP Nixme (“Nix minimal effector”) hobby project. Reasons: dumping Rust mainly because of too slow (for me & in this case) development speed; and picking Nim over Go mainly because I want the result to have small binaries, for use on e.g. Raspberry Pi, while still good cross-platform support (incl. Windows), and good readability (Python-like).

                  However, still interested in maybe splitting some parts between Rust and Nim in future, esp. for potential compatibility with rnix. After the initial experiments in Rust, I do understand and love its appeal. But the costs proven still a tad bit too high for me in this case.

                  Also, probably some life stuff etc. ;)

                  1. 2

                    I’m in a similar wagon.

                    I’m still pondering whether the big projects in my company will be in Rust or Go and the cost of development is an important factor for sure (the small and critical projects will very certainly be in Rust). I can’t fail to notice how much time it takes to add features and it’s not really clear whether the increased quality of the software is worth the cost. Hiring or forming coders will also probably stay much harder when the codebase is in Rust, compared to Go.

                    1. 2

                      My $DAY_JOB is in Go, and I appreciate it. It’s the first language where I really feel I can mainly focus on the actual business logic, and the language doesn’t distract me, while the static typing helps to keep things mostly robust. But our system also did already reach a level of complexity where some stuff is hard to do, because the business logic is getting really complex and messy. That said, I’m also aware of some shortcomings of the language: the if err != nil every other line; I long for macros and generics sometimes; trying to do C interop kills a lot of benefits such as easy cross-compilation, and opens you to C-unsafety again; there’s race detector, but it’s a cure not prevention, you can still get races if you’re not careful; etc, etc. But still, when I sometimes compare with other languages, I usually come back glad I’m working in Go. Also, you can still absolutely write really crappy and messy code in Go, but at least if you take care and some effort, I feel it’s usually possible to clean it up really surprisingly nice, even after the fact.

                      That said, I only finally tried learning Rust recently, so I don’t mean this as a comparison with Rust, as I definitively have too little experience in it. Just wanted to express some general appreciation of Go on my side.

                      1. 1

                        Another thing to consider is Go is designed to be easy to pickup and projects easy to modify. It’s aimed at bringing in massive numbers of developers. So, you might get more contributions with it than Rust [1].

                        [1] Warning: untested hypothesis.

                      2. 1

                        What’s slow about it? If it’s borrow checker, have you just tried reference counting? Nim uses a low-latency GC. Switching to ref-counted Rust might let you hit its development pace with at least your dependencies borrow-checked Rust.

                        1. 6

                          Hmmm, naah; actually, I don’t really think it’s the borrow checker, per se. Hm; I find it unfortunately somewhat hard to describe it now, what’s the gist of my problem. It feels a bit too vague in my mind yet, for me to able to put it in words well.

                          I’m trying to glance over my codebase, to find some areas that make me especially tired. So, trying to collect the examples:

                          • It’s that I had to define this macro to be able to reasonably easily throw errors, without having to repeat the same braindead incantation every time by hand.
                          • Here, I just want to read uint64, or return success in case of EOF, or error for other errors; I couldn’t find a way to make it simpler, and as it is, it feels like much too much incidental complexity and weirdness.
                          • This, this is the most recent clusterfuck; I tried to ask for help on the Rust discord (which, by the way, has generally very positive and helpful people), but they weren’t able to help me with anything simpler than the &mut paths.iter().map(|s| &**s). All the alternatives were similarly bad in one way or another; I don’t recall well now, but at the time I decided this one is still the least bad of them… This is just to be able to pass an iterator of strings; in Rust a string can be either &str or String, and in combination with some other limitations, it requires me to inflict the .map(|s| &**s) on a user of the API here. And by the way, I’d never guess this incantation myself, without help from the Rust discord channel, so I already pity any user who’d have to call this (future me included). Again, a particularly horrible case of incidental complexity, a worst kind of one because inflicted on the user of an API.
                          • Another one, small, but I have to endure it through all the functions I write, so it’s a repeated frustration, and repeated incidental complexity: that this function cannot be a one-liner, that I have to explicitly write the Ok(()) stupidity at the end; cannot just have the error from create_dir automagically converted to error from my func if I write it without ?. But if I do write it with ?, it does automagically convert, but then I have to write ; and the Ok(()) on new line. On a related note, somehow, defining own errors is still not well wrapped in Rust; there’s a crate named failure, which is hard to use, and deemed not perfect, but still least bad among what’s out there. The story is being worked on, there’s some issue, things will hopefully slowly improve.
                          • Ah, again, some noisy mess, a.k.a. incidental complexity. .unwrap().to_str().unwrap().to_owned(). I don’t even remember what this means, but I apparently had to do this. WTF, rly?
                          • Right, here we have some rust fmt stupidity. Much too often I find that rust fmt does something exactly opposite from what I’d like and see as readable.

                          I mean, there are also good things. But you wanted to know what makes me slow and frustrated. It’s actually not even so much the fighting with the actual borrow checker per se, I think - as when doing this, it’s somewhat easier to at least tell myself that there’s a reason and value, and wisdom in the pain. It’s more of this kind of things as I listed above. I assume they probably may have some deep reasons, in soundness of the type system, some deep dependencies and stuff. But to me, they feel just unfair and undeserved. And, unfortunately, it feels to me like the actual logic of what I’m trying to do drowns and is clouded by a lot of incidental complexity, of mess like that, that the language just won’t let me tidy up. That kind of incidental complexity, clouding the gist of the logic, is also not so good for safety and robustness of the product, as far as I understand.

                          Sorry for making it so long; I just don’t understand my answer well enough to be able to write it shorter; even now I’m not sure if I really managed to actually nail my feelings and troubles, or is it only a part of them.

                          1. 1

                            “Sorry for making it so long;”

                            Oh no. It’s a really, interesting, experience report. I too thought the syntax looked unwieldly and hard to read in a lot of code I saw. I just didn’t see a lot of people griping about it. So, I rarely brought it up. One of Ada’s drawbacks was verbosity. Rust seems to require about as much syntax for some things but in a weird-looking way. What Ada did looked like regular code with English commands and some annotations/types. These issues are definitely worth thinking about when either trying to improve Ada/Rust or design a better language that plugs into one of them.

                            That’s right: I don’t see Rust as the end. It’s a step toward something better. The next step might have Rust’s benefits without the problems you describe. On that note, I’m eagerly, but skeptically, awaiting the coming write-up on the language code-named V.

                            1. 2

                              Ok, cool that you liked it then, thanks! Riiight, that’s mostly my general impression too; I actually already mused recently repeating the known adage that “I have a feeling there might be a smaller, simpler language in there, trying to escape”. In this other post I also let myself dwell more on some of the positive aspects of Rust, in case you’d be interested in a somewhat more balanced view (though I haven’t supported them with links to code snippets, but it would be also much harder, I’d have to sketch examples of what I’d do without Rust). Please disregard the “fighting borrow checker” complaints, I now think my reply to you is more accurate.

                              By the way, curious if you have any thoughts/opinions on Nim? The V thing may be interesting indeed, though for now it gives me a bit of an air of a potential vaporware/hype-ware stunt (really hope it’s not). While Nim is already there, and interestingly it has some of the stated features of V (though not all, esp. and most importantly no “Rust like” semantics; but here I’m also the most sceptical about V’s claims, will it live to expectations or just try to sneak a fake ticket on the hype train). After initial porting, I do find it faster and tidier, though I do already miss some strictness and linear typing (a.k.a. borrow checker) of Rust. There’s also the Carp Lisp, but I failed to understand it well; and there’s Pony, but again I failed to internalize its concepts.

                              1. 1

                                Yeah, V might be vaporware. That’s why my hopes aren’t up too much. Far as Nim, I like its Python-style look/feel, high performance, macros, and outputs to multiple compilers. Looking at comments, many people were complaining about the compiler breaking their apps. Not enough QA in it or something.

                                Another you should check out is D. Might be easier to use than Rust. More mature. Compiles super-fast. Has a BetterC mode for low-level programming. Most people really like it. The only complaint I get from folks considering move from C to D is that, while D can do unsafe stuff, the standard library is designed around the GC-d uses. They have to write more stuff from scratch or something. I think most of those algorithms could probably be ported straight-forward from C, though. Having unsafe, ref-counting, and GC versions of standard library does seem like an area of improvement for them. If you can use a GC, though, then you’ll probably not run into that problem.

                          2. 3

                            What’s slow about it?

                            Compilation, I assume:

                            because of too slow… development speed

                            1. 1

                              Slow development speed might refer to the high mental friction of stuff like the borrow checker (especially if you have a lot of C experience making your default coding practices go counter to Rust idioms)

                          3. 6

                            Resting, it’s been a rough week.

                            1. 4

                              It’s my second daughter’s 8th birthday.

                              We are hopefully going to be 3d printing some pokemon (she loves pokemon), playing some Pokemon Go and Let’s Go, and we might start building a PC together; I have a bunch of leftover parts, and it’s a fun little project.

                              If the arduino stuff I ordered comes in today, then we’ll build that instead. Otherwise, that might be another weekend.

                              1. 4
                                • Take the stray cat I adopted today to the vet for a checkup.
                                • Somehow declutter my home office; we just moved and stuff is everywhere.
                                • Check out a nearby cheap space I’m looking to rent. It’s kind of a garage, which I want to use to start learning woodworking and maybe welding.
                                • Plan some simple woodworking projects. I need to make a piano stand, a kitchen work bench, and a platform bed…
                                • Go to a nice punk sauna on Sunday…
                                1. 2

                                  Man, you seem like a guy I’d have a beer with

                                  1. 1

                                    Cheers, ping me if you find yourself in Riga!

                                  2. 1

                                    Go to a nice punk sauna on Sunday…

                                    What exactly is a punk sauna?

                                    1. 1

                                      It’s just a wood-burned sauna run by a friendly local anarchist couple. There’s a bit of a Fallout vibe. It’s named after an infamous nuclear power plant. You can swim in the river, but it’s kind of downstream from an illegally polluting industrial site. In the warmer months they have a sound system outdoors and the yard has a lot of funky constructions, like a tree house stage.

                                      1. 1

                                        Very cool. Love a good sauna! Wish there were more out here in the Bay Area, community-run even better

                                  3. 4

                                    Continuing work on my experiment in config management: https://ucg.marzhillstudios.com/

                                    Mostly writing documentation and prioritizing ergonomics improvements.

                                    1. 1

                                      Could you (or do you already somewhere) try to do some comparison with other projects trying to fit a similar domain? Esp. Dhall, Nix, and then the usual suspects like Ansible/SaltStack/Chef/Puppet/… I’m interested in the domain, but the introduction you linked doesn’t give me much in terms of a first, high level look at the goals and differentiating factors, so that I could calibrate my interest level, fitness to my needs…

                                      1. 2

                                        It’s on my list to do some comparison and such. I’ve been so busy iterating on the project that a summary and comparison hasn’t made sense until just recently.

                                    2. 4

                                      I bumped into a couple of fellow Haskell/Elm/Nix programmers here in Chiang Mai, and we might be going camping up in the hills over the weekend. There’s some real nice waterfalls up there that I’d love to visit again.

                                      Otherwise, enjoying the heat, keeping active, and writing Haskell every day.

                                      1. 4

                                        I’m in Bali … Nice change of pace.

                                        1. 3

                                          maybe messing with neo geo assembly guide; getting mixed up in vaporwave

                                          1. 3

                                            Moving! Starting a new job in SF (first full time job!) so I’m moving out to Oakland with a friend. It’s going to be a long weekend, but I’m looking forward to my first day on Monday.

                                            I’m also working on a personal budgeting app. I was originally developing an iOS app until I found out about Progressice Web Apps. My background is mostly in web so this was much easier than iOS (less library stuff to learn and I wanted this done fast).

                                            It’s “done” but I keep finding new things to add. At this point it’s just a little project that I can have fun with and I use day to day. A dumping ground for different things I’ve learned.

                                            1. 3

                                              Visiting a sausage-making festival in a village near Lake Balaton. Chilling.

                                              1. 3
                                                • Getting the main car back in for MOT re-test, having fixed the failures (brakes and tyres. Not at all important! Oops.)
                                                • Visiting a friend, which will involve lots of fun & games, dog walking and probably some computer wrangling.
                                                1. 3

                                                  We’re planning on doing some decluttering.

                                                  Also inviting stepson + girlfriend for dinner.

                                                  I might also finish this playthrough of Fallout 4 :D

                                                  We will probably watch season 3 of this TV show: Unforgotten. It’s classic UK TV - slow burn, intricately plotted, and with good characters and acting.

                                                  1. 2

                                                    I’ve been re-reading the SRE Book and starting to read the SRE Workbook, and making notes from both on how my organisation can improve how we do things.

                                                    Protip: Renaming an Ops team to “SRE” doesn’t make you SRE.

                                                    1. 2

                                                      The Physics dept I studied in has an alumni morning, so I’m spending Saturday morning failing to understand biophysics (I took a paper in it, and got the worst result of any of my papers, 15 years ago).

                                                      I have just acquired a Raspberry Pi (thanks @srbaker!) and it needs CentOS because Reasons, so step one is buying an SD card.

                                                      1. 2

                                                        Probably stuck inside, hopefully with power. We’ll see how much snow actually falls today!

                                                        1. 2

                                                          I was supposed to go to see my folks, but I fell down the stairs a week ago and my foot is still too sore to wear shoes, so I can’t go and see them as it’s a 2 hour drive.

                                                          Instead, I’m going to migrate some of my static sites over to my new openbsd.amsterdam vps to free up an old server. I’ll probably write something for the blog hosting platform I’ve set up if I get the time.

                                                          If I feel up to it, I’m going to go through the SSD1351 OLED display datasheet and look at building a library for the ESP32. I like the screen, but I’m having trouble with the libraries I’m using. I’d like to have something to use sprites with.

                                                          1. 2

                                                            I am snowbound this weekend. I plan to complete a few Pluralsight courses and read some books.

                                                            1. 2

                                                              Poking around at the Prag Studio elixir and phoenix/vue/elm courses work bought me. Coming from ruby & rails the jump in performance and having some form of type checking is exciting.

                                                              And offline I’ll be continuing my distance cycling training, albeit indoors. My goal is to do a century ride at a decent pace (and without my legs falling off afterwards) by mid-spring.

                                                              1. 2

                                                                I will be moving into my new house, which will be exhausting. Then, I would like to either continue work on one of my two slow-moving projects: 1) a distributed mesh messaging network 2) a website for my personal library, so that others may see what books I have and borrow books from me. Ideally this will turn into a thing that anybody can load their libraries into.

                                                                1. 2

                                                                  Prepping for my Monday lecture to ~80 students. First time in front of a class that big, so I’m definitely nervous :p

                                                                  1. 2

                                                                    Driving to New Orleans to see the Adventure Zone Live!

                                                                    1. 2

                                                                      Got a backlog of some posts on state machines and Alloy I plan to start drafting. Some of this stuff is very useful but gets very little airtime.

                                                                      1. 2

                                                                        I have to clean out the bunny poop out of the bunny cage, drive around my eldest daughter to her extracurricular activities (one of which leaves me stranded in a coffee shop for about an hour. Depending on my mood, this might birth a garbage article, some crappy code, or just be gametime. Not sure yet). There’s also this festival we might be going to, occurs on a frozen river near my home. Fireworks, and traditional music, and stuff. Pretty fun. Some regular upkeep and chores too. Gaps in time shall be filled with reading.

                                                                        1. 2

                                                                          Working on MongoDB - GraphQL integration for data extracted from a web scraping tryout project.

                                                                          1. 2

                                                                            I’m getting back home from Barcelona tonight after a week of intense openshift training so nothing productive I guess. Some Gameboy advance parts I ordered arrived today so probably I’m going to do some work on that one.

                                                                            I also have a birthday party to go to on Saturday evening, so my full weekend will hopefully be filled with nothing computer related at all.