Liveblog

October 2015
  October 10
    This is a test post
      DW Radio: Amazon smart glasses patent. (link)
      DW Radio: Famous quotes, the way a woman would have to say them during a meeting. (link)
      DW Radio: NYC on Sat night, game 1 of NLCS, low of 37. Brrrr. (link)
      Ted's radio3: TIL: In C `()` doesn't mean "no parameters", it means "unspecified parameters." For "no params" use `(void)`. (link)
      DW Radio: Bethesda Updates Fallout Shelter With Survival Mode, More. (link)

      tedchoward:
      😭

      DW Radio: Murphy, Mets beat sleeping Dodgers 3-2 to reach NLCS vs Cubs. (link)
      DW Radio: Mets beat Dodgers in Game 5, head to NLCS! (link)
      DW Radio: One long-suffering MLB team is going to win the World Series. (link)
      DW Radio: Mets Hold Off Dodgers to Advance to N.L.C.S. (link)
      DW Radio: Dropbox's New 'Paper' Is Yet Another All-in-One Work Tool. (link)
      DW Radio: This video has a chilling start, but it makes a great point about the 2nd Amendment. (link)
      DW Radio: Open House New York Offers a Citywide Adventure. (link)
      DW Radio: Why Twitter’s Dying (And What You Can Learn From It). (link)
      DW Radio: Chattanooga boosts citywide broadband capacity to 10 gigabits. (link)
      DW Radio: A.L.C.S. Preview: Toronto Blue Jays vs. Kansas City Royals. (link)
      DW Radio: I had no idea Cubs fans hate the Mets. We think the "cubbies" are kind of cute. (link)
      DW Radio: Why aren't more women in prison? (link)
      DW Radio: Podcast: Software design is not easy. (link)
      DW Radio: I forgot for a minute who Wayne Newton is. Wait I forgot again. (link)
      DW Radio: Scripting News: There's power in not needing to make money. (link)
      DW Radio: "Clubbing opponents to death with pillows and bleeding the life out of them with paper cuts." (link)
      DW Radio: Would Apple bring on a board member who doesn’t use an iPhone? (link)
      DW Radio: Tesla just transformed the Model S into a nearly driverless car. (link)

      davewiner:
      Too late for that. They lost.

      davewiner:
      I know. I'm going to write a new displayer just for this.

      DW Radio: BBC: Why the mobile web runs so slowly. (link)
      DW Radio: My friend Jeremy Zilar asked me to narrate the playoffs with podcasts as it happens. Here's the next installment. (link)

      tedchoward:
      Back to the Future called it first

      DW Radio: Of course the Cubs are favored to win the World Series, for now. (link)

      tedchoward:
      Rendering issue:

      <="" p="">

      tedchoward:
      http://scripting.com/liveblog/users/davewiner/2015/10/14/0005.html

      You know, you have friends in Texas too! 😜

      DW Radio: Berkman Center: Open Call for Fellowship Applications, Academic Year 2016-2017. (link)

      davewiner:
      Another thing you can try -- if you have a second browser on your computer, is go to 1999.io without logging in or hacking the URL of the server. You'll be able to watch a realtime view of my liveblog. I'm already blogging things there. I have to get used to working there.

      davewiner:
      Texting. Texting 1-2-3.

      DW Radio: It's Too Late to Save Over 400 U.S. Cities From Rising Seas, Scientists Say. (link)

      Twittergram:
      The boat rocks.

      I think I'm probably going to move all the files to http://1999.io/ and then point the server at that URL.

      Slackalike was a good name for a while, but it's not the right name now.

      andrewshell:
      I can see this!

      andrewshell:
      Hoopla!

      Twittergram:
      Bingo!

      tedchoward:
      And we're back!

      DW Radio: Twitter’s new executive chairman has only tweeted 11 times. (link)
      DW Radio: Andrew O’Hagan on the manifestos killers leave behind. (link)

      Twittergram:
      I'm sure there will be breakage, btw.

      Twittergram:
      Andrew and Ted, if you can see this please say something...

      Twittergram:
      This is a test.

      DW Radio: Twitter Names Omid Kordestani as Executive Chairman. (link)
      DW Radio: Mets: "We don't need to break your shortstop's leg to make you lose." (link)
      Ted's radio3: Black is white, up is down! Are we living in the bizarro universe? Plano Just Showed Dallas How to Run a City. (link)
      Ted's radio3: Four rules for neighborly sidewalks. (link)
      DW Radio: Jack Dorsey’s jargon-free firing memo, edited to remove the jargon. (link)
      DW Radio: If you're interested in the tech of publishing, this is an important post, including the things it points to. (link)
      Ted's radio3: Car-Friendly Design, Not 'Pedestrian Error,' Is to Blame in Dallas Street Deaths. (link)
      DW Radio: Scripting News: Getting in sync with Medium. (link)
      DW Radio: Marco is ready for Big Money to come to podcasting. I have doubts. I think the market is over-producing. (link)
      DW Radio: Scripting News: Payback at CitiField. #podcast (link)
      DW Radio: Twitter to Cut More Than 300 Jobs. (link)
      DW Radio: Travis d’Arnaud Leads a Rally and Breaks Out of a Slump. (link)
      DW Radio: Mets say they won’t plunk Chase Utley, who isn’t in Game 3 lineup. (link)
      DW Radio: De Blasio: Chase Utley deserves suspension for dirty slide. (link)
      DW Radio: WNYC to Open New Podcast Division. (link)
      DW Radio: Scripting News: It's still "Sources go direct" (link)
      Ted's radio3: "Why would a school board member lie to us?" @EricCeleste drops another truth bomb on DISD. (link)
      DW Radio: My thoughts on the Mets-Dodgers series. I'm going to the game tonight at CitiField. (link)
      DW Radio: Jews were a small minority in Germany before the Holocaust. (link)
      DW Radio: Harper: In NLDS Game 3, Mets' Harvey can right this wrong. (link)
      DW Radio: Chase Utley appeal on fast track. (No honor.) (link)
      DW Radio: Meaningless Games Matter to a Healing Carmelo Anthony. (link)

      davewiner:
      Texting one two three.

      DW Radio: Would-be Waffle House robber dies after having been shot by customer. (link)
      DW Radio: "My goal is to keep the number of reporters really high at the New York Times." (link)
      When I write about baseball here, and I've been doing it since the start, it's always meant to be light-hearted, fun, playful, humorous, philosophical, soulful, traditional and loving. That's the way I feel about baseball. Look at Mr Met in the right margin. That corny dude perfectly reflects the way I feel about the sport.
      But last night it got serious. What happened at second base in the seventh inning not only changed the outcome, but it made it no longer a game. It took the focus off pitching and hitting and base-running, which is where it should have been, and threw it into a discussion of payback.
      The Mets should not have to be in the position they are in. MLB must make the Dodgers pay for what they did. As a Mets fan, I would like, in a perfect world to have the game end at that play, and the Mets go into tomorrow night's game up 2-0. I'll settle for Chase Utley being suspended for the rest of the season. Otherwise you're going to have an ugly game on Monday and Tuesday, and on and on. It won't end with last night's game.
      It's all been said elsewhere. That wasn't a slide, it was a tackle. That play is prohibited in football because it's so dangerous, and in football the players wear helmets and shoulder pads to protect their head and neck. It could have actually been much worse than a broken leg. And reality-check -- there are almost never broken bones in baseball. It isn't that kind of sport.
      One more thing, to Dodgers fans, if my team pulled a bullshit stunt like that, they wouldn't be my team anymore. Honor is more important than winning. And in the end it is just a sport.
August 2015
  August 31
    Another try with the Braintrust
      davewiner: Hmmm
      davewiner: I just changed the name of braintrust/server.js to braintrust/braintrust.js. This means that when we do a forever list, it shows the name of the app, not something so generic (which is kind of useless).
      davewiner: Testes testes.
      davewiner: When things like this happen I cackle like a fool. ;-)
      davewiner: And it did.
      davewiner: The braintrust server app is looking for updates on the channel named "braintrust" -- this is the way it was set up to work with Slack. If we want the exact same app to work with this app, it must use the same channel name. So I added a setting in config.json that allows you to set the default channel name. In theory, this update should appear on the liveblog as a result. Let's see!
      radio3.io: These photos will change how the world sees the Syrian refugee crisis. (link)
      radio3.io: Why blogging still matters. (link)
      radio3.io: Slack cofounder: 'We didn't have a sense of the scale it could grow to'. (link)
      radio3.io: How One Architect Is Trying to Make Post-Katrina New Orleans Look More Like Amsterdam. (link)
      radio3.io: It's "Grateful Dead Night" in St Louis right now. (link)
      radio3.io: I went to the Mets game this evening where we saw an inside-the-park home run. A very rare thing. (link)
      radio3.io: NYU Local: Confessions Of A Drug Delivery Boy. (link)
      radio3.io: Scientists discover that the world contains dramatically more trees than previously thought. (link)
      radio3.io: Ask HN: How much wealth do I need to retire at 65? (link)
      radio3.io: Teen Boy Will Be Charged As Adult For Having Naked Pics of a Minor: Himself. (link)
      radio3.io: Before the Pope’s Visit, a 180-Foot-Tall Francis Arrives in Midtown. (link)
      radio3.io: I spent the last 1.5 weeks working on a very simple chat app that implements a subset of the Slack API. (link)
      radio3.io: ‘The reaction has been bananas,’ says Amber Jamieson, who went topless to report on desnudas. (link)
      radio3.io: ‘Everest’ Review: Baltasar Kormakur Re-Creates the 1996 Climbing Disaster. (link)
      davewiner: Watch out this thing kind of works.
      radio3.io: Wired Binge-Watching Guide: The Americans. (link)
      radio3.io: Teen kills himself while taking a selfie with a gun. (link)
      radio3.io: Acer unveils the Revo Build: A tiny, modular, stackable PC. (link)
      radio3.io: Mr. Colbert is approaching his own transformative moment. (link)
      davewiner: greetings from the hall of montezuma.
      davewiner: Now I don't get it.
      davewiner: liveblog: hmmm
      davewiner: liveblog: it worked, now lets see if the count of calls goes up by 2.
      davewiner: Let's see if the stats gathering works now.
      davewiner: braintrust: it looks like the problem was fixed by updating utils.js?
      davewiner: liveblog: test 3
      davewiner: liveblog: Do you know the way to San Jose?
      davewiner: liveblog: Do you know the way to San Jose?
      davewiner: braintrust: hooray for hollywood
      davewiner: braintrust: hooray for hollywood
      davewiner: try it again
      davewiner: Hello dolly
      davewiner: The Mets play the Phillies again.
      davewiner: This does not have a trigger word at the beginning
      radio3.io: Could the sharing economy bring back hitchhiking? (link)
      radio3.io: New study suggests sex hormones change the way we process language. (link)
      radio3.io: Google’s Driverless Cars Run Into Problem: Cars With Drivers. (link)
      radio3.io: Ashley Madison Code Shows More Women, and More Bots. (link)
      davewiner: Lalalalalalala la la la la la la.
      davewiner: Hasn't hurt me none
      davewiner: And though my lack of education...
      davewiner: Hello from Hollywoo.
      radio3.io: Someday no one will ask you what Kodachrome was. (link)
      radio3.io: Scripting News: We're still somewhat in the Information Dark Ages. (link)
      radio3.io: The naked truth about Germany: Clothing is optional. (link)
      radio3.io: PayPal Launches PayPal.Me, A Simpler Way To Request Money Using Your Own Personalized URL. (link)
      radio3.io: Apple Exploring Original Programming Move, Could Compete with Netflix. (link)
      davewiner: Is it still working (just made a change to PagePark).
      radio3.io: It has become routine to describe Ramos as a kind of Mexican-American Walter Cronkite. (link)
      davewiner: Hey I have the pathway built. It's still rough, boulders in the way. And no rails so you can fall off the mountain. But it's all working. And it's really fast. ;-)
      davewiner: So mama don't take my Kodachrome away!
      davewiner: I love to a photograph.
      davewiner: I got a Nikon camera
      davewiner: Makes you think all the world ' s a sunny day.
      davewiner: They give us the greens of summers.
      davewiner: They give us those nice bright colors.
      davewiner: Kodachrome
      davewiner: I can read the writing on the wall.
      davewiner: Hooray for Hollywoo
  August 30
    Trouble with Dropbox
      I am unable to log on through the web browser, or through "Fargo".
      Haven't checked all the other places I hook into Dropbox.
  August 29
    Useful code abstraction
      1. Factoring is a major part of what I do. Most of the messes I create are because I did too little factoring, not enough.
      2. Having large numbers of programmers working in exactly the same environment. It means there are no limits to the way we can work together. Apple II, IBM PC, Mac all developed grooves like this.
      3. Too many frameworks. I wish more people worked in "straight" JavaScript. I would be able to understand more code.
      4.
  August 28
    Note to people who read my Rivers
      There are a number of people who are regular readers of my rivers, for those people -- I had to do a reset on the river server. So each of the panels are refilling. For some of them you'll hardly notice, because they refill so quickly. But a few will take a while, notably movies and podcasts.
  August 17
    It's a new week on the Braintrust
      davewiner: Yes it does still work.
      davewiner: Just checking to see if this still works.
      davewiner: That last item is the idea.
      davewiner: It’s the obvious next step. They’ve established a strong standard for a new kind of communication. If I were doing a new product that supported these kinds of hooks, I’d want it to be 100 percent compatible with Slack, so it could “run” the same software.
      davewiner: The other half is implementing the Slack side of both these interfaces, so one can create Slack-compatible environments.
      davewiner: Outgoing: Posts from the <#C08R9ULLT> channel show up on .
      davewiner: Incoming: The connection from Radio3 to Slack, so my links show up in <#C051X484P>.
      davewiner: I started a fresh post for a new week in the braintrust.
      davewiner: Scratch that, it did make it into the liveblog. It just took Slack a long time to get around to calling the webhook.
      davewiner: For some reason my message didn���t make it into the liveblog.
      davewiner: Another week in the braintrust.
  August 10
    Braintrust test
      We discuss the Mets, as they win again
        davewiner: Mets win
        davewiner: More runs. 12-3
        davewiner: Now the Mets are rubbing it in.
        ted: I’ve apparently trained myself to try to scroll on everything
        ted: I’m not saying that’s a good thing
        ted: hmm… I have the default scroll settings on my Mac which means I almost never see scroll bars
        davewiner: there wasn’t a scroll bar there, now there is
        davewiner: weird ux
        ted: scroll down
        davewiner: So I see the plays for the 1st inning. How to get to the third?
        davewiner: I see
        davewiner: E.g. Murphy got a single, Uribe walked, Johnson doubled scoring both.
        davewiner: Tell me how the Mets scored their 9 runs
        ted: right hand side, click plays
        davewiner: That’s not play-by-play.
        ted: Is that not this?
        davewiner: heh
        davewiner: 9-3
        davewiner: Score is 8-3
        davewiner: I looked away for a couple of minutes and the Mets scored two more runs.
        chuck: ah.
        davewiner: but he���s had two doubles
        davewiner: solo home run
        davewiner: no no
        chuck: bases loaded homer?
        davewiner: Kelly Johnson drove in 3 runs
        davewiner: 7-3 Mets up
        davewiner: home run!
        davewiner: burning in a new version of river4
        davewiner: i’m watching the game on my computer
        jeremyzilar: trying to find it
        jeremyzilar: does the play by play in text form.... there is a super buried link here
        chuck: yep
        davewiner: assholes
        davewiner: aha
        chuck: they want you in the parks or watching tv
        davewiner: It’s the game we went to on Tuesday.
        chuck: I think MLB crawls up the ass of people who try to do that in real time. They claim to own the stats produced by MLB games, so it makes it problematic to report on them in real time if they don’t want you to.
        chuck: That���s after the fact right?
        davewiner:
        davewiner: Just found it.
        davewiner: Wait a minute
        davewiner: They’re winning 6-3 in the 5th inning. But how did they score the runs? No clue.
        davewiner: The Mets are playing right now, a rare weekday day game.
        davewiner: Here’s something that doesn’t seem to exist. A site that has the play-by-play for current MLB games.
        chuck: no reason you can’t run 2 of these streams, one for copy and one for media assets
        jeremyzilar: Like, if I am live blogging a baseball game, and I post to instagram with the <#C08R9ULLT> hashtag, it would be great to pull that photo into the live blog. For that matter, if I post to Twitter or Facebook and use that hashtag, it would be great to pull in those tweets or Facebook posts.
        jeremyzilar: outside of e-mail, it would be great to pull in all photos from a user using a hashtag.
        jeremyzilar: E-mail (on iPhone at least) is the only background connection that will reliably keep trying to send, regardless of the fact that you may be going in and out of signal range. In a breaking new situation, you want the peace of mind to know that the item you sent will be sent the next time it is possible.
        jeremyzilar: The most reliable way for someone on the ground (like a reporter) to get a photo back to the newsroom is to e-mail it from their phone
        jeremyzilar: So if I were at an event, and I were one of your live bloggers, you'd also want an automated way to pull in photos — _fast_.
        davewiner: It could even be something the reader could do.
        davewiner: Sure that makes sense.
        chuck: Dave, I wasn’t thinking about it just from a chat transcript perspective. As an editor who might be preparing a more structured presentation of some recorded dialog, having to do it “upside down” is challenging. It might be interesting to have the option to just invert the whole outline after it is recorded.
        ted: I have no idea
        davewiner: Ted there was a movie I think where “turn that frown upside down” was a big line. Can’t think of it. Can you?
        davewiner: If you're a patient it's super important to connect with the staff at the doctor's office on a personal level.
        davewiner: Old style phones could be cradled betw shoulder and ear so you could type while talking. No can do with cell phone.
        davewiner: heh :wink:
        ted: turn that frown upside down! :grinning:
        davewiner: everyone’s a critic :disappointed:
        ted: bummer
        davewiner: My software isn’t watching for edits.
        davewiner: Ted, it won't
        ted: lets see if I can edit something and have it propagate. I’ll wait for this to appear on liveblog
        davewiner: You know the Mets are playing a day game today. I’m thinking about playing hooky. :wink:
        davewiner: JZ, what a beautiful day in NY.
        davewiner: BTW, did you know you can edit what you post to slack after the fact? I have to look to see if there is a webhook for that (I bet there is).
        davewiner: Chat transcripts are nothing new. There probably already are lots of ways of getting Slack to do them? If not, geez, maybe I should just go straight to that. I can’t imagine they don’t have it.
        davewiner: Just getting started here..
        davewiner: Chuck, I don’t know.
        chuck: Will you have an option to have it spool out in chronological order, too? That’s probably easier to read after the fact, while reverse is easier to read in real time
      NakedJen shows up
        davewiner: Jen, there’s no limit to the number of people. It’s not really about the number of people. Like you said, we could do the play by play of a Knicks game. But I wouldn’t just post a chat transcript, that’s been done before. I want to have an editor between us and the published page. That’s why the text flows through my outliner. Where the editor can organize it any way he or she wants.
        nakedjen: It truly is magnificent. I like the simplicity. How many people does it support at one time?!
        nakedjen: Ha!
        nakedjen: Or even things like Knicks Games when I can't be sitting there on the couch with you.
        davewiner: yes, it came from an idea from the NYT, they used slack this way during the repub debate
        nakedjen: During political debates. Or finale television series.
        davewiner: ?
        nakedjen: You know when this will be especially fun?!?
        nakedjen: I love this! And every body! Of course. I wasn't just saying that.
        nakedjen: This is magnificent!
        nakedjen: oh look at that? and it does!!
        davewiner: Jen and it does
        nakedjen: So if I post here that I love every body it should appear on the live blog, right?
      Andrew Shell tries an experiment
        davewiner: Andrew, what version of are you running? It should be 0.54b.
        davewiner: I’m in the middle of something right now, I’ll have a look in a few minutes.
        andrewshell: I’m seeing it on Dave’s post, but nothing on my liveblog.
        andrewshell: I have liveblog open. Let’s see what happens.
        davewiner: try again in a minute
        davewiner: hold on
        davewiner: oh that’s not good
        andrewshell: false
        andrewshell:
        andrewshell: When I go to it says "Can't open the editor because there was an error connecting to the server, or the user is not whitelisted."
        davewiner: try launching and see what happens when you post something here.
        davewiner: aha
        andrewshell: On your liveblog
        andrewshell: No, it’s that earlier my message didn’t go through. So I tried again and it worked
        davewiner: I forgot that it would work on ANY copy of , not just mine.
        davewiner: Oh did you hook up? :wink:
        andrewshell: It worked
        davewiner: Did something click for you Andrew?
        andrewshell: As Dave might say… Bing!
        andrewshell: Let���s try this again!
      JZ checks in
        davewiner: But it was fun to write. Relaxing. And I needed some relaxation at the time. :wink:
        davewiner: The “stack” may sound complex, but in its implementation it’s super lightweight. JZ, as I told you yesterday, the way the Slack people implemented it is exactly the way I needed them to. The only thing they could have done is let me make a long-poll request, so I don’t need the little Node app as a go-between.
        davewiner: Hello there!
        davewiner: All the metadata is attached to the headline as attributes, and is saved in the OPML. I can then edit the outline any way I want. This is essential. And to JZ, there’s no copy/paste by the editor. That step is eliminated. The pasting is done by the software.
        davewiner: I should explain how this works. 1. I create an outgoing webhook on this channel, that sends each message to a Node app running on one of my servers in the EC2 cloud. 2. That server implements a long-poll HTTP request, like the function supported by nodeStorage, that lets a remote app be notified immediately when the hook is called. 3. I call that long-poll handler from , and when a message comes in, it just inserts it at the cursor position in the current outline.
        davewiner: Andrew’s post didn’t make it through for some reason. Hmmm.
        jeremyzilar: Hello friends!
      Stuff that was entered before Ted came here
        ted: so I see all the updates that come through
        davewiner: aha
        ted: I use Slack at work, so I have the slack app open all day
        davewiner: no
        ted: are we sure they know about it?
        davewiner: and marco marcofabbri
        davewiner: how can we get andrewshell to try it
        davewiner: hey ted glad you checked this out
        ted: affirmative!
        ted: does this work for me?
        chuck: Have fun at the game. Hope the doc appt is tame. Gotta go get coffee!
        davewiner: nice
        chuck: I’m in Ft. Lauderdale to put the pirate system on some cargo boats today. Not as fun as a baseball game, but still an interesting peek into stuff normal folks don’t get to see
        davewiner: good! I will need test cases, things that really need to be group-blogged
        chuck: Well, when you get to it, that will be the killer feature. It’s already cool.
        davewiner: assuming it doesn’t get rained out
        davewiner: i can’t do it today— I have a big doctor appointment, and then i’m going to the mets game tonight
        davewiner: we’ll have to look into this
        davewiner: I don’t think they called me
        davewiner: there’s nothing in the outline
        davewiner: OK back
        chuck: k
        davewiner: hold on don’t post anything for a moment.
        chuck: heh. what does that do in the outline?
        davewiner: Oh I see what you’re doing
        davewiner: my old friend
        davewiner: They don’t use it themselves.
        davewiner: Haha. If the Twitter guys had a vision it wouldn’t be so lost in space.
        chuck: yep, chase their own vision, not a Twitter hallucination
        davewiner: Rather than giving them any ideas.
        davewiner: If I were them I’d just let Twitter burn themselves up.
        chuck: There is a lot of hidden value in the Slack stack. It *could* do what Twitter missed if that is on their roadmap
        davewiner: No bullshit.
        davewiner: And the code to do this was just a joy to write.
        davewiner: I got the idea as I was about to write yet another “This is what Twitter should do” piece. I realized after outlining it that Slack had already done it.
        davewiner: Has none of the problems of Twitter.
        davewiner: Slack is a good editorial surface.
        chuck: how does it handle rich media? Can I paste a picture yet?
        davewiner: I can “navigate” in the background without the human user knowing it.
        chuck: This is really cool though. It lets Slack be used as a private room to blog/podcast stuff to a private space.
        davewiner: I now am a more sophisticated JS programmer than I used to be.
        davewiner: It’ll be easier than that
        chuck: Might have to add a second cursor of sorts (or add an attribute on the node that is currently receiving updates or something)
        davewiner: I wanted to get a little experience using it before attempting that.
        davewiner: I haven’t programmed the part about how it decides where to put the new stuff.
        davewiner: It throws the whole thing off
        davewiner: If I move the cursor
        chuck: heh. just pointing it out in case...
        chuck: Hmm. My last post didn’t show up though.
        davewiner: Let me show you what I can do from my "editorial workstation."
        davewiner: Yeah. I got the idea from the NYT. How about that. Might be the first time.
        davewiner: The important thing is is that it’s just an outline on my desktop that I can edit.
        davewiner: Glad you like it
        chuck: This is pretty killer!
        davewiner: Chuck you just have to type something here and it should show up on the page.
      Stuff that was entered before Chuck
        davewiner: I warned you about that
        chuck: oh! the outline edit is cool
        davewiner: That’s a glitch
        chuck: Unless you edited it :wink:
        davewiner: Before the net, we'd say what we think, and not worry too much about the consequences, because there weren't any. But lately, discourse has been like the great movie The Lives of Others about how hard it was to say anything in East Germany before the wall came down. We all live in that world now. We're all subject to the same rules as Presidential candidates in the US, and you know what -- it sucks! I'm not running for anything. Why should I give up my ability to speak? Why should your fake offense prevent anyone from saying what they think? It shouldn't.
        davewiner: in my next coding session i hope to make this more bulletproof
        davewiner: so if i were using the liveoutliner while typing into this window, the stuff would go in the wrong place.
        davewiner: it’s a little ad hoc
        davewiner: I have a nice thing working here
        davewiner:
        davewiner: test5
        davewiner: test4
        davewiner: test3
        davewiner: test2
        davewiner: test1
