Dodged the XML bullet

Years ago, when XML was the new hotness, I kept meaning to learn it. (I mean, I learned it, except the headers and CDATA, but I never figured out how to use XPath or XQuery or XSLT or do anything useful with it. I learned just enough to write a toolchain that emits an RSS feed that iTunes is happy with and stopped there. Tidy is your friend.)

Maybe I dodged a bullet. The other day Manton Reece and Brent Simmons came up with JSON Feed, a replacement (or at least an alternative to) Atom and RSS. Suits me. I prefer YAML to JSON, but I’d take either one over XML even if I could only see them upside down in a mirror.

It’s not there any more, but in their first announcement (quoted here), Reese and Simmons committed a gaffe and said what they thought:

developers will often go out of their way to avoid XML. JSON is simpler to read and write, and it’s less prone to bugs.

Duh. But the rationale they state now is still true, if a little less transparent.

While I’m thinking about it: a pet peeve. RSS says that <pubDate> wants an RFC 822 compliant timestamp for feeds, but good luck if you’re in Alaska, which is part of the US not in the big four time zones. (Use Zulu -0900 instead.)

Updated. More brutal honesty:

Reece and Simmons decided the time was right to build an updated syndication format, as more and more developers are refusing to work with XML.

“I believe that developers (particularly Mac and iOS developers, the group I know best) are so loath to work with XML that they won’t even consider building software that needs an XML parser,” Simmons said. “Which says to me that JSON Feed is needed for the survival of syndication.”

Gosling on Electrical Engineers

James Gosling may use emacs, but apart from that, he’s clearly not stupid:

computers were showing up in all kinds of embedded devices, like TVs, VCRs, elevators, locomotives and cellphones and all that. But it was all being done by electrical engineers and they were all reinventing computer science in the most crazy, retro backward way…. They were inventing network protocols that were just laughably stupid.

Good grief, Apple. A gigabyte? How many lines of code did you change? ios huge download gband

Tech Links

OOPS. I periodically publish a tab sweep. Sometimes (like now) I draft and forget to publish it. This post should have been published in mid-June.

MuPDF is a better PDF reader because it opens large PDFs faster than evince.

Geeqie is an image viewer that offers side-by-side comparisons of images.

Apple announces Swift 2 with new language features, open source. I looked it over, and I think I still like Ruby better. But it’s clearly an improvement over [[Objective] C].

A gallery of everything new in iOS 9. The Podcast app might not be quite as aggravating as before. And they’ve realized that iOS 8’s version of a shift key was a disaster.

Cute: the old After Dark screen saver implemented in CSS.

Datamation: The best features of Libre Office Writer. After using Word 2013 with it’s worst-idea-ever “Ribbon” I’m thinking of switching.

Tech Tab Sweep

Krita appears to be Gimp spelled sideways, but cross-platform, or more accurately, Gimp:Photoshop::Krita:Painter.

OpenSSH best practices. Mac OS X 10.10 “Yosemite” takes SSH security so seriously that after you upgrade, you can’t log in remotely. Even if you tell it you want to.

Use Ruby to make your graphs look hand-drawn, like the ones in XKCD.

Via RubyFlow: A set of step-by-step TDD tutorials, a library for importing real-world CSV data.

Gruff: a library for creating beautiful charts in Ruby. Use capture3 instead of backticks: capturing I/O from shell commands. I should be using pry instead of irb, and when I switch, here’s how to work with exceptions in pry.

Microsoft promises that you can clean install Windows 10 after upgrading. Hanselman confirms, but look at the questions in people’s comments. Someone at Microsoft should be asking, why don’t they trust us, and what do we have to do so they start?

Google’s new build tool: Bazel. What are the odds I’d switch when I’m still learning Rake?

Tech Links – May 29

Three open-source Python shells.

Don’t catch Exceptions. I must have known why I always do rescue => boom to catch exceptions. The reason is that Ruby makes that shorthand for rescue StandardError => boom. Nifty.

libgrader: find quality gems for your next project. It knows about two of my favorites gems: pericope and titleize. (Unlike awesome-ruby.)

Sequel: the database toolkit for Ruby. (Here’s an introductory screencast at RubyTapas.) I keep thinking I should do something with sqlite. Well, really I think I should do something with a database, but I’d rather put it on Drobox than try to figure out how to have a mysql server out on the internet and not regret it.

The reason? Once you’ve used a join you’ll never be content using a spreadsheet for a database. Here’s a quick introduction to joins.

Mac audio graphing tool FuzzMeasure updated. I didn’t remember that it had a name of its own. I thought it was just SuperMegaUltraGroovy. Anyway, every time I look at this I think to myself about the software I wrote in the mid-90s and all the cool graphs I’d like to have implemented.

Tech Links

LinuxUser (UK): Create a NAS box from spare parts.

Ars: Intel’s Broadwell mini-PC. I love the form factor. But then, I’ve owned three Mac Minis.

I keep thinking I should learn the R language. Of course, I used to think that about GnuPlot.

HowToForge: Installing Git and Using GitHub on Ubuntu.

GSoC: SciRuby. There’s a program I’d love to rewrite 20 years later using a high-level language to do the Fast Fourier Transforms. I’m not sure what I’d use for the GUI.

Web UpD8: Install the official Telegram client for Linux.





Zubrin: Mars the Hard Way

Bob Zubrin’s not enamored with NASA’s Mars proposal:

The kindest thing that can be said about this quintuple rendezvous plan is that it is probably the unplanned product of the pathology of bureaucracy, rather than the willful madness of any individual. For a fifth of its cost, NASA could fly five simple direct sample return missions, each of which would have (at least) five times its chance of mission success. So it’s hard to imagine any sane person inventing it on purpose.