Garbage Collection

Collecting the internet's garbage in O(n)

gc.isReEnabled() === ???

Well, it’s been 12 years, perhaps I should start writing again. So obviously the first thing to do is a bunch of programming work. This blog is no longer in WordPress. Instead it’s running as a Wasm application hosted on edge compute nodes running on Fastly… yeah, okay that’s a bit wonky, but it’s kinda a static site if you look at it sideways? Also did a bit of design work based around the G5 photo I’ve kept as a banner: no more theme, just a global style sheet and some new typography. A few links had broken over the years, so those are mostly fixed. Which I suppose means I have to stop putting off the actual writing. Perhaps I’ll manage more often this time.

Oh, and the source code for the blog and its supporting tooling are available. It’s mostly Astro and some wiring connecting it to Fastly.

Years of Devices

Patrick with many devices

Over the years I’ve had many computers that are now considered “devices”. The following are not so much reviews as a retrospective on what has changed and what hasn’t.

eMate 300

The oldest device in this photo. I used this in school for taking notes and writing. Easily the device with the longest useful battery life. Would go days without recharging with regular use. Charging was fast enough that I never really worried about if it was charged or not. Great keyboard, great form factor. Newton OS was great for note taking and writing. Networking was totally beyond it. Syncing was usually done via IRDA and was fast enough for text, just.

Visor Pro MIA

The kids found the charger, and the keyboard for my Visor Pro, and even a GPS module. The Visor Pro itself is missing. This little Palm OS device replaced the eMate. In every possible way it was worse. … except that it synced over USB and I could use it with a more modern desktop computer. The keyboard was a 4 fold Stowaway, I broke 2 in the year or two of use this saw. Still no networking ability at all. After just a month or two in college with this I gave up on the idea of a smaller device for note taking and bought a 12in Powerbook.

palmOne Treo

My first network enabled device. I had a phone module (refurbished) for the Visor, but it never really worked right. The web was totally unusable on the Treo, but it did email fine. Also used something to convert webpages, and feeds into palm doc files, would use that to read news and other things on the Treo. Keyboard wasn’t really usable for more then a quick response. Battery life was reasonably awful as well. This was the first device that basically required batter baby sitting from me.

Nokia Internet Tablet 770

Network enabled, but not cell enabled. First device that did mobile web browsing well enough to use. Browser was still very limited and frustrating. Email worked great, multi service IM worked great. Never saw daily use thanks to lack luster battery life, and WiFi only networking.

Nokia N810 Internet Tablet

Best build quality and form factor of any of the devices pictured. Slide out keyboard worked for long emails, short note taking, IM conversations, etc. Camera was horrible, shouldn’t have bothered with it. Used with a bluetooth paired smart phone for 3G internet access. Battery life of N810 was fine, battery life of any cell phone running as a network access point was horrible. Used while traveling, or in long meetings. Attempts to use as GPS device lead to the next item on the list…

TomTom GO720

Dedicated GPS device. Also very bad iPod, MP3 player. Provided decent GPS directions that kept us from getting lost while traveling and moving to a new state. Everything other then the GPS functionality was pointless. Battery life a joke, if the USB power adapter bumped lose on the rough roads around here usually turned off a few minutes later with no warning.

Pair of Nokia 6650 phones

My wife and I used these phones for a long time. Good battery life, good signal, working bluetooth pairing. Calendar syncing never really worked right. Total joke trying to use the web. Wife’s was replaced with an iPhone 4S, mine with the next device.

Google One

Android at this point didn’t really work. I had this phone and would trade of a SIM between it and the Nokia, I never managed more then a day or so without going back to the Nokia. Simple things like TAKING A PHONE CALL, would often fail for odd and confusing reasons. Build quality wise, this was the WORST of the list. Keyboard was worse to use then the Treo.

Samsung Galaxy S

