1.  

    I’m using such a script (Perl – yay) for my blog: https://gir.st/genindex (not really a url I’m considering stable)

    Despite the popularity of markdown and static page generators, I’m writing my posts in plain HTML, and a heading usually looks like <hX id=foo>. then I’m calling above script from within vim to generate the toc.

    Looking forward to the next challenges!

    1. 28

      5 years. Nobody would dare to be that careless when it comes to e.g. oracle’s license agreements, but with the GPL, hardly anyone seems to care.

      (This isn’t just meant in re: to tesla, but many, many other players as well)

      1. 5

        It’s why Im in favor of suing the crap out of them if they dont respond to nice letters and gradual escalation. Very important to have the gradual escalation with clear process and solutions so companies dont worry GPL = massive loss of money. The few hit would be a solid example of what happens to worst offenders. Most of that money donated to FOSS infrastructure, legal defenses, or businesses.

        1. 4

          … if they dont respond to nice letters and gradual escalation.

          This put a huge burden on GPL developers and communities.

          I think that suing them the crap if they don’t start to comply the day after the first email would be a much more effective approach.

          For one company that try to comply after 5 years, how many other don’t care?
          This lenient approach give them nothing to lose!

          Do these company comply to free software license only if they are totally busted?
          Fine, so most of them don’t comply at all. So there’s nothing communities can lose by suing them.

          So sadly, free software communities can only obtain respect for their work by suing violators.

          IMHO, Software Freedom Conservancy is not protecting free software, but corporate’s investments.

          1. 3

            We’re trying to keep the moral high ground here. Plus, reduce the risk of companies avoiding GPL code. They’re already a little afraid of it. It helps to let them know a mistake won’t be an automatic, massive loss. The people doing GPL compliance usually just give them a notice asking them to fix it. I don’t know how often compliance happens but write-ups I’ve seen indicate they had a lot of success just talking to companies.

            Note that commercial, copyright holders usually give a takedown notice before legal action as well. Right now, those doing it for content are even doing six strikes with ISP’s. I’d say similarly let them ignore a few emails or contacts that we document to show a pattern of not caring. Then, hit them with a law suit.

          2. 3

            As I understand, for US, you can sue for either actual damage or statutory damage of $30,000. For example, The Qt Company can sue and recover the price of Qt commercial license, and attorney’s fees. I think for Linux and BusyBox it is entirely possible that the enforcement wins and the court awards small damage, resulting in worse compliance in the future.

            1. 2

              So, in that case, the default commercial license should be something like Oracle’s with actual licenses always being reduced based on traits of the business. In court, you’d cite the non-discounted, Oracle-style licensing of the product with pricing per developer seat, per CPU, per organization, per deployed instance, and per mention of the trademarked name in court documents. Should add up pretty quickly if it’s a big company or a startup. ;)

              Nah, in seriousness, I’d be suing under copyright law if possible since a violation is up to $250,000 per count. That’s what the proprietary companies use in combination with patent law. If there’s patents, maybe use that as well. Damages could be pretty high.

              “I think for Linux and BusyBox it is entirely possible that the enforcement wins and the court awards small damage, resulting in worse compliance in the future.”

              I didn’t think about that. I’d have to make sure the solution addresses it. Alternatively, the response can vary per project.

              1. 4

                the default commercial license should be…

                This remind me of Bruce Perens recommending developers of GPL software to always offer dual license.

                1. 2

                  I didn’t know about that legal angle. Thanks for the link!

              2. 1

                The “actual demage” is the whole development effort donated by developers of Linux and BusyBox.

                Make an estimate, and ask for it.
                Indeed, if you don’t want to comply with the GPL you have to buy the copyright from each of the developers or create your own Unix and BusyBox alternative from scratch with comparable effort.

                1. 2

                  While I want this to be true, this strategy is completely untested in the court and if that is the alternative, I fully understand why FSF and SFC are reluctant to pursue such strategy.

                  1. 2

                    I fully understand why FSF and SFC are reluctant to pursue such strategy.

                    Why?

                    I mean: the gift of developers’ hours under GPL is conditioned to the reciprocity it requires.

                    Without the reciprocity, that work is not a gift anymore: you either pay for it or comply to the requirements. Still, after license termination, you can just pay.

                    1. 2

                      Why? Because it is untested in the court! Or do you have a case number where your strategy worked?

                      1. 3

                        Oh… good point!

                        So it remains untested because… it’s untested!

                        I guess an exit condition is missing in this loop…

          1. 4

            If you like these kind of ‘hidden operators’, but want some that actually work and are (mostly) useful, take a look at the perlsecret documentation.

            (and don’t forget about C’s “goes to” operator while (i --> 0))

            1. 6

              AntennaPod: podcast app (a little buggy but mostly works)

              DNS66: systemwide rootless adblocker

              Firefox Klar: Firefox Focus, but free

              Silence: texting app

              Simple Gallery

              Tusky: mastodon client

              Unit Converter Ultimate

              1. 2

                Firefox Klar: Firefox Focus, but free

                they are exactly the same. They changed the name to ‘Klar’ (german for ‘clear’) in Germany due to trademark issues (focus.de is a magazine there). It is also not in the main repositories, but in a seperate one that does not build from source.

                1. 7

                  One difference between that two is that Klar have telemetry turned off by default, AFAIK: https://gitlab.com/fdroid/rfp/issues/235

                2. 1

                  If I have root, is DNS66 still better than AdAway?

                  Also, I’m torn between Tusky and Twidere, if anyone has opinions I’d like to hear them.

                  1. 3

                    I’d say AdAway is preferable to DNS66. There’s also Blokada, which works as a pseudo-VPN.

                1. 10

                  The big annoyance was that back in the day, with posting boards and guestbooks being all the rage, (or just a badly made web page) people would open a blink tag and never close it and the browser would render everything after it on the page as blinking.

                  1. 4

                    In a similar vein: U+202E “RIGHT-TO-LEFT OVERRIDE”

                    1. 3

                      I remember doing that once in 1996. Good times.

                      1. 2

                        These days you can annoy everyone with gif images though ;-) Which sadly regularly happens on Github issues of major issues / bugs.

                        1. 1

                          But at least it doesn’t have a spillover effect of turning every post that comes after it into an animated gif meme version of itself (as long as no one makes “memification” a feature of markdown, aynway).

                          1. 3

                            as long as no one makes “memification” a feature of markdown, aynway

                            Goes off to register memedown.com and apply to a startup accelerator.

                      1. 2

                        Very well executed, kudos to all of you!

                        (I was tempted to post the extra long longcat meme, but u/liwakura beat me to the “extremely large image joke”)

                        1. 18

                          if you feel like you are repeating yourself:

                          • !! – complete last command (!-2 recalls the second to last command)
                          • !$ – last argument -”-
                          • !^ – first argument -”-
                          • !* – all aguments -”-
                          • !:1-2 – 1st and 2nd argument -”- (!-2:2 recalls the 2nd argument of the 2nd-to-last command)
                          • ^old^new – replace the first occurrence of old with new
                          1. 11

                            Consider a reputable VPN like Freedome.

                            This is helping me keep my data private from facebook how?

                            1. 0

                              I’m also a bit confused. How exactly does Facebook track me once I’ve deleted my Facebook account?

                              1. 5

                                cookies, cookies, cookies. Loads of websites “integrate” with facebook, either for login, or for the big like button, etc. Facebook slurps down oh hey you visited poopydiapers.com, cool beans!

                                1. 3

                                  Thats why you get a browser extension like privacy badger which blocks all the facebook integrations.

                                  1. 1

                                    I agree with you.

                                    I like Cookie Autodelete myself: https://addons.mozilla.org/en-US/firefox/addon/cookie-autodelete/?src=search

                                    it even does localStorage data now too(mostly)

                                  2. 2

                                    Ah I see. I figured it was cookies, but didn’t know you were tracked through facebook integrations without being logged in. Regardless, I’ve got all their addresses mapped to 0.0.0.0 in my hosts file (using this repo). Thanks for the answer to the naive question - my programming background is as a non-CS academic.

                                  3. 2

                                    Many web pages include their retargeting js or like button js. Facebook can track the IP and cookies associated with those page loads. A VPN might help against IP tracking, but not the cookies.

                                1. 5

                                  FOSDEM 2018 had a fun talk about that. Horrifying what constitutes a valid email address.

                                  1. 6

                                    Oh gahd…I’m all for killing info, but this seems…like an even-worse alternative.

                                    1. 1

                                      In my own research operating system I’m planning to use either markdown or something slightly custom (just to structure the all manpages in the same way).

                                      However, I’m eager to listen about simpler and cleaner alternatives!

                                      What are you thinking of?

                                      1. 4

                                        Ingo Schwarze at least has some strong feelings about why not Markdown, and I agree with the points made.

                                        Side note: You’re linking to an HTTPS page on GitHub Pages. People who don’t have an exception for GitHub’s GitHub Pages cert will experience an error there.

                                        1. 4

                                          The funny thing is that I agree with Schwarze about Markdown as a presentation language.

                                          And still I can’t find another language that can be consumed both as a plain text (via cat) and as input to produce nicer presentations (as HTML and/or PDF).

                                          In a perfect world I would hire a programmer to design and develop such language with me.
                                          But in a perfect world, I could pay the bills programming in C for Jehanne, not in Javascript for banks.
                                          Maybe in a perfect world we wouldn’t have neither Javascript nor banks (nor blockchains for what it worth)! :-D

                                          So if you have a better solution to propose I’m really eager to listen. Really!

                                          My requirements are rather simple: the language for Jehanne’s manual pages must be

                                          1. easy to read in source form (in UTF-8)
                                            1.5) semantic enough (maybe though the adoption of conventions) to build index and cross references
                                          2. precise enough to transform into a nice PDF

                                          1 and 1.5 are more important than 2.

                                          The only alternative to a (slighly customized) Markdown (that I know a bit) is AsciiDoc, that unfortunately is designed to be easily written, but not to be easy to read in source form.

                                          (thanks for the hint about the link… it was a typo… fixed!)

                                        2. 3

                                          I have little to no horse in the race of the source format; my nausea is a reaction to the presentation of the rendered form – emacs (even though I’m an emacs user!), HTML, and (worst of all) web browsers.

                                          I like man pages. In my pager, in my terminal. More terminal, less web.

                                          1. 1

                                            I agree so much that in Jehanne you will read manual pages with cat.
                                            And in a rio window, you won’t even need a pager.

                                            So my question is about presentation.

                                          2. 2

                                            What’s wrong with troff -man?

                                            1. 1

                                              Nothing!

                                              But cat is simpler.

                                              1. 2

                                                So why are you looking for an alternative typesetting language?

                                                If you’re using cat, man pages would have to be plain text, no?

                                                1. 1

                                                  Yes, I even thought about simple plain text. And it is still an option!

                                                  But I guess that one can design a simple typesetting language to be very readable in source form.

                                                  It’s just a matter of trade offs. Markdown explores this design space.
                                                  I think we could have something even better and I would actively help in the design anyone who is interested, but Jehanne is a full operating system and it leaves me with no time for this.

                                                  Still implementing a compiler for such hypotetical language would be the only way to evaluate the trade-offs and to ensure that it is formal enough.

                                            2. 1

                                              Have you considered Perl’s pod?

                                              regarding /u/Shamar’s later post:

                                              1. debatable, but yes
                                                1.5. yes, with L<name>
                                              2. yes
                                              1. 1

                                                Didn’t know it, but to me the rumor / message ratio in source form is to high.

                                                The primary consumption of the Jehanne’s manual pages will be through cat of sources.

                                                Thus the markup must be minimal so that readers will rapidly learn to ignore it.

                                                POD’s markup is simple to learn and use, but definitely not minimal.

                                                Slightly extended Markdowns, such as the one of discount, are way more transparent.

                                                I could design something better from this point of view, but people should learn it just to write Jehanne’s manpages and I should find a way to leverage existing tools.

                                                It’s in no way impossible, but neither a priority nor a funny task.

                                          1. 1

                                            Pterosaur used vims clientserver mode to embed vim directly into any text field (and wysiwyg-editor) – sadly, it stopped working years ago :(

                                            1. 2

                                              I wanted to parse <h1>, <h2>, … headers in the HTML output in order to generate a table of contents, like the one at the top of this post.

                                              Since I could’t find your script, here’s the one I’m using on my homepage. This perl script expects headings in the style <h2 id=foo>.

                                              #!/usr/bin/env perl
                                              
                                              print "<ul>\n";
                                              $depth = 2;
                                              while(<>) {
                                              	if (/<h([2-3]) +id=["']?(.+?)["']?>(.+?)<\/h\1>/) {
                                              		print " "x($1-2)."<ul style=\"padding:0 0 0 1em\">\n" if ($1 > $depth);
                                              		print " "x($1-2)."</ul>\n" if ($1 < $depth);
                                              		print " "x($1-2)."<li><a href=\"#$2\">$3</a>\n";
                                              		$depth = $1;
                                              	} elsif (/<h([2-3])>/) {
                                              		print STDERR "! No id attribute on line $.: $_";
                                              	}
                                              }
                                              print "</ul>\n";
                                              
                                              1. 5

                                                I plan to work on these things […] A “carrot” for Oil, i.e. a feature that existing shells don’t have. Ideas: [static analysis, app bundles, and crash reports]

                                                If you’re looking for ideas, here’s another one that might interest you: nestable string literals, a.k.a. tagged string delimiters, a.k.a. I don’t think this construct has an official name. It’s a rare language feature AFAICT, but solves an annoying and error-prone task that is especially common in shell: quoting, escaping, and multiple escaping.

                                                Examples of tagged string delimiters in other languages (I am aware of only two):

                                                • Lua’s long brackets let you write string literals (and multiline comments) as [[...]], [=[...]=], [==[…]==]`, and so forth – the number of equals signs in the opening delimiter is counted, and the string ends when the matching closing delimiter is found.

                                                    --[[ This comments out an assignment to my_lua_string
                                                    my_lua_string = [==[one [=[inner]=] two]==]
                                                    ]]
                                                  
                                                    -- This is a string delimited with long brackets, that contains several other closing delimiters that are ignored without needing escaping
                                                    [=[one ]==]'" two]=]
                                                    --> 'one ]==]'" two'
                                                  
                                                    -- Using long brackets with loadstring (Lua's `eval`):
                                                    f = loadstring([[i = i + "x"]])
                                                    i = 'a'
                                                    f()  -- i = 'ix'
                                                    f()  -- i = 'ixx'
                                                  
                                                • PostgreSQL’s dollar quoting:

                                                    $$Dianne's horse$$
                                                    $SomeTag$Dianne's horse$SomeTag$
                                                  
                                                    CREATE OR REPLACE
                                                        FUNCTION increment(i integer) RETURNS integer AS $myAddOne$
                                                            BEGIN
                                                                RETURN i + 1;
                                                            END;
                                                        $myAddOne$ LANGUAGE plpgsql;
                                                  
                                                • Heredocs don’t count, because you can’t write them inline.

                                                Ways tagged string delimiters would improve the OSH/shell experience:

                                                • Tagged string delimiters make it trivial to write any string literal without escaping the contents: you simply choose a delimiter that doesn’t occur in the string.
                                                • Tagged delimiters make it easy to nest commands with quoted string arguments inside the quoted string argument of a higher-level command: for example, cp 'my file with.spaces' /etc within sudo sh -c 'multiple; commands; cp "..."' within ssh 'multiple; commands; sudo sh -c "..."'.
                                                • Shell’s string-centric nature and interactive usage means is the context in which I frequently quote strings, or pass quoted shell code that contains its own quotes that need escaping, and so on. The example in the previous item is one I have encountered in real life, albeit only once. It would be good to get away from escaping, and wonderful to get away from double escaping.

                                                Sorry to dump such a long post on you (although turnabout is fair play :-P), but I thought you might be interested. For my part, I find your OSH project fascinating, and avidly read every post. Thank you for writing such good writeups!

                                                1. 5

                                                  Perl has nestable strings with q{} / qq{} / qx{} as well.

                                                  print q{foo q{bar}};
                                                  
                                                  1. 3

                                                    Yes I totally agree that shell’s string-centric nature means that this is one of the most important features! I often have HTML snippets in my shell scripts, and I see tons of config file snippets in shell scripts, like /etc/resolv.conf, etc. Not to mention Awk, Perl, and Python snippets.

                                                    I think of this feature as “multiline strings”. It will subsume here docs, and as you mention you can use one as an argument to a command.

                                                    It will replace all the variants of here docs: << EOF , << 'EOF' (quoted), <<-EOF (indented), etc.

                                                    I’m thinking using a variant on Python’s syntax:

                                                    # operator << takes a string literal, not a filename, like <<< in shell
                                                    cat << 'normal string' 
                                                    
                                                    cat << '''
                                                    $var is NOT expanded in 3 single quotes, equivalent to quoting 'EOF'
                                                    '''
                                                    
                                                    cat << """
                                                    $var is expanded in 3 double quotes, like unquoted EOF
                                                    """
                                                    

                                                    I have thought about the “tag” problem too. I originally had a proposal to have some sort of tag, but someone pointed out to me that it’s not necessary for multiple here docs on a line. You can just use the order of the here docs.

                                                    I guess I have never really had an issue with Python’s multiline strings – e.g. embedding a multiline string in a multiline string! The fact that there are two different types of quotes helps. But I’m open to adding that later if it’s a problem.

                                                    I plan to write a preview of Oil syntax, as requested on lobste.rs. So I’ll make sure to highlight this part. Unfortunately I have at least 2-3 posts to write before that, so it might not come for awhile.

                                                    There is also the issue of C escapes, e.g. $'\n' in shell.

                                                    Thanks for the feedback!

                                                    1. 1

                                                      multiline strings with interpolation and also trimming of leading indentation is super handy, the way nix does it is pretty fun to use.

                                                      1. 1

                                                        OK interesting, I didn’t know Nix did that. That’s pretty much what I expect Oil to have – the indentation of the closing quote is what you strip off of every line.

                                                        But ‘’ already means something in both shell and Oil, so it will be ‘’’ and “”” like Python, except that single and double mean what they already do in shell.

                                                        https://learnxinyminutes.com/docs/nix/

                                                  1. 7

                                                    In short, for those who can’t listen to a video right now: They punctured the floppy at a precise location, which causes writes to that location to fail. Then, in a few lines of assembly, check if the write succeeds and start messing with the pirates.

                                                    Quite neat, actually.

                                                    1. 1

                                                      The one thing I hate about programming language specific package managers is that they usually don’t set any standard for what qualifies. Anyone can upload packages and they aren’t vetted. There have been many types of weaknesses – form typo squatting attacks (from our /u/hanno IIRC), to reusing deleted package names just this week.

                                                      They also aren’t playing along with your distro’s package manager and often encourage fixed-version dependencies (and many dependencies), leading to windows-dll-hell type situations with many versions of the same library installed.

                                                      “But what if dependencies update and break my stuff?”

                                                      anyone seen fefe’s talk at 34c3 (german, but simultaneous translation available)? he talks about exactly these kind of antipatterns.

                                                      1. 2

                                                        man, sometimes I just feel like wanting to write a much-used npm package, just so that I can delete it and cause chaos. As a non-js dev, and a minimal user JavaScript in general, seeming this always gives me Schadenfreude.

                                                        1. 1

                                                          After left-pad it’s not possible to just remove a popular package, such request needs to go through the support first.

                                                          https://docs.npmjs.com/cli/unpublish

                                                          1. 4

                                                            I don’t understand why it’s possible to delete it in the first place. If you release a piece of code with a permissive enough license you’re accepting the fact that others can keep using that code forever and without any further permission from you. The worst you can do is to stop improving that code. So, why doesn’t npm exercise its right to keep using that piece of code?

                                                            1. 3

                                                              This is the stance on Rust’s crates.io:

                                                              Take care when publishing a crate, because a publish is permanent. The version can never be overwritten, and the code cannot be deleted.

                                                              I’m sure crates/cargo will encounter its own issues over time but it’s nice that this at least shouldn’t be one of them.

                                                            2. 4
                                                              1. write a package and spice it up with non-free and/or patent-encumbered code without license
                                                              2. publish on npm
                                                              3. wait (or help it) ’till your package becomes similarly important to left-pad
                                                              4. tip off / file a DMCA / etc. with npm
                                                              5. ???
                                                              6. Profit!1
                                                          1. 5

                                                            very reminiscent of Linus Neumann’s Trolldrossel (German for ‘troll throttle’): Depending on the amount of bad words in a given comment, the captcha fails regardless of the answer given. It was installed at a site providing comments for controversial german blogger Fefe when it was overwhelmed with racist, misogynistic and otherwise awful comments.

                                                            Here’s the 2013 talk about it, if you understand German.

                                                            1. 2

                                                              Hmmm, previous existing works make a patent attackable, no?

                                                              1. 4

                                                                Yep, it’d be existing prior art. In NZ you wouldn’t be able to patent this concept at all. They’ve banned software patents. The US really needs to do the same.

                                                                1. 2

                                                                  Australia needs to do so also.

                                                                2. 1

                                                                  Only if the existing work is implemented the same as each claim in the patent.

                                                              1. 2

                                                                You never make a case for what is the standard. Is your contention that there should be no such thing as a “standard” and that one should consider all probable browsers? What does that look like in practice? In my annual roadmap for 2018 major development projects, do I ignore PWA because it’s what Chrome is pushing or do I find a way of giving it 59% consideration?

                                                                1. 20

                                                                  Web standards are a thing that have existed for years.

                                                                  Unfortunately web developers jumping on the band wagon for “we only support X” is also a thing that has existed for years.

                                                                  1. 5

                                                                    I would contend that browser implementations have driven web innovation a lot more effectively than web standards agencies. Standards agencies gave us the wrong box model, the never-implemented CSS2, the dead end of XHTML. The web only started innovating again with the WhatWG takeover, which was effectively a coup where browser makers displaced the standards agency.

                                                                    Browsers implement features, websites use them, they get standardised once they’ve proven themselves in practice rather than before. That’s the model that works, and using new features that chrome (or anyone else) has implemented, as and when those new features are useful to you as a web designer, is part of that.

                                                                    1. 6

                                                                      Such questions/statements are weird. Do you, for example, give Firefox the same consideration as Chrome for German customers? http://gs.statcounter.com/browser-market-share/desktop/germany

                                                                      Note: NetMarketShare only gives you global statistics unpaid and hides others behind a paywall. I assume most companies don’t pay for that and don’t do proper research of their actual target audience.

                                                                      The question is a rather broad one: Do we, as an industry, want to support one of the biggest and most nosy software companies in taking over one of the crown jewels of the free web? The users client?

                                                                      Yes, that’s a hard question to answer day to day, when features have to be implemented and budgets are thin. It still has to be answered.

                                                                      We have more control over the situation then it might seem. This is how Firefox won the browser war back then: users recommending other users not to use the monopoly browser. Yes, you can totally ignore what Chrome is pushing for and deliver a great product.

                                                                      1. 0

                                                                        I don’t think Firefox ever won the browser war; at its peak it still had significantly lower marketshare than IE.

                                                                        1. 11

                                                                          Firefox never aimed for dominance, but for breaking dominance. Winning is not “getting to the highest market share”.

                                                                          Firefox also had multiple target markets where it was the dominant browser for a couple of years.

                                                                          This whole idea that you have to be on slot 1 in a market with multiple billions of users to be winning is absurd.

                                                                          1. -2

                                                                            Sounds like you are trying to redefine win to mean succeed.

                                                                            1. 5

                                                                              No.

                                                                    1. 1

                                                                      In the heat of this discussion I’ve also made a comment that was uncalled for. When you take a step back from the outrage (regarding a org close to many of us) you’ll see that no harm was intentioned (well meant != well done), no harm was done and we’ll get better processes out of that situation.

                                                                      To the Mozilla devs in here, shall any of you see this: I’m sorry for stirring the outrage and thereby also attacking your work.

                                                                      1. 26

                                                                        Another item onto the list of stupid, self-sabotaging ideas from Mozilla.

                                                                        • Pocket
                                                                        • Cliqz
                                                                        • Looking Glass
                                                                        • (Anything else I missed?)

                                                                        That said, I’m still a Firefox user, because after all, I still trust the Mozilla Foundation and Community more than the makers of the other browser vendors.

                                                                        1. 11

                                                                          Mozilla has it’s missteps, on the other hand, they are still better than the other Browser Vendors out there and I haven’t seen a viable Firefox Fork out there that works for me. Plus it seems the Looking Glass addon was inert unless specifically enabled by the user, so I don’t see the harm tbh.

                                                                          “Atleast [they are] the prettiest pile of shit.” ~ Some quote I heard somewhere

                                                                          1. 3

                                                                            I would add Mozilla Persona to this list, which was a great idea, but was mismanaged and shut down by Mozilla before it could do anything good.

                                                                            I pretty much lost my faith in Mozilla having any idea what it is doing at that point.

                                                                            1. 5

                                                                              Original Pocket introduction was mishandled, but since Mozilla owns and operates it now, integration with Firefox makes sense.

                                                                              1. 7

                                                                                is it open source now?

                                                                                1. 6

                                                                                  My understanding is, it’s not yet. It’s being worked on. I have no idea what kind of work it takes, but the intention is that it will be fully open sourced.

                                                                              2. 4

                                                                                You missed ‘Quantum.’ (The one where they broke their extension API for the sake of alleged performance).

                                                                                1. 45

                                                                                  That one I actually like; the performance is much better, and the memory leaks much fewer. Pre-quantum I was on the verge of switching to Chrome because of the performance gap and leaks.

                                                                                  1. 11

                                                                                    I agree. The browser engine is noticeably better - if only the software around it were also on the same level. Some lightweight browser like surf or midori should adopt it, instead of WebKit.

                                                                                    1. 1

                                                                                      WebKit is easy to adopt because WebKitGTK and QtWebKit (or whatever it’s called) are well supported and easy to use. And Chromium has CEF. (IIRC Servo is also implementing CEF.)

                                                                                      I don’t think current Gecko is easily embeddable into whatever.

                                                                                      Back in the day Camino on Mac OS was a Gecko browser with a custom Cocoa UI, but doing that today would be way too hard.

                                                                                      1. 2

                                                                                        I should clarify, I was talking about Servo. I don’t really thing there would be a point in using Gecko, since it will probably turn into a legacy project.

                                                                                        1. 2

                                                                                          It seems the other way to me? What they’re doing instead is slowly retrofitting pieces of Servo into Gecko piecemeal. (or at least, some kind of Rust equivalent to the C/C++/JS code being replaced) Servo would then be dead or explicitly turned into some staging ground for Gecko.

                                                                                  2. 21

                                                                                    I will go beyond alleging a performance improvement, I will attest to it. Surprisingly enough, the improvement includes Google properties such as Gmail and YouTube. They are both more responsive in Firefox now than Chromium or Chrome.
                                                                                    On the extension side, I do not use a large number. Those which I do, however, still function.

                                                                                    I freely admit that the plural of anecdote is not “data”, but I would feel remiss not to share how impressed I am with Quantum. Pocket has always annoyed me, so I certainly do not see Mozilla’s actions as unimpeachable and am only giving them credit for Quantum because I feel they deserve it.

                                                                                    1. 8

                                                                                      Based on this, Quantum was a balanced update where the team had do sacrifice the old extension API. Also, it’s not that they’ve removed extensions completely. (And no, I’m not talking about you Looking Glass)

                                                                                    2. 8

                                                                                      Quantum is great. uBlock Origin and uMatrix now work on Firefox for Android just as well as on desktop.

                                                                                      1. 3

                                                                                        ublock origin worked on firefox android before firefox quantum no ?

                                                                                        1. 1

                                                                                          IIRC it worked but the UI was somewhat different. Now uMatrix is also available, and both extensions have UI that looks practically identical to the desktop versions.