1. 3

    it’s not like minesweeper, you have to click on ‘show results’ to see the score

    1. 1

      Thanks, I was trying to figure that out for the longest time lol.

    1. 4

      I write blog posts when I have the impulse or time. Usually technical stuff but sometimes other things as well.

      http://markfischerjr.com/

      1. 28

        That is a very reductionist view of what people use the web for. And I am saying this as someone who’s personal site pretty much matches everything prescribed except comments (which I still have).

        Btw, Medium, given as a positive example, is not in any way minimal and certainly not by metrics given in this article.

        1. 19

          Btw, Medium, given as a positive example, is not in any way minimal and certainly not by metrics given in this article.

          Chickenshit minimalism: https://medium.com/@mceglowski/chickenshit-minimalism-846fc1412524

          1. 13

            I wouldn’t say medium even gives the illusion of simplicity (For example, on the page you linked, try counting the visual elements that aren’t blog post). Medium seems to take a rather contrary approach to blogs, including all the random cruft you never even imagined existed, while leaving out the simple essentials like RSS feeds. I honestly have no idea how the author of the article came to suggest medium as an example of minimalism.

            1. 8

              Medium started with an illusion of simplicity and gradually got more and more complex.

              1. 3

                I agree with your overall point, but Medium does provide RSS feeds. They are linked in the <head> and always have the same URL structure. Any medium.com/@user has an RSS feed at medium.com/feed/@user. For Medium blogs hosted at custom URLs, the feed is available at /feed.

                I’m not affiliated with Medium. I have a lot of experience bugging webmasters of minimal websites to add feeds: https://github.com/issues?q=is:issue+author:tfausak+feed.

            2. 3

              That is a very reductionist view of what people use the web for.

              I wonder what Youtube, Google docs, Slack, and stuff would be in a minimal web.

              1. 19

                Useful.

                algernon hides

                1. 5

                  YouTube, while not as good as it could be, is pretty minimalist if you disable all the advertising.

                  I find google apps to be amazingly minimal, especially compared to Microsoft Office and LibreOffice.

                  Minimalist Slack has been around for decades, it’s called IRC.

                  1. 2

                    It is still super slow then! At some point I was able to disable JS, install the Firefox “html5-video-everywhere” extension and watch videos that way. That was awesome fast and minimal. Tried it again a few days ago, but didn’t seem to work anymore.

                    Edit: now I just “youtube-dl -f43 ” directly without going to YouTube and start watching immediately with VLC.

                    1. 2

                      The youtube interface might look minimalist, but under the hood, it is everything but. Besides, I shouldn’t have to go to great lengths to disable all the useless stuff on it. It shouldn’t be the consumer’s job to strip away all the crap.

                    2. 2

                      That seems to be of extreme bad faith though.

                      1. 11

                        In a minimal web, locally-running applications in browser sandboxes would be locally-running applications in non-browser sandboxes. There’s no particular reason any of these applications is in a browser at all, other than myopia.

                        1. 2

                          Distribution is dead-easy for websites. In theory, you have have non-browser-sandboxed apps with such easy distribution, but then what’s the point.

                          1. 3

                            Non-web-based locally-running client applications are also usually made downloadable via HTTP these days.

                            The point is that when an application is made with the appropriate tools for the job it’s doing, there’s less of a cognitive load on developers and less of a resource load on users. When you use a UI toolkit instead of creating a self-modifying rich text document, you have a lighter-weight, more reliable, more maintainable application.

                            1. 3

                              The power of “here’s a URL, you now have an app running without going through installation or whatnot” cannot be understated. I can give someone a copy of pseudo-Excel to edit a document we’re working together on, all through the magic of Google Sheet’s share links. Instantly

                              Granted, this is less of an advantage if you’re using something all the time, but without the web it would be harder to allow for multiple tools to co-exist in the same space. And am I supposed to have people download the Doodle application just to figure out when our group of 15 can go bowling?

                              1. 4

                                They are, in fact, downloading an application and running it locally.

                                That application can still be javascript; I just don’t see the point in making it perform DOM manipulation.

                                1. 3

                                  As one who knows JavaScript pretty well, I don’t see the point of writing it in JavaScript, however.

                                  1. 1

                                    A lot of newer devs have a (probably unfounded) fear of picking up a new language, and a lot of those devs have only been trained in a handful (including JS). Even if moving away from JS isn’t actually a big deal, JS (as distinct from the browser ecosystem, to which it isn’t really totally tied) is not fundamentally that much worse than any other scripting language – you can do whatever you do in JS in python or lua or perl or ruby and it’ll come out looking almost the same unless you go out of your way to use particular facilities.

                                    The thing that makes JS code look weird is all the markup manipulation, which looks strange in any language.

                                    1. 3

                                      JS (as distinct from the browser ecosystem, to which it isn’t really totally tied) is not fundamentally that much worse than any other scripting language

                                      (a == b) !== (a === b)

                                      but only some times…

                                      1. 3

                                        Javascript has gotchas, just like any other organic scripting languages. It’s less consistent than python and lua but probably has fewer of these than perl or php.

                                        (And, just take a look at c++ if you want a faceful of gotchas & inconsistencies!)

                                        Not to say that, from a language design perspective, we shouldn’t prize consistency. Just to say that javascript is well within the normal range of goofiness for popular languages, and probably above average if you weigh by popularity and include C, C++, FORTRAN, and COBOL (all of which see a lot of underreported development).

                                2. 1

                                  Web applications are expected to load progressively. And that because they are sandboxed, they are allowed to start instantly without asking you for permissions.

                                  The same could be true of sandboxed desktop applications that you could stream from a website straight into some sort of sandboxed local VM that isn’t the web. Click a link, and the application immediately starts running on your desktop.

                                3. 1

                                  I can’t argue with using the right tool for the job. People use Electron because there isn’t a flexible, good-looking, easy-to-use cross-platform UI kit. Damn the 500 mb of RAM usage for a chat app.

                                  1. 4

                                    There are several good-looking flexible easy to use cross-platform UI kits. GTK, WX, and QT come to mind.

                                    If you remove the ‘good-looking’ constraint, then you also get TK, which is substantially easier to use for certain problem sets, substantially smaller, and substantially more cross-platform (in that it will run on fringe or legacy platforms that are no longer or were never supported by GTK or QT).

                                    All of these have well-maintained bindings to all popular scripting languages.

                                    1. 1

                                      QT apps can look reasonably good. I think webapps can look better, but I haven’t done extensive QT customization.

                                      The bigger issue is 1) hiring - easier to get JS devs than QT devs 2) there’s little financial incentive to reduce memory usage. Using other people’s RAM is “free” for a company, so they do it. If their customers are in US/EU/Japan, they can expect reasonably new machines so they don’t see it as an issue. They aren’t chasing the market in Nigeria, however large in population.

                                      1. 5

                                        Webapps are sort of the equivalent of doing something in QT but using nothing but the canvas widget (except a little more awkward because you also don’t have pixel positioning). Whatever can be done in a webapp can be done in a UI toolkit, but the most extreme experimental stuff involves not using actual widgets (just like doing it as a webapp would).

                                        Using QT doesn’t prevent you from writing in javascript. Just use NPM QT bindings. It means not using the DOM, but that’s a net win: it is faster to learn how to do something with a UI toolkit than to figure out how to do it through DOM manipulation, unless the thing that you’re doing is (at a fundamental level) literally displaying HTML.

                                        I don’t think memory use is really going to be the main factor in convincing corporations to leave Electron. It’s not something that’s limited to the third world: most people in the first world (even folks who are in the top half of income) don’t have computers that can run Electron apps very well – but for a lot of folks, there’s the sense that computers just run slow & there’s nothing that can be done about it.

                                        Instead, I think the main thing that’ll drive corporations toward more sustainable solutions is maintenance costs. It’s one thing to hire cheap web developers & have them build something, but over time keeping a hairball running is simply more difficult than keeping something that’s more modular running – particularly as the behavior of browsers with respect to the corner cases that web apps depend upon to continue acting like apps is prone to sudden (and difficult to model) change. Building on the back of HTML rendering means a red queen’s race against 3 major browsers, all of whom are changing their behaviors ahead of standards bodies; on the other hand, building on a UI library means you can specify a particular version as a dependency & also expect reasonable backwards-compatibility and gradual deprecation.

                                        (But, I don’t actually have a lot of confidence that corporations will be convinced to do the thing that, in the long run, will save them money. They need to be seen to have saved money in the much shorter term, & saying that you need to rearchitect something so that it costs less in maintenance over the course of the next six years isn’t very convincing to non-technical folks – or to technical folks who haven’t had the experience of trying to change the behavior of a hairball written and designed by somebody who left the company years ago.)

                                      2. 1

                                        I understand that these tools are maintained in a certain sense. But from an outsider’s perspective, they are absolutely not appealing compared to what you see in their competitors.

                                        I want to be extremely nice, because I think that the work done on these teams and projects is very laudable. But compare the wxPython docs with the Bootstrap documentation. I also spent a lot of time trying to figure out how to use Tk, and almost all resources …. felt outdated and incompatible with whatever toolset I had available.

                                        I think Qt is really good at this stuff, though you do have to marry its toolset for a lot of it (perhaps this has gotten better).

                                        The elephant in the room is that no native UI toolset (save maybe Apple’s stack?) is nowhere near as good as the diversity of options and breadth of tooling available in DOM-based solutions. Chrome dev tools is amazing, and even simple stuff like CSS animations gives a lot of options that would be a pain in most UI toolkits. Out of the box it has so much functionality, even if you’re working purely vanilla/“no library”. Though on this points things might have changed, jQuery basically is the optimal low-level UI library and I haven’t encountered native stuff that gives me the same sort of productivity.

                                        1. 3

                                          I dunno. How much of that is just familiarity? I find the bootstrap documentation so incomprehensible that I roll my own DOM manipulations rather than using it.

                                          TK is easy to use, but the documentation is tcl-centric and pretty unclear. QT is a bad example because it’s quite heavy-weight and slow (and you generally have to use QT’s versions of built-in types and do all sorts of similar stuff). I’m not trying to claim that existing cross-platform UI toolkits are great: I actually have a lot of complaints with all of them; it’s just that, in terms of ease of use, peformance, and consistency of behavior, they’re all far ahead of web tech.

                                          When it comes down to it, web tech means simulating a UI toolkit inside a complicated document rendering system inside a UI toolkit, with no pass-throughs, and even web tech toolkits intended for making UIs are really about manipulating markup and not actually oriented around placing widgets or orienting shapes in 2d space. Because determining how a piece of markup will look when rendered is complex and subject to a lot of variables not under the programmer’s control, any markup-manipulation-oriented system will make creating UIs intractably awkward and fragile – and while Google & others have thrown a great deal of code and effort at this problem (by exhaustively checking for corner cases, performing polyfills, and so on) and hidden most of that code from developers (who would have had to do all of that themselves ten years ago), it’s a battle that can’t be won.

                                          1. 5

                                            It annoys me greatly because it feels like nobody really cares about the conceptual damage incurred by simulating a UI toolkit inside a doument renderer inside a UI toolkit, instead preferring to chant “open web!” And then this broken conceptual basis propagates to other mediums (VR) simply because it’s familiar. I’d also argue the web as a medium is primarily intended for commerce and consumption, rather than creation.

                                            It feels like people care less about the intrinsic quality of what they’re doing and more about following whatever fad is around, especially if it involves tools pushed by megacorporations.

                                            1. 2

                                              Everything (down to the transistor level) is layers of crap hiding other layers of different crap, but web tech is up there with autotools in terms of having abstraction layers that are full of important holes that developers must be mindful of – to the point that, in my mind, rolling your own thing is almost always less work than learning and using the ‘correct’ tool.

                                              If consumer-grade CPUs were still doubling their clock speeds and cache sizes every 18 months at a stable price point and these toolkits properly hid the markup then it’d be a matter of whether or not you consider waste to be wrong on principle or if you’re balancing it with other domains, but neither of those things are true & so choosing web tech means you lose across the board in the short term and lose big across the board in the long term.

                          2. 1

                            Youtube would be a website where you click on a video and it plays. But it wouldn’t have ads and comments and thumbs up and share buttons and view counts and subscription buttons and notification buttons and autoplay and add-to-playlist.

                            Google docs would be a desktop program.

                            Slack would be IRC.

                            1. 1

                              What you’re describing is the video HTML5 tag, not a video sharing platform. Minimalism is good, I do agree, but don’t mix it with no features at all.

                              Google docs would be a desktop program.

                              This is another debate around why using the web for these kind of tasks, not the fact that it’s minimalist or not.

                        1. 1

                          It’s not from a UNIX hacking perspective, and also the author is a front end web developer, so take it or leave it. It’s a blog post series documenting switching from mac to windows as a full time development machine.

                          https://daverupert.com/tag/davegoeswindows/

                          1. 2

                            Dropbox is blocked where I work (don’t ask me why), is there a mirror somewhere?

                            EDIT: never mind I’ll get it from vuehandbook.com :)

                            1. 15

                              I’m under the impression that opt-out is not allowed under GDPR, only opt-in. The question is, then, which this UI is. I’d argue it’s opt-out.

                              1. 1

                                The trick is that, had I clicked the button “Sounds Good, Thanks!”, I would have opt-in.

                                1. 17

                                  IANAL, but I think this pretty clearly violates the GDPR. From the GDPR’s preamble:

                                  If the data subject’s consent is to be given following a request by electronic means, the request must be clear, concise and not unnecessarily disruptive to the use of the service for which it is provided.

                                  It is not clear, because it uses a dark pattern (using color choices) for the user to read: “We care about privacy -> Sounds Good, Thanks”. Also, I would call unticking 338 companies unnecessarily disruptive. Moreover:

                                  Consent should not be regarded as freely given if the data subject has no genuine or free choice or is unable to refuse or withdraw consent without detriment.

                                  Again, I would call manually unticking 338 pretty detrimental.

                                  1. 5

                                    GDPR Recital 32 is particularly informative. I’ll reproduce paragraphs 1-3 here (reformatted for clarity):

                                    (1) Consent should be given by a clear affirmative act establishing a freely given, specific, informed and unambiguous indication of the data subject’s agreement to the processing of personal data relating to him or her, such as by a written statement, including by electronic means, or an oral statement.

                                    (2) This could include ticking a box when visiting an internet website, choosing technical settings for information society services or another statement or conduct which clearly indicates in this context the data subject’s acceptance of the proposed processing of his or her personal data.

                                    (3) Silence, pre-ticked boxes or inactivity should not therefore constitute consent.

                                    While reading (3) alone you might think that this system would be contrary to law, I think in the broader context it’s probably okay? Your attention is being drawn to the fact that you have to give consent to use of your personal data (the modal). You can either look for more information, or say okay. So I don’t see this as a pre-ticked box within the meaning of paragraph 3.

                                    However, it’s definitely shady (and common) practice. I think it’s borderline, and it would be fair for the regulator to raise concerns. I suspect that the “not unnecessarily disruptive to the use of the service” will actually count in InfoWorld’s favor here. The Correct Solution would be to offer a deselect all.

                                    1. -1

                                      Playing devil’s advocate here, but they don’t actually need to untick 338 checkboxes, they only need to click “deselect all” as the author did.

                                      1. 9

                                        Ehm… the author had to untick 338 checkboxes because there is no “deselect all”.

                                        It took a while, actually, but I hate to be manipulated.

                                        1. 3

                                          Sorry, somehow I misread that. I stand corrected.

                                    2. 4

                                      Yeah. I feel like that’s against the spirit of GDPR, if not the text. I guess the courts will decide. 🙂

                                      1. 2

                                        And if not GDPR violation, Shamar and others can sue them in class action for the damage to their hands from 338 checkboxes. Each violation will pay a fine equal to the sum of their users at risk of arthritis or carpal tunnel. That’s on top of any GDPR fines.

                                  1. 7

                                    > discord

                                    God please, no!

                                    1. 2

                                      Better than slack.

                                      1. 7

                                        Of course!

                                        But why you need to stick to proprietary solutions and make them unreachable on platforms you’re caring about on this community? Wouldn’t be better to just use IRC like civilized people do?

                                        1. 7

                                          Trying to convince people who want Slack or Discord to use IRC will get you nowhere.

                                          IRC is awesome and some of us have been using it since dirt but it ITSELF lacks features some modern users really want - built in search / logging / voice chat / built in image / sound rendering, etc etc etc.

                                          You can say “Bah that’s all crap” - and I’ll agree with you, but that doesn’t stop people from wanting.

                                          Personally, I wish more open source folk would explore sollutions like https://zulipchat.com/

                                          1. 2

                                            Direct link to the code for everybody’s convenience: https://github.com/zulip/zulip

                                            1. 1

                                              I know Zulip but haven’t tried it personally yet…

                                              And, more importantly - does it have an IRC gateway? :)

                                              1. 1

                                                Sort of: https://github.com/zulip/python-zulip-api/issues/106

                                                I still like zulip quite a lot, i think its concept of topics does really improve discussions.

                                          2. 1

                                            They have an IRC channel too, and a bot that communicates between IRC & Discord

                                            1. 1

                                              These bridging bots (between Slack/Discord/Matrix/Telegram/Hipchat and IRC) are quite incomplete solutions, as they can’t do “puppeting” so the bot impersonates all IM users as single IRC user and it’s bad to interact with them in that way.

                                              I hope Matrix could solve this in the future.

                                              1. 1

                                                I’ve been using Matrix for about 18 months, and it does puppeting perfectly when bridging to IRC, from either side.

                                                The Slack bridging with Matrix looks to behave in a similar way; you’re almost unable to distinguish native users and bridged users.

                                      1. 2

                                        Why we even tolerate a closed-source, proprietary text editor in XXI century?

                                        1. 10

                                          Nobody’s holding a sword to your throat and forcing you to use it.

                                          1. 7

                                            You might want that intolerance looked at, it sounds like it’s reducing your quality of life.

                                            1. 3

                                              Could you elaborate? I wouldn’t say most ST users are tolerating anything. They are in fact enjoying the experience with the editor, perhaps more than an open source editor. Unless you are one of the small minority who are forced to use an extremely esoteric development setup you have some degree of choice in how you work, which might even include using a proprietary editor if that’s what you prefer. FWIW I think ST has actually jump-started some of the wider interest and innovation in text editors in recent years.

                                              My personal favourite closed-source editor is EmEditor (https://www.emeditor.com/). If I need to work in a Windows environment, it’s the first software I install, but it’s not the editor that I spend most of my time coding in. I often have to deal with huge CSV and other text files which the developer specializes in handling. They added features for opening CSV files in an Excel-like way which is a huge boon if you need that. It can open Visual Studio solutions and is extremely fast. It lacks all of the useful plug-ins that editors I prefer to code with have, but it really knows it’s niche. Perhaps there are equivalent capabilities with other open source products, but it doesn’t seem a problem that these proprietary products exist and innovate.

                                              1. 3

                                                The dude might need money.

                                                1. 4

                                                  Being paid to program? gasps Only I’m allowed to do that.

                                              1. 3

                                                I know this post is *nix-centric, but FWIW, WPF and XAML are not horrible tools for building UIs.

                                                1. 4

                                                  … I just spent a minute searching the web for a GUI toolkit named “FWIW”… For what it is worth, I now presume that there is not one.

                                                  1. 1

                                                    Haha, sorry for inadvertently sending you on that wild goose chase :|

                                                1. 16

                                                  Reminded me I’ve had Google Analytics code up on my blog since forever for no benefit for me whatsoever. Off it goes!

                                                  1. 2

                                                    Kudos for removing it but I am curious how Google Analytics ends up running on so many sites to begin with?

                                                    1. 11

                                                      It’s free, it’s very easy to setup and understand, and there is a lot of documentation out there on how to integrate it into different popular systems like Wordpress. It’s definitely invasive, but it’s hard to deny that it’s easy to integrate.

                                                      1. 1

                                                        not as easy as doing nothing though… it’s free and easy to crawl around on all fours… that can be invasive too if you crawl under someone’s desk… but this still leaves the question why.

                                                        1. 5

                                                          Because a lot of the time when you’ve just made a site you want to see if anyone’s looking at it, or maybe what kind of browsers are hitting it, or how many bots, or whatever, so you set up analytics. Then time passes, you find out what you wanted to find out, and you stop caring if people are looking at the site, but the tracking code is still there.

                                                          1. 2

                                                            I’d compare it to CCTV cameras in shops. You visit the shop (the website) voluntarily so the owner can and will track you. We can agree that this is a bad thing under certain conditions, but as long as it’s technically trivial it will be done. No use arguing what is, you’d need a face mask or TOR to avoid it.

                                                            That said, I’d also prefer if it wasn’t Google Analytics on most pages but something that keeps the data strictly in the owner’s hands. I can wish for it to be deleted after a while all I want but my expectation is that all the laws in the world won’t change that to a 100% certainty.

                                                        2. 8

                                                          End-user-facing SaaS products are one thing. On a site I run on infrastructure that I run myself I can just look at the httpd logs¹ and doing so is way faster than looking at GA², but if I also bought a dozen other random SaaS products then the companies that run those won’t ship me httpd logs, but they will almost always give me a place to copy-paste in a GA tracking <script>. If I have to track usage on microsites and my main website, it’s nice if the same tracking works for all of them.

                                                          It has some useful features. I believe offhand that, if you wire up code to tell it what counts as a “conversion event”, GA can out the box tell you things like “which pages tended to correlate positively and negatives with people subsequently pushing the shiny green BUY NOW button?”

                                                          There’s a populace of people familiar with it. If you hire a head of marketing³, pretty much every single person in your hiring pool has used GA before, but almost none of them have scraped httpd logs with grep or used Piwik. (Though I would be surprised if they didn’t immediately find Piwik easy and pleasant to use.) So when that person says that they require quantitative analysis of visitor patterns in order to do their job⁴, they’re likely to phrase it as “put Google Analytics on the website, please.”

                                                          (¹ GA writes down a bunch of stuff that Apache won’t, out the box. GA won’t immediately write down everything you care about because you have to tell it what counts as a conversion if you want conversion funnel statistics.)

                                                          (² I have seriously no idea whatsoever how anybody manages to cope with using GA’s query interface on a day to day basis. It’s the most frustratingly laggy UI that I’ve ever used, and I’m including “running a shell and text editor inside ssh to a server on literally the opposite side of the planet” in this comparison. I think people who use GA regularly must have their expectations for software UI adjusted downward immensely.)

                                                          (³ or whatever job title you give to the person whose pay is predicated on making the chart titled “Purchases via our website” go up and to the right.)

                                                          (⁴ and they do! If you think they don’t, take it up with Ogilvy. He wrote a whole book and everything, you should read it.)

                                                          1. 1

                                                            what’s that book?

                                                            1. 3

                                                              The book is “Ogilvy on Advertising”. It’s not long, the prose is not boring and there are some nice pictures in it.

                                                              The main thing it’s about is how an iterative approach to advertising can sell a boatload of product. That is, running several different adverts, measuring how well each advert worked, then trying another set of variations based on what worked the first time. For measurement he writes about doings things like putting different adverts for the same product up, each with a different discount code printed on it, and then counting how many customers show up using the discount code that was in each of those adverts. These days you’ll see websites doing things like using tracking cookies to work out what the conversion rate was from each advert they ran.

                                                              Obviously the specific mechanisms they used for measurement back then are mostly obsolete now, but the underlying principle of evolving ad campaigns by putting out variations, measuring, then doubling down on the things you’ve demonstrated to work is timeless.

                                                              Ogilvy also writes a little bit about specific practical things that he’s found worked when he put them in adverts in the past, such as putting large amounts of copy on the advert rather than small amounts, font choice, attention-grabbing wording, how to write a CTA, black text on white backgrounds or vice-verse, what kinds of photos to run and so on. Many are probably still accurate because human beings don’t change much.

                                                              Many are plausibly wrong now because the practicalities of staring at a glowing screen aren’t identical to those of staring at a piece of paper. If you’re following the advice to in the first bit of the book about actually measuring things, then it won’t matter much to you how much is wrong or right because you’ll rapidly find out for yourself empirically anyway. :)

                                                              Hypothetically, let’s say you’ve done a lot of little-a agile software development: you might feel that the evolutionary approach to advertising is really, really obvious. Well, congratulations, but not all advertising is done that way, and quite a lot of work is sold on the basis of how fashionable and sophisticated it makes the buyer of the advertising job feel. Ogilvy conveys, in much less harsh words, that the correct response to this is to burn those scrubs to the fucking ground by outselling them a hundred to one.

                                                          2. 6

                                                            For me it was probably ego-stroking to find out how much traffic I was getting. I’ve been blogging for more than a decade and not always from hosts where logs were easily accessible.

                                                            1. 4

                                                              What gets me is why people care about how many hits their blog gets anyway. If I write a blog, the main target is actually myself (and maybe, MAYBE, one or two other people I’ll email individually too), and I put it on the internet just because it is really easy to. Same thing with my open source libraries: I offer them for download with the hopes that they may be useful… but it really means nothing to me if you use it or not, since the reason I wrote it in the first place is for myself (or again, somebody who emailed me or pinged me on irc and I had some time to kill by helping them out).

                                                              As such, I have no interest in analytics. It… really doesn’t matter if one or ten thousand people view the page, since it works for me and the individuals I converse with on email, and that’s my only goal.

                                                              So I think that yes, Google Analytics is easy and that’s why they got the marketshare, but before that, people had to believe analytics mattered and I’m not sure how exactly that happened. Maybe it is every random blogger buying into the “data-driven” hype thinking they’re going to be the next John Rockefeller in the marketplace of ideas… instead of the reality where most blogs are lucky to have two readers. (BTW I think these thoughts also apply to the otherwise baffling popularity of Medium.com.)

                                                              1. 1

                                                                Also, it’s invasive, sure but it’s also fairly high value even at the free level.

                                                                You get a LOT of data about your users from inserting that tracking info into your site.

                                                                Which leads me into my next question - what does all this pro-privacy stuff do to such a blog’s SEO?

                                                                (I know, I know, we’re not supposed to care about SEO - we’re Maverick developers expressing our cultural otherness and doing Maverick-y things…)

                                                                1. 2

                                                                  Oh, it totally tanks SEO.

                                                                  Alternately, the SEO consultants that get hired by biz request to have GA added anyways and they force you to bring it in. :(

                                                                  1. 1

                                                                    Google will derank pages what don’t have Google Analytics?

                                                            1. 9

                                                              For a teenager and an aspiring computer programmer, the 00s were a great time to learn.

                                                              You can replace ‘00s’ with ‘80s’ or ‘90s’ and this would still be true (I’ve heard this sentiment many times). Perhaps not the 70s or earlier, since home computers were not really a thing then.

                                                              I think the key point in this discussion/rant is that computers are mostly an appliance and a consumption device. Tools for creating things with them have gotten harder to work with over time. Part of that has to do with the complexity of the systems, but part of it is also the paucity of profits that come from providing such tools. The solution, such as it is, seems to be adding more options to our C compilers.

                                                              Also: it turns out Mastodon is just as bad for long threads as Twitter.

                                                              1. 2

                                                                I don’t think inherent complexity has much to do with why systems have gotten less flexible over time. I think we’re mostly looking at the result of changing norms.

                                                                Personal computers in the early 80s were marketed along the lines of “master for loops with this machine and you can take control over your life”. This wasn’t necessarily totally accurate (a lot of those machines had 8 bit integer arithmetic, so using them even for personal finances could be tricky), but it at least made clear that the point of the machine was that you’d set aside a half an hour with the manual and gain control over the machine in turn.

                                                                There was a concerted effort, spearheaded by Jobs, to turn general-purpose computers into single-function computing appliances, hide programming from non-technical users, and force the hobby community to turn itself into a much more professionalized “microcomputer software industry”.

                                                                I don’t think any of those things were really necessary – we used to have a distinction between workstations (big expensive machines used by professionals for important work and paid for by the company) and micros (small, buggy machines without memory managers, where commercial software was thin on the ground and you were really expected to write everything yourself even if you weren’t a programmer), and that division was really empowering for both sides (even as, by clocking in or out, you could cross the boundary between small computing and big computing).

                                                                1. 6

                                                                  I think you are misrepresenting the state of advertising and computers in the 80s.

                                                                  Look at this ad for a TRS-80.

                                                                  It’s not selling programming, it’s not selling for loops–it’s selling the software that solves the types of problems the user has, writing stuff and balancing the checkbook.

                                                                  The distinction between workstations and micros is similarly incorrect. Workstations–say, HP or Sun or SGI boxes–were outnumbered by cheap PC-clones or IBM-ATs or Apple boxes or whatever, running boring business applications.

                                                                  There’s this desire to say “Ah, but in the golden age of computing, where every user was a programmer-philosopher-king!”, but that just isn’t borne out by history.

                                                                  1. 6

                                                                    There’s this desire to say “Ah, but in the golden age of computing, where every user was a programmer-philosopher-king!”, but that just isn’t borne out by history.

                                                                    Absolutely. Don’t get me wrong: just because I argue that dev tools were easier to work with in the 80s doesn’t mean they were good. It’s a subtle difference that some fail to take into account.

                                                                    1. 1

                                                                      Thank you for clarifying that, I understand your point more clearly now. :)

                                                                    2. 1

                                                                      I’m slightly exaggerating for the sake of emphasis. There was never a golden age of programmer-centric home computers, but there was a silver age of home computers that expected that most non-programmers would do a little programming, and catered to the middle-ground between novice and developer in a way that didn’t require a mission statement and career goals. (If you had a computer in your home, you probably wrote a little bit of code, and nobody was forcing you to write more.)

                                                                      There were business-specific ad campaigns that focused on existing shrink-wrapped software, and were essentially ads for the software in question. But, those same manufacturers would have programming related campaigns. And, if you weren’t in the market for spreadsheets, you’d quickly find that if you wanted your computer to be anything more than an expensive paperweight, you’d need to either play a lot of games or learn simple programming concepts.

                                                                      Sure, workplaces could use micros to run dedicated business apps. But, if someone bought that same machine for their own home, programming would be presented to them, by the machine and the machine’s documentation, as the primary way of interacting with the machine unless they bought third party shrink-wrapped software.

                                                                      We’ve moved to a programmer/user division as part and parcel of a privileging of workplace deployment needs over exploration (as the thread mentioned) – a situation where users aren’t expected to be in full control over their machines anyway because they have sold their time to Moloch and must use their machine in only Moloch-approved ways. It’s fine that such systems exist (we all sacrifice our 40 hours a week into Moloch’s gaping maw), but it’s pretty stupid to have even the machines in our bedrooms set up like they expect our house to have a professional sysadmin and an internal dev team (to write new applications or edit the code of licensed stuff to meet our needs).

                                                                      The ability, as a non-programmer, to write hairy messy code in the comfort of your own home, and the understanding that it’s expected of you to write code for yourself and nobody else, is really important. The alternative is that everybody who masters for loops thinks that they’re ready to work for IBM, and they end up using plaintext databases for password storage at a fortune 500 company because they don’t understand the difference between big computing and small computing.

                                                                      1. 5

                                                                        The ability, as a non-programmer, to write hairy messy code in the comfort of your own home, and the understanding that it’s expected of you to write code for yourself and nobody else, is really important.

                                                                        Why? Why does this matter to non-programmers?

                                                                        I have an app that streams movies and porn. I have an app that lets me tweet at other people who feel that tweeting is important. I have a web browser and an app to file taxes. I have an app to go look at my bank transactions and remit rent. I have an app to collect e-books I never get around to reading.

                                                                        What problems do I have that require programming or number crunching that are not solved, better and more easily, by just using something somebody else wrote and leases back to me for the convenience?

                                                                        And if I need to do something really weird, why not just hire a coder to solve it for me?

                                                                        ~

                                                                        I’m not even being facetious here. The argument for everybody knowing how to program is, increasingly, like the argument for everybody knowing how to cook, how to debate properly, how to shoot, or any other thing we used to be able functioning adults to be able to do.

                                                                        It doesn’t matter anymore. It’s not required. Federation of skills and services is inefficient.

                                                                        It’s obsolete.

                                                                        1. 5

                                                                          First off, spreadsheets are the most popular programming environment ever created. Yes, spreadsheets. It’s a form of programming, only it’s not called programming, so people do it. [1]

                                                                          Second, people not exposed to “programming” are often unaware of what can be done. A graphic designer is given 100 photos to resize. Most I fear, would, one at a time, select “File”, then “Open”, then select the file, then “Okay”, then select “Image”, then “Resize”, then type in a factor, hit “Okay”, then “Save” and then “Okay”. One Hundred Times.

                                                                          I think there’s an option in Photoshop to do that as a batch operation but 1) that means Photoshop has to provide said functionality and 2) the user has to know about said option.

                                                                          As a “programmer”, I know there exist command lines tool to that and it’s (to me) a simple matter to do

                                                                          for image in src/* do; convert -resize 50% $image dest/`basename $image`; done
                                                                          

                                                                          (I think I got the syntax right) and then I can go get a lovely beverage while the computer chugs away doing what the computer does best—repetitive taks. It’s a powerful concept that many non-programmers even realize.

                                                                          [1] It’s scary how much of our economy depends upon huge spreadsheets passed around, but that’s a separate issue.

                                                                          1. 2

                                                                            Oh, I’m quite aware of spreadsheets–but that’s not programming by the some people’s definition, because they don’t come with a bunch of manuals that non-programmers can cavort through.

                                                                            As for your second point, I see what you’re getting at–but the majority of people will keep doing things the dumb, slow way because they don’t think that learning a new way (programming or not) is easy enough or because there is simply no incentive to be more efficient.

                                                                          2. 2

                                                                            The argument for everybody knowing how to program is, increasingly, like the argument for everybody knowing how to cook

                                                                            Yes, it is. If you know how to cook, then you aren’t at the mercy of McDonalds.

                                                                            I’m not really arguing for everybody “knowing how to code” in the sense that some people use that phrase.

                                                                            Every UI is a programming language. We’re stuck with shitty UIs because we think our users are unable to cross some imagined chasm of complexity between single-use and general-purpose, but that chasm is mostly an artifact of tooling we have invented in order to reproduce the power structure we benefit from.

                                                                            There’s no technical reason that you need to learn how to program in order to program – only social reasons. And, I don’t consider that acceptable.

                                                                            It’s fine if people decide to remain ignorant of programming (even when it’s literally easier to learn enough to automate some problem than to solve it with shrink-wrapped software). It’s not fine that the road to proficiency is being hidden.

                                                                            Ultimately, if a non-programmer requests a programmer to write some code, it’s typically done for money. It’s done for money because there’s a gap between the professional class of programmers (who write professional code with professional tools for money) and the non-programmer (who must embark upon a quest to become a programmer, typically with shades of career-orientation, before writing a line of code). But, the ability for a non-programmer to say “I’m not willing to pay you to spend five minutes writing this code; I’m going to spend twenty minutes and do it myself” is missing, because it’s not possible with current tooling to go from zero to novel-yet-useful code in 20 minutes. So, programmers (as a class) get to overvalue their services by using tools that require more initial study to use.

                                                                            Everybody knows how to cook (delta some tiny epsilon – very rich people who can eat out every night, small children, the institutionalized). Most cooks are not chefs (or even line cooks) – their success in cooking hinges on whether or not they are willing to eat the food they make, and so they don’t need to live up to the standards of paying customers. This provides a steady stream of people who already know how to cook enough to know that they like it, who can graduate on to professional cooking jobs, but it also provides a built-in competition for those professionals. And, it’s something that is only so widespread because there is an expectation that everyone can learn, an understanding that everyone benefits from doing so, and a wide variety of tools and learning materials covering the entire landscape from absolute novice to world-famous expert. Nobody mistakes being able to boil an egg for being able to stuff a deboned whole chicken.

                                                                            When there is no place for absolute amateurs, everybody with a minimum competence gets shunted into the professional category. This is a problem when there’s no licensing system. It’s a huge problem with the tech industry. We need to stop it. The easiest way to stop it is to make it easy for non-programmers to compete on relatively even ground with professionals – which isn’t as hard as it looks, because users have many needs that are too rare to be met by a capitalist system.

                                                                            (To give a cooking example: I like to put cinnamon and nutmeg in my omlettes. No professional cook would ever do that. So, if I want that wonderful flavor combination, I need to do it myself. Every user has stuff like that, where they would like their software to work in a particular way that no professional programmer will ever implement.)

                                                                            1. 2

                                                                              ooh ooh pick me pick me

                                                                              Most of the stuff we use is created by companies, which are trying to make it maximally useful for given effort, so they up covering, like, 90% of use cases. That could mean every person can get 90% of their stuff done with it, but it could also mean that it’s perfect for five people and only 80% useful for the other five. Programming can help (not fix, but help) patch up that 20%.

                                                                              In practice, though, most programming languages aren’t suited for duct-taping consumer apps. When I say “everybody would benefit from learning to program”, I’m thinking things like spreadsheets, or autohotkey, or maybe even javascriptlets.

                                                                              1. 1

                                                                                Yeah. There’s a tooling issue, in that most programming languages these days are made for programmers, and the ones that aren’t don’t play nice with the ones that are. This is a huge gap, and one that benefits capital exclusively.

                                                                      2. 0

                                                                        Tools for creating things with them have gotten harder to work with over time.

                                                                        Really? Every modern browser has a built-in development environment!

                                                                        1. 4

                                                                          Even on mobile browsers? I think not.

                                                                          1. 1

                                                                            This is a very good point. I was looking at this issue in the light of my own experience, which has been with personal computers of various vintages. But most new users come in to contact with computers through phones and tablets now!

                                                                            (I have copied program listings from magazines into my ZX Spectrum, to date myself).

                                                                            If we confine ourselves to MacOS/Windows, even these have good scripting environments that can be capable programming environments - PowerShell beats bash in this regard, I think.

                                                                            As an aside, in last year’s Advent of Code, a post was made on the subreddit complaining that an assignment built on a previously solved assigment (i.e. the code was to be reused). It turns out that this person solved the assignments on their mobile device and discarded the code after submitting a correct answer.

                                                                          2. 4

                                                                            Every modern browser has a scripting language sandbox with a giant, awkward, broken, poorly-documented API, which you need internet access and a guide to even start on. No editor either. And then, to share your work, you need to buy an account on somebody else’s web server and learn to use SFTP. Most users don’t even know that writing javascript is something a regular person can do.

                                                                            In comparison, early home computers (including the IBM PC) ran BASIC by default at boot-up. You would need to go out of your way to override this by putting in a cartridge or floppy before you started the machine, and in many cases the machine didn’t come with any software other than BASIC. And, your machine would ship with a beginner’s guide intended to teach BASIC to people who could barely read, an “advanced BASIC” guide for people who couldn’t code but had read the beginner’s guide already, full API documentation, schematics for the machine, the source code for the BASIC interpreter (sometimes), and BASIC code for a handful of demo programs. An effort was made to ensure that every machine showed a clear, easy to follow path from end user to mastery over one programming language (and, typically, you got an only-slightly-muddier path in the documentation itself for progressing to a basic grasp of assembly language or machine code).

                                                                            For most people who have a web browser, programming is still “something somebody else does”. For anybody with an Apple II, Vic-20, C-64, TRS-80, Sinclair, BBC Micro, PC-8300, or really any home computer manufactured between 1977 and 1983 save the Lisa, programming is “something I could do if I spent a couple hours with these manuals”.

                                                                            1. 4

                                                                              This is incorrect. Firefox give you an editor in the form of the scratchpad. MDN documents almost all of the web APIs currently supported by browsers, and if that doesn’t float your boat the W3C spec + caniuse works as well. There are issues with the web, yes. Ease-of-entry is not one of them.

                                                                              Also while new and experimental features are buggy, by and large browsers are not buggy or awkward from a web developer or consumer’s POV.

                                                                              1. 3

                                                                                MDN documents almost all of the web APIs currently supported by browsers, […]

                                                                                That’s exactly what enkiv2 is saying:

                                                                                […] which you need internet access and a guide to even start on.

                                                                                There are issues with the web, yes. Ease-of-entry is not one of them.

                                                                                I disagree: you need to know what you’re doing in order to start making things. Most people don’t know how to open the devtools. (EDIT: and then, there’s the “ecosystem”, a huge pile of overengineered abstraction layers causing nothing but bloat.)

                                                                                by and large browsers are not buggy or awkward from a web developer or consumer’s POV.

                                                                                Iceweasel (from the Parabola repositories) has a bunch of bugs (search doesn’t work in the address bar, …), and is awfully bloated (takes a while to launch, uses half a GiB of RAM for 2 tabs, …), in my opinion.

                                                                                1. 2

                                                                                  Iceweasel (from the Parabola repositories) has a bunch of bugs (search doesn’t work in the address bar, …), and is awfully bloated (takes a while to launch, uses half a GiB of RAM for 2 tabs, …), in my opinion.

                                                                                  I should clarify. If you run a “normal” browser on a “normal” OS you won’t run into many issues. Also compared to the vintage computers the OP is referring to (especially the Apple II which had it’s startup sound specifically engineered to sound more pleasant since it crashed so often), the web is solid as a rock.

                                                                                  1. 1

                                                                                    Facebook & twitter are slow as molasses & glitchy on stock chrome on a stock windows 10 install on a brand new machine.

                                                                                    1. 1

                                                                                      I would argue that’s the developer’s fault. On vintage machines (and calculators), it’s just as easy or easier to produce a badly optimized solution that runs horribly. The current trend in web development is to force the client to do all the work which causes issues on less powerful machines.

                                                                                      Also that’s anecdotal evidence. My experience with the facebook and twitter web experience using chrome, windows 10 on a Thinkpad T540p has been pretty good. Unless you have solid evidence that the web in general is slow and glitchy that statement has no backing.

                                                                                      1. 1

                                                                                        Man, if you’re going to consider a systemic problem (like “almost every major web app is slow and glitchy, and most of the minor ones too”) as though it’s a cluster of unrelated particulars and ask for proof of every one, I don’t know what to tell you. Using the web at all is pretty good evidence that the web is slow and glitchy, and the experience of writing web apps explains why they would be expected to be slow and glitchy in a pretty convincing way.

                                                                                        I mean, maybe you just have really low standards? But, I don’t think it’s OK to cater to low standards in a systematic way, even if you can get away with it.

                                                                                        1. 1

                                                                                          Do you consider lobsters slow and glitchy? What about most blogs? Stack overflow? I can name tons of sites that get it right. The ones that don’t in my experience are few and far between. Facebook is the only popular site I can think of at the moment, but I really don’t think that counts since their native mobile app sucks just as much or more. Which would imply it’s facebook’s fault, not the web’s.

                                                                                          News sites are generally bad but that’s an issue with ads, not the web itself. There are cultural problems in web development but from a purely technical pov I don’t think the web is a bad platform.

                                                                                          1. 0

                                                                                            Do you consider lobsters slow and glitchy?

                                                                                            It took in excess of 20 seconds to load this comment, on a broadband connection. What do you think?

                                                                                            What about most blogs?

                                                                                            The only blogs that have what I would consider acceptable overhead are non-CMS-based minimally-formatted static HTML sites like prog21. The average blogger or medium blog takes tens of seconds to load. Depending on the platform, sometimes a blog page becomes a problem in the middle of reading an article, causing the tab to crash. (This isn’t necessarily an ad thing – it’ll happen on medium, which has no ads and no third-party or user-supplied scripts.)

                                                                                            Stack overflow?

                                                                                            Stack overflow has, on occasion, taken more than 10 minutes to load a single page on my machines.

                                                                                            So, from my perspective, most web sites do not have acceptable performance. Even fast sites are slower than they could be, given absolutely minimal effort. (And, this is not even considering the embarassing level of bloat introduced by web standards – just using HTML and HTTP expands the number of bytes that need to be transferred across the network to render a static page by a factor of eight or more over markdown+gopher.) In other words, even if performance was acceptable from a user perspective (and I’m a professional developer with a newish machine that’s been tuned to improve performance – anything that’s slow for me is a hundred times slower for the proverbial grandmother), there’s a lot of low-hanging-fruit in terms of improvement.

                                                                                2. 1

                                                                                  Firefox give you an editor in the form of the scratchpad.

                                                                                  Hidden deep enough in menus that, unless you knew it existed and were looking for it, you would never find it.

                                                                                  MDN documents almost all of the web APIs currently supported by browsers, and if that doesn’t float your boat the W3C spec + caniuse works as well.

                                                                                  Doesn’t ship with every offline browser. Isn’t linked to from the default home page.

                                                                                  Ease-of-entry is not one of them.

                                                                                  I think I’ve made my case that the web doesn’t do a fraction as much work to ensure that every end user finds it easy to get on the road to being a programmer as every mom-and-pop computer shop did in 1981.

                                                                                  by and large browsers are not buggy or awkward from a web developer or consumer’s POV

                                                                                  I disagree completely. Web developers are constantly complaining about things being awkward, inconsistent, or buggy – and front-end and back-end developers who switch to working with web standards for a project or two have every reason to sympathize.

                                                                                  Just because web development has become marginally easier since 2006 doesn’t mean it was ever acceptable, in terms of effort/reward ratio.

                                                                                  1. 6

                                                                                    I think I’ve made my case that the web doesn’t do a fraction as much work to ensure that every end user finds it easy to get on the road to being a programmer as every mom-and-pop computer shop did in 1981.

                                                                                    This is flagrantly false, between Stack Overflow, MDN, MSDN, W3Schools, and others.

                                                                                    There is so much more information out there, better presented and better organized and better indexed and at lower cost, than there ever was in 1981.

                                                                                    1. 1

                                                                                      If you need to be told that it exists, then it isn’t accessible to people who identify as non-programmers.

                                                                                      I’m not talking about the ease with which someone who has already determined that they would like to become a professional programmer can find documentation. That, obviously, has improved.

                                                                                      I’m talking about the ease with which a completely novice user can wander into programming without any particular desire to learn to program, and learn to program despite themselves.

                                                                                      (Some people in very particular fields still do learn to program despite themselves. Those people are mostly research scientists. I don’t consider that an improvement.)

                                                                                      1. 6

                                                                                        I’m talking about the ease with which a completely novice user can wander into programming without any particular desire to learn to program, and learn to program despite themselves.

                                                                                        They only have to Google “How do I build a website”, “How do I write a website”, like this.

                                                                                        Just because they aren’t rifling through thick manuals they bought with their micro doesn’t mean that non-programmers don’t have equivalent (or better!) resources.

                                                                                        1. 3

                                                                                          Just because they aren’t rifling through thick manuals they bought with their micro doesn’t mean that non-programmers don’t have equivalent (or better!) resources.

                                                                                          Exactly. I get nostalgic about my Casio fx9750’s programming manual, but you won’t find me claiming it was a better resource than anything you could have found online. There really isn’t a good beginner alternative for solid documentation and question and answer sites.

                                                                                          1. 1

                                                                                            If you find it online, it’s not a piece of documentation you have – it’s a piece of documentation you seek, that happens to be free and delivered quickly. You need to know that it exists, and you need to know how to find it, and both of those things are barriers.

                                                                                            For somebody to google “how to I write a website” they need to believe that a website is the appropriate way to solve whatever half-understood problem they have. Their problem may be something more like “how do I sort paid invoices by attachment type in paypal” – in other words, a useful feature missing from a popular service, which is best implemented by a shell script. Searching for this will not teach them how to solve the problem, because they didn’t put anything about programming in the query, because they don’t know that the best way to solve this is by writing some code. They will instead get zero relevant results, and instead of thinking “I should write code to do this”, they will think “I guess it can’t be done”.

                                                                                            1. 3

                                                                                              “how do I sort paid invoices by attachment type in paypal” – in other words, a useful feature missing from a popular service, which is best implemented by a shell script.

                                                                                              What?!

                                                                                              1. 1

                                                                                                Paypal will let you export a CSV of invoice summaries containing information about attachment names. So, the sensible way is to export that CSV and use shell tools to sort by attachment extension – in other words, write a couple lines of code to handle a corner case that the original developers of the site couldn’t forsee.

                                                                                                (This particular example is taken from my life. I’ve commissioned a bunch of artworks, and I want to separate those records from other unrelated invoices, so that I know which works have been finished and paid for even though it’s taken the better part of a year for them to be made & they’re not in any particular order.)

                                                                                                1. 1

                                                                                                  Why not write a couple lines of js in a greasemonkey userscript so you don’t have to go to the trouble of exporting as CSV, opening a terminal, and running a shell script?

                                                                                                  1. 2

                                                                                                    Because attachments are never listed in the summary page (which also has a very small maximum pagination). Web services are intended for display, and not made accessible for further user-driven hacking – particularly financial systems like paypal – so doing this kind of work in a browser is made even more awkward than it otherwise might be.

                                                                                                    Even had we a reasonable page size (say, ten thousand, instead of twenty) and the necessary information, javascript is going to be a much more awkward solution – we need to navigate arbitrarily-labeled tag soup in order to handle what is essentially tabular data. Using shell tools (which are optimized for tabular data) is easier.

                                                                                                    Even so, this whole discussion is about what we, as hackers, would do. What hackers would do is basically irrelevant. The problem is that what a non-hacker will do to solve such a one-off problem is see if someone has already solved the problem, find that nobody has, and give up – when the ideal solution is for the non-hacker to be able to hack enough to solve the problem on their own.

                                                                                                    1. 1

                                                                                                      Fair enough.

                                                                          1. 1

                                                                            I’m glad you asked. Just a few hours ago, my Moto G5 suddenly turned off and booted back up again. No problems with the device like this until today.

                                                                            The crashes continued (after about a minute of uptime) until I enabled the “Google App” app. I disabled it months ago to avoid seeing or interacting with the unremovable search bar widget.

                                                                            I’m very interested in hearing what happened. I have all auto-update functions disabled. Well, at least I thought I did!

                                                                            1. 1

                                                                              so now you have to deal with the search bar widget?

                                                                              1. 1

                                                                                I apparently do, unless I install a completely different launcher.

                                                                                1. 2

                                                                                  Arrow launcher is amazing, I don’t know if you’ve tried it. :)

                                                                                  1. 2

                                                                                    I have not. Thank you for the suggestion!

                                                                            1. 20

                                                                              The author doesn’t mention the popular GUI library that’s the best fit for his use case – TK. (I can’t blame him – TK has poor PR, since it’s marginally less consistent than larger and more unweildy toolkits like GTK and QT, while having many of the drawbacks of a plain X implementation.)

                                                                              That said, the fact that TK is the easiest way to go from zero to a simple GUI is frankly pretty embarassing. There’s no technical reason GUI toolkits can’t be structured better – only social reasons (like “nobody who knows how to do it cares enough”).

                                                                              1. 13

                                                                                The problem is that TK still has terrible looking widgets. Just because UI fashion has moved away from consistent native look and feel doesn’t mean TK is passable.

                                                                                1. 12

                                                                                  TTK mostly takes care of this, by creating a Look and Feel that matches up with the platform in question.

                                                                                  1. 3

                                                                                    TK ships with TTK, which provides native widget styles for every major platform. It has shipped that way for nine years.

                                                                                    1. 1

                                                                                      I was not aware of TTK, thank you! I tried out TK a few times and seeing how awful it looked made me leave it really quickly for other technologies.

                                                                                      1. 4

                                                                                        TTK has been around for a long time, and built into TK for a long time too. It’s a mystery to me why they don’t enable it by default. I discovered it six years after it got bundled!

                                                                                        1. 1

                                                                                          I tried to look into it a little bit today but it looks like there is pretty much only one getting started guide for it, written in python. Do you know any guides for it in other languages?

                                                                                          1. 2

                                                                                            Not really. It provides native-styled clones of existing widgets, so if it’s wrapped by your target language, all you should need to do is import it and either overwrite the definitions of your base widget-set or reference the ttk version instead (ex., by running ‘s/tk./ttk./g’ on your codebase).

                                                                                  2. 5

                                                                                    When he put out the JSON protocol, Tcl/Tk came right to mind. This is exactly how people do UI with Python and tkinter.

                                                                                    1. 3

                                                                                      Interesting — I have almost no experience with TK. I will look into it, thanks!

                                                                                      1. 3

                                                                                        TK is used by Mozart/Oz for the GUI, with a higher level library QTk on top of it. It works well and is easy to program with.

                                                                                    1. 18

                                                                                      In which @itamarst reads a pop-sci book and dishes out advice based on it with little evidence to support it.

                                                                                      But a few more serious thoughts:

                                                                                      1. The opening creates a pleasant fairy tale but one should be distrustful of it. Your manager probably isn’t doing so great if your project is in that situation. But maybe you aren’t so hot either. It’s hard to know the difference. Just saying any arbitrary situation, the problem is the manager stinks and the programmer isn’t working smart is ridiculous.
                                                                                      2. Some projects just require a lot of work no matter how smart you want to work. There are plenty of causes for a situation where the problem simply requires a lot of hours. Maybe hiring failed, maybe the scope is large. But you can’t just “work smarter” out of any situation and just because something requires a lot of time doesn’t mean you’re fixed mindset.

                                                                                      I believe this is another blog post taking a complicated situation, lossily simplifying it, and dishing out B-grade advice based on the simplification.

                                                                                      1. 7

                                                                                        You’re right on all counts, but I still think developers need to put their collective foot down and refuse to work unpaid overtime. Tired programmers are as prone to mistakes as tired workers in any other trade or industry; the main difference is that a tired factory worker might get himself or others hurt or killed, whereas a tired developer might commit a “clever hack” that ends up leaking PII for millions of unsuspecting users after a year or two in production.

                                                                                        1. 6

                                                                                          Clarification: Are you against overtime or unpaid overtime? Because even if I’m getting paid for overtime, I can still commit the mistake you stated.

                                                                                          1. 6

                                                                                            If companies have to pay for over time, they will be (in theory anyways) less likely to make their workers work over time, and will instead have some actual planning and project management in place so working 12 hours straight is not needed.

                                                                                            1. 4

                                                                                              I’m against unpaid overtime. Making all waged and salaried work by non C-suite workers eligible for overtime pay might deter some managers from allowing/persuading/gaslighting/bullying/coercing/etc workers to do OT, though the current time-and-a-half rate might not be sufficient to serve as a deterrent. Triple pay for OT might be better.

                                                                                              If not, and my boss is ignorant enough to take that kind of risk and incur that sort of cost, then I’m not going to say no to more money.

                                                                                              1. 6

                                                                                                I’m against overtime, it causes problems that need to be cleaned up. It’s as dumb as throwing bodies at the problem.

                                                                                            2. 3

                                                                                              No matter how much work something requires, it doesn’t need to force people to work long hours; they can just do it slower.

                                                                                              1. 3

                                                                                                If you work in a production based environment with deadlines, the amount of work you have is directly correlated with how many orders the sales team racks up, and you can very easily end up having to work long hours from necessity to meet the demand and deadlines. Many industries also have off seasons and busier times, especially those that deal with schools or taxes.

                                                                                                1. 3

                                                                                                  Can you explain why software development timelines need to follow academic or fiscal schedules?

                                                                                                  1. 3

                                                                                                    Software development in a business setting is all about keeping other people’s promises.

                                                                                                    1. 1

                                                                                                      Yeah, I get that. If sales people are promising new functionality by a certain date then there’ll be pressure to build it by then. And I can now see why the school calendar could matter. What I’m not getting is why tax season makes a difference.

                                                                                                      1. 3

                                                                                                        Some software changes are necessitated by tax law changes or other external deadlines. I’m working on one right now.

                                                                                                        1. 2

                                                                                                          Because tax laws change over time, so if you’re writing software that is dealing with something that got changed by your government with a given deadline, you’re going to have to deal with it by said deadline, or face whatever consequences come from not being in compliance with said law.

                                                                                                          A big one in the past few years was all the changes related to the Affordable Care Act in the US. It isn’t that every year brings a change like this (to my current knowledge), but they are a thing with real external deadline pressure.

                                                                                              1. 5

                                                                                                Perversely, this kinda feels like home. Brings back good memories. :)

                                                                                                pours one out

                                                                                                1. 7

                                                                                                  Please no double posting. Also don’t bump old threads.

                                                                                                  1. 2

                                                                                                    Ah, the old necropost.

                                                                                                  2. 4

                                                                                                    I was really excited to see the “users in chat” link and then disappointed when it turned out not to be an integrated chatbox. :( I miss chatboxes.

                                                                                                    Also, I like how we can now embed images. Being able to drop a graph into a post would have be useful in a discussion or two I’ve had on here.

                                                                                                    1. 6

                                                                                                      I thought about it, but the functionality would’ve taken more time than I had. Embedding images is temporary as linking to outside resources leaks your IP to them, as @friendlysock’s sig notes.

                                                                                                      1. 1

                                                                                                        Could embedded images be a user setting where if you turn off image embeds you get a link to the image instead?

                                                                                                  1. 6

                                                                                                    I honestly like this better than the actual site. Maybe it’s just nostalgia, but it feels more personal with the gifs and signatures.

                                                                                                    Also, where’s the old-school like button on comments? I remember phpBB and vBulletin forums having that. At least our MMO guild had that feature in our forums.

                                                                                                    1. 4

                                                                                                      Also, where’s the old-school like button on comments? I remember phpBB and vBulletin forums having that. At least our MMO guild had that feature in our forums.

                                                                                                      On the top row there are very faint arrows, maybe the admins could exchange them for something more prominent.

                                                                                                      1. 3

                                                                                                        I… like this better too. Nostalgia is strange and confusing. Back in the day I always thought forums like this were clunky and poorly designed, so I really disliked using them. But I wouldn’t be opposed to this being a permanent change.

                                                                                                        1. 2

                                                                                                          I really love this skin as well

                                                                                                        1. 1

                                                                                                          Subthread (hit the quote button on this comment rather than the comment form at the bottom of the page) for showing off your sweet signatures. Set your sig in your settings.

                                                                                                          1. 2

                                                                                                            I <3 these signatures thanks for migrating us moderator team!

                                                                                                          1. 5

                                                                                                            don’t know why this is here. Brick was an experiment during Firefox OS era, that is like four years ago. It haven’t been worked on or changed as far as I know.

                                                                                                            It was a cool idea and project but it is not something that is news…

                                                                                                            1. 2

                                                                                                              Oh, you are right! The linked article is new, and I thought it looked interesting, but digging deeper, as you say, it hasn’t been updated in nearly 4 years. Yeesh.

                                                                                                              1. 1

                                                                                                                Looks like you’re right, last commit was in 2014. Weird that they didn’t update the landing page to state that it’s no longer in development.

                                                                                                              1. 2

                                                                                                                I didn’t realize js had built-in internationalization, thanks for writing this! :)

                                                                                                                1. 8

                                                                                                                  I like that his site has 3rd party resources loading.

                                                                                                                  1. 5

                                                                                                                    If you’re including script from another origin, you must absolutely trust them, and their security.

                                                                                                                    Perhaps the author trusts the 3rd parties?

                                                                                                                    1. 3

                                                                                                                      I think people loading the site should be the ones deciding who to trust.

                                                                                                                      1. 5

                                                                                                                        That’s fine, but unrelated. @peter is saying that it’s not ironic that the author is using third party assets, since the author is not saying “don’t use third party assets” but rather “be careful when using third party assets”.

                                                                                                                        Regarding your statement though, why should the user be the one deciding who to trust? How would that even work? Would you get a dialog every time you navigate to a web page showing the third party scripts the site uses and letting you opt out of them? Are you going to expect every web user to audit each line of code? How would this work for images?

                                                                                                                        Maybe we should just have browsers show you the source code and then you can decide if you want to render it or not?

                                                                                                                        I think browsers and web servers currently do a pretty good job of managing this without putting the user through undue frustration.

                                                                                                                        1. 6

                                                                                                                          why should the user be the one deciding who to trust? How would that even work?

                                                                                                                          The code is running on their CPU. The decision should always be up to them (and it is, but most users don’t know that going to site A will also include things from external-site B, C, D and E - all of which can now track your activities / location and likely other things that will make ad companies mouths water.).

                                                                                                                          Would you get a dialog every time you navigate to a web page showing the third party scripts the site uses and letting you opt out of them?

                                                                                                                          This is essentially what I do with uMatrix. Workflow is basically:

                                                                                                                          • 1st party css / js / cookies are allowed.
                                                                                                                          • 3rd party css / js / cookies are blocked.
                                                                                                                          • If site functionality is broken:
                                                                                                                            • Enable individual resources until functionality is achieved.
                                                                                                                            • Use that site less / find alternatives.

                                                                                                                          Obviously I don’t expect everyone to do this.

                                                                                                                          1. 2

                                                                                                                            Why do you trust first party assets? How do you know they’re first party? The developers may be hosting third party assets themselves.

                                                                                                                            1. 4

                                                                                                                              How do you know they’re first party?

                                                                                                                              They come from the domain (or subdomain) I am connecting to. And yes, likely they are 3rd party assets.

                                                                                                                              People keep thinking it’s existence of 3rd party assets I am worried about.. It’s not the fact that they are 3rd party that worries me. It’s the meta information sent to 3rd parties hosting the resources and that the added infrastructure / complexity opens the door for malicious 3rd party resources.

                                                                                                                              Why do you trust first party assets?

                                                                                                                              If all the resources come from the domain I am connecting to, that is 1 system that could be compromised. If the resources come from 100 different locations, that’s 100 systems that can be compromised.

                                                                                                                        2. 3

                                                                                                                          What do you mean? From a user’s perspective what’s the difference between trusting what third party Jake Archibald hosts on jakearchibald.com and what third party content he trusts enough to load off a different origin?

                                                                                                                          1. 3

                                                                                                                            The difference is the number of parties with access to data that relates to the end users. I don’t think that CDN’s offer their services for free because they are altruistic!

                                                                                                                            1. 3

                                                                                                                              First of all, CDNs don’t offer their services for free. Some of them offer introductory plans to lower the barrier to customer acquisition. This is like Blue Apron offering your first meal for free to get you to try them out without risk. They’re betting that the product they offer is compelling.

                                                                                                                              The number of parties with access to data has very little to do with where the user’s initial HTTP connection terminates. If I run a server there’s little difference for me linking to a third party resource vs proxying a request to it.

                                                                                                                              1. 2

                                                                                                                                First of all, CDNs don’t offer their services for free.

                                                                                                                                Thanks for the correction. Google’s is entirely free. That aside, the point still stands, end-user data is being gathered regardless of the CDN tier the host (person running the site being visited) picked.

                                                                                                                                If I run a server there’s little difference for me linking to a third party resource vs proxying a request to it.

                                                                                                                                The difference is the source of the request, from one it’s your web server, the other it’s my IP address. This likely makes 0 difference to the person running a blog.. but as a reader of your blog, I will automatically assume that you have 0 interest in the privacy of your readers.