1. 2

    That’s the first time I’m missing a product link for a blog post about it. And sadly the first thing DDG spits out is the github fork..

    1. 1

      It’s on the product page: https://www.indiehackers.com/product/open3a

      I also spent a bit to navigate to the right place. It’s interesting that the German market is “big-enough” to sustain a business.

    1. 2

      Great article! I’ve seen a few people suggest that one could make money off open source by releasing something under a free software licence that commercial places don’t like (usually GPL or AGPL) and offering paid licensing to be able to use the software without having to comply with the redistribution terms. I’d be interested to know if that particular model has actually worked for anyone in practice.

      1. 1

        It’s worked for me, I suppose.

        I suggested doing that while at Trolltech a long, long time ago, and we did. Mysql did much the same, very slightly later. Really, I think they fumbled their way towards a working business model around the same time as we did, starting the road a little after us but reaching a good spot before us.

        I’ve spoken to Mysql people at length about why it worked for them, and I think I understand why it worked for us.

        It can work, but it’s not magic dust. The major elements of what made it work for Mysql and for Trolltech were different elements, and IMO “open source” wasn’t the top reason in either case. Rather, if you want to be general about it:

        1. Know your customer.
        2. Serve your customer, and don’t let yourself be distracted.
        3. […]

        Open source matters if the customers think so.

        Somewhat relevantly to this thread… if the product is one that appeals to customers who like the idea of open source in a vague way, but don’t exactly work on that themselves and don’t want to, then the customers probably won’t. There exists a class of customers who’ll say “ah, that’s probably bad for our vendor, who serves us well and with whom we have a good relationship” and don’t upload.

        1. 1

          MySQL (and now MariaDB) comes to mind as successful “dual-licensing” business: https://techcrunch.com/2016/08/19/mysql-founder-tries-a-new-software-licensing-model/

        1. 19

          @bcantrill: Is the lack of fine-grained allocator control hurting you in embedded contexts? I know that was a major pain point for some and a big motivating factor for Zig, but maybe Oxide doesn’t actually need any of that?

          1. 24

            Well, at the moment we are really doing everything possible to avoid dynamic allocation full-stop – and in fact, what is interesting about the system that we’re developing (in my opinion) is the creativity in assuring that traditionally dynamic activities (like task creation) are done entirely statically. So if/when/where we do have dynamic memory allocation, it is likely to be exceedingly simple – and focused on space efficiency rather than time.

            1. 5

              Having done embedded for a long time in the past. not having dynamic allocation (with all the gimmick to get the size “right”) was the best long term decision to guarantee long uptime. It is very different when you have the luxury of your application being started from the OS fresh each time it needs to run,

              1. 11

                Adding on: it’s not “only” a matter of uptime, it also helps tremendously with testing, reviewing and analysis. When everything is allocated statically, you know whether you have enough memory or not right from the start. There’s no imaginable cornercase under which malloc might fail to allocate some memory because, well, nobody’s malloc-ing anything.

                The fact that you don’t get OOM crashes (and, thus, your uptime doesn’t get thrashed) is just one of the nice things about it. You also get more predictable timing, you have a more solid basis for all sorts of hardware-related decisions and so on.

                It’s not a matter of embedded developers being opposed to being dragged out of the stone age of computing, there are some valid technical reasons behind our preference for flint stone arrowheads :).

          1. 6

            It seems like trying to find PC hardware old enough to have a parallel port but new enough to boot off USB is going to be more work than just spinning up a cheap modern microcontroller, and not really any easier. I guess this is a nice bit of history for those who didn’t experience the days when it wasn’t considered unusual to hook up your own hardware to a PC, but it wouldn’t be the route I’d suggest someone wanting to get started go. Something like a CircuitPython board would give you a nicer development experience (the boards plug into your USB port and mount as a mass storage device – you just open the code in your editor and save directly back to the board to update), and access to a bunch of modern hardware that would be difficult to interface w/ parallel port bit banging.

            1. 4

              It really depends if you have such hardware laying around already (and a monitor that still supports it). I don’t think that it makes much sense for any other reason.

              1. 2

                Yes you want to drive an 8-bit numbers on LEDs over a serial port you can just use a shift register and a USB to serial cable.

                1. 2

                  CH341A-based usb to serial adapters even have i2c, spi and limited parallel port (they are rare, however).

                2. 1

                  Why is the “boot from usb” bit important?

                  Booting from the network (ipxe), booting from IDE (ide2cf) and booting from your own custom rom (as an extrom on e.g. a romcard) is more than good enough. So is a floppy most of the time.

                  1. 2

                    There’s always the Plop boot manager.

                    1. 1

                      When it works. The USB boot with boards that do not support it is hit or miss, and haven’t had much luck with it lately. That feature aside, I prefer grub.

                      If only if grub had the starfield background.

                1. 5


                  Freedos offers a lot of fun to be had. BASIC is OK for this, but there’s openwatcom (C compiler), FASM (assembler, comes with a tiny ide), freepascal and others.

                  1. 3

                    Embarcadero has available some versions of Turbo Pascal and Turbo C/C++ as freeware that could be fun to use for such a project: https://edn.embarcadero.com/museum/

                  1. 3

                    I learned 6502 assembler more years ago than I care to admit :) I should pick it up again. There was something lovely about the simple elegance of both the language and the architecture.

                    There’s even an Eclipse based IDE for 8 bit platforms so you can develop the code in a modern environment.

                    So many amazing tech toys to play with, so little time. I need to become independenty wealthy already so I can start messing with this stuff :)

                    1. 1

                      I don’t know why, but thinking to use Eclipse as the IDE for an 8-bit platform seems to take all the fun out of it :-)

                      I too spent a lot of time on 6502’s architecture and I really enjoyed this interview with Bill Mensch - co-creator of the 6502: https://ataripodcast.libsyn.com/antic-interview-96-bill-mensch-6502-chip

                      I never found another architecture where I was able to have so much fun. But I think that is more linked to the age/environment that I was in, when I was working on my Apple //e than anything else!

                      1. 1

                        I know precisely what you mean!

                        Except for the bit about programming environment. What were the assembly tools like for the Apple II? ATASM was SLOW as all get out. I haven’t tried it with a modern system in an emulator yet…

                    1. 3

                      Since NetBSD gets less credit, I’ll add that the things that make it portable also made it get a lot of use in embedded and CompSci. Basically, spots where customization happens at the kernel code level in a lot of places. The folks crazy enough to try to rewrite a UNIX in a new language also always started with NetBSD since it’s easiest to rewrite. None are easy, mind you, but they didn’t think they’d have a chance with FreeBSD or OpenBSD for different reasons.

                      1. 1

                        How portable is NetBSD, compared to the other BSDs?

                        1. 3

                          I have no idea haha. I’ve just read up on a lot of work by people building on various OS’s. In UNIX land, those building on NetBSD seemed to have an easier time. Here’s three things many said:

                          1. It wasn’t huge like FreeBSD or Linux.

                          2. Its focus on portability made it easier to change.

                          3. Its community was welcoming or helpful to those trying to rewrite it for various reasons.

                          I’m not sure how true these are in general or currently since I don’t code BSD/Linux kernels or userlands. I just kept seeing a lot of people doing BSD mods say those things about NetBSD specifically. Probably better for developers of various BSD’s to chime in at this point since we have at least three represented in Lobsters community.

                          1. 4

                            The NetBSD rump kernel concept is one real-world demonstration that the abstraction layers are at least fairly good. It’s not clear you couldn’t do something similar with another OS, but NetBSD seems to have managed it with quite little actual porting needed (drivers run completely unmodified).

                          2. 2

                            They used to joke that it even runs on your toaster. Obviously, most toasters don’t have an embedded OS, but, I think the joke implies something about how portable they desire it to be.

                            1. 5
                              1. 2

                                Ha! I hadn’t seen this, but I’m certainly not surprised!

                              2. 3

                                Obviously, most toasters don’t have an embedded OS


                                The obvious use case for such a device is cryptocurrency mining.

                                1. 5

                                  The obvious use case for such a device is cryptocurrency mining.

                                  Yep, This should generate enough heat to burn a few toast :+)

                          1. 2

                            Recently Google announced it will start setting a minimum API level that new and updated apps will be required to use.

                            The move won’t harm support for devices running old versions of Android

                            Did they set minimum required value to target API level? Or minimum required value to minimum API level?

                            How does it work? When Android runs app with lower target level, it turns on compatibility features? For example, if level < 23, it uses old permissions model?

                            And if I upgrade to newer target levels, can I still maintain compatibility with older API levels and leave minimum level intact?

                            1. 3

                              The restrictions is on the Target API level, not the minimum API level.

                              From the original Android Developers Blog Post

                              In order to provide users with the best Android experience possible, the Google Play Console will require that apps target a recent API level:

                              • August 2018: New apps required to target API level 26 (Android 8.0) or higher.
                              • November 2018: Updates to existing apps required to target API level 26 or higher.
                              • 2019 onwards: Each year the targetSdkVersion requirement will advance. Within one year following each Android dessert release, new apps and app updates will need to target the corresponding API level or higher.

                              Existing apps that are not receiving updates are unaffected. Developers remain free to use a minSdkVersion of their choice, so there is no change to your ability to build apps for older Android versions. We encourage developers to provide backwards compatibility as far as reasonably possible.

                            1. 19

                              [Citation most definitely needed], I’d imagine appliances running some form of Linux are way more prevalent numerically than hardware from Intel.

                              1. 10

                                Especially if you take into account all the mobile devices running Android (Linux) on an ARM chipset. I doubt that there’re more CPUs in the cloud than on the edge mobile devices.


                                1. 4

                                  Not to mention that the CPUs in the cloud probably run Linux anyways, so they would each just add 1 to Minix and 1 to Linux.

                                2. 3

                                  I’d actually really like to see some numbers on that.

                                  1. 2

                                    Isn’t some weird java card OS used in SIM cards? That would probably win as far as units shipped (all phones since the 90s?).

                                  1. 0

                                    Nowadays I tend to prefer the term Developer Relations Engineer as it seems to better describe the role.

                                    The basic idea is that this role needs to be bi-directional, you’re going to build a long-term relationship with developers that are going to invest time and money in your product/library/API. Anyway, you’re going to drive what are the company’s interests. Sometimes having to promote a new shiny technology even if is not better then something already existing. In this cases, your job is going to focus on providing the right feedback to your engineering team.

                                    An evangelist really sounds like someone preaching for the “One Blessed Solution”, and Advocate, as someone already wrote, looks like they care about the developers’ projects.

                                    1. 3

                                      Don’t know what is worse, evangelist or (ab)using the word engineer. What could engineering possibly have to do with a software sales person?

                                    1. 5

                                      Disclaimer: I work for Zebra Technologies

                                      For the single use device market, that is now moving to Android, Zebra Technologies offer, in the paid maintenance service, security updates for the time we sell a device (up to 5 years) plus two additional years.
                                      This is branded as Lifeguard for Android.

                                      Most of these devices are not meant to be used as a personal phone but are the kind of devices that you can find in big retail chain across the world.

                                      As other wrote, in the Android world, Nexus devices are still the best. Apple is a bit better supporting devices up to about 4 years, more or less.
                                      Would be interesting to understand if people would be willing to pay for a service that provides security updates to their personal phones…

                                      1. 4

                                        Rather than asking for more money to continue support, I wish companies in the smartphone business were explicitly supportive of open source communities taking over maintenance of their EOL product lines.

                                        I see a moral obligation to society here that vendors are currently getting a free pass on entirely ignoring. It’s the same problem as with IoT devices. A huge faction of end users don’t ever upgrade until the phone hardware acually dies and thus they keep running software full of holes for years. This leaves a lot of playground for bad actors to do harm by exploiting old bugs.

                                        And yes it could hurt some of the sales of new devices. And I also understand the phone supply chain makes open sourcing things difficult because it is infested with patents and binary blobs. But from one blob set I have looked at (a qualcomm one for the fairphone 2) there’s a lot of stuff in these blob sets which could be open sourced withut issues (a wpa_supplicant binary is just one silly example). And if hardware docs for legacy chips and devices were released, with a free community pass on related (and likely outdated) patents, skilled developers could write open source drop-ins for the missing hardware support bits.

                                        1. 5

                                          I think this is one of the cases where some legal solutions could be successfully applied. If I went to a store and was sold a food product with over it’s best before date the shop that sold it too me would be fined. There are also safety standards for selling/obtaining a used car etc. I think software (or at least a certain subset of it like phones and medical devices) should be restricted in a similar way - no permission to sell software shipping with outdated software that is past it’s security support date.

                                          This would impact telcos and would at least give them a push to actually roll out vendor provided upgrades. This also impacts the long tail of users getting a phone at the end of lifetime as a new device from the vendor.

                                          Granted, I agree that having vendors helping out the community support the product would be a welcome addition - for now I will be happy when the middle man along the road don’t actually prevent people getting security fixes that are being released and just held back because the vendor doesn’t want to spend the money on backporting it to his crapware bundled OS image.

                                          1. 1

                                            That all sounds good. However, lets say hypothetically the world didnt change, the vendors remained motivated by profit, vendors didnt update properly, and the parent’s service was available. Would you buy it under those circumstances?

                                            1. 2

                                              I assume a part of the market able to afford it would. Consider people getting iPhone’s now and products directly from Google on the second tier as the target market that would be able to use such a service. Everyone else is stuck with unsupported devices.

                                              I don’t think it’s realistic for a third party to provide security updates outside of the telco & hardware manufacturer while still being able to provide a quality service (working calls, all sub-components on the device like WiFi, camera, etc working) without charging a significant amount on top of your contract.

                                        1. 14

                                          Absolutely not. Ever heard of WiFi offload?

                                          Actually WiFi is very useful to reduce the load of the cellular networks in very crowded environments.