1. 11

    As mainly a Go and Rust programmer, I’m all for generics. But I would love some people in this github issue to travel back in time and talk to their past-self, when their past-self was explaining that “we don’t need generic in go”, “generics make the language hard to approach, and not as simple as Go is designed for”. (I’m paraphrasing)

    Anyway, I love this idea, this is good news. As my father used to tell me as a kid: “only morons never change their mind.

    1. 6

      My first foray into Go was in 2009 or 2010 when the first version became public. Couple years after that I was actually paid for writing it, building some pretty cool microservices that are still being used at my previous employer (maybe).

      I didn’t ever accept Go not having or needing generics. It was blindingly obvious from the start! The 63th time I had to write a Sort implementation or doing a map/reduce operation I was already bleeding from my retinas, staring at what felt like a completely moronic attitude at programming language design, feeling just abject despair at the boneheadedness of its designers. “Yeah, we aren’t sure how to do them”, they said. Well, I don’t know, Java had them, how about you ask the same guy who implemented them for Java (Philip Wadler). And that’s what they did!

      I am glad the Go designers reduced their ultimatum from a never to a maybe, because this is finally a programming language worth taking seriously.

      1. 7

        the Go team’s position has never been “never”. This is a proposal for adding generics from a member of the Go team from 2010: https://go.googlesource.com/proposal/+/master/design/15292/2010-06-type-functions.md

        their positions were generally of the form “let’s use the language for a bit before we add generics, cause they change a lot” and “all the proposals so far have been for some reason bad”. The idea that the Go team has a history of saying Go will never have generics is not true and has never been true.

        1. 2

          True. The weird rejection of the idea of generics has largely been a community thing, not the core team. I have issues with some element’s of Go’s design (mainly around the lack of sum types necessitating all kinds of silly hackery), but the Go team themselves have always been pragmatic and non-dogmatic.

    1. 26

      Very similar story from a few weeks ago: SQLite is not a toy database – I won’t repeat my full comment from there.

      SQLite is very fast. [..] The only time you need to consider a client-server setup is: [..] If you’re working with very big datasets, like in the terabytes size. A client-server approach is better suited for large datasets because the database will split files up into smaller files whereas SQLite only works with a single file.

      SQLite is pretty fast compared to fopen(), sure, but PostgreSQL (and presumably also MariaDB) will beat it in performance in most cases once you get beyond the select * from tbl where [..], sometimes by a considerable margin. This is not only an issue with “terabytes” of data. See e.g. these benchmarks.

      Is it fast enough for quite a few cases? Sure. But I wouldn’t want to run Lobsters on it, to name an example, and it’s not like Lobsters is a huge site.

      Well, first of all, all database administration tasks becomes much easier. You don’t need any database account administration, the database is just a single file.

      Except if you want to change anything about your database schema. And PostgreSQL also comes with a great deal of useful administrative tools that SQLite lacks AFAIK, like the pg_stats tables, tracking of slow queries, etc.

      And sure, I like SQLite. I think it’s fantastic. But we need to be a tad realistic about what it is and isn’t. I also like my aeropress but I can’t boil an egg with it.

      1. 9

        SQLite is pretty fast compared to fopen(), sure, but […] MariaDB will beat it in performance

        I would actually be interested in knowing whether SQLite handles that query that broke Lobste.rs’ “Replies” feature better than MySql/MariaDb.

        But I wouldn’t want to run Lobsters on it, to name an example, and it’s not like Lobsters is a huge site.

        I think Lobste.rs would run fine. It would probably be more an issue with the limited amount of SQL SQLite supports.

        1. 7

          The replies query broke because the hosted MySQL Lobste.rs relies on doesn’t do predicate push down. SQLite does do predicate push down, so it wouldn’t have the same problem.

          However SQLite doesn’t have as many execution strategies as MySQL, so it may be missing a key strategy for that query.

          1. 5

            SQLite’s query planner is honestly a bit smarter than MySQL’s in certain ways. For example, MySQL, as recently as 2017, did temporary on-disk tables for subselects. SQLite instead usually managed to convert them to joins. Maybe that’s been fixed in the last four years, but I wouldn’t assume that MySQL would be faster/that SQLite would be slower.

          2. 1

            Lobsters uses some fairly complex queries; usually those kind of things tend to do less well on SQLite, although I didn’t run any benchmarks or anything. I found that SQL support in SQLite is actually pretty good and don’t necessarily expect that to be a major issue.

            From what I understand is that the biggest problem with the Lobsters hosting is that it’s running MySQL rather than MariaDB. While MySQL is still being actively developed, from what I can see it’s not developed very actively and MariaDB is leaps ahead of MySQL. At this point we should probably stop grouping them together as “MySQL/MariaDB”.

            1. 1

              Aside from the operations perspective of migrating data, converting things that are not 1:1 between mysql and mariadb, etc. are there any features in lobste.rs that prevent the use of MariaDB?

              1. 1

                It used to run on MariaDB until there was a handover of the servers. AFAIK it runs well on both (but not PostgreSQL, and probably also not SQLite).

                1. 1

                  I guess their current hoster only provides MySql (for unknown reasons).

                  I asked about offering hosting, but never got a reply.

            2. 12

              I also like my aeropress but I can’t boil an egg with it.

              I bet you could poach an egg with it, with some inventiveness and a slightly severe risk of getting scalded. ;)

              1. 3

                When I posted that comment I was thinking to myself “I bet some smartarse is going to comment on that” 🙃

                1. 2

                  Joking aside, I think a better analogy would be comparing the Aeropress to an espresso machine: the Aeropress is going to get you really good coffee that you’re going to use every day, costs very little, is easy to maintain, and you can bring with you everywhere, but it’s never going to give you an espresso. But then again, it’s not really trying to.

                  (The analogy falls apart a bit, as one of the original claims was that it could produce espresso. I think they stopped claiming that though.)

                2. 1

                  LOL

                  …and audible laughter was emitted. Thanks for that.

                  1. 1

                    On the other hand if you had to set up and supply your password to obtain admin rights every time you just wanted to make coffee….

                    …because some nutjob might want to use it for boiling eggs and the company wanted to stop that….

                    …the device that just let’s you get on with making coffee (or boiling eggs) is a hellavuh lot faster for many jobs!

                  2. 5

                    Except if you want to change anything about your database schema.

                    SQLite has supported ALTER TABLE ADD COLUMN for years, and recently added support for dropping columns. So I’d amend your statement to “…make complex changes to your db schema.”

                    SQLite has stats tables, mostly for the query optimizer’s own use; I haven’t looked into them so I don’t know how useful they are for human inspection.

                    1. 2

                      SQLite has supported ALTER TABLE ADD COLUMN for years, and recently added support for dropping columns. So I’d amend your statement to “…make complex changes to your db schema.”

                      Yeah, the drop column is a nice addition, but it’s still a pain even for some fairly simple/common changes like renaming a column, changing a check constraint, etc. I wouldn’t really call these complex changes. It’s less of a pain than it was before, but still rather painful.

                      SQLite has stats tables, mostly for the query optimizer’s own use; I haven’t looked into them so I don’t know how useful they are for human inspection.

                      As far as I could find a while ago there’s nothing like PostgreSQL’s internal statistics. For example keeping track of things like number of seq scans vs. index scans. You can use explain query plan of course, but query plans can differ based on which parameters are used, table size, etc. and the query planner may surprise you. It’s good to keep a bit of an eye on these kind of things for non-trivial cases. Things like logging slow queries is similarly useful, and AFAIK not really something you can do in SQLite (although you can write a wrapper in your application).

                      None of these are insurmountable problems or show-stoppers, but as I mentioned in my other comment from a few weeks ago, overall I find the PostgreSQL experience much smoother, at the small expense of having to run a server.

                      1. 6

                        it’s still a pain even for some fairly simple/common changes like renaming a column

                        https://sqlite.org/lang_altertable.html :

                        ALTER TABLE RENAME COLUMN The RENAME COLUMN TO syntax changes the column-name of table table-name into new-column-name. The column name is changed both within the table definition itself and also within all indexes, triggers, and views that reference the column.

                  1. 3

                    Another thing that helps, at least with marginally well-behaved clients, is to add the header Cache-Control: public; max-age=3600.

                    1. 2

                      I have this:

                      cache-control: public, max-age=86400, stale-if-error=60
                      

                      Is this sufficient? My feed isn’t updated more than once per day.

                      1. 1

                        Is this sufficient? My feed isn’t updated more than once per day.

                        I think that should be plenty! It blows my mind how clients can fall down on simple stuff like this.

                    1. 1

                      There’s a minor historical error in that document. Acorn were never an ARM licensee, but VLSI was, and the ARM processors used by Acorn after ARM was spun out from Acorn were produced under license from ARM by VLSI.

                      1. 3

                        I feel rather strongly that this is intentional obfuscation. Many companies want to share as little information as possible with users. In part this is because transparency and truthfulness become weaponized by competitors. But also because companies view customers as adversaries, or at least as frenemies, when their changes break your workflow.

                        1. 3

                          That and a huge number of app devs just lack either the skill or the ambition to write decent change notes. I complained about uninformative app changelogs years ago on reddit and got a pile of responses telling me that I was an idiot, because users don’t want to read a bunch of stuff about how you refactored the WindowStrategyFactoryObserver. When I answered that of course you don’t write about your code changes, you write about what they actually mean for users, I got two kinds of responses:

                          1. “Coming up with a user-centric list of improvements sounds like a lot of work, I’m not doing that!” (If you don’t already have bug reports, user stories, or some kind of thing that captures users’ problems and desires, that you can cross-reference your finished work to, how are you prioritizing work in the first place?)
                          2. “What about when a release doesn’t have user-visible changes?” (Okay, so this version has no significant changes from the user POV but it was important for you to push a release anyway? If that happens more than once in a blue moon then I think your app is doing something shady. And no, I don’t think something like an API upgrade falls under this category — “updated the Frobozz API to v3 so that Splorch Effects don’t stop working in March 2021” addresses a user concern [people want Splorch Effects to work], and is potentially useful to someone looking through the release notes in April wondering why Splorch Effects are broken and whether an upgrade might fix them.)
                          1. 3

                            And you’re almost guaranteed that those same devs have commit histories that are a complete and utter mess.

                        1. 2

                          I think this would be better off being changed to the article the target page links to.

                          1. 2

                            Which is geo or subscriber blocked to me here, unable to read it…

                              1. 2

                                If it’s blocked either way for you, why this instead?

                            1. 1

                              Notable details from the doc:

                              Gatekeeper performs online checks to verify if an app contains known malware and whether the developer’s signing certificate is revoked. We have never combined data from these checks with information about Apple users or their devices. We do not use data from these checks to learn what individual users are launching or running on their devices.

                              Notarization checks if the app contains known malware using an encrypted connection that is resilient to server failures.

                              These security checks have never included the user’s Apple ID or the identity of their device. To further protect privacy, we have stopped logging IP addresses associated with Developer ID certificate checks, and we will ensure that any collected IP addresses are removed from logs.

                              In addition, over the the next year we will introduce several changes to our security checks:

                              • A new encrypted protocol for Developer ID certificate revocation checks
                              • Strong protections against server failure
                              • A new preference for users to opt out of these security protections
                              1. 2

                                We have never combined data from these checks with information about Apple users or their devices. We do not use data from these checks to learn what individual users are launching or running on their devices

                                It’s nice to hear them state that explicitly, I wonder if people believe it when it comes from Apple.

                                1. 1

                                  I might have misunderstood but I thought people where mostly worried about data collection and MITM attacks given that the ocsp.apple.com requests are made in clear. I don’t believe Apple’s doc actually address those concerns.

                                  1. 3

                                    The responses are signed, even in the current version, so a MITM can’t fake them. They can DoS the user, though.

                                    1. 4

                                      They might be signed, so they can’t be MITM, but the issue is that all that tracking data is being sent in cleartext.

                                    2. 1

                                      A new encrypted protocol for Developer ID certificate revocation checks

                                      Doesn’t this address it? Or is this about something else?

                                      1. 2

                                        Ah, you are right, it does address it… but as a future feature. That means the current implementation is indeed open to the winds.

                                1. 5

                                  if I may lose my server and lose some important email

                                  This is the biggest problem I have with most of the “host your own {x}”. Yes, I have to do maintenance, yes things may break. I can probably even deal with spam. I ran my own email a few times. As a secondary server though.

                                  Because hosting means I need to have a looooong term backup&recovery strategy. Unless Google goes bust, I’m pretty certain I’ll be able to read an email from 2004 or 2005 or whenever it was I’ve switched to gmail.

                                  And some of my blog attempts I can’t even find on the internet archive, let alone mails film that server. Or photos. Or whatever. I don’t even know what will happen in 10 or 20 years.

                                  I’m curious as to how do people deal with that issue? Okay, having a newsletter from 2004 is probably my hoarding impulse problem and the inability to go back and clean it up now is just making it worse. Probably the same with the 100gb of photos I have (again, needs cleanup and only 30% are the everyday smartphone snaps).

                                  What’s your strategy? What are your ultra long term backup and recovery plans?

                                  What will you do if you give up on computers in 10 years?

                                  1. 9

                                    What’s your strategy? What are your ultra long term backup and recovery plans?

                                    ZFS. Mirroring. A pair of 4tb drives is not prohibitively expensive in this age.

                                    Periodic snapshots.

                                    One offsite backup, in case of earthquakes,fires,etc. Lots of ways to do this. Could be aws glacier or similar. Or a third drive hosted at a workplace (if allowed) or at a friend’s or relative’s house. In the latter case, zfs send/recv.

                                    What will you do if you give up on computers in 10 years?

                                    My drives will keep in a closet if I decide to run off and live in the woods for a few years. Google data will not, if you stop paying the google bill.

                                    1. 2

                                      A pair of 4tb drives is not prohibitively expensive in this age.

                                      As a reminder, SMR is still a problem, and even more so with a ZFS setup.

                                      It’s not possible to just buy a pair of a 4TB drive. Extra effort is needed to avoid SMR.

                                    2. 6

                                      What’s your strategy? What are your ultra long term backup and recovery plans?

                                      Tarsnap

                                      1. 4

                                        And upgrade plan. While setting everything up is fun as you learn some things, upgrading software and hardware will quickly become a chore. That’s why I avoid owning any server as much as I can.

                                        1. 1

                                          Oh yes I totally forgot to mention maintenance and upgrades. These days the things like that are commodity.

                                        2. 4

                                          just keeping up with the maintenance is too much hassle for me to host anything on my own if I think it’s somewhat important. Imagine going on vacation for two weeks without a notebook to fix your mail server because it went down for whatever reason.

                                          1. 3

                                            I’ve embraced the impermanence of everything. I delete most mail I get. Not archive, trash and it gets auto-cleaned there.

                                            1. 2

                                              I use isync/mbsync. My personal email archive dating back to 2001 seems to be about 3.4GB, so I just download every mail I’ve ever received to all my devices. That’s mirroring taken care of. PCs and laptops need to be backed up anyway, so that’s backups taken care of. This strategy will work if your mail archive is 0.3, 30 or 300GB.

                                              I’m pretty certain I’ll be able to read an email from 2004 or 2005 or whenever it was I’ve switched to gmail.

                                              Mail is probably safe because the storage costs are negligable. But I wonder how long Google will allow people to store photos and video on their servers for free.

                                            1. 4

                                              It’s been more than a decade since the Syndications Wars but I’m still an Atom guerilla - here’s the Atom spec.

                                              1. 2

                                                why pray tell

                                                1. 3

                                                  It’s less ambiguous, and has a bunch of nice additional features over RSS (links, separation of publication and modification date, a better extensibility story than RSS, &c).

                                                  1. 2

                                                    sounds mostly good but the “extensibility story” has me worried

                                                    1. 2

                                                      In practice, it doesn’t seem to have mattered. OStatus was built on top of atom, while the iTunes podcast extensions were built on top of RSS. The relative success and failure was dominated by the usefulness and politics surrounding the extension itself, rather than the ability of the syndication format to support it.

                                                      1. 1

                                                        How so? Atom’s basic extensibility - <link> tags - is pretty straightforward and covers a lot of cases that would require ad hoc extensions. The <content> element was thoughtfully designed to allow it to be general (you could specify the MIME type of the contents of the element) while keeping the base case of text and HTML straightforward. These kind of things are thoughtfully designed and consistent.

                                                        1. 1

                                                          sometimes i worry about extensibility because whether or not an extension is “ad hoc,” it requires support from the client.

                                                    2. 2

                                                      Atom is a “real” spec - it takes care of embedded HTML etc.

                                                      Also RSS is promoted by Dave Winer, who is a bit of a d*ck.

                                                      1. 2

                                                        what do you mean “takes care of”? i see html embedded in rss all the time.

                                                        1. 2

                                                          As the linked Profile says:

                                                          The specification has lacked clarity regarding whether HTML is permitted in elements other than an item’s description, leading to wide variance in how aggregators treat character data in other elements. This makes it especially difficult for a publisher to determine how to encode the characters “&” and “<”, which must be encoded in XML

                                                          Atom has no such lack of clarity.

                                                    3. 2

                                                      I’ve mostly been a consumer, up until Google Reader shut down, and more recently with the release of NetNewsWire 5, so I haven’t really looked at the specs, nor have I formed an opinion on one or the other. (That being said, Atom does generally look like a net improvement over RSS).

                                                      Ideally, I’d like to see more adoption for JSON feeds. Also interesting is the Indieweb take against external files: https://indieweb.org/feed

                                                      1. 3

                                                        When using modules (as in this case, see https://github.com/OpenDiablo2/OpenDiablo2/blob/master/go.mod) go wants you to use fully qualified imports all the time. There are some tweaks to avoid that (which help reuse code in both module and non-module environments) using renames in go.mod, but yeah, it’s normal.

                                                        1. 2

                                                          Yes, though they’re not really importing them from Github, but relative to the $GOPATH/src. This is a consequence of how Go originally managed code. I was never a fan.

                                                          Contrary what pgeorgi mentioned, Go modules actually remove the strict need for this, though it makes sense for older projects to keep old style fully-qualified imports as OpenDiablo 2 does so as not to disrupt existing code.

                                                          In newer projects, you could have something like this in your go.mod file:

                                                          module OpenDiablo2
                                                          

                                                          Which would allow you to write imports within your module’s internal source like this instead:

                                                          package d2server
                                                          
                                                          import (
                                                          	"OpenDiablo2/d2game/d2player"
                                                          	"OpenDiablo2/d2networking/d2client/d2clientconnectiontype"
                                                          	"OpenDiablo2/d2networking/d2netpacket"
                                                          )
                                                          

                                                          Which is vastly better. For third-party code you’re pulling in as dependencies, you’d still use fully-qualified imports, however.

                                                          Go modules are far from perfect, but they make life so much easier.

                                                          1. 1

                                                            Which language has the most perfect module/package system according to you?

                                                            1. 1

                                                              I don’t think there is such a thing. Practically every half-decent module system these days is essentially riffing on Wirth’s original work on Modula and its successors.

                                                              Now, packaging (i.e., their distribution, as opposed to the modules/packages themselves) is a whole other issue. Talking about that is a bit of a quagmire, and I don’t think anybody’s really cracked it.

                                                        1. 2

                                                          Most web users will simply select “no to tracking” once in their browser and the browser will block all the trackers for them as they surf the web.

                                                          This sounds a bit like Do Not Track, and look how well that worked. It also sounds like Firefox’s Tracking Protection feature, which is actually quite nice (although I still have Privacy Badger installed because Firefox’s list is based on a blocklist which by definition is never complete).

                                                          1. 5

                                                            I use Consent-O-Matic for this, because sites don’t respect DNT.

                                                            1. 2

                                                              I used to set the DNT flag. Then I saw an aggregation of visitor stats on one site I frequent. Only one visitor with DNT set - which I realized was myself. I concluded that setting this flag is just leaking a rare fingerprinting datapoint to any sites I visit. I no longer set DNT.

                                                              1. 1

                                                                Unfortunately Firefox doesn’t allow disabling the DNT flag as far as I can figure out :-/ I wish it would go away, it’s more harmful than helpful IMO, mostly because it gives the illusion of doing something while you’re actually not.

                                                                1. 1

                                                                  If that’s the case, perhaps the statistical profile of people using DNT has changed and now its more common. It’s not like there aren’t plenty of Firefox users out there.

                                                                  1. 2

                                                                    Microsoft enabled DNT by default in Explorer back in 2012, I believe (although later disabled it again). That was kinda the beginning of DNT’s demise since publishers complained about it being an indiscriminate use of the header.

                                                                    Apache, for example, started ignoring the header not long after that.

                                                          1. 7

                                                            rsc on the “three approaches” seems like they ignored a lot of prior art; C# is a mainstream language that has actual reified generics for quite a while, to say nothing of what the FP community has.

                                                            1. 9

                                                              The post you are referring to directly asks for help finding prior art. Also does C# style reified generics even make sense for Go? It requires a lot of runtime support.

                                                              https://research.swtch.com/generic

                                                              1. 7

                                                                But at least they decided to work with Phil Wadler in the end.

                                                              1. 8

                                                                There’s a name that doesn’t work in English, as blech tends to be used as an expression of disgust.

                                                                1. 12

                                                                  expression of disgust.

                                                                  Given some of the things I’ve heard about the trials and tribulations of embedded programming this may not be unfair.

                                                                  1. 3

                                                                    Given some of the things I’ve heard about the trials and tribulations of embedded programming this may not be unfair.

                                                                    Having done embedded development long in the past, it’s certainly apt!

                                                                  2. 9

                                                                    I was expecting a novelty language :)

                                                                    1. 2

                                                                      Same here! It the name made me think it was an esolang initially.

                                                                      1. 1

                                                                        Yeah, I expected this to be a parody language that does the opposite of what good languages do, resulting in something like INTERCAL. I think the name “Blech” will significantly slow the growth of the language.

                                                                      2. 7

                                                                        Seems to be done by Bosch Research, a German company. If it works for them … I see nothing wrong with it.

                                                                        1. 2

                                                                          Sure, but it might limit how seriously people take it. Then again, considering the silly names some projects have…

                                                                        2. 6

                                                                          Being one of the authors - we are aware of this. Blech should remind you of “bare metal”. Programs can run directly on “the Blech”. We also considered the name “Metal” but it was already taken by Apple.

                                                                          1. 2

                                                                            I really appreciate you chiming in.

                                                                            To me a die looks like a piece of blech.
                                                                            Thus the name totally makes sense.

                                                                          2. 4

                                                                            As German, I find the name very amusing. It’s usually used in disrespect towards sheet metal of questionable thickness/stability, something that bends easily and not being something that you want to relying on for bearing load. It’s sometimes used in an affectionate way, like the Trabbi being referred to as a ‘Blechle’ or ‘small Blech’. Anyways, in all uses I’ve heard it’s always been towards thin sheet metal.

                                                                            1. 1

                                                                              I checked several dictionaries but couldn’t find any evidence of this. Is it a local slang?

                                                                              1. 2

                                                                                I’m familiar with it, I don’t believe it’s local.

                                                                                  1. 1

                                                                                    Thanks. I wrote it with a (capital) ‘B’ and landed here:

                                                                                    https://en.wiktionary.org/wiki/Blech

                                                                                    1. 1

                                                                                      Yuck, case sensitive URL!

                                                                                1. 2

                                                                                  I checked several dictionaries but couldn’t find any evidence of this. Is it a local slang?

                                                                                  Nope, not slang: https://www.merriam-webster.com/dictionary/blech

                                                                                  That was the first hit when I did a search.

                                                                                2. 1

                                                                                  I also assumed it was named along the lines of Worst: http://worst.mitten.party/

                                                                                1. 6

                                                                                  I’ve been running a gopher server for several years now. Is anyone else here running a gopher server?

                                                                                  1. 7

                                                                                    I do, but the Gemini protocol is more appealing to me: https://gemini.circumlunar.space/

                                                                                    1. 3

                                                                                      I also run a Gemini server that I wrote. I also wrote my own gopher server.

                                                                                      1. 2

                                                                                        I mostly run a Gemini capsule, but scrape websites and serve those sites up over Gopher for myself.

                                                                                      2. 4

                                                                                        coreboot.org has some basic gopher presence because, why not?

                                                                                        1. 1

                                                                                          Maybe that gives a shorter path than http/html for bootstrapping a system (with not much userland utilities there already) and accessing the coreboot.org page from the coreboot-ed system (just for fun maybe).

                                                                                          1. 1

                                                                                            Is it at gopher://coreboot.org ?

                                                                                            1. 1

                                                                                              Yes

                                                                                          2. 4

                                                                                            My phlog is happily serving the markdown sources of my HTML blog. I recently clean the source for it to be more gopher friendly.

                                                                                            I now want to use gopher more for serving random thoughs/notes quickly without worrying about style.

                                                                                            1. 3

                                                                                              I started this week! I just have a test though for now. Also in my first explorations I came across your gopher hole through a phlog aggregator as it happens!

                                                                                              1. 2

                                                                                                Great! AFAIK,servers of the tildeverse can do their best to support gopher. We can also use their gopherproxy to proxy your web gopher://gopher.conman.org. eg.https://gopher.tildeverse.org/conman.org

                                                                                                1. 1

                                                                                                  Not yet, but I’ve revived an old project I intended on starting five years ago to build one. Just took a few days of occasional work to build a pretty complete Gopher server. I just have to get around to implementing executable gophermaps and possibly CGI support.

                                                                                                  After I’m done with that, I’m considering implementing my own Gemini server.

                                                                                                  1. 1

                                                                                                    Yes, dual-hosting with HTML. I use https://code.z0.is/notwiki/ for that.

                                                                                                    1. 1

                                                                                                      Floodgap admin here.

                                                                                                    1. 5

                                                                                                      Well, ain’t that a thing. I admire the effort that went into Raku - it was and still is an interesting project - but the transition efforts that Ruby and Python went through showed that you can’t make too great a departure, even if you think you’ve put the mechanisms in place to smooth the path. Human factors inevitably complicate everything.

                                                                                                      1. 10

                                                                                                        A couple thousand people got screwed over several decades ago by the British Government for geopolitical reasons therefore you shouldn’t buy the .io TLD? I don’t think that’s reasonable. .io is a useful de-facto gTLD with explicit tech connotations unlike .xyz, and as stated in the articles linked through by the OP a proportion of its profits are reinvested in internet infrastructure. Some things are worthy of boycotting, but this is not one of them.

                                                                                                        1. 44

                                                                                                          There’s a difference between “I urge people to reconsider” and “You’re a moron if you do this”. The author did the former, not the latter.

                                                                                                          Everyone is free to boycott what they want.

                                                                                                          1. 15

                                                                                                            I agree, the OP is perfectly free to boycott .io if they so choose. And I am perfectly free to say that I think it’s hand-wringing and an over-reaction. On a site like lobste.rs, which is rarely overtly political, a skimming reader might think that there is a good technical reason to not choose .io, which as far as I know is not the case.

                                                                                                            1. 20

                                                                                                              And I am perfectly free to say that I think it’s hand-wringing and an over-reaction

                                                                                                              I won’t try and convince you otherwise :)

                                                                                                              might think that there is a good technical reason to not choose .io, which as far as I know is not the case

                                                                                                              Well….. [1]

                                                                                                              Also, the future of the TLD being uncertain due to these geopolitical issues is quite a technical reason not to choose .io [2] (I added an update about this to the post)

                                                                                                              [1] https://thehackerblog.com/the-io-error-taking-control-of-all-io-domains-with-a-targeted-registration/ [2] https://www.prolificlondon.co.uk/marketing-tech-news/tech-news/2019/05/future-popular-io-domains-question-over-british-empire-row

                                                                                                              1. 5

                                                                                                                That first link was an interesting read, thanks! Good thing I’m too tight to buy .io domains anyway :p

                                                                                                              2. 4

                                                                                                                There are technical reasons too: it’s a poorly run registry with bad record of nameserver uptime. The whole thing is held together with chewing gum and gaffer tape. I know this because of the “fun” I had going through ICB’s registrar accreditation process, where I spent most of the time getting them to fix bugs on their side.

                                                                                                                1. 3

                                                                                                                  Wait, I’ve thought this whole time that lobste.rs was a political wing in Kosovo/Serbia! /s

                                                                                                              3. 42

                                                                                                                A couple thousand people got screwed over several decades ago

                                                                                                                Those people are still being screwed over, today. Denied their homeland, they are forced to remain stateless. Their buried dead lie in graves untended, their lands appropriated for CIA Black Sites and USAF weapons of mass destruction.

                                                                                                                .io is a useful de-facto gTLD

                                                                                                                It isn’t a gTLD, its a cock-a-mamey “ccTLD” run for the benefit of the same people who have stolen the Chagossians homeland.

                                                                                                                Some things are worthy of boycotting, but this is not one of them.

                                                                                                                What would be worthy of boycotting, O Sage of the Internet?

                                                                                                                1. 5

                                                                                                                  I’m pretty sure tech firms have been treating it as essentially a gTLD for quite a while now.

                                                                                                                  What would be worthy of boycotting

                                                                                                                  China for atrocities against Uyghur Muslims, or Saudi Arabia for atrocities in Yemen. Nations and entities which have murdered people en-masse instead of just displacing them.

                                                                                                                2. 29

                                                                                                                  A couple thousand people got screwed over several decades ago by the British Government for geopolitical reasons therefore you shouldn’t buy the .io TLD? I don’t think that’s reasonable.

                                                                                                                  I’m surprised (perhaps disappointed) you don’t think that’s reasonable. I can’t think of many better reasons to boycott something. You say “a couple thousand people” as though that’s a number that should be treated as insignificant.

                                                                                                                  1. 4

                                                                                                                    You say “a couple thousand people” as though that’s a number that should be treated as insignificant.

                                                                                                                    The suffering of one person is a tragedy, the suffering of “a couple thousand people” is a statistic, right? Considering how shady this whole thing is I think it is completely fair to just vote with your wallet and chose a different TLD at no inconvenience to yourself.

                                                                                                                  2. 14

                                                                                                                    A couple thousand people got screwed over several decades ago by the British Government for geopolitical reasons therefore you shouldn’t buy the .io TLD? I don’t think that’s reasonable

                                                                                                                    You probably would revise your position if you were one of those couple thousand who had a foreign colonial government stealing your wealth.

                                                                                                                    Beyond the problematic colonist mindset here, there are actual technical reasons, well documented at this point, and with a little google fu you can find quite a few horror stories.

                                                                                                                    1. 12

                                                                                                                      I don’t like using .io simply because it’s supposed to be a geography-specific domain. It’s abusing the spec to use it as a trendy tech domain, IMO.

                                                                                                                      1. 10

                                                                                                                        Well, there’s .tech, .computer, .systems. So why .io? Just because it means “input/output”? If I make a techy website, why do I need my domain to be associated with “input/output”? Also, few people outside tech will get the .io reference. To others, it’s just confusing.

                                                                                                                        There’s also the “future of io” issue: https://www.prolificlondon.co.uk/marketing-tech-news/tech-news/2019/05/future-popular-io-domains-question-over-british-empire-row Who knows what will happen if the Mauritian government gets ownership of the TLD.

                                                                                                                        1. 4

                                                                                                                          The problem with long, unusual TLDs like those ones is that they don’t immediately parse as URLs when one reads them - in fact, less technical people may not even realize they are URLs at all (I accept this may be a feature not a bug :p). They also break a lot of field validators. You are to some extent right about non-technical people not associating IO with input/output - I think many consider the domain synonymous with those simple online multiplayer games in the vein of agar.io.

                                                                                                                          Is there a better source for the claim that .io would pass to the Mauritians if the UK ceded the Chagos islands (which I doubt will happen, but that’s beside the point)? Cynically, I am inclined to think that this will not happen.

                                                                                                                          1. 6

                                                                                                                            Cynically, I am inclined to think that this will not happen.

                                                                                                                            On your side of the fence as well. I’d like to see it happen, but… UK giving up a source of money like that?

                                                                                                                            In the end, it’s risk assessment. If you feel your brand perception will improve by using .io and the chances of .io going “territory only” mode are slim, no one is stopping you.

                                                                                                                            It’s difficult, but I’m trying to not to judge. What other people do with their domains is their business. I’m really only asking to take these issues into consideration when buying a domain.

                                                                                                                        2. 3

                                                                                                                          This is exactly the kind of libertarian nonsense that seems to plague lobsters these days.

                                                                                                                          1. 5

                                                                                                                            Nothing about his comment in any way pertains to libertarianism or libertarian philosophy.

                                                                                                                        1. 14

                                                                                                                          It’s missing a crucial point:

                                                                                                                          • Be ready to give up good HiDPI screen support

                                                                                                                          I have a 4K monitor because it’s much more enjoyable to use for development, but it becomes a pure nightmare on Linux. I ended up installing an Hackintosh.

                                                                                                                          1. 8

                                                                                                                            Not necessarily. You can look at this as purely anecdotal, but my Dell Precision 5510, which I’ve had for about four years, has a HiDPI display on par with what I have on the MBP I use for work. Maybe this is down to the fact that I run Ubuntu on it, but I’m just using stock Intel and Nvidia drivers on it, depending on my use case.

                                                                                                                            1. 3

                                                                                                                              Just curious, what makes it a nightmare?

                                                                                                                              1. 11

                                                                                                                                My most recent encounter with this is fractional scaling:

                                                                                                                                I have a 27’’ 4k monitor. I find that at this resolution, 1.5x scaling works best as 2x is too big and 1x is too small. With MacOS or even Windows, this is not a problem at all, with Linux it’s a can of worms:

                                                                                                                                • Xorg doesn’t natively support fractional scaling, Instead you have to rely on hacks or only scaling the fonts (which quite frankly, looks like shit). I never managed to make any of those hacks work reliably and consistently in all apps, eventually you’ll open that one app that uses Qt and you require yet another hack.

                                                                                                                                • Wayland does support fractional scaling, too bad that not all apps support Wayland, most notably Firefox. I tried running Firefox with the experimental Wayland backend with fractional scaling on, and everything looked blurry, it’s just not there yet.

                                                                                                                                Now, I’m sure for all of those issues there are 10 different workarounds to try and things to tweak to make things better, but I can’t be bothered to do any of that when in macOS (or even Windows) it Just Works™.

                                                                                                                                1. 8

                                                                                                                                  Just the fact that the ArchWiki page on HiDPI has a comprehensive list of required hacks is another example of what I’m referring to.

                                                                                                                                  1. 3

                                                                                                                                    Have you tried with KDE? I’m curious because I’m planning on using HiDPI with 1.25x scaling.

                                                                                                                                    1. 2

                                                                                                                                      Yes, with KDE it’s slightly better but still not as good or smooth as Windows and macOS in my opinion.

                                                                                                                                    2. 2

                                                                                                                                      Latest versions of Gnome in Ubuntu 20 have fractional scaling and it’s been set and forget for me.

                                                                                                                                      1. 2

                                                                                                                                        Ubuntu ’s fractional scaling is using significant more CPU power compare to 2x scaling.

                                                                                                                                  2. 3

                                                                                                                                    I tried switching to Ubuntu recently (not for the first time) and ended up going the Hackintosh route, too. For me the breaking straw was not being able to adjust mouse wheel scroll settings in a way that would work everywhere and didn’t seem to come with caveats or be labelled as a hack.

                                                                                                                                    Setting up a Hackintosh certainly wasn’t without its hassles, but having got there I’m very happy with it. I also have a Macbook and an iPhone, so that is another motivation to stay in the Apple camp (vendor lock-in, I guess?)

                                                                                                                                    1. 1

                                                                                                                                      I’m surprised you had mouse wheel woes. Do you have a special or fancy mouse or something? Or want very specific wheel behaviour?

                                                                                                                                      1. 1

                                                                                                                                        I just have a normal mouse, and TBH I’m a little fuzzy on what happened now. It could very well have been that if I has been using Gnome (or KDE, whichever one I wasn’t using) then it wouldn’t have been a problem at all, but what I really wanted was MacOS anyway, so I just did the Hackintosh thing instead. I kind of took “well I can’t get this basic thing to work right” as an omen.

                                                                                                                                    2. 3

                                                                                                                                      I use Xubuntu 20.04 on my X1 carbon and desktop with a 27” 4K monitor. Both work totally fine with HiDPI. The main issue I’ve had was when I plugged my laptop into non-HiDPI monitors, I had to lower the DPI for the monitors and that made everything on the laptop small.

                                                                                                                                      1. 1

                                                                                                                                        The distros the article mentions are ElementaryOS, Pop!_OS, and Fedora Workstation. I believe all of those have had great native HiDPI support “out of the box” for a few years now.

                                                                                                                                        I totally get not loving the aesthetic of GNOME or whatever, especially bumped up at x2, but I think it’s cool that Linux lets us customize everything end to end to our heart’s desire. If we’re going for a more custom setup, totally agree that it can require doing some custom tweaks to get a good HiDPI experience and it won’t be completely automagic.

                                                                                                                                        I don’t think it’s fair to say it’s all a pure nightmare on Linux as a whole. Beginners can have a good experience, experts can have a good experience, crossing that valley can be painful.

                                                                                                                                        Also worth noting that most of the ArchWiki page on HiDPI refers to outdated workarounds that are no longer required, though not all.

                                                                                                                                        1. 0

                                                                                                                                          Honestly, yeah. I purposely bought a normal DPI display just to avoid this pain. It’s never gonna be perfect. Apps aren’t gonna scale right, even with fractional scaling. Other apps might scale right, but be blurry. It’s gonna drive you crazy.

                                                                                                                                          Just get over the loss aversion, buy a good normal DPI monitor, and get back to work. I’m 100% satisfied with normal DPI.

                                                                                                                                        1. 9

                                                                                                                                          Thanks for the detailed writeup. Seems like the machine still needs some more polish in the audio department. Having a lot of low-level options via ALSA sound interesting to me, actually. As someone who produces music on Linux, I prefer to give ALSA a good kicking until it works, rather than dealing with Pulseaudio’s latency issues. Is it possible to record the internal stereo mix directly, ie. can you select it as a recording source without resorting to jackd trickery?

                                                                                                                                          1. 7

                                                                                                                                            To be honest, “you have to use ALSA instead of pulse to get audio to play reliable” is not a pinebook-specific problem; both my thinkpads are the same way.

                                                                                                                                            1. 7

                                                                                                                                              And I have the opposite experience with both my thinkpads. Audio ‘just works’ with pulseaudio, including multisource concurrent playback, auto-switching from internal mic/speaker to external headset on plug in, bluetooth headsets, etc. None of that works out of the box with alsa on those systems.

                                                                                                                                              1. 5

                                                                                                                                                Agreed, wasn’t trying to suggest otherwise. That said, “reliable” maybe isn’t the right word. Pulseaudio works fine for just listening to music or watching video, and is usually much less of a hassle to set up. When latency matters however (music production, emulation), ALSA performs much better in my experience.

                                                                                                                                                1. 5

                                                                                                                                                  Pulseaudio works fine for just listening to music or watching video

                                                                                                                                                  This has not been my experience. Of course every machine is different, but I used to have it cutting out constantly until I removed it entirely. Frequently plugging in my headset would reset the volume so that one ear was muted and the other wasn’t. Ever since uninstalling pulse, on my machines ALSA has been 100% reliable.

                                                                                                                                                  1. 2

                                                                                                                                                    I haven’t had problems with pa since switching to Arch from Fedora. I think the experience varies a lot based on what distro you use.

                                                                                                                                                    1. 1

                                                                                                                                                      On my old black plastic MacBook (3,2) running Arch back in the day, PulseAudio was what made Linux audio start to be nice. ALSA worked, but in an https://xkcd.com/963/ sort of way.

                                                                                                                                                2. 3

                                                                                                                                                  Linux ecosystem in general needs cleanup in audio department

                                                                                                                                                  1. 9

                                                                                                                                                    Charts like that having been making the rounds for ages and always feel they’re a bit disingenuous because most people don’t have half that stuff installed, and use even less of the stuff they do have installed.

                                                                                                                                                    For most people, it’s just PulseAudio → ALSA → Sound card. Some of the abstractions/libraries on top of that – such as SDL, gstreamer, etc. – add useful features like the ability to decode mp3 files and whatnot. In other words, it’s a lot less messy than that chart makes it seem.

                                                                                                                                                    (I do have plenty of gripes with the ALSA C API, which is … not very good, but that’s a different matter)

                                                                                                                                                    1. 8

                                                                                                                                                      Indeed, these charts conflate the audio system with multimedia libraries (and in case of the first one, even multimedia applications like VLC). That said, I very much agree that the state of audio on Linux is not great. Sadly everybody seems to be betting their horses on Pulseaudio, which to me seems more like an attempt to cover up the mess rather than cleaning it up.

                                                                                                                                                      1. 3

                                                                                                                                                        VLC is included because of one of the cursed parts in the chart - VLC can be used as a playback backend by phonon, which is an audio playback API that is mostly used by KDE software.

                                                                                                                                                      2. 4

                                                                                                                                                        (I do have plenty of gripes with the ALSA C API, which is … not very good, but that’s a different matter)

                                                                                                                                                        Out of curiosity, do you have any references for what a good low-level audio API looks like? It’s something I’ve been wondering about for a while, since audio on Linux is so perennially bad, but while I’m decently familiar with the physics of audio I don’t know much about the low-level details. It seems like it should just be “bytes with the proper format go into buffer at a fixed rate”, which is something that GPU and network drivers have been solving forever…

                                                                                                                                                        1. 2

                                                                                                                                                          It’s not perfect, but in contrast to Linux, I’ve never had audio issues under FreeBSD: https://www.freebsd.org/cgi/man.cgi?query=sound&sektion=4

                                                                                                                                                          1. 2

                                                                                                                                                            Thanks, I’ll take a look at it!

                                                                                                                                                          2. 1

                                                                                                                                                            Coming in late, but sndio is also worth a look(default sound under OpenBSD)

                                                                                                                                                      3. 2

                                                                                                                                                        Is it possible to record the internal stereo mix directly, ie. can you select it as a recording source without resorting to jackd trickery?

                                                                                                                                                        I have no idea, but if you can give me some pointers on how to find out I can try. If it’s worth anything, the full dump from the alsa-info script is here: http://alsa-project.org/db/?f=5363202956bb52364b8f209683f813c662079d84

                                                                                                                                                        1. 2

                                                                                                                                                          Thanks. Judging from this output, it is not possible to record the internal mix out of the box. That’s somewhat disappointing. It’s not surprising considering this has been the norm for off-the-shelf laptops for several years now, but I would have expected an open hardware like the Pinebook Pro to fare better.

                                                                                                                                                        2. 1

                                                                                                                                                          Just to satisfy my curiosity, why do you want to record the internal mix on the built in sound card? This is surely handy in some situations (when you want to record all your screen for example) but… personally for serious music stuff I’ve always used USB sound cards. Playback is probably okay on most decent laptops these days, but recording is something entirely different even on a super high end machine. So if I’d buy a Pinebook Pro I would expect an awfully noisy sound card even for playback (even if I wouldn’t really care).

                                                                                                                                                          There’s another clue: the issue with the speakers described in the article feels like a noise coming from a bad sound card or amplifier. Broken speakers don’t produce noise like that.

                                                                                                                                                        1. 2

                                                                                                                                                          The funny thing about trolls is how quickly they fold when confronted with even a modicum of resistance.

                                                                                                                                                          Credit to the GNOME Foundation for staring them down.

                                                                                                                                                          1. 3

                                                                                                                                                            Two projects: building a Pi Hole on NetBSD (which is surprisingly plausible) and turning a Dell 1210 into a usable machine with a modern-ish OS.