Highlight since it’s a nice, mental model presented in order of priority:

    Building great software means playing the long game

    For the sake of society

    1. Does this improve peoples’ lives?

    2. Could this be misused for harm?

    3. What users have been excluded?

    4. Is this ethical?

    5. Is this legal?

    For the sake of business

    1. What is the business strategy?

    2. Does it reduce our flexibility to pivot our strategy?

    For the sake of technology

    1. Am I using the right tool for the job?

    2. Is this something new or are we reinventing the wheel?

    3. Am I incurring technical debt.


      Could this be misused for harm?

      A friend of mine turned down a pretty nice research position when he realized his work would primarily go into weapons control systems. Oddly enough, years later, I ended up in a D&D group with the daughter of another guy who worked on that team. Small world.


        That stuff trips me out. Props for the first person. No judgement on 2nd since I compromised with that: if they’re to be written, Id rather them hit their target instead of random folks. I want top talent on controls for things that go boom. ;)

    1. 6

      It’s 2015, and I saw a presenter at a Python conference make fun of Java. How would that feel to people trying to move from Java into something else? I wouldn’t feel welcome, and I’d have learned that the idea that the Python community is welcoming wasn’t true.

      My brother-in-law teased me about buying a Subaru and not God’s Chosen Car (Chevrolet). My father (an Aggie) teased my wife about going to an obviously inferior school (UT). I got teased for running Linux for Babies (Ubuntu) instead of Gentoo. My last talk at Black Hat I had a joke about the obvious superiority of Python over Ruby.

      None of these cases are actual examples of anyone being unwelcoming. There’s a fair amount of good-natured ribbing in the world, for just about anything. It is a normal method of human interaction.

      There are certainly asses out there who really do get way into their language/car/tool of choice and are actually unwelcoming, but that is certainly not unique to computer science or software engineering. To judge a whole community by those asses is applying a standard that wouldn’t work in any field of human endeavor.

      And there’s the additional problem that some tools really are just better and not even just for specific cases. That doesn’t mean you should make fun of the people who use them, of course, but those people shouldn’t get offended if people wonder why they’re using an inferior tool when other tools are just as easily available. (Maybe it’s because it’s what you know, which is fine, but if a doctor tells me that they only use medical techniques from 30 years ago because it’s “what they know best” I’m going to find a different doctor…)

      1. 5

        Good-natured ribbing, like any other form of humor, is kind of audience-dependent. Making fun of someone who is already your friend is different from making fun of a whole class of people who aren’t even there to defend themselves. A joke about Ubuntu being Linux for Babies might be fine with someone who is already confident enough in their abilities to present at BHW, but it can be soul-crushing if you’re actually a noob.

        A conference presentation should probably avoid jokes unless you’ve shown them to other people to try to make sure that they actually think it’s funny.

      1. 3

        It’s no secret I love IF (see my username, for example). I’ve been playing with Inform since the mid-to-late 90’s…I wish Inform 7 would go open source (I know it will eventually).

        I also love logic programming.

        Therefore, I love this. :) Going to read the manual tonight.

        1. 3

          Here I was thinking you came up with that great name. :)

        1. 6

          Object-Oriented Programming: An Evolutionary Approach

          I actually went on one of my “deep dive into old computer science things” and got obsessed with pre-NeXT Objective-C. I tracked down a copy of the first edition of this book (the second edition is much closer to the more modern Objective-C that we now know and love).

          I even reached out to Tom Love (co-creator of Objective-C along with Brad Cox) and he was kind enough to recommend Object Lessons as an additional suggestion and dig through his garage for some old documents.

          Either way, it’s an excellent book.

          Object-Oriented Software Construction

          Meyer’s approach to software engineering is…I’m not even sure of the right word. “Perfectionist” might be close, but I don’t want the negative connotation to come through on that. Anyone who wants to study OOP could do with reading his work.

          1. 2

            and got obsessed with pre-NeXT Objective-C

            Do you have any resources for that in particular? I’ve been curious about Objective-C before NeXT, but never ended up diving into it and its history.

            1. 5

              The above mentioned Object-Oriented Programming: An Evolutionary Approach is good, of course.

              I read a lot of NeXT documentation, though again I was more interested in the pre-NeXT days.(I briefly had a NeXTstation set up in my living room. That was fun.)

              I bought a copy of “Objective-C: Object-Oriented Programming Techniques” by Pinson for like fifteen cents from Amazon; that was all right but not great.

              Most interesting was the original “Object-Oriented Pre-Compiler” paper, which I believe was published in Communications of the ACM but I’m not exactly sure where I got it. It documented a very early implementation where methods were invoked using a rather…awkward…syntax.

              I found references here and there to the various “ICpaks” that PPI (later Stepstone) released (ICpak101 was the core collection classes and ICpak102 was the GUI, IIRC). These were very different from the later NeXTstep/OPENSTEP classes, and really nice in their own ways. They were somewhat documented in the Evolutionary Approach book as well.

              Sadly, I was never able to get the Holy Grail that I was looking for: copies of the original PPI compiler/ICpak/library manuals. Those whom I reached out to (Brad Cox, Tom Love, and others) were unable to find their copies or were unwilling to part with them (which is understandable).

              If you’re interested, the Portable Object Compiler implements a pre-NeXT (but still post-ancient) Objective-C, and its manual describes its “ObjectPak”, which is more in line with the original “ICpaks” than NeXTstep. I still much prefer Objective-C to C++.

              1. 2

                The Object-Oriented Pre-Compiler: programming Smalltalk-80 methods in the C language is the citation (and if you’re an ACM member, the full article is linked there).

                1. 1

                  You weren’t kidding about if an ACM member: couldn’t find a legal copy anywhere other than paywalls. ResearchGate’s at least has “request full text” button. Did at least stumble on an interesting, historical submission for Tuesday.

                  1. 3

                    The Object-Oriented Pre-Compiler: programming Smalltalk-80 methods in the C language


                    1. 2

                      I did say “legal.” ;)

                      1. 3

                        For all intents and purposes that article should be freely available by now. That it isn’t is just a bug in the system, a blip on the line, a hiccup in the clockwork and as such something the ’net has been designed to route around. Which it does.

                2. 2

                  Thank you for the detalied response!

            1. 5

              As Linux gets more and more corporate and less targeted for the desktop, having a light-weight and responsive OS is enough to make it unique.

              I do patch my Linux with the MuQSS scheduler, the best thing for Linux responsiveness, but I was recently told the Haiku one is essentially the same. This is awesome to me.

              There is a lot and more in apps and hardware support that Heroku would need for me to switch over, but it seems like a cool project.

              Does it do virtual desktops, btw?

              1. 4

                MuQSS schedule

                I heard there was a better scheduler for desktop use. Didn’t know the name. Thanks for the tip.

                1. 3

                  Does it do virtual desktops, btw?

                  It does.

                  The things that it’s missing that I would need to make it my daily driver:


                  • Support for multiple monitors (was in the works at one point, may be there now)
                  • Support for videoconferencing and screen sharing in Google Meet (long shot because Google barely even supports Firefox there)
                  • Full disk encryption (there’s an encrypted block device driver in the tree but last I checked it was moribund)


                  • The ability to run virtual machines at full speed (there’s qemu but without OS support it’s doing true emulation and is unusably slow for my purposes)
                  • The ability to use Firefox Sync

                  I’d say BeOS is my favorite operating system of all time, but I can’t quite bring myself to say it since AmigaOS existed.

                  1. 3

                    I do patch my Linux with the MuQSS scheduler, the best thing for Linux responsiveness, but I was recently told the Haiku one is essentially the same. This is awesome to me.

                    I don’t know a lot about the MuQSS scheduler, but from reading over the introductory document, it indeed looks pretty similar to Haiku’s. (I wonder where you read this previously, though?)

                    There is a lot and more in apps and hardware support that Haiku would need for me to switch over, but it seems like a cool project.

                    What would those be? Most minor tools are easily ported at this point.

                    1. 3

                      IRC, oftc.net, can’t remember why I joined Con Kolivas’ channel #ck, but there. I consider him a friend after all this time and tested some of his prototypes way back.

                      The Godot engine would be one big thing.

                    2. 3

                      Virtual desktops: yes.

                      Linux gets more and more corporate and less targeted for the desktop

                      Let’s hope the competitors get better in quality. I doubt I will want change to Haiku unless something really bad happens in the nix world, but hopefully its presence will make everyone else better nonetheless.

                      1. 3

                        Disk encryption, does it have that? Password-protected screensaver?

                        1. 4

                          BeOS had a password-protected screensaver.

                      2. 2

                        How does mainstream GNU/Linux get worse?

                        1. 10

                          NB: this turned out to be a poettering rant.

                          adding ever more complicated layers onto complicated layers to reinvent the wheel. most things should be done a few layers down, not by adding a few layers on top. this while having the same functionality 10 years ago, which most of the time was working as good as today, only less complicated and prone to break. the sound stack is just horrible, the most sane thing would be to throw out alsa and pulseaudio and use oss4, which implements most of the features. session and login management is also insane, a mess of daemons connected via dbus of all things. systemd people constantly reinventing square wheels (resolved, really?). while i’m at it, ps found a now one i didn’t know about: “rtkit-daemon”, fixing problems i don’t have, running by default.

                          i know, it’s open source, i can write a patch.

                          1. 3

                            I’ve been geeking out on schedulers for a long, long time and every encounter with vanilla Linux on a heavily-loaded box has been awful. It might behave better now, but that would be by very complicated code and bizarre special-case settings.

                            As a simple user, I just use the -ck patch set and ignore the horrors of the sound stack, systemd, Linux Foundation’s corporate politics, cgroups and what have you.

                            I mean, it kinda still works, but sometimes it feels the best desktop-experience parity with Windows was reached 20 years ago, if you exclude hardware support and games, and or with gnome3-type shit and everything got worse.

                            I’m not positive the desktop experience is as good as it gets but I am positive it’s no one’s priority.

                            1. 4

                              I actually like Gnome 3 UI-wise, but the Linux scheduler seems to be more horrific than it used to be, and I remember it being bad a decade ago. I’ve had systems where X11 chugged hard and took 30 minutes to get to a vt when Firefox was stressing the system, when Windows on even more decrepit hardware was slow, but at least felt usable due to seemingly better scheduling - and it didn’t matter what WM you were using.

                          2. 1

                            I’m not seeing Linux move away from the desktop at all. In fact I’m seeing more investment in the LInux desktop than ever.

                            It’s just that they’re investing in the wrong (from my selfish stance :) desktop environment :)

                            1. 2

                              they’re moving away from the desktop and towards tablets, even though linux doesn’t run on any

                          1. 2

                            It’s “incompatible” because it isn’t the Compatible Time-Sharing System (which was compatible with with original Fortran Monitor System).

                            Like everything else in software, there was also a West-Coast Alternative to ITS (from Stanford).

                            1. 4

                              Still the best error code on the Internet:

                              2.3.2 418 I’m a teapot

                              Any attempt to brew coffee with a teapot should result in the error code “418 I’m a teapot”. The resulting entity body MAY be short and stout.

                              1. 2

                                While I have to agree, “lp0 on fire,” “values of beta will give rise to dom!” and “user is not a typewriter” are all up there too.

                              1. 11

                                Don’t forget HAMMER on DragonFlyBSD if we’re gonna talk about the right way to do storage management.

                                1. 3

                                  Could you elaborate on this?

                                1. 2

                                  Deleted my original rant response because, as @sgreben rightfully pointed out, my rant was exactly the kind of thing i ranted about.

                                  But, yes, I’d like to see a freeze in new users for a while, to avoid lobste.rs from collapsing under its own weight.

                                  I’d also suggest:

                                  1. Culling users who have been new members for X months and never posted (but once you post/comment once, you’re in for forever?)
                                  2. Requiring more than one invitation for joining?
                                  3. Moving to a subscription model. I get enough enjoyment out of this site that I’d be happy to pay for it.

                                  But, that’s just my USD$0.02.

                                  1. 15

                                    Culling users who have been new members for X months and never posted (but once you post/comment once, you’re in for forever?)

                                    I will note that there are people who primarily lurk in any online community. This site has a private message system and possibly other features of value to members who never post publicly.

                                    Original research I was privy to in my first moderating position suggested that about 20 percent of users were active participants who posted regularly or semi regularly, another 10 percent posted only once or very rarely and the rest lurked. Anecdotal observation suggests that these figures probably are fairly representative of other communities I have engaged in.

                                    1. 8

                                      Lurkers are harmful to communities like this, because they have influence in shaping the site but also don’t bother to engage beyond being a silent majority that can be pandered to (purposefully or not) they amplify any democratic issues the site might have.

                                      Better to purge them and leave control of the site (what little there is) in the hands of the people who bother participating.

                                      Edit: lurkers here being those who have accounts but don’t post.

                                      1. 7

                                        Hi friendlysock, I’m malxau and I’m a lurker.

                                        The reason I ended up like this is because the technology landscape is very broad today (and getting broader), and I have firsthand knowledge or experience with a tiny fraction of topics that get discussed. So the best way I can see to keep the signal-to-noise ratio high is to read about things that I don’t know, including comments from people more familiar with them, and avoid contributing to or moderating those posts.

                                        Occasionally there will be something I know, but something I deeply know and have firsthand knowledge of is still rather rare. (In my case, I’ve spent the last 14 years working in Windows kernel mode; I’m an active practitioner, but looking at submissions you’ll see why I don’t feel like I know the breadth of topics being discussed, including things like the Palantir thread.)

                                        Do you still think I’m a problem? Do you think the site would work better if I commented or moderated more?

                                        1. 4

                                          I can’t see your upvotes or flags, so I can’t comment on that front. That said, I think the site would definitely be improved by your participation and submissions of things relating to your background with Windows arcane programming!

                                          Thank you for giving your perspective here.

                                          1. 1

                                            Your site was refreshingly different since it covered stuff I don’t usually see on Lobsters. Doing low-level kernel stuff, I bet you ran into both content and lessons learned that Lobsters might have found interesting regardless of you writing on Windows. There’s also Lobsters on Windows. There’s also a lot of Lobsters that hate Windows.

                                            I have no idea how well your stuff would’ve been received. There’s a chance people might have found it interesting, though. If it’s Windows-like as someone said, an easy example is Minoca OS getting lots of appreciation. Another thread on its documentation had 10 votes. So, there’s potential.

                                          2. 6

                                            Hey there. That seems like a fairly strong opinion. Any research or data you can point me to? I’m not aware of evidence that lurkers are somehow harmful in most cases.

                                            1. 5

                                              Have you seen HN or Reddit? I’m serious. It’s called hivemind for a reason.

                                              People that care enough about a site to post content, or even comment, are, by definition, more involved in the site than users who maintain accounts but don’t do anything but vote up and down.

                                              Lurkers who just vote and flag look an awful lot like slacktivists. They’re freeloaders, contributing no content of their own and no discussion, but they can still screw up conversations by voting with a knee-jerk reaction.

                                              One of the things that sets Lobsters apart is that is made up quite largely of people that actually write code frequently (instead of, say, being growth hackers, or bloggers, or marketers, or bankers, or whatever else) and that those people are given transparency and tools for interacting with the running of the community. Lurkers run counter to at least the latter of those key characteristics.

                                              1. 11

                                                Yes, I’ve seen both HN and Reddit.

                                                I don’t think I’ve ever seen a forum that didn’t have a lot of lurkers. Do you know of any forums where “post or leave” is actual policy? Do you know of any research on this angle?

                                                I’m not making any recommendations here. I’m just seeing people saying “I think we should do X!” and the things I’m seeing don’t fit with my understanding of best practices. But I certainly don’t know everything, so I’m trying to share what I know concerning actual (pertinent) data and asking if anyone knows of any supporting research for their positions.

                                                To be clear, I’m absolutely not trying to tell anyone how lobsters should be run. I was given an invitation by a coder who wants to start a discussion board and he asked if I would consider taking on the role of lead moderator. I tentatively agreed.

                                                So I’m not actually a programmer, though I have some technical training and so on. I’m genuinely interested in learning if there is good data and research supporting the various proposals in this discussion because I’m looking for, among other things, stuff pertinent to the project I’m trying to collaborate on.

                                                I’m genuinely curious and open to seeing good information on such things. I’m aware these questions may be unwelcome here, both because I’m new and because people will tend to interpret my comments as intent to shape policy on lobsters the very day I joined.

                                                A best case outcome is that my comments and questions serve to be helpful and thought provoking for people here who are trying to shape lobsters while I get useful resources to support my project. But a less nice and more likely outcome is that people decide my questions are somehow bad behavior and I get told to gtfo of the discussion or something.

                                                1. 7

                                                  I’ve never thought about how lurkers skew voting until this thread, but it seems commonsensical now. You end up with the posters performing for a silent audience, instead of interacting with each other.

                                                  Maybe a half-measure we could try is giving people a pool of votes that’s replenished when you post, and you spend from that pool when you up or down a story or comment; one post (submission or comment) could earn you 10 votes or something. That way votes come from the people who are actually engaging with the site, but we’re not kicking anyone off for not being chatty.

                                                  1. 10

                                                    Maybe a half-measure we could try is giving people a pool of votes that’s replenished when you post

                                                    No no no no no no no. That would result in users creating a large number of low-effort comments in order to refuel. It’s bad enough that internet users will do almost anything to make a number go up. It’s even worse when you attach actual incentives to that number.

                                                    1. 3

                                                      We could do something like requiring a comment/post have at least +3 or something before it counts towards your vote pool; that might be enough to frustrate a lot of the system-gaming, no?

                                                      1. 1

                                                        The low-effort posts on popular topics get lots of votes. Probably won’t work.

                                                    2. 2

                                                      I’ve never thought about how lurkers skew voting until this thread, but it seems commonsensical now. You end up with the posters performing for a silent audience, instead of interacting with each other.

                                                      This is an empirical question worth empirically validating before believing. There is also a plausible just-so story that older users feel more confident voting strategically to enforce their political opinions, etc. Form your hypothesis, write a query, decide how to interpret possible results, and then send it to me to run.

                                                      1. 1

                                                        That’s a neat idea and I’d be in favor of trying it. I don’t know to what extent that would affect the upvote/downvote dynamics of the site, but I’m interested in finding out, and I don’t think it’s an onerous requirement on people.

                                                        1. 1

                                                          a pool of votes that’s replenished when you post, and you spend from that pool when you up or down a story or comment; one post (submission or comment) could earn you 10 votes or something.

                                                          I think that this is great idea. Personally I would go with 1-2 votes per submission but whatever the number I think we should try it.

                                                          1. 1

                                                            Yeah; I originally said 10 because voting serves a real purpose, and I’d worry that only getting one vote per comment could reduce the quality of the front page, because people would hoard their precious votes. I’m no expert on this stuff, though.

                                                          2. 1

                                                            This idea sounds great. I’m not sure what the dynamics would look like, but it’s be interested in trying it out.

                                                          3. 6

                                                            but they can still screw up conversations by voting with a knee-jerk reaction

                                                            Yes, voting does screw up conversations. If I had my way, lobsters wouldn’t have votes on comments, exactly because I don’t think that meaningful conversations should be democratized like that. Lobsters isn’t a very good system for conversations in my very humble opinion (I keep linking to Discourse.org as the model to live up to for a reason). But I don’t think lurkers are necessarily any worse at knee-jerk voting than active commenters.

                                                            Lobsters is, however, pretty much the gold standard for link aggregation, for surfacing content from elsewhere. Voting, flagging, and submitting articles without ever commenting is something I think we should be encouraging, because that’s what the Lobsters software is actually good at. Less conversations, more stories.

                                                        2. 5

                                                          voting satisfies the “me too” impulse. absent that, I suspect you’d see a lot more actual me too comments.

                                                          1. 4

                                                            If you change the rules to ‘post or get out!’, I suspect you will see:

                                                            1. People who are slow to integrate into the community but will eventually post good stuff lose their connection to lobsters and go elsewhere instead of slowly ramping up from just looking to joining to voting to commenting/submitting.
                                                            2. Lots of comments along the lines of “I have nothing to say right now, I’m just trying to say something so I don’t get purged”
                                                            1. 4

                                                              Voting lurkers could indeed be problematic. Perhaps adding a min-karma-threshold for upvoting (similar to flagging), could be a useful experiment.

                                                              1. 1

                                                                Is the problem with vote lurking the up or down votes?

                                                              2. 3

                                                                Downvotes are inaccessible until a user reaches a certain karma threshold. Would it make sense to do the same thing for upvotes too, reducing the pool of users that can vote?

                                                                I don’t think outright purging users is very helpful, since reading for a while before posting is a common practice (and probably not something that should be discoraged). I agree having a silent voting majority is potentially quite harmful to a forum.

                                                                1. 1

                                                                  reading for a while before posting is a common practice (and probably not something that should be discoraged)

                                                                  You don’t need an account to read.

                                                                  1. 2

                                                                    You don’t, but there are features that are useful for people who are only reading (tag filtering, hiding stories).

                                                                  2. 1

                                                                    That inversion is worth thinking on more. The political folks currently do more upvoting of political stuff than submissions or comments. It isn’t limited to them. We see the same thing in the technical threads for some people or types of comments.

                                                                    1. 1

                                                                      I was under the impression votes were anonymous, is this not correct?

                                                                      1. 1

                                                                        The site won’t tell other users what your votes are, but it needs to know, both to prevent multiple votes and to show you what you’ve voted on. Obviously the site administrators, who have direct database access, can query that information.

                                                                        1. 1

                                                                          This is accurate, and I’ve written elsewhere in this thread about that access and the practices around it.

                                                                        2. 1

                                                                          They usually vote and comment together. So, you know who some of the likely voters are.

                                                                    2. 2

                                                                      how about limiting the votes one has? dota2 does that for reports to keep the reporting system valuable. one of:

                                                                      • fixed number of votes per time-unit (easiest, but limited impact i think)
                                                                      • votes per time-unit limited by karma, eg. votes * karma / maxKarma (could become a lobsters ingame currency)
                                                                      • votes per time-unit limited by submission count (facilitates spamming)
                                                                      • votes per time-unit limited by combined submission count and karma (i don’t have an idea for a good function to do that ;)

                                                                      this should at least limit the lurker influence. i for one wouldn’t care if i’d have to manage my votes a bit.

                                                                      edit: haldean had posted this idea before me, i should have read this thread more thoroughly :)

                                                                      1. 3

                                                                        If the intent is to limit the effect of upvotes, and avoid knee-jerk voting, one could also make it mirror the current downvote choices and simply make a user think about why they are up-voting a comment. So an upvote arrow should offer choices such as [technical|meta|..].

                                                                        1. 1

                                                                          Or “MAS” for “mutual appreciation society” ;)

                                                                      2. 2

                                                                        Wouldn’t that just cause stupid posts like “not lurker” or “first” to trigger account “lock in” – possibly even on very old threads.

                                                                        1. 1

                                                                          My concern with a negative eye towards people like myself who don’t post much is that it suggests posting is mandatory regardless of quality or relevance. I am a lurker, but only because I don’t want to clutter up threads with poorly informed or nontechnical content. I wish I had the depth of experience that some more frequent posters have; should I be excluded for being more of a generalist?

                                                                    1. 28

                                                                      Could you provide examples of the growing pains you’re concerned about?

                                                                      1. 2

                                                                        Nope. You’re for it, against it, or you abstain. :) Just pick one!

                                                                        A related proposal (which I do not support) calls for shrinking the active user count rather than freezing it.

                                                                        If you look at that whole post, not just the comment I linked to, you’ll see many of the “growing pains”.

                                                                        1. 33

                                                                          Well, no, then. Sorry, but why propose this action if you’re unwilling to make any argument in its favor?

                                                                          While I’m not as active in the lobste.rs community as many others here, it is not obvious to me there’s a problem to address. But if there are specific growing pains we’re running into, and if there’s some plausible reason to think putting invitations on pause would ease those pains, then by all means let’s hear it—I’m open to persuasion, as I’m sure most others here are.

                                                                          1. 5

                                                                            Agree entirely. The unwillingness to respond to a very straightforward question feels absurd. Doubly so when requesting drastic action.

                                                                            1. 1

                                                                              Some days have passed and I think the 114 comments here demonstrate that I provided sufficient information in the initial post.

                                                                              I regret my “nope! :)”, though. It was not well received. That crustaceans do not appreciate cute or coy is a lesson that just hasn’t sunk in yet.

                                                                      1. 1

                                                                        I remember reading somewhere that this (or the original paper) is the single most-cited work in computer science.

                                                                        1. 1

                                                                          I think the paper is from 1978, so it might be the case. I will ask my academic friends to figure it out.

                                                                        1. 10

                                                                          That was a surprisingly fun quick read.

                                                                          As an example of another language that would foot the bill but be more…modern than the one described in TFA (no spoilers) would be REBOL.

                                                                          It was the path not taken, sadly.

                                                                          1. 9

                                                                            You might be aware, but Red is following that path. But they’ve gone off on a cryptocurrency tangent; I’m not quite sure what’s going on there anymore.

                                                                            1. 4

                                                                              I think dialecting ala Rebol is super interesting, but I also think this sort of “wordy” input like AppleScript and DCL will eventually just become short forms that often require just as much effort to read later… that’s how you’d have things like show device... foreshortened to sho dev ....

                                                                              Having said that, SRFI-10 or #. form from CommonLisp is a happy medium, I think.

                                                                              1. 3

                                                                                that’s how you’d have things like show device… foreshortened to sho dev

                                                                                I have not been responsible for a Cisco router in at least 15 years but I still find myself typing “sh ip int br” on occasion.

                                                                                1. 2

                                                                                  hahahaha oh lord, I know what you mean. I still have ancient devices burned in my brain as well, like OpenVMS and what not. Still, I think it goes to show that making things more “natural language-like” doesn’t really mean we want to write like that… there’s probably some balance to be struck between succinctness and power that we haven’t figured out yet

                                                                              2. 2

                                                                                I also loved the bit of engagement at the end with the buttons. Been a string of really well written (light) technical articles lately, hope the trend continues.

                                                                                I ported a REBOL app (using the full paid stack) to C# – the code inflation and challenge of making a 1:1 exact copy (no retraining port) was phenomenal. Most stuff took nearly an order of magnitude more code. There were some wins (dynamic layouts, resizing, performance) – but REBOL had shockingly good bang for the buck and dialects only really took a few days to grok.

                                                                              1. 9

                                                                                A similar technique was used back in the Windows 3.x days. Windows programming is centered around “handles”, which in those days were just integers. There were a bunch of typedefs that defined things like “HWND” (window handle) and “HICON” (icon handle).

                                                                                As these were just integers, it was easy to pass the wrong kind of handle to a function, with humorous results. By defining a macro (the name of which escapes me right now but is something like “STRICT”) each handle type got a pointer-to-struct typedef that made it much easier to catch mis-typed handles at compile time.

                                                                                (Note that I never wrote any code for Windows really; back then I was an Amiga guy….but I experiment and read a lot. :)

                                                                                1. 22

                                                                                  I gotta say, as annoying as recruiter emails can be, too many of them is the very definition of “a great problem to have.”

                                                                                  1. 7

                                                                                    If they represent real job options but you happen to have better ones, sure.

                                                                                    But if they’re truly irrelevant - requiring skills you don’t have and never claimed to have - they truly have no value to you and waste your time.

                                                                                    1. 1

                                                                                      Recruiter emails are to real job opportunities as “You may already have won the Publisher’s Clearinghouse Sweepstakes” letters are to actual lottery winnings.

                                                                                      1. 2

                                                                                        Some are good, but random recruiter emails do seem much more likely to be ridiculously bad - like lowly-paid and probably high-stress contractor “opportunities” for stacks I’ve never touched in a random city halfway across the country that I have no interest in moving to or commuting to.

                                                                                    1. 2

                                                                                      If you’re in the United States, don’t forget to go vote!

                                                                                      1. 6

                                                                                        begin rant

                                                                                        I have never used Windows as my primary operating system but I thought with WSL I could consider it. I have a burner laptop I use for when I absolutely have to run Windows (usually work related).

                                                                                        Windows 10 is awful. The amount of bloatware is incredible. Alerts popping up to tell me to subscribe to OneDrive. A ton of XBox crap I won’t ever use and can’t uninstall. Ads in the start menu.

                                                                                        And it’s unusably slow. The little burner laptop isn’t particularly fast, but it’s name-brand (HP) and all that jazz…and resizing windows or right-clicking to open a menu can take tens of seconds. I figured out it’s due to the Windows Defender antivirus scanning; disabling that makes it barely usable but I’m surprised that it’s that bad. Supposedly it only runs when the box is idle, but I think what they consider “idle” is wrong. (It would happen when I was videoconferencing, which definitely isn’t “idle”, and tax the system to the point that I’d lose connectivity.)

                                                                                        Then you have the weird split between Metro and Classic apps. Why are some things in the Settings app, and other things in the Control Panel?

                                                                                        I remember, years ago, when Windows seemed to be “put together well”…now it seems really Frankensteiny.

                                                                                        1. 2

                                                                                          Yes it’s amazing how much they messed up the config screens with Windows 8 and many years later they still haven’t fixed it. They need to make up their mind, either move all the functionality to their pretty new screens, or move it all back to the old style config panel, but as it is it’s incredibly confusing to find under which screen is which config item.

                                                                                          I was using Windows 7 on an old laptop the other day - everything is nice, clean and logical. I don’t get how they could mess everything up so badly with Windows 8.

                                                                                          1. 1

                                                                                            I agree that Windows can be pretty crummy out of the box, especially if the OEM adds a layer of crud. If you find that you need to use Windows more often, it’s not too painful to get a clean install and remove a lot of that annoying stuff.

                                                                                            1. 1

                                                                                              That’s unsurprising. With every Windows, I had to go through a first step in disabling all kinds of bad stuff and installing good stuff (i.e. Microsoft alternatives). Then, Windows was a great platform to use. Even Windows Vista minus its RAM usage. It sounds like you didn’t do the initial, cleanup step that’s pretty much mandatory for a positive experience with Windows.

                                                                                              I’m not going to encourage that since I think it’s a waste of your time given you’re rarely on Windows. ;) I am mentioning it as a reminder for anyone reading that thinking it’s inevitable or even you if you ever want to see how good you can make it just in curiosity. I’m sure there’s piles of guides on Internet to assist given how resourceful Microsoft forces people to get.

                                                                                              EDIT: Windows 7 Professional was the last, great Windows. I’d buy it today if they resold it under a perpetual, per-machine license with security or other fixes. They can basically charge us each year for the fixes. Make everything optional like with Windows Embedded. We could easily turn off what we don’t want. I’d be a happy camper.

                                                                                              1. 1

                                                                                                There’s an easy way to remove almost all of the bloatware, search google for ‘powershell script remove appx’

                                                                                                A good guide is here: https://www.askvg.com/guide-how-to-remove-all-built-in-apps-in-windows-10/

                                                                                              1. 10

                                                                                                Off the top of my head:

                                                                                                • Niklaus Wirth
                                                                                                • Ken Thompson
                                                                                                • Dennis Ritchie
                                                                                                • Rob Pike
                                                                                                • Doug McIllroy
                                                                                                • Ken Iverson
                                                                                                • Mike Colishaw
                                                                                                • Carl Sassenrath

                                                                                                I agree and disagree with many of these people on many things, sometimes even technical things, but when it comes to their philosophies on how to work with technology, I am in general agreement.

                                                                                                I suppose the common thread through all of their philosophies, with the exception of perhaps Colishaw, is valuing simplicity in implementation, algorithms, and notation.

                                                                                                (Colishaw I admire because of the clarity and strictness of his specifications that nevertheless read fluently and conversationally…though his work has often preferred complexity in implementation to remove burdens on the user. And I have a soft spot for REXX.)

                                                                                                I’m sure given more time I’d expand this list greatly, but I’m writing this in a two minute span between meetings. :) Also, these names are simply names of individuals but their greatest work was done with teams, and the acknowledgement should extend to those people as well.

                                                                                                1. 8

                                                                                                  I spent the evenings of the next three weeks brushing up on my algorithms and data structures

                                                                                                  Why, why do companies do this? Am I being hired to implement the STL? I don’t remember how to balance a red-black tree and that’s okay. I don’t memorize things I can look up in ten seconds.

                                                                                                  Now, it is reasonable to maybe expect people to know the performance characteristics of different data structures (don’t used a linked list when you need a hash table, don’t use a hash table when you need a tree, etc) but even then it’s silly to expect someone to know your pet data structure inside and out.

                                                                                                  I’m much more interested in knowing how you’d solve a problem, not what trivia you know.

                                                                                                  1. 2

                                                                                                    Yeah, for me that’s just nonsense. See how someone breaks down a complex problem, how one asks questions when they need more info before proceeding, see how their average code looks like.

                                                                                                    But even specifically knowing the performance of certain data structures is something only very specific job descriptions should have.

                                                                                                    Most tasks should anyway go through iterations of correctness before going through performance polishing (if it is ever needed).

                                                                                                    If you know specific algorithms by heart you either: just freshly studied them, you had to look them up because they told you they might ask or you are someone with a not normal memory. Maybe that’s the type of person they want to hire or they are just following silly “trends”.

                                                                                                    1. 1

                                                                                                      I guess because it’s a black and white subject, mostly removing any implementation details so it’s quick and “fair” to judge a broad pool of candidates. Nonetheless, it’s pretty far from our daily jobs…