July 2015
  July 15
    Fascinating thread on Twitter
      There's a thread on Twitter with lots of people cc'd and because of the 140 char limit, you basically have to say what you have to say in 60 chars or less, because most of the space is taken up with people's handles. So it's micro-snorts and grunts, instead of the usual full-size snorts and grunts. A few comments here with more room to breathe. Whew.
      When I'm talking about running a server I'm not thinking of the same servers you and I as techies run. I'm thinking of making that a lot easier. I know it can be done. In the early days of the web, we had servers on the Mac that were just apps you launched. They served content from a folder on port 80. They used normal dialogs for configuration. They were fully programmable, but very useful without programming. Setting one of these things up was a lot easier than setting up Dropbox, for example, today.
      If you programmers still don't want users running servers, then I propose you look at your thinking a bit, and wonder if you're perhaps a member of the computing "priesthood," trying to protect what you do from the unwashed masses? If so, you're on the wrong side of history, imho. The inexorable process of tech is taking things you used to need to be a wizard to do, and making them easy for normal people.
      If you had told my grad school room-mates that someday everyone would have not just one computer, but lots of them, and we'd carry them around in our pockets, they would have thought you were nuts. That's the way techies are, often -- limited imaginations. But reality is a lot more weird than you think, over time.
  July 12
    This is a test
      11
      22
      33
      44
      55
  July 11
    Why recommend Stewart for Twitter?
      Yesterday I posted an idea for Twitter that they merge with Slack, and have Stewart Butterfield, their founder, run the whole thing. Shortly after posting it, Stewart was tagged by another Twitter user (I don't like to do that myself, because I don't like being dragged into discussions, you tend to be cc'd on all replies and that goes on indefinitely, and Stewart didn't ask for this), and replied that he was busy. Not surprising. I didn't intend it as a literal suggestion, I wanted to show that there was another choice for Twitter, that perhaps wasn't being given enough thought.
      There seem to be two possible courses:
        1. Follow the direction dictated by "the street" which means the product doesn't change. Basically go down the path that was pioneered by Facebook. Twitter gradually turns into Facebook.
        2. Or go another fundamentally different way. Add long-needed features, clean up the UI, create new API endpoints, so the product can be a more effective platform. If the new leader of Twitter was very bold, he or she might try turning Twitter into a protocol and encourage federation, on the theory that a flotilla of competitors is what Facebook actually needs. ;-)
      The two courses suggest completely different kinds of leaders.
      If you go with #1, you might as well hire back Dick Costolo. He's probably available. And he has experience trying to lead the company in the direction the street appears to want Twitter to go.
      But the second course, which would be one you'd want someone like Butterfield to lead, suggests hiring someone who has deep product experience in tech, and might see how to evolve the current Twitter product into an exciting platform. I think the potential is there. Starting from a base of 300 million users is not nothing! :-)
      I don't go to tech industry parties these days, so I can't tell you who might be floating around in the valley who has wacky ideas and yearns to drive something big into some new uncharted territory.
      And I have no idea if such a transition could work if Twitter is a public company. Maybe this could only happen as part of an acquisition, effectively taking Twitter private.
  July 10
    An idea for Twitter
      Merge with Slack, and let Stewart Butterfield run the whole thing.
      He and his team clearly know how to evolve this stuff.
  July 9
    How to think about Microsoft Band and RSS
      This piece moved to Scripting News.
  July 8
    I finally have a Thunderbolt drive
      I got the LaCie 1TB. I did a couple of A-B experiments to see how much faster it is.
      I copied 10 files varying in size from 245MB to 292MB.
        Copying from the internal drive on my iMac..
        1. To the Thunderbolt drive: 31 seconds.
        2. To a USB 3.0 drive: 44 seconds.
      I copied a 6.2GB file.
        1. To the Thunderbolt drive: 1 minute and 1 second.
        2. To a USB 3.0 drive: 1 minute 43 seconds.
      It's faster. ;-)
    Glympse is still the coolest technology
      I have a friend on the Amtrak from DC to NY this morning. At my request he sent a Glympse before he left. So I can watch, in real time, as he travels up the coast.
      Here's a screen shot, but understand the difference, on my computer, this is in motion.
      Where does this go? It's easy to imagine having connections made automatically by scheduling software. It could factor in traffic, weather, historical data, and keep me informed at a higher level, of Chuck's ETA. The software could be written today, the challenge is working together, as it so often is.
      Glympse deserves to be more famous. Pass it on. (I don't own any stock, I'm just a fan.)
  July 7
    Q&A
      You've said on Twitter that "it would make such a huge difference over time if journalists weren't so controlled by tech." Could you explain what you mean by that?
        You know the old saying that freedom of the press is guaranteed only to those who own one? I know it's cute, but it's also true. Journalism depends on tech to provide a level playing field, but when has tech ever promised to provide one? That's been implicit in the complaints about Facebook's algorithm. Facebook decides what people need to see, and they're not even willing to tell anyone how they decide -- and that's their right, just as news organizations don't tell us how they decide what gets coverage and what doesn't.
        So as tech advances into news, they will do more deciding about who-sees-what, and they'll do it with one thing in mind -- maximizing the growth and profit of their businesses, not in the interests of news orgs, or any higher principles. So it's very simple. If you want to be in the news business, you also have to be in the distribution business. And these days that's called "tech."
      You've talked about journalists creating running their own servers and their own CMS. I'm sure a lot of people aren't quite sure how to do this, let alone the benefits. Could you detail how journalisms could change if journalists could spin up their own servers?
        The main reason is to remove the mystique and to encourage creative thinking. I wouldn't recommend it if it weren't a lot easier than most people think it is. And I want to make it even easier, and we can only do that with brave users who step up and give it a try, and help us see where they get in trouble, so we can iterate toward making it easier. Developing software is very much an interactive process. And when we learn, we can make stuff better. Repeat as necessary.
        It encourages creative thinking because once you know what's possible, you'll get new ideas you wouldn't otherwise get. How many times, when you come back to a trip to a foreign country, do you have fantastic ideas for new things you could do? Stepping outside your comfort zone in tech is like that too.
        There are methods to creativity, and this is an important one. Go on intellectual adventures. You come back with new eyes.
        And with all the talk about learning to "code" -- learning to run a server is a lot easier, and has immediate benefits. And it's a gateway drug for coding. Once you have a server running you'll find tasks that you want to automate, by writing little bits of code. It'll ground your development as a programmer in real-world problems, right from the start. I've been doing this for a long time, and I'm always learning, because first I create the problem, then I solve it. So running a server is a great first step toward becoming more technically powerful.
      How would what they create on their own servers be discovered? Part of what I'm seeing doing in the Mediums and Reddits of the world is act as the discovery vehicle.
        You hear this a lot about Medium, and I'm not convinced it's anything but good marketing on their part.
        Regardless, people discover news writing on Twitter and Facebook much more than they do on Medium. I'd focus on developing systems that do what they do first, and what they do is not hard! Loop back to the first question. This is why we must have independent distribution systems. Maybe something like Hulu was for TV, for news.
        When you trust Medium to do the distribution for you, your stuff will go where Medium wants it to go, not where you want it to go.
      If you could start a journalism publication or product from scratch, what would it look like?
        Have a look at Podcatch or Techblast, two sites that I run that provide good podcast listening, and comprehensive tech news. That's what news systems will look like in the future. Every news org should start with a "river" like those sites. An aggregation of news sources you consider authoritative. Then go from there.
        When you see an interesting story develop, start a topic page, and link developing news into those pages. I think in this sense Circa was onto something. Each story creates its own news site. How that's formatted, and how people use that, we have to iterate over the design, to find patterns that work.
      You work on a lot of projects that help people aggregate information or surface information. What tools have you developed that journalists could use in their own work?
        There are so many! :-)
        Radio3 is great for posting links to Twitter, Facebook and an RSS feed. This exemplifies my philosophy of news, today. Twitter and Facebook exist now and people want to get the news there. So we must provide it. But we must also create our own independent web presence so new non-controlled distributions systems can come about. That's why it's also important to flow your linkblog to RSS.
        Happy Friends is a mailbox-style reader for Twitter. I use it to keep up with certain important people whose tweets I don't want to miss, like you Melody! :-) It's such a simple idea, and incredibly useful.
        Fargo is a publishing system based on outlines. Each blog is an outline, with stories hanging off branches of the structure. It has a full object-oriented CMS. If you used my blogging systems, Radio, Manila or Frontier, you'll immediately understand Fargo. I love working with outliners, and I'm going to have more web-writing tools that work with outlines, in the future.
        PagePark is a simple Node-based web server. If you want to learn how to set up and run a server, it doesn't get any easier than PagePark. But it is GitHub project so it's not exactly an end-user product.
        River4 is a river-of-news aggregator. Like PagePark, it's a server app, and requires server-running skills. But it's amazing how powerful it is to have your own river, with your news sources accumulating stories for you to share with your team and followers.
        All these products are free to use. PagePark and River4 are open source, MIT License.
      Why is it important to publish simultaneously to multiple platforms?
        Today I publish to Twitter, Facebook and the open web.
        Why? People are on Twitter and Facebook and want links. It's that simple.
        I post to the open web because that allows me to build flows with other people who participate in the open web. I don't have that kind of access to the flows of Twitter and Facebook. They pretty much have a monopoly on innovation on their platforms. That's the way it works. If I want to continue to be active as a developer, I have to feed the web, and I depend on other people to do the same. If this ever stops, everyone who doesn't work for Twitter and Facebook will be fairly impotent, imho.
        As Benjamin Franklin said, on the signing of the Declaration of Independence, "We must, indeed, all hang together, or assuredly we shall all hang separately." He would have understood the open web, that's for sure.
      I've written in the past about my fears about archiving and private social media networks. What are your thoughts on this?
        OMG. We are totally blowing it.
        Here's how bad the situation is. A few days or weeks after I die, and unfortunately that day will come, all of what I've published to the web will disappear. Why? Unless someone pays my hosting fees, Amazon, Rackspace and a few other vendors will close my accounts. Maybe they'll even delete all the files. Any dynamic content I have will certainly disappear.
        And, as far as I know, there's nothing I can do now to prepare for this.
        And I am a developer. It's my business to understand how the technology works. And I'm telling you it doesn't.
        A couple of disclaimers:
          1. I know about archive.org. It maintains a backup copy of much of the content on the web. It's great. But it's not the same thing as a web presence.
          2. The Library of Congress has been archiving all tweets, so we know a permanent record is being created there. Yet we still have no way to create a long-living link to a tweet. If Twitter goes away someday, a large piece of the web will disappear.
        It's no longer just a theory that platforms like Medium or Twitter or even Facebook, do go away. I wouldn't trust the longevity of anything you post on those sites.
        I've been writing about what I call future-safe archives for quite some time. There are solutions, and we should be working on them. An important part of what news does is maintain an archive past news.
      You spent the past weekend working on an open source version of Medium. What are the benefits and costs of publishing on this platform vs. Medium.
        I've spent a lot more time on this than one weekend, and the service doesn't exist yet. We do not yet have an open source Medium alternative. We're close. The software itself is fairly trivial. We just need to have the will to do it, and so far, it has not come together. However, I'm optimistic that it will.
        Why do this? Because Medium is a silo. Smart people who imho should know better are posting good writing there, stuff that should be available 10, 20 or 100 years from now, with no promise that any of it will exist for any period of time. I've seen open source projects post official docs on Medium. This is not good, or even acceptable. Incorporating a closed platform into open source projects, when one could be building on open platforms, that's not okay.
        But there is no good open alternative to Medium. There are bits and pieces. I'm trying to get them to come together in a product that people will find as easy to use and beautiful as Medium, and open. They are entitled to the best, without any sacrifice of access or longevity of the content.
      Who's doing it right in journalism? Why?
        There are certainly news orgs that are doing inspiring, courageous work, exploring new ideas that seem to have potential. But no one has put it all together yet in a way that makes me feel that they have got the full vision of where news is going.
        To do it right, they'd have to build around the people who we used to think of as sources. In the past, a reporter would call a few of them to make a story, but today, when they want to comment, the sources just get on Twitter and say what they think. So the reporting process is flipped around. Journalism has adjusted, but how good can journalism be when the system is as limited as Twitter is? Maybe that's why today's news is so coarse. How much subtlety can you communicate in 140 chars? Twitter is basically a medium of grunts and snorts. And Facebook, without the 140 char limit, has got its own oddities.
        These are inadequate systems, so it's hard to put together a real news system in 2015. The foundations just aren't there. But creating the foundations, that's something the news industry should be excited about! The ways that tech is weak are exactly the strong points of journalism.
        With those caveats, I love Quartz. I love everything about what they say about what they do, and how they put their ideas into practice. They're young and they're willing to risk, and they like to think and play. I find all that very refreshing.
        Others worth mentioning: Gawker has put together the best public news system around. But they hire aggressive reporters, and that's fine I guess, but it makes it impossible to build any trust with them. They just go crazy at random times. (This is true of a lot of news orgs, btw, not just Gawker.)
        And believe it or not, I like Buzzfeed. I think they're making a huge bet in tech news, and there's a vacuum. Tech news is ripe for disruption.
      If a journalist wanted to learn more about creating servers or spinning up their own products, where would you suggest they start? I'm thinking of smaller newsrooms, resource-strapped newsrooms, and newsrooms with very small staffs. If they can't spin up a server, what's a good first step to take?
        That's a very good question!
        And there is no answer as far as I know.
        We need to work on this Melody.
        Let's create a flow of information for these exact organizations. The ones who are inquisitive, ready to put it all out there, who feel inspired by the opportunities in front of them, but don't know how to get started. Let's treat that exact problem as a product definition, and let's work together to solve it. I'm ready. Let's do it.
  July 2
    Knicks free-agency liveblog
      Fri July 3, 8:32AM
        This qualifies as good news. The Knicks apparently have a tentative deal with Robin Lopez, big man of the Portland Trail Blazers. They're waiting to see if they have a chance with De Andre Jordan. Lopez is a good big guy. Not an all-star.
        However its Lopez who's waiting, not the Knicks. Hmm.
      Thurs July 2, 12:54PM
        Knicks sign Arron Afflalo. At least free agency won't be a total bust. ;-)
      Thurs July 2, 12:15PM
        Please Jeremy Lin do not go back to the Knicks.
        At least as long as Melo is there.
        I don't think there's much chance PJ wants to get Lin though.
        Hint: Brooklyn would be an inspired choice. Deron must have some market value.
      Thurs July 2, 11:50AM
        Greg Monroe turns down the Knicks, goes with Bucks. He wanted to be on a ready-to-win team where he was the missing piece. "The Knicks have meetings Thursday with DeAndre Jordan and LaMarcus Aldridge in Los Angeles. The team met with Robin Lopez on Wednesday night, and is now their most realistic big-man target."
      What is this?
        I'm going to try an experiment here. Mixing links to stories about the deals the Knicks have done or missed in free-agency. The future of the team is very fluid right now, and interesting.
  July 1
    I do not want to read your mind. Please!
      Yesterday Mark Zuckerberg said that someday he thought computer networks would be connected right into our brains and we would communicate to our friends through thoughts.
      I predict if that day comes, we will have no friends, in short order. I've had the experience where I relaxed so much that I just blurted out a weird thought that was in my head. It always ends badly. You have to have those filters. Otherwise we'd all hate each other all the time.
      I suspect that by the time such a thing is technically possible people will value the opposite. Give me a feature that puts up a nice wall between me and the random thoughts of everyone else. I already feel that way sometimes, on Twitter and Facebook, and people still (mostly) have to type their ideas through their fingers to get into other people's minds.
