1. 1

    I really love this idea! If only storage heavy cloud resources weren’t so pricey.

    1. 2

      The webtorrent based P2P video streaming definitely helps mitigate this.

      1. 1

        So, that helps with bandwidth, not storage, right?

        If you run a federated video sharing service, you still have to provide the actual storage for all the videos you host / ‘seed’ or whatever.

        Point is, unless you’re somehow hosting colocated physical hardware, cloud infra with lots of storage is quite spendy.

        For instance, hosting a cloud server on either AWS or Digital Ocean with 1000 GB of storage will run you arond $120 / mo approximate.

        That’s a decent bill to pay for a hobby :) Not saying it’s not worth it, just that it costs significant $$$. That’s over a grand a year US. Not chump change.

        1. 1

          No it helps with storage. You only have to pay for the videos hosted on your instance, this means you AREN’T hosting all the videos in the fediverse. Lots of people run an instance that only seeds their videos. So yes if you want to seed a TB of video you’re going to have to pay for a TB of space, however that’s a lot of video. Also there’s no strict need for a cloud server for a hobby project either.

          1. 1

            You’re right. My entire media collection is 2TB.

            Have you run a PeerTube instance? I’d be curious if folks who have actually done this could chime in on the storage requirements.

            And no a cloud server “isn’t strictly required” however if you plan to provide a service with any level of reliability, anyone who has ever tried to do such a thing out of a regular residence will tell you it presents a number of challenges :)

            1. 2

              The requirements are akin to seeding video torrents, something which is already widely popular. If it’s a hobby project, total reliability is a nice to have and not a requirement. You can set quota limits on users who join your instance, but it’s relatively popular to host your videos on your own instance and close registration. I’ve looked at the code some and built an instance for messing with on my home network but no I’ve not done anything production scale.

              1. 1

                FWIW I totally love the idea and think anyone who’s willing to do so should totally set one up. Let’s give YouTube a run for its money :)

                What kinds of things were you thinking of hosting on your instance?

    1. 1

      I think monetization will be important. Many YouTube uploaders live off YouTube monetization schemes. Without monetization they won’t move.

      1. 4

        Feature not bug.

        1. 2

          People respond to incentives. In YouTube’s case that looks like “smash that subscribe button”, padding for time, a video every day until burning out, weird toddler videos, etc. It’s hard to design a business model that pays video creators for novel work done sustainably, but doing so could be a cultural shift, especially in programming for children/teens.

          1. 1

            I think some sort of integration/easy onboarding with platforms like liberapay would be an incredibly useful feature for uploaders.

          2. 1

            It’s doable! There’s people working to make subscriptions a thing. Right now you can directly back people using Patreon.

            1. 2

              Or Liberapay.

            2. 1

              Counterpoint youtube’s monetization is so fickle and poorly implemented that most successful youtubers actually live off of patreon or a patreon alternative. Patreon or as someone else said LibrePay is completely compatible with Peertube.

              1. 1

                I watch couple of youtubers and I’ve never heard from them anything except ‘Like’ and ‘Subscribe’ (anecdotal experience).

                1. 1

                  yeah they still need to expand their audience to get more patrons.

            1. 3

              We don’t need product launches featured here.

              1. 13

                I think announcements of developer tools or frameworks are generally useful and wanted here; it’s not like this is an announcement for a new videogame or chat app.

                1. 4

                  Agree.

                  1. 3

                    There are hundreds of new development tools launched daily. This is a beta which you can join a wait list for; it’s notable only because a big player is launching it.

                    This is perfect for HN, slashdot, reddit… there’s no shortage of “tech news” sources.

                    1.  

                      Which doesn’t mean it won’t interest lobsters and thus be shared here. Like @voronoipotato says below: you can hide the release tag if you feel inclined.

                      1.  

                        The release tag is full of good content - typically software I can use, virtually always open source. This is the release of a waiting list, nothing more.

                  2. 8

                    A substantial amount of the things we talk about here are product launches. You can hide the release tag.

                    1. 1

                      On the one hand, I agree with you. On the other hand, I suspect a lot of people here are using GitHub plus a CI service. 🤔

                    1. 8

                      I feel like a small 14 segmented led based text buffer could mitigate the frustration due to slow refresh. the text buffer shows all the typed text that hasn’t yet rendered on refresh.

                      1. 11

                        Indeed, that’s an option.

                        I investigated this during the project, it actually makes the whole GPIO wiring/driving really tricky.

                        Cf. this thread

                      1. 13

                        The article posits attachments that don’t extend the message length as “embrace extend extinguish” despite the fact that the source and protocol are totally open, AGPL 3 even. The idea of adding image urls to the message length is frankly stupid and is the cause of the promulgation of URL minifiers which cause less skilled users to get infected because they’re clicking links to random websites with who knows what content. Sure factional politics in open source is a thing, however it’s important to notice too that Mastodon has that feature because Mastodon users wanted that feature. If you want GNUSocial to drive the changes it needs to attract the audience to drive that change, such is the nature of an interconnected system.

                        1. 22

                          Why do we say kleenex instead of facial tissue? Branding matters a lot, and Mastodon has done a much better job of branding than the fediverse as a whole (which is largely down to, Mastodon is an entity that can brand, whereas “the fediverse” is nothing but a notional collection of OStatus/ActivityPub participators with no central branding arm).

                          Besides, most non-technical users (who we’re increasingly seeing on Mastodon/The Fediverse, as opposed to the highly technical early adopters) are in the market for services, not protocols. Users never talked about being “on the XMPP federation”, it was always “here’s my AIM”, “here’s my gchat” etc. They still understood that these things worked together, but they weren’t interested in pedantic distinctions between hosting software and protocols, nor should they be.

                          1. 6

                            Users never talked about being “on the XMPP federation”, it was always “here’s my AIM”, “here’s my gchat” etc.

                            The difference is that XMPP was primarily about having one kind of conversation, and the fediverse isn’t.

                            The main use of the fediverse right now is for twitter-style interaction, and that’s fine, but Pixelfed’s photo sharing, Peertube’s video sharing, and Plume’s long-form publishing, and now even chess-over-activitypub servers are becoming an important part of the fediverse in a way that’s more than just “yet another implementation of the same idea”. So if you group all that stuff together under “Mastodon” just because it uses the same protocol, you’re missing out on a whole lot.

                            1. 9

                              So if you group all that stuff together under “Mastodon” just because it uses the same protocol, you’re missing out on a whole lot.

                              If you’re a user, happily telling people that you’ve moved from Twitter to Mastodon, and you no longer doing Instagram but they can catch your photos over on Pixelfed, and you enjoyed some peertube videos, and doing your blogging on Plume…

                              what precisely are you “missing out on” just because you’re not lumping all of these disparate services under the meaningless blanket term “The Fediverse”? It strikes me as nearly the equivalent of complaining that users talk about using Facebook and YouTube and LiChess instead of just lumping it all under the blanket term HTTP.

                              1. 4

                                you no longer doing Instagram but they can catch your photos over on Pixelfed, and you enjoyed some peertube videos, and doing your blogging on Plume…

                                The whole point is you’re able to interoperate with all those services from a single account.

                                Your friend joins a Mastodon instance and starts following your Peertube account, so they get all these videos in their stream. They’re going to be very confused if they think that they’re following only “Mastodon users” because Mastodon doesn’t offer the ability to publish videos.

                                It strikes me as nearly the equivalent of complaining that users talk about using Facebook and YouTube and LiChess instead of just lumping it all under the blanket term HTTP.

                                A better analogy would be if they thought they had to install a Facebook app and a Youtube app instead of realizing that they can both be accessed thru a web browser.

                                1. 2

                                  What’s so confusing about being able to follow PeerTube publishers through Mastodon? I can follow quite a few YouTube publishers through Twitter; it’s just that it works out of the box instead of needing ITTT.

                                  1. 2

                                    Yes, that’s my point. It’s not confusing in the case you describe because you’re aware that YouTube and Twitter are different things.

                                    My example was about the case where someone isn’t aware that anything but Mastodon exists on the fediverse.

                                    1. 2

                                      My example was about the case where someone isn’t aware that anything but Mastodon exists on the fediverse.

                                      This is a marketing problem that “WELL ACTUALLY, you’re on the ‘fediverse’ silly user, not ‘Mastodon’” is certainly not going to solve, any more than “WELL ACTUALLY, you’re using GNU/Linux, Linux is the name of the kernel and GNU is…” fixed Herd adoption.

                                2. 1
                                  s/HTTP/The World-Wide Web/
                                  

                                  Valid complaint.

                              2. 8

                                Yeah, it’s a bit like people who insist that other people say Gnu/Linux, and I get it, they’re right, but they’re also not going to get what they want.

                                1. 1

                                  I’ve said it before and I’ll say it again: Mastodon is to the Fediverse what Ubuntu used to be for GNU/Linux desktop systems.

                                  Not a judgement call there… just an observation. This type of naming issue will come up over and over again pretty much forever :)

                                  1. 3

                                    I’m….not sure what you’re trying to say? Like, it will overshadow it for a while but then it will be cleared up? Everyone just says Linux now

                              1. 6

                                Cool app, but it should probably include extensive warnings about the legal vulnerabilities you’ll create for yourself if you run it.

                                1. 2

                                  The author of the tool is exposing himself to more legal problems than an individual using the tool ever will.

                                  1. 7

                                    I’m curious, is it illegal to create a torrent client and suggest that it can be (properly) used illegally?

                                    1. 8

                                      You’ll get to find out once a ruling is handed down - after a year or three of being dragged through court, publicly shamed in newspapers, your computers confiscated as evidence, and multiple arrests (likely causing you to lose your job for non-attendance).

                                      1. 8

                                        These kinds of tools exist in a legal gray area in the US. They’re not criminally illegal to create, possess, use, distribute, etc.

                                        However, when marketed as a tool for commission of copyright theft, the intent shifts from “enabling distributed information dissemination” to “flout laws” and the courts don’t smile upon that, criminal or civil. The author is more likely to be sued civilly because government lawyers generally have better things to do than pursue criminal copyright violation on such a small scale.

                                        IIRC – and I’ll admit that I’m saying this with intent of someone showing jurisprudence changes since the last time I cared about the subject, years ago – the act of downloading copyrighted material is not illegal under current law, but rather it is distributing the material that is illegal. Add in a worldwide Internet and it becomes exceedingly difficult to prosecute individuals so the focus shifts to those enabling the individuals: the authors of the tools.

                                        1. 6

                                          Keep in mind the dev is from Italy not the US.

                                          1. 2

                                            However, when marketed as a tool for commission of copyright theft

                                            Do you think cliflix is marketed that way? It has an obvious reference to Netflix in its name, and “watch anything” in its description, but it’s just a tool for streaming torrents, whatever torrents you want it to stream for you.

                                            the focus shifts to those enabling the individuals: the authors of the tools.

                                            cliflix hardly enabled anything that wasn’t already possible before, it’s just some glue code around already existing services.

                                            I’m no lawyer, and I obviously haven’t read the laws of every single country so I guess I can’t be sure something like this is legal everywhere, but I’ll be pretty surprised if somebody sues me (and wins) about cliflix.

                                            1. 2

                                              a disclaimer saying “Please check and make sure that use of this tool is legal in your country before running.” . Also changing your screenshots to copyleft videos like Sintel might be a good first step.

                                              1. 8

                                                Both videos (Tears of Steel and Star Wreck) used in the readme are available under CC licenses.

                                            2. 1

                                              the act of downloading copyrighted material is not illegal under current law, but rather it is distributing the material that is illegal.

                                              Wouldn’t that count as “reproducing” the work done by transmitted bits instead of a photocopier like with books? The copy doesn’t happen with digital downloads without both parties’ participation. If other people saw it, “public display” might kick in.

                                              1. 2

                                                The copy doesn’t happen with digital downloads without both parties’ participation.

                                                That’s fair. I may be mistaken: downloading may still be technically illegal but no one has been successfully sued for it unless they openly admitted to downloading. Perhaps it’s that it’s too difficult to prove without an admission. My memory is a little fuzzy.

                                                If other people saw it, “public display” might kick in.

                                                This is a whole other mess. I can show a movie for only members of something, but the moment I let “just anyone” into the event, it’s considered public showing and needs a license or it’s technically illegal. It’s even OK if membership is free and open to all, IIRC.

                                                1. 1

                                                  Re latter point. Public showing of a song they bought plus distribution of cousin’s, wedding video over YouTube is how I got a strike for copyright infringement. An automated system recognized song. Technically had to get two licenses for it. Companies that give them rarely picked up phone for small buyers. Fun stuff.

                                                2. 1

                                                  I am not aware of anyone facing penalties for merely downloading. All of the “omg $50000 fine for downloading” stories I’ve read were actually uploaders.

                                                  1. 1

                                                    Im not saying they’re actively goimg after them. Idk what current stats are. I know the prefer suppliers since they can argue higher damages with better settlements or convictions.

                                                    Im just saying I think they could get lots of downloaders if they wanted. They could also establish the new, legal theory by going after downloaders using the show or reproduce rights. An easy source would be people’s vids of them with friends or in public with the music in background. Once established in court, they can push companies like Facebook and YouTube to look for that stuff via automated means.

                                          2. 1

                                            Thanks for the suggestion, I’ll consider adding a warning about that.

                                          1. 19

                                            As someone who buys expensive headphones I have sympathy for the author, but I don’t really buy the chain of reasoning in this post. I’m not saying planned obsolescence isn’t a problem, it just feels like the author started with a motivation to complain about that issue (and to work in some criticism of Apple) and then worked backwards to their headphone problem.

                                            Is it fair to compare something that costs $180 to something that costs $1,500 (Commodore 64 in 2018 dollars) and say that you expect the same engineering quality in both? Do we have any idea what the reliability of Commodore 64 or Amiga computers really was? The parts were a lot bigger, but there was probably a lot of hand-soldering, too. Saying that “some of these things, of which millions were sold, are still working” and then concluding that it’s because of a now-lost built-to-last principle seems like a big stretch to me. Also, these headphones are exposed to a lot of physical wear and tear. There must be a lot of stress on tiny wires that are constantly being twisted and pulled. It’s not the same as a computer that largely sits in one place for its entire life. The author basically picked an arbitrary length of time for how long something that costs $180 should last, and then wrote a blog complaining that it didn’t last that long.

                                            There’s no real evidence of planned obsolescence in these headphones, or Jaybird products in general, is there? To counter anecdote with anecdote, I’ve had a pair of tiny Jaybird bluetooth headphones for about 4 years, not the same model, but very similar. They’re beat up, bits of plastic have broken off the tiny controller (I can see the circuit board), I’ve occasionally carried them around in my pocket without a case, and they still work just fine. I assume that because of the tiny size they’re not very user serviceable, but I wouldn’t trade serviceability for bigger headphones - I bought these for the size.

                                            With a broader market of consumers, the cost of high end electronics has not really gone down substantially in the past few years. We’re hitting the limits of what new innovative technologies can be crammed into our portable hardware, so manufactures are relying on continual releases and the rampant consumerism of their general customer base to keep their sales growing. People from the technology sector who seek to minimize waste are fighting back with projects such as PostmarketOS, which attempt to bring new life to old cell phones that have been abandoned by their manufacturers.

                                            It’s amusing to me that the author previously spent a whole section criticising Apple, when as far as I know they have by far the longest software support lifetime for their phones. The latest iOS supports back to the iPhone 5s, which was released in 2013, and it brought a lot of performance improvements to older devices.

                                            1. 8

                                              Well and lets be clear, this is cherry picking. There were plenty of things in the 1980’s that were expensive trash. Pretending like you can evidence that anything has changed with a single example is pretty dishonest.

                                              1. 3

                                                Thanks, I had the same thought. Perhaps amusingly, as it’s also audio-related, a lot of expensive “hi-fi” speakers from the 80s (and 90s?) would probably fall into the “expensive trash” category. Cheap, poorly-constructed enclosures with bad drivers. You’d probably get a way better speaker today for less than you paid in the 80s, even adjusting for inflation.

                                                Anyway, the whole post is completely misusing the term “planned obsolesence”, which is supposed to mean “a policy of planning or designing a product with an artificially limited useful life, so it will become obsolete (that is, unfashionable or no longer functional) after a certain period of time.” There’s just no reason to believe that Jaybird designed their headphones to fail once they were out of warranty, and the technology certainly isn’t obsolete - it’s not like the industry dropped Bluetooth in the meantime, in order to force people to buy new products.

                                                I think it’s also pretty unlikely that Apple has a policy of planned obsolescence either (I bring up Apple again as the author singled them out for criticism). Yes, there was a problem with iPod hard drives 14 years ago, and Apple got dinged for it, and probably deservedly so. But that’s not the same thing as designing it to fail, or if it is then you’d have to conclude that they ended the policy, because they moved to flash storage and buttons instead of the click wheel, and those little no-moving-parts iPods lasted for ages (I bet a lot of them are still going).

                                                By far the most likely scenario IMO is that the author broke their own headphones somehow. Sucks that it’s out of warranty, but it’s probably not evidence of a conspiracy to rip you off.

                                                1. 6

                                                  Yeah I don’t particularly like apple but my fiance has had her macbook for a gooood long while now. They have many faults but I’m not quite sure planned obsolescence is one.

                                                  1. 3

                                                    AFAIK Apple is using planned obsolescence for all of their computer products by stopping updates after 6 years no matter what. E.g. my colleague can now trash his Mac Mini within the next year as Apple prevents him from updating to Mojave even though the hardware is capable of running the OS which means the box will become a security liability. This I’d call planned obsolescence.

                                                    1. 2

                                                      That’s so bizarre. With a PC, you can always update Windows because of the standard hardware and BIOS (now UEFI). I also have a post about getting Linux running on a MacBook and their hardware is far from standard:

                                                      https://penguindreams.org/blog/linux-on-a-macbook-pro-14-3/

                                                      Your MacMini might have been on the market long enough that some people in the community have added Linux kernel support for it and you could just install Linux on it, but most normal consumers will either trash it or keep running it without security updates.

                                                    2. 2

                                                      The new macbooks are really terrible. The keyboard becomes useless if a spec of dust gets stuck under one of the paper thin keys. And to remove it you have to disassemble the entire bottom half of the laptop, rip the old keyboard out, remove the 150 rivets holding it in, thread all of the rivet holes so you can put screws in them and put the new keyboard in.

                                                    3. 5

                                                      Author here.

                                                      Yes, I did tend to pick on Apple a bit, even though all cell phone manufactures are guilty of limited life of their products (many Android vendors not supporting phones after only 2 or 3 years).

                                                      As far as planned obsolescence, a good example is Dupont and the material they originally engineered for women’s stockings, which was de-engineered to not last as long because sales were falling. Maybe a better term would have been negligent obsolescence? Let’s be clear, look at the Jaybird product reviews on eBay/Amazon/various hi-fi forums and there are a lot of problems. You’d need to do surveys and check distributions of product owners to get real scientific data, but I think a good hypothesis is that the design quality had suffered, either though intentional cuts or bad decisions. But if you still sell just as much shit, why bother making it better? Negligent obsolescence can have the same profit margins as planning for it.

                                                      I think the Apple point is still a valuable one because there is evidence (the Linus Tech Tips situation is really telling) that Apple hasn’t learned a thing from the iPod lawsuits on batteries and is going back to all those old tricks to rake in the money, and it’s particularity bad because they are such a big player. If they get away with it, it’s a bad example to every other manufacture essentially saying, “Hey, play dirty to win.” CBC news did an amazing video show the problems in their stores where they’d recommend people purchase new hardware for fixable problems; and they go so far as to interview the iFixit crew too.

                                                      In the case of Jaybird, I was told, “There’s no option to repair. You have to buy a new one,” and that’s shitty. Why can’t I just get these fixed? I’m willing to pay for it. The first response should not be “buy a new one.” There is so much waste out there, and as mentioned in other comments, many countries require manufactures to stock and sell spare parts or offer repair services. (They can say, “we can’t repair this” of course, but they need to make a good faith effort).

                                                      Telsa is another big company that’s shitty about this. You can’t order many parts from Tesla, even in states like New Jersey with right to repair laws, because those laws are worded to ensure consumers can buy anything a dealership can by (as far as parts and tools go). Telsa has no dealerships since they sell direct; so they don’t have to comply with right to repair.

                                                      Maybe my Jaybirds are the wrong example, but there is a real problem here that’s leading to waste and throwing out products that aren’t ready for the bin.

                                                      1. 6

                                                        One aspect you might be overlooking is the fact that designing for repairability can, in some cases, affect product decisions. There is some marketing spin here (Apple being very persuasive with theirs), so perhaps a less electronic example will be better: the Swatch Sistem 51. This is an analog, self-winding watch that is made far cheaper than normal because it cannot be opened without destroying the watch. By forgoing screws, the watch can be made with plastic and glue which is far cheaper to work with. Since all the components are sealed by a glued-on bezel, no dust or contaminants can affect the mechanical action of the watch. This is much harder to accomplish with screws. The side-effect, of course, is that you can’t open the watch without destroying parts of it.

                                                        I don’t think your Jaybirds will be destroyed if opened, so it’s likely “can’t be repaired” in your case means “it will cost more to pay a person to repair them than to buy a new product.” Paying repair staff, managing spare part inventory, and dealing with accounting and shipping costs money; why do that when the things come rolling off the factory line at hundreds a minute?

                                                        The analog to Apple products would be that adding springs, contacts, and extra case material to allow for removable batteries would make Apple products thicker and reduce available space for the battery. Given the choice between a customer-removable battery or a thinner device with 10% more battery, I think many consumers would choose the latter. You can argue that Apple should provide a customer-removable option to give consumers that choice on their platform, but that’s a different argument than the hardware design one. Further, fewer mechanical connections tend to mean a more reliable and cheaper product.

                                                        I agree that it’s an overall bummer that the trend in consumer products is toward monolithic, disposable, non-repairable items. I want to say that this trend is usually to make them cheaper and smaller, not because of planned obsolescence. As mentioned several times in this thread, the software support timeline of electronics is the true planned obsolescence – Apple would love to have a far more reliable hardware product that can be phased out with software than a less reliable hardware product that requires a costly support and repair pipeline.

                                                        I think you’re the victim of design for a specific cost target instead of planned obsolescence.

                                                        1. 4

                                                          Yup. I’ve developed mechanical IP65 enclosures that are not repairable. There’s much broader design space for ingress protection once you drop the requirement that the device can be opened.

                                                  1. 10

                                                    I suspect that you can throw this exact comment for any post that at least tangentially concerns programming languages :)

                                                    Talking about details:

                                                    • Lisp does not have a good way to scope methods and fields by an object (I suspect that the dot-syntax is the greatest invention of OOP ever, ergonomically);
                                                    • Lisp as a language (or any of its core tooling) does not track history of source code changes; image-based approach of Smalltalk is more friendly to keeping history;
                                                    • Lisp does not define any special tooling for interaction with the programmer (although REPLs are definitely a Lisp invention); SLIME-style connections to a running program grew organically later; Lisp has ability to re-run different parts of code in the same context, but does not have ability to track dependent parts of code.
                                                    • Lisp does not track refactoring and copy-paste in any way. Even Java tooling is much better at automatic refactoring.
                                                    1. 3

                                                      My bad that I used word “LISP” instead of “LISP dialect” or even “Clojure” (as a good example of modern lisp dialect)

                                                      1. 2

                                                        Also static types, algebraic types, monadic computation expressions, hindley milner type inference, type providers, no nulls by default.

                                                        But yes in a very twisted sense every language is a lisp, in the same way that every language is a kind of forth. Amazing what you can do once you disregard most things.

                                                        1. 2

                                                          All these are nice things to have, but they still exist on the code level, not on the level of interaction with a programmer. The article talks about things specific to interaction of a language/environment with a programmer.

                                                          Although typed holes and type-driven development are an interesting new development in the ergonomics of programming languages, yes.

                                                          P.S. In case you are offended by my “calling” strongly statically-typed languages “Lisps”, that was not my intention: my point was that for any programming language on earth a Lisp aficionado can find an obscure research dialect of Lisp that had prototypes of some concepts from that language (or something which is not, but looks similar enough for them).

                                                          1. 2

                                                            Not offended, I just felt that it was an overly broad characterization of programming experience. For the record I don’t dislike lisp in any way, and there is statically typed racket. You can recreate pretty much any language feature in any lisp but doing so eventually approaches creating an entirely new language. While you can do this in any language I’ll concede that it’s vastly easier to do this with a lisp or an ML.

                                                            1. 1

                                                              [..] for any programming language on earth a Lisp aficionado can find an obscure research dialect of Lisp that had prototypes of some concepts from that language

                                                              Interestingly, the Lisp prototype of most of the above features was… ML.

                                                        2. 2

                                                          Rather than treating programs as syntactic expressions, we should treat programs as results of a series of interactions that were used to create the program. Those interactions include writing code, but also refactoring, copy and paste or running a bit of program in REPL or a notebook system.

                                                          How does this relate to LISP?

                                                          1. 1

                                                            every single word is related to any of a lisp dialects. It’s regular way to develop lisp programs. You write function, play around with REPL, make sure it works or fails.

                                                            1. 3

                                                              When you only use one language concepts that apply to many many languages appear to only apply to your language. That’s the only way I could assume you could possibly conflate an ML with a lisp.

                                                              1. 1

                                                                Well I’m a ruby developer, far away from being pro-lisp-dialect developer.

                                                                1. 1

                                                                  Don’t you, as a ruby, developer, do most of your initial development in a REPL before saving the structures that work? This is a really common pattern with all scripting languages (and many non-interpreted languages that nevertheless have a REPL).

                                                                  1. 2

                                                                    Quick answer is no.

                                                                    Long answer - REPL is not integrated with code editor. You cannot tell your editor to run this particular chunk of code. But let’s assume you can integrate ruby REPL with your code editor. I cannot imagine how would you run particular method of some particular class you want to play around with. You have to evaluate the whole classes. But let’s assume it’s okay to evaluate whole class to run one method. What about dependencies? For example you are writing project MVP with rails. Each time you want to test your super lightweight and simple class - you have to load every single dependency, since you cannot attach to the running ruby process.

                                                                    And I’m not even talking about global immutability, which will add a lot of headache as well.

                                                                    1. 3

                                                                      Ohh, you’re a rails developer. OK, I understand now – having a web server & a web browser in the way makes it hard to do anything iteratively in a REPL.

                                                                      It’s pretty common, with scripting languages, to load all supporting modules into the REPL, experiment, and either export command history or serialize/prettyprint definitions (if your language stores original source) to apply changes. Image-based environments (like many implementations of smalltalk) will keep your changes persistent for you & you don’t actually need to dump code unless you’re doing a non-image release. All notebook-based systems (from mathematica to jupyter) are variations on the interactive-REPL model. In other words, you don’t need a lisp machine to work this way: substantial amounts of forth, python, julia, and R are developed like this (to choose an arbitrary smattering of very popular languages), along with practically all shell scripts.

                                                                      Vim & emacs can spawn arbitrary interactive applications and copy arbitrary buffers to them, & no doubt ship with much more featureful integrations with particular languages; I don’t have much familiarity with alternative editors, though I’d be shocked that anybody would call something a ‘code editor’ that couldn’t integrate a REPL.

                                                                      1. 2

                                                                        Clojure has a really good story for working with HTTP servers at the REPL. It’s very common to start a server and redefine a HTTP handler function.

                                                                        The multithreadedness of that JVM is awesome in this regard.

                                                                        1. 1

                                                                          I think similar things can be done in scala. I mostly mean to say that a web stack represents multiple complicated and largely-inaccessible layers that aren’t terribly well-suited to REPL use, half of which are stuck across a network link on an enormously complex third-party sandboxed VM. Editing HTTP handlers on live servlets is of limited utility when you’re generating code in three different languages & fighting a cache.

                                                                      2. 1

                                                                        Yeah that object oriented focus gets in the way, I get that. Lisp is also not the only functional programming language though.

                                                            2. 1

                                                              Also applies to Ocaml, F#, python, ruby.

                                                              Edit: lol the article is about F#. That’s what I get for not reading the article I guess.

                                                            1. 1

                                                              I would love to hear if there are any efforts in the computer industry to help deal with this great challenge. Seems we, as professionals, are going to be essential here.

                                                              1. 3

                                                                An article from Bret Victor I’ve had open in a browser tab for a while now: http://worrydream.com/#!/ClimateChange (more “what can we do” than “what are we doing” though).

                                                                1. 1

                                                                  Love this! thanks

                                                                2. 2

                                                                  I remember reading an article about how Microsoft and Apple could become “the greenest companies on the planet” by simply making the power-saving settings in their various operating systems slightly more aggressive (go to sleep on idle after 15 minutes, etc).

                                                                  While I doubt that they would actually become “the greenest” by any measure, I have no doubt that the effects would be substantial.

                                                                  I also wish companies would do more telecommuting. I’ve worked from home now for at least a decade. That’s ten years of no driving however many miles to and from work. There are so many businesses that could be done 100% remotely, and even more that could be done 50% remotely…but they insist on having butts in chairs. One of my best friends drives to work every day just to sit a computer with a headset on. His boss and the rest of his team are in a different state. There is literally nothing he does on a given day that he couldn’t do from home…but he has to drive to work every day and burn that much gasoline.

                                                                  1. 1

                                                                    The hardware industry has been reducing power consumption every year for a long time. The low-cost, embedded sector is also incentivized to use tiniest, cheapest chips they can in designs. They usually have low watts. Finally, the stuff using batteries often has power-saving techniques built into the software.

                                                                    The problem, as is often the case, is the demand side. They don’t give a damn about the environment. By giving a damn, I mean either buying wasteful stuff for various reasons (esp emotional/price/utility) or buying things they don’t need despite their harms. They do this to the tune of billions of dollars. So, the problems will remain. Just move away from every area likely to be affected the most by the disaster that will happen.

                                                                    1. 2

                                                                      This is a place the government can step in. Taxation while it gets a bad wrap is a great way to shape purchasing habits. It does however need to be done carefully so that it doesn’t predominately affect those with less income and so that it doesn’t just blindly destroy an industry and their associated jobs. Carefully applied taxes with sound economic basis isn’t really a slogan you can rally behind though.

                                                                      I do however agree with your plan for the worst mentality. I don’t know if our economic, social, or governmental structure is really capable of reacting uniformly to such a dramatic shift.

                                                                  1. 5

                                                                    In the general case, I have developed a deep and long-lasting skepticism of DSLs. I was a very heavy proponent of them during my grad studies, and investigated pretty thoroughly using a rules engine for Space Invaders Enterprise Edition and a runtime monitor for Super Mario World.

                                                                    I went a little further down this path before I abandoned it for reasons unrelated to the DSL skepticism. That happened later. I just wanted to give context that I was actually naturally predisposed to liking them.

                                                                    What has happened in my time on this earth as a software engineer is the feeling that it is axiomatic that all DSLs eventually tend towards something Turing complete. New requirements appear, features are added, the DSL heads further towards Turing completeness. Except the DSL does not have the fundamental mechanics to express Turing completeness, it is by fundamental design supposed to not do that. What you end up with is something very complex, where users are performing all sorts of crazy contortions to get behavior they want, and you can never roll that back. I feel like DSLs are essentially doomed from the outset.

                                                                    I am much, much more optimistic about opinionated libraries as the means to solve the problems DSLs do (Ruby on Rails being the most obvious one). That way any of the contortions can be performed in a familiar language that the developer is happy to use and won’t create crazy syntax, and the library then called to do whatever limited subset of things it wants to support. For basic users, they’ll interact with the library only and won’t see the programming language. As things progress, the base language can be brought in to handle more complex cases as pre/post-processing by the caller, without infringing on the design of the library.

                                                                    At Google, we have a number of DSLs to perform many different tasks which I won’t go into here. Each one requires a certain learning curve and a certain topping-out where you can’t express what you want. I was much happier with an opinionated library approach in Python, where I could do a great deal of what I wanted without peering behind the curtain of what was going to be performed.

                                                                    1. 6

                                                                      sklogic on Hacker News had a different view: you start with a powerful, Turing-complete language that supports DSL’s with them taking the place of libraries. He said he’ll use DSL’s for stuff like XML querying, Prolog where logic approach makes more sense, Standard ML when he wants it type-safe in simple form, and, if all else fails or is too kludgy, drops back into LISP that hosts it all. He uses that approach to build really complicated tools like his mbase framework.

                                                                      I saw no problem with the approach. The 4GL’s and DSL’s got messy because they had to be extended toward powerful. Starting with something powerful that you constrain where possible eliminates those concerns. Racket Scheme and REBOL/Red are probably best examples. Ivory language is an example for low-level programming done with Haskell DSL’s. I have less knowledge of what Haskell’s can do, though.

                                                                      1. 3

                                                                        I think it’s a good approach, but it’s still hard to make sure that the main language hosting all the DSLs can accomodate all of their quirks. Lisp does seem to be an obvious host language, but if it were that simple then this approach would have taken off years ago.

                                                                        Why didn’t it? Probably because syntax matters and error messages matter. Towers of macros produce bad error messages. And programmers do want syntax.

                                                                        And I agree that syntax isn’t just a detail; it’s an essential quality of the language. I think there are fundamental “information theory” reasons why certain syntaxes are better than others.

                                                                        Anything involving s-expressions falls down – although I know that sklogic’s system does try to break free of s-expression by adding syntax.

                                                                        Another problem is that ironically by making it too easy to implement a DSL, you get bad DSLs! DSLs have to be stable over time to be made “real” in people’s heads. If you just have a pile of Lisp code, there’s no real incentive for stability or documentation.

                                                                        1. 4

                                                                          “but if it were that simple then this approach would have taken off years ago.”

                                                                          It did. The results were LISP machines, Common LISP, and Scheme. Their users do little DSL’s all the time to quickly solve their problems. LISP was largely killed off by AI Winter in a form of guilt by association. It was also really weird vs things like Python. At least two companies, Franz and LispWorks, are still in Common LISP business with plenty of success stories on complex problems. Clojure brought it to Java land. Racket is heavy on DSL’s backed by How to Design Programs and Beautiful Racket.

                                                                          There was also a niche community around REBOL, making a comeback via Red, transformation languages like Rascal, META II follow-ups like Ometa, and Kay et al’s work in STEPS reports using “IS” as foundational language. Now, we have Haskell, Rust, Nim, and Julia programmers doing DSL-like stuff. Even some people in formal verification are doing metaprogramming in Coq etc.

                                                                          I’d say the idea took off repeatedly with commercial success at one point.

                                                                          “Probably because syntax matters and error messages matter. Towers of macros produce bad error messages. And programmers do want syntax.”

                                                                          This is a good point. People also pointed out in other discussions with sklogic that each parsing method had its pro’s and con’s. He countered that they can just use more than one. I think a lot of people don’t realize that today’s computers are so fast and we have so many libraries that this is a decent option. Especially if we use or build tools that autogenerate parsers from grammars.

                                                                          So, IIRC, he would use one for raw efficiency first. If it failed on something, that something would get run through a parser designed for making error detection and messages. That’s now my default recommendation to people looking at parsers.

                                                                          “Anything involving s-expressions falls down – although I know that sklogic’s system does try to break free of s-expression by adding syntax.”

                                                                          Things like Dylan, Nim, and Julia improve on that. There’s also just treating it like a tree with a tree-oriented language to manipulate it. A DSL for easily describing DSL operations.

                                                                          “nother problem is that ironically by making it too easy to implement a DSL, you get bad DSLs!”

                                                                          The fact that people can screw it up probably shouldn’t be an argument against it since they can screw anything up. The real risk of gibberish, though, led (per online commenters) a lot of teams using Common LISP to mandate just using a specific coding style with libraries and no macros for most of the apps. Then, they use macros just handling what makes sense like portability, knocking out boilerplate, and so on. And the experienced people wrote and/or reviewed them. :)

                                                                          1. 2

                                                                            Probably because syntax matters and error messages matter. Towers of macros produce bad error messages. And programmers do want syntax.

                                                                            Another problem is that ironically by making it too easy to implement a DSL, you get bad DSLs! DSLs have to be stable over time to be made “real” in people’s heads. If you just have a pile of Lisp code, there’s no real incentive for stability or documentation.

                                                                            I’m so glad to see this put into words. Although for me, I find it frustrating that this seem to be universally true. I was pretty surprised the first time around when I felt my debugger was telling me almost nothing because my syntax was so uniform, I couldn’t really tell where I was in the source anymore!

                                                                            Some possibilities for this not to be true that I’m hoping for: maybe its like goto statements and if we restrict ourselves to make DSLs in a certain way, they won’t become bad (or at least won’t become bad too quickly). By restricting the kind of gotos we use (and presenting them differently), we managed to still keep the “alter control flow” aspect of goto.

                                                                            Maybe there’s also something to be done for errors. Ideally, there’d be a way to spend time proportional to the size of the language to create meaningful error messages. Maybe by adding some extra information somewhere that currently implicit in the language design.

                                                                            I don’t know what to do about stability though. I mean you could always “freeze” part of the language I guess.

                                                                            For this particular project, I’m more afraid that they’ll go the SQL route where you need to know so much about how the internals work that it mostly defeats the purpose of having a declarative language in the first place. I’d rather see declarative languages with well-defined succinct transformations to some version of the code that correspond to the actual execution.

                                                                        2. 4

                                                                          Since I like giving things names, I think of this as the internal DSL vs external DSL argument [1]. This applies to your post and the reply by @nickpsecurity about sklogic’s system with Lisp at the foundation. If there is a better or more common name for it, I’d like to know.

                                                                          I agree that internal DSLs (ones embedded in a full programming language) are preferable because of the problems you mention.

                                                                          The external DSLs always evolve into crappy programming languages. It’s “failure by success” – they become popular (success) and the failure mode is that certain applications require more power, so they become a programming language.

                                                                          Here are my examples with shell, awk, and make, which all started out non Turing-complete (even Awk) and then turned into programming languages.

                                                                          http://www.oilshell.org/blog/2016/11/14.html

                                                                          Ilya Sher points out the same problems with newer cloud configuration languages.

                                                                          https://ilya-sher.org/2018/09/15/aws-cloudformation-became-a-programming-language/

                                                                          I also worked at Google, and around the time I started, there were lots of Python-based internal DSLs (e.g. the build system that became Blaze/Bazel was literally a Python script, not a Java interpreter for a subset of Python).

                                                                          This worked OK, but these systems eventually got rewritten because Python isn’t a great language for internal DSLs. The import system seems to be a pretty significant barrier. Another thing that is missing is Ruby-style blocks, which are used in configs like Vagrantfile and I think Puppet. Ruby is better, but not ideal either. (Off the top of my head: it’s large, starts up slowly, and has version stability issues.)

                                                                          I’m trying to address some of this with Oil, although that’s still a bit far in the future :-/ Basically the goal is to design a language that’s a better host for internal DSLs than Python or Ruby.

                                                                          [1] https://martinfowler.com/bliki/InternalDslStyle.html

                                                                          1. 3

                                                                            If a programming language is flexible enough, the difference between DSL and library practically disappears.

                                                                            1. 1

                                                                              DSL’s work great when the domain is small and stays small and is backed by corporal punishment. Business Software is an astronomically large domain.

                                                                            1. 6

                                                                              The fact that they moved a company from C# to Haskell when F# was right there with most of the benefits and proper interop is imho a real tragedy. I think haskell is cool but shoehorning it into an ecosystem that already has a functional first language that gets you 90% the way there with 70% less learning curve and without any change of tooling is very frustrating for me. Yes the interop means you can step outside of the pure functional path, but there’s also nothing stopping you from writing degenerate haskell either. The fact that they didn’t even mention F# and why they didn’t go with it I think is part of why I’m frustrated. It’s like they didn’t even consider the advantages/costs of other languages.

                                                                              1. 2

                                                                                Caution, some very hot takes. You may vehemently disagree with these, and that’s okay.

                                                                                I personally for my workplace, would not consider say electrical engineering or civil engineering any more or less meaningful than say textile worker or retail. I do not think any of the skills necessarily transfer, and the main value an engineer turned software developer can provide is if they have knowledge about the domain your software is built for. For example if you are writing car software, a mechanical engineer turned software developer might be extremely useful. If you’re a finance company it could actually create learning hurdles where they need to unlearn practices, say rounding for example.

                                                                                I also think that calling software development “engineering” is a disservice to engineers. Not because software development is bad in any way it just incorrectly characterizes the level of legal accountability. We don’t have the legal infrastructure at least in the united states to properly call any software developer here an engineer. The profession does not have a unified body of accepted standards that everyone must legally follow for example.

                                                                                Feel free to quote me, include my response, Anonymous

                                                                                1. 2

                                                                                  We don’t have the legal infrastructure at least in the united states to properly call any software developer here an engineer.

                                                                                  We do under safety-critical regulations and contract law. The DO-178C standard requires a lifecycle that ensures requirements are met and defects eliminated at each step with independent certification of that. The liability is lost sales and re-certification costs for fixed versions. The risk and cost of certification alone led to an entire ecosystem of pre-certified components where companies license them for a fraction of whatever the certification cost was. Then, they just have to get changed or new code evaluated at far lower risk and cost. There was also a boom in both static analysis and test automation in safety-critical to catch as many defects as possible before evaluators looked at system again to reduce re-certification costs. So, DO-178C regulation forced software engineers to act more like real engineers and (for another thread) is an example that regulation can work for software quality/security.

                                                                                  In contract law, some firms using Cleanroom and Altran/Praxis for “Correct by Construction” offered warranties for their systems at specific, defect rates that held the company responsible for fixes within that rate. They also had a systematic, mathematically-supported method for building software that had low chance of failing in devastating ways and/or provably would work on all cases. Level of effort varied by component. The delivered systems were always evaluated over time in the field to see how many defects were found. The public ones were always an extremely-low number that would fall in warranty range. As in, the customers would pay nothing for the fix.

                                                                                  Now, that’s certainly less regulation and liability than people who build aircraft or whatever. I thought it’s worth bringing it up since at least some software is done more like engineering regulation of development/deployment and/or liability built into the agreements. Rare vs software in general, but it exists. And usually works as intended.

                                                                                1. 6

                                                                                  Overall there is a lot of depth in this post and contains a great amount of detail about terminal I/O. I can understand the author’s hatred of ncurses, but just the sheer length of the post kinda shows the point of needing some level of abstraction when starting on a TUI projects, just due to the sheer number of gotchas between different terminal types. Are there any alternative / more modern libraries in existence?

                                                                                  From a meta-post perceptive, things I don’t like: sentences aren’t capitalized. The author uses correct code blocks, syntax highlighting, most of it seems correctly proofread/edited, and yet she has chosen to not capitalize the first word of each sentence.

                                                                                  Maybe I’m just nitpicky here, or maybe she’s trying to start a trend in the way language so be directed. After all at one time English use to capitalize all nouns (like German still does), and we use to indent paragraphs (which has been replaced with block formatting, except in novels). So maybe this is just the next thing.

                                                                                  also, i’m a) a nobody and b) a woman. nothing i wrote would ever gain any traction; any project designed to supplant ncurses needs to come from someone who’s actually known to the FOSS community. and a maintainer who isn’t a cripple.

                                                                                  She shouldn’t shoot herself down here. I don’t really don’t think there’s a lot of evidence to support this “open source is hostel to women” idea that has been gaining traction. A lot of projects big and small have that Contributors Code of Conduct (or something based off of it) on them now. Are we still seeing backlash against women for being women? Are there any specific examples? (I’m not trying to troll; I really want to see real examples that don’t involve simply trying to get a CoC added to a project or removal of words like master/slave).

                                                                                  The fact is, a lot of projects never gain traction in the OSS community. It’s difficult to make something people would use and to get other people to use your shit. A lot of big OSS libraries and projects today are backed by huge investment by big industry, or are supported by people in academia who can work on them between research and classes. That’s a bigger meta problem in the way we think of open source today.

                                                                                  1. 3

                                                                                    I’m a nobody is of course not actually a reason to not do something. I’m a woman is especially not a reason to not do something. The idea that you need to be established for a project to gain traction is reasonable and maybe she doesn’t like being directly in the limelight.

                                                                                    After all if every woman had the attitude of “I’m a woman, therefore my project would not be well received” and that caused them not to start then no woman could ever be successful. It’s definitely not the right frame of mind even if it were true (and I’m not saying it’s not or that it is). I think it’s absurd to say that no discrimination happens in OSS, especially considering how recent the push to CoC has been and how much push back there has been. However I also think it’s absurd to say that one could never have a successful project as a woman as obviously women have lead successful OSS projects.

                                                                                    I don’t think saying “She shouldn’t shoot herself down” is very effective. We should try and evaluate what pressures make people feel this way and how we can help them overcome them. On boarding is something that is almost universally bad in OSS, and could be improved irrespective of gender. Saturn for F# is a good counterexample. https://github.com/SaturnFramework/Saturn . With it are words of encouragement, clear and direct expectations, and clear documentation. It’s missing a code of conduct which I think could help someone feel a little bit more secure about contributing, but otherwise pretty good. Those words of encouragement at the beginning help set a tone and example about how you’ll be treated when you contribute, and if you’re sharing your hard work to see what this thing can become it’s important that the culture around it is positive enough that you don’t feel punished for doing so.

                                                                                    1. 2

                                                                                      I don’t think saying “She shouldn’t shoot herself down” is very effective.

                                                                                      We know a lot of what pressures make people think that way. Her other essays, if some are about her, indicate she might have more pressures than most people. In any case, the negative attitude of “I shouldn’t even try because I believe X” coupled with dropping that into a write-up she put a lot of time into are both No No’s in general. It’s common in pep talk, therapy, self-help books, guides on entrepreneurship… everything about getting ahead despite challenges… to avoid thinking like that.

                                                                                      If the guidance includes others, they’ll also tell you not to whine to or accuse strangers by default since vast majority won’t be cool with that. I mean, let’s look at it it. The communities most likely to be giving her that much shit will not care if she writes that in her blog post. They’ll laugh. The ones who wouldn’t would be anywhere from concerned to wondering if she’s overly negative or having psychological problems. In other words, even many of them might think she’s just a pain to work with given she’s dropping stuff like that in middle of tech write-ups and most women aren’t.

                                                                                      It doesn’t matter which light I look at it. It’s some defeatist, over-projecting BS in her mind which isn’t going to help her if it’s true for projects she deals with or false for others where she looks like a downer. Showing some sympathy on top of discouraging such negative thinking or outbursts is a good piece of advice. It’s also common sense for a lot of people struggling in my area, esp minorities. Got to keep your head up and clear pressing forward they’d say. Well, the ones that aren’t in a slump or wanting to just quit.

                                                                                      Btw, that said, I totally agree with you that a welcoming community with good onboarding and support is a good thing. It will definitely help in general. It can also be a relief for these types of people. I’m just saying it’s general advice of all kinds of people to combat these negative, self-reinforcing beliefs and practices. They’re bad habits.

                                                                                      1. 2

                                                                                        I guess what I was trying to say and be clear I didn’t mean it quite so strongly as it came off, is that individual advice isn’t a solution to the systemic problem. I know you weren’t claiming it was and if I phrased it like a refutation that’s my mistake. I just saw the moment as an opportunity to talk about broader strategies that can help accommodate large groups instead of focusing on individuals. You’re right though we do broadly speaking know the problem. I also agree that no matter what the reality is, believing you can’t is never in your favor. Helping a person move past that mindset of “I can’t so I shouldn’t” is very important.

                                                                                        1. 1

                                                                                          Thanks for clarifying. That makes sense. I think we’re in agreement.

                                                                                      2. 0

                                                                                        think it’s absurd to say that no discrimination happens in OSS, especially considering how recent the push to CoC has been and how much push back there has been.

                                                                                        A lot of the push back on CoCs is that there doesn’t seem to be any evidence that they’re actually necessary, that there is any discrimination that needs to be addressed. I’m not sure I could discriminate against women even if I wanted to, I don’t know which ones are women! The only people in open source projects’ whose gender I’ve even noticed are people with obviously gendered names: if someone’s username is adam1423 (not a real example) then it’s obviously a guy, but otherwise I don’t even think about it, they’re just a person.

                                                                                        On boarding is something that is almost universally bad in OSS, and could be improved irrespective of gender. Saturn for F# is a good counterexample. https://github.com/SaturnFramework/Saturn . With it are words of encouragement, clear and direct expectations, and clear documentation.

                                                                                        I don’t think there’s much extra here that isn’t in most projects. A lot of projects I’ve seen (that are of decent size, at least) have some sort of ‘CONTRIBUTING’ file. I think people mistake documentation existing and documentation being rendered as HTML on GitHub. GitHub is not the only website out there for open source. There are a lot of resources on the internet. Most of the things mentioned in that file for Saturn are common to basically every project anyway.

                                                                                        People often don’t care about onboarding because it doesn’t actually matter to them whether you start contributing to their project.

                                                                                      3. 4

                                                                                        “She shouldn’t shoot herself down here.”

                                                                                        With her saying that, she has a negative attitude that casts every project in the same, discriminating light. She might be a pain in the ass to work with. That comment alone might get her ignored if a person reading a contribution saw it before. There’s others that would try to pull her in to help her out. I just think people should avoid saying stuff like that by default since politically-focused negativity is immediate turn off for many potential collaborators. Person A has it, Person B doesn’t, and so path of least effort and headaches is going with Person B.

                                                                                        “The fact is, a lot of projects never gain traction in the OSS community. It’s difficult to make something people would use and to get other people to use your shit.”

                                                                                        This right here is something to remember about introducing any new idea or practice. The default response is apathy. There’s an entire site dedicated to strategies for countering apathy to new products. Most that make it talk about how hard it was. There’s others that just took off but that’s rare. So, if wondering about negative responses, the first variable to eliminate (somehow) should be apathy. Most people just won’t give a shit.

                                                                                        1. 1

                                                                                          From a meta-post perceptive, things I don’t like: sentences aren’t capitalized. The author uses correct code blocks, syntax highlighting, most of it seems correctly proofread/edited, and yet she has chosen to not capitalize the first word of each sentence.

                                                                                          Maybe I’m just nitpicky here, or maybe she’s trying to start a trend in the way language so be directed. After all at one time English use to capitalize all nouns (like German still does), and we use to indent paragraphs (which has been replaced with block formatting, except in novels). So maybe this is just the next thing.

                                                                                          Like the CSS feedback from @johnaj, you are being nitpicky.

                                                                                          1. 2

                                                                                            I don’t understand why you’re dragging me into whatever discussion you are having. I merely informed the author that her HTML wasn’t written properly – breaking popular things like reader mode – so that she could fix it.

                                                                                            I haven’t read the entire article yet, but I think it is interesting so far.

                                                                                            1. 2

                                                                                              You were actually informing Lobsters that her HTML was broken. Usually I’d say send it to their comment box, email, or whatever. I didn’t see anything listed. Perhaps they don’t want to be contacted.

                                                                                              Anyway, probably best to tell just the author that kind of stuff since we can’t change it. If there’s no contact, then I’d say don’t even mention it since you’re just griping to us about what they are doing with their own site. Goes nowhere.

                                                                                              1. 3

                                                                                                Yeah, that’s true. I just don’t think it was pedantic. The page was difficult for me to read. I hoped the author would be on Lobste.rs and see it, which isn’t unusual, but I guess that isn’t the case here.

                                                                                            2. 1

                                                                                              I don’t think it’s nitpicking to criticise an article for not using capital letters or being formatted in a way that makes it hard to read. When I opened the article, I immediately closed it again instinctively. I didn’t read any of it. I literally opened it, saw it was light-on-dark low-constrast nearly-unformatted text and closed it, instinctively.

                                                                                              I’ve since read it, but I’ve found I do this a lot. If I open something and it’s badly formatted in this kind of way I unconsciously/instinctively close it within a few hundred milliseconds.

                                                                                          1. 6

                                                                                            Scratch might not be the best example to make the author’s point, as it’s targeted to children. My 6 y.o. picked Scratch Jr on the tablet and I was surprised to discover that you could easily implement concurrent programs. He doesn’t know how to read or write properly, but still managed to create some animated programs. Now, regarding general programming, text is just a UI to the language, and the bigger problem is that programs are a tree (or actually, a graph) while text is a sequence. You could think of a hybrid approach where you’re editing a tree instead of lines of text, where some keywords or structures are styled or representated with icons instead of words. This would certainly improve the navigation in the structure/program and make formatting code a non-issue (although nowadays the *fmt tools do that already). I see that as a major improvement that needs to happen, but our toolchain is so much based on text (hello, UNIX) that it is not going to happen naturally.

                                                                                            1. 6

                                                                                              There’s a recent new programming language called Luna, which has fully regular textual representation (sources are normal text files), thus benefiting from all normal text-processing tools; but then also provides a 1-to-1 fully equivalent graphical representation for every textual syntax. It’s still at ~alpha stage of development, but you can already download and test it, and it’s open source, and personally I strongly believe it’s going to be revolutionary. It should be able to fuse benefits of both representations together.

                                                                                              1. 3

                                                                                                You could think of a hybrid approach where you’re editing a tree instead of lines of text, where some keywords or structures are styled or representated with icons instead of words

                                                                                                There’s leo, which is a tree editor. It doesn’t (last I knew, which is granted a while ago) do icons, but it does allow tree nodes to appear in multiple spots (making it closer to a graph editor). Each node is text, though. Still, it was useful for me for a brief while before emacs pulled me back in.

                                                                                                1. 0

                                                                                                  The moment you can read visual programming languages start being a burden. Scratch gets inflicted on highschoolers for god’s sake.

                                                                                                1. 1

                                                                                                  Well, it certainly feels like the author is beating a dead horse here. I don’t think anyone is proposing visual programming nowadays, unless it’s for educational use.

                                                                                                  1. 8

                                                                                                    It’s possible you flew, drove, or got electricity via visual programming given its large uptake in embedded and safety-critical fields. They prefer it since it lets them focus on their design and its properties instead of low-level details. They usually have code generators, too. QGen is an example of code generator. Examples of primarily-visual platforms include Stateflow, Simulink, and SCADE Suite.

                                                                                                    SCADE’s industries pages show the segments using this stuff. Look here at “Civilian and Aerospace Applications” and “Defense and Space Applications” to see wide variety of usage in just that segment. There’s lots of overlap: many of those have used Stateflow/Simulink. That’s why QGen targets those.

                                                                                                    1. 3

                                                                                                      @nickpsecurity you are a treasure. You seem to know a lot about a lot! Thanks for those links. Would also like to point out https://orange.biolab.si/features/visual-programming/ which I ran into recently.

                                                                                                      Also, in your list LabVIEW should probably have a place, because it helps with a lot of engineering R & D automation

                                                                                                      1. 2

                                                                                                        Thanks! Glad you like it. Orange looks interesting. Fits into jmelesky’s description of common uses:

                                                                                                        “domain-specific, handling ETL, data flow (including visual and audio processing), automation, etc.”

                                                                                                        Re “in your list LabVIEW should probably have a place”

                                                                                                        Damnit, I knew I was missing one. Just couldnt remember its name. LabVIEW was it. I’ve seen it a lot in research pspers and industry experiments with “Model-Driven Development.” Thanks for reminder.

                                                                                                      1. 2

                                                                                                        So neat! Did not know about this one!

                                                                                                      2. 1

                                                                                                        Clearly you’ve not been following the wretched trends of people every so often trying to bring it back. Probably for the better.

                                                                                                        1. 1

                                                                                                          I have not! Are there examples I can recoil in horror from? (Note I believe it has some value in education).

                                                                                                      1. 4

                                                                                                        This is akin to a certain kind of degenerate philosophy debate. It uses situations or events that won’t meaningfully happen to ask questions that can’t be meaningfully answered. It may be fun to argue but if you actually win the argument it means you’ve misled someone, because no answer can be meaningfully reached. The question isn’t well defined. That doesn’t mean you can’t learn things from the discussion but the things you can learn are AROUND the discussion.

                                                                                                        1. 2

                                                                                                          It’s nerdbait.

                                                                                                          It also neatly exemplifies a certain language/theory snobbery that is unbecoming of the field…and it makes a point so irrelevant to the actual practice of computing I can only groan.

                                                                                                        1. 18

                                                                                                          Something I’ve noticed–all these sites are now basically instantly usable. And sure, they’re not pretty, but I’m there to read things. There is a little clunkiness, but I think this trend is very promising.

                                                                                                          Shame they still have the massive blob of comments at the bottom.

                                                                                                          1. 10

                                                                                                            I think that efficient websites don’t have to be ugly or clunky.

                                                                                                            I’d love to get some feedback on my own site, which I believe is “pretty” (at least if you like its style) and loads very fast. (It requests some specific web fonts, but usability is not degraded if users block them/use their own.)

                                                                                                            Any bloat I missed?

                                                                                                            1. 11

                                                                                                              The combination of a thin font and the gray text cancer makes it hard to read.

                                                                                                              Custom fonts best be avoided if your intent is to share information.

                                                                                                              1. 2

                                                                                                                Thanks! I made the table row background brighter and made the links darker.

                                                                                                                Before: https://imgur.com/LCHhqby

                                                                                                                After: https://imgur.com/yM0kGu2

                                                                                                                What do you think?

                                                                                                                Edit: I slightly increased the background color again, it looked good on my desktop, but was almost invisible on my notebook.

                                                                                                                1. -4

                                                                                                                  You people need to get your eyes checked. It’s very dark grey on very light grey. Fix your contrast or something.

                                                                                                                  1. 16

                                                                                                                    That was not enormously constructive and fairly antagonistic. I give you a gratuitous C-, and half a rotten trout.

                                                                                                                    1. 3

                                                                                                                      The font is too thin for the old (like me). I checked with my old eyes.

                                                                                                                  2. 3

                                                                                                                    I like that you have a natural categorization system - a table - on your front page. For many, that’s too many links or too much text. But humans are very good at scanning for information. So your design both respects the user’s abilities and provides them with a lot of information at once. Moreover, the table layout keeps the information legible. This is against the simple Apple-style minimalism.

                                                                                                                    What I said above comes pretty much directly from Edward Tufte. I went to one of his one-day conferences, where he brought up the website of the National Weather Service. Specifically, he noted that the abundance of links at the bottom, categorized, ordered, and with headings was a great example of a design that provides maximal information. (The part about respecting the user is my point.)

                                                                                                                    1. 2

                                                                                                                      Thanks for letting me know this, I was never really sure if the grid was a good idea!

                                                                                                                    2. 2

                                                                                                                      Only complaint would be the GA blob, but ad blockers take care of that handily.

                                                                                                                      1. 2

                                                                                                                        Thanks, I removed that. I don’t even remember adding it.

                                                                                                                      2. 2

                                                                                                                        I feel similarly about my site, where an article which would be 12k in plaintext is 130k in total (or 95k over the wire because gzip), and that’s with all the features I want; automatic javascript-based code highlighting for most programming languages from highlight.js, tracking/analytics with (self-hosted) matomo, and as nice-looking CSS as I know how to make.

                                                                                                                        All it really takes is just to render the HTML on the server (either statically or dynamically) and not through javascript on the client, and not have ads or huge tracking suites or integration with social networks, and to be careful about putting auto-playing videos or huge images on the page.

                                                                                                                        The main page however is bigger than necessary at 1.13MB, exactly because I haven’t been careful about huge images on the page - and those images aren’t even visible. I have to fix that.

                                                                                                                        1. 3

                                                                                                                          as nice-looking CSS as I know how to make

                                                                                                                          And then I’ll come and use Reader Mode to get rid of that crap. :)

                                                                                                                          I wish the Web was universally usable without styling. Like paper.

                                                                                                                          1. 4

                                                                                                                            Paper? Doesn’t that medium permanently and physically link the style with the content?

                                                                                                                            … I’ve seen some awful design and layout on paper …

                                                                                                                            1. 1

                                                                                                                              yes it seems as though they’ve been hit with a debilitating wave of nostalgia.

                                                                                                                              1. 1

                                                                                                                                True, it’s one argument against publishing in PDF.

                                                                                                                                What I had in mind is that scientific papers, fiction books and such don’t tend to have much variance (partly because the target medium is usually black and white, ink is expensive, and printers don’t enjoy making halftones anyway). So my “without styling, like paper” means looking like your usual printed document. Simple, focusing on information.

                                                                                                                              2. 2

                                                                                                                                That’s okay :) I don’t use reader mode much myself, but I’m a huge proponent of having markup that’s semantic enough to let people consume the web however fits them best.

                                                                                                                                1. 1

                                                                                                                                  I wish the Web was universally usable without styling. Like paper.

                                                                                                                                  Amen. At least most blogs are, including this one. I read it without CSS.

                                                                                                                                2. 1

                                                                                                                                  Interesting content! I particularly enjoyed the article about obscure C features :-)

                                                                                                                              3. 3

                                                                                                                                I also love the trend of debloating Web sites that need to serve a smaller cause - but what do you do on a website that needs, or promotes having the community and/or its readers participate in a discussion, which requires a comment section or something alike? I find this challenging, since many if not all of the sites that tried to minify themselves (and I came across) decided to remove the comment section, such as this case, instead of finding an “alternative”

                                                                                                                                1. 4

                                                                                                                                  Well, the comedy option would be to show a discussion tree and just use an email client to submit to a thread, and on recieving the email posting appropriately.

                                                                                                                                  Just because the frontend is not bloated doesn’t mean you can’t have stuff going on in the server.

                                                                                                                                    1. 2

                                                                                                                                      I suspect the trend of removing comments sections comes a lot from people thinking something like “oh while I’m removing all this unnecessary shit I might as well stop bothering with the burden of moderating comments and deleting spam too”.

                                                                                                                                      Comments aren’t inherently heavyweight, we had guestbooks back in the 90s. ;)

                                                                                                                                      Admittedly it is the case that a lot of the obvious off the shelf choices of software for running a comments section are kinda heavy.

                                                                                                                                    2. 1

                                                                                                                                      I’d be pretty interested in people trying out building usable sites beyond reading. Though perhaps web apps are doomed to not be fast and reactive on account of the need to fetch the data, it would be cool to see things like GMail but actually a super fast interface.

                                                                                                                                    1. 2

                                                                                                                                      There’s also no reason the site needs to be boring, colors and appropriate styling aren’t what is slowing down pages. You could also offer an RSS feed which would be even faster.

                                                                                                                                      1. 6

                                                                                                                                        I feel like you’ve just pushed CSS to the HTML, which if you’re going to do that you might as well just use CSS in HTML with react or something. Sometimes I wonder if running away from learning and using CSS proper only sets us up for rediscovering it later on.

                                                                                                                                        1. 1

                                                                                                                                          The author addresses this point quite plainly in the post so I’m not sure why you would feel that way.

                                                                                                                                          1. 1

                                                                                                                                            The author addresses inline styles, not any other component based solutions.