1. 7

    I don’t think he was framed. I think the article explains that McIlroy is doing a literature review in the spirit of Knuth’s literate programming, and the shell script was written in the context of reviewing Knuth’s literate program as a program and as literature. The fact that two people who were discussing an article neither of them had read came to a conclusion that isn’t supported by the article is unsurprising (and common in discussing “the classics” of programming literature).

    1. 10

      If one reads the original article (which is quite long, both on the LP part and the response, it’s clear no framing was being done. I think the “framing” is the decades-long game of telephone afterwards which boiled down to “Donald Knuth’s 10 page LP opus was replaced by a very small shell script”.

      1. 8

        “Knuth’s 1986 Literate Programming Article Has Been Taken Out of Context” just wasn’t gonna get the clicks.

        1. 9

          This was a newsletter post. It was sent to people who already signed up to receive my emails. I decided to have a bit of fun with the title, and wasn’t expecting it to go so viral outside of my regular readers.

          1.  

            No snark intended beyond good fun; it was a good article, and yours is the better title. I’m tempted to subscribe.

            1.  

              All good! As we all know, tone carries 100% perfectly on the internet

          2.  

            “A programmer tried Literate Programming - you won’t believe what happened next!”

            1.  

              Wait until a lobster reads the rest of the “premature optimisation” paper.

              1.  

                What‽ I would have clicked on that in a beartbeat!

            1. 3

              Totally unrelated but I’m irresistibly reminded of the classic Swedish song “Hönan Agda” by Cornelis Vreeswijk where a cock relentlessly pursues (literally hen-pecks) the titular hen Agda in order to get her naked for sexual congress.

              https://www.youtube.com/watch?v=oKUscEWPVAM

              1. 6

                Sorry, not totally unrelated. It’s just one member of a whole family of dumb Coq jokes.

                1. 1

                  Haha, I honestly did not know that!

              1. 2

                I wish there was more to this story. This blog post is based on a report titled “2020 State of Software Engineers” published by the data science team at Hired. The report is based on analysis of hiring on their platform as well as a survey of 1,600 users of their platform. Without seeing either the underlying data or the questionnaire, it’s hard to interpret these results. I want to know more about the pre existing stereotype. Is it a person who stays up late drinking coffee and listening to heavy metal?

                1. 3

                  I’m rather put off by the whole thing, myself. Stereotypes are inherently disrespectful of human diversity, and perpetuating them in a professional context is only harmful to individuals and to the profession. It saddens me to see IEEE promoting this shallow and unscientific ‘hot take’.

                  The data collected by such a study could indeed be useful to those looking to hire or retain engineering talent, but we’d need to see the questions, the distributions of answers, and as much context as possible about how it was collected. Then, we should compare findings across similar studies from different researchers and populations and times. That’s how real social science is done.

                  I don’t know, maybe the blog post is just an ad for the actual data set? It’s still in poor taste.

                  1. 2

                    Isn’t the point of this that the stereotypes aren’t accurate? To me, it’s less “create a new stereotype” than “recognize that your expectations aren’t accurate.”

                1. 29

                  I don’t think there’s anything Urbit can do or say to erase the history of Yarvin or my overall impression that they’re building “digital share-cropping” from Yarvin’s ideals.

                  1. 5

                    I neither have a slightest idea what Urbit is, nor Yarvin. But the visuals in the article look interesting to me.

                    Personally, I actually most like the 2nd set of images in the Experiments + iterations section. They seem to have most visual difference between them, compared to all the others, in my eyes. I’m very curious what was the algorithm behind them.

                    1. 8

                      Agreed - this article is so precisely up my alley but I wish it had come from anywhere else

                      1. 10

                        In 10 years I believe this is the only imprint Urbit will have left behind.

                      2. 14

                        Haters gonna hate. But on Lobste.rs, I expect better quality comments. This is about on the level of commenting “but Google’s so bad” on a Google product team’s tech blog, with no reference to the actual content. It’s low-effort, and needlessly negative.

                        Even someone who is politically or philosopically opposed to Urbit’s structure can learn something about generative graphic design from this post. I found it pretty thoughtful myself. It’s a small but meaningful problem they’re taking on here.

                        Sad thing is, I expect this comment to get downvoted by approximately the same users who upvoted yours, for the same essentially political reasons. So let me be clear: I’m just speaking up for civil, technical, on-topic discussion. I’m not expressing any opinion about Urbit’s system design or history, and I’m not even slightly interested in rehashing that tired topic here.

                        1. 17

                          I upvoted the article, which I found interesting and the art therein beautiful. But does saying that count as a high-effort comment?

                          There’s a difference between leaving a comment on Lobsters rehashing Google, a widely known company with a long public history, and leaving a comment about an obscure start-up. In both cases, you are familiar with the subject, but for many here, they may never have heard of Urbit before. I guess an analogy would be “knives don’t need warning labels, but odorless deadly chemicals do”.

                          1. 3

                            Or, you could just Google “urbit”, and find as much drama as you can stomach. Without wanting to get into how “deadly” it is, I don’t agree that it’s “odorless”.

                          2. 4

                            Thank you for this comment. The main reason I prefer Lobsters to HN is the general absence of politics, and a clear focus on technology. I hope it stays that way.

                            1. 3

                              Urbit is a politically motivated technology, so why is it allowed on this site then?

                          3. 7

                            Yeah its certainly some kind of scam. What specific kind of scam will be more obvious as it plays out but nothing good comes out of trying to model feudalism.

                            1. 0

                              Are you really sure about that? Last century was very democratic and very very bloody.

                              In the old days, the winners turned the losers into serfs. At least that was somewhat productive, and there were periods of peace between the conquests.

                              The modern approach is to napalm and drone-strike relatively harmless peasants–perpetually and fruitlessly–so that corporate and military bureaucrats can justify their paychecks.

                              Also, it is highly debatable whether the disparity between a modern-day oligarch and an ordinary joe is any smaller than that of a 16th century noble and his peasants.

                              I don’t see a clear winner here.

                              1. 2

                                There’s countries where you can try out a feudal system today if you think that’s comparable. Somehow I suspect your opinions will shift when you go there and see that it’s a human meat grinder. You might think that you would be the lord, but I can assure you that you would be a serf unless you are particularly talented at murder.

                                Edit: Actually, given the proliferation of people who advocate for the literal murder and subjugation of their peers here, I’m just gonna delete my account. Y’all have fun.

                          1. 9

                            I first watched this talk last year and thought “wow this guy doesn’t understand engineering”, then actually talked to a bunch of “real” engineers and realized that no he actually got it pretty dead on.

                            1. 2

                              Thanks for posting. It’s really good. I’m tempted to summarize or just dump my notes, but I don’t think I could do it justice. Instead, some teasers, for others like myself who are reluctant to watch hour-long video talks:

                              • there’s a historical argument
                              • lots of book and essay recommendations
                              • bridges get broken and built
                              • formal methods make an appearance at the end
                            1. 9

                              I love everything about this. What a great solution. :-)

                              1. 4

                                Yep it’s really nice somehow to see these amazing results!

                                Sad thing is since an hour of an average engineers time is worth more on the open market then this TV is, so rationality would say that these efforts are rarely worth the time spent, but yet we do it, there’s a less tangible recreational value in it.

                                I’ve got an 10 year old flaky tv myself, it’s probably not worth anything but it’s good enough for me. Lately it’s had problems with powering on properly and a friend using the same model had the same problem, we fixed both our tv’s by screwing them appart and surely finding the same cheap capacitor building like there’s no tomorrow, procuring new replacements and replacing it (and the rest of them while at it) combined with time spent unmounting it from the wall etc must have largely out-weighted both it’s value and the price of a new tv, yet there’s a rewarding feeling in fixing it and knowing that I’ll be able to use it a couple of years longer.

                                1. 7

                                  If the time did not displace working time, then there’s no loss of income for you from doing this.

                                  Electronics are also likely priced too cheaply because environmental and labour costs are discounted through poor living standards for the workers and lax environmental regulation. If we lived in a world with a flatter income distribution and better environmental controls then we’d probably reuse, repair and recycle a lot better.

                                2. 2

                                  I want to have friends doing stuff like this!

                                  1. 0

                                    For me, it’s more at the level of “not bad”. Here’s the disappointing bit:

                                    It would be nice to apply the corrective filter to the whole screen instead of just a video playing in an application, but I couldn’t think of a way to do it.

                                    If the author had managed to get the filter into the TV’s firmware or something like that, I would be truly impressed.

                                    1. 4

                                      It would be indeed sweet to have the correction running all the time. An FPGA devboard with two HDMI ports could be a realistic solution here.

                                      However I can’t even begin to imagine the toll such hardware hacking would take on my free time. Sometimes a “80% there” solution is good enough.

                                  1. 10

                                    Occam is what you’re looking for. :)

                                    Programs are built up of PAR and SEQ blocks. Statements in PAR blocks are executed in parallel and statements in SEQ blocks are executed sequentially. CSP-style channels are used to send data between communicating processes.

                                    Occam’s IDE was also interesting, being heavily centered around code folding.

                                    1. 4

                                      Along those lines, there’s a whole sub-field worth of process calculus theory, too. Concurrency is not parallelism, though. On a real multi-core computer with a relatively small number of processors and a fixed bus topology, efficient scheduling becomes the real challenge.

                                    1. 2

                                      Interesting work! Suggested appending “(2001)” to the title, since that’s when the usenix paper was published. The link on the slides is no longer served.

                                      1. 1

                                        good lookin out!

                                      1. 0

                                        The app is called MacPlayer and works thanks to the magic of Spotify Connect. The speaker itself streams and plays the music, and the Mac simply tells the speaker which song to play (as well as volume, current playlist, shuffle mode and other settings). Communication is over Wifi.

                                        So this is not an actual player which decodes the stream and plays it on Mac’s audio DMA, only the UI controller. It’s very annoying in such kind of projects these days, same for “Slack client on C64!!!!!” which is actually a VT100 telnet client communicating with actual Slack client on Raspberry Pi. And so on, in modern programming too (like, people call their borderlees website an “application”)…

                                        In other words, people want to be “cool” and shown like ultimate heroes, but they are scared about actual hard code and special challenges related to the platform they’re targeting, which is sad and most likely will turn out bad in the future.

                                        1. 13

                                          In other words, people want to be “cool” and shown like ultimate heroes, but they are scared about actual hard code and special challenges related to the platform they’re targeting, which is sad and most likely will turn out bad in the future.

                                          I’m disappointed by this. By the same logic, since all the playlists and music is stored on remote computers in the first place, the official Spotify players themselves aren’t really apps, just attempts to be “cool.”

                                          Older computers had many task-specific peripherals to get the job done. That’s why Apple IIs, early PCs, and even cheaper computers like the Commodore 64 had so many expansion ports. This to me feels very much in the spirit of how people programmed those computers. The C64 doesn’t have enough power to do speech synthesis? Fine, here’s a cartridge. Your PC can’t make real sound with just the PC speaker? Fine, here’s a Yamaha DSP. Or in this case, the Mac doesn’t have enough CPU to decode MP3s and handle the DRM and reencrypt to HTTPS? Fine, we’ll use a couple separate specialty components for those things.

                                          You’re both discounting what was accomplished here and being unrealistic about how it would’ve been done with an actual Mac SE back in the day. I’m sad to see such negativity here. This forum is usually much more appreciative of this kind of fun hack.

                                          1. 1

                                            I’m disappointed by this. By the same logic, since all the playlists and music is stored on remote computers in the first place, the official Spotify players themselves aren’t really apps, just attempts to be “cool.”

                                            It’s stored remotely, but it’s played locally. Just like you would use a regular player with, for example, an SMB share. Same thing on this particular Mac would be completely okay if you lack a harddisk.

                                            Older computers had many task-specific peripherals to get the job done. That’s why Apple IIs, early PCs, and even cheaper computers like the Commodore 64 had so many expansion ports. This to me feels very much in the spirit of how people programmed those computers. The C64 doesn’t have enough power to do speech synthesis? Fine, here’s a cartridge. Your PC can’t make real sound with just the PC speaker? Fine, here’s a Yamaha DSP. Or in this case, the Mac doesn’t have enough CPU to decode MP3s and handle the DRM and reencrypt to HTTPS? Fine, we’ll use a couple separate specialty components for those things.

                                            This isn’t correct at all. I mean, it is, but only in burger mentality where you don’t even try to work a bit harder on particular problem, but pay a slave worker to do this.

                                            The C64 doesn’t have enough power to do speech synthesis?

                                            Of course it does, and performs really well. The software is patched SAM & Reciter to work with Polish. The VIC-II is disabled during speech to free up DMA speed for cartridge access, but no one prevents you from precalculate speech sample and put it in RAM, like some games (remember Impossible Mission?) did at build time.

                                            Your PC can’t make real sound with just the PC speaker?

                                            Oh dude. There are numerous more and less creative ways to play regular PCM-based tunes on PC speaker and I didn’t even looked deeper than first YouTube link. Methods to achieve that are so diverse you can even play a sound using only an Atari XL/XE video output chip (GTIA, not to confuse with actual GPU, ANTIC) and fancy interrupt handling.

                                            Or in this case, the Mac doesn’t have enough CPU to decode MP3s and handle the DRM and reencrypt to HTTPS?

                                            This particular Mac SE/30 has a Motorola 68030@16MHz and 1 to 128 megs of RAM (I assume some modest quality of life upgrade, 4MB at least). It’s absolutely enough to decode MP3s (with some assumptions about buffer of course) and on Amiga it was even more than needed, leaving you with some cycles to do your office work.

                                            You might be right about HTTPS though - due to its recently increasing complexity because why the fuck no, everything beyond x86 at Pentium II grade is out of the league. On the other hand, the OpenSSH w/ SSH2 and recent ciphers works acceptable on Amigas with 68060 without blocking other tasks too much.

                                            So, some sort of ssl-stripping proxy in the middle would be accepted. But it’s no tied to this particular software and can be used with anything else. The software running on the Mac wouldn’t be tied to the outside bits of code, just requiring the HTTPS endpoint which you can provide however you want.

                                            You’re both discounting what was accomplished here

                                            Yes, because it’s just a mockup and requires actual modern machine to do all the stuff. In 90s, everyone would call this software a “lame” way. Huge expectations, little code, pretends to be something that it’s not.

                                            and being unrealistic about how it would’ve been done with an actual Mac SE back in the day.

                                            Absolutely no. 80% of regular Spotify client feature set could be done on that Mac (and even more on later 68k MacOS workstations). But it requires actual understanding of the target platform and - what’s seriously missing here - some bits of true love.

                                            You see, all that retrocomputing stuff isn’t about showing off and acting cool. It’s about these platforms. People are doing excellent things to prove their loved machines can still be relevant and do modern work without offloading it onto Raspberry Pi hidden under the table to gather internet points on reddit and orange site. People are dedicated to particular line or brand or model they used in the past, can utilize and show its unique features and don’t strip everything into least common denominator.

                                            I think this particular project, while “looking cool” is actually disrespectful to the Macs. This guy could do the same thing on PC, Amiga, C64, Atari or even a ZX Spectrum - requires only the monochrome bitmap graphics, keyboard and serial to communicate with ESP8266 (which even does HTTPS on its own).

                                          2. 3

                                            Pretty close to my reaction too. All the audio decoding and network streaming is handled by some very fancy speakers; http-based API auth delegated to a phone app. So, it’s mostly a visual gimmick… but still cool. I don’t blame them for not wanting to put the (much more difficult) technical effort into achieving (much lower quality) “authentic” sound.

                                            I used 68k Macs long ago, but it’s not really my scene. I didn’t even know there was a wifi card for the SE/30.

                                            1. 3

                                              There wasn’t, it’s also a trickery. There’s a dongle with ESP8266 which plugs into serial port and provides extended AT commands set so it can act more or less like dialup modem.

                                              1. 12

                                                Trickery feels like the wrong word there. That sounds like a damn good hack to me.

                                                1. 1

                                                  The „fake” is more appropriate, because it strips down the running computer to the form of dumb terminal and deprecates all its unique features so it doesn’t matter which machine you have at the end of the day.

                                                  You can surely set up a TCP stack on C64 or Atari. Well, you can even get a working 802.11 stack on Amiga and it doesn’t require using such lame solutions.

                                                2. 2

                                                  I’m not sure about that. In the picture, it sure looks like there’s a wifi antenna coming out the back, and nothing plugged in to the serial ports. Author linked to https://github.com/antscode/MacWifi which mentions some devices. I recall having a 68040 PowerBook with onboard ethernet (via a ridiculous dongle) and could use wifi PCMCIA cards, so it doesn’t seem all that far-fetched. I’m not going to dig any further, though. I waste enough time on even older machines!

                                                  1. 1

                                                    I need more information about this! Do you have a link?

                                                    1. 1

                                                      Just duck the “esp8266 serial WiFi”

                                                  2. 1

                                                    I wonder if any of the 68k Macs even have enough power to decode AAC…

                                                    1. 2

                                                      Spotify uses AAC only on macOS/iOS from what I remember, other platforms get Vorbis or MP3, depending on chosen quality.

                                                      1. 2

                                                        I imagine that even 128kbps MP3 is a big struggle for a 68030 on it’s own, but I wasn’t aware they still served some music as MP3.

                                                1. 49

                                                  Kind of annoying that you have to read thru a third of the article to get to the important part:

                                                  Is Flow open source?

                                                  No. […]

                                                  1. 19

                                                    It is this part of the answer that I find more interesting: “There’s no current plan for that as we don’t have a large corporation backing our development. “

                                                    It just makes me sad. Open source was supposed to destroy the corporations, not empower them! It was to bring freedom to the development world, not leave it at the mercy of big money operators.

                                                    Nothing new, no big comment. Just lamenting :( (though the khtml legacy may be interesting - and it is LGPL… perhaps we have that to thank for the openness we do still have at least)

                                                    BTW I also hate the name “Flow”. Gah I can’t wait for this era of names to come to an end.

                                                    1. 14

                                                      Open source was supposed to destroy the corporations, not empower them!

                                                      Was it? I always thought that free software was about empowering the users — raising then up, not dragging anyone down.

                                                      1. 8

                                                        Open source has always been about empowering the corporations from the beginning, and free software has always been about preventing corporations from exploiting users, which under the current capitalist system amounts to destroying or crippling them.

                                                        1. 1

                                                          yeah i was being kinda loose to fit the star wars meme.

                                                          But open source is basically corporations taking over the free software idea and twisting it for their own benefit. So I should have said “free software” of course but eh the article said “open source”.

                                                        2. 10

                                                          This is a weird attitude. I’m all for open source and have been working on open source full time for several years.

                                                          But just because someone starts an important/interesting project doesn’t mean anyone should demand it be open source.

                                                          The obvious response is: Start your own open source browser project, and recruit or pay the 100+ developers it will take over decades! If it were easy or cheap, we’d see a lot more of these types of projects.

                                                          1. 5

                                                            I don’t demand it, I just would prefer not to run some person’s code nobody can read.

                                                          2. 8
                                                            1. 4

                                                              It is this part of the answer that I find more interesting: “There’s no current plan for that as we don’t have a large corporation backing our development. “

                                                              Well, imagine they release it today: people will report issues, create PRs, ask for features, etc.

                                                              Responding to that in a vaguely timely fashion takes up a lot of time. If you’re a small company, you may not want to spend the time/money.

                                                              1. 15

                                                                You don’t have to have an issue tracker, or forums, or accept contributions, or even have source control.

                                                                It’s open source if you dump a tarball once per release.

                                                                1. 7

                                                                  I’ve worked on open source without a public bugtracker. We were flamed for that. “Not really open source” etc.

                                                                2. 5

                                                                  More than that, they want to sell it.

                                                                  1. 2

                                                                    I would like Flow to be open source, but I don’t care enough to do anything about it. If I really wanted to make it happen, here’s how I’d go about it:

                                                                    1. Find enough developers who will commit to maintaining it properly
                                                                    2. Approach Ekioh and ask them to make a deal
                                                                      • They would benefit from additional contributors without paying maintenance costs
                                                                      • They will probably want some cash too
                                                                    3. Crowdfund to raise the cash

                                                                    That’s pretty simplistic, I realize. But my point is just that license problems are business problems, and can sometimes be solved.

                                                                  2. 4

                                                                    I think it’s honestly a misdirection. There have been plenty of good open source projects with small businesses behind them. It’s like saying “Oh I can’t do the dishes tonight because I don’t have large corporation backing”.

                                                                    1. 12

                                                                      I’ve worked at one of those (one of the first to do it) and when I read that sentence it, I just nodded. “Yeah, can understand that.” What they mean is probably that they need income, every month, and they’re worried that by opening the source their existing business model is at risk and they don’t have an obvious replacement.

                                                                      The worst case is roughly: zero outside contributions, a wide user base that pays nothing and expects much, the user base does not contain prospective customers, and too many of the existing customers decide to stop paying and just use the free offering. With skill and luck it’s possible to devise a new business model and sales funnel that uses the width of the user base, but doing that takes time, and without a corporation backing it, how does one keep the lights on meanwhile?

                                                                      1. 4

                                                                        What they’re really saying is they don’t have the skill or finesse to pull it off. That’s fine, however plenty of small businesses have made great profits while open sourcing their products. You don’t “need” corporate backing, and I’d argue if anything it’s an obstacle rather than a benefit.

                                                                        1. 10

                                                                          The skill and finesse to pull it off is considerable, IMO it can be regarded as infinite unless you have two more things:

                                                                          • skill and finesse
                                                                          • luck
                                                                          • funds to last you through a period without income.

                                                                          Skill alone isn’t enough.

                                                                          A “large corporation” in this context is simply one that’s large enough to have one or more sources of income unaffected by the product being developed, and whose other income is large enough to carry a team through the product development phase.

                                                                          (I’ve worked at three small opensource companies and spoken to my counterparts at others.)

                                                                          1. 1

                                                                            Not saying your concern is entirely invalid, I think those things DO matter. I just also think the reality is probably somewhere between “It can’t be done” and “It’s trivial to do”. The idea that you can’t run an OSS business without backing by a major corporation is probably untrue. The idea that you can run an OSS business without capital, luck, or skill is probably also untrue. I personally found it upsetting that he was attempting to put it all on a lack of corporate backing instead of just saying it was a strategic decision to keep an edge on competition or something. I often find when people deflect blame on to things they can’t control they are often trying to sidestep the extent they do have responsibility or control over the situation.

                                                                          2. 5

                                                                            What fields were they operating in? Are they still prominent or even around? Were they ever prominent?

                                                                            Where did they get money? Corporate customers, side gigs or a big inheritance? Did they detour from their core paying business to do open source?

                                                                            How long did it take for them to become sustainable? Did they?

                                                                            What’s the proportion of “plenty” in comparison to the competition that didn’t make it? To the corporate-backed competition? To the competition that’s still around with the same premises?

                                                                            Not to come off as too much of a duck here, but all these questions are very important when saying someones have generally made money. Surely the response might warrant more of a study than a reply, but seeing how under-staffed and -paid open source is, I’m a bit triggered by negating legit concerns with “others done it”.

                                                                            1. 2

                                                                              I’m a bit triggered by negating legit courses of action with “it can’t be done”, so… I doubt we’ll have a tremendously productive discussion. I think your questions around it are fair and reasonable but I think our stances and positions are too far apart to find the center in the comment thread. I’m not really interested in debating this out however I do appreciate that you took the time to come up with good challenges to my point.

                                                                      2. 1

                                                                        I’m curious about the name. What would have been your choice?

                                                                        1. 2

                                                                          Seeing as the company is named Ekioh, perhaps “Ekioh Browser Engine”, EkEng or EBE for short, or maybe a four letter word that isn’t already used by multiple software projects

                                                                          1. 2

                                                                            I probably would go Ekioh Browser - descriptive yet unique by including the existing company name. There’s just a trend right now to use fairly short, generic names. I imagine the marketers are like “we want to evoke a feeling” but I just want some decent idea of what it is and how it is distinct.

                                                                        2. 17

                                                                          Does the fact that the browser is not open-source mean that it is not bringing diversity to the market? I’d argue that browser diversity was in a healthier state when Opera had a proprietary engine than it is now that Opera uses Chromium and Blink.

                                                                          Don’t get me wrong, I’d much rather see this be open-source, but I don’t think the fact it’s closed source means it’s irrelevant.

                                                                          1. 40

                                                                            one thing to keep in mind is that privately controlled web engines can disappear without leaving a base for a community to develop, as with presto.

                                                                            1. 8

                                                                              That’s a fair argument.

                                                                              1. 3

                                                                                Open source software can disappear, too, when the entire development team goes away.

                                                                                I’m not aware of any open source that was

                                                                                • developed by a smallish company
                                                                                • opened
                                                                                • received substantial contributions from outside

                                                                                AFAICT, if something comes from a company and isn’t an obvious non-product like e.g. lepton, then outsiders regard it as that company’s product, and don’t spend their time developing that company’s product for free. A community does not develop.

                                                                                I’d be thrilled to learn otherwise. Particularly how small companies might get others to develop their product for them.

                                                                                1. 2

                                                                                  IIRC even the Mozilla codebase languished for quite a while, long enough for the company to go under before it got really picked up by a community. It was a last-ditch desperate effort, but still…

                                                                                  1. 2

                                                                                    Doesn’t Netscape/Mozilla/Firefox fit your criteria? Plan 9 also comes to mind.

                                                                                    1. 2

                                                                                      Wasn’t Plan 9 a Bell labs thing? That is to say, unless I misunderstand what you mean by “Plan 9” it was produced by one of the largest, most famous monopolies in US history. Or pretty much the opposite of a smallish company.

                                                                                      I would not call Netscape or AOL (depending on who you want to attribute the open source release to) smallish either… if memory serves they were worth $10 Billion or so at their peak. But that pales in comparison to Bell.

                                                                                      1. 2

                                                                                        Right. (The $10B is irrelevant IMO, the relevant number is about $2B according to Wikipedia.)

                                                                                        So from the point of view of the Flow people who might be considering going an open source route, there’s a distinct shortage of examples to learn from. A $2B company whose CEO regards as an “amalgamation of products and services” is hardly relevant.

                                                                                        Mozilla was founded with a ten-digit endowment from AOL. Fine for the users, but it makes Mozilla irrelevant as a case to learn from for teams without such fortune.

                                                                                        1. 1

                                                                                          (I was assuming that the poster I replied to was sincerely arguing that Netscape or Plan 9 would count as something from a small-ish company. If my sarcasm detector was miscalibrated, mea culpa.)

                                                                                          This is perhaps the only case in the world where I’d call a difference of $8B “splitting hairs” :)… I’m no more prepared to argue that a $2B company is small than I am to argue that a $10B company is.

                                                                                          1. 1

                                                                                            No, your rant detector was miscalibrated.

                                                                                            Some of these pseudo-arguments annoy me so very much. I wish opensource advocates would use real arguments, not shams that look good at first glance, but make open source look bad in the eyes of developers/teams that are considering going open source. 39 upvotes for something that silently implies that open source can’t/won’t disappear means 39 people who aren’t thinking as carefully as I wish opensource people would. It gets to me and I start posting rants instead of staying properly on-topic. Sorry about that.

                                                                                            1. 1

                                                                                              sorry; i missed that you asked about “smallish” companies and i misunderstood the thrust of your argument. i guess you were arguing that it would be a risk for flow to open source their browser? i don’t disagree, but that’s different from the question of how much we should care about or support this effort, as people who care about browser diversity.

                                                                                              are you trying to argue that free software can disappear without leaving a base for a community to develop? what line of careful thinking would lead you to that conclusion?

                                                                                              1. 2

                                                                                                The careful thinking is based on two things.

                                                                                                First, an observation that the number of outside committers to a conpany’s product is extremely small. People don’t choose to use their own time to work on someone’s product — they find something else to work on. Because of that, the development team for any opensource product is overwhelmingly in-company.

                                                                                                Second, source access is necessary but not sufficient for good software development. Much of what makes development practical is in the team. It’s drastically easier to develop software (both fixing bugs and developing new features) if you can speak to the people who’ve worked on it so far, ask questions, get answers.

                                                                                                Both of those are rules of thumb, not laws of physics. If you however assume both to be absolutely true, then there’s no difference between a single-product closed-source company doing an opensource dump when it’s acquihired and an opensource company with a single opensource product. If you (more realistically) assume both things to be true with exceptions, then the difference is as large as the exceptions permit.

                                                                                                You may compare threee scenarios for product/team/company closure, whether it’s an acquihire, bankruptcy, pivot or even things like the whole team going on a teambuilding exercise on a boat, and the boat sinking:

                                                                                                • Open source company closes (any reason): New team may form from volunteers, continuity is lost.

                                                                                                • Closed source company closes, dumps source on github: New team may form from volunteers, continuity is lost.

                                                                                                • Closed source company closes, does not dump source on github: End of story.

                                                                                                Ie. open source has advantages and some of them are IMO significant, but safety or continuity in the event of the team going away isn’t one of them. “Safety” and “continuity” are big words. A new team may spontaneously form, but that’s far from automatic, so there’s no safety, and and if it does form it hardly provides continuity.

                                                                                                1. 1

                                                                                                  that all makes sense, and does not contradict the fact that open source products provide a base for community development, even if the base is just a source code dump. there may be a continuity barrier, but it can be overcome.

                                                                                                  for a browser engine, it makes a difference whether it is released like gecko, allowing forks and community development, or released like presto, where a pivot by a private company ends the possibility of further development.

                                                                                                  hopefully you see now that my argument was real and not a sham, and your wish for open source advocates to think carefully is fulfilled.

                                                                                                  1. 1

                                                                                                    Well, it provides a base in almost exactly the same way as, say, Mitro’s code dump did when it was acquired. Mitro could have opened the source earlier (it actually did so on the day as part of its acquihiring process), and I don’t see any reason why an earlier open source process would have provided more of a base.

                                                                                                    1. 1

                                                                                                      sure, but before a company does a code dump there is no assurance that they will if the company pivots or goes bust.

                                                                                                      1. 2

                                                                                                        True. However, do you think that’s a major aspect of uncertainty? I think the users you have in mind aren’t paying customers, right? Someone who isn’t a paying customer (who has no contractual relationship with the maintainers) can hope for continued development, support, years of unpaid service, but only hope, no more. There’s no assurance of bugfixes, of new features, of a port to the next OS version, of compliance with next years’s laws or the ability to read next year’s Microsoft Word files, or that the next version will be open source.

                                                                                                        It’s just one more item on the list of hopes.

                                                                                                        You’ve probably heard stories about companies who implement major new features and then leave them out of the open source tree? I heard about someone who did that with Catalina support recently. It was a tool often used by system integrators, can’t remember the name, but it’s said to be the only open alternative in its niche. For these system integrators, open source was basically a free trial. Once they had invested in that tool, deployed it widely, their customers upgraded to Catalina and they needed to react in a hurry.

                                                                                                        1. 1

                                                                                                          True. However, do you think that’s a major aspect of uncertainty? I think the users you have in mind aren’t paying customers, right? Someone who isn’t a paying customer (who has no contractual relationship with the maintainers) can hope for continued development, support, years of unpaid service, but only hope, no more. There’s no assurance of bugfixes, of new features, of a port to the next OS version, of compliance with next years’s laws or the ability to read next year’s Microsoft Word files, or that the next version will be open source.

                                                                                                          the same applies to proprietary projects so i’m not sure what you’re getting at.

                                                                                                          are you saying even corporate-led open source projects don’t provide a guarantee that the project will continue to be open source? that’s fine but again doesn’t contradict anything i’ve said. it’s still better than proprietary from the perspective of browser diversity because the latest open source release would still provide a base for community development.

                                                                                        2. 1

                                                                                          i must have missed the word “smallish,” whoops

                                                                                  2. 2

                                                                                    Even Internet Explorer, shitty as it was, using its own engine made the web more diverse and forced developers to at least keep some semblance of portability. With the arrival of Edge, they also went the Blink/Webkit path.

                                                                                    There are basically only two (or three, if you count Blink and Webkit as distinct) rendering engines left which matter. That’s truly sad.

                                                                                    So yes, seeing a new browser emerge is actually something that I find hopeful.

                                                                                    1. 2

                                                                                      With the arrival of Edge, they also went the Blink/Webkit path.

                                                                                      They did not do that with the arrival of Edge. They started Edge on its own engine and only just recently released a blink-based version.

                                                                                      IE may have initially encouraged some portability, but its net effect was quite the opposite. There were a lot of IE-only products by the time we saw version 6 or so.

                                                                                      1. 2

                                                                                        IE may have initially encouraged some portability, but its net effect was quite the opposite. There were a lot of IE-only products by the time we saw version 6 or so.

                                                                                        That was when IE had “won” the browser wars and had added nonstandard features which other browsers didn’t support. Once they’d killed off Netscape people didn’t have any incentive to run other browsers, and those extra features got used by developers, entrenching it further because of these IE-only products you mention.

                                                                                  3. 6

                                                                                    This is the only thing I was looking for too. Not sure how Flow is supposed to solve any of the problems posed by a lack of browser diversity if it isn’t open source.

                                                                                    1. 11

                                                                                      Any alternative implementation of web technologies that isn’t WebKit gaining a non-trivial market share is a positive for those of us concerned about browser diversity, regardless of whether that implementation is open-source or not.

                                                                                      1. 1

                                                                                        Android might be a point, but without Windows it will not get a non-trivial market share.

                                                                                    2. 3

                                                                                      Thank you, thats one of the first items I check

                                                                                      1. 4

                                                                                        Can you come up with a better way to sustain its development than “people paying for it”? Unfortunately, free software isn’t free to develop.

                                                                                        1. 1

                                                                                          I’m not complaining that they’re charging for it; I just wish the article was up-front about the licensing at the outset so I would know not to waste my time on it.

                                                                                      1. 1

                                                                                        Makes me think of how Elm is able to recompile so quickly so that you can see your changes “instantly”. Especially if you’re working in something like glitch.com, I can see my changes within a second of when I stop typing.

                                                                                        1. 2

                                                                                          made me think of Pharo/Smalltalk actually. You can query/modify and interact with the entire system (and not just the parts of code you are writing) in “real time”.

                                                                                          1. 2

                                                                                            Yes. This is what Alan Kay was evangelizing, even as far back as Smalltalk-76. He credits Simula 67 and Sketchpad. Squeak, the portable Smalltalk-80 implementation originally developed at Apple, is the direct ancestor of Pharo. The Morphic UI (replacing the old MVC in Squeak) is strongly influenced by the same ideas.

                                                                                            1. 1

                                                                                              “Rebuild quickly” and “live systems” both make implementing some of these ideas easier but I think the real issue is scaling this up and across the whole system. Not only should this be the default mode of all programming, it should also work for getting a sense of large scale changes that span multiple processes and machines.

                                                                                              I was thinking the core model of working would change from “rewrite, rebuild/rerun and review output” to “project and manipulate” where project involves creating a projection/view of your system that shows the behavior you want affected.

                                                                                        1. 18

                                                                                          An acompanying blog post[1] from Terry Cavanagh, the game’s creator, contains some additional information on the source release as well as a bit of a code-post-mortem. I think it’s worth noting that the VVVVVV code is pretty horrendous (Cavanagh even admits so), yet the VVVVVV product is a best selling and well loved indie title. It shows that code quality is not equivalent to product quality.

                                                                                          [1]: http://distractionware.com/blog/2020/01/vvvvvv-is-now-open-source/

                                                                                          1. 5

                                                                                            code quality is not equivalent to product quality

                                                                                            … for one indie game. True enough, but I would be cautious about extrapolating from this.

                                                                                            1. 3

                                                                                              Games are somewhat different to most other software in that they are art, not tools. A quirk or oddity is far more tolerable in a piece of art than in a tool that one potentially has to use for hours every day.

                                                                                              1. 2

                                                                                                Has there ever been a widely-used consumer product that has had great code quality? Like xmonad is cool but it isn’t exactly widely used.

                                                                                                1. 2

                                                                                                  I don’t know of you consider database systems widely used, but SQLite is kind of well-known for their extremely extensive testing, and SQLite is very widely used, but most likely not that known to the ordinary consumer of the products that it’s used in.

                                                                                                  1. 2

                                                                                                    Infrastructure typically requires a higher baseline level of quality versus user facing code. Conversely, it is one step removed from revenue, thus it tends to be under appreciated and under funded relative to its importance.

                                                                                                    Choose your poison. The amount of value generated by SQLite is likely in the billions, thanks in no small part to the quality of engineering that went into it.

                                                                                                2. 1

                                                                                                  Agreed. I might even say that poor code quality is correlated with high-quality games, but that doesn’t mean the relationship is causative. Many brilliant video games are made by creatives who don’t care so much for developing their programming skill. That doesn’t mean that high-quality, maintainable code is a bad idea.

                                                                                                  1. 1

                                                                                                    There was some other obscure indie title called “Minecraft” that was supposed to have very terrible code. Microsoft bought it for more than 2 billion dollars.

                                                                                                    It might happen more than you think with video games, as opposed to other kinds of software.

                                                                                                  2. 4

                                                                                                    It shows that code quality is not equivalent to product quality.

                                                                                                    Games are different from many other pieces of software in that you can create it once, and then never (or rarely) have to update it, especially for smaller games. A lot of the problems with “poor quality code” is that it becomes hard to update code, not that the original code doesn’t work.

                                                                                                    Quoting from the article:

                                                                                                    Looking back through it myself all these years later, I find it really funny how much of it is basically just the same parts copy and pasted over and over, with the values changed. This basically makes it impossible to read and maintain ten years later, but back when I was in the thick of it, it made it really fast to iterate and add new things

                                                                                                    1. 1

                                                                                                      Yeah, the most succinct summary I’ve heard was “VVVVVV’s code can afford to be bad because it was made in 7 months with not much plans for large scale post-launch support”

                                                                                                    1. 4

                                                                                                      Flagged as off-topic, since it has nothing to do with computing.

                                                                                                      1. 1

                                                                                                        Well, nothing yet…

                                                                                                      1. 4

                                                                                                        Are Adelie, Devuan, and Obarun aware of the existence of dinit? If so what do they have to say about it?

                                                                                                        Having looked into init systems a few years ago (my knowledge may be out of date), it seems that the systemd detractors also don’t like the status quo. So what are they settling on? Last I heard, Alpine uses openrc, which not everyone is entirely happy with.

                                                                                                        1. 4

                                                                                                          I’ve assumed that they are aware of it at least to some degree, because I’ve been blogging about it for a while and I’ve occasionally seen reference to it crop up elsewhere, but i’ve never tried actually approaching these distributions to ask whether they would consider using Dinit. Partly this was because I didn’t want to be seen as pushing it on people, I had this idea that it would be good enough that it would be recognized for what it was worth and perhaps adopted for that reason.

                                                                                                          Some of them would no doubt prefer OpenRC or S6-RC to Dinit because those are simpler, and the complexity of Systemd is one of the things that people don’t like about it. There’s an idea that init should be as simple as possible, and if that’s what you want then Dinit isn’t a good match for you. Personally I believe there’s an ideal middle ground somewhere between Systemd and the others, and that’s what I’ve been aiming for.

                                                                                                          Maybe not pushing Dinit harder was the wrong call. I’ve considered talking to the Devuan people (mostly because I’m more familiar with Debian than I am these other distributions) to see what it would take to add Dinit as an option (I believe they currently offer Sys V init and OpenRC as options). I’m still having debating internally whether to do this (and whether to do it now, or once I’ve gotten it a llittle closer to what I’m planning to call version 1.0).

                                                                                                          1. 10

                                                                                                            I had this idea that it would be good enough that it would be recognized for what it was worth and perhaps adopted for that reason.

                                                                                                            There’s an old quote I heard once: “Don’t worry about people stealing your ideas, if your ideas are any good you’ll have to force them down people’s throats”.

                                                                                                            I think systemd is awesome, like C++ is awesome, for all the new capabilities it brings. However, I’m really looking forward to the generation of init systems after systemd, that learn from it and tame it, in the same way that Java, C#, Go, and Rust have all learned from C++ without copying it wholesale. I hope Dinit is one of those systems, but to get there you’re going to need an amazing feature (like Rust) or a lot of advertising (like Java, Go and C#) to win mindshare.

                                                                                                            1. 1

                                                                                                              Oof! Is there much uptake on s6? I’ve only seen it at one job, and, uh, it’s only in use on legacy systems there.

                                                                                                            2. 2

                                                                                                              Void uses runit. Devuan seemed to prefer the Sys V status quo. If anybody here ever comes across a thorough comparison between the new-ish non-systemd init systems, I hope they post a link. It’s something I’m mildly curious about, but not enough to do the research myself.

                                                                                                              1. 2

                                                                                                                I have a comparison of various inits/service managers in the Dinit repository, it’s not exhaustive but it tries to go into the differences in a meaningful way.

                                                                                                            1. 4

                                                                                                              The best proposal I’ve seen to really address the problem of invasive and abusive ads is Cegłowski’s Senate testimony. It does involve some regulatory intervention, but not in the way you’re probably thinking.

                                                                                                              1. 3

                                                                                                                If looking for ideas, check out https://en.wikipedia.org/wiki/Sociocracy but be cautious. Some of this stuff is actually pretty well-tested, but may still not work for your situation. Employee-initiated cultural change in a large organization with well-intentioned but unclear support from management is about the second-most difficult scenario I know of.

                                                                                                                1. 1

                                                                                                                  Thanks for the Interesting link.

                                                                                                                  My personal view is that everybody across all levels wants to improve the situation but nobody has a clue how to do it. This is a bottom up initiative. There are also top-down and in between initiatives.

                                                                                                                  I guess the most difficult scenario is with hostile management? What would reduce the difficulty?

                                                                                                                  1. 2

                                                                                                                    Cultural change can be tricky even when everybody’s got good intentions and their motives are aligned, because change always involves risk and culture always involves communication across multiple scales and channels. It always takes time, and even when going well it can be a little messy. Best advice I can give is don’t try to change too much at once: try something new within a limited scope, observe carefully, reflect and document, and only then try to get buy-in from more (or more powerful) stakeholders. Rinse and repeat as needed.

                                                                                                                    I currently work for an employee-owned company with about 100 employees, three offices, a few remote people. Most of us have a strong technical background, although some also hold management-like roles. We’ve always been highly democratic, but we haven’t always been employee-owned. We’ve grown over about 15 years from about 10 employees to about 50, and then doubled in the last few years, which has put some stress on collaborative decision-making processes that worked well at the smaller scale. There’s a broad consensus that we’re not interested in doubling again, at least not until we can adapt the culture to our new scale. This means turning down work, something not all businesses can afford to do.

                                                                                                                1. 1

                                                                                                                  As a person who does not know a lot about the differences between BSD and Linux, this article was very insightful. The article is aggressive against Linux, but that helped highlight the differences for me.

                                                                                                                  1. 2

                                                                                                                    I wouldn’t say that it is representative for BSD. Eg. NetBSD has backwards compatibility to very old historic releases.

                                                                                                                    https://2019.eurobsdcon.org/slides/Improving%20modularity%20of%20NetBSDs%20compat%20code%20-%20Paul%20Goyette.pdf

                                                                                                                    1. 1

                                                                                                                      This is all old news for me, and I’m not sure I agree with all the specific claims being made, but it’s nice to see the argument written down. At its root it shouldn’t be all that controversial, really: in general you can’t be substantially better without being at least a little different.

                                                                                                                    1. 6

                                                                                                                      “Years of this approach [non so-called enterprise oriented development] to operating system development which actively deprecates and removes functionalities in favour of new better ones has allowed Apple the ability to make leaps and bounds in both the graphical shell and the underlying kernel while it’s competitors have stayed stuck in the mud.”

                                                                                                                      “Leaps and bounds” seems like a bit much.

                                                                                                                      I like OSX, but I don’t see how the kernel or the graphical shell are technically superior to competitors (i.e. Windows) in any particular way. “Buggy but doesn’t crash” is hardly a win.

                                                                                                                      Apple’s development model puts a lot more responsibility on the developer to keep their app up-to-date with the latest API changes and deprecations. I’ll buy this. However, if this style of OS development is superior, as the author implies, then Apple is probably not a shining example. I use both OSX and Windows daily and have for years. The stability of both systems has been more or less on par for a while, but OSX has taken a serious dip in the past few releases. I suspect this drop in quality is due to Apple moving too quickly - something the author views as a benefit.

                                                                                                                      It’s also difficult for me to accept that Apple’s abandonment of “enterprise-oriented development” is somehow superior when I can still run 20+ year old software on Windows while being able to work in native Windows containers and run both powershell and native bash side by side.

                                                                                                                      1. 1

                                                                                                                        I agree that macOS is both stagnant in some ways and also has added some dubious and unstable (seemingly rushed or poorly thought-out) features in recent years. But the claim here is a little hedged, and harder to evaluate. What “allowed the ability” implies to me is that, having set developer expectations by deprecating legacy APIs (even ABIs) on several occasions, Apple could make more improvements than they’ve chosen to make. Maybe they don’t see the value, or maybe they are reluctant to ‘improve’ their UX in a way that would break users’ entrenched mental models – something not discussed in the article, but I think just as relevant as API compatibility, for user-facing system software. Specific features, mis-features, or lack-of-features all probably have their own stories. It’s hard to generalize.

                                                                                                                        As for your other point, I don’t think I get it. If we’re talking about virtualization, I can run Windows, OS/2, Solaris, Classic Mac in 68k or PPC flavors, etc etc in VMs on just about any platform. So what?

                                                                                                                      1. 7

                                                                                                                        Hi Lobsters! I’ve been frustrated with standard GUI-based design tools, because they don’t match the way I think: like a programmer, in terms of relationships and abstractions. (Does this resonate with the community here?)

                                                                                                                        So I’ve been hacking on this new DSL for design that allows the designer to specify figures in terms of relationships, which are compiled down to constraints and solved using an SMT solver. This also leads to good support for abstraction, because constraints compose nicely.

                                                                                                                        The system is still a WIP, but it’s usable enough that I made all the figures and diagrams in my latest paper and presentation with it, so I thought I’d write up a blog post about it and share some results.

                                                                                                                        This post is about how I think about design and how the programming language implements this philosophy. It also contains a number of case studies of designing real figures with the tool.

                                                                                                                        There are also some (probably useless?) but really amusing results, like what happens if you solve figures via gradient descent (the result is oddly satisfying).

                                                                                                                        I’d love to hear what you all think about the ideas in the post. Do you share any of my frustrations with existing design tools? How do you think when doing design – does your model match mine, or is it something different? Do you currently use any design tools that you’re really happy with, that I should know about?

                                                                                                                        1. 2

                                                                                                                          I was reading the post and thinking how awesome it would be to have this in racket, and then I saw at the end that you were doing exactly that :) looking forward to seeing it!

                                                                                                                          1. 2

                                                                                                                            Hmm. I might actually use Basalt for something, someday. Thanks for sharing it! I make a fair amount of diagrams in my work, but I’ve found it’s usually easier to just draw them freehand. There are definitely exceptions, though.

                                                                                                                            Just skimming through your post, I’m a little surprised to see no mention of TeX, from which TikZ/PGF has sprung. There are quite a few TeX packages and macros which use the constraint-solving machinery of the system to good effect, e.g. asymptote and other more domain-specific packages. I can understand why TeX may not fit your use cases, but it might be worth looking through CTAN for ideas anyway. I think having interactive sliders and instant feedback is very helpful, since (in my experience) modeling the visual optimization problem in sufficient detail is often more work than it’s really worth. Even if you’re going for a fully automated solution eventually, having a ‘visual REPL’ is very helpful for development.

                                                                                                                            As for iterative ‘force-directed’ (effectively gradient descent) graph layout, it seems to be a very common feature of web-based graph rendering libraries nowadays. GraphViz of course does constraint solving of some sort, but I’ve never looked into the details.

                                                                                                                            1. 1

                                                                                                                              I’ve used TikZ before, but not the other TeX-based drawing packages. Thanks for the recommendation, I’ll look into those!

                                                                                                                            2. 1

                                                                                                                              Have you looked at Apple’s auto layout system or the underlying Cassowary incremental solver? I’m not sure it is powerful enough for your application but it is fairly fast: http://www.badros.com/greg/cassowary/js/quaddemo.html

                                                                                                                            1. 11

                                                                                                                              This is a horrifying monstrosity. I love it. Blog author, if you’re reading this, please continue working on this. I wonder where this rabbit hole goes.

                                                                                                                              1. 7

                                                                                                                                Last time I stumbled into such a rabbit hole, I ended up in http://www.greenarraychips.com running ColorForth as a “host IDE”.