June 2015
  June 30
    On ageism
      Interesting piece, well worth a read.
      However I don't think that ageism is caused by resentment, rather it's two separate things.
        1. Fear of aging. When a young person looks at an older person they're confronted with their own mortality. When you're young, you try to live in a bubble of immortality. You try not to be confronted with ageing. And to a great extent, you can do it. But if you have older people around, every day, it's impossible not to see it. And there goes the bubble! ;-)
        2. A desire for independence. The older person is a symbol of their parents. And many people, maybe most, want to escape dependence on parents. Maybe in that way the author is right. But it's very specific. When I had older people around in my first company they were always cast in parental roles. And because I had power to form the relationships (it was my company), I was able to make things work in ways I was unable to influence my actual parents.
      What he says about people coming into their own as they age is very true. There is so much I can contribute to my art, software development, that I would not have been able to contribute earlier.
      My solution is to do it anyway, whether or not I have the approval or support of younger people. I am not nearly as effective as I would be if they would work with me, but you also learn, as you get older, to accept other people's power. I can't make them do anything they don't want to do. So I don't try.
      However, I hope when they attain the maturity that I have, they will find my work and will find it useful. And in that way, we'll work together. Not in the most optimal way.
      That's one of the reasons I'm so interested in having future-safe archives. :-)
    Why the death penalty is cruel and unusual punishment
      Very simple: The non-zero probability that we've executed innocent people.
      In 1998 I wrote a series of pieces about the death penalty. It was Topic One on the net because Karla Faye Tucker was about to be put to death in Texas. The idea of a killing an attractive young born-again Christian woman seemed to be a problem for death penalty advocates. I thought that was interesting. And worth writing about.
      "Everyone says over and over that it doesn't matter that she's a woman, but we know it totally matters. Why is it more of a tragedy for the government to kill a human being just because the person is female?"
      My Uncle Sam: "The death penalty *is* cruel and unusual punishment. For me. What crime did I commit to deserve this punishment? This makes me angry! Very deeply angry."
    Bingeing makes TV more like books
      This AdAge article says 9 out of 10 Americans are binge-watchers.
      That's amazing.
      The article is fairly negative on the idea, saying that people who binge-watch are somehow less perfect human beings than people who watch TV the old-fashioned way, one installment a week.
      I disagree. A good binge is more like reading a book than it is TV. The plot develops at the pace you're happy with. If you want to read a chapter a week (heh no one does) you can do that. But if you want to know what happens next, now, go ahead and watch.
      I recently binge-watched Transparent in one sitting. What an excellent show. It took about five hours (each episode is 1/2 hour). How much nicer that was than stretching it out over 10 weeks.
  June 29
    Inside Out is a revolutionary movie
      No spoilers, but at some point I'd like to create a place where it will be possible to discuss the movie only among people who have seen it.
      I'll say this -- Inside Out is a story that starts with the usual wrong ideas of what it means to be a whole healthy person and sets it straight. A healthy person has the full range of emotions, because in real life there are good reasons to be angry, sad and scared as well as joyful.
      So much of the disease in our world is caused by a lifestyle that forces people into one or two of those feelings and none of the others.
      You have to see this movie. It truly is the first of its kind. Hopefully there will be many more.
    It's very easy to create a new outliner
      That was one of the goals of Concord.
      Outliners everywhere.
      An outliner is just a jQuery plug-in.
      Want an example?
      http://thesaurus.land/
      How it works:
      1. Enter a word in a headline.
      2. Double-click on the wedge.
      3. The synonyms fill in.
      4. Repeat.
      There are a few sample apps in the Concord repo that illustrate.
    Don't be a sore winner
      When you win, it's all upside! It's time to be positive.
      In fact, there's always a silver lining, even when you lose.
    We use GitHub as if it were a public utility, but it isn't
      This Wired article is a must-read for all who use GitHub, in any capacity.
      It's true it has good APIs, and GIT by definition is all about exporting your data.
      But even though all that's true, it's still dangerous to put all our source code there.
      I did not know what happened to Sourceforge. They're now putting adware in the downloads. That's totally unacceptable, obviously. But when people take their projects off Sourceforge, they put them back, with the malware back in.
      You think this can't happen to GitHub, okay. But at one time it was unthinkable that it would happen at SourceForge.
      Read the Wired piece. If you read one thing today, this is the one you should read, esp if you depend on GitHub.
  June 28
    You have a place, I have mine, they mix
      Posts can be as long as needed to express your thought.
      Have no structure, have lots of structure, as much or as little as you like.
      Include bits of other people's posts.
        When they appear they are connected back to the original context.
        And they carry with them their full metadata.
          And I can put notes underneath them, use them as a starting point for a whole new structure of thinking. However if someone prefers a different structure, the ideas are available as units and can be organized however they like.
        Including the path they took to get to where you're reading them now.
      They can be shot at non-participating servers.
        Such as Twitter and Facebook.
        Where they retain none of their metadata.
        And are subject to limits of their systems.
  June 26
    Social media is a moral parade
      All we've done is give voice to stupid.
  June 25
    There seems to be a timing problem with Porzingis
      I'm all for a multi-year plan to bring the Knicks back into competition. It's probably what it's going to take. If that's the idea, then drafting Porzingis makes sense. But if that's the plan, why is Carmelo Anthony still on the team? He's in the prime of his career, and that might not last much longer. He doesn't have the time to wait.
      Now the Porzingis thing makes sense if:
        1. They're going to trade him, or
        2. They're going to trade Anthony.
      Personally, I'd prefer the latter. Assuming we could get a couple or three good players in exchange. The Knicks need to spread out, one player on the court of Anthony's caliber is only going to wear him out that much faster. He's not LeBron, and besides, the Knicks don't have anything like the supporting cast that Cleveland has.
      And btw, Cleveland drafted a kickass player! Maybe there's some reason he can't play in the NBA? But I suspect he can, and he'll be another Dellavedova in June 2016.
      Update: And then there's this report that Melo is puzzled at the choice. I think he sees the writing on the wall. Email from Phil to Melo. Let's talk about trading you somewhere that's ready to contend in the next couple of years. That's not the Knicks.
    Facebook's more subtle problem as a news platform
      Mathew Ingram explains that Facebook deletes things, which creates problems for news. This probably could be fixed, esp given that they have now created a new channel for news. They could treat it differently from user-posted items.
      There's a deeper problem, however, one that's not easy to address. It's the "access journalism" problem. Today, journalists pay a price if they criticize business or political leaders: they might not be able to schedule an interview when they need one. But with Facebook it's potentially more serious. If they say something Facebook doesn't like, their articles may get less favorable treatment from the algorithm. Facebook may say this can't happen, just as Twitter said the SUL was purely algorithmic (we knew it wasn't), but the doubt in the writer's mind creates a conflict that wouldn't be there if the article was published on an independent site.
      Put another way, you can criticize the open web all you want, there's no one who can take offense, and no one that can control access to your writing, and no one who can refuse access to you.
  June 19
    riverBrowser open source release
      This post moved to Scripting News.
  June 16
    What's become of Jon Snow?
      Obviously this is all-spoiler. If you're not caught up on Game of Thrones, you should hit the Back button or forever hold your peace. ;-)
      So what the fuck, they killed Jon Snow in the last scene?
      But I can't believe he's really dead. He's too big a character, and the death was too stupid. I have a better idea.
      Jon Snow the White Walker.
      How hard would it have been for a White Walker to disguise himself as one of the Wildlings or Night's Watch and get into Castle Black when they opened the gate?
      So what if Jon Snow was actually turned and became a special kind of White Walker. A good White Walker? Our own White Walker?
      I think Melisandre's return to Castle Black is meant to throw us off course.
      I think Jon is going to be a triple agent. friend of the Wildings, a First Man and a White Walker.
      Anyway, I just wanted to add this to the mix, if anyone is listening.
  June 9
    Pay attention to what Apple did and how they did it
      First, their news system builds on RSS, but a subset of RSS, with extensions. Those extensions will probably work with other news systems, but none of them know about them today. So when you add those features you're basically adding them for Apple. Where they overlap with features that RSS already has, this is just bad manners, but not threatening to freedom.
      Where it gets dicey is in the new format they say they're designing to compete with RSS. It's impossible to know if using this format requires signing an NDA, or if they're patenting the whole thing or parts of it. This is where it gets treacherous. Apple is a very controlling tech company. When you get into bed with them, you're probably accepting serious restrictions on what you can do with your work, possibly even what you can say.
      All this for a system that has zero users today. At least with Facebook, they're offering some kind of access to hundreds of millions of users.
      Another thing to consider, none of Apple's users, and very few of Facebook's care much about news, and if they do, they don't get much news from them now. There's no guarantee that anyone will want to use their systems for news.
      There are all kinds of products and services that have lots of users, but hooking up with them is not a sure thing. You can get news, for example, in <a href="https://www.google.com/search?q=nyc+subway+advertising&safe=off&es_sm=119&source=lnms&tbm=isch&sa=X&ved=0CAcQ_AUoAWoVChMI57e2mveCxgIVB5eICh01OgC3&biw=1088&bih=670#imgrc=6p__Cmq3_oSApM%253A%3BNeQheAG9I_w33M%3Bhttp%253A%252F%252Fphiffer.org%252Fwp-content%252Fmedia%252F2012%252F12%252Fdphiffer-college-advertising-07-2012-12-16-2769.jpg%3Bhttp%253A%252F%252Fphiffer.org%252Fphotos%252Fcollege-advertising%252F%3B2048%3B1365">ads on the NYC subway. I'm sure at some point people had the idea. Look at all those straphangers reading news on the subway. What if we take over the business? It might happen, someday, but it hasn't happened yet. And that opportunity has been there for a long time.
      A lot of people who don't know sports thought the Warriors had it wrapped up after winning Game 1 of the NBA Finals. Same deal here. It isn't over. Think creatively, strategically, be gritty, even a little dirty and you might just win.
  June 8
    The education of Steph Curry
      You could entitle this NBA Finals: The Education of Steph Curry.
      Last night's game wasn't him having an 'off night' as he says.
      It was a wake-up call to stop being so happy, stop having "silly" practices, save his daughter for the press conference after they win, if they do. They are playing basketball like The Monkees played a rock band.
      They have arrived at the Finals. To get past this hurdle, he has to wipe the smile off his face, get the message that he can lose, and unless he wants to spend next season getting back to this place, he'd better get serious.
      In some sense the Finals only start tomorrow with Game 3, with the series tied at 1-1.
    Why does Game of Thrones do what they do?
      Warning: Mild spoilers for Game of Thrones and Mad Men.
      Last night's episode of Game of Thrones was fantastic. Lots of food for thought. Great acting, great presentation, writing, CGI, masterful storytelling.
        The critics single out horrible acts of violence against women, but men are mutilated and killed in horrible ways in this show too.
      The criticism I've read this morning asks about their choices. Couldn't they tell the story without horrible acts of violence? There is an answer: It's too early to say, because we don't know what the story is. We're just watching it. There's more to come. Maybe it will have a resolution, and then we will be able to judge whether it was necessary to do all that they did.
      Think about the conclusion of Mad Men. Until the last scene of the last episode, we didn't know the story. Almost in the closing credits, the same way Bert went out at the end of the previous set of shows, a sort of by-the-way this is who Don Draper really is, as opposed to all the theories people had, which were mostly not even close.
      Sure he did all kinds of questionable things on the way to achieving his destiny. Did he have to be an X, Y or Z? Yeah, I guess he did, if the story was what it turned out to be. Which after having a couple of weeks to settle in seems as perfect as it was as it was unfolding. Maybe not the best ending ever, but certainly satisfying.
      The way to enjoy these shows, if you do (and I do!) is to relax and remember that while violent and horrific, questionable, and often painful to watch, remember that this is just a TV show. Those things didn't really happen to the people whose images we're seeing. Thanks to computer-generated-graphics, many of them aren't even people at all. It's just a show. It's meant to stir feelings and thought, and make you question. If it didn't it wouldn't be what it is.
      The fact that we're wondering is what makes it worthwhile.
  June 7
    "Just open source it"
      A number of people have asked that Yahoo release Pipes as open source, as if it would just be a matter of taking the source and uploading it to GitHub and that's that.
      I've released a number of products as open source this year, MyWord, "PagePark", "River4", NodeRunner, NodeStorage, and a bunch of others, and it's a lot more work to get something ready for a source release than it is to just deploy it to your server and let it run.
      Suppose Yahoo Pipes includes libraries that are proprietary to Yahoo, that they don't want to release open source? What then?
      And what if they use licensed code to create Pipes, code that they don't have the rights to release? Or even worse, they have licensed code, and the company they licensed it from is gone, or bankrupt? Then you're in a gray area. Not the kind of risk a company would want to take, esp when they're trying to get out of a business, as opposed to building one.
      And then there's the question of what kind of shape the software is in. Try doing a careful code review of a real-world piece of software that's been around for eight years, and maintained and extended by a dozen different people. Do you really want people to see it in that kind of shape?
      Done right, an open source release isn't anything like putting out the trash, it's more like planting a seed for the future. In any case the chances that someone would be able to deploy a product like Pipes with source from Yahoo more easily than starting over, from scratch, seem pretty slim.
      However, one thing that does make sense is to develop an app like Pipes, originally, from the start, as open source, and to encourage other deployments. That way people could invest with confidence, knowing that if you ever shut down your service, they would be able to continue. You should also look for a redirection guarantee before you invest in such a free platform.
    What changes at Medium and Yahoo Pipes teach us about the persistence of the web
      This became a post on Scripting News.
  June 5
    Liveblog has rssCloud support too
      Lots of stuff happened in rssCloud this week:
        Andrew shipped his rssCloud server for Node.
        River4 shipped with support for rssCloud. This means that if a feed has a <cloud> element, was register with its server to get pings when it updates. We then read the feed, and rebuild all rivers it's part of with the new items.
        Radio3 feeds now have cloud elements and use Andrew's server to handle notification.
        And finally Liveblog feeds have cloud elements. Here's my main feed so you can see for yourself.
    Read/Write was nice
      The pitch from the current owners of the Read/Write website sounds a bit like a public radio pledge drive. Give us money so we can report the news. The twist is they have the name of a blog from the early days of the blogosphere. One with an expansive name. So they say let us be that blog again. But they won't, they can't. Because they aren't Richard MacManus, the guy who started R/W, and it's not 2003. And even more important, they are promising a largely one-way web, doing basically the same thing that the other tech news sites do, with the twist that instead of advertising, they are reader-supported.
        Disclaimer: I wrote the software that published the first version of the site, and it was hosted on my server.
      What would be really revolutionary is if they lived up to the Read/Write name, and created a website where the readers created the news and the editorial people organized it and made it easier to follow.
      I would start with a river of course, of the blogs they read. People and products they follow. That way we'd be able to get a clear picture up front of what makes them different from other San Francisco-based tech pubs.
        Here's an example of a tech river, formed from the titles in the top 100 at Techmeme, some time ago.
        You want help starting a river? We'll help you. I want to break through this barrier where news orgs don't have good tools to monitor their community, and I want them to share those tools with their readers.
        The code you need to get started is open source, is written in JavaScript, runs in node.js. It doesn't even require a database. Very lightweight low-tech stuff.
      If you want money to reinvigorate blogging then do something new, and exciting, and has the potential to deliver information flows that don't currently exist, and are more relevant to users.
      The real promise of the early days of Read/Write was that the future would be different from the past. Looking back to those days is not the way to get to the future. For that you have to push the envelope further out from where it was 12 years ago.
  June 3
    What are people using content:encoded for?
      I have never used the content module in RSS, haven't had the need for it.
      However, I have come across an application of RSS that uses it, and I'm wondering if it conflicts with other uses of the content module.
      So the question is this -- what are people using content:encoded for?
      BTW, the Mozilla article about the description element is incorrect, you can encode content in the description element, and people do. It's permitted in the RSS 2.0 spec.
  June 2
    Daily notes
      Slack can read RSS feeds directly.
        It's one of their built-in integrations.
        I wonder how much latency there is.
        I set up a test channel that's subscribed to the HN firehose feed, to compare with the one maintained by rssToSlack.
      Picking a hotel in Seattle or SF is tricky because the traffic is so bad.
        You have to put yourself somewhere near a freeway preferably one that isn't always bumper to bumper.
        Problem is it's been over 10 years since I lived there, and I have no idea what traffic is like now.
        I have a lot of dinners all over the place while I'm staying. I wish all my meetings were in the same part of the city.
        Another metro area with a huge body of water in the middle of the city.
        Another option is to stay downtown, skip the car rental and just go everywhere via Uber. I wonder.
      Too many podcasts take way too long to get started.
        They are designed for regular listeners, the ads are up front and the talker drones on and on. I gave up on WTF yesterday and switched over to a Slate podcast about the supreme court. I don't listen to podcasts for the personality of the person talking. I want ideas.
    How to ask a question on the Internet
      Every day I get questions about RSS or blogging or podcasting, often on Twitter, that I don't know the answer to, but that I suspect someone who follows me does. If you have such a question, and you want an answer, here's what you should do.
      Write a blog post, briefly explaining what you want, and send me a link to it, and I'll pass it on. A multi-part tweet is impossible to publish a pointer to, and few people will take the time to parse it. A short blog post, but not too short, explaining what you want, often will get you the info you're looking for.
      A blog post is the perfect way to tap into not only the expertise of an expert, but also the expertise of their network.
      Also, while most people won't care, I do care if you use your own blog or a silo. I won't forward links to Medium, for example. Not even very likely that I'll read it. When they add an API, I'll happily send out pointers to posts on their site. (Not that I think they worry about this, but I have trouble sleeping if I help promote publishing methods that hurt the open web.)
  June 1
    How I try to work with journalists
      I read this piece by Charles Arthur thinking maybe this is the breakthrough. Maybe we can start this discussion in earnest. Maybe in fact a lot was gained by putting programmers and journalists in the same room, if only to prove that's not the way to do it! :-)
      Here's how I think it should work, and I think the germ of the idea is there in Charles' piece. He says he is an amateur programmer. He can do some PHP and AppleScript. In the past he's worked a bit in COBOL and C++. That's awesome. We can use that.
      How about if we make great tools that are designed for people like Charles to create their own wonderful web projects. Two good things could come from it.
        1. They might make some good software. Don't doubt it. One of my best programmer buddies was a lawyer. He had a good programmer mind, but hadn't really exercised it. Now he teaches me stuff about Node.js. By giving ever-easier and less complex development tools to people who aren't developers, we're going to as a result find some of them are better devs than they are journalists. I believe those people will be uniquely able to listen to journalists, because inside their own mind there is one. ;-)
        2. They might create a breakthrough. It might also be an egregious hack, that you can't believe a human mind could possibly do it so wrong, but it might still be a great idea! That's exactly how Adam Curry showed me how to do the "last yard" idea he wanted to do that resulted in podcasting. He took my source code, and hacked it in awful egregious ways (I can't say that enough) but it did something I had not thought of. He had tried to explain it in words, but couldn't get through my thick skull. But showing me that he believed in the idea enough to so thoroughly humiliate himself was enough to get me to listen.
      There probably are other great reasons, but these are two that I have personally experienced, so can vouch for the fact that they're real.
      So believing this, for a very long time actually, I have been working at trying to lower the barriers. I called one of my companies UserLand, because I wanted the users more involved in creating software.
      I have shipped a bunch of tools that make it easy for an inspired user to cobble together their own web server, their own CMS, without the limits of the software that was created by a priesthood, one that's invested in keeping things complicated and inaccessible.
        I'm sure journalists are familiar with the idea of an elite priesthood.
      That's why I say to Charles, to think of all programmers as having the same outlook, the same goals, is as ridiculous as thinking all columnists and reporters do. I want you to win. Most of the others don't really care if you do or don't.
      I keep saying this, let's work together. Maybe now we can?
    Now that we can all broadcast
      Doc Searls wrote a post last night asking what happens now that we can all create our own live video programming. He envisions a device we wear on our eyes, with two cameras and two microphones, so we can create virtual reality programming (video that you watch with goggles).
      But there's another form of video programming that's also coming that changes everything. Drones. I first got the idea how horrible drones could be for privacy watching a video from the Thanksgiving Day parade here in NYC. There was a camera posted high above Central Park West. But it was a weird perspective, it wasn't from one of the apartment buildings that line the avenue, rather it was straight overhead. Our eyes were viewing things from the point of view of a drone.
      Okay, no problem -- everything it was shooting was what we would normally consider public. A parade with balloons, floats, marching bands. But what if the drone were to turn its camera and point into one of the apartments on CPW?
      I had this weird idea that after the Google street view cars, the next thing would be a fleet of drones, all over the world, capable of showing you what's going on anywhere at any time? I imagine that's what Facebook and Google are getting ready to do.
      It's not so weird. We actually had something like that on 9/11/2001, a webcam in the Empire State Building that could be pointed anywhere. Of course we pointed it at the burning skyscraper in lower Manhattan. That was 14 years ago. All I'm suggesting is that 14 years in the future, 2029, we'll have cameras that can point at every square inch of the surface of the planet, and into any window, no matter how high, or how (formerly) private.
      I think somehow there will be exceptions for Mark Zuckerberg's bedroom window and Larry and Sergei's. And maybe the President of the United States. And whoever succeeds the Koch Brothers and Shelly Adelson. ;-)
