1. 4

    Google is not better. Their Crashlytics SDK on mobile sometimes cause crashes. Same thing with AdMob SDK – when someone contacts me that the mobile app doesn’t work, often I’m just sending her an ad-free version – same git commit than previously but with ads disabled – and suddenly app is working again ;(

    1. 2

      Why are not doing this for everyone then?

      1. 2

        I’ve already disabled Crashlytics for everyone. I won’t want to disable AdMob for everyone, because I’d like the apps to generate some profit for me. Fortunately I have lots of users, so a few people with disabled ads don’t make a difference.

    1. 3

      I’ve chosen btrfs as my default filesystem on my openSUSE installation and now I’m trying to search for some free time to migrate away from it.

      Sometimes I’m doing mobile development (hobby projects) and btrfs is incompatible with Android emulator, at least on my machine. From some reason it works properly when using qemu through libvirt with e.g. Windows. But Android emulator is very choppy, completely not usable. However, after I’ve moved the guest system image to another partition with ext4, everything is smooth again.

      1. 2

        That’s because lots of random per-file I/O interacts poorly with CoW, you can disable it per directory. Ideally, the vmm would work with the CoW filesystem, or at least disable it for the specific file/directory. This will likely happen only after it becomes default on a major distro.

        1. 3
      1. 33

        Someone on Reddit put it best:

        Java devs never fail to be parodies of themselves.

        This is so spot on.

        Java is actually a good language, it’s the ecosystem that kills it for me. By “the ecosystem”, I don’t just mean the tooling (e.g. Java build tools are universally awful AFAICT), but the developers themselves. So much Java I read is just “magic”. Magic annotations, magic dependency injection, interfaces over classes that there is only one of etc. etc.

        The author points out very good failures in the way its been architected, but the code in the OP isn’t all that strange looking to me as Java, and that’s a pretty damning statement.

        I wish Java had a better audience around it. The Kotlin ecosystem seems better, but I’ve never used it.

        1. 24

          (edit: my first pass at this came off a little overly negative in a way that I think betrays the seriousness of my point)

          I’m not sure Java actually is a good language. My first introduction to Java was as the primarily language that was used in college, and even as a pretty green programmer them (I’d started writing C and C++ a few years earlier in high school, but I was definitely not a good programmer), I found it awfully questionable. In the intervening 15 years I’ve managed to avoid it, until quite recently. It’s been really eye-opening to see how the language has evolved in that time, but not really in a good way. Perhaps it’s because I’ve largely written OOP off as a bad idea that shouldn’t have ever taken off like it did, and is certainly outstaying it’s welcome, but I find that Java, and even the JVM itself, to be a masters class in solving the wrong problem in the most complex possible way. The complexity in java seems to be like glitter, you can’t touch anything with getting covered in it, and once it’s on you you’ll never get it off. Even working with people that I generally hold in high regard as developers, I see that the ecosystem has forced them into patterns and architecture that I think is questionable- except it’s not because to do anything better would be to try to work against every single design decision in the language and ecosystem. There’s simply no reasonable way to write good Java, the best you can reasonably hope for is to write as little java as possible, and hope the absurd complexity giltter doesn’t spread to all of your connected services by way of the blind “the whole world is Java” assumptions that the JVM ecosystem wants to make on your behalf.

          I say Java here, but realistically I think that all JVM languages end up falling into the same gravitational well. I’ve been using Kotlin lately, and from what I’ve seen of Scala and Clojure they are all infected by the same inescabable fractally wrong view of the world that is imposed by the JVM, by way of the JVM itself being born from the primordeal ooze of bad decisions and oop-kool-aid that led to Java in the first place. Kotlin in particular suffers from being not only unable to escape the Java ecosystem, but also from generally being a poorly designed language. Everything it adds to java, it adds in such a superficial and impotent way that a slight breeze knocks over the facade and you realize you’re stuck back in the Kingdom of the Nouns all over again.

          1. 7

            I tend to agree about the java part. The constructs at your disposal requires you to write very very verbose code, even for simple things. But I disagree about the JVM bit. I find it a pretty good runtime system. Although it tend to eat its fair share of RAM, the GCs and the JIT are first class. Overall, you get pretty decent perf without too much thought. Also, Having written a lot of clojure, it’s vastly different from java, couldn’t be further from the Kingdom of the Nouns.

            1. 14

              The JVM feels to me like it was written for a world that just didn’t really ever happen. It promised cross platform compatibility, that never really materialized since there are only two real meaningful places where the jvm is heavily used these days (x86 linux servers and arm Linux phones). Even where the jvm itself is running on multiple platforms, it’s not running the same workloads across it. We would have been every bit as well off with a toolset that made native cross compilation feasible (go and rust), and probably would have been no worse off even with the old C and C++ cross compilation story. Love it or hate it, JavaScript is what actually fulfilled the promises that java made and never was able to keep.

              Other promises that JVM made either never made sense- language interoperability always existed before java, and exists outside of it now. All the JVM did was fracture the environment by making it nearly impossible to produce native code- it’s a vampire if you look at it in terms of interoperability, unless you want to use gcc to compile your java code. The isolation and runtime management is, consistently, 90% of the work involved in deploying any java application I’ve used, and at the end of the day everyone does that work twice now because most workloads are getting deployed in cloud native containers anyway- so the JVM is superfluous there. GC is a pain in the JVM and has been done as well elsewhere without requiring the rest of the baggage of its runtime and jitter.

              Looking at performance, I’m dubious that it has much going for it. It’s still not a contender in the same space as C or C++, and in many cases the pain of native interop make it slower than even python because python can rely on native code for a lot of heavy lifting. I’ve even seen fairly well optimized JVM code fail to keep up with reasonably (perf) naive Haskell.

              Even with instrumentation, the supposed killer feature of the jvm, I have yet to see anything I can’t get out of a native application with native tooling and instrumentation, and the case is getting weaker by the day as more and more application telemetry moves up and down the stack away from the application itself and into either tracing layers in front of services, or tooling built around things like ebpf that live very low down in the system and allow you to instrument everything.

              The JVM is at best a middle-of-the road performance language with a largely superfluous ecosystem. It might have been a good idea when it was created, and I have no doubt a lot of smart engineering went into its implementation, but it’s time we give it up and realize it’s a sunken cost that we need to leave to the history books as a quirky artifact of the peculiar compute and business environment of the early 90s.

              1. 3

                Clojure’s okay (and still way better than Java, IMO) but suffers from pretty poor error handling compared to other Lisp environments.

              2. 4

                I really don’t like how Java makes optimization of its runtime overcomplicated, then has the gall to make you deal with the complexity. There is no reason to be manually tuning GC and heap sizes when every other runtime, including CLR implementations, can deal with this efficiently and automatically. They might be complex, unlike the JVM, they’re not complex and making you deal with that complexity.

                1. 3

                  Just curious what you dislike about Kotlin’s design? It seems like you make two points: that Kotlin can’t escape Java and, separately, that it’s poorly designed. I agree with the former, but in light of the former, I find Kotlin to be pretty well-designed. They fixed Java’s horrible nullness issues and even kludged in free functions to the JVM, which is neat. Data classes are a band-aid, but still help for the 80% of cases where they can apply. Same with sealed classes (I’d much prefer pattern matching akin to Rust, Swift, OCaml).

                  1. 13

                    My biggest issue is that everything feels like a kluge. Null tracking at the type level is fine, but they didn’t really go far enough with the syntax to make it as useful as it could have been- rust does better here by allowing you to lift values from an error context inside of a function. The language tries to push you toward immutability with val and var, but it’s superficial because you’re getting immutable references to largely mutable data structures without even getting a convenient deep copy. Extension methods are a fine way of adding capabilities to an object, but you can’t use them to fulfill an interface ala go, or outright extend a class with an interface implementation ala Haskell typeclasses, so you’re left with basically a pile of functions that swap an explicit argument for a this reference, and in the process you are conceptually adding a lot of complexity to the interface of an object with no good associated abstraction mechanism to be explicit about it. Even the nature of the language as a cross platform language that can target jvm, llvm, and web asm seems fundamentally flawed because in practice the language itself seems to lack enough of a stand alone ecosystem to ever be viable when it’s not being backed up by the jvm, and even if you did have a native or web ecosystem the design choices they made seem to be, as far as I can tell, about the worst approach I’ve ever seen to cross platform interoperability.

                    Ultimately the features they’ve added all follow this pattern of having pulled a good idea from elsewhere but having an implementation that seems to not fulfill the deeper reason for the feature. The only underlying principle seems to be “make java suck less”. That is, of course, a bar buried so low in the ground it’s in danger of being melted by the earths core, and I would say they did cross over that bar- kotlin does suck less than Java, but what’s astonishing to me is how for such a low bar they still seem to have managed to cross over it just barely.

                    1. 4

                      I share every single one of those sentiments, but I’ve excused many of them specifically because of the limitations of being a JVM language. (interfaces at class definition, no const, no clones)

                      I’ve almost taken it upon myself to periodically go and correct people in the Kotlin subreddit that val does not make things immutable, and that Kotlin has not cured the need for defensive copies in getters.

                      I think the idea of making Kotlin cross-platform is totally stupid for those same reasons you point out. All of that is a limitation of wanting to be on the JVM and/or close to Java semantics. Why they hell would you want to export that to non-JVM platforms?

                      Thanks for the response.

                2. 12

                  I have a completely opposite opinion. Java is not the best language out there, I prefer Scala and Kotlin, but the selling point for me is the ecosystem: great tooling (tools simply work in lots of cases), great platform (lots of platforms are covered, really awesome backward compatibility, stability), great API (it might be far fetched, but I have a feeling that Java’s stdlib is one of the most feature-packed runtimes out there, if not the most?). The “magic” is the same problem as everywhere else; it’s magic until you know the details. Also just because there’s a dependency injection trend in the backend development world, it doesn’t mean that you should use DI in different projects. Interfaces of classes are a Java thing; it wouldn’t exist if the language was more sophisticated.

                  Maybe I’m comparing Java’s ecosystem to C++ – because with C/C++, the tooling is in appalling state, the standard library is awful and I’m not sure what it tries to achieve at times. So I guess I have a very low standards to compare to :P

                  1. 3

                    Java has an incredibly rich ecosystem, that’s true. What annoys me though, is that every single tool in the Java ecosystem is written in Java, meaning you have a ton of CLI programs which take a couple of seconds just to heat up the JVM. Once the JVM is hot and ready to actually do work, the task is over and all that JIT work is lost.

                    At least C/C++ tooling is fast :p

                    1. 2

                      That’s true, JVM startup time is a pain point. But there are several walkarounds for that:

                      • some tools use build server approach (gradle), so that startup time is less slow ;)
                      • some tools like sbt (scala build tool) use build server + shell approach, and it’s possible to use a thin client to invoke a command on this build server (e.g. ‘sbt-client’ written in rust). This makes Scala compilation take less time than compiling a C++ application.
                      • GraalVM native-image is pushed right now, which allows to compile JVM (java, kotlin, scala) application to native code without the use of JRE. This allows writing tools that have non-noticeable startup time, just like tools written in e.g. Go. I was testing some of my small tools with it and it was able to compile a small Clojure app to native code. This tool had same startup speed than a C++ application. Unfortunately, GraalVM can’t compile every app yet, but they’re working on it ;)

                      Also C/C++ tooling is fast, but C++ compilation is nowhere near being fast. Changing one header file often means recompilation of the first half of the project. Bad build system (e.g. in manually written Makefiles) that doesn’t track dependencies properly sometimes produces invalid binaries that fail at runtime, because some of the compilation units weren’t recompiled when they should be. It can be a real mess.

                  2. 10

                    I wish Java had a better audience around it.

                    That doesn’t seem terribly likely to happen.

                    1. Java was never aimed at programmers who value power, succinctness, and simplicity - or programmers who want to explore paradigms other than OO (although newer versions of the lanaguage seem to be somewhat relaxing the Kingdom of Nouns[1] restrictions). It was intended to improve the lives of C++ programmers and their ilk[2].

                    2. Java is frequently used in large, corporate, environments where programmers are considered (and treated as) fungible. “The new COBOL”, as it were[3].

                    3. The JVM itself allows programmers not falling into (1) and (2) to abandon the Java language itself - Clojure, Scala, Kotlin, and Armed Bear Common Lisp spring (heh) to mind. Most of the best JVM programmers I know aren’t actually using Java. Most of the ‘Java shops’ I’ve worked with in the past decade are now, really, ‘JVM shops’.

                    My observation is that most - to be clear, not all - people who continue using Java in 2020 are forced to do so by legacy codebases, and / or companies that won’t let them adopt new languages, even JVM languages. I honestly believe this is the proximate cause of the audience problem you describe. (Not the root cause, mind you).

                    Edited: I’m amused by the fact that the first two, nearly concurrent, replies both reference Yegge’s nouns blog post :)

                    [1] http://steve-yegge.blogspot.com/2006/03/execution-in-kingdom-of-nouns.html

                    [2] “We were after the C++ programmers. We managed to drag a lot of them about halfway to Lisp.” - Gosling. http://www.paulgraham.com/icad.html

                    [3] https://www.infoworld.com/article/3438158/is-java-the-next-cobol.html

                    1. 5

                      Java is a horrible language. No mortal can mentally hold on to a class hierarchy where inheritance is more than a few levels deep. Furthermore it is a bad way to add “another layer of abstraction” , because it just paints you more and more into a corner.

                      (Clojure is a great language, you can add layers of abstraction to solve problems, without just digging yourself deeper.)

                      1. 3

                        But one can write Java programs without abusing inheritance, and even pretty much without inheritance.

                        1. 1

                          Yes. I agree that Java is a horrible language, but class inheritance doesn’t even make the list of things I find poor about it.

                      2. 3

                        I don’t agree that Java is a good language at all, but I wanted to hard-agree at the distaste for magic annotations and DI frameworks.

                        1. 1

                          Java is actually a good language, it’s the ecosystem that kills it for me. By “the ecosystem”, I don’t just mean the tooling (e.g. Java build tools are universally awful AFAICT), but the developers themselves. So much Java I read is just “magic”. Magic annotations, magic dependency injection, interfaces over classes that there is only one of etc. etc.

                          I don’t agree with this - in my experience, “magic” is “code that integrates my application-specific functionality with a massively feature-rich general purpose framework”. It’s magic in the sense that you need to understand the enclosing framework to understand why those annotations are there and their semantics, but they do real work. Work I’d have to do myself if I didn’t use them.

                          You don’t see this much in other languages, but it’s because “massively feature-rich general purpose frameworks” aren’t common outside of Java. The ones that do exist seem to have punted on important architectural decisions - you don’t need a dependency injection framework if your data layer objects are just global values (I’m looking at you, Django).

                          I’ve definitely felt this urge before - why do I need all this spring crap? Then I end up re-implementing half of that magic myself and not as well.

                          1. 1

                            What language has tooling that you like? Curious what you are comparing the Java build tools with

                            1. 2

                              Rust and Go (at least since Go modules) I find both intuitive and fast. I am still not sure how to properly build a Java application without an IDE.

                              1. 1

                                $ ./gradlew build

                          1. 15

                            Clean code is a really good book. Even if it has some examples that are on the edge, and some examples that you don’t agree on, it doesn’t mean that rest of the examples are bad.

                            Most of the things from Clean Code is simply a good idea. I’m not sold on all points, but it’s a damaging reaction to “stop recommend” 1000 hints, just because 20 of them are bad (in the worst case). If everyone would use 25% of the hints that Martin suggested, the world would simply be a better place. Even if people would follow the “bad” advice from this book, it still would be a better situation than people inventing their own strange philosophies for e.g. naming things, that happen to change from variable to variable. From my experience, lots of people don’t even consider most points that Martin has proposed. And if there’s a value to the book, then it might be just to tell you what you should think about. Which is a good outcome I think.

                            1. 16

                              There are so many books out there, it it really necessary to settle for one that contradicts itself? It is such a red flag.

                              1. 5

                                Are there so many books on the same topic as Clean Code? I only know Code Complete, and then an incomplete, outdated smattering of language-specific ones including Eloquent Ruby, Effective *, and Smalltalk Best Practice Patterns.

                                1. 4

                                  How about The Practice of Programming by Kernighan and Pike?

                                2. 3

                                  I didn’t have an impression that the book contradicts itself.

                                  I don’t think the blog post does a good job with argumentation. Author’s rationalization after reading a paragraph is often completely different than mine.

                                3. 8

                                  These days I write maintainable code because I have been forced to maintain my own code. Martin’s ideas were a great help to get me started on the journey, and I still draw from them periodically. So yes, I think Martin is great learning material, with the huge caveat that experience is the best teacher and Martin’s ideas are not gospel.

                                  1. 9

                                    I have yet to see maintainable code written by someone who has not spent a few years maintaining code they wrote.

                                    This effect mostly seems to kick in around the two year mark; if you change jobs every two years you may have never seen the long term impact your work had on code health.

                                  2. 4

                                    What specifically is good about it? The specific points that this article makes do strike me as egregiously bad code - and moreover, it seems like the book’s dictums are fairly closely tied to the Java ecosystem and its mandatory object oriented paradigm. If I was writing code in Rust or Haskell, what advice in this book would even be applicable?

                                    1. 5

                                      Prefer small functions over large ones, prefer consistence when naming things, write tests for your code, prefer to document the app through code/naming conventions instead of comments but remember about adding comments if you need to, remember to maintain the comments as much as the code, think about maintenance aspect when writing code, perfer abstraction over code duplication.

                                      There are lots of things in the book that are general. Granted, lots of the things are aimed towards Java. But I think think that lots of things from the book are applicable to e.g. C++. Rust is not an exception (no puns here).

                                  1. 2

                                    Anybody can refactor some given source. Does Bob Martin actually write original code?

                                    1. 9

                                      Not anybody can refactor, and some people simply shouldn’t refactor anything. Lots of people have no idea what to focus on when writing code.

                                      1. 2

                                        Yeah, I guess the way I wrote my comment made it seem quite dismissive, which I regret. Really I was just wondering if Bob Martin writes original code, though I found some on his Github profile.

                                      2. 2

                                        Try refactoring a 10 year old java code base.

                                        1. 3

                                          Our term of art for similar things is “refucktoring”.

                                      1. 3

                                        It’s great, thanks for asking.

                                        I didn’t like the lockdowns due to the virus, but this forced my company to open the full-remote mode. I love it. I can focus on my work, do more than previously, nobody is interrupting me so I can focus on things, I don’t feel I’m wasting my life sitting in one spot in the office. I don’t waste time to commute, so I have more time for myself and my SO, my contact with my teammates has actually improved, because now we focus on organizing it, instead of trusting for it to be an organic process.

                                        Having to wear the mask is pretty annoying, and everyone treating the other person as potentially infected sometimes can be too, but I think the annoyance is mostly a result of focusing on wrong things.

                                        1. 45
                                          • Stream starting.

                                          • Tim Cook on stage. Empty theatres. Remote developers, developers, developers! Tim addresses BLM and social issues. For developers, this includes an entrepreneurship program for new black developers. Also talking the ‘rona, because that’s unavoidably a part of this. Because of the pandemic, this means the talks and workshops will be delivered remotely for free.

                                          • Craig on stage to talk about platforms. iOS 14. Homescreen changes? Looks like widgets (that expand?), expandable folders, and picture in picture on iPhone. App library at the end of home screen. Shows all apps in 2x2 buckets of automatic categories. Because of the app library showing all apps, you can modify home screen pages to be hidden to simplify your list. There’s also contextual suggestions, recently added, and search. In a category bucket, it’ll show most used apps. Widgets. Today view is shown. Multiple sizes including 2x4 and 2x2. Widgets can be dragged out of today view or inserted from home screen widget gallery. Smart stack has multiple widgets in a chunk and can automatically pick what widget to display. Picture in picture on iPhone, which is movable/resizable, can play while switching apps, and can be hidden away while playing audio. Siri is no longer a modal dialog and takes less time, popping up notifications or apps instead.

                                          • Yael to talk more about Siri. 25b requests each month. Handles more complex natural language questions. Audio messages supported. Dictation is now run on device for privacy. Translation app, which can handle conversations (special case UI to make it easier for two people) and runs offline w/ neural engine devices.

                                          • Craig back to talk about iMessage. 2x increase in group messaging.

                                          • Stacey on stage to talk about iMessage. Pinning messages and animated display of notification. More memoji. Threaded conversations with mentions (and group chat messages can only appear with a mention if you want). Group chat avatars or avatar cloud display.

                                          • Craig back to talk about maps and such. Maps. It’s a lot better than its infamous old reputation. UK/Ireland/Canada next. Discovery/routing features?

                                          • Meg to talk about maps. Guide feature for recommending POIs. Environment-prioritizing routing options, including cycling. Cycling routing can pick bick lanes and considers stairs/hills/busy roads, and avoid those kinds of things all together. EV routing that tracks in charging location, current charge level, station cable compatibility, and hypermiling. Green zones/congested areas shown. Chinese license plate numbers can be entered in case you’re in the PRC.

                                          • Craig back. CarPlay. 97% US availability, 80% worldwide. Wallpaper? Parking, EV charging, food ordering apps available on it. Car keys suck.

                                          • Emily on stage to talk about how your car keys suck - buy an iPhone instead. New BMW 5-series will support unlocking it with your phone via NFC. The key is in the secure element and can be disabled remotely, or shared by iMessage (including restricting access with that provided key).

                                          • Craig back. It’ll be available on iOS 13 too. They’re going to standardize it. Apparently that’s what the U1 ultra-wideband chip was for. App store. Contextual app store prompting for “app clips” (sounds like that instant app thing on Android?). They can use Apple Pay and Sign in with Apple. Clips go to a section of an app are ephemeral and used only for the context used, or available in recent used apps. Apps can be launched via geofencing, web, maps, NFC, QR, messages, custom circular 2D barcode, etc. Larger apps can create clips for clients. 10 MB or less, native SDK. Can download full apps. That’s it for iOS.

                                          • iPad OS. Trackpad and markup/pencil stuff and AR recap from last year. iPad OS 14. Designed for iPad stuff? It was kinda about bigger iPhone apps, but now it’s turned into iPad-focused stuff.

                                          • Josh to talk about iPad OS. It also gets widgets. Photos app has a sidebar now, which doubles as a drag container. Other apps are also getting sidebar drag/nav improvements. Toolbar dropdowns (for old Mac OS purists, they can also be hold to select). Music app gets the same changes too for basically a new iPad oriented app vocabulary.

                                          • Craig back. The Siri UI change also affects iPad, and other apps like calling get discrete non-modal popups. Search changes. It’s also non-modal too and can be done from any app. Universal search can search across things (including app launching), Siri questions, web search, mail/contact search, etc. Pencil improvements. Scribble? Handwrite into text fields.

                                          • Jenny to demo it. Pausing a simple shape drawn at the end will make a more formal version of the shape with same size and angle. Handwriting can be selected like typed text. This is done with on-device ML. Space can be inserted in between canvases. HWR can be inputted directly into system text fields. Handles CJK mixed in with Latin text. Like typed text, it can recognize addresses and phone numbers with data detectors. Can copy HWR as text to paste.

                                          • Craig back. Things in iOS will apply to iPad OS… of course. AirPods.

                                          • Mary-Ann to talk AirPods. They’ll automatically switch between devices without manually changing with context. Spatial audio. 5.1/7.1/Atmos and beyond emulation? On my wireless earbuds? They’ve apparently got the algorithms for that, that accommodates for flawed real world problems like “people moving their heads/iPad” (using a gyro) so the spatial space reorients it around devices.

                                          • Kevin to talk about watchOS. watchOS 7. Multiple complications for apps. Chronograph with tach complication. Customization overhaul. SwiftUI complications. Sharing watch faces, including curated faces, and can pull missing apps from a face. Apps can have readymade faces. Maps on watch. Cycling applies here too. Fitness.

                                          • Julz to talk about fitness. Dance workout category. Accelerometer/gyro can be used to determine what part of the body is moving. More including cooldowns, full training, etc. App renamed to fitness to reflect intent. Health. Sleep tracking.

                                          • Vera to talk about that. Can help goals, and does it across devices. Wind down will help create a sleep ceremony (experts say it helps?) and “wind down” will calm you down (with DND) before sleep and provide shortcuts for whatever ceremony you need. Haptic alarm for gentle wakeup. ML model? ML model. Uses things like breathing to determine sleep. Most of the sleep stuff is available on iPhone too. It can tell how long you actually wash your hands and if you do it properly and for how long (with gyro/accel/mic to determine). Translation available too.

                                          • Craig back to talk about privacy. They apparently take it seriously! Minimize data gathered. Do it on the device as much as possible. Transparency and control about data. Sign-in with Apple is popular and likelier for developers. Now developers can allow users to convert their accounts to sign in with Apple.

                                          • Katie on stage for privacy stuff. Approximate location. Erik talking about mic/camera usage in apps and indication of it. Tracking control extended to apps. tl;dr of privacy policy (inspired by nutrition fact labels) of an app on the store for all devices.

                                          • Craig back. Home stuff. Devices should be easy to set up, don’t compromise privacy, and enrich other devices.

                                          • Yah to talk about HomeKit. Amazon, Google, and others have came together with Apple to come up with standards. HomeKit open sourcing. Home app can suggest events/rules for new devices. Adaptive lighting. Activity zones for cameras (regions). Face recognition using data you already have. Notifies who rings the bell. Apple TV integration.

                                          • Cindy talking about Apple TV. Gaming improvements. Multiuser support for games. Xbox Elite/Adaptive controller support. Fitness integration. Picture in picture on TV. AirPlay improvements. TV+ has one 1billion supported devices out there? New Asimov’s Foundation adaption on TV+ for next year.

                                          • Craig to talk about Mac OS. Crack marketing team decides the name Big Sur. Design changes? Alan on video to talk about that. Depth, shading, transluency for hierarchy. Symbol library. Content focus, simplify appearance of other things. Changes to control appearance. New sounds. It’s not as flat! Craig will demo it. Looks kinda like iPad OS superficially. Menu and (rounded) dock is translucent. CSD-like toolbars and sidebars. Glazed sidebars. Finder, iWork, Photos, Calendars, Podcasts, etc get changes. Menu padding changes. Menu bar applets are visually tweaked. Control centre on Mac. Applets can be dragged from the control centre to the menu bar. Notification centre is less modal. Grouping. Widgets are on Mac too. Messages on Mac OS improvements, including search, stickers, effects, synced pings, groups, and photo pickers. Maps improvements, including street view and everything else mentioned. Catalyst. Playgrounds on Mac. More control over Mac UI. Menu and keyboard APIs. Updated system controls. System apps are Catalyst, (attempting to) providing a Mac experience, just with UIKit instead. Lots of third party apps! Safari improvements. JS performance improvements. Page load improvements. Battery life remains good. Privacy protection and tracking visibility with privacy reporting. Password breach detections. Extensions via WebExtensions available in MAS. Extensions have privacy repercussions in other privacies, so Safari can provide ephemeral/per-site enabling.

                                          • Beth on stage to talk about Safari. Customizable start page. Extensions can be enabled from Prefences. As an example, the recipe filter extension will just focus on the recipe on a page. It can’t do anything yet because it has no permissions though. She allows it to run for one day, and it’s disabled after that. Trackers are shown with privacy report. Tab improvements. Yes, there’s icons again, with tooltip previews! Close all tabs to the right! Translation support.

                                          • Back to Craig. Back to Tim. Red letter day for the Mac! TRANSITIONS? They did it! ARM Mac with Apple’s own CPU!

                                          • Johny to talk about silicon. They started with iPhone, and have ten generations of their own design. 100X CPU perf improvement. Then iPad. 1000X GPU improvement over ten years. They think because of that, it could scale to Mac. Then they go lower with Watch SoC design. 2b SoCs shipped. Performance/power/thermal balance. Desktops/notebooks have different consideration. Apple thinks they can ship the best balance. It’s not just the CPU, but things like uncore and coprocessors, as well as how good you can make it. ML/neureal coproc. More stuff along those lines. Mac SoCs with unique featureset but common architecture. Tight HW/SW integration.

                                          • Craig back to talk about integration and the transition for dev/users. Native apps, baybee! Everything in the stock OS and first-party (including pro apps) will be native on release. Xcode of course can target this with the next version. Just recompile! Universal 2 for fat binaries. Microsoft is porting Office, and so will Adobe. The Apple Development Platform has an A12Z as an iPad would. The previous demos were ARM based too. Word runs on ARM. So does Excel. And PowerPoint (with Metal rendering). Lightroom. Photoshop. It handles big files fine. FCPX runs on ARM with full real-time effects. FCPX also uses the ML chip, and uses it for some effects. Multi-core 4K ProRes running on A12Z. Same optimizations apply. Users should be able to run all apps on day 1, right? Rosetta was available before, and now it’s translating x86 to ARM and apparently fast. Translation happens at install time, as well as handles JITs. Virtualization is supported on ARM Macs, including Linux/Docker (a Debian with Gnome 3 VM was shown).

                                          • Andreas talking about the transition and tooling. Maya running on Apple silicon with Rosetta? Games are supported; Shadow of the Tomb Raider with Metal is shown emulated while remaining performant. Parallels shown with Linux. You can run iOS/iPad apps unmodified in a window.

                                          • Craig back. Most apps should “just work” and they’ve prepared for this. Porting should be just a few days. Quickstart program. Forums, labs, DTKs, DTS supports, and docs for transition. The new DTK is a Mini with A12Z, 16 GB RAM, 512 GB SSD, with beta Mac OS and Xcode. HW ships this week?

                                          • Back to Tim. Courage! Timeline? Devs start this week. Users will get a system at the end of the year and transition will finish in two years. Intel Macs will be supported, and new ones are still in the pipeline. OS betas available today. Public beta (including Watch) in July. RTM in Fall. Consultations and videos available for remote WWDC.

                                          • Fin? They did the proper pandemic things making all this too. Fin.

                                          1. 10

                                            Awesome summary, and I appreciate that you included each presenter’s name.

                                            1. 6

                                              Thanks for the summary. A couple of interesting things:

                                              Rosetta was available before, and now it’s translating x86 to ARM and apparently fast

                                              ‘It’ probably isn’t. Rosetta was Apple’s brand for a dynamic binary translator from a Manchester spin-out called Transitive Technology. The company was bought by IBM (who, at the time, wanted a SPARC-to-PowerPC translator to help people who bought expensive hardware to migrate to buying IBM’s expensive hardware). According to rumour, Apple had a separate license for each version of OS X that they bundled Rosetta with and expected to be able to negotiate better terms over time because fewer people would care. After the IBM acquisition, IBM (still annoyed with Apple over the anti-IBM commentary from Jobs over the Intel switch) refused to license Rosetta at all.

                                              So it seems quite unlikely that this is the same Rosetta as the previous version, so I wonder what the lineage is. Somewhat amusingly, the x86 on ARM emulator that ships in Windows is descended from VirtualPC for Mac, an x86-on-PowerPC emulator that Microsoft ended up owning when they bought Connectix (which they bought for VirtualPC for Windows, a mostly unrelated x86 hypervisor product.

                                              I presume that, given how much code is shared between iOS and macOS, Apple has been testing all of their userspace stuff on both platforms for quite a while and most third-party stuff doesn’t include any assembly code and so will be a straight recompile. I’m curious to know how much the ARM Windows port of Office helped with the ARM macOS port.

                                              1. 6

                                                I doubt there’s much of a substantial (direct or indirect) lineage between old-time Rosetta and this one, but it makes sense that they’d choose the same name, considering how unexpectedly smooth the last transition went. I remember reading about it and self-assuredly smirking and thinking this was going to fail so badly it’ll almost be funny. Running PowerPC binaries on top of the register-sarved x86, at a time when hand-rolled assembly still popped up pretty often in commercial (and lots of non-commercial) code? Hah. But I could get games to run, on a Hackintosh no less (a leaked vmware image popped up at some point and, with some trickery, you could eventually get that on a physical disk and have it boot, which I did, a testament not so much to my m4d h4x0r sk1llz bot to how much free time I had fifteen years ago…)

                                              2. 4

                                                Thanks! Though I feel there’s not enough “amazing’s” and “incredible’s” in your summary :D

                                              1. 2

                                                I was wondering if we could solve this by having pointers and content in email where previous emails are included only as a pointer.

                                                1. 5

                                                  There is the In-Reply-To header, which any decent mail client will use to reconstruct the thread structure.

                                                  1. 3

                                                    There is a Message-ID header, at least in theory.

                                                  1. 12

                                                    I’m having a hard time understanding why Signal is being treated as a “private” solution, when it requires to submit a real phone number. SIM cards are tightly coupled with real name and citizen identification numbers, which is the ultimate goal of every identification technique. Well, some countries maybe allow buying anonymized SIM cards, but I don’t think it’s legal in lots of countries. Plus, the privacy policy of Signal contains this clause:

                                                    Information we may share: Third Parties. We work with third parties to provide some of our Services. For example, our Third-Party Providers send a verification code to your phone number when you register for our Services. These providers are bound by their Privacy Policies to safeguard that information. If you use other Third-Party Services like YouTube, Spotify, Giphy, etc. in connection with our Services, their Terms and Privacy Policies govern your use of those services.

                                                    Does that mean that they share the phone number with multiple third-parties? Maybe I misunderstand something, but it doesn’t sound very “private”.

                                                    In other news, this article contains so much assumptions that something is bad, and something is good, without giving any rationalization why author thinks this way. This forces me to not treat the article seriously ;)

                                                    1. 6

                                                      Does that mean that they share the phone number with multiple third-parties? Maybe I misunderstand something, but it doesn’t sound very “private”.

                                                      Your phone number is shared with their verification service. Your phone number is not shared with YouTube, Spotify, Giphy, etc..

                                                      Signal knows you use their service. They do not know with whom you’ve communicated.

                                                      1. 4

                                                        The same reason people recommend Protonmail and Tutanota, which don’t comply with open standards like IMAP and the latter of which makes claims about things being open source when it’s demonstrably untrue.

                                                        Hype, spin and assuming people are being fully open when their definition of what constitutes ‘fully’ can vary wildly.

                                                        1. 4

                                                          I think the phone number requirement makes a lot of sense, especially for email-related services. Abuse is rampant. I worked on a email-based support system (e.g. like ZendDesk) and we had people using scripts to keep signing up new accounts and spam until they hit the rate limits. It didn’t matter that we limited the number of recipients: they would just send loads of emails anyway. They just paid the €5/month to avoid the free-trail rate limits which existed solely to prevent abuse (using a stolen CC?) With really aggressive rate-limiting and limits I eventually solved most of the problem, but people still tried, and it still affected our sender reputation (although within manageable levels). The entire thing was no fun at all, and the more protection you have against abuse like this, the better IMO. This doesn’t just protect the service, but also (potential) scam victims.

                                                          tl;dr: spammers are assholes.

                                                        1. 2

                                                          I’ve always enjoyed running StarCraft from commandline, or from some search box, where I need to type its name in order to run it ;)

                                                          1. 2
                                                            • Various C/C++ sanitizers: ASan, UBSan, etc
                                                            • Earlier than Sanitizers: Valgrind (not working on recent macOS due to restrictions incorporated by Apple, but works on Linux)
                                                            • Fuzzers: libfuzzer, honggfuzz

                                                            I think those are the most influential tools for me, they’ve shown me that it’s nearly impossible for me to write safe code using C++ or especially C, as well as there is no such thing as easy file format parsing code ;)

                                                            1. 2

                                                              A lot of the nastiest bugs come from components that are all correct in isolation but interact in a dangerous way.

                                                              Well, let’s say people want to build a bridge. They start the construction work from two sides at once, so it will be faster. They want to join those sides in the middle. So after a month of construction they finally join and they discover that they are off by 1 meter, who’s fault is this? The system fault? Earth’s fault? Maybe Isaac Newton is the culprit?

                                                              I think it’s the fault of some person who was involved in the construction process. Either designer, or maybe a person who’s job was to verify the requirements are being correctly implemented, I don’t know, but I do know that someone has done a sloppy job.

                                                              Saying that it is the fault of the system is a manifestation of incompetence, because if you say this, it means that you probably don’t know where exactly the problem is, don’t even know who’s fault it was, as well as you don’t know how to prevent this fault from occurring again.

                                                              1. 6

                                                                Well, let’s say people want to build a bridge. They start the construction work from two sides at once, so it will be faster. They want to join those sides in the middle. So after a month of construction they finally join and they discover that they are off by 1 meter, who’s fault is this? The system fault? Earth’s fault? Maybe Isaac Newton is the culprit?

                                                                Last year I interviewed a bunch of hybrid trad/software engineers, and my main takeaway was that all analogies by software engineers about trad engineers are wrong. One person didn’t have this exact issue, but had a very similar one. On investigation the root cause was something like “the soil under one particular support compacted slightly differently when it was frozen and it rained”, in which case the next questions were 1) why was that enough to throw things off, 2) why wasn’t that detected, 3) is that something they should add to their process, or was the overhead enough to make it unfeasible, 4) …

                                                                Saying that it is the fault of the system is a manifestation of incompetence, because if you say this, it means that you probably don’t know where exactly the problem is, don’t even know who’s fault it was, as well as you don’t know how to prevent this fault from occurring again.

                                                                It’s the exact opposite. If you say it’s one person’s fault, you leave all of the systemic issues in place to keep causing problems later. Historically, this approach has failed again and again. For Nancy Leveson’s Engineering a Safer World:

                                                                During and after World War II, the Air Force had serious prob-lems with aircraft accidents: From 1952 to 1966, for example, 7,715 aircraft were lost and 8,547 people killed [79]. Most of these accidents were blamed on pilots. Some aerospace engineers in the 1950s did not believe the cause was so simple and argued that safety must be designed and built into aircraft just as are performance, stability, and structural integrity. Although a few seminars were conducted and papers written about this approach, the Air Force did not take it seriously until they began to develop intercontinental ballistic missiles: there were no pilots to blame for the frequent and devastating explosions of these liquid-propellant missiles. In having to confront factors other than pilot error, the Air Force began to treat safety as a system problem, and System Safety programs were developed to deal with them.

                                                                1. 5

                                                                  How do you build a bridge from two sides and make them meet in the middle? Imagine it’s never been done before. How do you ensure they actually meet in the middle?

                                                                  Well, if you’re good at trying to build bridges, you sit down, ideally with some other smart people with a broad spectrum of disciplines, and you write down everything that could go wrong with the process. You figure out how wrong each thing could go, and you come up with a plan to mitigate each thing. Then in the real world, something happens that you didn’t anticipate (and often literally couldn’t anticipate), you work to understand it, and figure out how to compensate for it. Then the next time someone builds a bridge starting from both sides at once, they learn from your mistakes.

                                                                  Case study: SpaceX rocket explosion of Sept 1, 2016. A rocket exploded due to a complicated and not super likely series of events that made a composite tank fail. As far as I understand, nobody foresaw this happening… because nobody had ever used composite tanks carrying helium dunked in liquid oxygen at the temperatures that SpaceX was working with. It was a new and unforeseen failure mode. Who did a sloppy job there? The person who wrote the requirements? The person who signed off on them? The person who designed the tank to those requirements? The person who manufactured the tank?

                                                                  That rocket and payload cost, I dunno, something like a couple hundred million dollars. Compare with, say, a major AWS outage or two. Some of those have probably cost about as much, all told. And you know what? Nobody’d ever built AWS before either.

                                                                  Things fail. Engineering is a process of planning to minimize failures, and testing to try to catch failures before they matter, and then if something fails anyway, figuring out how it happened to ensure that they don’t fail the same way twice.

                                                                  1. 2

                                                                    There is a difference between doing something that hasn’t been done before, and doing something that has a well known production methodology. You’ve assumed just the first case, but I had an impression the article talks about all cases.

                                                                    It’s true that people make mistakes, even in cases where the methodology is well known. That’s why when a guy from my team makes a mistake in the code, because he didn’t perform some null check, I’m always telling – people make mistakes, let’s do a fix, release update and we’re done. That doesn’t mean the problem wasn’t his fault. It was his fault; we only choose not to make any problem because of it, because mistakes happen all the time, and I’m certainly not an exception.

                                                                    Contrary to this situation, where a new technology is being worked on, so that the majority of people are not competent in it (this is a normal situation; it’s impossible to be competent in an area that is new) it also will be someone’s fault. Sometimes the supervisor won’t even know who should be doing additional verification because the area still hasn’t been researched that well in order to know what methodology to use, but this only means that the manager is at fault here, because the manager tries to do something that he doesn’t know that much about. In cases of companies that want to be pioneers, this fault and losses generated by the accidents are taken into consideration when building business plans, and sometimes even expensive faults are still acceptable, but I don’t think it’s okay to say that nobody is to blame for any accidents.

                                                                    As for your question, I have no idea who was to blame for the SpaceX explosion, because I don’t know anything about rockets.

                                                                    As far as I understand, nobody foresaw this happening… because nobody had ever used composite tanks carrying helium dunked in liquid oxygen at the temperatures that SpaceX was working with.

                                                                    And this makes the accident okay? I mean, if someone doesn’t think about bad outcomes because the people are outside of their competence, then it’s okay to make mistakes? I still think that there was a person that should think of him/herself as being accountable for the fault. I’m not saying the person should be fired from SpaceX or anything; it might be the case that this person is still the best person for the job and still nobody would do it better. But saying that it was nobody’s fault tells me only that someone doesn’t have enough information to be able to tell what exactly went wrong (e.g. in the production process methodology).

                                                                    Being wrong about something shouldn’t turn anyone into a black sheep. It shouldn’t put any social stigma on that person, because only the person that didn’t do anything in his life can say that he’s always right. I think that any punishments or stigmas should be conditioned by the answer to the questions: 1) ‘what this person has done in order to minimize the risk’ and 2) ‘what was done in order not to make the same mistake again’, and it shouldn’t be about if it’s the person’s fault or not.

                                                                    1. 3

                                                                      I think that we’re both conflating two different things: Whose FAULT something is, vs. whose RESPONSIBILITY something is.

                                                                      I think that any punishments or stigmas should be conditioned by the answer to the questions: 1) ‘what this person has done in order to minimize the risk’ and 2) ‘what was done in order not to make the same mistake again’, and it shouldn’t be about if it’s the person’s fault or not.

                                                                      This is exactly what I want, yes. The way I see it, “fault” is worthless for these goals. Saying “it’s my fault” doesn’t really help make anything better. Saying “it’s my responsibility” IS useful, it means someone is going to take action to make sure it doesn’t happen again. “Blame” is pretty worthless for actually getting anything done IMO, it just makes people afraid of failing. Failure is part of life. Blame and fault, as the original article says, “[do] nothing to help us fix defects.”

                                                                1. 5

                                                                  In the issue comments I found repeatedly a proclamation that „All software is political“.

                                                                  This is generally not true. There might be some „political“ software, but usually software is simply a tool. It is not good or bad* – it can be used for good or bad or neutral purposes, just depending on who and how is using that software.

                                                                  And there is also software or development style that is explicitly apolitical – Sane software manifesto says:

                                                                  In order to contribute, it must not be required: … to sign any political, religious or other proclamation or agree with it.

                                                                  P.S. Yes, free software has some political undertone, or I would rather say ethical, but it is very strictly defined and there are clear boundaries that prevent bending and misusing this term. Free software can be used by anyone for any purpose.

                                                                  *) now I am not talking about code quality, but about the ethical dimension

                                                                  1. 13

                                                                    The inception of the Free Software movement was inherently political, and the recuperation of that movement into a more business-friendly Open Source movement was also political. Licensing software using a FLOSS license is a political act.

                                                                    1. 2

                                                                      Yet the success of the open-source movement in relation to the failure of the free software movement (at least, according to their goals) is almost 100% due to the FSF’s politics. Companies would rather use open-source software rather than free software because there’s less legal bullshit to go through. Additionally, companies have been less inclined to license their own software with the GNU GPL and have chosen alternative licenses that are more permissive and don’t place so much burden on the author to “give credit where credit is due”.

                                                                      I love the FSF, GNU, and the movement it all stands for. But in my opinion, the world has mostly left that concept of “freely available software that you have total control over” behind. Especially in the current “rental” climate where less software is actually owned by a user.

                                                                      1. 5

                                                                        Companies would rather use open-source software rather than free software because there’s less legal bullshit to go through.

                                                                        You use company adoption as the yardstick for success here but I would counter that it is entirely irrelevant to the political goals of Free Software.

                                                                        (P.S. my use of the word recuperation above was deliberate.)

                                                                        1. 3

                                                                          Open source is hardly a success. It’s companies struggling over control of software for their own interest (that very often is not aligned with the interest of the community) or bright people working for free for companies and be happy about the theft of time and energy. Corporate adoption and investments for control is their own metric of success but arguagly one that reflects the wellbeing of the commons.

                                                                          1. 4

                                                                            hardly a success

                                                                            What? This makes very little sense. Most of the software running the Internet is open source. Throw a dart at the list of top 100 tech companies, they’ve probably open sourced major libraries that have gone on to spawn entire industries.

                                                                            The Linux kernel, ffs.

                                                                            I’m confused at your argument. What is it you define as “success?” Adoption? Growth? Longevity? Monetary return?

                                                                            1. 3

                                                                              Be useful to people, solve problems in the real world (ideally problems that aren’t created other open source software), make the world a better place.

                                                                          2. 0

                                                                            ‘Free’ and ‘open source’ are synonyms. Companies don’t use open source software instead of free software. Using open source software is using free software. Using free software is using open source software.

                                                                            Copyleft and permissive software licenses are all both free software licenses and open source software licenses.

                                                                            1. 2

                                                                              No, they are not synonyms. Free software does no need to be gratis, nor does open source software imply that you have the freedom to change and distribute that software - even in exchange for money - like free software gives you. This distinction has been made clear so many times by now that it is surprising to see the claim that these two are synonyms.

                                                                              1. 1

                                                                                No, they are not synonyms. Free software does no need to be gratis

                                                                                Nor does open source software.

                                                                                nor does open source software imply that you have the freedom to change and distribute that software

                                                                                Yes it absolutely does imply that you have the freedom to change and distribute that software. The Open Source Definition requires:

                                                                                “The license must allow modifications and derived works, and must allow them to be distributed under the same terms as the license of the original software.”

                                                                                This distinction has been made clear so many times by now that it is surprising to see the claim that these two are synonyms.

                                                                                It’s been stated over and over again by everyone from the FSF to the Open Source Initiative that, ignoring some very idiosyncratic edge cases, ‘free software license’ and ‘open source software license’ are synonyms. The cases where the FSF approves and the OSI doesn’t or vice versa is generally because one of the them considers it too vague to be a valid license, such as with the Artistic License v1 or some issues with public domain licenses in Europe. Or to put it another way: if you put the FSF people in charge of evaluating licenses under the OSI definition and the OSI people in charge of evaluating licenses are free or not, they’d come to the reverse conclusions. The requirements for something to be a free software license are virtually identical to the requirements for something to be an open source software license.

                                                                                RMS: The term “open source” software is used by some people to mean more or less the same category as free software. It is not exactly the same class of software: they accept some licences that we consider too restrictive, and there are free software licences they have not accepted. However, the differences in extension of the category are small: nearly all free software is open source, and nearly all open source software is free.

                                                                                1. 1

                                                                                  “The license must allow modifications and derived works, and must allow them to be distributed under the same terms as the license of the original software.”

                                                                                  If the original licence says the software can not be used for or distributed by individuals and companies who work in a certain industry - defence is an example which has come up several times, police would be another - that software is not free software.

                                                                                  1. 1

                                                                                    Nor would it be open source software.

                                                                                    Have you ever actually read the open source definition?

                                                                                    “The license must not discriminate against any person or group of persons.”

                                                                                    “The license must not restrict anyone from making use of the program in a specific field of endeavor. For example, it may not restrict the program from being used in a business, or from being used for genetic research.”

                                                                                    1. 0

                                                                                      OK, if that clause is part of the open source licence (there are many) the distinction gets less clear. This used to be a problem back in the day when ‘open source’ and ‘free software’ started to be recognised as two possibly distinct licence types. It still is for some licences (e.g. [1], “The license above does not apply to and no license is granted for any Military Use of the Licensed Patents.” but they do seem to be getting more rare.)

                                                                                      [1] https://www.cs.ucdavis.edu/~rogaway/ocb/license2.pdf

                                                                                      1. 1

                                                                                        OK, if that clause is part of the open source licence (there are many) the distinction gets less clear.

                                                                                        That clause is a restriction on what constitutes an open source license. It applies to all open source licenses by definition.

                                                                                        1. 2

                                                                                          Ah, but that is where the shoe wrings. Open source has become a generic term which is applied to any and all software for which the source is not hidden. The OSI has tried - and, as far as I can see, failed - to rein in the term to only encompass those licences which abide to the directions set forth in their licence, other software should be called ‘source-available’ or similar such constructs.

                                                                                          1. 1

                                                                                            the shoe wrings

                                                                                            I love this translation of “där skon klämmer”, but I think a better English is idiom is “there’s the rub”.

                                                                                            1. 2

                                                                                              It is actually a translation of “daar knelt de schoen”, an idiom which exists in many Germanic languages (the one cited being Dutch), English being one of them. Proverbs citing shoe-related woes have been used for many centuries, Shakespeare and his contemporaries were rather fond of these expressions which can be found scattered around their proze: I feare me theres s shooe wrings her i’th instep, of my yong [sic] Shooemakers making was a way of referring to a pregnant woman in a play from 1540.

                                                                                            2. 1

                                                                                              Open source has a definition and is still being used according to that definition. I have never seen anyone refer to anything that isn’t open source as ‘open source’ without having many comments pointing out the incorrect use of language and then usually an apology.

                                                                            2. 1

                                                                              Most developers who write open source (or free, if you will) software either aren’t very familiar with the politics of Free Software, or explicitly reject it. A well-known example of this is Linus Torvaldus, but there are many more.

                                                                              Many who use the GPL simply want to ensure people contribute code back, nothing more. I think Free Software as a political concept is not particularly common, even among people who contribute to it, and even less common outside of it.

                                                                              1. 2

                                                                                Torvalds doesn’t reject Free Software, he rejects the tivoization clause(s) in GPLv3.

                                                                                1. 2

                                                                                  He’s been pretty critical of the concept of Free Software, and sharply critical of Stallman and the FSF, and not just about the GPL3. He’s often said that he mostly sees open source and the GPL has a simple practical matter (“it just works best, and sending back your patches is just basic fairness”), and has also said that he doesn’t really mind that proprietary software exists (which is quite different than the political position of the FSF).

                                                                            3. 17

                                                                              Nothing is apolitical, because nothing can exist outside of the political (social) climate in which it is created or consumed. Calls to keep politics out of X are political, however, because they distill down to a tacit defense and support of the status quo.

                                                                              1. 9

                                                                                This argument has no merit, as you could equally apply it to the choice of condiments you put on a hotdog.

                                                                                1. 5

                                                                                  It’s political in a very narrow scope; the one of producing the software. The reverse conclusion that some seem to make is that it is a justification to throw even more politics into software development. It is used as a strong-arming argument that disrespects the intent of the author.

                                                                                  1. 8

                                                                                    Calls to keep politics out of X are political, however, because they distill down to a tacit defense and support of the status quo.

                                                                                    You have to be trolling. Some people are just sick of everything being a political discussion.

                                                                                    1. 13

                                                                                      I think the counter here would be that, if you are sick of discussing a political issue, it is likely because the issue does not affect you, which is in some cases due to what might be described as social/cultural/whatever privilege: hungry people don’t often become “sick of” talking about food.

                                                                                      I’m a straight white upper class American male and I both empathize somewhat with your sentiment and do often get tired of every discussion becoming political (hence why I read lobste.rs 100x as often as the orange site) but I must concede some validity to the argument that my position in society is what lets these political discussions be just “boring” to me instead of terrifying and immediately relevant.

                                                                                      1. 13

                                                                                        I think the counter here would be that, if you are sick of discussing a political issue, it is likely because the issue does not affect you

                                                                                        And sometimes, you are powerless to affect it.

                                                                                        Racism exists everywhere in the world, but the form it takes in Bulgaria and elsewhere in the world is unlikely to line up with the American discourse. Imagine how you’d feel if people vehemently demanded you pick a side about the Indian citizenship law, and saw your unwillingness to comply as an indirect endorsement of the other side’s position? Because this is what the internet is like for non-Americans, at the moment.

                                                                                        1. 6

                                                                                          if you are sick of discussing a political issue, it is likely because the issue does not affect you

                                                                                          Bear in mind that even activists and volunteers need to decompress.

                                                                                          One can’t be 24/7 involved in the same thing or you will burn out. Not every conversation can be about the same topic, over and over again.

                                                                                      2. 3

                                                                                        Nothing is apolitical

                                                                                        It’s not true. The action itself can be apolitical at the same time when analyzing the results of the same action can be political. If I stare at a tree because I find it relaxing, it’s not political. But the realization that I’m at the park staring at the tree instead of vandalizing public monuments in a name of some idea, can be political.

                                                                                        It’s similar to mathematics. If I eat an apple because I’m hungry, the action itself is not mathematical. But the number of apples in the area I live in will decrease by 1, so it will be a mathematical result only if you use mathematical reasoning when interpreting the situation.

                                                                                        1. 3

                                                                                          Maybe this would help you understand:

                                                                                          … People are different and have various opinions on various topics. But the pure free software ideas are a common interest which leads people from different groups and with different backgrounds to cooperation and shows them the way how to talk each other and eventually build a friendly and respectful community. It is much better than if people from different groups stay in their own bunkers and just bark at each other.

                                                                                          Future of the Free Software Foundation

                                                                                          1. 2

                                                                                            If you want to make something political you can, not matter what it is. Eating a peanut butter sandwich can be political. Washing your hair can be political. Walking to your work can be political. Washing your hands can be political.

                                                                                            That does not mean these things are political, only that you choose to make them political. This is a personal choice which does not need to - and often does not - transfer to others who get to make their own choices about what they consider to be political and what not.

                                                                                            That last statement is political, it is the freedom of thought and expression which is one of the pillars most of our societies are built on. Think well before you demolish this pillar, it was built for a good reason.

                                                                                            1. 0

                                                                                              Let’s suppose, for the sake of argument, someone came into your supermarket and demanded you change the labels on the white pepper and black pepper (to, say, retted and unretted pepper, or pepperseed spice and peppercorn spice, or any other term that didn’t mention colours) because the words ‘white’ and ‘black’ are racist and political.

                                                                                              You respond ‘no that’s ridiculous, there’s nothing political about white and black pepper’. They respond ‘everything is political’.

                                                                                              Ponder that.

                                                                                              1. 4

                                                                                                You think you’re making a point, but you’re not.

                                                                                                1. 3

                                                                                                  Well, for example, electron recently changed whitelist/blacklist to allowlist/blocklist, and Chromium did the same some time ago.

                                                                                                  1. 5

                                                                                                    A blacklist is literally a list of bad things, which are clearly bad because they have the ‘black’ quality.

                                                                                                    Black pepper is a tasty spice.

                                                                                                    1. 1

                                                                                                      Nonsense. Bookkeepers and accountants rejoice when the numbers are ‘in the black’ but shudder to see them go red. Here, black is good, red is bad. Is this a different black from the one used in the blacklist?

                                                                                                      1. 1

                                                                                                        A blacklist is a list of bad things which are bad because the colour black is associated with negativity in our culture, while white is associated with good. That has nothing to do with skin colour. It’s honestly pretty cringe to try to force an association between the word ‘black’ and black people everywhere the word exists. ‘Blacklist’ has nothing to do with black people and black pepper has nothing to do with black people. Black MTG cards have nothing to do with black people. Whitelist has nothing to do with white people, white pepper has nothing to do with white people, white MTG cards have nothing to do with white people.

                                                                                                        1. 1

                                                                                                          white pepper has nothing to do with white people

                                                                                                          No shit.

                                                                                                          It’s honestly pretty cringe to try to force an association between the word ‘black’ and black people everywhere the word exists.

                                                                                                          Sure.

                                                                                                          ’Blacklist’ has nothing to do with black people

                                                                                                          Nothing wrong with disagreeing with the majority of linguists if you’ve got an informed opinion.

                                                                                                          Perhaps demonstrating some familiarity with the relevant literature (or maybe even linked a source for this unfounded claim) would help people be a little more charitable in their reading of your ideas.

                                                                                                          1. 2

                                                                                                            Nothing wrong with disagreeing with the majority of linguists if you’ve got an informed opinion.

                                                                                                            It’s been used in the English language for hundreds of years (as far back as the mid 1600s, if I remember correctly), rarely, though its first popular use was in the 20th century in reference to blacklists of union members. It’s a blacklist in the sense that the list itself is black. A blacklist was originally two words (as with many compound words) and its first usages are in a more poetic sense: a ‘black list’ where ‘black’ is used poetically to mean dark or evil. ‘His black list’ i.e. ‘his evil list’. It is not a list of ‘blacks’, never has been. Its use far predates modern American conceptions of race.

                                                                                                            Now you might respond by saying that using a term that has its popular origins in the suppression of unionism to be ‘problematic’, but etymology is not the same as meaning. Words do not mean precisely what they were coined to mean, and it would be absurd to expect everyone to inspect the etymology of every word they speak to make sure it isn’t associated too closely with whatever topic has fallen under the gaze of the keyboard warriors on Twitter and is now considered ‘problematic’. There are probably heaps and heaps of completely normal terms people use all over the place that have their origin in something that, under close inspect without the proper context, might seem ‘problematic’.

                                                                                                            Should one not use the word bugger? Or hysterical? Are no can do and long time, no see racist? What about uppity or hooligan? Grandfather clause? Call a spade a spade? What about gypsy or Eskimo or American Indian where despite the popular view among white Americans that they’re racist or outdated terms, they’re actually preferred by many of the people they’re meant to describe over Romani (lots of whom aren’t Romani at all) or Inuit or native American?

                                                                                                            Maybe instead of being offended on behalf of others, you just leave it to them to raise issues if they are actually offended? Getting offended by the origins of terms that have been free of offensive connotation for decades or centuries because a couple of keyboard warriors on Twitter decided that the best way to solve an issue like systemically racist police violence in the USA is to police what variables people use on GitHub…

                                                                                                            Perhaps demonstrating some familiarity with the relevant literature (or maybe even linked a source for this unfounded claim) would help people be a little more charitable in their reading of your ideas.

                                                                                                            If you’re going to make such a significant claim you should back it up with sources from the relevant literature. Language is not problematic-by-default. The onus is on you to prove that the term was coined in reference to race if you wish to claim that it is “problematic”. I’m not telling people what to do or calling anyone racist. I’m not making any extraordinary claims. I don’t see why any burden of proof falls on me.

                                                                                                            1. 2

                                                                                                              its first popular use was in the 20th century in reference to blacklists of union members

                                                                                                              Says who? (The wikipedia page for an active political controversy is not a source).

                                                                                                              Maybe instead of being offended on behalf of others, you just leave it to them to raise issues if they are actually offended?

                                                                                                              Firstly, I’m not offended by it; secondly, what idea would you have whether it was on someone elses behalf or my own if I were.

                                                                                                              I’m offended by longwinded, unsourced, nonsensical arguments on an otherwise-good-SNR technical forum.

                                                                                                              I don’t see why any burden of proof falls on me.

                                                                                                              You’ve asserted, without evidence, that ‘Blacklist’ has nothing to do with black people, which is sort-of the crux of the discussion. Not only are you raising flat assertions without a source, you’ve the gall to demand anyone who points out this is low-effort do the legwork for you. Generating bullshit is much easier than refuting it, and all that.

                                                                                                              EDIT: Oh. It’s you, but you’ve changed your username again. I’ll update my killfile, as usual.

                                                                                                              For anyone else as uninterested as I am in this inanity, a handy ublock rule is:

                                                                                                              lobste.rs##:xpath(//div[contains(concat(' ', normalize-space(@class), ' '), ' comment ')][.//a[contains(@href,'/u/mrr')]])

                                                                                                              1. 1

                                                                                                                You are a nasty piece of work.

                                                                                                    2. 3

                                                                                                      He is making a point though, even if you choose not to see it. You might not agree with it but that does not imply the point doesn’t exist. In other words, a single person or a group does not get to be the purveyor of truth in an open society which allows freedom of thought and freedom of expression.

                                                                                                  2. -2

                                                                                                    Excellent. Now these monsters who support the status quo have no place to hide.

                                                                                                1. 0

                                                                                                  Is it just be, or do these kinds of dramas tend to happen more often around Ruby and Ruby developers? Is there any reason for this? AFAIK Ruby is often used in web development (such as here on lobste.rs), could that background have an influence on the constitution of the “community”?

                                                                                                  1. 4

                                                                                                    No, I think there are everywhere. There are even voices to boycott Lego, because it didn’t want to pull their Police brick sets.

                                                                                                  1. 14

                                                                                                    Colleague of mine tried to install Linux on the Macbook we got him for work (2019 model, touchbar macbook pro 15”).

                                                                                                    I can say that it was a lesson in futility, patience and over-all unpleasantness.

                                                                                                    Aside from the obvious (no touchbar support, no esc key) there were issues such as fan control and the keyboard. Can you imagine having a laptop where you can’t use the keyboard? This is apparently fixed in kernel 5.3.

                                                                                                    One of the major things was trying to bypass the system integrity protection.

                                                                                                    I wouldn’t recommend buying an Apple Laptop if you intend to install another OS on it; it’s just too much work and there is equivalent quality hardware out there.

                                                                                                    There is a good (active) document of people trying to do this though: https://gist.github.com/roadrunner2/1289542a748d9a104e7baec6a92f9cd7

                                                                                                    1. 2

                                                                                                      thanks for this, it has been in my todo list for a long time, but I never really got to try because afraid of this exact kind of issues.

                                                                                                      1. 2

                                                                                                        What laptop do you recommend then?

                                                                                                        1. 7

                                                                                                          ThinkPads are high quality machines and are well supported on Linux (and at least some other free operating systems).

                                                                                                          1. 3

                                                                                                            For the most part all the BSDs have good thinkpad support, especially as Intel/Radeon graphics drivers are under a BSD license. Haiku and illumos often have good support as well, usually porting the code from the BSDs.

                                                                                                            1. 2

                                                                                                              Thanks: I thought support was pretty good on the BSDs, but I wasn’t sure about the uniformity, and suspected, but didn’t know, that things like Haiku and illumos would too.

                                                                                                          2. 5

                                                                                                            As with all things it depends;

                                                                                                            If you want a thin&light and don’t care about ports there’s the new Dell XPS 13” (with a 16:10 display!).

                                                                                                            If you need something with a bit more ports and a rugged chassis, great keyboard I’d go with the Dell Latitude.

                                                                                                            More power and it’s the XPS 15.

                                                                                                            Most power and it’s the Asus ROG Zephryus G14 (AMD cpu).

                                                                                                            There are countless others and alternatives here, but all of the above are practically on par with the MacBook line.

                                                                                                            1. 2

                                                                                                              I have a Matebook X Pro (2018 model) and it works great with Linux. Dell’s XPS and Precision lines are also well supported. But the gold standard is ThinkPads. At least that’s what Google would give its employees if they wanted a Linux laptop.

                                                                                                            2. 2

                                                                                                              Yeah it just seems like a nightmare.

                                                                                                              I think my model (2015) was pretty much the last in the lineup before T2 got introduced and there seems to be a myriad of problems with stuff like getting sound working and the keyboard stuff you’ve mentioned.

                                                                                                              It’s a real shame because they’re great hardware

                                                                                                              1. 1

                                                                                                                One of the major things was trying to bypass the system integrity protection.

                                                                                                                Could you elaborate on this? Where exactly did he try to bypass SIP?

                                                                                                              1. 2

                                                                                                                I’d like this rule to be expanded to writing e-mails. If the 80-column line limit doesn’t make sense in source code (I partly agree; 80 limit is small, but 120 seems appropriate), then why on earth people think that e-mails should be hard wrapped to 80 characters? Nobody else is using hard wraps when communicating, only e-mail uses it.

                                                                                                                1. 6

                                                                                                                  I find a consistent column of text easier to read than sentences that span the entirety of my monitor.

                                                                                                                  1. 6

                                                                                                                    That’s something that can easily be fixed in your email client by enforcing a maximum width on the reading pane, e.g. max-width: 50em in CSS, or in terminals just insert newlines every 50 characters.

                                                                                                                    The problem with hard-wrap is that it will look bad for everyone with smaller screen, which is actually pretty common and not something that can easily be fixed since you can’t tell the difference between a “soft wrap” and “intended hard wrap”. I actually wrote a thing about this a few weeks ago: https://www.arp242.net/email-wrapping.html

                                                                                                                    Unfortunately quite a few email clients don’t display this very good, but that’s an almost trivial fix. Certainly easier than telling millions of people that “you’re using email wrong”.

                                                                                                                    1. 2

                                                                                                                      So set up soft wrapping in your email client then. You will then have what you like, and others will have what they like.

                                                                                                                    2. 5

                                                                                                                      I don’t understand this either. I recently joined a mailing list where the predominant formatting is 80-character hard wraps. As a newcomer I emulated them (when in Rome etc.) but it would make far more sense if everybody wrapped their own lines to what is comfortable. It’s prose text after all.

                                                                                                                      When somebody complains about an unstyled HTML page being too wide on their monitor, others dutifully point them to reader mode. But email is different for some reason. (Why user agents don’t take more creative licence when given a bare HTML document baffles me but is verging off-topic…)

                                                                                                                      1. 2

                                                                                                                        No, only some communities demand their members to use email this way. If not 72 columns… :S

                                                                                                                      1. 30

                                                                                                                        Not entirely on topic, but related: your website has a banner which says

                                                                                                                        By continuing to browse the site, you are agreeing to the use of cookies.

                                                                                                                        The EU data protection body recently stated that scrolling does not equal consent, see for instance https://techcrunch.com/2020/05/06/no-cookie-consent-walls-and-no-scrolling-isnt-consent-says-eu-data-protection-body/

                                                                                                                        1. 25

                                                                                                                          Then again, he is the type who “cares about SEO”.

                                                                                                                          1. 3

                                                                                                                            Wait, what’s wrong with caring about SEO?

                                                                                                                            1. 5

                                                                                                                              There was a time were SEO was synonymous with tricking the search engines into featuring your site. The running theme was SEO was a set of dark patterns and practices to boost your ranking without investing in better content.

                                                                                                                              For many people SEO still has similar connotations.

                                                                                                                              1. 16

                                                                                                                                There was a time …

                                                                                                                                Did that change?

                                                                                                                                1. 0

                                                                                                                                  Did that change?

                                                                                                                                  Based on my recent efforts at looking into these things from a developer point of view, I would say yes it’s changing.

                                                                                                                                2. 6

                                                                                                                                  AFAIK, there’s still considered to be “White hat” and “Black hat” SEO. White hat SEO involves stuff like organizing links and URLs well, including keywords appropriate to what you actually do, writing quality content, and per this article, encouraging links to your domain and paying attention to whether they use nofollow. Generally, stuff that doesn’t go against the spirit of what the search engine is trying to do, tries to get more legitimate users who genuinely want your product to find it and learn about it more easily etc.

                                                                                                                                  Black hat SEO involves stuff like spinning up link farms, spamming links across social media and paying for upvotes, adding a bazillion keywords for everything under the sun unrelated to what you’re doing, etc. Generally trying to trick search engines and visitors into doing things against their purposes.

                                                                                                                                  It may feel a little dirty at times, but it’s probably tough to get a business going in a crowded market without paying attention to white hat SEO.

                                                                                                                                  1. 2

                                                                                                                                    It may feel a little dirty at times, but it’s probably tough to get a business going in a crowded market without paying attention to white hat SEO.

                                                                                                                                    This is common issue for healthcare sites. If you have bona fide information that’s reviewed and maintained by experts it competes with sites selling counterfeits, outdated information, conspiracy theories, etc. These sites try every trick they can to scam people. If you don’t invest in SEO you are wasting people’s time with bad information in most cases, but some people can be harmed. In the US this can boil down to a freedom of speech discussion, but if you work internationally you have clearer legal obligations to act.

                                                                                                                                    Search engines do want to help directly in some cases, but there is still an expectation that the good guys are following what would be considered white hat SEO practices. White hat SEO often has other benefits with accessibility, so I think it’s worth listening.

                                                                                                                                    1. 3

                                                                                                                                      Yep, this is a bit unfortunately true. IIRC, StackOverflow had to implement SEO practices as, without it, other sites that scraped their content and rehosted it were actually getting higher rankings in Google than SO themselves.

                                                                                                                                  2. 3

                                                                                                                                    Makes sense. I wish more people (developers in particular) would start questioning these connotations. The present-day advice on how to do SEO right is a lot different from what it used to be.

                                                                                                                                    1. 8

                                                                                                                                      As the parent said, SEO originally meant “hacking” google search rankings but over time, Google eliminated these hacks one by one, saying the whole time that their goal was to deliver search results that were relevant and useful. However, the way they define “relevant and useful” is primarily:

                                                                                                                                      1. How closely the page content matches the serarch query
                                                                                                                                      2. How many “reputable sources” link to the page
                                                                                                                                      3. How long visitors stay on the page (usually directly related to length)
                                                                                                                                      4. How many people click on the link

                                                                                                                                      So SEO became less about technical trickery and is now more about human trickery. This resulted in the rise of what I call “blogspam”, i.e. blogs that crank out content with affiliate links and ads peppered throughout. This might not be a bad thing per se, except that most of the time I land on blogspam, I am inundated by pop-up dialogs, cookie warnings, ads and miles of empty content designed to make you Just Keep Scrolling or hook you with an auto-play video. Because both of these things keep you on the page longer, which increases their search rankings.

                                                                                                                                      This isn’t always quite so bad for tech-related queries, where StackOverflow and its ilk have cornered nearly every result, but try searching for something generic like “hollandaise sauce recipe” or “how to get rid of aphids” or “brakes on a Prius” and you will drown in an unending sea of blogspam.

                                                                                                                                      This has been another episode of “What Grinds bityard’s Gears”

                                                                                                                                      1. 1
                                                                                                                                        1. How closely the page content matches the serarch query

                                                                                                                                        Since you put “relevant and useful” in quotes, I’m assuming you feel that a search query matching the page content is not a good signal of whether a search result is good. I’m curious why you think that?

                                                                                                                                        Just Keep Scrolling or hook you with an auto-play video. Because both of these things keep you on the page longer, which increases their search rankings.

                                                                                                                                        That’s actually not true. Google made a blog post a while ago mentioning that pop-up dialogs (or anything that reduces content accessibility) reduces search rankings.

                                                                                                                                        In any case, while I do agree that not all SEO advice is (or has historically been) good, the blanket statement that all SEO advice is bad is also not correct (or fair). Besides, the black-hat SEO advice is slowly becoming more and more pointless as Google gets smarter at figuring things out.

                                                                                                                                        1. 1

                                                                                                                                          This isn’t always quite so bad for tech-related queries, where StackOverflow and its ilk have cornered nearly every result, but try searching for something generic like “hollandaise sauce recipe” or “how to get rid of aphids” or “brakes on a Prius” and you will drown in an unending sea of blogspam.

                                                                                                                                          I feel the pain, but is this less about SEO and more about how certain people have developed business opportunities? SO has largely replaced expertsexchange in search results, but in a way this was one of the founder’s aims that has been mentioned in various places.

                                                                                                                                          The StackExchange network of sites has been trying to expand to cover, your example of “how to get rid of aphids”, but it hasn’t yet been successful. There is inertia with getting these sites off the ground and employing people to write quality questions and answers, but this doesn’t align with the community ethos. Arguably, it would be better for the web since you’d get a better experience when you click through search results. I wish there was an easier answer.

                                                                                                                                          I don’t see why there couldn’t be a recipe site with the quality user experience you associate with SO. There are however a lot of entrenched interests and competition. People also have a tendency of sharing copyrighted recipes they’ve copied down from friends or family. Incumbents won’t react like expertsexchange to SO.

                                                                                                                                    2. 3

                                                                                                                                      SEO is like ads on the internet; in theory it’s a good thing, helps people to find relevant content, helps companies to make more profits. But in reality, it’s just a pissing contest who exploits the user most. If a company made some money by using some shady SEO tricks, then we’ll do it 2x more intensively, so we’ll earn some money too. Who cares that the search engine results will be less accurate?

                                                                                                                                      1. 1

                                                                                                                                        To be honest, try looking up the modern SEO recommendations (black hat SEO is becoming more and more pointless as Google gets smarter at figuring things out). You’ll be pleasantly surprised.

                                                                                                                                  3. 6

                                                                                                                                    The funny part is that the only cookie used on this site (that I can see) is the cookie that stores the fact that the user accepted the use of cookies :D

                                                                                                                                    Also, the law never forced the display of the “cookie wall” for purely-technical cookies (eg: login and such), but only those aimed at tracking.

                                                                                                                                  1. 4

                                                                                                                                    Until you have the evidence, don’t bother with hypothetical notions that someone can write 10 million lines of C without ubiquitious memory-unsafety vulnerabilities – it’s just Flat Earth Theory for software engineers.

                                                                                                                                    Couldn’t say it better than this. I’m pretty irritated by the existence of genius programmers, who use C so well that they don’t ever create a bug in it; but in reality most of the time this just means that they don’t really write that much code they claim they do.

                                                                                                                                    1. 2

                                                                                                                                      Lots of software gets also much less scrutiny than peoples think. If your code is popular and not exploited, doesn’t mean it’s not exploitable.

                                                                                                                                    1. 24

                                                                                                                                      I’m gonna go with Qt on this one. I learned it a long time ago (I think it was still at version 2!) and it never really let me down. It’s got very good documentation, and it’s pretty reliable for long-term development. I have projects that have been through three Qt versions (3.x, 4.x, 5.x) and the migration has been pretty painless each time. It’s not on the nimble end of the spectrum and it’s C++, but I found it to be the most productive, even though the widgets library hasn’t been as high on the parent company’s priority list. (They insist that’s not true but actions speak louder than words…). I’ve used it for huge projects (200 KloC+) and it held out great.

                                                                                                                                      I used GTK 2 back in the day, too, and while some bits weren’t exactly enjoyable, it was generally efficient, and it was a pretty safe bet for cross-platform development, and an especially safe bet for Linux and Unix development. I really wanted to like GTK 3. I don’t know if it’s because I’m getting grumpy and impatient, or if there really is something objectively wrong with it, but I didn’t manage to like it, and now I tend to avoid it, both when it comes to writing code that uses it and when it comes to using applications written against it. Also I’m not sure how its cross-platformness is doing these days.

                                                                                                                                      I’ve played with Dear ImGui and I can definitely say I enjoy it. I’ve used it for some pretty small and special-purpose tools (and obviously you get about as much native integration with it as you get with Electron :P) but I definitely had fun with it. I’ve also

                                                                                                                                      1. 6

                                                                                                                                        I’m also a big fan of QT, and in particular, QtQuick is the single most productive rapid prototyping platform I’ve ever used (beating out even Visual Basic and Electron). The first app I ever wrote with it started out as an excuse to learn Qt Quick, and I had a working, polished app within two weeks.

                                                                                                                                        1. 4

                                                                                                                                          I really like Qt as well. I recently started building things with PyQt5 and it’s been pretty nice to work with:

                                                                                                                                          https://gitlab.com/djsumdog/mpvbuddy

                                                                                                                                          1. 2

                                                                                                                                            +1 for Qt. I was surprised to see Telegram’s desktop client not using Electron, when every popular IM client is using it, and the UI seems much faster, and pleasant to work with. Another advantage is, Qt is available on more platforms than Electron, so if you like to be portable, don’t want to be limited by GNU/Linux, Windows, or macOS, then Qt is a good choice.

                                                                                                                                            1. 1

                                                                                                                                              I’ve also

                                                                                                                                              Did you intend to continue?

                                                                                                                                              1. 2

                                                                                                                                                Did you intend to continue?

                                                                                                                                                It looks like I did but whatever I wanted to say has long been swapped to the write-only section of my memory :)

                                                                                                                                              2. 1

                                                                                                                                                Happy with Qt too, but only when keeping the project up to date (and then it’s much easier with small projects). The least progress I’ve ever made as part of a software team was when we had a long-running Qt app where some parts were Qt5-ready, but we were mostly building with Qt4 and even then using 3-to-4 adapters in parts. Not that this isn’t true of other frameworks, but that sticks out as a raw nerve in my memory.

                                                                                                                                                I’ve also used wxwidgets (but long enough ago that I don’t remember much specific, it seemed to work), GNUstep (OK if you don’t use any super-modern Cocoa APIs, where the approach to claiming 100% coverage has been to stub out all of the implementations), and Eclipse RCP which is a real curate’s egg.

                                                                                                                                              1. 12

                                                                                                                                                0x6. I like monospaced fonts.

                                                                                                                                                Unfortunately, I learned about kerning and kerning is impossible to do even decently with monospace fonts.

                                                                                                                                                1. 6

                                                                                                                                                  Kerning is useless for monospaced fonts, almost by definition.

                                                                                                                                                  Kerning is so that combinations like “AV” don’t have a wide space between them. AV will have that, because the horisontal space taken up by each character is the same.

                                                                                                                                                  1. 3

                                                                                                                                                    There are advantages to kerning, and you miss out on them with monospaced fonts. Obviously you gain other benefits while writing code with monospaced fonts, but fit prose? Not so clear.

                                                                                                                                                  2. 5

                                                                                                                                                    Ditto. Maybe it’s just me, but I find it very easy to lose my place when reading monospace text.

                                                                                                                                                    1. 3

                                                                                                                                                      So don’t do kerning? Not sure if there are any readability studies or something that you’re thinking about but as a programmer I am also happy to read articles in monospaced font.

                                                                                                                                                      1. 17

                                                                                                                                                        Monospaced fonts make prose objectively harder to read. They’re an inappropriate choice for body text, unless you’re trying to make a specific e.g. stylistic statement.

                                                                                                                                                        1. 1

                                                                                                                                                          Do you have any links for some studies about it? I’m wondering since you’ve used the objectively term, which I find confusing, since I’m not impacted by monospaced formatting at all. Film scripts are being written in monospaced script, books were written in it (at least in the manual typewriter days), I think this wouldn’t be the case if monospaced fonts would be objectively harder to read?

                                                                                                                                                          1. 4

                                                                                                                                                            Do you have any links for some studies about it? I’m wondering since you’ve used the objectively term, which I find confusing, since I’m not impacted by monospaced formatting at all.

                                                                                                                                                            This is a subject that has been studied for a long time. A quick search turned up Typeface features and legibility research, but there is a lot more out there on this topic.

                                                                                                                                                            The late Bill Hill at Microsoft has a range of interesting videos on ClearType.

                                                                                                                                                            1. 2

                                                                                                                                                              Your first link was fascinating, thanks!

                                                                                                                                                            2. 1

                                                                                                                                                              Manuscripts and drafts are not the end product of a screenplay or a book. They’re specialized products intended for specialized audiences.

                                                                                                                                                              There are no works intended for a mainstream audience that are set in a monospaced typeface that I know of. If a significant proportion of the population found it easier to read monospaced, that market would be addressed - for example, in primary education.

                                                                                                                                                              1. 1

                                                                                                                                                                Market could prefer variable width fonts because monospaced are wider, thus impacting the space that is taken by the text, which in turn impacts production cost. This alone could have more weight for market preference than the actual ease of reading. Bigger text compression that is achieved by using variable width could improve speed of reading by healthy individuals, but that isn’t so obvious for people with vision disability.

                                                                                                                                                                Individuals with central loss might be expected to read fixed-pitch fonts more easily owing to the greater susceptibility of crowding effects of the eccentric retina with which they must read. On the other hand, their difficulty in making fixative eye movements in reading should favor the greater compression of variable pitch. Other low-vision patients, reading highly magnified text, might benefit from the increased positional certainty of characters of fixed pitch. Our preliminary results with individuals with macular disease show fixed pitch to be far more readable for most subjects at the character size at which they read most comfortably. (“Reading with fixed and variable character pitch”: Arditi, Knoblauch, Grunwald)

                                                                                                                                                                Since at least some research papers attribute superiority of variable width font to the horizontal compression of the text – which positively influences the reading speed and doesn’t require as many eye movements – I’m wondering if the ‘readability’ of monospaced typefaces can be improved with clever kerning instead of changing the actual width of the letters.

                                                                                                                                                                The reading time (Task 1) with the variable-matrix character design was 69.1 s on the average, and the mean reading time with the fixed-matrix character set was 73.3 s, t (8) = 2.76, p < 0.02. The difference is 4.2 s or 6.1% (related to fixed-matrix characters). (“RESEARCH NOTE Fixed versus Variable Letter Width for Televised Text”: Beldie, Pastoor, Schwarz)

                                                                                                                                                                The excerpt from the paper above suggests that the superiority of variable width vs monospaced isn’t as crushing as one could think when reading that human preference for variable width is an “objective truth”.

                                                                                                                                                                Also, the question was if monospaced fonts are really harder to read than variable fonts, not if monospaced fonts are easier to read. I think there are no meaningful differences between both styles.

                                                                                                                                                                1. 1

                                                                                                                                                                  Market could prefer variable width fonts because monospaced are wider, thus impacting the space that is taken by the text, which in turn impacts production cost.

                                                                                                                                                                  So it’s more readable and costs less? No wonder monospaced fonts lose out.

                                                                                                                                                                  I’d love to read the paper you’ve referenced, but cannot find a link in your comment.

                                                                                                                                                                  1. 1

                                                                                                                                                                    So it’s more readable and costs less? No wonder monospaced fonts lose out.

                                                                                                                                                                    Low quality trolling.

                                                                                                                                                                    I’d love to read the paper you’ve referenced, but cannot find a link in your comment.

                                                                                                                                                                    They could be paywalled. I’ve provided the name of papers plus authors, everyone should be able to find them on the internet.

                                                                                                                                                                    1. 2

                                                                                                                                                                      Low quality trolling.

                                                                                                                                                                      What?! I put a lot of effort into my trolling!

                                                                                                                                                                      (To be honest: you’re right and I apologize. It was a cheap shot).

                                                                                                                                                                      I found the first paper (https://www.ncbi.nlm.nih.gov/pubmed/2231111), and while I didn’t read it all I found a link to a font that’s designed to be easier to read for people who suffer from macular degeneration (like my wife). The font (Maxular), shares some design cues from monospaces fonts, but critically, wide characters (like m and w) are wider than narrow ones, like i.

                                                                                                                                                                      That’s what I think is a big problem with monospaced fonts, at small sizes characters like m and w get very compressed and are hard to distinguish.

                                                                                                                                                          2. 5

                                                                                                                                                            I also tried to code with a variable width font. It works ok with Lisp code but not the others. The tricky part is aligning stuff. You need elastic tabstops.

                                                                                                                                                            1. 1

                                                                                                                                                              Oh, wow. That’s a cool idea. Yeah, that might be enough.

                                                                                                                                                              1. 1

                                                                                                                                                                Very cool idea, but that means using actual tabs in a file, and I know a lot of programmers who hate tabs in files.

                                                                                                                                                                1. 1

                                                                                                                                                                  Good point. I think the cases when different sized tabs would cause problems should also cause problems with a system like this.