1. 11

    Curious why he stopped at the X200. The X220 is the paragon of laptops for me. I have it running FreeBSD and everything except the fingerprint reader and webcam works, and that’s more a BSD issue. Previously with Arch everything “just worked” and it could handle 1080p videos :)

    My work laptop is a 6th gen X1 Carbon and it too has FreeBSD on it, working as well as one could expect. Battery life is 8+ hours if I turn the screen way down and only keep a minimum of apps open, which is how I usually run anyhow.

    1. 17

      Curious why he stopped at the X200

      I think that’s the last model that works on 100% Free Software. I forgot what the exact issues are with newer models as I don’t really care about this personally, but it’s also the newest the FSF sells.

      But yeah … After the x220 things went a bit downhill for a while, but they corrected a bunch of mistakes with the x260 (or x250?). I have a x270 and it’s not perfect, but find it works very well for me.

      1. 10

        The screen of the X200 is 10% larger than the X220, the X201 was the last model to have a 1440x900 display. After that they downgraded the resolution pretty significantly for many years.

        I was using the X200 from 2009-2016 (for this exact reason) at which point I upgraded to an X301 which has a slightly slower clock speed but a 13-inch 1440x900 screen and a nicer palm rest. It also has a second battery bay, but you can’t buy non-exploding batteries for it any more.

        1. 3

          Not exactly … the X201 had 1280 x 800 display. The X201s had 1440x900 display.

        2. 3

          Does it have cast steel hinges & a latch? That’s what I miss the most about laptops.

          1. 2

            16:10 is much nicer than 16:9, and the X200 keyboard feels much nicer than the X220.

          1. 1

            I sincerely hope than in my professional life as a software developer, the challenges outlined in this post never apply to me.

            The shear volume of THINGS these piles of source code and the tools used to develop them manipulate in the background without you knowing likely contributes to huge amounts of the junk in those git repositories.

            I am pretty far from the suckless development model in my own professional life, but at least I generally know what all the files in my source tree are for, why they were created and whether I can get rid of them.

            Also … what is the MS Office repository doing being ported to Git? Do they still actively develop the desktop app? Or is 365 in the same repo as the desktop app?

            1. 4

              Can’t we just remove the “data” and say science in general? Any systematic approach to knowledge about our world that is built around categorization or definition is doomed to marginalize those that defy categorization or definition.

              1. 7

                Most science done has ethical boundaries they attempt to follow. Some of these boundaries may be more or less compromised. Most scientific studies for example won’t include you without your explicit consent. Data science is more slippery than typical scientific practice because it revolves around data already gathered. Bypassing your consent is MUCH easier. The problem then gets further compromised when we start talking about businesses who may have a profit motive in ignoring scientific norms. Without any of the normal rules, regulations, and protections provided in a normal study they can really go off the rails. Without protection and oversight most businesses will be too tempted by the prospect of profits, and they will always choose what they perceive shareholders will value. Of course, mined data is a toxic asset, especially without consent. It can be illegal, or worse reputation destroying, and I suspect that will only get more so over time. Businesses that “mine data” as their primary way of doing business might lead to a bubble like crash that would be pretty bad for us devs. When that day comes it’s possible we won’t have to worry about this conversation so much, but until then it’s important to talk about specifically where the problems arise.

                1. 4

                  Nice strawman argument. But, there’s a large jump between science and Seeing Like a State. See: the vast majority of human history.

                  To wit, we are not resources for a state to manage in order to maximise GDP growth.

                  1. 5

                    I’m not sure what about my argument is strawman. In the article the argument is that data science can be used to subjugate or violate the rights of queer people. To quote the article:

                    There’s no test that you give someone to determine they’re “actually” trans, unless you’re a doctor, or a neuroscience researcher, or a bigot (but I repeat myself).

                    If we’re going to argue that data science threatens transexuality because it attempts to understand it or at the very least to categorize it, then we can just throw most natural science efforts out the window too. I don’t think the leap from the scientific method to panopticism is as great as you seem to think it is. The problem is that scientific reasoning can be used for many things, but what it’s best at is systemizing knowledge and define things against other things. That happens to be very useful at building knowledge, and those with knowledge have power, and eventually GDP. I’d love a counter example of a ludite culture that has a thriving GDP and loose definitions around their beliefs.

                    1. 3

                      Whether a person is trans or not, isn’t a scientific question. Cool that you’re going to bring that strawman to your grave tho.

                      1. 3

                        Whether a person is trans or not, isn’t a scientific question.

                        As someone totally not in the loop, why isn’t it a scientific question? Somewhat related to that, why wouldn’t everything also be a scientific question?

                        1. 2

                          It’s currently what many scientists are studying and debating. There’s knowledge, theory, and practices around the subject. It’s definitely a scientific question. Further, it’s a settled question for some while a debated one for others. All depends on one’s views.

                          1. 4

                            Whether a single person or not is trans is - for now - a question of their subjective experience.

                            There’s definitely science to be done about whether there are commonalities, biological markers, etc.

                            1. 2

                              That’s all I’m saying. Especially the subjective experience. That biological gender is objective with objective data, but trans identity is subjective, is exactly why there’s such a strong debate about whether to accept or reject it. Science has been making the situation just a little more objective. That might help in some ways down the road.

                              Or make it worse. Never know how scientific results will be [ab]used… Just gotta take the chance since the subject is too important to not investigate.

                              1. 7

                                It seems a subtle nitpick to the uninitiated, but receiving the suggestion that a scientist could ‘set them straight’ about their subjective, personal experience is a common enough occurrence that you’ll enrage people if they think you’re doing it, which makes reasonable discussion hard.

                                Rereading “Whether a person is trans or not, isn’t a scientific question” with that context might make more sense of the reaction.

                                1. 6

                                  This is the real MVP comment of the conversation. The same way science can’t tell you if you’re “objectively” sad or “objectively” a baseball fan, it makes no sense to ask if someone is “objectively” trans, but that doesn’t mean we get upset at people for crying when their grandparents die or spending hours watching people run around on a field.

                                  1. 4

                                    This response has been absolutely boggling my mind since I’ve first read it. Are you actually comparing gender with an interest for a sport? Then are you trivialising the implications of self-id (which is a thing). I mean, the entire discussion has been one of the catalysts of the alt-right, something I hardly think something like “baseball” could have had brought into life. I guess what they share in common, is that there is big money pushing both (after all, there’s a lot of profits one can make off people who depend on permanent medical supervision).

                                    It’s not a surprise that Gender cannot be scientifically determined (as compared to sex), since it’s social, and has become meaningless in a society that’s relying less and less on gendered division of labour. But how that means that gender becomes individual (an apparent paradox) is foreign to me. People often say self-id is the best solution, because nothing else works. But that doesn’t mean it is good in itself. Nothing works! Because gender is dead!

                                    To clarify this: None of this is meant as an insult against you or anyone else. None of this can be used an excuse of violence or smears. None of what I say is an attack on gender non-conformance. I don’t know you, and don’t wish to comment on your opinions. Ignore me if that’s what you want, I demand no response or attention. I just had to write this, even if it it were all wrong. This thread has already become so off topic, that there’s little more to care about. This topic has severely dealt damage to my mental well-being over the last few months, and suppressing it hasn’t done me well. I’ve been trying to get over it, but at no avail.

                                    1. 3

                                      I agree with you here; I was just using that as an example to help other people see why the specific idea I was referring to was a bit silly. It’s reductio ad not-quite-absurdum to illustrate a point.

                                      This topic has severely dealt damage to my mental well-being over the last few months, and suppressing it hasn’t done me well.

                                      I’m very happy to talk about this privately, if you want.

                                      1. 1

                                        Very kind, but there’s no point to burden anyone with my issues. The usage of the term “severely” was wrong, and I would edit it out if I could.

                                2. 6

                                  If we’re going to talk in scientific terms it is important that we get the terms correct. So please don’t take this as me being pedantic because most people don’t know the precise definitions of these words. Heck even I didn’t before I had a close friend transition. I think it will help disambiguate and dissolve conflict. Gender specifically refers to the cultural construct, and therefore is subjective. You can have a gender even if you were a cybernetic brain in a box, no body required. Sex is the sexual dimorphism we observe, genitalia, hip size, bone structure, muscle mass, hair presentation, etc. As sexual dimorphism is not a binary, so even though yes your chromosomes may be XX or XY you can be XX with several male features. For example if you found out Hugh Jackman had XX chromosomes you wouldn’t more more likely to marry him, so the sexual dimorphism actually matters a great deal. Traits we generally think of as “male” or “female” often end up on people of either sex. In more extreme cases those traits are “fixed” surgically to fit the “birth sex” (what is perceived to be their sex by the parent, or the preferred sex by the parent). So sex as we talk about it in everyday language is not the chromosomes but rather the sexual dimorphism we observe.It’s quite a bit more common than people would like to think when we start to consider the full gamut of possible traits that can be considered sexually dimorphic. A woman at birth can have a “male” jawline, or a mustache, or a beard, or “male” muscles etc.

                                  Identity itself is a construct, so the only measure we can have is how real it feels to them, the one who is perceiving it. So, the very question of “Is this person’s perceptions about their own identity real” is a vacuous question to answer. It’s akin to debating the tautology ⊤ = ⊤, because you’re debating the reality of a fundamentally immaterial thing. More importantly when a person perceives something about their body, concretely, that doesn’t agree with how their body presents they will go to the ends of the earth resolve that cognitive dissonance. It will cause them great anguish until they fix that. It’s akin to if you woke up one morning with tiny hands coming out of your stomach. Body horror is an entire genre for a reason. There can be an element of body horror for someone like us when we observe someone transitioning, because we are projecting our identity on that person, and imagining how horrible it would be to change our bodies. However this body horror is precisely what many trans people live with when they do not transition. Therefore we should not put our own discomfort above theirs, as what they live with is an order of magnitude more intense than what we experience as an observer.

                                  The debate that arises around this subject is almost exclusively among lay people like you and me, and not researchers. The debates almost exclusively arise from the kinds of loose wiggly terms and the misconceptions around those terms that lay people use. The scientifically incorrect perception of sexual dimorphism as a binary, the conflation of sexual dimorphism and gender, and the conflation of sexual dimorphism and chromosomes are common contributors to why lay people debate on this until their lungs give out. The scientific consensus isn’t particularly divided on this subject. Some people don’t like the results, maybe some find them a bit disturbing, but that’s not the same thing as having a sound basis to doubt the conclusions. As we start unraveling the strings that hold together our consciousness, I suspect we will soon find things that are a great deal more upsetting than this.

                                  1. 1

                                    Very interesting read, thank you.

                          2. 1

                            Why is GDP even relevant? Lol, life is not a competition to get rich dude, chill down. Also if you believe that ludites or neoludites are against science and tech, you should maybe spend your fraction of the GDP on some book about the subject.

                            Science is a tool and as such should be treated. You elevate it to a source of truth, which is not. To each problem its tools. Understanding subjective experiences and the formation of identities is not a problem for natural sciences.

                            1. 1

                              I certainly didn’t say anyting about GDP being the alpha and the omega. I was meerly making the point–a point which often lost on many counter-culturalists—that the scientific method has proved itself over the last few hundred years to be VERY effective at stockpiling resources: knowledge, material and spiritual. I am actually pretty left-leaning in my own right and have very pessimistic views about the current trajectory of the application of the scientific method to our world. But this isn’t the right forum for those arguments.

                              I was just trying to make an intellectual argument based on the claims of the original story that if you’re going to attack data science as hostile to the subjective quality of being human, you can go ahead and throw out biology, physics and chemistry which all attempt to categorize and objectify our gender with just as many horrible effects as data science.

                              1. 1

                                I don’t think any of those disciplines ever concerned itself with gender. Sex yes, gender no. Gender, if any, is studied by sociologists, anthropologist and so on. Biology has nothing to say about gender. Also it’s not clear what the scientific method told us about spirituality

                                1. 1

                                  Those disciplines should not concern themselves with gender, but they certainly do. The scientific method has certainly been used to attempt to explain our process of belief from a biologically necessary perspective.

                                  1. 2

                                    If you’re talking about stuff like evolutionary psychology, it’s still hotly debated if, epistemically, they fall into modern science. Otherwise it’s not clear what you’re talking about. I mean, clearly at some point some scientist that never concerned themselves with humanities for sure tried to apply science where it was inappropriate, but Science as a discipline is something else.

                        2. 6

                          Science is essentially the process by which humans seek verifiable knowledge. It is the only tool we have to try to understand the universe we live in without simply taking someone else’s word for it. What would you replace it with?

                          1. 1

                            I’m not arguing for replacing science. But in the context of the article, the nature of science is to categorize and define, and to do so with a decent amount of ruthlessness with regards to personal privacy and subjective feelings. It is not data science alone that is threatening to queer people. All of science is positioned against the more fluid and unexplainable aspects of being alive.

                        1. 2

                          Well that wasn’t very well written at all. Why get into an argument with Wikipedia about whether ECMAScript and JavaScript are the same thing. Wikipedia even provided examples of JScript and ActionScript as other implementations of ECMAScript specs.

                          Also “Web APIs” != the DOM, for what it’s worth.

                          1. 1

                            Did they claim “Web APIs” == the DOM? The article’s description of web APIs is “document and every method on document; window and every method on window; Event, XMLHttpRequest, fetch, etc”. That sounds correct to me.

                            1. 1

                              I suppose I was thinking that the author was conflating the end points where data comes from, with manipulating things on a webpage. Maybe methods on windows are part of the programming interface of the Web, but it doesn’t feel right to me. It seemed like a hand-wavy way to avoid being specific about whether they were talking about DOM manipulation (why React exists) and actually getting data from web servers (why Redux exists).

                              1. 2

                                The MDN seems to agree with the article: https://developer.mozilla.org/en-US/docs/Web/API

                                It lists all APIs which aren’t part of the ECMA specification, but which the web platform exposes, as web APIs. That includes interacting with CSS, the DOM, and things like XMLHttpRequest.

                          1. 3

                            I find it almost poetic that Microsoft ended up with Github in their court, given the position MS has maintained in the cathedral/bazaar debate for decades. Aside from the cruel but inevitable betrayal of their closed-source origins, I can’t imagine a better owner of the Our Lady of Open Source website, Github.

                            Sarcasm aside, Github did introduce a LOT of people to the concept of open source, even if you don’t agree with their distribution methods. I love ESR as much as any card carrying FOSS advocate, but the software revolution was not going to happen on mailing lists.

                            1. 3

                              @SirCmpwn I understand your argument. Github came up with a centralized UI - you claim that it is bad. What is your proposal (besides email)?

                              1. 2

                                My proposal is email.

                                1. 1

                                  I think the argument here is that email is likely the most bazaar-esque way to contribute to a software project, and coincidently, how git was optimized to be used.

                                1. 7

                                  I couldn’t not post something when I read the title. I’m currently waiting for a test which takes about 15 minutes. Thing is, I have to compare the output to values defined in a CSV, and the biggest chunk of the time is waiting for the input to be loaded. Usually, there are a lot of errors immediately, but I only see this after 15 minutes. Then, I have to open the Excel file which computes the values used for checking (takes ~10 minutes), and find the corresponding computation in both the program and the Excel file. When I fix the error, I have to fix the error in the code or in the Excel file. When it’s in the Excel file (it usually is), I have to run it (takes about 20 minutes), and update the CSV in some specific location, and run a program to put the new values in the database. This again, takes about 20 minutes.

                                  So all in all, I spend about an hour for every error I find. This can be (and often is) something as simple as a typo in the Excel file. I have complained about this process before, but I don’t have the time/authority to change this (there are about 15-20 people working on this project, so I can’t just change the workflow if it’s not a task that is assigned to me). I don’t know why others think this is acceptable. Maybe because I’m usually the one ending up doing this tedious task, because I’m the ‘technical guy’ in my team.

                                  This all used to really drag me down to the point of taking my work home and having a bad mood because of it. Now I’m a bit apathetic. If they don’t fix this, they’ll just pay me to do dumber work and be less productive. Their loss.

                                  1. 16

                                    And people wondered why I favored unit tests over integration tests in Working Effectively with Legacy Code.

                                    1. 2

                                      My favorite was a discussion about a review of your book the other day where someone complained that unit tests cause tests to be too fine grained, and that logic of your solution creeps into your tests. Seems like that’s a good litmus test for complexity getting out of hand.

                                      My work code base mingles what are clearly integration tests with unit tests and as a result no one runs the full suite before pushing new code and means master has a 50/50 chance of being broken at any given time. It’s terrible.

                                    2. 3

                                      Consider yourself lucky – the test suite on a project I worked on 10 years ago took over 6 hours to run (the developers didn’t consider the speed of the tests when writing them – since the tests are “not in the fast path”).

                                      One thing we did do well is make sure that each test in the suite tested one and only one thing. If the suite failed, it was possible to re-run just one of the failing tests (which would take 10-20 seconds), rather than re-running the entire suite. In your case, it sounds like the developers of the tests might benefit from AAA (Arrange, Act, Assert) – which applies mostly to unit tests, but can also be used in integration tests.

                                      1. 2

                                        I’m talking about an individual test, which takes about 15 minutes (we have some which take up to half an hour). If you run all tests, it takes like 4 hours, I guess. So it often happens that you run tests before pushing to develop, and while the tests are running, someone pushes to develop, so you have to merge and run the tests again (and hope that no one pushes this time). Or, you just run some important tests and push. Then, if you break develop, you’ll know after 4 hours (and of course, people will have pulled from and pushed to develop).

                                        1. 3

                                          That’s solved by having a good integration flow, like bors-ng or zuul, in place. If your patch breaks the test suite, your patch should not land.

                                      2. 3

                                        I feel like there has to be a way in which you can take advantage of everyone’s apathy and disinterest in that task, artificially increase the cost of it over time, like pretend the spreadsheet takes an hour to load, and then try to do something about it in the newly created dead time? It’ll be slow work, but incremental improvements do lead places.

                                        1. 3

                                          Start getting paid by hour and detach yourself from the process and see your joy and happiness raise dramatically.

                                          You’ll be absolutely delighted to know that tests have slowed down, as it allows you an extra cup of coffee/tea and another round of play with your doggo (or catto) :P

                                          1. 1

                                            Usually, there are a lot of errors immediately, but I only see this after 15 minutes.

                                            Surely there’s a way to make your test framework fail fast? If it’s a case of loading everything into memory (which I doubt), then again surely there’s some streaming library for your language.

                                            1. 1

                                              Jup, it’s not even very hard. It’s just not a priority, so it’s never fixed. Also, most team leads don’t usually don’t do the job of running and fixing these tests, so they don’t really feel the pain of having slow tests.

                                              I estimate that many steps in the process do about 10 to 1000 times the strictly necessary work:

                                              • If you want to compare tests results you have to obtain output from a big excel file, that is about 60 MB big (even though you just need one sheet).
                                              • If you load new input, you have to reload all the output (100s of MBs)
                                              • If you do a test, you first load all the values into memory
                                          1. 7

                                            This is a great essay, but I was recently in a situation where someone was throwing YAGNI around like a sledgehammer at everything that they didn’t understand. I would team up YAGNI with Joel’s four-part posts on building a functional docs[1]. Because you don’t know what you don’t know unless you have at least the beginning of a plan :)

                                            [1] https://www.joelonsoftware.com/2000/10/02/painless-functional-specifications-part-1-why-bother/

                                            1. 4

                                              someone was throwing YAGNI around like a sledgehammer at everything that they didn’t understand

                                              Pretty much any concept can be “thrown around like a sledgehammer”, no matter how great the concept is. This is not limited to programming, but extends to pretty much all ideas/concepts. Whatever merit an original idea may have, it will become deeply silly when applied indiscriminately to all situations as the world is just too complex to do that.

                                              My favourite example is the free market, which some people see as the solution to child abuse:

                                              Rothbard stated that parents should have the legal right to let any infant die by starvation and should be free to engage in other forms of child neglect. However, according to Rothbard, “the purely free society will have a flourishing free market in children”. In a fully libertarian society, he wrote, “the existence of a free baby market will bring such ‘neglect’ down to a minimum”.

                                              There are many more examples, but as I don’t want to sidetrack this with unrelated political discussions I’ll limit it to this – hopefully uncontroversial – one :-)

                                            1. 8

                                              I was having trouble understanding the Elevator Pitch, and then I realized it’s because I use Magit and there is nothing painful to me about squashing or fixing up commits ;)

                                              1. 3

                                                Does magit already let you automatically decide which commit should be fixed up based on which commit matches your working directory changes? You don’t have to choose the commit to fixup yourself?

                                                1. 7

                                                  No, that’s a fair point. There’s no automation to the interface, so there is that. But I also generally only have two or three primary commits that a fix could be targeting, so the cognitive overhead is not great to remember which commit I should be fixing up.

                                                  Really didn’t mean to disparage the work. This is a neat tool, it’s just not relevant to my usual git workflow so I was having trouble grokking the immediate benefit. I get it now, and will surely recommend it to co-workers :)

                                                  1. 4

                                                    And a quote from my engineering lead, “This is awesome.” … which he doesn’t say about a lot things, so high praise, indeed :)

                                                    1. 2

                                                      Actually it does. Check magit-commit-instant-fixup https://magit.vc/manual/magit/Initiating-a-Commit.html#Initiating-a-Commit

                                                      But as you said, rebasing is so fast that one tends to just use the default interface

                                                      1. 2

                                                        I believe instant-fixup is only for the current commit or one commit at a time. git absorb does more than that: it spreads your working directory changes across all of the appropriate ancestor commits depending on which ancestor corresponds to which part of your working directory changes.

                                                1. 18

                                                  I feel like a hipster saying it but I’m gonna do it in rust.

                                                  1. 10

                                                    I think the hipster choice would be rifle through your dad’s 486 and do it in Pascal.

                                                    1. 5

                                                      Rust was all the rage last year… and the year before that people seemed to love Elixir. To be a true hipster you need something so cool it hasn’t sold out yet.

                                                      1. 5

                                                        I’ll be using a new language that you probably haven’t even heard of yet.

                                                        /s

                                                      2. 1
                                                        1. 1

                                                          Hey same here! Figure it’s a good way to learn a new language

                                                          1. 3

                                                            I solved all of last years problems in rust and you could say it wasn’t really that fun - rust (just like c++ in previous years) was generating fast enough code so that I never really had to optimize anything ;)

                                                        1. 9

                                                          Completeness can be sacrificed in favor of any other quality. In fact, completeness must be sacrificed whenever implementation simplicity is jeopardized. Consistency can be sacrificed to achieve completeness if simplicity is retained; especially worthless is consistency of interface.

                                                          In a way the so called “New Jersey style” was a rush for a minimum viable product able to minimize the time-to-market and to gain the first mover advantage.

                                                          These are grim tidings indeed.

                                                          Everyone who works in software sees broken, dysfunctional systems that just keep getting worse with time. More and more money goes into working around their deficiencies, and real fixes are rare. Everyone who works in software thinks “surely there has to be a better way” but according to Gabriel, the forces of survival-of-the-fittest say “no, there can’t be a better way. I won’t allow it.”

                                                          We see good software in side-projects, in fun weekend hacks, and we go to work thinking “if I were in charge here, this would be like that”, but it can’t be. In a sufficiently competitive environment, “messy and now” beats “clean, but tomorrow” every time.

                                                          1. 4

                                                            Reading your comment I was filled with sorrow, because it feels so very right. But the more I thought on it, I realize that often “clean, but tomorrow” morphs into “clean, but next year,” if you’re not careful. And being given carte blanche to deliver whenever doesn’t work for businesses, and unless you’re a philosophic communist, we’re all in the business of something. The important part is striking the right balance between doing it well enough and delivering it on a decent timeline. That’s what you get from a high performing team, and that’s why processes like agile arose. And that’s life too: constraint balancing. Often those constraints are interpreted as bad, but that value judgement comes from us, not the constraint.

                                                            Put another way, there is no ivory tower where everything is perfect and all solutions are fully explored.

                                                            1. 2

                                                              Put another way, there is no ivory tower where everything is perfect and all solutions are fully explored

                                                              …and money is made.

                                                            2. 2

                                                              The environment doesn’t even need to be competitive. It just needs to involve money and people wanting what they tend to want: things done cheap.

                                                            1. 3

                                                              Fantastic. I’m in. One question though, how do we do discoverability? Would be nice to aggregate repos somewhere other than the user’s page.

                                                              1. 7

                                                                At the moment, you should do discovery somewhere other than sr.ht, like posting your project to Lobsters. I want to handle the social features carefully, as sr.ht is meant to be an engineering tool first and a social tool third.

                                                                1. 2

                                                                  I really really like this. This + the no JS mindset… big pros for sr.ht

                                                                  1. 1

                                                                    I can live with that. I actually think this is a noble position. I like the idea of composing services with small pieces. If there was a “hub” project or some such …

                                                                    1. 4

                                                                      Such a project is planned, to live at the top-level sr.ht domain. Stay tuned!