May 2015
  May 31
    Computer love
      Two new loves of my computer life.
      1. I bought a 13-inch retina MacBook Pro. I want to be more mobile in my development work, and the MacBook Air with limited memory, CPU and disk was not cutting it. And let's not overlook the screen quality which is so much better on a retina screen. I never noticed it on my huge 27-inch desktop the way I notice it on this laptop.
      2. node-debug. It's so easy and it makes writing server software a much more confidence-based experience. Without a debugger I'm less ambitious. Now I have a better feeling for the code I'm writing, and therefore can do more with it.
  May 30
    The Silk Road sentence is wrong
      The theory in the Silk Road sentence that 'if it weren't for x, y wouldn't have happened' is wrong on two counts.
        1. If you're driving a car and make a right turn and there's a pedestrian in the walkway who you hit, you do not go to jail, unless you broke a law (e.g. you were drunk when you did it). It may even be your fault, but it's not criminal. I feel this as a biker, when car drivers act recklessly with my safety, knowing that even if they kill me, nothing is going to happen to them.
          Other than my ghost haunting them forever! Mwahaha!
        2. Once you bring parents' emotions into it, which they have done, people feel they can draw inferences that aren't there. There are lots of places other than Silk Road to get drugs. In fact most of the drugs in the world do not come from that website. So you tell me exactly how it's cause-and-effect.
      Bottom-line even it were cause-and-effect, that's not enough to put someone in jail. And it wasn't cause-and-effect.
  May 29
    Cleaning out a server is like cleaning out an attic
      I found a small trove of audio and video dating back to 2004. Some of it is really funny, and all of it is from the early days of podcasting.
      The coolest thing is an MP3 I did with Amy Bellinger. I found a library of MIDI files with theme songs from old TV shows. I sang the male part of the Green Acres theme song, sent her the MP3 in Chicago and she dubbed in the female part. It's wonderful and kind of sexy, if you like that kind of thing. ;-)
    Shopping for a new Mac laptop
      It's kind of confusing, and information isn't flowing as well (for me) as it once did. But they have refreshed 15 inch and 13 inch MacBook Pro/Retina display computers. Memory is not user-upgradeable.
      I don't see myself lugging around a 15-inch. But for development, the extra size sure is nice. I already have a 27-inch iMac/Retina, so this is strictly for work while traveling.
      I guess I see myself going for a $2000 13-inch with 16GB or RAM and 256GB of disk. The laptop it's replacing is a 4GB MacBook Air with a 128GB disk.
    To people who can't stand the thought of Twitter changing
      Someday you will have to deal with change.
      Someone you care about will leave, or die. You'll grow up, then grow old and you will die too. That's some serious change!
      If you think you couldn't survive a change in Twitter, I have news for you -- you can. It's not like oxygen, water, a safe place to sleep. It's not one of life's necessities. It could change, or disappear without any threat to your continued existence.
      Further, just talking about Twitter changing is not the same thing as Twitter actually changing. This is one of the things technologists do, we play "what if" and think about the consequences, what it might lead to.
      It's also possible to build new systems around or on top of Twitter, without changing the original. Have you ever tried opening up the Terminal app on your Mac? Under the nice graphic user interface, the boiler room is still there. Working on the same files. Running the same apps. How about that!
      Technology comes in layers.
      So change can happen and not happen, at the same time. It's not magic. It's generally the way we do technology.
    Why Twitter is stuck
      There's this great episode of The West Wing where the White House staff is trying to figure out why the President is running for another term. CJ, the press secretary, says at some point people are going to ask, and they should have an answer ready.
      In the end it turns out they're running for the same reason anyone does, Bartlet wants to be president. He's going to do more or less the same job any sane person would do. But it's going to be him, not someone else.
      I think that's why Dick Costolo is CEO of Twitter. He wants to be president of something. It didn't have to be Twitter. As long as it was a company and it's public, he's happy.
      Now that kind of works for President of the United States. You don't want a President to take us on a great adventure, unless it's thrust on us through war or a natural disaster. Even JFK with his moon mission was still more or less a business as usual President.
      But it's different with a leading edge tech company. Especially with a service like Twitter, that had the potential to be the nerve center for all that was happening in Web 2.0 when it started up. Read some of the early-days posts on Scripting News, and think in hindsight how cool it would have been if the product had a visionary behind it, someone like Elon Musk, for example. Someone driven to at least try to do great things. Okay it might not work, but there was enough torque in the Twitter engine to pull over the hill, so we can try to go up another.
      Instead, Twitter today is little more than it was in 2006.
      It shouldn't be possible to do that, imho.
  May 28
    Some people are too rich
      This is an incredible story, from Jason Pontin, who wants Richard Branson to be part of his new tech conference at MIT in the fall.
      Branson wants $750K to speak, money he says he will then donate to charity. It's great that it's for charity, but most people doing worthwhile things don't have that kind of money.
      You run into this from time to time. People who choose to isolate themselves. He'll never hear an idea from someone who isn't massively wealthy, or works for someone who is.
    Johnny Appleblog
      I think it was Kottke who said, about me, in the early days of blogging that I played the role of Johnny Appleseed. I liked that.
      If someone seemed to have an expertise or a point of view that had value, I'd suggest that they start a blog. I still do it today when someone says something provocative on Twitter. If you really feel strongly about that, how can you be satisfied with 140 chars? That's enough to make an assertion, without much persuasion. Twitter is good for a teaser. The meal, that's gotta be on your blog. I love a story well-told. And that's really what a blog is uniquely good at doing. Telling stories well.
      So when I met Mike Arrington, at a meeting in NYC in 2005, I thought to myself -- this guy has a story. He was really quiet in the meeting, but after it was over, he said, in a just a few words, where the disconnect was between the people in the room. I wanted to know more. Later, he was doing research for Edgeio, a startup he and Keith Teare were planning, I asked that he post his notes in public, on a blog.
      I guess we all thought what's the harm? No one will read it, but at least the info will be out there for the search engines to pick up. And I knew that I would read it, because this guy clearly has an opinion about things. When he wrote an especially good piece I pointed to it on Scripting News, my blog.
      Later we'd become friends, and he was for a short time, my lawyer. And it turned out I was wrong about the blog, lots of people would love to read it. The blog, you see, was called TechCrunch, and it turned out to define a whole period of the tech industry. In the mid-2000s getting a writeup on Mike's blog put you on the map.
      Today, ten years later, I'm proud of the small role I played in helping to get it started.
  May 27
    Twitter needs Flipboard
      I have a few bullet points about Twitter this afternoon.
      1. They should buy Flipboard.
      2. Twitter as it is today (TAIIT) should stay unchanged.
      3. TAIIT is the boiler room. It's where journalists and newsmakers meet. And a few million other people who hang around hoping to be one of them some day. But the group that use TAIIT will never be of the magnitude of the people who use Facebook.
      4. Twitter has a big advantage in news. Most of the newsmakers and journos have Facebook accounts, but most of them don't actually use Facebook. This is just my impression. Could be wrong. If it is wrong, then game over, Twitter will just get smaller and smaller, and have fewer opportunities for growth. And in business growth is what matters. Not happy users. Sorry. (But it's not wrong, Twitter is still the venue for news.)
      5. Flipboard is the answer. It's news as most people think of news. It's not a boiler room. It's the way forward. If Twitter today is Unix, then Flipboard is the Mac. It's beautiful where TAIIT is functional.
      6. The Twitter platform, to be competitive, must have feature parity with Facebook. That's why easing the 140-char limit is so important. It's possible for the purists to have what they want and to have the platform expand to support more text.
        Just put a little wedge to the left of the text. If there's more to read, make it black, if not make it gray. Flip it down to expose the greater content. And make the full text available cleanly through the API. Now everybody should be happy.
      7. Since the Flipboard guys have the expansive vision, the one that will see Twitter into the future as opposed to being mired going nowhere as it has been for the last 8-9 years (seriously Twitter has had facelifts, but no major features in forever), they should run the new company. Promise to keep the boiler room as it is. But offer a fantastic reading experience to the hundreds of millions of people who Facebook wants to deliver news to.
      8. When I posted this last night, I threw in Markdown support, because it's the thing I've been nagging my friends at Facebook about (with great love and admiration, and no sarcasm). I figure I ought to be equally kind to Twitter and suggest it to them too. This is an obvious improvement that would move Twitter ahead of Facebook. In competition (and yes they do compete, please stop the bullshit) moving ahead is considered a good thing!
  May 26
    Teaching myself to code
      I backed myself into a corner. I had just announced a feature in "Radio3", and a few moments after doing that, I got a report from a user saying that Radio3 doesn't work.
        I checked it out. He's right. It doesn't work.
      So I scrambled. I should have tested better. I was angry with myself. Then I calmed down and thought about which of my programming friends would know what the problem was. Clearly this was a problem for Dan MacTough. He groks pipes in Node. He's a plumber, I'm just a user. So I sat down and carefully wrote an email to Dan. With links, and citations to specific bits of code, and a theory of what was going wrong. I never sent the email, didn't have to. I found the problem myself.
      Here's the text of the email.
        Dan I have a complicated (for me) and somewhat immediate problem relating to the request package, pipes and redirects.
        In PagePark, I have the concept of delegated requests.
        https://github.com/scripting/pagepark/blob/master/pagepark.js#L290
        I use this for port forwarding, so I can put the servers for each of my "snacks" on a different port, but still have the apps call them over port 80 (the port PagePark is running on).
        The key bit of code
        httpRequest.pipe (request (theRequest)).pipe (httpResponse);
        I got it from the docs for the request package.
        https://github.com/request/request#streaming
        That's the setup.
        #### The problem
        Everything runs fine until the server does a redirect. Then things get confused.
        I think code is making the call to the server we're redirecting to. It shouldn't. It should return the redirect so the browser can do it.
        It's very hard to see in there to know what's actually happening, largely because it's still voodoo to me. Voodoo that usually works. ;-)
        This seems like something you might be able to help with.
        BTW, the code that is doing the redirect is part of the nodeStorage package.
        https://github.com/scripting/nodeStorage/blob/master/storage.js#L731
        Any advice would be most appreciated, as usual. ;-)
        Dave
      When I teach starting programmers how to ask for help, I say they should write the problem up, very carefully, including all relevant info, but nothing else.
      In the process, you often figure it out.
      The problem was solved by telling request not to follow redirects when doing a proxy. It worked the first time. I felt so good when this happened! Being self-sufficient is a sign of competence and intelligence. That's quite different from being angry with myself for having been sloppy!
      And I feel no less gratitude to Dan that I would if he had solved the problem. My inner-Dan solved it. That says he's a good teacher. ;-)
    I told my iPhone to Forget This Device. Bad move.
      Update May 28 -- I found a workaround!
        I don't know why I didn't think of this earlier.
        The Beats Pill has a place to plug a standard headphone jack, and of course so does the iPhone. They even give you a double-male connector with the Pill. That was a hint. The hint is this: If Bluetooth doesn't work, you can fall back to the earlier more primitive technology. Not wireless. Get it? :-)
        Here's a picture to nail it down.
        PS: Yes I know my bike is dirty. It's NY. What do you want!? :-)
      My Beats Pill was too far away from my iPhone, so it kept disconnecting and reconnecting, every time making a cute little Bluetoothy sound (a blue toot) and it was driving me crazy.
      So I opened the Settings app on the iPhone, went to the Bluetooth panel and told the iPhone to forget the Pill. Bad move. It did what I said to do. It has forgotten the Pill. Permanently!
      I did a search, found a technote that says there's a way to cure the problem, but of course it doesn't work on my machine. Oy!
      This is a command that should have a serious confirmation dialog.
  May 25
    The conflict within a nation
      We hide a truth so horrible. We got caught going in the wrong direction after 9/11. We were weak. Most of us knew that the wars had nothing to do with the attacks. So when we say that our soldiers died protecting our freedom, we know that's a lie too. Yet it's repeated over and over. If you want to watch an NBA game you have to accept the stars saying it in commercials. The ads that sell military enlistment say it. Our military protects our way of life at home, they say. I suppose that's true, but not the way the enlistees think. Yet when they die they really are dead, that's not a lie. The lives the war destroyed are really destroyed. But the war wasn't really the war we said it was. We should have refused to go on, but we didn't. We kept living our high lives. Riding bubbles, crashes, new bubbles. It's got to stop some time. There has to be a moment when we deal with the truth.
  May 24
    My poor uncle
      Oh how the world changes. My hippie uncle Ken Kiesler died in 2003. He was one of my best friends. We used to joke about stuff, a lot. He was at his funniest when he was self-deprecating.
      I once showed him the Dancing Hamsters, and he pretended to faint. He said his mind was overloading. He couldn't parse what he was looking at. (He was kidding, the hamsters were just something silly, he got that of course.)
      After he died, he even became an Internet meme himself, posing in front of a picture of my great-great grandfather from The Old Country.
      Now it's 12 years later, and I often think in terms of new technology, and how would Ken react to it. I know he'd love iPhones. He was constantly looking things up in the Information Please Almanac. It was the closest thing to an iPhone in his time. Now he'd be using it to look up stuff on Wikipedia, all the time. So he would not have had any trouble understanding an iPhone.
      But. How would he react to Conchita Wurst? Ha! I bet he'd pass out on the spot.
  May 23
    PagePark doing port mapping
      I have lots of apps running on my new server, refugees from Heroku. Each gets its own port, and forever keeps them running, and it's all good.
        A fairly good approximation of what Heroku does, and more convenient for me to work on, given the excellent Dropbox connection, and some very simple glue scripts that piece things together.
      But, as some users have observed, inside corporate networks, sometimes these ports are blocked. Which has meant that Radio3 or Little Pork Chop or Happy Friends might only work at home, not at work. Not a nice side-effect of the diaspora! I wanted to see if I could cure it, and it turns out I can.
      Here's a web page that's managed by a bit of software running on port 5351. But you can also access the page without the port. That's because my copy of "PagePark" is mapping port 80 for that domain to 5351. Like many things in Node, it's ridiculously easy because there are already good packages that do most of the standard things servers need to do. That's why Node is so nice. ;-)
      This feature was released today, in v0.59.
    Slack, a bright ray of sunshine
      A tiny Node.js SlackHook demo
        Here's a minimal Node.js app that sends a message to Slack.
      Can Slack stay cool?
        First what makes Slack cool is their wide-open, anything goes, API.
        You want to hook into Slack! Great! Go for it.
        And they should be really open to it, and the way things are set up I bet they will be open that way for the foreseeable future.
        But -- what happens when there are Slack clones? Other platforms that emulate the Slack API? Because that's going to happen. I'm sure dozens of developers are getting ideas about what it would be like to be in Stewart's shoes. I bet it would be fun!
        The Slack of pizza delivery. The Slack of wedding parties. The Slack of the NBA player's union. Slack aims to be all that of course because of the API. But maybe others can slip in there. How did LinkedIn become the Facebook of employment, for example. Or eBay the Amazon of auctions. Lyft, the Uber of hipsters middle-class people.
        And, if Slack weren't raising so much money, it seems they could be open to that kind of compatibility too, but they are one of the biggest "unicorns" -- with a multi-billion-dollar Uber-like valuation.
        So not every VC is in Slack. Google, Facebook, Microsoft, even Apple or Amazon, probably want to own Slack. They're probably all trying to buy them. Only one of them can, if it's for sale. My guess is it's not. They could grow to be Twitter's size in a year or two. And be on track to be another Facebook. Scaling Internet applications is way easier now than it was when Twitter and Facebook were starting up.
        But the API is going to be a problem. There are plenty of would-be competitors, and the API is a good vector to compete on.
      Slack API, backplane, monetization
        I asked how long before Slack brings its APIs under control, as Twitter did, and my friend Chuck says that's all Slack is -- the API.
        Bill Rice (and others) says it's the backplane for all the cool little tools the Internet and VCs throw out there.
        Ben Thompson says people like that Slack monetizes through customers not advertisers.
      Slack, a bright ray of sunshine
        I want to be able to put together web projects quickly with no more work than is needed. I want to be able to easily connect my work with other people's work, again optimized for my efficiency. Less cutting and pasting, more systems that "just work."
        Right now we seem to be far away from the ideal, and going in the wrong direction, as silos are hosting more of our work, and it's optimized for us consuming the most valuable advertising, and sharing our most valuable info with the machine, and our connectivity with each other not even on the table as a consideration.
        However, Slack is a bright ray of sunshine in a VC-backed world of silos. How is it that they can be so successful yet still have an aggressively open product, and others like Medium steadfastly refuse to be part of a network of software?
        What a relief to find a product that can become part of my roadmap, without me having to re-implement the whole thing just to get one feature.
      Initial Slack report
        I got curious to know more about Slack, so I asked on Twitter and Facebook, how people use Slack. I asked "Why do people love Slack?" Interestingly, no one said "I don't love Slack." You'd expect some dissent, but people seem to genuinely love it.
        You can read the threads yourself. Really fascinating. But I want to ask the next question. Does it make sense to have a Slack group for my liveblog?
          An aside, I've been using Facebook comments, and they've been nice, but I have to actually go looking for comments. They don't automatically show up in my Facebook timeline.
          One of the nice things about Disqus, which I use on Scripting News, is that I get an email for every comment. It wouldn't work if it didn't.
        I looked to see if there was any Facebook integration on Slack, and didn't see anything. Facebook has a good API, I wonder why there was nothing listed.
        Now, if there were some way to connect Slack and Liveblog. It looks like all the limits that make Twitter unattractive are down in Slack. It has no 140-char equiv. Their API is something they've actively built around. That's what I'm wondering about. I'm mainly interested in connecting with smart people who are paying attention. Slack looks like it might be a pretty good place to do that.
        Also, corporate APIs are dangerous. That's a basic lesson, learned over and over. No matter how friendly the company is, they could sell to Google and have their API deprecated. People seem to trust the Slack API. Is there a special reason why??
        BTW, what a different approach Slack took to Medium, which still has no API. Instead, Slack said basically Let's Do Everything. This is consistent with Stewart's past design with Flickr, which had a great API. I did a fair amount of work with it.
    My website in a Dropbox
      I wanted to mark a milestone. I finally have a web server running out of a Dropbox folder. I tried doing this with Apache a few years ago, but there was something about how Apache worked that drove Dropbox crazy. Or vice versa.
      Now I have my own web server, built out of Node.js core packages. It's really fast and reliable, and I pretty much know exactly what it's doing. There was never a problem with Dropbox. We just read the files from the server. We update our own stats files, but that doesn't seem to be too much for Dropbox to handle.
        It is using up a lot of CPU cycles on the server, according to the Top command, so I'm thinking about turning Dropbox off when I'm not actively developing.
      Why it's so cool -- all my tools work with the filesystem. It's even more widely supported than Git.
      I like this way of doing sites because there's no difference between the original content and the stuff that's being served. If I want to edit one of the files in my website, I just open it in an editor, make the changes and save. It's like having the server on my machine, without actually having the server on my machine.
      The server is called "PagePark". Of all my latest tools, it's my favorite. I love tweaking it, adding little shortcuts. Things that make it work really well for the kind of content I serve.
  May 22
    Slack report
      This became a section in a subsequent post.
    The Expand All button
      Look up there, and to the right. See?
      There's a cool little button that says Expand All.
      When you click it, everything in the outline expands. Click again and it all collapses. You can do it as many times as you like. I find it's kind of soothing! ;-)
      You can still expand and collapse by clicking on the wedges.
      Here's a post with a lot of structure you can try it out on to get an idea how it works.
    The point of liveblogging
      In doing my work, I generate a lot of thoughts, questions, ideas, that I would like to share. Given the tools that existed before liveblogging, most of those ideas would go to waste. Too big to fit in a tweet, too small to be a blog post, I don't want to waste it on Facebook (too hard to find, Google is still a much better search engine). "Out here" I have lots of ways to remember things I want to come back to later. My favorite is to use my linkblog, which also shares the link on Facebook and Twitter. The memory of the linkblog goes back a few months, which is usually enough.
      I've invited Doc in, hoping that we would together develop the correlative side of liveblogging. And I've already got some of my Facebook friends contributing, though on their terms, in Facebook comments and posts. For now, I am happy to do the transcribing. As I did with the seed list for podcatch. First you do something manually, then you pave the cowpaths for the process that people gravitate to.
        Now maybe people understand why I wrote the RSS 0.91 spec, to codify the practices of real-world feed producers, hoping to coalesce them into a standard, and guess what -- it worked, even though a lot of people asked who I was to do this -- to which I said -- an observer and a notetaker.
      Last night I did a demo for Brandon Diamond, a friend who works at Facebook, and the demo gave me a ton of ideas. Maybe it will be with him that collaborative writing in Liveblog becomes a thing. He asked about shared outlines. Yes, I do believe in them, by gluing pieces of our worlds together. This is something Ward Cunningham is working on too in Federated Wiki.
      Lots of smart people gravitating in a space where wikis, blogs, feeds and outlines took root.
  May 21
    I'm at a meetup at Facebook tonight
      My friend Brandon organizes these events.
        I pointed to his Twitter profile to be caustic and provocative.
        I was wondering if Brandon was upset, since he's watching me type this he can answer the question in real-time.
        Brandon -- are you irritated?
          Extremely he says.
      They're open to the public.
      Interesting group of people, mostly New Yorkers, I guess.
      Some of the must work at Facebook.
      I have no idea why I'm here, but what the fuck.
      You know what I want to do
  May 20
    The press covers Mad Men the same way they cover Apple
      I've always marveled how the press allocates presumably scarce resources to cover Apple product rollouts, which are often the most arcane and uninteresting announcements. A new Mac laptop or a version of the operating system, even a long-awaited rollout of the Apple Watch, how much news is there per reporter? How many reporters are really needed to cover one of these events? Far fewer than actually attend.
      A similar kind of reporting industry has developed around hit TV series like Mad Men, Breaking Bad, shows that I watched, Game of Thrones, which is still ongoing, and even less popular shows like Homeland and The Americans. These shows are a better deal for reporters, because there's lots more new stuff to talk about after an episode of one of these shows. And the finale of Mad Men, they'll be talking about that for a long time to come, and as a fan, I say bring it on! I love reading news reports about these fake people, they're so much more interesting than the press release people who make news (not sarcastic).
      So here's the formula for the biggest press phenomenon possible: HBO does a drama series set in Apple headquarters in the 1980s, starring a holographic rendering of Steve Jobs. The best technology of course. You could even get holographic Steve to roll out new features of the show, in an crazy super-rich binge of meta-ism, a SteveNote starring Steve in a drama series of Steve's life. You could even invite reporters from all the big pubs to your announcements. They would come, of course, and speculate for weeks what's coming, and write about it endlessly.
      It would be the ultimate expression of early 21st century media culture.
      PS: Even better, every episode would end with a SteveNote, just like Seinfeld ended with him doing a standup routine,
    Judgment Club
      Some people eat food when they feel like indulging, some people buy shoes, or headphones, or if you're rich -- cars.
      I buy domains.
    Microsoft forks Node.js
      Somehow I missed this announcement. It's really scary.
      Node.js is built around Google's V8 implementation of JavaScript.
      One of the concerns around Node is that Google might do something to break Node, or break a subset of Node apps. In a way Node apps are just as vulnerable to Google as JavaScript apps that run in Chrome.
      And as we know Chrome is not a very stable platform for development.
      Now we add another element to the mix, a whole other JavaScript interpreter, this one from Microsoft. Now, while there's a standard for JavaScript, big companies, esp Microsoft, are notorious for adding their own features to the standard, and sometimes even introducing bugs, so that you have to produce a special version of whatever you're doing for their version of the platform. This happened with browsers, and happened with Java, in the ugly competition between Microsoft and Sun Microsystems in the 1990s.
      Google is no better. All big companies take shortcuts in their competition with other big companies.
      Until now Node has been a pretty stable thing. You can move Node apps from one system to another without much concern about compatibility. Now all of a sudden, that's not true. If you're running on Microsoft's Node you might get a different result than running on some other Node.
      Ugh.
    Our corporate-owned Internet
      Dylan Tweney writes about how corporations have taken over the Internet, and wonders why it is this way. He suggests perhaps that it's that the user experience created by corporations is better than what is created by individuals developing for art and love, rather than money.
      I don't think it's true that the user experience is better one way or the other. But it is easier to make money in a closed environment, so the money seeks out deals that have lock-in. So corporate development is better funded, generally, than open development.
      Also the press correlates money and goodness. If you're so smart why aren't you rich, seems to be the philosophy. So they expect better products from rich people, that's why people flock to Medium, when they could have the same experience outside it. The well-funded corporate products get publicity, an equally good or better open product developed by individuals, those are generally ignored.
      It's sad, because the opportunities to get rich wouldn't exist without open technology to build on. We go through cycles in tech, great progress is made quickly based on open tech, then comes the period when the resources are sucked up by money, then there's a bust, and another period of creativity. We haven't learned to smooth things out by always funding a certain amount of creativity no matter how much money is falling from the sky.
      One thing Dylan could do to help, btw, is make a point of calling attention to excellent open software that does what corporate-owned systems do. Help the open web by telling people about it.
  May 19
    Node.js debugging
      I finally decided I needed to learn how to use the Node debugger -- I wish I had done it earlier. It's incredibly easy. And it's the same debugger you use when working on in-browser JavaScript.
      This is how you do it.
        1. npm install -g node-debug
        2. node-debug hello.js
      When you run your app in #2, a browser tab opens with the debugger in it. The app is paused so you can set breakpoints. When you click the right-wedge to go, the app runs.
      Beautiful job. Exactly as simple as it could possibly be.
    What would you do if you woke up one morning and there was no Internet?
      This became a post on Scripting News.
  May 18
    Factoring and JavaScript
      I'm working today on the hardest code I've ever written.
      Because the problem is so hard, and the solution will have to be repeated in a bunch of different contexts, I am heavily factoring it. Or else I'll be writing it over and over. And it will make me miserable.
      I've written this code before, in the OPML Editor environment, and I'm pretty sure I never got it fully debugged. It's so complex, that once written, once you move away from it, it's incomprehensible, not really debuggable. So if you don't fully debug it in the first place, you're going to live with the bugs, unless you tear it down and rebuild.
      When I wrote it the first time, it was in a language that handled synchronization for you, unlike JavaScript. So if you had to make a call that did I/O, you could just write it as if it didn't, and the underlying system would put the thread to sleep until the operation is complete and the thread can go back to work. I understand that JavaScript wasn't designed to do this, but I absolutely believe it could have been designed to hide all the ugly bits. But doesn't work that way, and you accept it.
      That's why the complicated bit is another order of magnitude complex in JavaScript. In some cases all the data is there, no need to do I/O, but you never know when you will encounter a node that is defined on the web, and it has to be handled exactly as if it were local. So you end up writing it so that every level jump, no matter whether it's local or remote, does or doesn't require I/O, could take a huge amount of time to return.
      You have to factor it, or you never stop writing it. And factoring, as far as I know, is not something they teach in school. But it's harder than the hardest subject they do teach, which when I was a student, was compiler design.
    Mad Men was the story of..
      I've tried to resist! Warning, this is pure spoiler. On the other hand, it might not be so terrible to have this show spoiled. ;-)
      Don Draper was the hard-to-pin-down character. His name wasn't even his real name. All that sleight of hand, but in the end, he was exactly who he appeared to be.
      You and I and everyone else have had one view of Mad Men, the creators had a different one. Now we know what they were thinking. We were thinking that it was a suspenseful tale that would lead to something fantastic. They were thinking "This is the story of the guy who wrote the great Coke commercial."
      He went through all those changes, even became a hippie, and meditated, and when all was said and done, he was exactly who we thought he was.
      The Mad Men people were playing with us. Heh. You think this is some kind of funny business, it's not. We told you who he was. We weren't kidding!
      It's fun, the same way the Six Feet Under story was. And just as creative as the end of The Sopranos.
      Obviously, the commercial was a Don & Peggy creation! Everyone should relax about that. Peggy did the right thing. There's nothing wrong with having a life. Look at how Don Draper suffered for turning his whole existence over to his art. Maybe Peggy didn't have to do that.
      PS: Now isn't it interesting that Joan discovered coke in this episode. Her line was the best. "I feel like someone just told me some very good news!"
  May 17
    Curry's 3/4 court buzzer beater
    The angst about Facebook is wrong
      The angst in publishing about Facebook is completely wrong.
      If it's played right by publishers, it will create flows that make their businesses grow, and I don't think it necessarily has to be the end of all independence, I don't think Facebook has to suck up the whole future of publishing.
      But they don't even want to put up a fight, they just want to give up.
      I saw this in a piece by Claire Cain Miller in the NYT last week.
      She believes the shift has happened, and that from now on news will be on Facebook. Well, I don't think so. This is so common in tech analysis. People think that what just happened is permanent. It so rarely is, I'm tempted to say it never is.
      I liken it to opening day of the baseball season. The first pitch hasn't even been thrown, and they're already saying the Yankees have won. In tech and in business, as in sport, the feeling you've already won contains the seed of your defeat. News is not a small thing. It's bigger than Facebook. News reporters are too impressed with money, and too inconsiderate of readers.
      To date journalism doesn't have a place in Facebook. They hope it does. Maybe it does. But will it be the only place where journalism exists? I seriously doubt it.
      I don't know why reporters and columnists at the Times have such a hard time seeing it. News is a river, not a static thing. They should never have ported their front pages, which are a vestige of a daily publishing cycle. And they should have accepted that no single news org will contain all the news any reader wants.
      Because none of them would create the river, they left that to the tech industry to do. Which they did, with varying amounts of success. The thing they can't see, for some reason, is that any one of them could start the river. The tech is there to do it. Easily! What are they waiting for? I swear I cannot figure this out.
      The day someone, anyone in news wants to compete, the formula is waiting for them. It's true, if they never take the field, Facebook software will eat their world. So take the field, and let's get started!
  May 16
    Creating a Node.js app on Google AppEngine
      I decided to give this a try since it involves using Docker.
      Here's the page for the Hello World app.
      The project ID is nimble-gearing-94719.
      They say to enable billing, but it's not clear how to do that.
        Maybe I did find it.
          I entered my credit card info.
        We'll see.
      They say to install their toolkit on my machine. Okay I guess.
        curl https://sdk.cloud.google.com | bash
        gcloud auth login
        gcloud components update app
        gcloud config set project nimble-gearing-94719
      I installed Docker
        But -- I had to install a Linux virtual machine first.
        There is no version of Docker for Mac?
        Weird. Doesn't everyone program on a Mac.
      The Hello World app runs locally
        It runs on port 8080 and responds with Hello World
      Deploying
        I had to login with my Google Account, done.
        But when I tried to deploy the Hello World app I got an error that billing must be enabled. Haha. I guess I need to find that now.
        Their howto talks a lot about why you have to enable billing, but nowhere does it say how to enable billing.
        So I guess I'm stuck. I entered all my credit card info, but can't do anything with this hello world app.
        But I get the idea of how this works if it worked.
        Wait a minute might have found it.
        That was it.
        Whew.
      Errors galore
        All kinds of strange errors.
        I'm going to take a break and come back to this later.
    The secret of the liveblog
      There are a few secrets.
      1. I plan to integrate this with Facebook, once they have their API ready. Soon I hope.
      2. I write here like I write on Facebook. Only it's nicer because when I want a feature I can just add it. I don't have to be a mere user, I can be what I am, a software developer and a writer, one who flows ideas between the two.
      3. I figure this is good for everyone. It was the whole idea behind the Internet in the first place. The right to make software used to be locked up in big companies subject to the lunacy of big companies (admit it, they're crazy places). As an independent, I can do what I want.
      4. I think ultimately the idea of corporate-created user experience will be like corporate-created music or movies. Sure corporations do create. Sometimes great stuff. But so do individuals. I don't think of Mick Jagger as a CEO, for example. Or David Byrne, Joni Mitchell, Frank Zappa, Lowell George. BB King.
      5. I use the liveblog to post short things, shorter than most blog posts, but longer than a tweet. But something I want to keep around so I can find it later. My own archive.
      6. I like Zach's piece about Qz being an API. I always thought it was odd that Circa wouldn't let their stuff go out through distrib via RSS. I see ProductHunt doing the same thing. I think long-term this is not good strategy. Today's media is fantastic at distributing and connecting ideas. It's only getting better. If people don't see the potential, like Zach does, their ideas will not be part of the mix.
      7. News is funny. The thing you make money off in news is often a by-product of the news itself. I think a news org in the 1990s should have been making sure their readers had excellent net connections. What a different world it would be if they had. In NYC we have third-world connectivity. Eventually if you want to be part of what's going on, we'll have to move to Korea. (I mention that because I have a good friend living in Korea now, and I hear about their connectivity and I think that's where we must be.)
      8. Reuters, who was one of the founders of the news business, set out to get more realtime stock info. The news service we know of now was a by-product of his main business.
      9. Think of news as a learning lab. A way to be sure you're in the loop on the newest greatest stuff. If your execs aren't doing what Zach is doing, thinking about it all the time, and using that info, you might as well be mixing cocktails for a living. :-)
      10. The secret of the liveblog is that it lives. I keep adding stuff. It's my working public notepad. I don't have to get it right here. Sometimes it just serves to get a question out there.
    Early morning secret
      The Whole Foods in my Manhattan neighborhood is a holy mess. Try going in there almost any time of day, and the place is wall to wall people. You can't see anything. No browsing. It's a total Manhattan overload. Like Eataly only worse.
      But there's a secret time you can go there when the aisles are normal, you can pause and think, and even plan out a meal or two. At 7AM on weekdays or up until 9AM or 10 on weekends it's actually really nice. Everyone there looks half awake, but happy!
  May 15
    The web is not a storage medium
      Something clicked for me today, when I got an email from Pogo Plug, a company that makes a physical virtual server. You plug it into a power outlet in your house, hook it up to wifi, and theoretically you have cloud storage. It was not a good idea, was not well executed. I bought one, tried to set it up, failed, and gave up. One day when I was cleaning house I just threw it in the garbage. I remember the moment.
      Anyway, it was a crap product, but the email was more interesting. It said it was time to pay for the free storage I didn't know I had. If I didn't I'd be locked out of my data. That's what they said. They used that actual phrase. Locked out.
      Now that's no different from Amazon. If I don't pay my S3 bill, my data goes poof. I don't think I can even pay to get it back. So miss one month and there goes everything I've been "building" on the web.
      Fact is, nothing we have created so far is persistent. Archive.org is the closest, but I can't map a name to their storage. It's a useful back up but it's not the web.
      The web is ephemeral as the memory in your computer. It's meant to go away. But we think of it as persistent. We are wrong to think of it that way.
    How to tell you're arguing
      Ask yourself if there's any chance you'll change your mind even a little based on what the other person is saying. If not, you're arguing.
    Go easy on Phil Jackson
      I was rooting for Cleveland over Chicago in the playoffs mostly because I know two Cavalier players real well because they're former Knicks, JR Smith and Iman Shumpert. NY sports writers giving Knicks president Phil Jackson a hard time for trading them for almost nothing, but trading them was the right thing to do when he did it.
      When I watch them play, of course I can't help but think here are two players of the caliber that the Knicks need but don't have going into next season. But they were part of a team that was losing prodigiously. At the time they were traded I felt basically that every Knick could go, should go, including Melo. The team as configured was worthless. It was failing in historic ways.
      In hindsight, probably the Knicks kept the one player they should have let go, that's what the success of Shumpert and Smith in Cleveland shows. They are fine players, each with distinct personalities, who need a super-alpha leader to make them humm. Lebron James is that. He's a Doberman. Melo? A retriever. A friendly fellow, very capable but not a leader, more of a pet than a master.
      The difference isn't the lack of nightlife in Cleveland. The difference is The Boss Man.
      What you can blame Jackson for is that he's a very lazy president. He's trying to win on his own terms. He will fail at that. The Knicks need someone to lead them who hasn't won 11 championships, who has everything to prove and will work tirelessly to achieve it. That is not Jackson, not even close.
    The insults of age
      Great article about how a 70-plus author rebels against the way the world treats her, as if she became incompetent just because she got old.
      I get shit like that all the time. I actually had a reporter ask me if I found I was having trouble adjusting to new technology because I'm so old. What do you say to a question like that? What I wanted to say is that you should be asking me what's next, because I know.
      Then I wanted to know if he asked because he was doing research for a story, or was this just idle gossip. He seemed to be insulted by the question. I thought it was fair. If he was researching a story, I would like to know what he finds out from others. My experience has been (and I told him this) that I'm still waiting for the world to implement the ideas I had in my teens and twenties. And I have absolutely no trouble understanding the new tech, because I've been using it a lot longer than most other people, including you (the reporter).
      I also asked if he made this an issue for people my age in his own profession. He dodged the question, but I kind of doubt he does, cause that would be a little too close to home. ;-)
      Fact is unless we die, we all get old. Younger people should be curious about that, not in a condescending way, because it's their future too. Although when you're young, it doesn't really seem that way!
    404 pages
      I've always been meaning to do something about this.
      I host a lot of my sites on Amazon S3. It's a great deal. Cheap, reliable, automatic scaling. When they made it possible to host websites there I immediately began transitioning everything I could, as quickly as possible.
      One of the things I never actually did is specify an error page. So if you go somewhere that doesn't exist on one of my sites, you'll get an error page that looks like this. I'm going to fix that now. ;-)
        Note: I did fix it. So the paragraph above might not make sense now. ;-)
      So I'm looking for great 404 pages to look at for prior art.
      So far I like GitHub's the best. "This is not the web page you are looking for."
      Perfect, talks to the human behind the screen in an active and sympathetic voice. I think I'm going to steal this, with the utmost respect.
      Maybe the page should just say exactly that and nothing more. In a clear competent large-enough type.
      Maybe a nice background image.
      Update: This is my first/current design.
        The picture is meant to say this is not a place you probably want to spend much time at. It's snowy and sleety. Cold. Uncomfortable. Not terribly bad looking. Wet. Not the lovely green space you were trying to find.
    Something doesn't smell right about the rush to "deprecate" HTTP
      This piece was moved to Scripting News.
    Should I make Happy Friends into the Twitter I'd like Twitter to be?
      Last summer I was on a roll, shipping one new app after another. I had a great bit of server software, that made it easy for me to create new apps much more easily than before. One of those apps is "Happy Friends".
      Happy Friends is a mailbox-style reader for Twitter.
      Add a friend to HF, and then when they update, their name goes bold. Expand their box, and see the latest posts, and the previous posts, organized by date.
      Here's a screen shot.
      Over in the right half of the screen, we show the Twitter rendering of the tweet. So if there's a big image or a video, you can see that.
      I could add a feature to Happy Friends that looks for a link to a text article in a tweet, and display it over there in the right margin. By doing that, I would be doing with Twitter much of what Facebook is doing with Instant Articles.
      I could do this fairly quickly, but not that many people use "Happy Friends". If it were a popular product, I would do it in a second. And if I thought more people would use it, I would do it.
      So I thought I should open the question. Would you like a Twitter reader that didn't force you to click a link to read an article? Would you be willing to publish your blog posts in a format that made this nice for the reader? Would you tell your friends about my product? (That's what I want most of all!)
  May 14
    Why publishing might not be doomed by working with Facebook
      I just read Jeff Jarvis's piece about why he welcomes Facebook. I see it differently from him, and Emily Bell, who he cites. Here's my story...
      While Facebook has been growing from nothing to 1.4 billion users, what has the news publishing business been doing? Mostly pretending they could keep doing what they were doing and somehow it would just work out.
      The collective angst among journalism pundits, which wouldn't be worth a mention if a tech company did this to its developers, btw -- is missing one key idea, without which the depression is totally justified. The idea is this:
        THE OWNERS, ONCE FAMILIAR WITH WHAT FACEBOOK DOES, MIGHT COME TO REALIZE -- GEEZ LOUISE -- THIS DOESN'T LOOK THAT HARD. WHY DON'T WE DO THIS TOO??
      It's sort of as if a baseball team realized one day that they could put some of their players in the field, to defend against the other team. The other team being the tech industry. Instead, they think it's over. We're dead for sure. And the thing is, until you realize you're dead, you aren't free enough to actually, for the first time in generations, be alive. ;-)
      What's needed is that you open the gates for your readers, your sources, to publish through you. That's the secret to Facebook's success, and why they now own your distribution system. Their answer to mere people who wanted to write on their site was this: SURE! YES! BIENVENIDOS! THANKS FOR VISITING!
      What the news industry said was: NO WE DON'T DO THAT.
      The fact is today the cost of distribution today is as close to zero as it can get without actually being zero.
      So what you do is take a page out of the tech industry playbook. The competing platform vendor says that in order to have a credible product, they need your apps (in this case your news stories). The right answer is sure, here they are. And now you learn how they do what they do, and you do it too.
      The theory is this: You will be able to zig to their zag. There will be something they can't do because of who they are, either lack of expertise, or it would undermine one of the basic assumptions of their business, or they're just too busy being who they already are. In other words, a venture the size of Facebook that grew so quickly, must be leaving huge amounts of territory unoccupied. You just have to figure out what it is, and get there before they do. I believe you can still do it.
      No one gets to be part of the future without taking some real risks, but that's what living is about. The depression and angst you're feeling is the comfort of the nest, realizing that you have to fly now, and make your own way in the world. You can't keep doing it the way your parents and grandparents did. That doesn't work anymore. Things changed.
    What is a pagetable?
      Rendering
        Each page in a blog is rendered.
        What you're reading now is different from the document I am editing.
        In that document, this is a branch. It has a parent called May 14, and a grandparent, May 2015.
      Nodes
        Each of those are called nodes. Node is a term used in graph theory. In a sense computers and networks are all graphs. Facebook's social graph is an example of a graph. They're all related in an invisible graph that might be called the world graph, kind of like the world wide web. Except each node in the world graph can have attributes and subs. And links to other parts of the world graph! All kinds of structures are possible.
          BTW, since each node can have a type attribute, you can think of the subs list as an adjacency table in graph theory. But it's easier to work with hierarchies in my head, so I call them subs. ;-)
      Different views of the same content
        When it's all done, the things we think of pages will be linked into in a bunch of different networks. There will be a Facebook view, a Liveblog view, and any other kind of view you can imagine, because all the data is open and out there to be used in interesting ways.
      Demo
        What you're reading is a blog post, but we also publish the data behind the blog post. Here, have a look. That's the JSON view of this outline. Unrendered. Just the nodes.
        I can put things underneath things, and I can link to other arbitrary parts of the graph, and I can add attributes anywhere I want.
      State capitals
        Under this headline is a list of states. Each has an attribute called "created" which is the date/time the node was created. And an attribute called "capital," which is the state's capital.
          Washington
          Oregon
          California
          Nevada
        You can only see the attributes in the JSON view, of course. ;-)
      Now what is the pagetable?
        Well, when the page is rendered, we gather all the attributes from all the nodes that contain it into a table. If there's a collision, if the attribute is defined in two or more places, the innermost definition wins. This allows scoping.
        It turns out to be a very useful way to do content management.
        Here's another bit of JSON, the pagetable when this page was rendered.
        Ignore the URLs, that's real data, produced by a test server. :-)
        Now the cool thing is the pagetable defines context, but does not define content. So this piece, rendered on Facebook, would look like it belongs in Facebook, because they set the pagetable up differently. Meanwhile the underlying graph structure remains the same in all places, and it's kept in sync. Key point. When I make a change here, the content changes over there.
        That way we can have the ideas be used in different contexts. I want my friends on Facebook to see the full text of my posts. I've learned the same thing they learned in Instant Articles, that the reading rate is much higher for full text in Facebook. People don't like clicking on links.
        So if the reader won't come to the mountain, we'll bring the mountain the to reader.
      More to come
        Obviously there's a lot more that needs to be written.
        But we're ready to go from a tech standpoint. We're already working on different renderings. ;-)
  May 13
    Apple Watch notes
      May 27 -- Apple messages are not real-time. Whuh??
        Here's something I just figured out. I've been doing a lot of DMs on Twitter this morning. And I'm just now, hours later, getting them as echoes on my Apple Watch.
        I've noticed this on my iPad and iPhone too with Slack messages. They arrive instantaneously in the Slack app. But don't show up in AppleLand for 20-30 minutes, sometimes an hour or two.
        What good is the watch or iPhone if you have to go to your laptop to get the real-time message stream?
        Earlier today: Paolo Valdemarin tells his 5-day Apple Watch story.
      May 26 -- my how time flies! :-)
        I got a beautiful black leather band for my watch.
        Best part: It was only $30 on Amazon.
        It looks as good as the one from Apple that costs much more. In fact because it's so much less expensive it looks better! :-)
        I don't like to waste money on stuff like that. I have really middle class values with everything but technology, and watch bands are not technology, sorry Apple!
      Day 10 -- Fri May 22
        Hey I didn't write anything yesterday. Don't take that for a lack of interest. I had kind of a down day. Shit happens. ;-)
        Chuck discovered something about the watch which he shared on Facebook.
          Interesting tidbit about the Apple Watch. I just discovered that messages work fine without the phone, including voice dictation, as long as you are in range of a known Wifi access point. I went out, forgot my phone, and was totally able to send and receive messages with the watch from a friend's house via wifi.
        There are more comments under Chuck's discovery that are worth checking out.
      Day 8 -- Wed May 20
        After taking my shower this morning, I forgot to put on my Apple Watch. I realized this only after working for a bit and realizing that I wasn't being nagged that it's time to get up.
        I'm a bad person, obviously, because I could put the watch on, I work at home, it's sitting on the night table in the other room. I could get up and put it on. But I didn't. Not yet.
        I decided to post this note when I realized the watch wasn't screaming at me from the other room about how I didn't love it, and how much better I would feel if I put it on. I think the watch is being a good sport.
        Isn't it funny how we anthropomorphize these things? Well, at least I do! :-)
        Update: After posting this I went and got the watch and put it on. I feel much better now. I didn't know I would do this when I started the post, btw.
      Day 7 -- Tue May 19
        The battery isn't looking so great today. I'm on the second day of a charge, and it's got 20 percent left. Clearly sometime during the day I'm going to have to charge the watch. So the idea that it runs two days on a single charge is not still true. (Just got a reminder to stand.)
        I've been searching for a new watch band, and when you look on Amazon, you also find watch "cases" -- and I wonder why anyone would want one? Then there's a Yahoo piece today saying you don't need a case. I have to agree. You have to worry about dropping phones, since you're always moving them from pocket to hand, and laying them on tables. But the watch is attached to your body. Kind of a different situation. But I do very much still want a new band.
          People who say "But you don't need the Apple Watch either" are lonely people searching for attention, and not too smart either. ;-)
          To be clear, of course you don't need the watch, and neither do I. But I like the watch. If life only consisted of needs, we'd be living on a human energy farm, as in The Matrix. Maybe you already live there. Possibly I live there too.
        BTW, the watch's "is he standing?" algorithm is pretty stupid, it seems. I just got back from a bathroom break, and believe me, there's a bit of standing involved with that. Seems I should have gotten credit, but I didn't. Happened quite a few times yesterday.
      Day 6 -- Mon May 18
        Watch band notes
          How long before the watch band is used to display stuff?
            Here you go.
          I want to get a new watch band, I hate the white band on this thing, looks childish, feels childish. I'd like a nice black leather band, but sorry Apple I just don't think a watch band is worth hundreds of dollars. I'm a middle-class boy! :-)
        This is why the Apple Watch is a significant product.
          It's a beachhead. It's computer tech making a landing on the human body and for the first time, sticking.
          It provides enough new functionality for some people, including me, to make it stay on my body. And by being there, it creates questions, that will be resolved with new software, and tweaks to the technology.
          For me the new functionality that's enough
            Time at a glance (I know a regular watch can do this too).
            Current temperature. This is something I'm always looking up when I go out. I need the info to know how to dress.
            It knows when I'm standing, sitting, exercising. Not perfect at any of it, but it can tell me to stand, and can tell me how much exercise I got. There's value in this, esp if it makes me more fit.
          The rest of it right now, that's just gravy. Being able to tell two bits at any time is enough to keep it where it is, along with the potential of generating new ideas.
          I like owning products that help stimulate thinking. This is how early adopter markets work. It's not a mature market like the smartphone market was when Apple entered it. This will grow more slowly, and when we figure out how to use the power, it may explode. But it's made a landing. It's not bouncing like Google Glass did.
      Day 4 -- Sat May 16
        Yesterday it didn't recognize a 40-minute bike ride as exercise, but today it congratulated me on a 40-minutex walk in the park. So there are some forms that it likes and others it doesn't.
        Fully charged it overnight.
        I like exercising with the heart rate monitor. This is the first time I've had one of those. I can see what makes my heart rate go up, that's cool. ;-)
        Also I noted once today it nagged me about standing up when I was already standing. I won that argument! :-)
      Day 3 -- Fri May 15
        Two full days of use, and still 20 percent left on the watch battery.
        I found out it has a heart rate monitor. So I looked up my heart rate on the web to see if mine is normal. It's low.
          I'm going to use the heart rate monitor when I exercise today.
          I think today is a walking day not a bike riding day.
          Will also be listening to podcasts, if so.
        I also let it remind me to get up once an hour and move around. It did it during basketball last night. I did what it told me to do, and when the watch praised me, I felt good. No shit, I really did.
        I asked on Twitter and Facebook how to find out what the battery life is, and I now have it in my default watch face. I did not charge the watch last night, because at bedtime it still had over 60 percent left. Now it has 43 percent at 12:30PM. I think it's going to make it another day without a charge. For me, battery life is not an issue.
        I didn't like that it nagged me to get out of bed. I'd like to say STFU. Maybe I have to turn Siri on. I don't have it on now.
        I like using the Liveblog for this! :-)
        I also learned about Glances. I did not know about that functionality. How to access it in case you don't know...
          Raise the watch to look at it.
          Swipe up.
          Swipe left and right to go through the glances.
          This is very useful stuff and a good UI.
        Why were people so critical of Apple Watch startup experience?
          I think it's actually quite well done!
          My conclusion is the early reviewers don't really understand software.
          Otherwise, what were the problems exactly??
          I usually and the canary in the coalmine for UI difficulty, very sensitive to bad design, easily confused.
          I haven't found anything yet that isn't fairly intuitive, and I love how much functionality they get into such a small space.
        Still have not figured out how to read an email when it comes in, or view a Facebook post. Also how did Facebook get set up on here? I didn't ask Apple to do that. Hmmm.
      Day 2 -- Thu May 14
        Took it for a bike ride
          Tried to think of something it could do for me while riding.
          I thought of having it show me where I am on the map. Not that I really need that, I know my way around NYC pretty well.
          But it's something to do.
          But it fails at this, because when the watch idles, it reverts back to the watch face. To get back to the map is too awkward. Not a simple glance.
          Update: There's a setting in the Apple Watch app that lets you say that it should show the last app when you glance, not the watch face.
      Q&A
        It's not for listening to stuff
          You can use it to control the audio of the iPhone.
        Could it be self-charging?
          My old watch, a Seiko, could charge itself through the motion of the watch. I wonder if Apple considered doing that. I'm constantly moving my watch hand, just typing at the keyboard, and walking around.
        It does not have a camera
          It can be used to control the camera in your iPhone.
          Tricky. You can be appearing to look at your watch all the time using it as a viewfinder on your phone's camera.
      First notes
        First-day impression
          I feel like I have super-powers. :-)
        Setup
          Setup could have been a little easier. They could have told me to turn the damn thing on, and how to do it. Eventually I just started pressing buttons. It turned on. From there the setup was almost flawless.
        Entering a passcode
          They asked if I wanted to enter a passcode. I said yes. Then a screen showed up. No obvious way to enter anything. This was on my iPhone, which has a pretty standard way to do that.
        I know the time!
          I haven't worn a watch in years. I now know the time in ways I haven't known it in a long time. Of course my tendency is to look in the upper right corner of whatever reality I'm consuming. Sometimes I look in the upper right corner of the sky, I get so used to seeing the time there.
        Getting something new
          It's a nice feeling. I felt like my liveblog was new because I just had this experience.
        It looks pretty good
          Better than I thought it would.
        Can I watch tonight's NBA playoff game on my watch?
          Is that too much to ask for?
        How do I read an email?
          I get an email, only see the first few lines, how do I read the rest.
          Same with a Facebook message.
  May 12
    I'd like to give the world a hug..
      I'd like to give the world a hug.
      And tell it jokes and stuff.
      Then pull its pants down to its shoes.
      And chase it through the rough.
      I'd tie it up with bonds and straps.
      And check its purse for change.
      Then leave it out at Moose Grin Hall.
      With our cousin who's deranged
        Sung to the tune of I'd Like to Buy the World a Coke.
        Written by the late great Michael O'Donoghue the song appeared in the National Lampoon, remembered by the inimitable Doc Searls.
    Hello Docker by Chuck Shotton
      This should demonstrate how to take a folder of source code, load it into a Docker container, and run the node.js app inside the Docker environment
        It should also show how to pass in external command line and environment variable arguments into the container when it launches
      The big picture flow:
        Set up a new AWS Ubuntu instance (or us an existing one)
          Expose ports 22, 3000, and 8080 for TCP/IP traffic
        Install git and docker packages
        Pull the sample project folder from GitHub
        Test the node.js app locally before running in Docker
        Build a local Docker image from the project folder and run it
      1. Sign onto your Ubuntu instance and become superuser
        sudo su -
      2. Update package sources and install git and docker
        apt-get update
        apt-get install git
        apt-get install docker.io
        If Node.js isn't already installed:
          apt-get install npm
          apt-get install node.js
      3. Make sure they installed correctly
        git --version
        docker version
      4. Log out as superuser
        control-D or exit
      5. Get a copy of the GitHub repo
        git clone https://github.com/cshotton/hello_docker.git
        Note, you should now be in your home directory. Otherwise, cd to whatever folder you want your sample project to be installed into.
      6. Install node dependencies and run the app locally for a test
        cd hello_docker
        npm install
      7. Run the app with an environment variable set for testing
        export HELLO_DOCKER_ENV="env var goes here"
        npm start
          If this command fails, it might be because node.js is installed as the binary "nodejs" instead of "node". If this is the case, edit the package.json file and change the "start" command to use nodejs instead of node.
      8. Check the server:
        http://your.server.ip:3000/
        You should see the environment variable echoed in your web browser
        control-C to stop the server
      9. Make a docker container and run it
        sudo docker build -t username/hello-docker .
          substitute your username -- this command builds the image in the local docker server's image cache from the Dockerfile in the local directory (the "." arg). You will find the image later by the name you provide after the -t arg, using the docker images command
          This command takes a while to run as it is building the full sandbox by pulling in lots of container parts
        sudo docker images
          You should see your docker image listed
        sudo docker run -p 8080:3000 -e HELLO_DOCKER_ENV="some env vars" username/hello-docker
          This command runs your docker image (username/hello-docker). It maps the external port 8080 to the internal container port 3000. It also passes in and sets the container's HELLO_DOCKER_ENV environment variable.
          http://your.server.ip:8080/
          If you want to run the container as a background server process, you can add the -d command to the command line before the image name.
            If you do this, you can use the "sudo docker ps" command to see the running containers and use "sudo docker stop xxx" command, where "xxx" is the first 3 or 4 characters of the process ID shown in the "docker ps" command output.
      What's next?
        First, you should only "dockerize" an app when you are ready to deploy it. Just build and test as usual with node.js until you are ready to roll it out into production, with multiple containers running on a machine (for example).
        You can build your own Docker images and upload them to repositories, like npm, etc. You can also run your own private repository for your images if you don't want them to be repurposed by the general public.
        As you might have guessed, you can run multiple copies of the same container on the same machine by just remapping port numbers to the new container (i.e. -p 8080:3000 and -p 3000:3000 on 2 separate docker run commands)
        Docker resources for Mac
          https://docs.docker.com/installation/mac/
        Finally, you probably want to read the Docker docs...
        git clone https://github.com/cshotton/hello_docker.git
    Give Walt Mossberg credit
      He broke the pattern of Day 0 reviews by pro press of Apple products by writing a one-month perspective of Apple Watch.
    The Warriors are back
      I have a theory about what happened.
      1. Steph gets MVP.
      2. The family is hanging around.
      3. Oh my isn't it wonderful our boy is the best.
      4. Come have your picture taken with grandma.
      5. But I have to focus on winning!
      6. Vat you talking about you (pinches cheek) you von you da best!
      7. Aw mom.
      8. Win. Lose. Lose. Oh shit. Everyone STFU.
      9. Win.
    Recursive process.nextTick detected
      When I try to run "River4" on Ubuntu 14.04 running Node v0.10.38, it loads the lists, reads a few feeds, adds a few items, and then dies with about 100 of these messages.
        Recursive process.nextTick detected. This will break in the next version of node. Please use setImmediate for recursive deferral.
      I've never seen this message before. I don't know what process.nextTick is, and as far as I know I don't call it. When I <a href="https://www.google.com/search?q=Recursive+process.nextTick+detected.+This+will+break+in+the+next+version+of+node.+Please+use+setImmediate+for+recursive+deferral&oq=Recursive+process.nextTick+detected.+This+will+break+in+the+next+version+of+node.+Please+use+setImmediate+for+recursive+deferral&aqs=chrome..69i57j69i59.1886j0j4&sourceid=chrome&es_sm=119&ie=UTF-8">search for this message I get a lot of references to grunt, but as far as I know I don't use grunt.
      River4 in this configuration is storing all its data in Amazon S3.
      This is software that's been running in a variety of contexts for about a year, and this is the first I've seen of this. Hoping it's just something I have to configure in Ubuntu.
      Any advice most appreciated.
      This might be a Node bug
        See this tweet that points to this thread.
        I read the whole thread, absorbing what I could, and the takeaway is that the problem isn't the frequency of reads and writes, rather it's the size of the objects involved.
      Investigation
        I looked up process.nextTick. There's a lot to it, and it's going to take a few approaches for this to settle in.
        But! It gives me ideas. When River4 is booting up, it's connecting with a set of rivers that had a fair number of feeds in them, and the river had been inactive for a few days. So it has a lot of catching up to do all at once. This involves a lot of reading and writing to S3 files. So it's stacking up a lot of I/O operations that then defer themselves, waiting for the I/O to complete. I do this a lot for rivers running on my local system, but those are filesystem calls. Maybe they return faster? Maybe my local machine is faster than the server?
      Fix or workaround?
        There are quite a few workarounds, but I'd rather if possible fix the problem. I think perhaps River4 should have a sort of "speed limit" -- a max rate at which it will read feeds. That way it would take a bit longer to get running after a stop, but it'll not push the environment so hard.
  May 11
    The new server setup
      It's a lot like the 1990s Mac system I had running with WebSTAR and Frontier.
      These days server apps are tiny and most of the moving parts run in the browser. Servers connect the browser-based tools to storage. Not much else. Lots of small bits of code, mostly APIs in and out, moving big chunks of data back and forth.
      And a good scripting language to make writing new stuff fast.
      That's the basic formula.
      And here's a screen shot.
    Dropbox deprecates, Couchbase courts
      I was at the event in 2013 when Dropbox announced a set of sync and datastore APIs that to me just didn't make sense. They had a money-making business doing file storage on a world scale. And an API that let you build incredible apps on that capability. It made so much sense to focus, but here they were, spreading out.
      Eventually good sense caught up, and they backed off the diversification, and re-focused on their main service. Good move. Developers need to think these things through when new APIs are announced. Does this seem core to their business? If not, be real careful about investing.
      Meanwhile Couchbase says "We got this" and aggressively courts the Dropbox devs who built on the now-deprecated APIs.
      It's interesting, to say the least! :-)
    I did it!
      I've got the server stuff moved, still have to find a home for my river, but I have some ideas about that. I am now free to decide how much, if anything, I want to pay to Heroku.
      I do not like the way they did this. Calling a fire-drill, and making all the architecting I did around their service invalid.
      They still have a unique product though it's not as unique as it was last week.
    New version of PagePark
      I'm using PagePark as an integral part of the new server setup.
      It's good because it's forced some real-world changes to the software, making it more robust and useful.
      And since it's open source, the new utility is available to everyone.
      The feature changes in v0.57 are explained in the Readme.
  May 9
    What happened with Heroku
      Here are a couple of analogies, one from computers, the other from real life that are analogous to the pricing change Heroku announced on Friday.
      S3 from Amazon
        When I design a system, I very much take into consideration what various things cost. For example, when I put a server in Amazon's cloud, I know that I can access S3 storage for free. The same application, running in Rackspace would run up a huge bill storing stuff in S3. Clearly you're more likely to put an S3-heavy app in Amazon's cloud. Unless money is no object, and in this stuff that's never the case.
        So imagine if after a couple of years of deploying apps this way, you get a friendly email from Amazon saying, "Great news! We just lowered the price of accessing S3 storage, and there's also this slight change, if you've been freeloading we're sorry but we now have to charge you for accessing S3 storage even if you're running in our cloud. You have 45 days to get off before we start charging."
      From the real world
        You move to Queens even though you work in Manhattan, because you can buy a nicer house there for less money. You can afford to do this because the subway fare from Queens to Manhattan is the same as it is within Manhattan. The city designed it this way to encourage people to spread out to the boroughs.
        Then one day the city announces, "Great news! We're lowering the base fare for subway travel, but have to charge by the mile now, we're sure you understand. You freeloaders in Queens have 45 days to relocate back to Manhattan. We apologize for any inconvenience."
        Gulp. I have a mortgage. I don't want to sell. I like my neighborhood.
        The subway has been here for almost 150 years, and they've never changed this basic feature of subway pricing. If they did, the people would revolt.
      We architect our applications according to these economics, and a major change in pricing is something not to take very lightly. If a vendor does this, you have to figure it's not being run by engineers, because they would understand how this would shake your confidence in the vendor.
      Amazon has been very consistently lowering their prices since the inception of AWS. If there ever was a pricing change like this at Amazon, it would cause a lot of angst. Not to say Amazon hasn't done things to shake our confidence. When they shut off Wikileaks that was noted by this developer, and others. There are unspecified lines that if you cross them, Amazon will shut you down. That means they are not totally neutral, and can only be trusted so far.
      Heroku lost me with this change. I had architected around their pricing. Even with the systems I had deployed to date, the price would have been ridiculous, totally not competitive. I guess they figured my business wasn't worth anything. So I can't consider their product worth anything either.
      As I understood the deal with Heroku, you got your hosting for free while you were developing. When you hit gold, when your service goes viral, they expect you'll continue to host with them (it's the easiest thing to do, after all), and because they've earned your loyalty. I very much looked forward to the day when I would pay them for service. I thought I understood what they were doing. Clearly they were thinking something else.
      The big lesson here is that movement should be easy. If it were then these changes would be worth a shoulder-shrug. It was not as easy as it should be. In part that's because Heroku's product is still unique (in a good way). If they were to get competition, and I hope they do, I hope the competition is: Easier, has more features, performs better, and is priced competitively. Lock-in should not be a reason to stay with a vendor.
      Luckily (actually by design) I'm developing on a platform, Node.js, that's available everywhere. The way I'm deploying it now, it would be easy to move to another service if I ever need to. I hope I've learned this lesson! :-)
    Podcasts for Scoble?
      What podcasts should Robert Scoble​ be listening to?
      He wrote a post here on Facebook earlier today where he said he didn't listen to podcasts, and wondered if he should.
      So I thought about this and have two recommendations for podcasts that would be relevant for Robert.
      Planet Money
        Still my favorite podcast. 20-minute shows. Very concise and always presents interesting ideas. And more and more about tech. For example they had the best coverage of the Tesla announcement of their new battery. Better than anything I read online.
        http://podcatch.com/pages/355.html
      Startup
        It's on episode 3 of season 2, where they follow a startup that's been through Y Combinator. Fascinating. Incredibly well-done and dramatic. I just listened to an episode which covered fund-raising.
        http://podcatch.com/pages/339.html
      Serial
        As far as I'm concerned this is the one podcast you should listen to now, if you haven't already listened to it, and if you're trying to figure out podcasting. It was the most influential podcast since the early days of podcasting, imho.
        http://serialpodcast.org/
      What podcasts do you recommend for Robert?
  May 8
    Little Card Editor update
      I just moved the server for Little Card Editor.
      This is also a new version of the editor.
      The sliding drawer is now empty, the controls moved below the card. Easier to get to, I think.
      I had this working a long time ago, and thought what the heck, let's make this part of the release too.
    Death to environment variables
      I've made a decision. No more configuring server apps using environment variables.
      Of course nodeStorage, Fargo Publisher, etc will all continue to support environment variables, but they will also be configurable through a config.json file in the same folder as the app.
      Anything that could have been specified in environment variables can be spec'd in JSON, with a lot more confidence in how things work.
    Porting progress
      Last night I got a new Ubuntu server running on AWS.
        I decided to go that route because I built most of my apps on the assumption that they're running in the Amazon cloud, therefore reads and writes to S3 are free. If you deploy an S3-heavy app outside Amazon, it costs a lot more to run.
          Another form of lock-in of course.
      Then I got PagePark running on port 80.
        The assumption is my apps will likely need the ability to serve some stuff up easily without having to go through S3. I'd like to have that be easy so as I go forward I can rely on more standard storage.
        Also I know that Amazon has NFS coming soon, so I can see over time I'll be moving stuff off S3 and into the file system. Kind of wish Amazon had gone that way at the beginning.
        This picture is hosted on the new server...
      Then I converted my counter app.
        It was the first thing I wrote for Heroku way back in Feb 2014.
        It was my first deployed Node app too.
        You can see that from the source code.
        There were a million things I wanted to fix, now that I know better.
        I decided not to fix them, it's run reliably without any issues for well over a year. Why fuck with success??
        I respect the programming dude I was when I wrote that code. I knew a lot, I just didn't know a lot about Node. ;-)
      First nodeStorage conversion, happyfriends.camp.
        I have a bunch of apps running on Heroku that are nodeStorage instances, that act as the storage system for my collection of software snacks.
        "Happy Friends" wasn't the first, but it's probably the simplest. So I decided to try that first.
        Happy to report the conversion was totally straightforward.
          Created a new folder called happyfriends.
          Copied the contents of the nodeStorage archive into that folder.
          Converted the browser-based config vars to standard EXPORT commands.
          Edited the source of happyfriends.camp to point to the new location of the server, and rebuilt it.
          It works. There was one minor problem, it was using an old version of my utils.js library that didn't have a routine that it needed, and the arrowpad.js functionality had been upgraded to use outliner.js routines, instead of going directly to Concord.
          Just added a copy of httpReadFile and included outliner.js and it seems to run just fine. If they all go this easy it's going to be done quickly. Knock wood. Praise Murphy.
      Possible source of problems -- non-80 ports.
        Heroku had a nice thing where the outside world talks to you on port 80, while your app is actually listening on some random port they tell you to listen on.
        I don't have that, so for example, the happyfriends nodestorage server is listening on port 5338. Probably some corporate networks will object. We had that problem in some cases with Radio and Frontier, because they had internal servers that were listening on that kind of port. But for most people it's not a problem.
      Next port -- macwrite.org.
        This is one of the newest apps. Having converted one of the oldest, that has lots of issues because it's not organized with the most modern methods, macwrite was written to be good example code for nodeStorage. It's the canonical app. Whatever problems show up here are ones that really need to be addressed.
        It works. Totally uneventful. I even had to release a new version of the app, because the URL of the default server changed. Done.
      Next up -- pork.io.
        I believe this is the oldest one. ;-)
        Very straightforward conversion.
        Not using the oldest code though, it had already been modernized once.
        Whatever, it seems to be fine!
        It might be the most lovable app we have.
      Hit a snag
        Too many conflicting environment variables. I don't understand the scope of these things, but as soon as I set up pork.io, there was trouble. It has a whitelist, and the others don't. The URL of the whitelist is communicated via an environment variable. And the others were picking it up. Oy.
        This is when I bit the bullet, and created another way to configure nodeStorage, through a config.json file in the same directory as the app. This will be part of version 0.73, which I'll release as soon as I've tested it by deploying it on all these servers. ;-)
      Ported so far
        The servers for: Happy Friends, Little Card Editor, MacWrite, Little Pork Chop, Radio3, MyWord Editor and Podcatch.
      Porting liveblog's server
        This is moment of trepidation. If I break this, I break my communication system.
        Knock wood, praise Murphy, I am not a lawyer.
        This is from the other side...
          I am typing this on v0.50 of the liveblog tool.
          Instead of being hooked into the Heroku server...
          It's hooked into the one running in the AWS cloud.
          I have to say, with some trepidation, that it... appears... to...
            work
              gulp
        The template file has to be hooked in too..
          Otherwise it won't pick up changes.
          Now that's done, it is indeed picking up changes.
    Inverting things
      Sometimes you can create new stuff just by inverting the flow of something that works. It's always a good idea to think about inversions and whether they might work.
      WWDC
        I remember sitting in WWDC audiences in the 80s and 90s, thinking we should be up there on stage and they (meaning Apple people) should be in the audience. They should hear about what we're doing, so they can figure out ways to make it work better. Never happened of course.
      BloggerCon
        Instead of putting speakers in front of the room, put a moderator at the front, and put the speakers in the audience. Better: get rid of the speakers. There's a lot of expertise in the room. Let's use it. Everyone is potentially a speaker.
        This makes the moderator's job harder. Only some people are able to do it. They have to be brash, able to think on their feet, and should know most of the people in the room, or at least be able to ask good questions. When this format works, it's the best.
        No one falls asleep in a good BloggerCon session. ;-)
      Demo Day
        I'd like to try inverting the Demo Day concept too.
        Put the entrepreneurs in the audience, and on stage put people with product ideas, or developed products. The entrepreneurs theoretically should be able to work on anything with potential. Obviously not all projects are equally good for all people.
        I would love to come pitch at one of those events. Here are all my projects. Who wants to run with one of them? I think the funding would chase these deals. But money is mostly fungible, ideas most certainly are not (regardless of what the money people say).
        Basically tech is going to segment like entertainment. There are people who write scripts, showrunners. And there are producers, and growth hackers, and money people. But it all starts with the showrunner. They aren't usually the same people who run the business.
  May 7
    Heroku should be a commodity
      Summary
        Earlier today Flickr gave users a way to download all their photos in a zip archive. We must have the same ability for services like Heroku.
        Further, there should be an interchange format, so moving an app from Heroku to another service should be a two-step process:
          1. Download.
          2. Upload.
      Narrative
        As I sit here trying to figure out which of my unpalatable options are the least expensive, I realized that the problem is there is no way to export a Heroku project in a format that could be just moved to another server and run.
        Imagine if there was a command that created a zip archive, with everything, all the source files, and system variables for my app. Then you could upload the archive to another service, in the exact format produced by Heroku, point the CNAME at their server instead of Heroku's, and as soon as the DNS propagated it would just start running in the new location without skipping a beat.
        We need open formats for apps too. Never should have let this mess come about.
        Because all my data is stored in S3, it seems very doable. I'm running in a commodity OS and environment (Linux/Node).
      Philosophy
        Lock-in matters, everywhere.
        The cautionary tale of this mess is that never again should I allow lock-in be a reason to keep some app running on a service. Heroku should be replaceable, and I shouldn't host anywhere I can't easily transition out of.
        I was lulled into a sense of non-existent security. Hopefully it won't happen again.
    Changes in Heroku pricing
      Heroku just announced what sounds like it might be a very big change. Really confusing. It sounds like a lot of double-talk to avoid saying what's obvious. If you've been building using free servers, now it's time to start paying. And the one question I want to know the answer to most is -- how much?
      Alternatives
        I've asked on Twitter what are the choices.
        Dokku on Digital Ocean was suggested. I'm going to check it out.
      Why it's a shock
        I've developed assuming the economics would stay constant. The changes I think I may have to make are not small. And how much time do I have to react? It doesn't seem to say. Oy.
        Heroku has never been that good at communicating, they speak a language I don't understand. But this time I have to understand what they're saying.
      Fuck you I'm not a "hobbyist"
        Also, I don't see myself as a hobbyist.
        I don't like that they call me that.
      We have until June
        Reading further it does say how much time we have. Until June. That is ridiculous. Right now I feel really abused. What if I had other plans for the month of May other than migrating all my stuff to their new model, or more likely off Heroku altogether? I've had one vendor do this to me in all the years I've been building Internet apps, and that was early days, and they went out of business shortly after they forced us to do a similar emergency migration.
      Advice to Heroku
        One thing you have to do, if you want to have any goodwill left, is change June 1 switchover date to something more realistic for people who built on your platform assuming the model would stay more or less constant.
        Facebook just gave developers one full year to transition to a new API. I thought that was fair.
        I don't think you understand what it's like to hear this kind of news. I put apps on Heroku thinking they're done, I don't have to think about them, they just run.
        Had I had the slightest inkling the model would change, I would have done things dramatically different.
        Most of the apps I have on your service, if not all, will have to come off your service. I think giving us less than a month to figure out how that works is the most awful thing you could do.
        Tell me I misunderstood.
  May 6
    Where do you go to talk sports?
      There's an NBA game going on now, and I have it playing on my second monitor. LeBron is wearing a headband. This is no small deal. It might mean they win the championship. If I started tweeting about that my followers would quickly evaporate.
      Facebook works for this only during the World Series I've found because I have a friend there who is as obsessed with the game as I am and wants to chat about it while it's happening. But I don't know if I have many friends on Facebook who care about the NBA.
      I'd like my sports discussions to derive from my regular online friendships. But neither Facebook or Twitter have really got an answer.
      Maybe this is what people use Slack for? I still don't really use that app. Maybe I should. People keep asking me to join channels there, but I already have too many ways to communicate. I'd have to give something up.
      BTW, to my friends at Facebook, this is the kind of post that begs to be posted full content in a Facebook post as well as here. We're so close. All the info is in my feed. Brandon, I hope this is what you're in Calif now to make work. ;-)
      PS: I was right about LeBron's headband. Cleveland is up 64-45 at halftime. He needs to stop being such a team player and just be LeBron. No headband? Whodat??
      PSS: The announcers were wondering why the Cavs fans were cheering Kevin Love. Answer: He's not JR Smith.
    Answer: 35K page reads
      The question: What is a top link on Hacker News worth?
      As of 7PM Eastern this evening. Still a few more hours to go.
      And the nodeStorage server running behind the liveblog software so far has taken over 1.3 million hits today because of the traffic.
      All the while watching for updates that didn't come. Nice to know that the liveblog would have taken care of them if they had.
      Heroku is fucking amazing. This is all on a free server. How do they do it.
    I would have hired Doug, but...
      Philip Greenspun wrote a post on his Harvard blog about MIT grads over 50 having a hard time finding work. In his post he cites a piece I wrote about how I would have hired Doug Engelbart, when I was running my first startup in the 80s. His piece is getting a lot of traffic. That's good. I'm glad people are thinking about this.
      My saying I would have hired Doug Engelbart in the 1980s means nothing about the job market in 2015. What I would have done in 1985 is irrelevant today. I'm not hiring. And I'm pretty sure my counterpart in 2015 doesn't feel the way I might have felt then.
      I might have hired Engelbart because his work laid the foundation for the work we were doing at Living Videotext. He felt his work wasn't finished. We could have helped him achieve his vision, and he could have helped us make our software more useful. Perhaps we could have skipped years of evolution, avoiding the blind alleys he had to back out of in his earlier work.
      Now the big wheel has turned and today I'm in the situation Engelbart was in in the 80s. Unlike Engelbart, I have re-tooled. I now work in JavaScript in the browser and on the server. I had to walk away from the codebase that I loved. I understood that the price of relevance is to give up fighting at some point and settle for a partial victory. I think I was right in the development environment I created. But right doesn't mean the world uses what you created. Maybe 20 or 30 years from now these ideas will have gained traction. I won't be programming then. I almost certainly won't even be alive.
      I turned 60 over the weekend. It's a tough birthday, or it was for me. I didn't want to have it in public, so I told Facebook not to announce it. I think younger people don't understand. I finally think I understand how they don't understand. The ones that love me say I'm really young, and I appreciate that. I think they mean my thinking is flexible, and I'm excited about the future, like a young person might be. But the clock ticks in predictable ways. My body is that of a 60 year-old. And the world treats me as one as well. Most people can't see or feel the enthusiasm an older person has. Or they don't believe. Or they don't think.
      Like Engelbart in the 80s, I feel my work is not done. I still pump out ideas executed in software at an amazing clip. I wonder why people don't wonder how I do it. The processes I use, investing in good tools and underpinnings, and paying attention to good features of other people's software, makes it easy and quick to try out new ideas. Some of them are really worth it. Look at the list of achievements on the smallpicture.com home page for an idea.
      I want to share what I know. I want people to use my products. There's not that much road in front of me to get the work done. I'm pretty sure that there will be a lot left on my plate when I finally hang em up for the last time. I guess that's a sign of a rich and productive creative life. ;-)
      PS: Top item on Hacker News. That's a first. As long as you all are here, check out my latest product, "Podcatch.com". ;-)
  May 5
    Watch out for kickasstorrents.to
      I was checking out the latest on what I thought was the Kickass torrents site, and noticed all the torrent links were gone. Apparently you need to register in order to access the torrents.
      Let's see what you get if you click on the Sign Up link. It takes you to a site called Mediablk, which appears to be a scammer site.
      I got in touch with the TorrentFreak guys to see if they knew anything about this, and they pointed me to a piece where they talk about the scammers taking over.
      No comments on who's to blame for what, but if you're tempted to sign up for Mediablk or something like it, be sure you know what you're getting into. Doesn't look like a good deal.
      PS: As a public service, the current real URL for Kickass is kat.cr.
    A Find-the-feed challenge
      Here's a challenge for all adventurous techies.
      Webmonkey just started a new podcast. Yes!
      I want to add this feed to "podcatch.com" immediately.
      Where is the feed?
  May 4
    I wish this text were on Facebook
      For a few years now I've been advocating the idea that when I write on my blog it should be possible to include what I write on other sites, viewed in the design dialect of that site.
      I prefer to write using my tools on my site. But I also like to make my words available to my friends on Facebook. And I have most definitely noticed that when the full text appears on Facebook there's more engagement.
      I have friends who work at Facebook who are dear people, and I know they respect me. That said, I am about to complain how Facebook at-large, as a company, is too picky about who they'll work with.
      I've included the full text of my posts, with all the metadata, in my feeds for a very long time now. Yet all readers get from my pieces on Facebook are the first sentence or two, and then they have to click a link.
      I know I'm not the NY Times or National Geographic. But even so, I did all the work! How about it. Could we please flip that switch, soon, and let the people see the magic??
    Mad Men spoilers ahead
      Spoilers! You have been warned...
      I caught a glimpse of a post by Michael Markman re the latest episode of Mad Men, which I had not yet watched. I saw one word in that mini-review and then turned my eyes away. The word was "devastated." I had seen a tweet earlier with a mini-spoiler that said it kept the watcher up all night without sleep. So I was expecting something pretty horrific.
      There was one scene early on where Don was pressing against a window in his new office as if to test it, to see if it would give. Then in the meeting, just before he got up to leave, he was staring out the window at an airplane over the Empire State Building. How foreboding is that, given the opening animation of the show.
      I watched the whole episode dreading something truly awesomely horrible. I think devastated was a bit over the top, but to each his own. I loved the scene with Roger playing the organ with drunk Peggy on roller skates, and her walking into the office with a cigarette dangling from her mouth and Bert's pornography under her arm. And then of course Bert's ghost.
      Another great Mad Men episode.
      PS: The Vox reviewer thinks the picture of the airplane over the Empire State Building summarizes the whole show. I think the jury is still out on that. We have to see how the series ends.
    New command to remove an outline
      Just added a command that removes an outline from the My Files menu.
      It's the last item in the menu. It only removes the outline from the menu.
      Once removed there is no way to edit it.
      If you want the content removed too, open the outline first, Select-All and hit Backspace.
    Has Medium peaked?
      A couple of things make me wonder if we have seen Peak Medium.
      The timeline
        They added a Twitter-like timeline and short posts, that don't have the graphic beauty of Medium, and for which the Medium editor imho is way overkill.
        For short bits of stuff you want an editor that is lightweight and easy. No need to take over the whole window if you're just typing a sentence or two. Twitter showed this very well. An outliner is a better approach to short tweet-plus-a little posts.
        The change in focus, from what was previously a very focused product tells me that Plan A didn't get them the kind of growth they needed to sustain their valuation.
      Dilution of the effect
        This one's more subtle and may just be with me, not sure.
        People put their posts on Medium because it makes them look important. But once you read a few mediocre posts on Medium, that flips around.
        An example, there's lots of people writing about the Apple Watch now, but there doesn't seem to be much to say about it because I keep reading the same things over and over.
        I guess some people feel this is their big moment to get a semi-scoop, so there's lots of writing, and lots of dressed up to look important. But it's all the same shit.
        You can't expect a style of dress to convey that much meaning for very long on the Internet. Either it's exclusive or it's open to every self-promoter out there. There are lots of them, and Medium can be used by any of them, and it is.
    Testing a new feature
      It's not exactly hoisting but it's a good deal simpler.
      You click an icon in the left margin and up pops a dialog box with an outliner in it.
      You start editing. Click OK. It's saved back to your outline.
      Click Cancel to forget the changes.
    Testing enclosures
      I have to make podcasts work with the liveblog software.
      To do so, create an MP3, upload it somewhere, and add an enclosure attribute to the main headline whose value is the URL of the MP3.
      The other two enclosure-related attributes will be filled in automatically by the liveblog software.
      As an experiment, I've added the enclosure attribute to the main head of this piece.
        I want to see if I can use Liveblog to edit Scripting News. I need the ability to podcast.
        It worked, there's an enclosure element on the feed item.
  May 2
    JSON for each liveblog post
      For people who like to lift the hood...
      For every page that Liveblog renders, there's an equivalent JSON file.
      Just change .html to .json in the URL to get the JSON version.
      For example, here's the JSON version of this page.
      This is part of how the automatic updating works.
    What if documents had domain names?
      What if instead of thinking of a domain name as something complex and expensive, we thought of them as virtually free, and easy to allocate? As easy as choosing File/New and entering a name. How could that change the way the Internet worked? Would you write differently for such an Internet, knowing that your document would have its own unique Internet name?
    This has very little meaning
      One of the things you learn as you get older is that things mean less than you think they did.
      It's one of the tricks our minds play on us. Giving meaning to all kinds of things that don't actually have any. You can do experiments to prove this to yourself. Think about someone you know well who you haven't seen in a while. Try to imagine what they're doing right now. How they're feeling about things, how they're feeling about you. (That was the zinger btw.) Then next time you see them, ask if that's what was actually going on. I bet it wasn't.
      There was a great TV show in the 50s, before my time, but it was in reruns when I was a kid, starring George Burns and Gracie Allen. He was the straight man, she got the laughs. It was wonderful simple wacky comedy. Burns had a toy, very futuristic, it was a TV set he could use to tune into whatever Gracie was doing. He could comment on it. It was obvious that he the actor, and the character, loved Gracie very much. She was always creating chaos. And he was into it.
      But we don't have that ability to see through large distance and time to know what something means. Yet we struggle with that all the time. The truth is almost everything means nothing. It might even be that everything we can perceive is entirely meaningless. So you can relax about what things mean. It's not your problem! :-)
      An example.
        A friend tells the story of the death of his father in his 80s.
        All the siblings are outside the area.
        The father got sick and died in a day.
        In a hospital.
        They called him in the morning. Come pick up his things.
        He went to a claims office. In a flourescent-lit basement.
        His things were in a shopping bag.
        A shirt, a pair of pants. His shoes. Some change. Keys.
        His wallet with approx $100, some credit cards. Drivers license.
        That's it. A life. That's about what it is.
        A paper shopping bag with some clothes.
        What do you do with this?
    Question for singularity-believers
      We don't know what consciousness is.
      Fascinating question, don't you think!
      My own theory is that it's a survival trait. If we didn't have a sense of self, there would be little reason to try to protect one's life. Death? Big deal, you might say. I was never alive! ;-)
      Anyway, science does not know what consciousness is. They have some ideas. But no certainty.
      We don't know what it is.
      I repeat -- we do not know.
      So if you assume that we don't know what consciousness is, how are you going to move it into a computer? I'm anxiously waiting to hear the explanation! :-)
  May 1
    Podcatch to iOS and Android
      I love podcatch.com and want to invest in its success. I'm having a number of different partnership conversations. All of them involve getting the software running on iOS and Android.
      It's a fairly straightforward JavaScript app that reads a JSON file over HTTP and renders it as the river you see. I use jQuery, Bootstrap, FontAwesome. You can see a full list of tech that it builds on here.
      What do you think of PhoneGap? It looks like it was made for porting this kind of app.
    Experiment with collapsing
      Doc is liveblogging a conference at Columbia right now.
      His outline is getting long. I imagine he is collapsing things, but they aren't being collapsed in the rendered outline.
      I think I know how to pass through the expand/collapse state through to the rendering. Let's see if this changes the reader's experience.
      I added the feature. The author has to do nothing. We transmit the expansion state of every headline with subs.
      I have to add back the lock icon, or else you'll go crazy when the outline updates! :-)
      Postscript...
        Somehow I have to get Doc to reload the app, however, before we'll get the feature. He's still using the previous release that doesn't pass the info.
    Professional users
      This became a blog post on Scripting News.
