It's even worse than it appears.
The vision of using GitHub to host users data that could be accessed by lots of apps, a planned community of apps that autormatically interop, where users fully own their data, will have to wait until we better understand how GitHub works with raw data.#
If you’re having a kid, consider naming him/her, Pulitzer Prize Winner. Might open some doors#
  • In April 2020 I gave Glitch a try. #
  • It's a unique free Node.js hosting service, that cuts out a lot of the complexity in creating and managing network apps. It's a Joel Spolsky project, run by Anil Dash, both people I've known for many years. Early bloggers. Joel is founder of Stack Exchange, Trello and many other projects, and now is super rich, probably a billionaire, after selling both his hits to big companies. I knew him when he was a normal ex-Microsoft NYC-based developer.#
  • Anyway, I succeeded at getting several apps running on Glitch last year, but it wasn't simple for me, an experienced Node developer. That's okay. I left them the apps there, and they continued to work. But when I tried to update my PagePark installation on Glitch to the latest version, all of a sudden I'm getting errors from Node that make no sense. Things that worked before. There have been hardly any changes in PagePark in the last year. I have no idea what the problem is. And I'm concerned it might take days to figure it out and get things working properly. And these are days I don't have. Trying to complete Drummer, my latest product release, and help users get going in the OPML ecosystem (which is why I was drawn back to Glitch in the first place).#
  • So now I'm trying to figure out what's the best use of my time. Glitch is inexpensive, but not the least expensive way to run a server, if you don't want the server to go to sleep. It takes (it seems) a minute or more for it to wake up. Perhaps that's the incentive to get you to pay. I'd understand that. But their price is $8 a month, paid annually. I can host a server on Digital Ocean for $5 a month, and it's pay as you go. If you use the server for a week you pay for a week. And while I appreciate that Glitch is trying to make it easier by factoring and editing in the browser (good things to do!), Digital Ocean makes it as easy as possible to get started using standard Linux at the command line, and their docs are excellent, the best I've seen. It's what got me to switch from AWS in the first place (their docs are impossibly bad). I've been using Digital Ocean for years now, and the other thing I like about it is that my apps continue to work, they don't break them, as apparently has happened on Glitch (which is okay, not complaining, just making a decision).#
  • But then something amazing happened. After writing this post, all of a sudden PagePark-on-Glitch is working. Fuck me. #
  • Journalism, academia, government and the corporate world all hire from the same talent pool.#
  • They go to the same universities, get their news from the same sources. Corporate people take government jobs, then go back to the corporations. The people move fluidly in and out of each bucket. #
  • So you get the same story, the reality they believe in, developed over centuries, that is radically different from the reality most other people experience. The story recited daily at CNN, MSNBC, The New Yorker, NYT. The world changes, again and again, and the story they tell is how angry this makes them, and how everyone must snap back.#
  • New technologies can make change possible, like the one we're using now. #
  • We would never have Trump if it weren't for Twitter. Imagine someone saying that sentence 20 years ago. It would pay to have that kind of imagination built into journalism, and it is available. The incumbents, like the Democratic incumbents, will have to be left behind. #
  • Today we can't rely on journalism, not because of a campaign run by Russians or Republicans or billionaires. #
  • They think the problem is that we don't see what they see, but I think it's the other way. They hold on to a normalcy that is gone. #
  • They can't see what they can't see.#
  • See the GitHub thread for this post. #
  • I've been building apps on the assumption that if you store something on GitHub, when you get the raw version of that thing, it'll be current. I was getting inconsistent results, so I decided to test that assumption, and it seems that it is not reliable storage. #
  • If you read an object immediately after writing it, you will not always get back what you wrote. It's not just a matter of waiting a second or two, sometimes it's wrong for up to 10 seconds (the delay I programmed into the test).#
  • Here's the Node app I'm running to test this. It wakes up every minute and saves a file to GitHub with the current local time string. If I reload the non-raw version of the page, it usually seems to have the current value. But if I reload the raw version of the page, it often does not have the correct value. #
  • Here are the results of the app for the first half hour.#
    • everyMinute: 1:58:13 PM, status == 200, bad#
    • everyMinute: 1:59:00 PM, status == 200, bad#
    • everyMinute: 2:00:00 PM, status == 200, bad#
    • everyMinute: 2:01:00 PM, status == 200, good#
    • everyMinute: 2:02:00 PM, status == 200, bad#
    • everyMinute: 2:03:00 PM, status == 200, bad#
    • everyMinute: 2:04:00 PM, status == 200, bad#
    • everyMinute: 2:05:00 PM, status == 200, bad#
    • everyMinute: 2:06:00 PM, status == 200, bad#
    • everyMinute: 2:07:00 PM, status == 200, good#
    • everyMinute: 2:08:00 PM, status == 200, bad#
    • everyMinute: 2:09:00 PM, status == 200, bad#
    • everyMinute: 2:10:00 PM, status == 200, bad#
    • everyMinute: 2:11:00 PM, status == 200, bad#
    • everyMinute: 2:12:00 PM, status == 200, bad#
    • everyMinute: 2:13:00 PM, status == 200, good#
    • everyMinute: 2:14:00 PM, status == 200, bad#
    • everyMinute: 2:15:00 PM, status == 200, bad#
    • everyMinute: 2:16:00 PM, status == 200, bad#
    • everyMinute: 2:17:00 PM, status == 200, bad#
    • everyMinute: 2:18:00 PM, status == 200, bad#
    • everyMinute: 2:19:00 PM, status == 200, good#
    • everyMinute: 2:20:00 PM, status == 200, bad#
    • everyMinute: 2:21:00 PM, status == 200, bad#
    • everyMinute: 2:22:00 PM, status == 200, bad#
    • everyMinute: 2:23:00 PM, status == 200, bad#
    • everyMinute: 2:24:00 PM, status == 200, bad#
    • everyMinute: 2:25:00 PM, status == 200, good#
    • everyMinute: 2:26:00 PM, status == 200, bad#
    • everyMinute: 2:27:00 PM, status == 200, bad#
    • everyMinute: 2:28:00 PM, status == 200, bad#
  • You can see that more often than not the raw value is incorrect after ten seconds. #
  • I'm leaving the app running for a while, so if you want to verify this, you can. #
  • I'll post a note in the GitHub thread when I turn the app off. #
  • Carolina Morning by Edward Hopper, 1955#

copyright 1994-2021 Dave Winer.

Last update: Wednesday June 23, 2021; 6:20 PM EDT.

You know those obnoxious sites that pop up dialogs when they think you're about to leave, asking you to subscribe to their email newsletter? Well that won't do for Scripting News readers who are a discerning lot, very loyal, but that wouldn't last long if I did rude stuff like that. So here I am at the bottom of the page quietly encouraging you to sign up for the nightly email. It's got everything from the previous day on Scripting, plus the contents of the linkblog and who knows what else we'll get in there. People really love it. I wish I had done it sooner. And every email has an unsub link so if you want to get out, you can, easily -- no questions asked, and no follow-ups. Go ahead and do it, you won't be sorry! :-)