1. 11

    The class names are long because they do a lot of things.

    “With Tailwind, you’re forced to interpret semantics on the fly”

    With css, you’re forced to flip to through some other file to get it. If you don’t see the tailwind code as obviously better, I would still say try it, and if you’re not convinced, don’t use it I guess, but nothing written there at all convinces me otherwise.

    Point 3 is absurd, the docs immediately explain how to set up purging so that unused class names. My purged css is like 4.5kb and my unpurged css is like 8MB.

    1. 4

      Yep, I thought that was a pretty disingenuous point. Purging excess CSS is talked about so much, even on the homepage:

      It’s tiny in production.

      Tailwind automatically removes all unused CSS when building for production, which means your final CSS bundle is the smallest it could possibly be. In fact, most Tailwind projects ship less than 10KB of CSS to the client.

      1. 8

        One problem with the “we don’t care about the size because our custom minifier will make it small” is that it adds yet another part to the ridiculously fragile rube-goldberg machine that is npm.

        1. 3

          Also, may I introduce you to Windi CSS, that doesn’t even generate unused tailwind classes in the first place :) ! https://github.com/windicss/windicss

          1. 1

            Or twind, which doesn’t even require you to generate a CSS file in the first place. :-)

            If you use the shim that is: https://twind.dev/docs/modules/twind_shim.html

      1. 3

        Are there other examples of SQLite being used as a website backend database in production? What kind of scale could you reach with this approach? And what would be the limiting resource?

        1. 10

          Expensify was based exclusively on sqlite for a long time, then they created a whole distributed database thing on top of it.

          1. 7

            Clojars used SQLite for a good 10 years or so, only recently moving away to Postgres for ease of redeployment and disaster recovery. The asset serving was just static assets, but the website and deployments ran against SQLite pretty well.

            1. 3

              If I remember correctly, the trouble that Clojars ran into had more to do with the quality of the JVM-based bindings to SQLite than they did with SQLite itself, at least during the portion of time that I was involved with the project.

              1. 2

                Yeah, looking back at the issues, “pretty well” is maybe a little bit generous. There were definitely settings available later on which would have helped the issues we were faxing around locking.

            2. 4

              I can’t remember whom but at least one of the well funded dynamoDB style distributed database-y products from the mid 10s used it as the storage layer.

              So all the novel stuff that was being done with data was the communication and synchronisation over the network, and then for persistence on individual nodes they used sqlite instead of reinventing the wheel.

              1. 6

                That was FoundationDB, purchased by Apple in 2013, then gutted, and then returned as open-source in 2018. I’m a bit annoyed, because it was headed to be CockroachDB half a decade earlier, and was taken off the market with very little warning.

                1. 1

                  Thanks!

              2. 3

                The sqlite website claims to run entirely on sqlite.

                They also have this page, though most of those aren’t websites: https://sqlite.com/mostdeployed.html

                1. 3

                  You probably will get really fast performance for read-only operations. The overhead of client/server and network stack could be more than10x times of function calls from same address space. The only real limitation might be single server, since you cannot really efficiently scale sqlite beyond single system. But when you reach that scale, you usually needs much more than sqlite.

                1. 4

                  Very nefarious! I in general find these CI pipelines to be excessively wasteful. Is there a way to turn them on only when needed?

                  1. 7

                    You can set rules in most CI systems to filter by branch name, tag, event type, etc. to limit when workflows run. You can also often trigger CI manually, e.g. workflow_dispatch on GitHub Actions.

                    Disclaimer: GitHub employee, but not on Actions.

                  1. 11

                    A dark mode did exist but it was reverted:

                    https://github.com/lobsters/lobsters/pull/823 https://github.com/lobsters/lobsters/commit/65b0b3422d71432db4d3b78f15fd46133a120caf .

                    Firefox support is mentioned but Chrom{e,ium} isn’t any better - in the name of intuitive user experience, no theme selection UI is exposed on the desktop builds, unlike on mobile builds.

                    The irc channel is a good place to talk about this kind of stuff: https://lobste.rs/chat

                    1. 2

                      Why was it reverted? What needs to happen for it to come back?

                      1. 8

                        Firefox support is half-baked. There’s no user or devtool UI to toggle between states, inspecting an element always shows the style for ::selection instead of the element, and it lists the name of a color variable with no way to see the value of the variable or where it is set. Punting until it’s debuggable.

                        1. 8

                          There is now a feature flagged button for toggling this in Firefox devtools, and it’s on track for being enabled by default. https://stackoverflow.com/a/60481298

                          1. 8

                            Thanks for quoting this. I just wanted to post to confirm this is the latest state on it. Someone volunteered to do it, the tooling isn’t quite ready, but it’s a popular request and I look forward to merging it when it’s maintainable.

                            Though I don’t look forward to another round of the bikeshedding that immediately popped up in the few hours this was live, and would appreciate it if folks with strong opinions on the exact colors of dark mode express them on the PR before merge. And obviously, the easiest way to see your opinion reflected on the site is to create the PR and help get it over the line. :)

                          2. 2

                            IIRC there was a lot of bike shedding on the colors and also there’s browser support stuff too.

                            To be honest I think part of this is that in the grand scheme of things there are more time sensitive/higher payoff work that can go into lobsters for the amount of effort dark mode was becoming.

                            1. 3

                              I threw the dark mode together in a few hours, wasn’t a big deal to be honest.

                          3. 2

                            On that note, are there any alternate user stylesheets that folks have made that they would like to share? Dark Mode or otherwise.

                            1. 5

                              darkreader works but the colorscheme is kinda meh. I turn it on at night.

                              1. 1

                                You can load the dark-mode CSS I wrote for lobste.rs into the Stylus extension: https://pastebin.com/raw/tQfN73az

                                1. 1

                                  What plugin do you use for alt style sheets?

                                  1. 1

                                    I use Stylus myself

                                    1. 1

                                      You can use greasemonkey to inject the css content at certain nodes or on page load, I am not aware of one someone has created for dark mode in lobste.rs. If someone has created the css I would be happy to make a greasemonkey script for it.

                                  2. 2

                                    It’s a pity the link to the chat is not on the top line of the page. I only now find about it :/

                                  1. 9

                                    The section “What can we do?” leaves out the option of leaving GitHub. The only way to disable or limit pull requests while keeping the repo active is the emergency measures which only work for 24 hours, and that’s a product decision aimed at keeping people on the platform and exploit network effects, not a service for their users.

                                    1. 5

                                      This is an excellent market-based solution to this problem. Any git host that has a ToS forbidding this kind of behavior should be reaching out to maintainers now to help them move their repos over.

                                      1. 9

                                        When moving, I would strongly suggest people to take this opportunity to consider self-hosting, instead. Hosting your own means being master of your own castle, where you get to decide the ToS.

                                        1. 3

                                          I’m completely sure that Microsoft wouldn’t do anything with such spammers and in fact - they might not want to. Actually, it’s sort of profitable to them to gain new users and additional traffic on GitHub, and the quality issues are absolutely not their problems because that’s someone else’s repositories :)

                                        2. 4

                                          Hi @pgeorgi, my team at GitHub has just shipped a change to Temporary interaction limits which lets you set them for up to six months.

                                          We had started this work prior to Hacktoberfest and it wasn’t on our minds as we were planning it, but the timing happened to line up very well to release this feature today.

                                          1. 3

                                            Sorry to hijack this thread, but I have a related query.

                                            Is there any reason (technical or otherwise) to not give an option to disable Pull Requests? Even outside of spam considerations, I have repos that host code snippets for my ebooks, for which I do not wish to get any PR at all. I do not mind using this “interaction limit” feature every 6 months, but it doesn’t currently have an option to restrict only PRs.

                                            1. 5

                                              Not a hijack at all, this is a great question. Disabling Pull Requests is definitely something we’ve heard from maintainers before. I can’t make any promises, but it’s certainly an interesting idea.

                                              For your ebook repos, do you still want to get Issues opened, just not PRs?

                                              1. 3

                                                Thank you for listening to feedback :)

                                                For your ebook repos, do you still want to get Issues opened, just not PRs?

                                                Yes, issues will provide a way for readers to report typos/bugs/suggestions/etc. I encourage that in my README as well as within the ebook content - which seems to work as I have gotten helpful issues in the past on these repos.

                                            2. 2

                                              Is there a reason interaction limits are limited to six months and can’t be set indefinitely? Some projects would like to permanently disable interaction.

                                              1. 2

                                                Interaction limits were introduced in 2017 as a way to tackle the specific problem of heated discussions, brigading of issue trackers, and targeted harassment. It’s a very blunt tool as it prevents all of the interactions in a repository.

                                                When we’ve talked to maintainers about limiting interactions permanently, if they wanted to limit interactions at all, it was usually having control over certain kinds of interactions, e.g. some people can open issues, but anyone can still open a PR. Do you have any examples of projects that would like to permanently disable interaction?

                                                1. 4

                                                  A lot of projects use GitHub just for hosting/mirroring their repo, such as the Linux kernel, OpenBSD, FreeBSD, NetBSD, SQLite, LLVM, GCC, Android Open Source Project, Emacs, LibreOffice, MediaWiki, Lua, JGit, Wayland, zsh, etc. Most don’t want pull requests because they use another method like email or Gerrit for contribution, or because they don’t accept contributions at all in the case of SQLite. I assume most of these projects would want to disable comments on commits and other interactions, because in my experience those comments on these projects are noise.

                                                  In my case, I want to host repos on another host but have a mirror of the repo on GitHub as a fallback/convenience, with just the repository itself, no issues/PRs/comments/etc. I also want to be able to host repos that I don’t accept any contribution to (i.e. a personal dotfiles repo). I could re-enable interaction limits on every repo every six months, but that’s much less convenient than being able to set it permanently.

                                                  1. 1

                                                    TZ info does this too, and the maintainer prefers the mailing list:

                                                    Thanks for bringing that to the mailing list (if I could shut off GitHub pull requests I would).

                                                    (my emphasis)

                                            3. 3

                                              Many of my personal projects are on Sourcehut for several reasons. This is another one to add to the list.

                                            1. 21

                                              The rules seem to be very aware of spammy PR.

                                              However at the same time, it’s not about landing 4 PR during october, it’s about just opening 4 that doesn’t get flagged as invalid. So the mechanic is broken.

                                              1. 20

                                                So the mechanic is broken.

                                                Indeed. Quoting the rules:

                                                The pull request must contain commits you made yourself. If a maintainer reports your pull request as spam, it will not be counted toward your participation in Hacktoberfest. If a maintainer reports behavior that’s not in line with the project’s code of conduct, you will be ineligible to participate.

                                                (emphasis added)

                                                So this just adds responsibility on maintainers, who have in no ways accepted to opt-in on this stunt but are expected to do basic quality control for a stupid marketing contest.

                                                Note that there is zero consequences for a GH user to engage in spamming - if at least 3 spam notifications within 24 hours led to a suspension of PR/commenting privileges across all projects, this would cut down on the very worst behavior.

                                                I’m a DO customer but this is something I’m considering changing. Whoever thought this was a good idea should be fired.

                                                1. 13

                                                  hm, perhaps a simple way to get rid of this spam would be for DO to count spam reports as negative points. That means you would need five non-spam contributions if you got marked as spam by one project, six if you got marked by two etc. The more spam you produce, the more proper commits you’d have to make. I don’t see any obvious flaws with this simple fix, but then I just thought of it.

                                                  1. 3

                                                    This might help next year (if this excrescence is still scheduled then) but it will not help much right now. Of course, expecting GitHub to roll out a solution similar to this on short notice.

                                                    In fact, it wouldn’t surprise me if this project was cooked up between Digital Ocean and GitHub themselves to boost “engagement”. Shifting the responsibility and work onto unpaid maintainers / moderators is after all how Reddit does it, while the parent company reaps the benefits.

                                                    GitHub is a social network, and the price its users pay for its functionality is being treated as a commodity by large corporations eager to mine their contributions.

                                                    1. 4

                                                      Well, if you want a solution right now, the easiest way would be to migrate away from GitHub. That should send quite a strong signal if enough large projects do this.

                                                      1. 3

                                                        I’ve moved all but a handful of repos off as of a few months ago; maybe this will be the push I need to get the rest off.

                                                        But this is supposed to be a yearly occurrence, and I’ve never noticed this before. Did the rules change this year to make it worse?

                                                        1. 3

                                                          I thought that the rules used to be that you had to get a merged PR, though I’m not sure about that?

                                                          I think one of the reasons this year was a lot worse than previous years was this video telling people “how they can earn free swag online”. CodeWithHarry told people to search for repos with “website” in the name and how to make a PR to add “an amazing project” to the README title.

                                                          1. 2

                                                            They mentioned in their update blog post (which is linked in another comment here) that they’ve been doing more marketing on Facebook, Twitter and YouTube (of all places). Probably this attracts more attention from trolls or people who don’t have any real affinity with free software and would just like a “hacker” t-shirt to look cool.

                                                            1. 1

                                                              I think we’ve been unlucky with leiningen, as it didn’t even drive a meaningful amount of contributions at all. I think I accidentally nearly fulfilled my quote one year because I had to redo some PR…

                                                            2. 1

                                                              Indeed, and I’ve mentioned that in another comment in this thread.

                                                              I do see some positive comments about this in the HN discussion, maybe from projects big enough to have what amounts to a “social media manager” on staff.

                                                        2. 6

                                                          Note that there is zero consequences for a GH user to engage in spamming - if at least 3 spam notifications within 24 hours led to a suspension of PR/commenting privileges across all projects, this would cut down on the very worst behavior.

                                                          I’ve reported users to GitHub for spamming in the past (we saw some obviously spam submissions, replacing files in the repo with things that looked like they were machine generated and were completely unrelated, accompanied by incomprehensible commit messages). I included links to other PRs that they’d sent to other projects with the same structure. GitHub disabled their account pretty quickly. Note, you need to hit the ‘report content’ menu item in the ... menu next to the PR, not just add a spam tag.

                                                          These are a bit more borderline, they could (if you were very generous) be assumed to be good faith attempts to improve things by someone with very limited understanding of the projects and ecosystem.

                                                          Of course, once a GitHub account has been removed, there’s nothing stopping these spammers from registering for a new one with a different email address. Prosecuting Digital Ocean for buying a DDoS attack against GitHub and its users seems like a better approach to solving this problem.

                                                          1. 1

                                                            Of course, once a GitHub account has been removed, there’s nothing stopping these spammers from registering for a new one with a different email address.

                                                            No, this would not help with dedicated griefers, but it would help if someone is trying to tie their GH id to a campaign to get a t-shirt. It would at least make those people pause before submitting a 1-line cosmetic change to a bunch of repos, thereby aligning incentives better.

                                                            Prosecuting Digital Ocean for buying a DDoS attack against GitHub and its users seems like a better approach to solving this problem.

                                                            Agree, but who shall be the “prosecutor”? I’m guessing GH is complicit in this scheme, and throwing a subset of its users (maintainers) under the bus. I actually think loudly complaining on the internet is the best way forward ;)

                                                            1. 1

                                                              Agree, but who shall be the “prosecutor”?

                                                              Maybe some foundation like the SFC could start a class action law suit representing all free software developers.

                                                              1. 14

                                                                I doubt Digital Ocean had any ill intent with this; it seems they just wanted to set up a “fun hackathon” thing as a PR stunt and underestimated the kind of ways people would abuse that, and now they’re caught flat-footed.

                                                                Years ago we did a flea market with the local scout group to raise money for some long overdue repairs to our building we didn’t have the money for. We spread flyers in the neighbourhood and picked up stuff people donated to us during a few evenings; we actually got a lot of “free stuff” to sell and the response was great.

                                                                We had done some other fund-raising stuff over the years, but this was the first time we had done anything like a flea market.

                                                                On the day of the actual flea market there was already a massive crowd an hour before we opened. We were a bit taken aback, but good I guess? When we opened the gates at 10am we were completely taken by surprise: people would just rush in, grab the first expensively looking thing they’d see, and just run out again. Not just one or two people; an entire crowd of them. Most people (myself included) were so taken by surprise that this was actually happening that we didn’t quite know what to do, and we just stood there with our mouths open and “let it happen”, so to speak.

                                                                During the entire day person upon person would try to cheat you. Stuff like “1 euro for that is okay?”, “Alright”, proceeds to grab something much more expensive 1 metre from what he pointed at and gives you 1 euro. “Wait, that’s not what you pointed at!”, makes an entire fuss. This kind of stuff happened many many times throughout the day.

                                                                I loved being a scout leader and was generally one of the first to volunteer if something needed to be done if I had the time. But a flea market? I never did that again. It was well above my twat tolerance limit.

                                                                My point of this story is: if you’re a normal, well-intentioned, good person then it can sometimes be hard to imagine how people are going to abuse things. Perhaps we could have expected these kind of things, and in hindsight it all seems kind of obvious people were going to do that, but none of the >30 people involved expected any of this. We did it again the next year, and from I heard things went better (but I wasn’t there myself).

                                                                I’m not sure how fair it is to sue DigitalOcean; I suppose it will depend on how they will respond to this in the coming days/weeks, and if they’ll do the exact same thing again next year. But for now, it just seems they’re taken aback just as much as we are.

                                                              2. 1

                                                                Agree, but who shall be the “prosecutor”?

                                                                At least in the UK, this is a criminal offense and so reporting it to the police’s national cybercrime division is the right approach. They are always looking for easy wins and a place where a company has put their offer for people to launch a DDoS on their web site is a very low-effort case to make from an evidence-gathering perspective.

                                                            2. 5

                                                              The pull request must contain commits you made yourself. If a maintainer reports your pull request as spam, it will not be counted toward your participation in Hacktoberfest. If a maintainer reports behavior that’s not in line with the project’s code of conduct, you will be ineligible to participate.

                                                              Why does spam (universally and uncontroversially abhorred) count for +0 on your PR count, while CoC violations (which aren’t universally adopted, for a variety of reasons) attract a ban?

                                                            3. 4

                                                              You could probably argue that they are paying people to launch a distributed denial of service attack, which is a clear violation of the Computer Misuse Act and carries a potential prison sentence.

                                                            1. 13

                                                              Huh? For 10 users you need a separate database and for 100 users you need 2 web servers??? I’m not sure if those numbers are meant to be taken literaly, but they’re off by orders of magnitude.

                                                              We’re going to take our new photo sharing website, Graminsta, from 1 to 100k users.

                                                              Yeah this seems totally wrong. I think back in the day imgur did this all on one box, and that’s how they were able to economically provide free photo hosting for so long (it seems to have gone south now, but in the early days it was very good).

                                                              1. 8

                                                                At $big_streaming_company we got to ~1M users with a few servers before needing to do anything clever.

                                                                1. 4

                                                                  Totally agreed – though it does depend a bit on what he means by “N users”. Is it “N users who are using your site flat-out at the same time” or “N users in your database, but only 1 or 2 use the site once a month or so”. Those are very different, but even for the first option I suspect he’s still out by an order of magnitude.

                                                                  At a previous company we didn’t really have users, but we handled millions of page views on a single, relatively small database and a monolithic application with about 10 server nodes. We could handle about 300 requests per second if I recall correctly.

                                                                  1. 3

                                                                    I think it really depends on what you’re doing.

                                                                    At home, I just made https://droid.cafe/starlink. It’s running off a free f1-micro instance from google. Each page load takes roughly 40 microseconds of cpu time and is just serving up a few static files. Eyeballing it I think I could probably get rid of cloudflare (which I added out of curiosity not necessity) and still handle more than 10m daily users (computers are really fast these days). By upgrading to a faster instance, and minimizing the html/css/js, I bet I could push that to well over a billion a day. Of course at those scales I’d be paying a lot for geocoding services, but it would be 1 server managing to serve a webpage to most of the world every day.

                                                                    At work I don’t know that anyone has counted, but I bet we have roughly 1 production server per user (user defined as someone who directly interacts with our apps), that’s because each of our users gives our servers a lot of work to do, and our servers provide that users company a lot of value.

                                                                    Anyways, the real point is to not focus on the numbers.

                                                                    1. 2

                                                                      Yeah, we’ve got a particularly slow rails app serving 6 million users/day. It runs on 6 AWS instances, but we could just buy a server 4x or 8x bigger and skip the load balancing.

                                                                      1. 1

                                                                        At the bottom of the article it mentions:

                                                                        This post was inspired by one of my favorite posts on High Scalability.

                                                                        If you read the High Scalability post, you can see that a lot of the numbers given were ranges, not hard limits. In “Scaling to 100k Users”, the headings are:

                                                                        • 1 User: 1 Machine
                                                                        • 10 Users: Split out the Database Layer
                                                                        • 100 Users: Split Out the Clients
                                                                        • 1,000 Users: Add a Load Balancer.
                                                                        • 10,000 Users: CDN
                                                                        • 100,000 Users: Scaling the Data Layer - caching, read replicas

                                                                        High Scalability’s article has:

                                                                        • 1 User - 1 machine
                                                                        • Users > 10 - Separate DB and app server
                                                                        • Users > 100 - Store data on RDS
                                                                        • Users > 1000 - Elastic Load Balancer with 2 instances , multi AZ for app servers, standby database in another AZ
                                                                        • Users > 10,000s - 100,000s - Read replica, CDN, maybe caching, autoscaling
                                                                        • Users > 500,000+ - Autoscaling groups, caching, monitoring, automation, decouple infrastructure, maybe Service Oriented Architecture (SOA)
                                                                        • Users > 1,000,000+ - Requires Multi-AZ, Load balancing between tiers, SOA, S3+CloudFront for static assets, caching in front of DB.
                                                                        • Users > 10,000,000+ - Data partitioning/sharding, moving some data to specialised DBs
                                                                        • Users > 11 Million - More SOA, Multi-region, deep analysis of entire stack.

                                                                        If you read Scaling to 100k Users with a > instead of an = then it is slightly more understandable (though splitting out the clients at 100 users doesn’t make a lot of sense to me).

                                                                        1. 6

                                                                          Right now - today - you can comfortably serve > 11 million users off one server in a good colo.

                                                                          There are smaller systems with decade+ uptime using this approach.

                                                                          IMO most of these practices are about altering your risk profile rather than your performance profile (which is also important!). The risk profile of a single server in a single DC is unacceptable for many, many businesses.

                                                                      1. 3

                                                                        This announcement seemed particularly off-colour for the Software Freedom Conservancy. I read about it in their email announcement, sent by Deb Nicholson. From the SFC email:

                                                                        After much collaborative discussion between Conservancy and Clojars, we have agreed that the newer initiatives and upcoming plans for Clojars belong in a new independent trade association which provides ways for for-profit companies to join together to fund and influence important open source work and also have direct control over their assets and operations to accomplish this work with their own timescale and procedures. We have thus encouraged and advised the Clojars community as they created the Clojurists Together Foundation.

                                                                        However, their technical fellow Bradley Kuhn tends to be down on trade association “foundations”. In a post about the Linux Foundation community bridge:

                                                                        The second difference is that LF is not a charity, but a trade association — designed to serve the common business interest of its paid members, who control its Board of Directors. This means that donations made to projects through their system will not be tax-deductible in the USA, and that the money can be used in ways that do not necessarily benefit the public good. For some projects, this may well be an advantage: not all FOSS projects operate in the public good. We believe charitable commitment remains a huge benefit of joining a fiscal sponsor like Conservancy, FSF, GF, or SPI. While charitable affiliation means there are more constraints on how projects can spend their funds, as the projects must show that their spending serves the public benefit, we believe that such constraints are most valuable. Legal requirements that assure behavior of the organization always benefits the general public are a good thing. However, some projects may indeed prefer to serve the common business interest of LF’s member companies rather than the public good, but projects should note such benefit to the common business interest is mandatory on this platform — it’s explicitly unauthorized to use LF’s platform to engage in activities in conflict with LF’s trade association status).

                                                                        And in a post about the launch of the Node Foundation, “Trade Foundations are Never Neutral”:

                                                                        Meanwhile, I’ve spent years pointing out that what corporate form you chose matters. In the USA, if you pick a 501(c)(6) trade association (like Linux Foundation), the result is not a neutral non-profit home. Rather, a trade association simply promotes the interest of the for-profit businesses that control it. Such organizations don’t have the community interests at heart, but rather the interests of the for-profit corporate masters who control the Board of Directors. Sadly, most people tend to think that if you put the word “Foundation” in the name0, you magically get a neutral home and open governance.

                                                                        Fortunately for these trade associations, they hide behind the far-too-general term non-profit, and act as if all non-profits are equal. Why do trade association representatives and companies ignore the differences between charities and trade associations? Because they don’t want you to know the real story.

                                                                        Obviously the official announcement of the new trade-association-as-Foundation is going to be upbeat, it would be unpolitic to do otherwise. However I got the strong impression that rather than listening to the words I should be listening to the morse code they tapped out on the arm of the chair they’re tied to. The subtext is almost literally “we realised that we don’t want to be forced to act in the public interest, we want to be forced to act in the interest of our sponsors”.

                                                                        1. 3

                                                                          Hey leeg, I’m the founder of Clojurists Together, secretary, and treasurer. You raise quite a few different points which I want to address, but most importantly I’d like to push back on this:

                                                                          However I got the strong impression that rather than listening to the words I should be listening to the morse code they tapped out on the arm of the chair they’re tied to. The subtext is almost literally “we realised that we don’t want to be forced to act in the public interest, we want to be forced to act in the interest of our sponsors”.

                                                                          Let me state unequivocally that we are not leaving the SFC because we want to act more in the interest of our corporate members. We have never had any of our members ask for any kind of undue influence over our actions. We send quarterly surveys to all members to hear from everyone. We have the same board and election structure as a trade association as we did under Conservancy: we don’t have any classes of board seats for company members, and every member gets one ballot (ranked choice voting) for board elections, whether they are a developer giving $5/month or a company giving $1,000/month.

                                                                          After much collaborative discussion between Conservancy and Clojars, we have agreed that the newer initiatives and upcoming plans for Clojars belong in a new independent trade association which provides ways for for-profit companies to join together to fund and influence important open source work and also have direct control over their assets and operations to accomplish this work with their own timescale and procedures. We have thus encouraged and advised the Clojars community as they created the Clojurists Together Foundation.

                                                                          I’m not sure I agree with all of this framing. We are leaving the SFC so that we can offer different kinds of grants, so that we can accept payments via Stripe, and so that we can turn around contracts and payments quickly to the projects we fund. We haven’t had any discussions about for-profit companies influencing the work that we do. “direct control over their assets and operations to accomplish this work with their own timescale and procedures” is accurate. The SFC required review and approval over all contracts that we gave to projects as part of maintaining their 501(c)3 status. This is a reasonable thing to ask for, but could take some time depending on the SFC workload. They also reimbursed payments on a NET-30 schedule which is again reasonable but meant that payments were slower.

                                                                          Ultimately Clojurists Together as a grant-making organisation wasn’t a good fit for Conservancy as we grew and wanted to offer more grants. Every quarter we asked the SFC to do a ton of work to review new projects and onboard new people to pay. As a trade association, we will be able to reduce context switching by having one organisation select a project, write the contract, approve the worklogs, and make the payments.

                                                                          Trade associations vs charitable organisations

                                                                          I’ve been meaning to write an article about this, but this can serve as a first draft. When we were looking to leave the SFC we looked at lots of options including joining Open Collective, Community Bridge, forming our own 501(c)3, and forming our own 501(c)6.

                                                                          501(c)3 pros:

                                                                          • Charitable mission is enshrined in the organisation
                                                                          • Donations from any business or individual in the US are tax deductible
                                                                          • Being a charity comes with a set of expectations which means companies are less likely to expect certain things from you

                                                                          501(c)3 cons:

                                                                          • Forming a 501(c)3 is time-consuming, expensive, and difficult. It took us a few months to get a determination from the IRS to be approved as a 501(c)6. Our lawyer said that 501(c)3’s can take on the order of years to get a determination.
                                                                          • There is a high overhead to running a 501(c)3.
                                                                          • It is not always clear whether payments to a 501(c)3 are tax deductible if you are not a US tax resident. Countries generally don’t allow you to deduct charitable donations to charities in other countries, though you could claim the donation as a business expense.

                                                                          501(c)6 pros:

                                                                          • Relatively easy to form and run a trade association
                                                                          • Membership dues to trade associations are generally tax deductible business expenses by individuals and companies worldwide, as long as you use Clojure as part of your business (not tax advice, just what we’ve seen in general).

                                                                          501(c)3 cons:

                                                                          • Trade associations can be subject to undue corporate influence, depending on how the bylaws and board are structured.
                                                                          • Trade association rules are more lax than charities, depending on your point of view, you may not like that trade associations have less oversight in the activities they undertake.

                                                                          I’d agree with Bradley that there can be problems with a trade association foundation. However I don’t think that all trade associations foundations are problematic, though different people may disagree on that point.

                                                                          1. 3

                                                                            Thanks, that’s useful additional information beyond what was in the announcement. I appreciate you taking the time to explain it, which you didn’t need to do, and happy to hear that you’ll continue to support the community.

                                                                            1. 2

                                                                              Trade associations can be subject to undue corporate influence, depending on how the bylaws and board are structured.

                                                                              This is key here - the Open Source Collective is a 501c6 and its members are the open source projects themselves, organized as collectives. So it’s not true that c6s always serve corporate owners that control the board, it depends on how you define who your members are.

                                                                              If there’s interest, I can share the OSC 1024 filing.

                                                                          1. 6

                                                                            I’m mostly sharing this to hear what other people’s practices are. I used the word “Github” in the title, obviously this technique applies anywhere you’re using git but the way it’s surfaced in your host’s UI will change. ETA: I since learned github co-author trailers, do people use this? Do you have porcelain for automating it?

                                                                            1. 3

                                                                              We use github co-authors, but our “automation” is pretty low-tech: just have a git commit template that has every team member’s name commented out for easy inclusion. It seems to be working well for a small ~6 person team.

                                                                              1. 3

                                                                                We use co-author trailers at work and they work well. I don’t use them often enough to need any automation for it, though I like jeffh’s idea of commit templates.

                                                                                Magit has support for inserting co-authored-by based on existing committers in the log: https://mobile.twitter.com/iLemming/status/1221687084013899777, https://github.com/magit/magit/blob/master/lisp/git-commit.el

                                                                              1. 6

                                                                                There was a great talk at Strange Loop this year about this exact idea: How to teach programming (and other things) by Felienne Hermans. In it she described various studies that she and others had undertaken the most effective methods for learning in general, and learning programming in particular. There are lots of great studies and meta-studies discusses but my favourite was one that compared effectiveness of students:

                                                                                1. Reading and writing code to solve a problem
                                                                                2. Reading and writing code to solve a problem and then reading through an experts solution with an explanation
                                                                                3. Just reading through an expert solution with an explanation.

                                                                                Teachers much preferred the first method but the second and third were equally effective!

                                                                                1. 2

                                                                                  Congratulations! I’ve been a long-time admirer of Faktory from afar.

                                                                                  It looks like the Docker registry is currently unprotected? Also, I think these docs on Enterprise Installation could be updated to use the new registry?

                                                                                  1. 2

                                                                                    I verified it’s auth protected if you go through the standard docker pull interface. If you want to pull the binary directly, that might work until you learn you need a license file too. :-D Thanks for the heads up.

                                                                                  1. 1

                                                                                    Could someone explain to me why/how Oracle is making this ridiculously magical thing, GraalVM, licensed under GPL? As in, where/how do they expect to profit/swindle the community later?

                                                                                    (Disclosure: I am biased against Oracle since SCO, Java API “copyright”, etc.)

                                                                                    1. 5

                                                                                      There are two versions of GraalVM, community edition (CE) and enterprise edition (EE). Some features of Graal are restricted to EE, for example Profile Guided Optimizations and heap dumps for native-image. You can get a lot out of CE, but it is likely that Oracle will continue to keep the most advanced optimisations and operability features for EE to encourage some people to upgrade.

                                                                                      1. 2

                                                                                        It looks like they have a commercial version of GraalVM that supports things that aren’t available in the open source version. I’m definitely biased against Oracle as well based on their track record, but so far they haven’t done anything nefarious here.

                                                                                      1. 4

                                                                                        Is this a common use of the word “manifesto”? Or am I right to think it should not be tolerated?

                                                                                        1. 22

                                                                                          Or am I right to think it should not be tolerated?

                                                                                          You seem to have strong opinions on this topic. Perhaps you should release a document describing your reasoning and the rules you propose for future usage of the word. ;)

                                                                                          1. 10

                                                                                            “How to Write a Manifesto: A Manifesto”.

                                                                                            1. 1

                                                                                              If I did maybe I would

                                                                                            2. 10

                                                                                              I think this is something the Swift community does for large overarching proposals. There are several other manifestos in the docs: ABI Stability Manifesto, Generics Manifesto, Ownership Manifesto, String Manifesto.

                                                                                              1. 8

                                                                                                Gah that makes me cringe.

                                                                                              2. 6

                                                                                                Wikipedia sez:

                                                                                                A manifesto is a published declaration of the intentions, motives, or views of the issuer, be it an individual, group, political party or government.

                                                                                                1. 3

                                                                                                  Yeah I don’t get it (nor the point of the software itself tbh), isn’t this just a language extension / library proposal?

                                                                                                  1. 3

                                                                                                    Is this a discussion to have here, where we can do nothing about it, or as an issue in the repository, where:

                                                                                                    1. The people arguably most familiar with the process of doing things in Swift will respond
                                                                                                    2. The people arguable most likely to be able to initiate some change in Swift will (hopefully) listen
                                                                                                    3. We don’t end up with 13 of the 14 comments in this thread being about the least interesting part of this submission; a single word in the title.
                                                                                                    1. 1

                                                                                                      My two cents, a 15th commentary ill at ease with this word:

                                                                                                      Personally, and maybe for the other 13/14 who comments you talk about, the word Manifesto was entry point for reading the article.

                                                                                                      The 3 Manifestos I know of in programming are:

                                                                                                      • The Agile Manifesto
                                                                                                      • The Software Crafsmanship Manifesto
                                                                                                      • The Test Driven Development Manifesto (not sure it’s been published though, it was written in a SoCraTes UK conference)

                                                                                                      The 4th Manifesto I know of, is the Manifesto of the Communist Party written by Marx and Engels in the years 1850’s I think. There are probably numerous other Manifesto I don’t know of.

                                                                                                      Contrarily to your opinion about the “least interesting point”, I think that the philosophical content of those Manifesto is their “Raison d’Etre”, the reason why they are Manifestos and why they are refered as such. (Whether we agree or not on the content).

                                                                                                      The fact there already exists a library in Haskell (as puffnfesh noticed) that does that kind of stuff, and that there is no mention about it in the Differentiable Manifesto is also to be noticed.

                                                                                                      One of the other comments says that it’s a habit in the swift community to call important stuffs Manifesto… So…

                                                                                                      1. 1

                                                                                                        The question I raised was whether this is a nonstandard and misleading usage of the word from the standpoint of the wider software community, so I believe it is a discussion to have here.

                                                                                                        If someone with a GitHub account feels there is a consensus that this usage of “manifesto” is wrong, and cares enough about the Swift community to raise the issue with them, they can certainly do that.

                                                                                                        1. 2

                                                                                                          That’s closer to what I think of as a manifesto, but this Swift proposal is not the same type of thing.

                                                                                                        2. 2

                                                                                                          Or am I right to think it should not be tolerated?

                                                                                                          … as in you’d resist or otherwise fight against it? Are you a prescriptivist?

                                                                                                          1. 2

                                                                                                            Is it prescriptive to want people to use language which is not misleading?

                                                                                                            1. 1

                                                                                                              Were you mislead?

                                                                                                              1. 1

                                                                                                                Yup

                                                                                                          2. 1

                                                                                                            It makes me think of this, so to me it’s a weird use of the word as well.

                                                                                                          1. 6

                                                                                                            Seven years later, the lack of GNU software isn’t something I’ve noticed that Mac users complain about. Or even developers. I’ve noticed that developers complain about the touch bar, yes. About the lack of an ESC key. But about having to make do with tmux instead of screen? I definitely hadn’t noticed that.

                                                                                                            I suppose this really means that the FSF doesn’t have great software to advance its cause any more.

                                                                                                            1. 9

                                                                                                              The only one I’ve seen is complaining about an outdated bash. Apple switched the default shell to zsh this year which will help there.

                                                                                                              1. 4

                                                                                                                The old buggy rsync is another problem. I wish they’d just drop the pretense of shipping a useful unixy userland.

                                                                                                                1. 6

                                                                                                                  One step toward this: they’re removing the out-of-date Python, Ruby, and Perl.

                                                                                                                  Future versions of macOS won’t include scripting language runtimes by default, and might require you to install additional packages. If your software depends on scripting languages, it’s recommended that you bundle the runtime within the app.

                                                                                                              2. 5

                                                                                                                Lots of alternative software these days is very available to install via things like homebrew, pkgsrc, macports, nix, etc. Historically, I recall bundled software being much more important as internet pipes were tiny (or nonexistent!), and sidecar packaging systems (if they existed) were more immature/buggy. In fact, many of the BSDs still include “kitchen sink” base systems with tons of seldom used tools. A few of the BSDs (OpenBSD is an example), do make it a point to at least remove (and/or move it into ports) some of the old base system stuff that isn’t much used anymore.

                                                                                                                1. 3

                                                                                                                  I see someone flagged this as trolling. It’s not. Obtuse, perhaps.

                                                                                                                  The GPL’s viral nature depends on the compelling (or at least attractive) nature of the existing GPL’d software. I think (I’ll be happy to hear any arguments to the contrary) that exactly one of these is true:

                                                                                                                  • The GPL’d software is good enough that developers complain if it’s removed from an OS.
                                                                                                                  • The GPL’d software is not good enough to help the FSF’s cause.

                                                                                                                  That blog posting was written in 2012; my reaction when I read it now, seven years later, is surprise, because I haven’t heard protests. Developers are usually quick to complain when something sucks. With seven years hindsight the first possibility seems not to be the case, so I infer that the second possibility is what’s true.

                                                                                                                  I’m eager to hear any arguments that developers have protested and I not noticed, or that there’s a third alternative, or, or, or.

                                                                                                                  1. 2

                                                                                                                    It’s kinds sad really. I do believe in the FSF and GPL and even GPLv3. I think many of the great ideas behind the FSF/GPL have pretty much been lost today. Open source is all about middleware today .. use our middle wear so you can build apps around our (Facebook, Google, Microsoft, Amazon) systems. We don’t have a lot of good FOSS end-apps. There’s Firefox and Darktable and Libreoffice I guess, but Gimp never eclipsed Photoshop and you’re more likely to see Mac users in a coffee shop than Linux laptops.

                                                                                                                  1. 9

                                                                                                                    I (along with probably every other technical e-mail user) have had thoughts about a replacement mail protocol layered on modern standards, but having flicked through JMAP, the level of abstraction was.. not encouraging. It reminded me of SOAP.

                                                                                                                    Does anyone have experience with implementing it? Be-all protocols have a horrible habit of turning out to be garbage, and JMAP kinda reeks of it. It’s main saving grace is that it comes from a well-regarded industry participant, but that’s no guarantee either. Maybe it’s just an allergy to overly generic specifications

                                                                                                                    1. 5

                                                                                                                      I can only tell you from user experience that it’s life changing and makes me not hate email. It makes GMail seem incredibly slow

                                                                                                                      1. 1

                                                                                                                        How are you experiencing this? Through the Fastmail web app?

                                                                                                                        1. 2

                                                                                                                          Yes open the web app on multiple devices and do things: move lots of messages, tag, send, receive, archive, etc. It’s instant across all web apps and very fast over IMAP.

                                                                                                                          Now do the same with GMail and watch how it lags before your changes synchronize stage across the Gmail web apps and even IMAP: it will take anywhere from 15 seconds to 5 minutes. I’ve made changes in GMail that took 5 minutes for it to show up in IMAP and vice versa. It’s crazy how bad GMail really is.

                                                                                                                    1. 7

                                                                                                                      Unkind - this comment was worded in a mean spirited or unpleasant way.

                                                                                                                      1. 6

                                                                                                                        Can you explain a bit more about your motivation/goals/vision for building this? It sounds really interesting, but after reading the homepage I got a lot of the what and how, but not a lot of the why.

                                                                                                                        I think it would also be interesting to compare and contrast with existing terminal mail apps, so people can have a frame for understanding it.

                                                                                                                        1. 15

                                                                                                                          I used to use mutt, and after that neomutt. I was following the project when they started some internal redesigns, and I found the process really painful. mutt came out on 1995! It evolved along with modern e-mail workflow. I believe that now that we know the pains of e-mail better we can make it easier for ourselves.

                                                                                                                          I can only compare other clients to the project’s goals, since as I mention in the post while the foundations are pretty much built, extensibility, scriptability and co. aren’t ready yet.

                                                                                                                          Some stuff I can come up with now:

                                                                                                                          • mutt has an archaic configuration system, and also almost no one uses it without tweaking it. Sensible defaults are important.
                                                                                                                          • mutt is written in C, and good error management along with Rust’s memory safety can be a huge UX upgrade
                                                                                                                          • mutt does not support plugins at a level comparable to eg (neo)vim.
                                                                                                                          • mutt doesn’t cater to different e-mail workflows, some people might want to use it like a gmail account, some people want full customisation (power users), some deal with mailing lists and development through e-mail.
                                                                                                                          • emacs clients require emacs that not everyone uses. That’s the only drawback I can think of without trying them

                                                                                                                          As far as meli goes, it is not feature rich or even have beta/stable status like the other clients. Personally I feel like I shouldn’t have published it yet, but I have put it off for 2 years and I might never do it if not now.

                                                                                                                          1. 1

                                                                                                                            Another problem with mutt (which I love and use daily): it’s entirely synchronous, so if you reload mails on a weak connection or open an attachment the client is unusable until the task is done. A modern client (especially given rust’s safe concurrency abilities) would hopefully do such tasks in a background thread!

                                                                                                                            1. 2

                                                                                                                              That’s how it’s done in meli. Threading is still done synchronously because threads span across account folders and I haven’t put an account’s thread structure under a mutex yet.

                                                                                                                            2. 0

                                                                                                                              Another mutt user here.

                                                                                                                              • mutt has an archaic configuration system, and also almost no one uses it without tweaking it. Sensible defaults are important. An archaic plain text file is the best configuration system I can currently think of.
                                                                                                                              • mutt is written in C, and good error management along with Rust’s memory safety can be a huge UX upgrade -d was good enough for me.
                                                                                                                              • mutt does not support plugins at a level comparable to eg (neo)vim. There are hooks you can attach your commands to.
                                                                                                                              • mutt doesn’t cater to different e-mail workflows, some people might want to use it like a gmail account, some people want full customisation (power users), some deal with mailing lists and development through e-mail. In my case mutt works well to hande multiple maildirs and mailing lists.

                                                                                                                              As far as meli goes, it is not feature rich or even have beta/stable status like the other clients. Personally I feel like I shouldn’t have published it yet, but I have put it off for 2 years and I might never do it if not now. Thanks for doing this!

                                                                                                                              1. 2

                                                                                                                                An archaic plain text file is the best configuration system I can currently think of.

                                                                                                                                Indeed! meli uses a plain text file with keys and values. The archaic epithet was directed to its format; I currently use toml instead of cooking up my own to keep the configuration less alien for some users. toml has support for a few types like tables (hashmaps), arrays, inline tables and doesn’t require extra effort from meli’s side to maintain other than parsing.

                                                                                                                                There are hooks you can attach your commands to.

                                                                                                                                I plan on putting hooks too. What I had in mind is an API that lets plugins manipulate the UI, eg an NNTP plugin that creates its own tab for viewing newsgroups.

                                                                                                                                In my case mutt works well to hande multiple maildirs and mailing lists.

                                                                                                                                It does, but it doesn’t provide workflows. For example, I plan on integrating mailing lists to accounts, with list archive search, patch handling, auto-archiving of old e-mails. I want to make catching up on high volume lists easier with smart filtering and tagging, if supported.

                                                                                                                                Thanks for doing this!

                                                                                                                                Thank you too for your kind comment. It’s only a hobby project but I really want to make it worthy.

                                                                                                                          1. 3
                                                                                                                            • cleantechnica has a bit of a pro-tesla bias (similar to electrek.co). I’m a bigger fan of following journalists behind the podcast autonocast.com.
                                                                                                                            • To elaborate further on the power tradeoffs from the autonomy day presentation - notably the chip design was for keeping things within ~100W usage compared to some other solutions which may use more power (e.g. nvidia drive px pegasus has a 500W tdp), as more power at these levels starts to cut into driving range. Part of this was also to allow for retrofitting earlier model 3’s with the newer drive computer.
                                                                                                                            1. 3

                                                                                                                              I definitely got a pro-Tesla bias too, but at least they admit it up front. From the author’s bio:

                                                                                                                              That is why he has a tremendous admiration for Elon Musk and his companies, foremost because of their missions, philosophy, and intent to help humanity and its future. He sees Tesla as one of the few companies that can help us save ourselves from climate change.

                                                                                                                            1. 18

                                                                                                                              It would be nice if the author’s blog followed his own advice.

                                                                                                                              1. 22

                                                                                                                                The recent lobsters thread about unkind comments suggested replying if we thought a post was unkind. I’d much prefer to downvote with an “unkind” reason, but in place of that, I’ll register here that I don’t like this comment.

                                                                                                                                I think it makes the tone of the forum slightly less kind. The same comment could be said in a kinder way with no loss of clarity.

                                                                                                                                Additionally, dev.to is a community site and not the authors personal blog.

                                                                                                                                1. 2

                                                                                                                                  How should I have mentioned it then?

                                                                                                                                  1. 2

                                                                                                                                    i liked your original comment. thanks for it.

                                                                                                                                    1. 1

                                                                                                                                      Not mentioning it at all is the most appropriate option. You could have added “, assuming the author controls the site where he blogged.”

                                                                                                                                      1. 3

                                                                                                                                        but the author can still decide where to host their blog

                                                                                                                                        1. 3

                                                                                                                                          It doesn’t matter where they decided to post about it, it’s just good manners. Maybe they decided to post there because it was convenient, had an audience - or maybe they were trying to reach an audience of users who were as clueless about the topic as the creator of the site? If I was advocated for a particular approach I’d try to hit the places where the developers don’t get the topic.

                                                                                                                                          1. 1

                                                                                                                                            yeah good point

                                                                                                                                  2. 10

                                                                                                                                    Well what do you know, it actually does. dev.to is not the author’s blog.

                                                                                                                                    Edit: I downvoted with incorrect, since you didn’t do your research:)

                                                                                                                                    1. 2

                                                                                                                                      I cannot find a link to his site on the article. Nor could I find a link from his site to the article in question.

                                                                                                                                  1. 4

                                                                                                                                    Screen Time on iOS has been helpful with this. I don’t use the app time limits, but I block myself from using most apps from 10:30pm to 8:00am. I use my phone or iPad for productive purposes early in the morning, so I can’t just not use my phone like many people recommend.

                                                                                                                                    This still requires self-discipline - I can turn off Screen Time or ignore the limit. However, it has worked for me.

                                                                                                                                    1. 1

                                                                                                                                      does turning off screen time require you to enter a password?

                                                                                                                                      1. 1

                                                                                                                                        You can configure it ether way, depending on your preference.

                                                                                                                                        1. 1

                                                                                                                                          so could you generate a random password and put is somewhere annoying to get to, so that you wouldn’t be able to turn off the restrictions even if you tried?

                                                                                                                                          1. 1

                                                                                                                                            Yep, that would work. It’s a passcode though, so hard to forget. If you can give it to someone else and ask them to enter it for you, that would be the most restrictive.

                                                                                                                                            1. 1

                                                                                                                                              what’s the length limit for a passcode?