April 2015
  April 30
    The liveblog is once again live
      I just re-wired up the live-ness of the liveblog.
      So now when I update one of the pages on the liveblog site, anyone who's watching it will get the updates in realtime, without having to reload.
    "Reproducible"
      This post has been promoted to Scripting News.
    Projection
      Sometimes I get the random thought that someone is mad at me.
      Then I ask myself -- is there any evidence to support this belief?
      Then I realize, oh shit, it's the version of the person in my head who's mad at me.
      We all do this. There's a technical term for it, it's called projection.
      My mind is always playing these little dramas in my head. They can be amusing if you realize that's what they are, or torture if you don't. :-)
  April 29
    Virtual hosting and file sharing
      Here's something that would be great, and I wonder if anyone does it.
      Suppose there were a way to fire up a Heroku app that had as its file system a Dropbox hierarchy you could share with your Macs.
        Not just for application files, for content as well. And not just for launching, to serve as the file system for the app. I guess it was necessary to be very clear about this because Heroku has a way to deploy apps from Dropbox. That's nice, but it's far less than what I'm thinking about.
      Or if Google had hosting for Node.js apps that could use Google Drive as their file system, again allowing me to fire up cloud-based apps that I could put data into through my local file system.
      Or if Azure had a way to run Node.js apps (that's the server runtime I use, btw) with their file system, I believe it's called OneDrive.
      Makes you kind of wish that Dropbox ran a cloud service like Heroku.
      Heroku is pretty ideal but for one thing -- no file system!
      Do you understand what I'm thinking about?
      I want a full-powered publicly accessible server runtime that I can easily share files with on my desktop.
      I have something like this already running here, with Linode and Dropbox. Pretty nice except the Linode server seems a little resource-constrained. I've become quite a snob now that I get my Heroku servers for free (I'm not special, you can have them too). They work great. If only they had a file system.
    That moment when Hello World worked
      Well, this has been a long time coming. I want to make this new outliner a really excellent tool for code-writing.
      Largely because I want the code to run on the outliner itself. We had this working very nicely in Frontier. This will allow me to do a lot more of my work in this space. This is good. ;-)
      So I added a new nodetype -- code -- and when it sees a node with that type, it renders it as JavaScript, not HTML. It's very lightweight. Doesn't do any interpretation, just writes the characters out, nicely indented with tabs.
      Here's the file containing Hello World.
      This is the one-liner I ran in the browser, console:
      runScriptFromUrl ("http://liveblog.co/users/davewiner/2015/04/29/helloword.js")
      And here's a screen shot of the result.
      Key point, those files can be included in generated web pages with <script> tags. And we can certainly edit templates in the outliner. So we are on the way to having it all. ;-)
    helloWord
      function helloWorld () {
        alert ("Hello World!");
        }
      helloWorld ();
    Images in Liveblog
      Now I'm going to put images at the top of pages of liveblog posts.
      One of the features Doc asked for. Since he's the First User, his requests get priority, even over mine.
      Update: I'm backing off this feature for now. Yes I have done it before, but I made different design choices with the layout of liveblog pages, and they aren't compatible with the background image. This will have to wait until we have better templating features in the liveblog software, so we have better control over things.
  April 28
    BT Sync is a moving, broken target
      One of the projects I wanted to do along with podcatch.com is have a folder with the MP3s of the podcasts we follow, that could be distributed to anyone who wanted it, via BT Sync.
      So I downloaded the latest version of the software, generated a sharing token and sent it to Andrew Shell, a fellow programmer, and asked him to subscribe.
      The software said (to Andrew) that it was waiting for approval from someone, probably me, but there was no indication in my software that it was waiting for anything. Further, the idea is that this content would be available to anyone. The MP3s are totally public, there's absolutely no need for permission here. I never told it to ask for permission before allowing a subscription.
      We really could use BT Sync, it was a great idea. The first versions of the software worked well. Even if it had a plain user interface, who cares. Once it's set up, you just forget about it. And the new interface is less functional, confusing, and somewhat broken. That's not an improvement!
      I'm putting this out there in case there's an interest in getting a project going to create something simple, usable, and suitable for the kind of project I talk about here.
    Good meeting with Doc
      Showed him through the new UI for liveblog.co.
      However there was a thrashing problem with building the RSS feed.
      But the problem isn't happening here.
      Not sure why...
    Limits of SoundCloud's RSS?
      With the announcement of SoundCloud's podcast producing capability, there are some people speaking up about the limits it has. I wasn't aware of these.
      My opinion: As long as they're providing feeds that have proper <enclosure> elements, there isn't anything we can't do by mirroring the feeds elsewhere.
      However, I'm totally new to this, so please share whatever you know in a comment below. Thanks! :-)
    What will the end of Mad Men be like?
      I just watched the musical number done by Bert Cooper at the end of the last half-season. That would have been a fitting end to Mad Men. After many seasons of selling things that were not free, to realize that the stars and the moon are for everyone, and don't cost a dime. So true. The best things in life are free.
    Rebooting the Liveblog
      I'm meeting with Doc later today to talk about the second coming of the Liveblog software. This time I think I have it. Haha. But I thought so last time too.
      One of the things that tripped Doc up is that the new version didn't automatically re-render a story when you edit it. I would have called this a loose-end (after all I did a complete tear-down, this is the equiv of forgetting to rewire the air conditioning in the car after a rebuild).
      I thought it's good to take another look at this and be sure that I want it to re-render after each change. And I do. I like that when I pause for a second in typing, the story updates as well.
      And this is something that can easily be made a setting, so if you prefer to have to manually update the rendering, you can have it work that way, no problem.
      PS: I got images working in outlines too. ;-)
  April 27
    There's another Internet out there
      Waiting to be discovered.
      The other Internet is filled with people seeking to expand human knowledge.
      For each of those people there's a place to ask a question by someone who doesn't have their expertise. There's a place where they can share what they learn with other people who share their interest.
      In the new Internet, if someone responds ignorantly, you don't respond. On the new one, ignorance just floats away. If two people are engaged in a powerless battle to the end, all links are severed. They can fight with each other forever, like the two characters played by Frank Gorshin in that great Star Trek episode.
      No one cares how many hits a page gets. There probably aren't pages on this Internet. The chunks of information can be small, and they can be related to each other.
      Think of an index card, that can easily be connected to other cards. With labels on the arcs. And you can write programs that traverse the links. These programs will be easy to write! And they will do powerful things because the networks they traverse contain powerful ideas. Things can be simple and powerful at the same time.
      Name-calling will get your links erased.
      I want to figure out how to make this work. It will be exclusive. Only the people I want to connect with will show up in my view of the world.
      I define a karass, a group of people who I am closely connected to.
      But what I write can be read by anyone. I don't care. But I don't want to spend time listening to people who aren't on serious explorations. Sorry, this Internet of my imagination is no more a democracy than the other Internet that we're all using today.
    Real poncho or a Sears poncho?
  April 25
    Listening to new podcasts
      Thanks to podcatch.com, I'm listening to more podcasts, learning a lot.
      Still, imho the best podcast is Planet Money.
        The 20-minute length is ideal.
        Short single-idea podcasts are great.
        They're intelligent.
        They don't waste a lot of time.
      It's quiet on the weekends
        I notice that podcasts are released in spurts, mostly around the end of business, east coast time, on weekdays. Probably would work better if some of them were released on weekends when we might have more time to listen.
      The Serial template
        There are a bunch of podcasts started recently that are different content flowed through the Serial template.
        The latest is Startup, which is following the progress of a three-person startup that came out of Y-combinator, but apparently things have not been going smoothly.
        I liked the first episode a lot. I wanted to give the entrepreneurs some advice about percentages, and how important the person who makes the product is.
        That's a good sign -- engagement.
      Too much talk up front
        I want to grab some of the podcasters by the collar and yell -- get to the point! One podcast took 7 minutes of advertising, slowwwly talking about the products, before saying what the program is about. I only listened because I had heard good things about the show, and wanted to give it a try.
      5-minutes is a good length
        I think 5-minute podcasts are going to be nice!
        I only have one in the mix, the daily writer's almanac by Garrison Keeler.
        Of course it's very well done, and I learn something every time. That makes it a really good deal. I'm also learning to appreciate poetry. I think. ;-)
        If there were a lot of 5-minute podcasts, it would become like podcasting a la carte. You design your own program from the people you like to listen to.
        Encourage people to get. to. the. point. ;-)
      Love The Americans, despise their podcast
        One of my favorite shows is The Americans. If you love binge-watching, go watch it. There are three seasons. The third just concluded. It's a wonderful show.
        And they have a podcast. Including the writers and the stars. But they just giggle. They think it's so cool to be in touch with their fans. Giggle. Hahah. Look they're really British. OK. I get it. Now fucking talk about the fucking program.
        I'm sure they mean well, but this is a case where they need a good interviewer, someone who reps the listeners, and keeps them from being too full of themselves.
      Podcast criticism
        I love that we've gotten to the point where there's enough interesting stuff in the flow that you can write about podcasting as an emerging art.
        Everyone keep on truckin! :-)
    Welcome to my new liveblog
      I had to rebuild this thing because:
        I didn't like the way the reader worked.
          I didn't mind it for my own blog, but when I had to read Doc's stuff in the outliner, my mind rebelled. I have too much to process anyway, I need this stuff to be arranged so it reads nicely. Sorry, back to the drawing board El Grande.
        I hit a scaling wall
          My outline was taking too long to load in the reader. Maybe that would have been solved by the new rendering technique, but I wanted multiple files, and now was the time to bite the bullet and get the little outliner codebase (not so little anymore) up to snuff. Multiple files makes it possible to switch to a new file when the one I'm writing in gets too big. Experience with Fargo says this is a good approach.
          And as a bonus, I get private files. That will come in handy. ;-)
        I wanted the glossary back
          I need the ability to define hot strings.
      Anyway, now it's rebuilt.
        And btw, I see lots of loose ends.
        But I think they're mostly of the form of sawdust on the floor and tools left out.
        I feel pretty good about this codebase. Took a long time to get here. ;-)
      Let's have a party.