Threads for SoapDog

    1. 5

      If you can’t reinvent the wheel on your own blog, when can you do it?! I know that this sounds like snark, but it is true. It is one of the few places on the internet where you can actually play and develop your own stuff for the sake of fun and learning. Don’t shy away from doing it.

    2. 3

      Just wrote a little post about this, it is possible to avoid the network request by using a MeCard format instead of URL in the QR Code.

      1. 2

        Thank you for that feedback. I didn’t know about MeCard that would have been extremely useful at the time of me figuring this out :)

        1. 3

          QR Code has lots of tricks. It is not even limited to MeCard and URLs. There are lots of things you can do. Hope you enjoy all of that and make your own bespoke solution for your sharing needs :-)

    3. 16

      FYI, a QR code or NFC tag is not limited to embedding a URL. It’s also possible to embed the vCard data itself. As a purely offline approach, this could be helpful inside a building or elsewhere that people could have a spotty connection. See

      1. 2

        Oh, nice!!!!

        From the research i was doing that wasn’t possible. Thank you for this, this is a great fall back option.

        1. 3

          You might want to consider using either MeCard or vCard encoded string as your main option. If you make the URL encoded one as your fallback, you’ll avoid a network request if your first option work.

          1. 1

            The Me/vCard may however become outdated, while your networked option can probably be updated.

            1. 3

              Yes it might. Nothing is future proof. They might come with a better form of encoding that is not QR Code and changes everything. Still, MeCards and QR Codes follow the practices set by NTT DoCoMo. For more than 10 years all this has worked well, this usage is expected. This is not a quirk implemented by a single library, it is actually how contacts were shared from the start in Japan (where most of this was invented). There is probably a larger chance of your web server hosting the vCard to go offline than QR Code readers stop understanding MeCard format.

              1. 1

                I didn’t mean the format, I meant the data. What if some circumstances force your phone number to change?

                1. 3

                  You’d update the card data. People scanning it after doing so would get the new data.

                  For the hosted approach, people would typically visit the link when it’s presented to them, grab the data and put it in their address book. It won’t get updated for them either!

                  1. 1

                    You can update a vCard remotely?

                    1. 2

                      No, you can’t. My point was that neither can you update an imported contact in an address book.

                      1. 1

                        There is CardDAV which is an extension to WebDAV to support vCards. This is a way to have an “Address Book Server”.

                        It is not a good way to share contacts since I can’t really see a random person adding your CardDAV server to their address book app. But it is a way to keep a small server for your own usage and make sure that contacts are updated among your own devices.

                2. 1

                  That is quite true for any form of contact sharing, even the URL case. You can share more than just your phone number. You can add email and maybe your website. The more data you add, the easiest it is for some of that data to remain current. The only caveat is how dense the QR Code will be, but cameras these days are very good.

      2. 1

        You don’t even need to use the online generator if you have the zxing app on an android phone. Share a contact record, choose zxing as the target, and (on current android versions, I think this was added later) choose which fields to include, and the qr comes up on the screen.

    4. 6

      This is pretty outrageous.

      • Playgrounds is one of the most innovative (and mainstream and polished) ways to onboard people onto a programming language bar none.
      • Quartz Composer is not even mentioned there (though another data flow language is) which had an immense impact on artists everywhere only to be supplanted by Max.
      • Shortcuts is programming and has massive adoption. If that isn’t “bringing programming to the people”, I don’t know what is.
      1. 7

        Lots of older mac users also remember AppleScript and how it was prevalent in lots of non-developer shops all around the world. I still think it had a larger userbase than shortcuts/automator (not in absolute numbers but percentage of users)

        1. 5

          AppleScript was so obviously the right thing that I’m unsurprised that today’s Apple is trying to kill it.

          1. 2

            It was a lot less the right thing when OS X came along with preemptive multitasking. AppleScript was written for a system with cooperative multitasking where you could send a bunch of commands to the target and everything would be consistent. On OS X, the application kept running while the script ran and so you could have a document go away while you were doing things with it. AppleScript is a distributed systems programming language without any tools to avoid race conditions or to ensure consistency. Exposing the model objects to scripting is a good idea but doing it by processing one command per run loop iteration, interleaved with other messages, is not the right way of doing it.

            1. 1

              Interesting, this obviously makes perfect sense, and I’m annoyed at myself for being annoyed without doing the research. I think I’m irritated because the idea of it – exposing everything the software does interactively to a programmatic interface – is just .. it’s just correct.

              1. 2

                Oh, the core idea is definitely right, but it’s hard to do right. Ideally you want a transactional interface where you send a closure to a set of applications and it runs with exclusive access to them. Hmm, the behaviour-oriented concurrency model from our latest paper is actually a perfect fit here…

      2. 4

        And yet the most common DSL known around the world is probably Excel.

      3. 2

        I read the OP as arguing that the Mac hasn’t done for programming what it has done for the other fields; serve as an engine of democratization (for better or worse) of difficult, high-skill tasks.

    5. 41

      so much FUD.

      This appears to be geared towards managed Firefox installations, the kind that companies and school uses. Apparently the next version of Firefox will have a UI to edit that list. At that moment the list is empty.

      1. 20

        Overall, I don’t think this is geared towards managed installations.

    6. 6

      This is more like “Understanding Mastodon” rather than ActivityPub.

      1. 3

        Is there another article that’s more general but as least as in-depth?

        1. 2

          I can’t think of any, sorry. Most of what’s been written on the subject is about Mastodon servers or about servers that implement the same APIs as Mastodon.

    7. 4

      Question: Why is building a UI in Rust so hard? Answer: Because the U in UI is unsafe. Done.


      1. 2

        You get the same result if you read U as “Useful” :D

      1. 4

        The MacBook’s wall plug is a little macintosh too right?

      2. 3

        Oh, my…that’s hot.

      3. 2

        How do you get that fancy iTerm2 going? :-O I’m soooo impressed.

        1. 4

          It’s a normal iTerm setup with its theme set to Compact, and “Dim background windows” enabled. The borders and shadows are drawn by my spoonfish window manager that I’ve been working on lately to emulate my sdorfehs X11 window manager.

    8. 17

      Super happy to hear this. I wonder where the funding is coming from (it’s been a while since the linux foundation inherited the project - why is it being re-activated now?) and what Mozilla’s position will be with regards to Servo’s source code (would they be interested in merging some of it in Firefox like they did with Stylo or are they completely indifferent?).

      1. 11

        Looks like Igalia people to me.

          1. 5

            That’s great, but how do they keep the lights on? There is no money to be made in servo, so who is paying?

            1. 6

              There’s a good thread discussing that — It seems that generally they get paid by companies to spearhead work on open source projects.

              1. 2

                wow, I had no idea that a company like bloomberg would sponsor such developments. That’s awesome!

                1. 2

                  I’m told Bloomberg has some very interesting tech in their stack. The Bloomberg terminals themselves are quite interesting - basically had hypertext in the 80s.

                  1. 3

                    I am still surprised that bloomberg has a culture that would not only find budget to implement CSS features in Chrome (a google product and google being one of the riches companies in the world), but also that you would give it to an external supplier. That sounds like a very healthy engineering culture!

    9. 6

      Hello, I’m the least Anglophone-friendly name on the cover. I mostly worked on chapters 03 and 10. I also designed the website — please yell at me if it’s broken!

      We lost our editors as a result of being dropped, so for now, we’re relying on the wisdom of crowds to help us pull this book closer to something worth printing.

      Note – chapter 03 is literally half empty and completely unedited. It was kind of a last-minute addition.

      1. 1

        While not a replacement for proper editors, online systems such as ProWritingAid can help you folks a lot. You can tell it that you’re writing a technical book in English and tweak a ton of editing parameters. The end result will be better than not having an editor and even if you decide to hire a proper editor later down the road, passing the book through ProWritingAid before sending it to a professional will make the work easier for that editor (unless we’re talking about developmental editing which happens before that).

        I’m not affiliated with them, I just enjoy the product and used it for some of my own technical writing.

    10. 4

      It’s not clear how this is much better in practical terms (leaving aside the fact that it blessedly avoids using XML-RPC) than the older methods such as Pingback and Traceback from twenty years ago.

      1. 7

        Webmentions is an iteration of Pingbacks/Tracebacks so improvements are iterative as well.

        • It’s a little simpler because it doesn’t use XML-RPC and only requires HTTP
        • The new protocol pays much more attention to DoS prevention allowing async verification
        • The new protocol spec is generally better structured suggesting more security considerations for implementers of varying experience
        • There are also a few extensions to Webmentions with no substitutes for Pingbacks/Tracebacks addressing spam, update propagation, and access control, to name a few
      2. 3

        The sibling comment explains it quite well, I just want to add that the options you mention and WebMentions are not mutually exclusive. One can support both on their website.

    11. 2

      Does anyone know if a nightly image from months ago that has been updated weekly using software update will get all these goodies?

      1. 6

        It will, yes. The beta release was branched off of the main development stream last month. You can choose to switch to it pretty easily (you can actually follow the same instructions given for upgrading from the previous beta), as it will be less prone to breakage than the nightlies (and also a bit faster as it has some significant debugging turned off), or just stick with the nightlies, as all the same software is available for both.

    12. 11

      This blog runs on Jekyll, one of the original static site generators.

      Jekyll came out in 2008. When I was in college in…well, trust me, before that, there were already at least a half dozen generators, all written in Perl, of which MovableType[1] was just the biggest/most popular. (And I think “half a dozen” is probably off by a good order of magnitude.) The rest of the article was solid, but that one line gave me a bit of a spit-take.

      [1]: MovableType does generate static HTML; the hosted part just handles the admin interface. That’s part of why MovableType sites used to scale so much better than WordPress. (I am also aware that, somewhere around MT5, they started adding some dynamic bits, but those were actually done by injecting PHP into the static templates, so I’m not sure it counts.)

      1. 8

        You’re correct, but Jekyll did kick off a wave of next generation static site generators, and helped popularize the nomenclature “static site generator”.

        1. 4

          I’m using Blosxom in static mode, simple is best.

          1. 1

            Are you running the old codebase or a fork? I have so many fond memories of Blosxom :-)

            1. 3

              I’m running the original (v. 2.1.2).

              However, lately I’ve started being disenchanted with the rigid “date & title required” format of most blogging platforms and have started using a “tumblelog” format instead. It’s also bridging the gap between blogging and posting on social media for me, as I repost most entries to Mastodon.

    13. 17

      The native Haiku GUI support is especially cool because, for once, it was not developed by one of the “usual suspects” among the Haiku community and then later upstreamed (if at all – many projects are reluctant or even hostile to accepting Haiku support, and so it’s unfortunately often our habit to not even try), as basically all other ports of major applications have been so far, including Qt, LibreOffice, gVim, etc., but was written by an Emacs developer and was upstream from the start.

      1. 6

        if at all – many projects are reluctant or even hostile to accepting Haiku support, and so it’s unfortunately often our habit to not even try

        We took Haiku patches in snmalloc. The Haiku VM subsystem is sufficiently different from everything else that we support that we’ve caught at least one bug because someone on Haiku could reproduce it reliably but for everyone else it was a rare and intermittent crash.

        I doubt I’ll ever use Haiku (in spite of my fondness for BeOS 5), but I see Haiku support as evidence of code quality in a project. It means that you have clean enough platform abstractions that the cost of supporting a niche platform is small (our Haiku-specific code is tiny), which tends to be a good proxy for whether you have well-thought-out abstractions in your code. The number of projects that I’ve seen recently that have Mac and Linux support, but struggle with something like FreeBSD (which is basically like Linux or like macOS in every category that userspace software would care about), let alone something a bit more different like Haiku, is depressing. When I started working on F/OSS things, running on multiple platforms was a source of pride for projects, the more obscure the better. That made it very easy to adapt code to new and interesting scenarios (want to run in the browser with asm.js? On a cloud service with WASI? On a microcontroller? On a mainframe? It’s just another platform and you already have the right abstractions), now we’re increasingly locked in to a Linux monoculture.

      2. 4

        if any piece of software would have upstream support for an obscure system would be Emacs, which in the year 2022 has an upstream-maintained port for DOS:

      3. 2

        This is making it VERY HARD for me not to grab an old computer and put Haiku on it, dammit.

        1. 2

          I just got beta4 up and running on my “weird OS” machine (a gently-upgraded Thinkpad T440p) and…it’s actually really good. WiFi, the Nvidia graphics chip, sound, all of it just worked out of the box. (Now, getting a bootable root disk took a fair bit of back-and-forth with the installer, partition tool, etc.; the install app doesn’t really seem to be able to tell what configurations of disk layout, boot loader, etc. are actually going to be bootable, so unless you get it right off the bat for your particular hardware there’s some potential fiddling involved.)

          If you have a previous beta up on a spare PC/VM/whatever, it’s pretty easy to upgrade in-place:

          Just swap out the release name from r1beta3 to r1beta4, sync, and let ’er rip.

      4. 1

        I wonder which version will end up in HaikuDepot, the one with native GUI support or the terminal one.

        1. 2

          Both, and it’s already been there for some months now.

    14. 5

      This is a great idea.

    15. 33

      All the power to OP. One thing I notice is how seemingly divorced they are to “sales”, though. If you are running a one person startup, even if it’s free software, you will need to be doing sales in some way or another.

      This release disclaimer is just another form of sales — a bit clumsy one TBH — and it should link to a call to action on the startup website.

      Conference talks, reaching out to the folks at BigCo et al. that can actually move the lever to get your free software to get sponsored.

      1. 21

        This. Changing the copyright license isn’t a magic replacement for having a solid sales process.

      2. 11

        Which is a shame. Sales is a completely different type of activity to development. And yet another time/effort sink cutting into making the actual product.

        I’m not saying it’s useless. Just that it’s a shame that being good at one thing is not enough and actual success requires learning an entirely different profession.

        1. 5

          I guess it’s a matter of semantics. You can “sell” your project in more ways than traditional sales.

          But if you’re making something you’d like other people to use and give you money for, you’re going to be doing some kind of sales along the way — or associate with someone who will.

        2. 4

          Most professions that involve launching your own work require multiple competences and skills to be in place for it to succeed. Making a profit from a product is the final step in a relay race by multiple professionals.

        3. 2

          But here’s the problem from the payers side: I have money for 5 good things to fund and there’s 100 out there. How should I pick?

          Sales is also not an entirely new profession, many things can be taken over. E.g. successfully funded projects give regular progress updates and label them as an accountability measure. Just enough sales is enough in a place where no one does any sales.

          E.g. one basic that can be immediately applied: do pitch your ideas end of October/Beginning November. That’s when people do their budgets for next year. And if $bigco does find money in the cracks for something they find useful, it’s okay to ask for 5-6 figures.

          1. 1

            But here’s the problem from the payers side: I have money for 5 good things to fund and there’s 100 out there. How should I pick?

            Start by picking all 100. Then designate the 5 you consider most important, and allocate a percentage to them, such that the sum of those percentages is less than 100. Then whatever the remainder is gets split among the remaining 95. I’m just brainstorming here. We’re a community of highly intelligent folk, and I’m sure someone could come up with something much better.

            Nobody wants to sit down and mark all of the things they use. The distros can help here. For instance, a program could scan your package database and give you a list of possible funding candidates to choose from.

            It would be nice to have all of this decentralized. Maybe the way to do it would be with some sort of proof-of-stake cryptocurrency. A project interested in funding publishes an address where it can receive funds. I’m talking out of my ass here, because I’m a fairly anti-crypto kind of person. What we really need is the equivalent of the email address for making frictionless payments to individuals and small organizations.

            What I’m getting at with all this stream of consciousness brainstorming is that I think it’s a solvable problem.

            The real longterm solution is UBI, but we aren’t there yet, and we may not be in my lifetime. So a stopgap is needed.

            1. 2

              Even companies that want to support open source aren’t going to do micro-donations to a hundred projects. Companies are going to make larger donations to one flagship thing they use, or maybe to a handful of them, and call it a day.

              And every service that’s sprung up to try to be an intermediary has had massive red flags, at least in my opinion. Way too many of them run on the model of:

              • Collect donations “on behalf of” anything with a public GitHub URL
              • Don’t mention that those projects have never heard of this “helpful” service
              • Require projects to come explicitly sign up in order to receive money collected “on their behalf”
              • “Redistribute” donations targeted for any projects that don’t come sign up within a certain short window of time

              People have been reviving this “helpful” service about once every eighteen months for the past decade or so. I’ve repeatedly pointed out how they’re the opposite of helpful and may actually cause massive tax and legal problems for the developers and projects they’re supposed to “help”, but for some reason the people running these services never seem to care much about that.

    16. 3

      Well, as someone who works alone and enjoys prototype manipulation, I’ll keep my JS thank you.

    17. 8

      When I was 12 or 13, I got a Psion Series 3. I got it second hand after the original owner upgraded to a shiny new 3A. It had a programming language, a spreadsheet (which I still use in a Psion emulator in DOSBox occasionally, since it has the best keyboard navigation of anything I’ve used since), a non-WYSIWYG word processor and a whole bunch of other things, including a programming language. I wrote a lot of (terrible) code on that machine and also, after I got a serial adaptor to connect it to a computer, wrote a load of essays for school on it (being able to type a 3000-word essay in class, rather than handwrite it, was a game changer for me - my handwriting has always been terrible and no amount of practice or exercises ever improved it). I could type things on it and then import them into Word or ClarisWorks at home to spell check and add proper formatting before printing them.

      I’d love to have a machine like the Psion again. It ran a multitasking OS with a GUI in 256 KiB of SRAM (hmm, I’m working on a chip with about that much…) and was one of the most usable machines I’ve ever owned. Oh, and a chunk of that 256 KiB was used for a RAM disk, the only persistent storage that the device had. Building something similar out of modern components would be fantastic. I’d like to have on-device spell checking and maybe an ssh client, but aside from that it was great. It ran for a couple of weeks on a pair of AA batteries - a modern LiIon battery with a similar front-lit LCD screen would be great.

      The next small computer that I used a lot was a Nokia 770. Nokia had a thing to give something like a 66% discount to open source developers to help grow the platform. This thing ran Linux and X11. I gave up on it fairly quickly as a developer platform because Nokia decided to switch from GTK to Qt for the next generation and so made it a dead end (I later got a free HP TouchPad on a similar scheme, days before HP killed WebOS). With 64 MiB, it struggled. I ended up using it with an xterm and vim - anything else would trigger the OOM killer. I still wrote a lot of it (a few book chapters and dozens of articles) with a ThinkOutside folding keyboard (fantastic hardware - I still have it, in theory, though my partner ‘borrowed’ it during the pandemic and I’m not sure when I’ll get it back). It was pretty eye opening how wasteful modern software is. The developer experience on the Psion was much better than on the 770 and it did far more with a 3.84MHz CPU and 256 KiB of RAM than Linux with a 252MHz CPU and 64 MiB of RAM.

      I now have a phone and an iPad, but I don’t really find either of them exciting. My phone is basically used for Signal and work apps. My tablet for reading the news and web browsing (and playing videos when I’m travelling).

      I’d like to have a small device that was both useful and fun. If I had a load of spare time, I’d love to write something EPOC16-inspired on our CHERI microcontroller and couple it with a small keyboard and a greyscale reflective LCD.

      1. 2

        This message made my day. I’d love to have something like EPOC in a Psion form-factor going around. Planet computers have cool devices, but I don’t find Android or Linux to be what I want to run on such small devices.

        I played a lot with a 5mx from a friend. He was in the Psion camp and I was in the Newton camp, I think each device had their own core strenghs. The psion was way more portable and its keyboard was sooooo good, I wish people were still shipping them.

        I never got a Nokia Internet Tablet, I’ve seen them cheap on eBay, I wonder if they’re fun.

        What you’re doing with the CHERI mcu? Do you have a blog I can follow?

        1. 3

          What you’re doing with the CHERI mcu? Do you have a blog I can follow?

          We posted a blog article a couple of weeks back with our plans, but we don’t have a project blog. We hope to get the tech report with the ISA spec out Real Soon Now and then start open sourcing the toolchain and RTOS. Upstreaming the modified Ibex core should start around December. We have also implemented a prototype of the same ISA on Flute, which runs at around 20 KHz in simulation: too slow for things like TLS, but fast enough to be fun to play with. Ibex should run at 20 MHz in a fairly cheap FPGA (there’s one on my desk that we’re using for demos), which should be ample to drive a display and prototype something EPOC-like.

    18. 3

      I loved my OLPC XO-1, hacking Python or sshing in, with no backlight. The keyboard was a bit too small to be comfortable for long, but I did spend some time using it in fast food restaurants and cafes. I also used it for reading PDFs before I had any eInk devices.

      1. 2

        I haven’t written about it on the article, but I too had an OLPC XO-1 and absolutely loved the form factor and screen. It is criminal that we don’t have those screens anymore. They were amazing. The keyboard is the only thing that prevented me using the machine more often. It was good for occasional use, but typing a lot of text in it was strange (not bad, but strange IMO)

    19. 18

      Author here. I was not expecting this post to ever leave my blog. It is not really rich in content, it is mostly me being vague about my own feelings about small devices. Well, if anyone here has questions or comments, I’ll be checking here often. Thanks a lot for checking out my writing.

      1. 5

        The content often doesn’t matter that much here, as long as it invites discussion. Not sure if that’s good or bad.

        1. 4

          I mostly come here for the comments. The articles are often interesting but I’m far more likely to learn something that I wouldn’t have learned elsewhere or read a perspective that I hadn’t considered in the comments than the articles.

        2. 1

          As an author, it can hurt your feelings when you go to a discussion and it’s at best tangential to your post, but as a reader, I can’t change. The discussion is its own thing and the posts are just things to consider discussing. It’s like how a book club may go off on the noisy dog down the street and its rude owner instead of the actual book for the club. It happens and that’s just how it is.

      2. 4

        The feelings discussed openly is what I loved best about your post. The demand from some readers who ask us to justify what problems a small computer solves that cannot be solved with a larger computer totally miss the point. Computing is not only about utillity. It is also about feelings, emotions, nostalgia and love. It is okay to have fun with computers and small computers are good fun.

        1. 1

          Thanks a ton :-)