1. 7

    It’s all cool and æsthetical, but I remember Frontpage being completely unusable and full of WordArt-style gimmicks, generating trashy HTML code on the same level of complexity as HTML generated by Word. Probably properly viewable only in Internet Explorer.

    Macromedia Dreamweaver, on the contrary, had really “professional” feel and allowed to make real websites for a long time. Maybe it’s still used today. Its UI is “photoshopish” and looks like it’s really intended for website designers and not dreamy salesmans like Frontpage and many other Microsoft products.

    1. 4

      Macromedia Dreamweaver

      Macromedia anything. They were kicking all kinds of ass. More learning curve, though. FrontPage’s selling point was, like author says, it was extremely easy to use. They taught it to most people at a local school. Those that didn’t get HTML did get some or all of FrontPage’s basics.

      1. 2

        Macromedia’s stuff was pretty incredible before Adobe bought them. Over the next decade they’d take Flash, an incredible tool that was very light weight (compared to Shockwave and Java) for vector art, programming, animation and slowly make it unwieldy and terrible.

        Now we have so many games written in Flash that we won’t be able to ever play again after 2020 (unless you don’t care about security updates or people make inbrowser Flash-to-HTML5/JS players).

        1. 1

          Macromedia is one of those things I think about when people making web apps tell me a chat app or banner has to use up a ton of CPU and memory. Things like the Deep Blue Sea website navigating parts of the sea vessel took up less space.

      2. 2

        Maybe it’s still used today

        Adobe acquired Macromedia a few years back, and still publish Dreamweaver. I don’t know how the current versions compare to the late-90s versions, though.

      1. 3
        1. It can’t do anything technologically useful.
        2. It should be fast at doing what it does, so that it is safe to call LOLWUT on production instances.
        3. The output should be entertaining in some way.

        This is irritating to all of us with open PRs for real improvements, bugfixes, and enhancements that are starved for attention.

        Because of the master-slave fiasco and intense work involved with scrubbing everything, he now needs a diversion to like working on his own project again? That’s great, it’s over – now let’s get back to brass tacks and fix defects, finally finish replication enhancements now being worked on for 2 years, finally wrap up streams (Salvatore’s pet project nobody asked for), and improve performance to play catch-up with other datastores.

        1. 30

          Or, antirez can spend his time as he sees fit, just like any other FOSS maintainer.

          1. 9

            I’m sorry your PRs weren’t getting attention, but it was very important to change a word and the negative discourse associated with that (and this resulting cry for help) were much more critical to spend cycles on.

            You can’t prioritize software quality over Twitter grumping, that’d be silly.

            1. 6

              I haven’t followed the details of the master-slave kerfuffle, but it seems to be simply a failure of community management. As a lazy maintainer, it seems like the proper route is just to say “I acknowledge that people feel so strongly about this sort of terminology and will happily accept PR’s to fix the problem; this seems like a good candidate for new contributors to get their feet wet with” and link to a connected issue tracker.

              Then after a year or two of no nobody submitting fixes you close the issue as WONTFIX and get on with life.

              Edit: That said, taking a break from the stuff you have to do and making something functioning, silly and completely irrelevant in the grand scheme of things can be deeply satisfying. Sometimes you need that sort of thing to remind us why we love doing what we do.

              1. 3

                Yeah, I still don’t understand how Twitter discussions can have this impact on people’s lives.

                Together with just some wording used since the beginning of IT. So why can’t words acquire new meanings? Isn’t that the definition of a living language?

                1. 3

                  Because the people are suffering from some kind of delusion.

                  I would like to see the budding young DBA-to-be who veered off IT/CS/STEM because he or she got triggered by the word “slave”.

                  Or even honest testimonies along the lines of “I was always interested in code, but I’d suffer immense panic attacks when I saw the word ‘blacklist’. I’m a Person of Color so this touches me deeply. The maintainer was kind enough to rename it (we settled on disallowlist) and now I commit a few times a year to the project. I have never felt this included and welcome in my life. Best of all? No one even complained about the broken APIs after the rename!”

                  1. 1

                    What I find weird is the “matter of fact” tone plus many contributors (not necessarily the maintainer) caving in right away, as if they also felt dirty while typing “git push - u origin master” or felt all the weight of worldwide injustices when the main DB switched to the “slave” one. I was relieved reading sane supporters though.

                  2. 2

                    Yes words do this constantly. But only in a negative way. Negative connotations tend to hang around. That’s why using these words is problematic. Also impractical, since you’d have to add a disclaimer that you mean the word in the new sense not the broadly known old one. If someone knows an example of some words changing from negative to positive connotations I’d be happy to hear about this.

                    For the current example I honestly don’t understand the quarrels people have. Why is dropping language that’s strongly tied to a history of colonisation and oppression a bad thing? Especially when other words can describe the same architectural pattern as accurately as the original words?

                    And every programmer knows that choice of words is important, we shouldn’t use them too lightly.

                    To turn the question around: So why can’t concepts get new names if the old ones are problematic?

                    1. 7

                      If someone knows an example of some words changing from negative to positive connotations I’d be happy to hear about this.

                      • Fun - to cheat or hoax
                      • Smart - a sharp stinging pain
                      • Fond - a fool
                      1. 4

                        “Nice” is one of such words. It meant foolish and silly.

                        The problem isn’t much about naming by itself: you want to use “disallowedList” and “allowedList”? Want to use “primary” and “replica”? Want to use “kaka” and “popo”, do as you wish. But going ahead and picking a project at seemingly random and force them to change words that have been picked as they are (or used to be) the standard name of those elements in a somewhat aggressive way then that’s where I’m drawing the line.

                        Or creating chaos on the issues section or on social media, extending the use of such standard words to the morals of the maintainers, that’s totally disgusting and absolutely useless.

                        What I find even more shocking isn’t the vocal part that enjoys stirring up drama for whatever reason (there is clearly a reason why these groups are doing this and it cannot be to make the tech world a friendlier place, that’s for sure) but it is people who just shrugs them off or who, just like you, now supports their point because they are somewhat technically correct.

                        Let’s start harassing all Spanish speaker developers who use the word “negro” for their black elements, how about the word “sheet” that reads as poo in Swedish, how about the word “pitch” that is extremely similar to a bad word in some Slavic languages, and “git”?

                        That is and would be dumb to do. Also, why is the “American” morality be pushed down the throats of the rest of the world? Just because they still cannot cope with their past, is that a good reason to force everyone to change their behaviour?

                        1. 3

                          I share the idea that this debate is totally dumb. There were intellectuals in the 90s that brought this up with Intel and IDE controllers. PATA went away and that debate didn’t matter, but now we see the same bullshit arising again.

                          The most vocal people in this fight are extremely childish and troll/harass developers. That’s not right. If you take a reasonable stance, you’re a racist.

                          I’m tired of outrage culture.

                          I highly recommend Brendan O’Neil’s speech on offence: https://www.youtube.com/watch?v=BtWrljX9HRA

                          and I also recommend the original post about this debate with ver well reasoned arguments:

                          http://antirez.com/news/122

                          1. 2

                            “In fact, pretty much every leap forward in history… pretty much every freedom we enjoy is a product of individuals having given offense. Having offended against the orthodoxies of their age. Offensiveness is not something we have to begrudgingly accept. Offensiveness is the motor of human progress.”

                            I’ll add the people against offending folks are defending beliefs created by offending folks ranging from speech to progress. Just like he said. They wouldn’t exist if their rules were enforced by the orthodoxy of the day when people were trying to get those reforms started. So, they glorify the reformers who offended piles of people creating their current belief systems but say nobody is allowed to offend their orthodoxies suggesting alternative systems. Double standards are a common sign of bullshit.

                            Edit: Oh, wait, he just said that, too, later in the speech. I’m still watching it.

                          2. 2

                            how about the word “sheet” that reads as poo in Swedish

                            I don’t want to get into the broader discussion again, but I speak fluent Swedish; sheet /ʃiːt/ does not look or sound like skit /ˈɧiːt/.

                            1. 1

                              Can’t argue with you, I just looked up English words which sounded/looked like bad words in other languages. Maybe they had something specific in mind, don’t know :)

                            2. 2

                              IMNSHO the use of the word “slave” isn’t as simple as being “American”. The African slaves were often sold off by their own chieftains, and different types of slavery have existed and (may be argued to) exist around the world.

                              The point about stirring up shit is more relevant. These are homonyms; a word that sounds the same or is spelled the same as another can have different meanings, as rhe examples above.

                              The slave in an IT or mechanical context simply isn’t the same type of slave that picked cotton in the southern states.

                              I’m sure there are plenty of Slavic lobsters here, but I haven’t read a single comment, here or elsewhere, of one of them being triggered by the etymology of that word.

                              1. 2

                                Exactly and that’s because on a global platform, filled with people from all around the world, with absolutely different cultures and languages, people (including myself) are not going to ruin someone else’s day just because they used a word which was/sound/looks/is derogatory in my own language on something totally unrelated.

                                If there was something totally unacceptable, one could look into why such a word was chosen or if it was intended at all, inform them privately of the thing (if, say, they are interested in being known in those countries) and move on. Not starting a debate about something pretty much every single culture in the world has had.

                                This seems to come from the wave of social justice which is plaguing certain countries, where one is offended for someone else and wants to be their saviour, while making everyone more miserable in the process, probably to achieve a “victory” for humanity or just themselves.

                                1. 1

                                  It’s not specifically American at all. Human trafficking rings (a polite euphemism for ‘selling people into slavery’) are still being fought by law enforcement around the world today.

                                  I’m sure there are plenty of Slavic lobsters here, but I haven’t read a single comment, here or elsewhere, of one of them being triggered by the etymology of that word.

                                  Reasonable people aren’t triggered by thousand-year-old etymology.

                                  https://en.wikipedia.org/wiki/Human_trafficking#Revenue indicates $150 billion/year in revenue derived from forced labor, globally. Consider that your users might actually include someone who has been enslaved and would rather not be reminded of it at work.

                                  1. 2

                                    Yet your example is hypothetical. There might actually be someone. People shouldn’t be triggered by homonyms at all.

                                    Maybe the next hill to die on is killing or terminating child processes. Many women need to have late abortions and be reminded at work of infanticide.

                                    This will never stop unless maintainers put their foot down and say that messing around with APIs because a vocal minority bullies them is not ok.

                                    The case would be stronger if the proponents of this had personal experience to share, or other evidence to back it up. Even then, we’re talking about software, not people. Better would be to donate to Amnesty or do something else than change every word and rewrite all the dictionaries.

                                    1. 1

                                      People shouldn’t be triggered by homonyms at all.

                                      If only we got a choice about what trauma the world inflicted on us.

                                      Maybe the next hill to die on is killing or terminating child processes

                                      Maybe. But since nobody has, to my knowledge, brought it up - you are raising a ridiculous straw-man (straw-person, ha).

                                      This will never stop unless maintainers put their foot down and say that messing around with APIs because a vocal minority bullies them is not ok.

                                      Of the things that might stop it, that seems like one of the least likely to work.

                                      As noted elsewhere in the thread, “Feel free to submit a complete PR, including all documentation updates” is more than enough to get them to leave you alone. In the unlikely event that someone cares enough to actually do the work, I’d suggest you’ve just gained a hardworking co-contributor.

                                2. 1

                                  Please do not conflate my questions or position with abusive behaviour towards others. My post was not about that. I haven’t asked you to do anything, nor have I endorsed abusive behaviour by others. If my questions or position causes so much grief and anger maybe it’s worth exploring why that is the case?

                                  Please relax, there’s no need for this aggravating tone here.

                                  1. 1

                                    Mmm what?

                      1. 6

                        Wow, there are a lot of self-hosters here. I self hosted back in University, then used Gmail for a number of years, and went back to self hosting around 2013. I recently migrated my server from openSUSE on Linode to OpenBSD on Vultr. Here an Ansible role if anyone is interested:

                        https://github.com/sumdog/bee2/tree/master/ansible/roles/openbsd-email

                        My stack: Inbound: OpenSMTPD -> SpamPD (spam assassin) -> OpenSMTPD -> ClamAV -> OpenSMTPD -> procmail -> dovecot Outbound: OpenSMTPD -> DKIM proxy -> OpenSMTPD (relay)

                        1. 1
                        1. 3

                          Urgh, damn it. I guess I should download Wikipedia while Europeans like me are still allowed to access all of it… It’s only 80 GB (wtf?) anyway.

                          1. 3

                            That and the Internet Archive. ;)

                            Regarding Wikipedia, do they sell offline copies of it so we don’t have to download 80GB? Seems like it be a nice fundraising and sharing strategy combined.

                            1. 3

                              I second this. While I know the content might change in the near future, it would be fun to have memorabilia about a digital knowledge base. I regret throwing to the garbage my Solaris 10 DVDs that Sun sent me for free back in 2009. I was too dumb back then.

                              1. 2

                                Its a bit out of date but wikipediaondvd.com and lots more options at dumps.wikimedia.org.

                                I wonder how much traffic setting up a local mirror would entail, might be useful. Probably the type of thing that serious preppers do.

                                1. 1

                                  You can help seeding too.

                              2. 4

                                Actually Wikipedia is exempt from this directive, as is also mentioned in the linked article. While I agree that this directive will have a severely negative impact on the internet in Europe, we should be careful not to rely on false arguments.

                                1. 1

                                  Do you remember the encyclopedias of the 90s? They came on a single CD. 650MB.

                                  1. 5

                                    To be explicit, this is not a “modern systems are bloated” thing. The English Wikipedia has an estimated 3.5 billion words. If you took out every single multimedia, talk page, piece of metadata, and edit history, it’d still be 30 GB of raw text uncompressed.

                                    1. 4

                                      Oh that’s not what I was implying. The commenter said “It’s only 80 GB (wtf?)”

                                      I too was surprised at how small it was, but them remembered the old encyclopedias and realized that you can put a lot of pure text data in a fairly small amount of space.

                                      1. 1

                                        Remember that they had a very limited selection with low-quality images at least on those I had. So, it makes sense there’s a big difference. I feel you, though, on how we used to get a good pile of learning in small package.

                                      2. 1

                                        30 GB of raw text uncompressed

                                        That sounds like a fun text encoding challenge: try to get that 30GB of wiki text onto a single layer DVD (about 4.6GB?)

                                        I bet it’s technically possible with enough work. AFAIK Claude Shannon experimentally showed that human readable text only has a few bits of information per character. Of course there are lots of languages but they must each have some optimal encoding. ;)

                                        1. 2

                                          Not even sure it’d be a lot of work. Text packs extremely well; IIRC compression ratios over 20x are not uncommon.

                                          1. 1

                                            Huh! I think gzip usually achieves about 2:1 on ASCII text and lzma is up to roughly twice as good. At least one of those two beliefs has to be definitely incorrect, then.

                                            Okay so, make it challenging: same problem but this time an 700MB CD-R. :)

                                            1. 4

                                              There is actually a well-known text compression benchmark based around Wikipedia, the best compressor manages 85x while taking just under 10 days to decompress. Slightly more practical is lpaq9m at 2.5 hours, but with “only” 69x compression.

                                              1. 1

                                                What does 69x compression mean? Is it just 30 GB / 69 = .43 GB compressed? That doesn’t match up with the page you linked, which (assuming it’s in bytes) is around 143 MB (much smaller than .43 GB).

                                                1. 5

                                                  From the page,

                                                  enwik9: compressed size of first 10e9 bytes of enwiki-20060303-pages-articles.xml.

                                                  So 10e9 = 9.31 GiB. lpaq9m lists 144,054,338 bytes as the compressed output size + compressor (10e9/144,054,338 = 69.41), and 898 nsec/byte decompression throughput, so (10e9*898)/1e9/3600 = 2.49 hours to decompress 9.31GiB.

                                                2. 1

                                                  Nice! Thanks.

                                    1. 2

                                      It’s really shitty that OS/2 Warp didn’t make it and continue to grow into a consumer operating system.

                                      Imagine a world today where average consumers had a choice between three major operating systems instead of just two.

                                      1. 2

                                        I realize The Year of Desktop Linux has been upon us for DECADES at this point, but I really do think things are maturing over there to the point where it’s becoming more and more of an option.

                                        Even commercial applications and games are starting to fall into place with Valve’s recent investment in Proton, and Snaps/Flatpaks are making Linux a much more viable platform for consumer commercial development.

                                        But yeah, it’s a shame OS/2 never took off. Just another instance where IBM couldn’t market itself out of a paper bag. Amazing technology, crap marketing, and ultimately marketing = adoption to a large extent.

                                      1. 13

                                        Gmail casually puts all my email to spam, despite having SPF and DKIM and owning the IP address for almost 3 years now.

                                        There is no way to fix that. Whenever I try their tools, it seems that I’d need to become a bulk sender first.

                                        1. 3

                                          I noticed this years ago and wrote a post about it:

                                          https://penguindreams.org/blog/how-google-and-microsoft-made-email-unreliable/

                                          Both Google and Microsoft require you to send a lot of e-mail from one address for it to get white listed. It’s really quite bizarre. I even moved my e-mail server recently to OpenBSD on a Vultr node. They don’t allow SMTP by default and I had to request the block be removed from my account. So in theory I shouldn’t be on any SMTP-noisy subnets.

                                          Outbound e-mail still ends up in spam for some of my Microsoft accounts (but not all of them). I don’t get it. They really have imposed a huge barrier to reliable e-mail.

                                          1. 2

                                            I gave up trying to fight. Google doesn’t work in China, and their hosted crap was the same price as Microsoft’s but MS gives you full Office access, so I went with Office 365. They have a feature in which you can have them front a domain, but then send all the messages to a SMTP server. Just as you can relay mail through them as a smart host.

                                            Doing this I can still run my own email server, and kind of pretend to be self hosting, but at least people get my email now, as it’s been sent from MS instead of being sent by me. Of course this means that for so many people who try to self host their email it gets flagged as spam. It’s amazing how anti-competitive open things like email are.

                                            1. 1

                                              Gmail casually puts a small amount of my emails in spam but lets the rest through. All my emails are pretty much the same plain text emails to people who have usually contacted me first but every now and then I have to send a follow up email to one that was marked as spam.

                                              1. 1

                                                Now that sounds rather weird.

                                            1. 3

                                              I do not agree at all. You should always have unit tests whenever possible.

                                              If a bug gets through, then you can add it to your test and prevent it from happening next time. Get a false positive? Well then you can adjust your tests and make them more robust.

                                              If you have external integration points (two services you control) then you need to have integration tests. Don’t mock your services, but setup your pipeline so when their unit tests pass, they get deployed somewhere where integration tests immediately run. With a well thought out design, you can even promote your build to another environment at this step.

                                              We also have so many more tools today to ensure our unit tests don’t use a bunch of mocks. There are tons of test-container frameworks for all kinds of build tools that let you spin up MySQL, Postgres and/or Redis containers. You can start a container, migrate your db, load your fixture data, fire off a bunch of tests and then get rid of that container. This is even more amazing because it sets you move up to newer database version really easily.

                                              When you work on a project with a really good test suite, it’s amazing. You can make big refactors without having to worry about breaking everything and manually re-test everything. You cannot work on a large code base without test automation. It’s just going to be hell.

                                              Maybe some of these things aren’t technically unit tests? Possibly. With container+fixture testing, we’re kinda pushing the limits of what we can actually do in tests compared to a few years ago. Maybe I’m just having a definition problem.

                                              But in any case: test. Always. You don’t have to write the tests first if it’s a new project, but once you get your framework going, it’s just going to be easier to start with your tests and then add your implementation.

                                              1. 2

                                                I just switched to OpenBSD for e-mail using the following stack:

                                                Inbound: opensmtpd -> spampd(tag) -> opensmtpd -> clamsmtpd(tag) -> opensmtpd -> procmail -> dovecot(Maildir) outbound: opensmtpd -> dkim_proxy -> opensmtpd(relay)

                                                I don’t use the spamd/grey listing up front like a lot of tutorials suggest, but spampd(spam assistant) seems to get the majority of it.

                                                My old stack was similar, but used postfix on opensuse. I really like the opensmtpd configuration; loads simpler than postfix. However I wish it supporter filters that the other MTAs do. It had filter support for a bit, but was clunky and subsequently removed. It makes it difficult (impossible?) to run things like rspam.

                                                1. 5

                                                  rspamd has an MDA mode, so you can do like

                                                  accept from any for local virtual { "@" => mike } deliver to mda "rspamc --mime --ucl --exec /usr/loca
                                                  l/bin/dovecot-lda-mike" as mike
                                                  

                                                  and dovecot-lda-mike is

                                                  #! /bin/sh
                                                  exec /usr/local/libexec/dovecot/dovecot-lda -d mike
                                                  

                                                  smtpd is really really really good. For some reason the email software ecosystem is a mess of insane configs and horrible scripts, but my smtpd.conf is 12 lines and the only script I use (that rspamd one) is going to go away when filters come back. smtpd is so good I went with an MDA instead of a web app to handle photo uploads to my VPS. It’s one line in smtpd.conf and ~70 lines of python, and I don’t have to deal with fcgi or anything like that.

                                                  1. 1

                                                    smtpd is so good I went with an MDA instead of a web app to handle photo uploads to my VPS

                                                    Oh that’s a clever idea. I’ve been using ssh (via termux) on my phone but that is so clumsy.

                                                  2. 5

                                                    I do greylisting on my email server [1] and I’ve found that it reduces the incoming email by 50% up front—there are a lot of poorly written spam bots out there. Greylisting up front will reduce the load that your spam system will have to slog through, for very little cost.

                                                    [1] Yes, I run my own. Been doing it nearly 20 years now (well over 10 at its current location) so I have it easier than someone starting out now. Clean IP, full control over DNS (I run my own DNS server; I also have access to modify the PTR record if I need to) and it’s just me—no one else receives email from my server.

                                                    1. 2

                                                      I’m the author/presenter of the tutorial. If I may, I suggest looking at my talk this year at BSDCan: Fighting Spam at the Frontline: Using DNS, Log Files and Other Tools in the Fight Against Spam. In those slides I talk about using spf records (spf_fetch, smtpctl spfwalk, spfwalk standalone) to whitelist IPs and mining httpd and sshd logs for bad actors and actively blacklisting them.

                                                      For those who find blacklisting a terrifying idea, in the presentation I suggest configuring your firewall rules so that your whitelists always win. That way, if Google somehow get added to your blacklists, the whitelist rule will ensure Gmail can still connect.

                                                      I also discuss ways to capture send-to domains and add them to your whitelists so you don’t have to wait hours for them to escape the greylists.

                                                      1. 1

                                                        I didn’t find SPF to be all that great, and it was the nearly the same three years earlier. Even the RBL were problematic, but that was three years ago.

                                                        As for greylisting, I currently hold them for 25 minutes, and that might be 20 minutes longer than absolutely required.

                                                      2. 1

                                                        Greylisting is the best. Back when my mailserver was just on a VPS it was the difference between spamd eating 100% CPU and a usable system.

                                                    1. 2

                                                      I must draw attention to a big problem with developing a whole new GUI toolkit: Your applications won’t be accessible to people who need assistive technologies, e.g. blind people with screen readers. Unless, of course, you implement the host platform’s accessibility API. For modern Unix desktops, that API is called AT-SPI, and that’s based on D-Bus.

                                                      But if, like the OP, you’re just using this for personal tools, it’s not a problem. And writing a new GUI toolkit is certainly a good learning exercise.

                                                      1. 2

                                                        If someone wants to email the author a patch that fixes those problems I’m sure they’ll happily accept them.

                                                        1. 1

                                                          Yea I see posts like this more of an educational/curiosity more than anything else .. although I wonder how many curiosities turned into big OSS packages. Samba was definitely one of those.

                                                        1. 1

                                                          I do like how the author mentions Wayland, even though the post goes down the X11 path.

                                                          I can understand this. I have some FreeBSD/OpenBSD machines and I think it will be a while before we see devs porting Wayland to replace X on those systems. (The Docker port for FreeBSD would be more useful honestly, but that hasn’t been maintained since the big Docker modular refactor).

                                                          I can see the author’s choice for an experiment/writeup like this considering there is a lot more X documentation out there.

                                                          1. 3

                                                            I used the docker containers and the upgrade was pretty painless. Assets are now compiled into the containers as well.

                                                            1. 24

                                                              As far as I can tell at no point has it been suggested in Firefox’s plans for the future involve moving everything to Cloudflare. AIUI Cloudflare was the testbed, nothing more, and Mozilla has explicitly stated that they’re going to look into having a choice of providers.

                                                              (I’m a bit annoyed by the amount of FUD on this coming from the PowerDNS folks, there’s been a bunch on Twitter too)

                                                              1. 2

                                                                I remember reading the blog posts when this was announced and I felt it really wasn’t clear. Maybe I should go read it again.

                                                                I’m still a little concerned. Will there be a big list in Firefox of name servers, similar to SSL roots? Do the browser vendors then get to decide the list of authorized DNS providers?

                                                                I wonder how viable it would be to add a layer of DNS-over-HTTP root servers? Companies who are serious about privacy could contribute to ICANN to see this happen.

                                                              1. 1

                                                                So, Bee2. I understand why you want a better docker compose, but why make your own rather than use or enhance vagrant?

                                                                I’m successfully using vagrant + make as a single-machine docker orchestrator. Because it’s all just ruby, it’s relatively easy to add in whatever I need into the vagrantfile.

                                                                1. 1

                                                                  I probably should have just gone with Docker compose. :-P I got a little frustrated with it early on and I had already written a ruby script for Integration tests which spins up Docker containers.

                                                                  So I already knew how to work with the Docker API directly and thought I could get some more flexibility. It has been a decent amount of work, and I probably could have adapted docker-compose to fit my needs, but I’m still glad I wrote it. I learned a lot more about the internal Docker API, and I’m working on another post about how I’m currently using it to run, update and maintain a Mastodon node.

                                                                1. 13

                                                                  I also sometimes fall into this trap. What has helped me is to distinguish between “I am writing a library” and “I am writing code specific to a single application”. The former invokes a mindset of reuse, generalized concepts, and generic code. The latter requires focus on the end goal and a willingness to accumulate application-specific code and data structures.

                                                                  1. 5

                                                                    I have found that this mindset / decision is crucial for all my projects in all languages. If I don’t know which it is, then my odds of stopping before I’ve produced something useful are basically 100%.

                                                                    1. 2

                                                                      Taking part in the Advent of Code using Haskell helped to cure me of this. Just write the code: abstractions can come later…

                                                                      1. 1

                                                                        Have you done any Project Euler? At least in my experience you accumulate a bunch of utilities while coding that are reusable across challenges.

                                                                        AoC is great as it’s so focused and each day’s challenge can be decoupled from the other.

                                                                      2. 2

                                                                        Makes me think about that post a few weeks ago about “The Wrong Abstraction.”

                                                                      1. 2

                                                                        A more accurate comparison would be against actual HTTP access logs vs Google Analytics. I remember talking to the developers of Piwik asking about JavaScript vs log analysis. At the time Piwik could do both, but you’d have to run two instance (one for each). I told them it might be work looking into having one instance able to do both, and then have comparison reports; possibly even trying to break down what is/isn’t a bot and who does/doesn’t have JavaScript or Ad block enabled.

                                                                        1. 9

                                                                          What works

                                                                          • Front page stories, comments, the article itself.

                                                                          What doesn’t

                                                                          • Anything that uses your account (@talklittle is/was making OAuth Support at some point)
                                                                          • The recent page
                                                                          • User profiles

                                                                          I think I implemented everything the API has support for, and the interface is a bit lacking. WIP. Signed Android Binary Here: https://gitlab.com/nikhiljha/lobsters-app/tags

                                                                          For those new to flutter, the entire codebase is inside the lib folder (~300LOC) - everything else is autogenerated. The app is also compiled to native ARM code, so although the binary is somewhat large (due to flutter needing to have its entire library in there), the application is fast and uses very little battery.

                                                                          1. 8

                                                                            OAuth 2.0 support was stalled waiting for a bugfix/feature to be put into an official release of the Doorkeeper gem, which incidentally looks like it came out 9 days ago as version 5.0.0. Doorkeeper v5.0.0.rc1 changelog mentions the merged PR.

                                                                            However now the OAuth 2.0 branch is pretty far behind master, so work needs to be put in to bring it up to date, and also fix numerous style issues to satisfy Rubocop. Not sure if/when I’ll be able to do that; if anyone’s up to the task please feel free to fork and continue the work, or redo from scratch if you can do a better OAuth implementation.

                                                                            1. 6

                                                                              I got most of the OAuth work merged into the ActivityPub branch.

                                                                              1. 3

                                                                                Where is the ActivityPub branch? I don’t see it mentioned in the issue for ActivityPub.

                                                                                1. 3

                                                                                  Currently living on my github account / laptop.

                                                                            2. 3

                                                                              I downloaded the signed APK and unpacked it so I could look at file sizes: Here are the highlights:

                                                                              • lib/armeabi-v7a/libflutter.so (6.2M)
                                                                              • assets/isolate_snapshot_instr (4.2M)
                                                                              • assets/isolate_snapshot_data (3.1M)
                                                                              • classes.dex (2.2M)
                                                                              • assets/flutter_shared/icudtl.dat (1.2M)

                                                                              When an Android app is written entirely in a JVM language, the whole thing can be optimized through ProGuard. But whole-program optimization is much harder, if it’s even possible, when there are three runtimes in the mix (Dalvik/ART, Dart, and C++), as there are here.

                                                                              For complex line-of-business apps, it’s probably worth it. But it saddens me to think that every little consumer app (e.g. the app for the musical Hamilton, one of Flutter’s showcase apps), that should probably be a website in the first place, could carry around its own copy of a heavy runtime like this.

                                                                              1. 2

                                                                                the binary is somewhat large (due to flutter needing to have its entire library in there)

                                                                                I briefly looked into using Scala for Android apps a while back and I remember there were a number of people who talked about tree shaking plugins in their build process (build tools that would check to see what functions are actually used and remove all the other unhandled paths). I never actually went down this path, so I’m not sure if/how well they worked, but maybe there’s something similar for flutter/dart to get file sizes under control?

                                                                                1. 2

                                                                                  I personally don’t think it matters that much. The Android app is about 8MB, whereas an equivalent app in Java is about 1-2MB. I have another app I wrote in flutter that is significantly more complex, and it’s also 8MB.

                                                                                  iOS is another story. The ipa I just built is 40MB for seemingly no reason, and I have no idea why.

                                                                                  1. 1

                                                                                    Oh that’s not bad at all. That’s actually pretty good considering all the 30~60MB Android apps I’ve seen for the simplest services.

                                                                                    Hope you can figure out what’s up with that iOS build.

                                                                                    1. 1

                                                                                      Are you sure you were in release mode? I’ve made that mistake before.

                                                                                      1. 1

                                                                                        I did a flutter build ios - which I would assume is the same as flutter build apk, but for ios. I think it’s release mode, because it doesn’t show the DEBUG banner in the top right. The large file sizes aren’t just me though, it’s a problem with iOS as a whole, exacerbated by the fact that I also have to load the Flutter library.

                                                                                  2. 1

                                                                                    I’m a big flutter fan, how did you find it?

                                                                                    1. 1

                                                                                      I wrote an article about this. It’s hands-down the easiest framework I’ve ever used, even moreso than the native development frameworks (Kotlin + Android SDK/Swift + iOS SDK).

                                                                                  1. 2

                                                                                    Interesting. At first I thought the dev was somehow rendering the rest of the screen. It’s technically a hack, but it’s a pretty neat one and looks like it mostly works on the general case.

                                                                                    If you’re into crazy NES stuff, check out this guy who uses a Raspberry Pi to emulate a carriage and do some crazy stuff with it: https://www.youtube.com/watch?v=ar9WRwCiSr0

                                                                                    1. 8

                                                                                      As an occasional used of notebooks I agree with almost everything he said in those slides. Kind of want to see a recording of the talk now.

                                                                                      1. 9

                                                                                        Yea I’d rather see a recording. The slides aren’t really getting the full point across on their own (which means they’re actually good slides and are just an addition visual aid like they should be, vs something you just read point by point while on stage).

                                                                                        1. 7

                                                                                          If you look at the speaker notes (if Google Slides lets you) you’ll get the bulk of what I actually said.

                                                                                          (You’ll still miss out on the two livecoding pieces and my impeccable comedic timing.)

                                                                                        2. 5

                                                                                          They did record it and supposedly will put it up on YouTube at some point.

                                                                                          1. 1

                                                                                            I had no idea this stuff existed before this post. Are they actually widely used?

                                                                                          1. 17

                                                                                            Suggesting that people “get involved” more with the FOSS they use is great, but this blog post comes across really immature, in my opinion. It may do more harm than good, making FOSS types seem childish.

                                                                                            1. 8

                                                                                              Exactly. I appreciate that the author is trying to bring attention to the problem. Best route is to present it in a mature, respectable way that average consumer and business person will share with their friends. Most won’t share this. A number will even have filters blocking them from seeing it at work.

                                                                                              An alternative style that did get a lot of traction was Nadia Eghbal’s article. I suggest chaica do one more like that if aiming to maximize sharing and contributions.

                                                                                              1. 7

                                                                                                There is a particular brand of FOSS developer who thinks that because they are donating their free time in support of some project or another, that anyone who uses their software but contributes back nothing is some kind of freeloader. I didn’t even read the whole thing because of all the holier-than-thou and meme gifs but that’s how the author of this article comes across to me. I’m sorry, but just because you put something some code on the internet doesn’t mean the users of the code owe you anything. (Or at least, anything that isn’t already spelled out clearly in the license.)

                                                                                                1. 1

                                                                                                  I’m sorry, but just because you put something some code on the internet doesn’t mean the users of the code owe you anything

                                                                                                  Legally? No. Morally? Yes. Then you can convince yourself otherwise to cope with the inevitable guilt you will have by being a freeloader, but FOSS is a community and communities are built on exchange and sharing. If you want to get the fruits of their work without participating in the community you’re allowed to, because using code doesn’t cost anything, but you’re still morally in debt to a certain degree.

                                                                                                  1. 8

                                                                                                    I guess we disagree then. Personally, I expect zero return for anything I put on the Internet. Not because I think my efforts are valueless but because the value was derived from the making of the thing in the first place and, perhaps secondarily, sharing it with others. If someone wants to contribute back in some way, that’s absolutely great, but the blatant expectation that they should is just too close to unjustified entitlement for my taste.

                                                                                                    And then there’s just the sheer logistical problem of such an idea as well. If you took all of the different open source projects that I used to get my work done today alone, they would number in the thousands, easily. It would take me at least a lifetime to make a meaningful contribution to every single one of those just to repay my one day of work.

                                                                                                    1. 1

                                                                                                      But you don’t have to contribute to each one of them. The nature of contribution is not transactional in nature. Since it’s a community, in theory, giving back to a single FOSS project is like contributing to each one of them. You participate as an individual but the effort is collective and you shouldn’t think about this matter as a material transaction between you and the maintainer of each one of the projects you use: “I give you 20 mins of my time and 5 dollars in donations in exchange for 5000 lines of your good code” I mean, you can, but the spirit of most of the people involved in this thing is different.

                                                                                                      Also the way you speak about your own code shows that probably you don’t feel part of the community and so you can’t understand the behavior of others and you call entitlement. Just because you publish stuff on the internet with this attitude doesn’t mean that others do the same. You participate in this as an individual, others don’t.

                                                                                                      1. 3

                                                                                                        I am part of an open source community and my feelings are far closer to @bityard’s than what’s described in the OP. Entitlement comes in many shapes and sizes, and some form of it is definitely on display in the OP.

                                                                                                        1. 1

                                                                                                          Then what’s your idea of community? I mean, in general, not in Open Source.

                                                                                                          1. 2

                                                                                                            My idea of what a community is is irrelevant. You just got done telling someone else they “didn’t understand” because they weren’t part of one. What I’m telling you is a fact: I am part of one and I see things very similarly to @bityard, so your model of what kinds of things people do or don’t understand needs revision.

                                                                                                            I am mostly trying to dodge your question, mostly because I don’t think it’s a productive use of my time and also because both the question and its answer will inevitably be incredibly vague, nuanced and difficult to express in a Lobsters comment.

                                                                                                            1. 0

                                                                                                              If you don’t want to have a discussion is fine, even though Lobste.rs comments are supposed to support a discussion.

                                                                                                              because both the question and its answer will inevitably be incredibly vague, nuanced and difficult to express

                                                                                                              There are things that cannot be dealt with in an analytical and dry approach. Vagueness (as intended by STEM people), subjectivity and communication issues are a necessary tradeoff to investigate matters that are complicated.

                                                                                                              1. 1

                                                                                                                Your condescension is enough of a reason not to want to talk to you. Just because I don’t want to have a very vague discussion doesn’t mean I think vagaries are themselves unnecessary.

                                                                                                                1. 0

                                                                                                                  Then don’t use it as an accusation next time.

                                                                                                                  1. 1

                                                                                                                    I didn’t.

                                                                                                2. 3

                                                                                                  I don’t think so. The message is simple and straight. It resonates with those people that can understand life beyond consumption and maybe suggest a non-consumeristic, non-capitalistic mode of interaction to some others that are inclined to receive the message. Why is it childish? Because it tells you you shouldn’t be a consumer? That’s not childish at all. It requires a lot of effort to escape consumerist-logic, since it’s what you have learnt in school, from your parents, from media and it’s considered the standard way of living.

                                                                                                  1. 1

                                                                                                    making FOSS types seem childish.

                                                                                                    Could you elaborate on this one?

                                                                                                    1. 0

                                                                                                      Maybe he’s talking about being overly idealistic? The Stallman-esque era of open source in the late 90s/early 2000s had us believe that one day Gimp would surpass Photoshop, and that we’d go into coffee shops and casually observe Linux netbooks.

                                                                                                      For a number of reasons that never happened. I wrote a post about it a while back:

                                                                                                      https://penguindreams.org/blog/the-philosophy-of-open-source-in-community-and-enterprise-software/

                                                                                                      1. 4

                                                                                                        I note that we go into coffee shops and do observe Android phones.

                                                                                                    2. 1

                                                                                                      Agreed. The large majority of volunteering work is thankless work. Sadly, a lot of people are more likely to thank you when they are paying for your work. Yet, throwing a tantrum is counterproductive indeed.

                                                                                                      1. 1

                                                                                                        Awesome. I’ve updated my blog post. Glad I could help contribute. :)