Web browsing worked fine, email worked fine. Typing was about the level of the Treo for speed but I found I did type longer with the soft keyboard then the old hardware one. Anything longer then an email was still painful. GPS sort of worked, but was overcome by the devices spectacular failure. Battery Life, the Galaxy S could NOT make it a whole day of use no matter how much I tried to baby it. I eventually got a custom home rolled kernel with a number of patches and the rest of the CyanogenMod distribution to work, but even then it would limp home with maybe 4% battery left. God help you if you made the mistake of turning on the GPS. Contemplating using more then one battery ended the day Apple shipped enough iPhone 5’s to the San Francisco Apple Store.

iPhone 5

Taking the photo, thus not in the photo. Best mobile web browser ever (Chrome iOS). Best email ever (Gmail). Best camera in a device ever. Totally sucks for note taking. Typing is no better then it was on the Treo. Contact and calendar management has gone no where since the Newton. Battery life… well, it makes it a whole day so battery life is just barely good enough.

Raspberry Pi

The best little computer ever. For less then $150 you can have a complete computer (keyboard, mouse, power supply, monitor) running Debian Linux that fits in your palm. This is magical. You don’t need to write your own board support package for it, you don’t need to flash your own boot loader eproms, you don’t have to hack around in Forth to GET your CPU to start booting in the first place. The computer is fast enough you don’t have to setup a complex cross compiler tool chain to get started, you can just apt-get install gcc. For anyone who worked in the embedded space a decade ago this little box is magical.

time vs data

There is a bug in HTML5 to remove time and replace it with data.

I think in general that <data> isn’t a bad idea. I agree that only being able to talk about <time> was a bit odd, and that many other values have the same effective use case. As mentioned by Ian Hixen:

  • dimensionless numbers (2.3)
  • numbers with units (5kg)
  • enumerated values, like months (February) or days of the week (Monday)
  • durations

However, I don’t think that data as it stands right now is done. As this example of the old <time> and new <data> shows there is a fairly heavy semantics loss from the change.

Published <time pubdate datetime="2009-09-15T14:54-07:00">on 2009/09/15 at 2:54pm</time> 

Assigned data to RDF via magic human transformation step simply to talk about what data is there. Displayed in Turtle.

 @prefix magic: <http://gavin.carothers.name/vocabs/magic#> . 
<> magic:pubdate "2009-09-15T14:54-07:00"^^xsd:dateTime . 

The HTML contains a reasonable amount of data. We know that the contents of datatime is an ISO datatime, we know that the relationship between that date time and the page is it’s publication date.

Published <data value="2009-09-15T14:54-07:00">on 2009/09/15 at 2:54pm</data> 

Again magic human transformation to Turtle.

@prefix magic: <http://gavin.carothers.name/vocabs/magic#> . 
[] magic:unknown "2009-09-15T14:54-07:00" . 

This time around don’t know much at all. We know that “2009-09-15T14:54-07:00” may some how be related to the current page. We don’t know how the string is formated, nor how the string is related to the page if it is at all.

As currently proposed <data> sure looks like a step backwards, but maybe it can be a step forward.

Just some invalid markup:

<data type="dateTime" value="2009-09-15T14:54-07:00" property="pubdate"> 

Just some RDFa:

<data datatype="xsd:dateTime" content="2009-09-15T14:54-07:00" property="magic:pubdate"> 

Just some microdata plus some datatype:

<data type="dateTime" value="2009-09-15T14:54-07:00" itemprop="pubdate"> 

Adding a generic data element without data typing doesn’t seem like a good idea. With datatyping I can see it working better then creating an element for every kind of data.

Earlier

  1. schema.org as RDFa (Part I)
  2. RDF Database Expectations
  3. Prefixes, not that complicated.
  4. Understanding Microdata, now with more understanding
  5. Trying to understand Microdata? RDFa?
  6. shutdown -r now
  7. Returning a Power Adapter for an External Hard drive
  8. Gratuitous Baby Photos
  9. gc.isenabled() == True