<?xml version="1.0"?>
<rss version="2.0">
  <channel>
    <title><![CDATA[LinLog]]></title>
    <link>https://linlog.skepticats.com/</link>
    <description><![CDATA[Linux, Programming, and Computing in General]]></description>
    <lastBuildDate>2022-09-16T16:00:18+00:00</lastBuildDate>
    <managingEditor>pageer@skepticats.com (Peter Geer)</managingEditor>
    <language>en-US</language>
    <generator>https://lnblog.skepticats.com/?v=2.2.0</generator>
    <item>
      <title><![CDATA[When online courses go wrong]]></title>
      <link>https://linlog.skepticats.com/entries/2022/08/when-online-courses-go-wrong.php</link>
      <description><![CDATA[<p>So I'm getting up to speed on <a href="https://go.dev/">go-lang</a> for a project I'm working on.&nbsp; Since my company provides us with access to PluralSight, I've been going through the courses and projects in their Go pathway.</p>
<p>So far most of the courses have been pretty decent.&nbsp; However, the projects are a different story.&nbsp; The first one I did was fine - not particularly enlightening, but OK.&nbsp; The second one, the <a href="https://app.pluralsight.com/projects/the-go-cli-playbook">Go CLI playbook</a>, to be perfectly frank, is garbage.&nbsp; At least, the first module is garbage.&nbsp; I can't really speak to the rest because&nbsp;<em>I can't get past the first module</em>.</p>
<p>Now, in my own defense, it's not like the first module is&nbsp;<em>hard</em>.&nbsp; In fact, it's completely trivial.&nbsp; It basically comes down to "run&nbsp;<code>go env &gt; module1.txt ; go env -json &gt; module1.json</code> and then submit the result.&nbsp; It even comes with a test file you can run locally.&nbsp; So far so good.</p>
<p>The problem is, it doesn't work on Windows.&nbsp; Like, doesn't work&nbsp;<em>at all</em>.&nbsp; For starters, if you're running Powershell, output redirected to a file defaults to UTF-16 encoding, which is standard for Windows, but not for Go apparently.&nbsp; Second, the&nbsp;<code>go env</code> command generates environment variables in an OS-specific format.&nbsp; On Windows, that means it generates a file that can be consumed by&nbsp;<code>cmd.exe</code>.&nbsp; Which is fine, except the project test file blithely assumes that the environment file is going to be in UNIX shell format, so the "set" at the start of each line makes it choke.</p>
<p>Well, that sucks.&nbsp; Guess I'll just use WSL.&nbsp; When I run the commands there and run the tests, they pass.&nbsp; Great!&nbsp; Let's upload the result and get on with our lives.&nbsp; Except that doesn't work, because the tests fail when run in PluralSight's validator.&nbsp; I don't know why.&nbsp; My best guess is that something in the upload process is mangling the encoding.&nbsp; I do know that it apparently doesn't run the test file you upload, so you can't hack around whatever the bug is.</p>
<p>The worst part is that you can't progress to the rest of the project until you "pass" that section.&nbsp; So I'm pretty much just out of luck.&nbsp; Maybe the rest of the course has some great material.&nbsp; Or maybe it's equally useless.&nbsp; Who knows?&nbsp; Maybe it's just this project - so far the others I've tried have been OK.&nbsp; Although I did have one other module where all the tests passed locally, but failed on upload.&nbsp; But in that case, I at least had a legitimate bug in my code.&nbsp; Why the tests passed locally is a different problem, though....</p>]]></description>
      <author><![CDATA[pageer@skepticats.com (Peter Geer)]]></author>
      <pubDate>Sun, 14 Aug 2022 13:25:29 +0000</pubDate>
      <category><![CDATA[Go-lang]]></category>
      <category><![CDATA[Industry]]></category>
      <guid isPermalink="true">https://linlog.skepticats.com/entries/2022/08/when-online-courses-go-wrong.php</guid>
      <comments>https://linlog.skepticats.com/entries/2022/08/14_0925/comments/</comments>
    </item>
    <item>
      <title><![CDATA[Grow up JavaScript]]></title>
      <link>https://linlog.skepticats.com/entries/2021/11/grow-up-javascript.php</link>
      <description><![CDATA[<p>The other week, somebody posted <a href="https://dev.to/jaredcwhite/the-shocking-immaturity-of-javascript-c70">this article</a> by Jared White in one of the chats at work.&nbsp; It decries the "shocking immaturity" of the ecosystem around JavaScript and Node.JS.</p>
<p>I mean...yeah.&nbsp; But it's not like this is news.&nbsp; The Node ecosystem has been messed up for years.&nbsp; Remember the <a href="https://www.theregister.com/2016/03/23/npm_left_pad_chaos/">left-pad debacle</a>?&nbsp; That was five years ago.&nbsp; It's pretty clear that the ecosystem was messed up&nbsp;<em>then</em>.&nbsp; So I guess this article just tells us that not much has changed.</p>
<p>To be fair, a lot of the stuff Jared complains about isn't <em>really</em> specific to the JavaScript ecosystem.&nbsp; I've also been in the industry for 20 years and I can say from experience that bugs and hype are endemic to most of the industry and have been for quite some time.&nbsp; For example, in the early days of Rails, I remember seeing a million variations on the "build your own blog in 10 minutes with Ruby on Rails" tutorials.&nbsp; And yes, that's fine, you can make a simple demo app in 10 minutes.&nbsp; Whoop-de-doo.&nbsp; In reality, what that usually means is that on a two-month project you've saved yourself...maybe a day or two at most.&nbsp; There are <em>lots</em> of tools and framework in&nbsp;<em>lots</em> of language ecosystems that are grossly over-hyped - it's almost standard practice in the industry.</p>
<p>As for bugs, I can't speak to Jared's experience.&nbsp; In any software ecosystem, bugs are obviously common and not mentioning them is almost <em>de rigueur</em>.&nbsp; I mean, if you're developing a framework or library, <em>of course</em> you're not going to advertise the bugs and limitations of your tool.&nbsp; You want people to use it, not be scared away.&nbsp; But I'm willing to accept Jared's assertion that the JavaScript world is uniquely bad.&nbsp; I know my experience of client-side JS libraries is...not fantastic in terms of reliability or documentation.&nbsp; So while I'm not <em>sure</em> he's right, I wouldn't be surprised if he was.</p>
<p>I do think his point about the learning curve is interesting and valid, though I don't know that it relates specifically to bugs.&nbsp; I haven't gotten deep into many of the fancy new JavaScript frameworks, but they do seem to be staggeringly complex.&nbsp; I started working with JavaScript way back in 2005, when all you needed to do what save your code in a text file, open that file up in a browser, and see what it did.&nbsp; It was <em>extremely</em> simple and the bar to entry was ridiculously low.&nbsp; Then, a few years ago, I decided to try out React, since that's the big new thing.&nbsp; &nbsp;Just to do "Hello, World!", I had to get my head around their weird template syntax, install a transpiler, and run some kind of server process (I don't even remember - maybe that's changed by now).&nbsp; And when I saw that work, I quit because I had actual work to do.&nbsp; It's hard for me to remember what it was like to be a beginner, but I can imagine that this kind of an on-ramp would be pretty daunting, even with the dumbed-down tutorials.&nbsp; Heck, it seemed like kind of a lot to me, and I'm an experienced professional!</p>
<p>Honestly, I kind of wonder how much of the problems Jared is seeing stem from the "youth" of the JavaScript ecosystem.&nbsp; I'm not talking about the language, of course.&nbsp; I'm thinking more of the historical and cultural part of the ecosystem.&nbsp; Consider:</p>
<ol>
<li>While JavaScript has been around for a 25 years, it was widely considered a "toy" language for the first 10 years or so.&nbsp; Remember - JavaScript came out in 1995, but jQuery didn't come along until 2005.&nbsp; And these days, building your site on jQuery is the equivalent of building your house out of mud and sticks.</li>
<li>In the roughly 15 years of JavaScript's non-toy lifespan, there's been a&nbsp;<em>lot</em> of churn in the web space.&nbsp; And during much of that time, it was considered important for many businesses to support legacy web browsers.&nbsp; I remember many times having to stop myself from using "new" features of JavaScript because, well, we still have to support old versions of Internet Explorer.&nbsp; Yeah, nobody cares about that anymore (thank God), but it wasn't all that long ago that they did.&nbsp; Heck, I remember getting yelled at in 2015 because I forgot to test something in IE9, which was released in 2010!</li>
<li>From 1 and 2 above, it's clear that, in terms of the evolution of the ecosystem, the 25 year history of JavaScript is really a lot less than 25 years.&nbsp; In fact, it's probably only within the last five years or so that we've managed to shake off most of the legacy cruft and get adoption of modern stuff beyond the handful of early-adopters.</li>
<li>On the cultural front, it's been my experience that a lot of young people these days get into coding through web development.&nbsp; This is not a bad thing - everybody has to start somewhere and the web is a relatively accessible and popular medium.&nbsp; But it's also my experience that a lot of the people who create open-source tools and libraries are younger, because they're less likely to have families and other obligations and hence more likely to have the free time.&nbsp; Again, this is not bad, but it means that the people writing the tools are disproportionately likely to be less experienced.</li>
<li>So while there are plenty of things in the JavaScript world that are old enough that they&nbsp;<em>should</em> be mature, we can see from 3 and 4 that this might not necessarily be the case.&nbsp; When a tool is developed by relatively inexperienced coders and hasn't been widely used outside a relatively small circle for very long, it shouldn't come as a surprise when they have some issues.</li>
</ol>
<p>Of course, I'm just spit-balling here - I could be completely wrong.&nbsp; But the point is that developing a stable ecosystem takes time, and the JavaScript ecosystem hasn't actually had as much&nbsp;<em>real</em> time to develop as the calendar suggests.&nbsp; I mean, there's still a hot new framework coming out every other week, so it doesn't seem like the ecosystem has even finished stabilizing yet.&nbsp; Maybe in a few years things will settle down more and quality will improve.</p>
<p>Or maybe not.&nbsp; We'll see.&nbsp; In the mean time, we just have to make do with what we have.</p>]]></description>
      <author><![CDATA[pageer@skepticats.com (Peter Geer)]]></author>
      <pubDate>Sat, 27 Nov 2021 23:20:38 +0000</pubDate>
      <category><![CDATA[JavaScript]]></category>
      <category><![CDATA[Industry]]></category>
      <guid isPermalink="true">https://linlog.skepticats.com/entries/2021/11/grow-up-javascript.php</guid>
      <comments>https://linlog.skepticats.com/entries/2021/11/27_1820/comments/</comments>
    </item>
    <item>
      <title><![CDATA[New fitness toy]]></title>
      <link>https://linlog.skepticats.com/entries/2021/09/new-fitness-toy.php</link>
      <description><![CDATA[<p>So the other week I saw a cool toy I've been wanting on Amazon, and it was a good price.&nbsp; No, not a tech gadget this time - a new set of dumbbells.&nbsp; And since I didn't want anything for my birthday, my wife gave the approval to order them.</p>
<p>Specifically, I got a pair of <a href="https://powerblock.com/product/elite-series/">PowerBlock Elite EXP </a>dumbbells.&nbsp; These things may look like toasters, but they're actually adjustable dumbbells that can go from 5 to 50 pounds in 2.5 to 5 pound increments.&nbsp; The big selling point is that they adjust <em>quick</em>&nbsp; You can do 10 pound adjustments just by moving a pin, which is super fast.&nbsp; The 2.5 and 5 pound increments are little more involved, as those are adjusted by removing weight cylinders from the handles, and you can't do all increments, but it's still just pulling the pin, flipping a lever, and dropping a cylinder in or out.</p>
<p><a href="https://linlog.skepticats.com/entries/2021/09/11_1820/IMG_20210901_061355.jpg"><img style="display: block; margin-left: auto; margin-right: auto;" src="https://linlog.skepticats.com/entries/2021/09/11_1820/IMG_20210901_061355-med.jpg" alt="IMG_20210901_061355-med.jpg" /></a></p>
<p>Compare this to my old set of dumbbells, which adjusts up to 52.5 pounds.&nbsp; It adjusts in 2.5 pound increments (and does all of them), but does it by swapping out plates and securing them using a screw clamp.&nbsp; It works fine, but it's slow.&nbsp; So, for instance, my current program has a bunch of supersets in it, and for most of them I'm using different weights for each of the two exercises.&nbsp; So the "go immediately into the second exercise" was actually more like "spend about a minute changing the weights and <em>then</em> go straight into the next exercise".&nbsp; Clearly this is not ideal in terms of executing the program, and it also stretches out the workout.</p>
<p>I'm pretty happy with them.&nbsp; They took a little getting used to, but after using them for a week or two they work pretty well.&nbsp; My main complaint is that the instructions were a little iffy.&nbsp; It took me a little playing around to figure out exactly how to put in the pin, which direction things went, and so forth.&nbsp; But it's not complicated, so it just took a few minutes of messing around.</p>
<p>On the down side, Amazon is now sending me suggestions for the thing I just bought.&nbsp; They did the same thing when I bought my new laptop on Prime day.</p>
<p><a href="https://linlog.skepticats.com/entries/2021/09/11_1820/2021-08-30T18-33-15-755Z.png"><img style="display: block; margin-left: auto; margin-right: auto;" src="https://linlog.skepticats.com/entries/2021/09/11_1820/2021-08-30T18-33-15-755Z-small.png" alt="2021-08-30T18-33-15-755Z-small.png" /></a></p>
<p>I'm sure at some point Amazon will fix this, but it doesn't exactly say much for their recommendation AI.&nbsp; I mean, this recommendation is a different model and a lighter weight, so it's not&nbsp;<em>exactly</em> the same thing, but <em>come on</em>.&nbsp; Can one of the biggest tech companies in the world, with huge amounts of computing power and legions of brilliant people devoted to building their recommendation systems,&nbsp;<em>really</em> not figure out that I don't need to buy a slightly different version of the thing I&nbsp;<em>just bought from them</em>?&nbsp;&nbsp;</p>
<p>I don't know - maybe there's a good reason for that and I just don't know enough about Amazon and/or machine learning.&nbsp; It's just a really annoying thing that seems like it should be an obvious thing to fix.&nbsp; Heck, I would imagine that the machine learning systems might even pick up on that on its own.&nbsp; I mean, do people who buy a thing&nbsp;<em>really</em> buy it again a week later that often?&nbsp; I'd think those numbers are all fed into the recommendation system and that they'd be low enough that the algorithm would drop recent purchases (especially larger ones) off the recommendations.</p>
<p>Then again, maybe the algorithm knows something I don't.&nbsp; Maybe people re-buy the same thing all the time.&nbsp; It could be they even do that with items that cost hundreds of dollars.&nbsp; I doubt it.&nbsp; But what do I know?</p>]]></description>
      <author><![CDATA[pageer@skepticats.com (Peter Geer)]]></author>
      <pubDate>Sat, 11 Sep 2021 22:20:48 +0000</pubDate>
      <category><![CDATA[Fitness]]></category>
      <category><![CDATA[Industry]]></category>
      <guid isPermalink="true">https://linlog.skepticats.com/entries/2021/09/new-fitness-toy.php</guid>
      <comments>https://linlog.skepticats.com/entries/2021/09/11_1820/comments/</comments>
    </item>
    <item>
      <title><![CDATA[Well, this answers my NFT question]]></title>
      <link>https://linlog.skepticats.com/entries/2021/09/well-this-answers-my-nft-question.php</link>
      <description><![CDATA[<p>This morning I finally took a little time to <a href="https://hackernoon.com/nft-and-intellectual-property-what-do-you-get-when-you-buy-an-nft-101q37vc">read</a> <a href="https://www.makeuseof.com/what-do-you-actually-own-if-you-buy-an-nft/">a few</a> <a href="https://mashable.com/article/what-is-an-nft-non-fungible-token">articles</a> about <a href="https://en.wikipedia.org/wiki/Non-fungible_token">NFTs</a>.&nbsp; Specifically, I was interested in what you actually&nbsp;<em>get</em> when you buy an NFT.</p>
<p>As I'd written in a <a href="https://linlog.skepticats.com/entries/2021/03/i-dont-get-nft.php">previous post</a>, this was kind of confusing to me.&nbsp; I mean, I got the technical aspect - that an NFT is a blockchain transaction that's tied to some file that lives outside the chain.&nbsp; So you have an immutable record that the transaction happened, which is good.&nbsp; But when you read about people paying hundreds of thousands, or even&nbsp;<em>millions</em> of dollars for an NFT, what did they actually get for that money?</p>
<p>The short answer is: it depends.</p>
<p>It looks like, legally speaking, it depends on the terms of the sale agreement.&nbsp; It's <em>possible</em> that a high-priced NFT was purchased under an agreement that transfers full ownership and copyright rights to the purchaser.&nbsp; However, it's also possible that all they got was that transaction on the blockchain.</p>
<p>It seems like the default is that buying an NFT is like buying a collectible, but in digital form.&nbsp; Think of, say, a limited-edition collectible like a toy, coin, or something similar that comes with some sort of certificate of authenticity.&nbsp; When you buy it, you get the physical item, but you also get documentation with some sort of serial number and proof that that&nbsp;<em>specific</em> item was sold to you.&nbsp; Having that kind of provenance can, in and of itself, be very valuable to collectors.</p>
<p>However, while it might be understood that the supply of a limited-edition item will be fixed, you generally aren't guaranteed that.&nbsp; There's not necessarily anything to stop the manufacturer from making a crap-ton more of them and flooding the market, thus diluting the value of your purchase.</p>
<p>That's kind of like how it works with NFTs.&nbsp; Unless you have a contract that says otherwise, it seems like you can't generally assume that you get anything other than the digital equivalent of a proof-of-purchase.&nbsp; You get the exclusive rights to that certificate, but the only rights you get over the work associated with it are basically the rights of private ownership, i.e. to have and use it for your own, personal purposes.</p>
<p>To my way of thinking, it's kind of like the difference between buying an e-book from O'Reilly and downloading the same e-book from a torrent site.&nbsp; Either way, you have a copy of the book that you can read.&nbsp; Either way, you can give your friend a copy of it to read.&nbsp; But if you buy it, you have a receipt to prove that you bought it.</p>
<p>Is there some value in that?&nbsp; Yes, I think there is.&nbsp; I can especially see that in the case of a "digital collectible", where a significant portion of the value could be in just&nbsp;<em>having them</em> in your collection.&nbsp; (I do think paying large amounts for that is silly, but I also think paying large amounts for physical collectibles with no intrinsic value is silly.)&nbsp; But for cases where there's no physical asset, and no ownership rights over the original digital asset, and nothing to stop the creator from minting more tokens for the same asset...?&nbsp; I have a hard time imagining a "certificate of authenticity for Jack Dorsey's first tweet" being worth $2.5 million.</p>
<p>So I'm moderating my position a little.&nbsp; I'm not going to say that all NFT is just dumb.&nbsp; Depending on the transaction details, it can be a useful thing to buy.&nbsp; But I think it&nbsp;<em>really</em> depends on the details.&nbsp; I mean, if all you're buying is a "certificate of authenticity" for something that somebody else owns and anyone can get for free, that seems kinda silly.&nbsp; And paying thousands of dollars for something like that seems <em>really</em> silly.&nbsp; So while NFT might not be totally worthless, I still think a lot of the high-priced transactions we read about are nothing but speculation.&nbsp; (Or money laundering, or <a href="https://safehaven.com/markets/markets-other/How-The-Ultra-Wealthy-Are-Using-Art-To-Dodge-Taxes.html">tax avoidance</a>, or whatever other financial tricks people pull with collectibles.)</p>]]></description>
      <author><![CDATA[pageer@skepticats.com (Peter Geer)]]></author>
      <pubDate>Sat, 04 Sep 2021 22:20:40 +0000</pubDate>
      <category><![CDATA[Industry]]></category>
      <guid isPermalink="true">https://linlog.skepticats.com/entries/2021/09/well-this-answers-my-nft-question.php</guid>
      <comments>https://linlog.skepticats.com/entries/2021/09/04_1820/comments/</comments>
    </item>
    <item>
      <title><![CDATA[I don't get NFT]]></title>
      <link>https://linlog.skepticats.com/entries/2021/03/i-dont-get-nft.php</link>
      <description><![CDATA[<p>I only recently learned about the existence of NFTs as a "thing".&nbsp; If you are also unfamiliar, NFT stands for "Non-Fungible Token".&nbsp; <a href="https://www.cnn.com/2021/03/17/business/what-is-nft-meaning-fe-series/index.html">CNN has an explanation here</a>, but t's essentially a unique digital token, stored on a blockchain, that represents some digital asset.&nbsp;&nbsp;Apparently NFTs have recently become the latest hot trend, with some of them selling for hundreds of thousands of dollars.&nbsp;&nbsp;</p>
<p>However, <a href="https://news.slashdot.org/story/21/03/29/2343254/why-peoples-expensive-nfts-keep-vanishing">this Slashdot post</a> points out that there are some potential issues with NFTs.&nbsp; Basically, NFTs don't actually <em>store</em> the asset you're purchasing.&nbsp; So if you buy an NFT for an image, the image doesn't actually live on the blockchain.&nbsp; You've only bought a&nbsp;<em>reference</em> to the image, which is actually hosted someplace else.&nbsp; So if whatever server or service is hosting that image goes away, you will no longer be able to access it, regardless of owning the NFT.</p>
<p>So I guess what I'm confused about is: what's the point?&nbsp; I mean, what are you really getting when you buy an NFT?&nbsp; In a theoretical sense, I can see how an NFT is better than "conventional" digital assets in that it's not tied to a particular service.&nbsp; Your ownership of that item is recorded in you crypto wallet which is independent of any particular service an can be used with multiple NFT marketplaces.&nbsp; And that's a good thing.&nbsp;</p>
<p>But when you look at it <em>functionally</em>, there's not really much difference.&nbsp; The actual asset still exists completely independent of the blockchain, so it's not like a&nbsp;<em>physical</em> asset - there might only be one token, but you can still infinitely duplicate the asset.&nbsp; And as far as I can tell, buying an NFT doesn't actually mean you're purchasing the copyright for the asset.&nbsp; So you're just buying a copy and there's nothing to stop anyone from making other copies.&nbsp; And because the asset isn't stored on the blockchain, if you want to ensure you always have access then you need to download a copy of it.&nbsp; So...how is this different from buying a service-specific digital asset?</p>
<p>It seems like the point is less the actual asset and more that NFT is the same thing as Bitcoin - that it's just a different way to speculate on blockchain stuff.&nbsp; Especially when you're talking about something like spending $2.5 million for jack Dorsey's first tweet, it's hard to see any other rational explanation.&nbsp; But even for less absurd cases, it's not clear to me what the practical benefit is.&nbsp; The main reason that blockchain "works" for cryptocurrency is because the thing on the blockchain <em>is</em> the thing you're transferring.&nbsp; As soon as you introduce a disconnect between the thing being traded and the thing on the blockchain, it seems like you lose a lot of the benefit of the blockchain.&nbsp;&nbsp;</p>]]></description>
      <author><![CDATA[pageer@skepticats.com (Peter Geer)]]></author>
      <pubDate>Tue, 30 Mar 2021 13:55:01 +0000</pubDate>
      <category><![CDATA[Industry]]></category>
      <category><![CDATA[Security]]></category>
      <category><![CDATA[Web]]></category>
      <guid isPermalink="true">https://linlog.skepticats.com/entries/2021/03/i-dont-get-nft.php</guid>
      <comments>https://linlog.skepticats.com/entries/2021/03/30_0955/comments/</comments>
    </item>
    <item>
      <title><![CDATA[Conference talks]]></title>
      <link>https://linlog.skepticats.com/entries/2021/02/conference-talks.php</link>
      <description><![CDATA[<p>The other day I decided to go back to something I did when I was still working in the office: putting tech conference talks on in the background while I work.&nbsp; Sometimes it's nice to have a little background noise if I'm not trying to concentrate too deeply on something (what I'm currently working on involved a lot of waiting for CI pipelines to run).&nbsp; Of course, sometimes I my concentration level ramps up and I totally tune out the entire talk, but sometimes I don't and it ends up being interesting.</p>
<p>This particular afternoon I was listening to some talks from the <a href="https://youtube.com/playlist?list=PLEx5khR4g7PIiAEHCt6LGMFnzq7JjO8we">GOTOpia Europe 2020</a> virtual conference.&nbsp; This one had an especially good lineup, including talks from <a href="https://youtu.be/0AzkH8SYyOc">Dave Thomas</a>, <a href="https://youtu.be/kX0prJklhUE">Kevlin Henney</a>, and <a href="https://youtu.be/F42A3R28WMU">Allen Holub</a>, who are some of my favorite presenters.&nbsp; <a href="https://youtu.be/__7K_fDqVJs">Cat Swetel</a>, who I'd never seen speak before, also had a very interesting presentation on metrics that I would heartily recommend.</p>
<p>It might not be the same vibe as the live conferences, but it's at least nice to be reminded that the entire world hasn't been canceled due to the pandemic.&nbsp; And there are always some interesting discussions at GOTO, so it's worth a watch.</p>]]></description>
      <author><![CDATA[pageer@skepticats.com (Peter Geer)]]></author>
      <pubDate>Sat, 20 Feb 2021 21:12:31 +0000</pubDate>
      <category><![CDATA[Industry]]></category>
      <category><![CDATA[Software Engineering]]></category>
      <guid isPermalink="true">https://linlog.skepticats.com/entries/2021/02/conference-talks.php</guid>
      <comments>https://linlog.skepticats.com/entries/2021/02/20_1612/comments/</comments>
    </item>
    <item>
      <title><![CDATA[Disappearing knowledge]]></title>
      <link>https://linlog.skepticats.com/entries/2020/10/Disappearing_knowledge.php</link>
      <description><![CDATA[<p>I saw an interesting <a href="https://news.slashdot.org/story/20/09/09/1654224/dozens-of-scientific-journals-have-vanished-from-the-internet-and-no-one-preserved-them">article on Slashdot</a> recently about the <a href="https://www.sciencemag.org/news/2020/09/dozens-scientific-journals-have-vanished-internet-and-no-one-preserved-them">vanishing of online scientific journals</a>.&nbsp; The short version is that some people looked at online open-access academic journals and found that, over the last decade or so, a whole bunch of them have essentially disappeared.&nbsp; Presumably the organizations running them either went out of business or just decided to discontinue them.&nbsp; And nobody backed them up.</p>
<p>In case it's not already obvious, this is a bad thing.&nbsp; Academic journals are supposed to be where we publish new advances in human knowledge and understanding.&nbsp; Of course, not&nbsp;<em>every</em> journal article is a leap forward for human kind.&nbsp; In fact, the majority of them are either tedious crap that nobody cares about, of questionable research quality, or otherwise not really that great.&nbsp; And since we're talking about open-access journals, rather than top-tier ones like&nbsp;<em>Nature</em>, lower-quality work is probably over-represented in those journals.&nbsp; So in reality, this is probably not a tragedy for the accumulated wisdom of mankind.&nbsp; But still, there might have been some good stuff in there that was lost, so it's not good.</p>
<p>To me, this underscores just how transient our digital world is.&nbsp; We talk about how nothing is ever&nbsp;<em>really</em> deleted from the internet, but that's not even remotely true.&nbsp; Sure, things that go viral and are copied everywhere will live for a very long time, but an awful lot of content is really just published in one place.&nbsp; If you're lucky, it might get backed up by the <a href="https://archive.org">Internet Archive</a> or Google's cache, but for the most part, if that publisher goes away, the content is just <em>gone</em>.</p>
<p>For some content, this is a real tragedy.&nbsp; Fundamentally, content on the Internet isn't that different from offline content.&nbsp; Whether it's published on a blog or in a printed magazine, a good article is still a good article.&nbsp; A touching personal story is no more touching for being recorded on vinyl as opposed to existing as an MP3 file.&nbsp; I know there's a lot of garbage on the web, but there's also a lot of stuff that has genuine value and meaning to people, and a lot of it is not the super-popular things that get copied everywhere.&nbsp; It seems a shame for it to just vanish without a trace after a few short years.</p>
<p>I sometimes wonder what anthropologists 5000 years from now will find of our civilization.&nbsp; We already know that good quality paper can last for centuries.&nbsp; How long will our digital records last?&nbsp; And if the media lasts 5000 years, what about the data it contains?&nbsp; Will anthropologists actually be able to access it?&nbsp; Or are they going to have to reverse-engineer our current filesystems, document, and media formats?&nbsp; Maybe in 5000 years figuring out the MPEG-4 fomat from a binary blob on an optical disk will be child's play to the average social science major, who knows?&nbsp; Or maybe the only thing they'll end up with the archival-quality print media from our libraries.&nbsp; But then again, given what the social media landscape looks like, maybe that's just as well....</p>]]></description>
      <author><![CDATA[pageer@skepticats.com (Peter Geer)]]></author>
      <pubDate>Sat, 03 Oct 2020 22:21:28 +0000</pubDate>
      <category><![CDATA[Web]]></category>
      <category><![CDATA[Industry]]></category>
      <category><![CDATA[Rants]]></category>
      <guid isPermalink="true">https://linlog.skepticats.com/entries/2020/10/Disappearing_knowledge.php</guid>
      <comments>https://linlog.skepticats.com/entries/2020/10/03_182128/comments/</comments>
    </item>
    <item>
      <title><![CDATA[What Is RSS and Why Should I Care? ]]></title>
      <link>https://linlog.skepticats.com/entries/2020/09/What_Is_RSS_and_Why_Should_I_Care_.php</link>
      <description><![CDATA[<p><strong><em>Author's Note:</em></strong><em> This entry from my archives was written on March 18, 2007 and has been sitting in my drafts folder ever since.&nbsp; Not sure why I didn't publish it at the time.&nbsp; I think I was going to add more, but never got around to it.&nbsp; At any rate, this was back then RSS feeds were a trendy, new-ish thing and this article was supposed to be a less technical discussion of what they are and why they're good.</em></p>
<p><em>These days, of course, RSS is pass&eacute;, and when people refer to a "feed", it's usually coming from Facebook, Twitter, Instagram, or whatever vendor-locked service the kids are using this week.&nbsp; I find this sad.&nbsp; The idea of the open web was so promising, but not that much really came of it.&nbsp; Instead of being spoon-fed our information and entertainment by big media companies via broadcast and print media, we're now spoon-fed our information and entertainment via the internet by big tech companies.&nbsp; And this time, the content is not selected by gate-keeping editors, but by AI algorithms that are tuned to feed us whatever will keep us clicking, with little to no regard for whether it's true, useful, or even remotely good for us.</em></p>
<p><em>For the record, I still use RSS feeds all the time.&nbsp; I use the <a href="https://tt-rss.org">Tiny Tiny RSS</a> aggregator, which is quite nice, to read the various blogs and news that I'm interested in following.&nbsp; I have accounts with a few of the big social media platforms, but I rarely ever read them and never post anything.&nbsp; I find them to be a huge time-sink and not especially conducive to good mental health, and so better off avoided.&nbsp; Of course, your mileage may vary, but just keep in mind that you don't&nbsp;<span style="text-decoration: underline;">need</span> to look at these sites - if anything truly important happens, someone&nbsp;<span style="text-decoration: underline;">will</span> tell you about it.&nbsp; I mean, unless you're a shut-in with no friends or family.&nbsp; In that case, maybe social media is a good thing for you.&nbsp;&nbsp;</em></p>
<p><em>At any rate, these were my thoughts in 2007.&nbsp; Perhaps they'll be interesting or enlightening.&nbsp; Or perhaps entertaining in their naivete.&nbsp; Enjoy!</em></p>
<hr />
<p>If you frequent tech sites or weblogs, you've probably seen the RSS icon <img style="width: 16px; height: 16px; display: inline-block; margin: 0;" src="https://linlog.skepticats.com/entries/2020/09/19_1804/xml_feed.png" alt="RSS feed icon" /> or the XML feed icon <img style="width: 36px; height: 14px; display: inline-block; margin: 0;" src="https://linlog.skepticats.com/entries/2020/09/19_1804/xml.gif" alt="XML feed icon" />. &nbsp;You may also have seen other icons or text links referring to XML feeds, RSS, or even podcasts. &nbsp;In fact, if you're using a web browser other than Internet Explorer, you may have seen one of these icons pop up in the address bar or status bar. &nbsp;In this article, I will try to explain, in layman's terms, what RSS is and why it is so useful and important to the future of the internet.</p>
<h3>What is RSS?</h3>
<p>RSS stands for Really Simple Syndication. &nbsp;As this name suggests, it is a syndication format. &nbsp;</p>
<p>By "syndication," we mean essentially the same thing as when we talk about syndicated television shows. &nbsp;A syndicated TV show is one that is shown on multiple independent channels at the same time, as opposed to being exclusive to a single network. &nbsp;So for example, a syndicated show in the United States might be broadcast by NBC, Fox, the Sci-Fi channel, and USA all at the same time.</p>
<p>RSS works the same way. &nbsp;An RSS file, usually referred to as a <span style="font-weight: bold;">feed</span>, contains a list of recent updates to a site. &nbsp;The site operators publish this file on the web site and allow other people to <span style="font-weight: bold;">subscribe</span> to it, which is really just a fancy way of saying they automatically download it on a regular basis. &nbsp;These people can then "republish" the information, either by incorporating it into their own sites or simply reading it into a desktop application. &nbsp;The idea is that if the site's operators update the RSS feed every time they update the site, anyone who subscribes to it will automatically get the next "episode" the next time he downloads the file.</p>
<h3>But what would I do with it?</h3>
<p>If you are not already familiar with RSS, you may be wondering why anyone would bother with this. &nbsp;After all, if you just want to read the updates of a site, isn't it just as easy to read the home page? &nbsp;</p>
<p>At this point, you may be thinking that this doesn't sound much different from just visiting the web site in question. &nbsp;After all, why would you want to bother with this RSS thing when you can just go to the site's home page like you've been doing for years? &nbsp;</p>
<p>You wouldn't be wrong to think that. &nbsp;If you're talking about just one site, with one set of updates to track, then RSS doesn't make any sense. &nbsp;It would just be a different way of doing the same thing.</p>
<p>The beauty of RSS is that, unlike a web page, you can easily write a program to break up the information and organize it in a useful way. &nbsp;For example, you can have a script on your web site that takes RSS news feeds from CNN, the BBC, and others and puts them all together in a news ticker on your home page. &nbsp;You can also have programs such as RSS aggregators, which pull together news items from multiple sites and display them together so that you can browse them quickly and easily. &nbsp;</p>
<p>I will discuss some other uses of RSS, including the trendiest of them all, Podcasting, later in this article.&nbsp; <em>(Note from the future: I never actually did</em> that.)&nbsp; But before that, we need to cover why RSS is useful and separate the fact from the hype.</p>
<h3>A brief technical digression</h3>
<p>What makes RSS&nbsp;so useful and so widely applicable is that it is a standard format. &nbsp;It is&nbsp;an application of <a href="http://www.xml.com/pub/a/98/10/guide0.html?page=2#AEN58">XML, the eXtensible Markup Language</a>, which is an industry standard markup language for use with structured information. &nbsp;I won't bore you with a description of XML, but the upshot of this is that RSS files all contain a certain set of standard information which is always marked with the same standard tags. &nbsp;This means that a program can easily go through the file and pick out particular pieces of information, like the title of a particular news item, without having to pay any attention to what the title actually says or how it is formatted for display. &nbsp;And because RSS is based on XML, there is already a wide array of programming tools that can be used to create and manipulate the files.</p>
<p>This is in stark contrast to web pages. &nbsp;Although HTML, the markup language used to build web pages, has a standard set of tags, there is no standard for how a page is structured. &nbsp;So while there are fixed ways of defining lists, tables, and paragraphs in HTML, there is no agreed upon way to say, "This is a news item, this is its title, and this is the link to its page in the archives."&nbsp; <em>(Note from the future: With the advent of HTML 5 this is no longer technically true.&nbsp; However, semantic markup is not universally or consistently applied, so it's still close</em> enough.)&nbsp; So while a human being can easily look at a page full of items and determine where one ends and the next begins, there is no simple and general way for a computer to do that. &nbsp;Because everyone is free to pick how they want to denote those things, a program would have to analyze the content of the page and figure out what the author of each page was thinking. &nbsp;Needless to say, this kind of mind-reading is not something computers are particularly good at.</p>
<h3>Getting past the hype</h3>
<p>You know what the computing industry is <em>best</em> at producing? &nbsp;It's not software, hardware, or anything else you can buy in the local office supplies store. &nbsp;It's <strong>hype</strong>. &nbsp;And to really appreciate how good RSS is, you have to get past the hype generated breathless pundits who seem to think it will cure cancer, feed the starving, and bring peace to the world.&nbsp; (<em>Note from the future: Nobody gives two hoots about RSS or XML anymore.&nbsp; Hype has a very limited life span.</em>)</p>
<p>From a technical standpoint, there is absolutely nothing revolutionary about RSS. &nbsp;It's just a standard way of formatting a text file. &nbsp;You could even create an RSS file in Windows Notepad if you really wanted to. &nbsp;</p>
<p>And when you think about it, using RSS feeds is just a fancy name for putting a text file on your web site and then letting people download it and mess around with the information it contains. &nbsp;How is that revolutionary? &nbsp;We could do <em>that</em> 20 years ago. &nbsp;</p>
<p>However, it is important to remember that "revolutionary" and "innovative" are not the same as "good." &nbsp;RSS is good because it provides a standard way of transmitting certain kinds of information in a way that puts all the power in the hands of the consumer, not the publisher. &nbsp;It's not the technology itself that's revolutionary, but rather the way people have chosen to apply it.</p>
<p>The real reason RSS and the whole "Web 2.0" thing are important is not because of the technology, but because of the paradigm. &nbsp;That paradigm is: the user is king. &nbsp;In an era where Hollywood and the music industry are trying to tell you when and where you're allowed to use the music and movies you paid for, open standards put that power in your hands.&nbsp; (<em>Note from the future: People have forgotten about that aspect, so now "Web 2.0" means "the site uses AJAX."&nbsp; Also, substitute "Hollywood" for "big tech companies."</em>)</p>]]></description>
      <author><![CDATA[pageer@skepticats.com (Peter Geer)]]></author>
      <pubDate>Sat, 19 Sep 2020 22:04:49 +0000</pubDate>
      <category><![CDATA[From the Archives]]></category>
      <category><![CDATA[Web]]></category>
      <category><![CDATA[Industry]]></category>
      <guid isPermalink="true">https://linlog.skepticats.com/entries/2020/09/What_Is_RSS_and_Why_Should_I_Care_.php</guid>
      <comments>https://linlog.skepticats.com/entries/2020/09/19_1804/comments/</comments>
    </item>
    <item>
      <title><![CDATA[Old people and legacy support]]></title>
      <link>https://linlog.skepticats.com/entries/2020/09/Old_people_and_legacy_support.php</link>
      <description><![CDATA[<p>Lauren Weinstein had an interesting post a earlier this year <a href="https://lauren.vortex.com/2020/01/17/how-some-software-designers-dont-seem-to-care-about-the-elderly">discussing software developers' attitudes toward the elderly</a>.&nbsp; His main point is that developers tend not to think at all about the issues that older people have when working with computers. These include things like reluctance to or difficulty with learning new programs or ways of working; old hardware which they can't afford to upgrade; isolation and lack of access to help; and physical limitations, such as poor eyesight or reduced manual dexterity.</p>
<p>Of course, this is obviously not true of <em>all </em>developers (like Lauren, for example), but if we apply it to the general zeitgeist of the community, at least as you see it online, then there does seem to be something to this.&nbsp; As a group, developers are very focused on "the coming thing", as Brisco County Jr. would say.&nbsp; We all want to be ahead of the curve, working with the cool new technology that's going to take over the world.&nbsp; We want to be on greenfield projects that are setting the standard for how to do things.&nbsp; That's why otherwise intelligent programmers do or suggest crazy things like rewriting their conventional LAMP-based site in Go and ReactJS.&nbsp; Of course, it's <a href="https://www.joelonsoftware.com/2000/04/06/things-you-should-never-do-part-i/">long been established</a> that rewriting from scratch is almost always stupid and wasteful, but the fact is that while PHP might pay the bills, it isn't cool.</p>
<p style="text-align: center;"><iframe src="https://www.youtube.com/embed/VqCwAY3MKw4" width="560" height="315" frameborder="0" allowfullscreen="allowfullscreen"></iframe></p>
<p>Of course, it isn't&nbsp;<em>just</em> because they want to be cool that developers like newer technologies.&nbsp; There are plenty of other reasons.&nbsp; Intellectual curiosity, for one.&nbsp; Many of us got into this line of work because we enjoy learning new things, and there are always interesting new technologies coming out to learn.&nbsp; Learning&nbsp;<em>old</em> things&nbsp;can be interesting as well, but there are a few problems with that:</p>
<ol>
<li><strong>Older technologies are less marketable.</strong>&nbsp; Learning new tech takes a lot of time and effort, and if the tech is already on the way out, the odds of seeing a return on that investment of time, whether financial or just in terms of re-using that knowledge, are significantly lower.</li>
<li><strong>Older tech involves more grunt work.</strong>&nbsp; In other words, older programming technologies tend to work at a lower level.&nbsp; Not always, but the trend is to increasing levels of abstraction.&nbsp; That means that it will likely take more effort and/or code to do the same thing that you might get more or less for free with newer tech.</li>
<li><strong>The problems are less fun.</strong>&nbsp; This particularly applies to things like "supporting Internet Explorer", which Lauren mentions.&nbsp; When you have to support both the old stuff&nbsp;<em>and</em> the new stuff, you generally have lots of problems with platform-specific quirks, things that are supposed to be compatible but really aren't, and just generally trying to work around limitations of the older tech.&nbsp; These are the kind of problems that can be difficult, but not in a good way.&nbsp; They're less like "build a better mousetrap" and more like "find a needle in this haystack".</li>
</ol>
<p>So, in general, developers aren't usually super enthusiastic about working with or supporting old tech.&nbsp; It's not&nbsp;<em>really</em> as bad as some people make it sound, but it's not really where most of us want to be.</p>
<p>Another factor is the way websites are developed.&nbsp; The ideal is that you'd have somebody who is trained and experienced in designing user experiences and who is capable of considering all the use-cases and evaluating the site based on them.&nbsp; That person could communicate that information to the designers and developers, who could incorporate it into their work and produce sites that are easy to use, compatible with assistive technologies, degrade gracefully when using less capable hardware or software, etc.&nbsp; The reality is that this rarely happens.&nbsp; In my experience:</p>
<ol>
<li>Many teams (at least the ones I have experience with) have no UX designer.&nbsp; If you're lucky, you'll have a graphic designer who has some knowledge or awareness of UX concerns.&nbsp; More likely, it will be left up to the developers, who are typically not experts.&nbsp; And if you're <em>very</em> unlucky, you'll have to work with a graphic designer who is fixated on pixel-perfect fidelity to the design and is completely indifferent to the user experience.</li>
<li>Most developers are on the young side.&nbsp; (There are plenty of older developers out there, but the field has been growing for years and the new people coming in are almost all young.)&nbsp; They're also able-bodied, so they really have any conception of the physical challenges that older people can have.&nbsp; And it's hard to design for a limitation that you didn't think of and don't really understand.</li>
<li>While it's easy in principle, progressive enhancement and graceful degradation can be very tricky to actually pull off.&nbsp; The main reason is that it's&nbsp;<em>extremely</em> easy to accidentally introduce a change that doesn't play well with some browser, doesn't display properly at some resolution, or what have you.</li>
<li>And let's not forget testing.&nbsp; Even if you can build a site with progressive enhancement, proper accessibility, and attention to the needs of less technical users with little support available, you still need to test it.&nbsp; And the more considerations, use-cases, and supported configurations you have, the more your testing space expands.&nbsp; That makes it much harder and more time-consuming to make sure that all these things are&nbsp;<em>actually</em> present and working as intended for all users.</li>
</ol>
<p>So what am I trying to say here?&nbsp; I do agree with Lauren that supporting elderly users, disabled users, etc. is an important thing.&nbsp; It's a thing that, as an industry, we should do.&nbsp; But it's hard.&nbsp; And expensive (at least compared to the way most shops work now).&nbsp; That's not an excuse for not doing it - more like an explanation.</p>
<p>Every shop needs to find a balance between supporting a diversity of users and doing what they need to do within a reasonable budget of time and money.&nbsp; While it's important to think about security and support new standards, I think that in recent years the industry has probably been a little too quick to abandon old, but still widely used technologies.&nbsp; If nothing else, we should at least think more about our target user base and whether we're actually serving <em>them</em> or <em>ourselves</em> by introducing $COOL_JS_FRAMEWORK or dropping support for Internet Explorer.&nbsp; I'm sure that in many (but <em>not all</em>) cases, dropping the old stuff is the right choice, but that shouldn't be the default assumption.</p>]]></description>
      <author><![CDATA[pageer@skepticats.com (Peter Geer)]]></author>
      <pubDate>Sun, 13 Sep 2020 22:21:08 +0000</pubDate>
      <category><![CDATA[Industry]]></category>
      <category><![CDATA[Software Engineering]]></category>
      <category><![CDATA[Web]]></category>
      <guid isPermalink="true">https://linlog.skepticats.com/entries/2020/09/Old_people_and_legacy_support.php</guid>
      <comments>https://linlog.skepticats.com/entries/2020/09/13_1821/comments/</comments>
    </item>
    <item>
      <title><![CDATA[Famous companies and technology blogs]]></title>
      <link>https://linlog.skepticats.com/entries/2020/09/Famous_companies_and_technology_blogs.php</link>
      <description><![CDATA[<p>On a lighter note this weekend, here's a "funny because it's true" <a href="https://saagarjha.com/blog/2020/05/10/why-we-at-famous-company-switched-to-hyped-technology/">parody blog entry from earlier this year</a>.&nbsp; It pretty well sums up the sometimes-rampant insanity in the software industry.&nbsp; You know, where&nbsp;<em>literally every startup</em> thinks they're Facebook or Google and is going to go from zero to sixty-three quadrillion hits a day, so, well, you&nbsp;<em>have</em> to be ready for that kind of scale on day one.</p>
<p>Of course, approximately 90% of those startups will be out of business in less than five years, but hey, you never know, right?&nbsp; After all, the entire business model is "get big so you can IPO or get bought out".&nbsp; Sure, you&nbsp;<em>could</em> try to build a profitable, medium-sized business, but that's basically the same thing as failure.&nbsp; Besides, if you can attract venture capital, it's not your money you're blowing through anyway, so who cares?</p>
<p>The good news is that the industry seems to be moving away from that mindset a little bit in the last few years.&nbsp; Or, at least, things seem to be moving more toward business-to-business sales, as opposed mass-market products that have no clear business plan beyond "get huge".&nbsp; So maybe that's a good sign and this idea of copying every crazy/innovative thing that the big boys are doing will be a thing of the past soon.</p>
<p>Or maybe not.&nbsp; But I can dream.</p>]]></description>
      <author><![CDATA[pageer@skepticats.com (Peter Geer)]]></author>
      <pubDate>Sun, 06 Sep 2020 01:46:07 +0000</pubDate>
      <category><![CDATA[Industry]]></category>
      <category><![CDATA[Software Engineering]]></category>
      <category><![CDATA[Humor]]></category>
      <guid isPermalink="true">https://linlog.skepticats.com/entries/2020/09/Famous_companies_and_technology_blogs.php</guid>
      <comments>https://linlog.skepticats.com/entries/2020/09/05_2146/comments/</comments>
    </item>
  </channel>
</rss>
