2008 Sep 3, 6:15"National University of Singapore's Mixed Reality Lab is fast becoming my favorite in cutting edge (and a little wacky - okay, a lot) research. Take, for instance, this project titled Poultry
Internet, where a chicken is outfitted with a special dress that lets its owner pet it over the Internet." Johnny Cat writes: "Kudos to Gonzo for inventing this." I can't get to the actual site with
the info on the project but it is available on the Wayback Machine.
chicken humor internet virtual-reality mixed-reality 2008 Aug 27, 11:36
Internet Explorer 8 Beta 2 is now available! Some of the new features from this release that I really enjoy are Tab Grouping, the new address-bar, and InPrivate Subscriptions.
Tab Grouping groups tabs that are opened from the same page. For example, on a Google search results page if you open the first two links the two new tabs will be grouped with the Google search
results page. If you close one of the tabs in that group focus goes to another tab in that group. Its small, but I really enjoy this feature and without knowing exactly what I wanted while using
IE7 and FF2 I knew I wanted something like this. Plus the colors for the tab groups are pretty!
The new address bar and search box makes life much easier by searching through my browsing history for whatever I'm typing in. Other things are searched besides history but since I ignore favorites
and use Delicious I mostly care about history. At any rate its one of the things that makes it impossible for me to go machines running IE7.
InPrivate Subscriptions allows you to subscribe to a feed of URLs from which IE should not download content. This is intended for avoiding sites that track you across websites and could sell or
share your personal information, but this feature could be used for anything where the goal is to avoid a set of URLs. For example, phishing, malware sites, ad blocking, etc. etc. I think there's
some interesting uses for this feature that we have yet to see.
Anyway, we're another release closer to the final IE8 and I can relax a little more.
microsoft browser technical ie8 ie 2008 Aug 25, 10:13
As noted previously, my page consists of the
aggregation of my various feeds and in working on that code recently it was again brought to my attention that everyone has different ways of representing tag metadata in feeds. I made up a
list of how my various feed sources represent tags and list that data here so that it might help others in the future.
Tag markup from various sources
Source
|
Feed Type
|
Tag Markup Scheme
|
One Tag Per Element
|
Tag Scheme URI
|
Human / Machine Names
|
Example Markup
|
LiveJournal
|
Atom
|
atom:category
|
yes
|
no
|
no
|
, (source)
|
LiveJournal
|
RSS 2.0
|
rss2:category
|
yes
|
no
|
no
|
technical
(soure)
|
WordPress
|
RSS 2.0
|
rss2:category
|
yes
|
no
|
no
|
, (source)
|
Delicious
|
RSS 1.0
|
dc:subject
|
no
|
no
|
no
|
photosynth photos 3d tool
(source)
|
Delicious
|
RSS 2.0
|
rss2:category
|
yes
|
yes
|
no
|
domain="http://delicious.com/SequelGuy/">
hulu
(source)
|
Flickr
|
Atom
|
atom:category
|
yes
|
yes
|
no
|
term="seattle"
scheme="http://www.flickr.com/photos/tags/" />
(source)
|
Flickr
|
RSS 2.0
|
media:category
|
no
|
yes
|
no
|
scheme="urn:flickr:tags">
seattle washington baseball mariners
(source)
|
YouTube
|
RSS 2.0
|
media:category
|
no
|
no
|
no
|
label="Tags">
bunny rabbit yawn cadbury
(source)
|
LibraryThing
|
RSS 2.0
|
No explicit tag metadata.
|
no
|
no
|
no
|
n/a, (source)
|
Tag markup scheme
Tag Markup Scheme
|
Notes
|
Example
|
Atom Category
atom:category
xmlns:atom="http://www.w3.org/2005/Atom"
|
-
category/@term
-
Required category name.
-
category/@scheme
-
Optional IRI id'ing the categorization scheme.
-
category/@label
-
Optional human readable category name.
|
term="catName"
scheme="tag:deletethis.net,2008:tagscheme"
label="category name in human readable format"/>
|
RSS 2.0 category
rss2:category
empty namespace
|
-
category/@domain
-
Optional string id'ing the categorization scheme.
-
category/text()
-
Required category name. The value of the element is a forward-slash-separated string that identifies a hierarchic location in the indicated taxonomy. Processors may establish conventions
for the interpretation of categories.
|
domain="tag:deletethis.net,2008:tagscheme">
MSFT
|
Yahoo Media RSS Module category
media:category
xmlns:media="http://search.yahoo.com/mrss/"
|
-
category/text()
-
Required category name.
-
category/@domain
-
Optional string id'ing the categorization scheme.
|
scheme="http://dmoz.org"
label="Ace Ventura - Pet Detective">
Arts/Movies/Titles/A/Ace_Ventura_Series/Ace_Ventura_-_Pet_Detective
|
Dublin Core subject
dc:subject
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
-
subject/text()
-
Required category name. Typically, the subject will be represented using keywords, key phrases, or classification codes. Recommended best practice is to use a controlled vocabulary.
|
humor
|
Update 2009-9-14: Added WordPress to the Tag Markup table and namespaces to the Tag Markup Scheme table.
feed media delicious technical atom youtube yahoo rss tag 2008 May 30, 10:52'"Richard Feynman reporting for duty. OK, boss, what's my assignment?" The assembled group of not-quite-graduated MIT students was astounded.... So we sent him out to buy some office supplies.'
history richard-feynman programming computer article essay technology physics science via:swannman 2008 May 28, 11:03
sequelguy posted a photo:
Shooting supplies sign has a teddy bear with a machine gun. "Mandall's Shooting Supplies"
street arizona sign gun teddybear scottsdale sarahsphoto 2008 May 18, 12:15'...he was recording Raleigh's HDTV channel WNCN-DT1 on his Vista machine when a popup stating that "restrictions set by the broadcaster...prohibit recording of this program" appeared.'
tv vista mce microsoft television video windows nbc via:boingboing 2008 May 16, 2:12Joshua trains crows to give him coins. "Joshua Klein's TED presentation about how he taught crows to drop coins into a peanut vending machine of his own design..."
hack crow ted video presentation joshua-klien 2008 May 12, 5:05"It uses moisture sensors to detect your plant's well-being, then connects to Twitter via Ethernet jack to send surprisingly human-like messages about the excruciating minutiae of your plant's
boring, sedentary life. Tweets about how much water it just ha
humor gift plant twitter hardware 2008 Mar 25, 11:05A trunk with a button. When you push the button the trunk opens, a robotic arm comes out and pushes the button again to turn itself off.
via:ethan_t_hein art robot trunk machine humor 2008 Mar 3, 9:10"If Star Wars was filmed two decades earlier and Saul Bass did the opening title sequence, it might look like this... This was a school project. The song is "Machine" by the Buddy Rich Band off the
album Big Swing Face (1967)."
via:ethan_t_hein starwars video mashup music saul-bass 2008 Mar 2, 9:18
This post is about creating a server side z-code
interpreter that represents game progress in the URI. Try it with the game Lost
Pig.
I enjoy working on URIs and have the mug to prove it. Along those lines I've combined thoughts on URIs with interactive fiction. I have a
limited amount of experience with Inform which generates Z-Code so I'll focus on pieces written in that. Of course we can already have URIs
identifying the Z-Code files themselves, but I want URIs to identify my place in a piece of interactive fiction. The proper way to do this would be to give Z-Code its own mimetype and associate
with that mimetype the format of a fragment that would contain the save state of user's interactive fiction session. A user would
install a browser plugin that would generate URIs containing the appropriate fragment while you play the IF piece and be able to load URIs identifying Z-Code files and load the save state that
appears in the fragment.
But all of that would be a lot of work, so I made a server side version that approximates this. On the Web Frotz Interpreter page, enter the URI of a
Z-Code file to start a game. Enter your commands into the input text box at the bottom and you get a new URI after every command. For example, here's the
beginning of Zork. I'm running a slightly modified version of the Unix version of Frotz. Baf's Guide to the IF Archive has lists of IF games to try out.
There are two issues with this thought, the first being the security issues with running arbitrary z-code and the second is the practical URI length limit of about 2K in IE. From the Z-Code
standard and the Frotz source it looks like 'save' and 'restore' are the only commands that could do anything interesting outside of the Z-Code virtual machine. As for the length-limit on URIs I'm
not sure that much can be done about that. I'm using a base64 encoded copy of the compressed input stream in the URI now. Switching to the actual save state might be smaller after enough user
input.
zork frotz interactive-fiction zcode if technical uri fragment 2008 Feb 25, 2:09"ZPlet is an interpreter for programs using the Z-Machine virtual machine invented by Infocom for their interactive fiction." Used by to let you play the Hitchhiker's Guide to the Galaxy IF game.
development if interactive-fiction java opensource 2008 Jan 9, 11:34
IPv6 address syntax consists of 8 groupings of colon delimited 16-bit hex values making up the 128-bit address. An optional double colon
can replace any consecutive sequence of 0 valued hex values. For example the following is a valid IPv6 address: fe80::2c02:db79
Some IPv6 addresses aren't global and in those cases need a scope ID to describe their context. These get a '%' followed by the scope ID.
For example the previous example with a scope ID of '8' would be: fe80::2c02:db79%8
IPv6 addresses in URIs may appear in the host section of a URI as long as they're enclosed by square brackets. For example:
http://[fe80::2c02:db79]/
. The RFC explicitly notes that there isn't a way to add a scope ID to the IPv6 address in a URI. However a draft document describes adding
scope IDs to IPv6 addresses in URIs. The draft document uses the IPvFuture production from the URI RFC with a 'v1' to add a new
hostname syntax and a '+' instead of a '%' for delimiting the scope id. For example: http://[v1.fe80::2c02:db79+8]/
. However, this is still a draft document, not a final
standard, and I don't know of any system that works this way.
In Windows XPSP2 the IPv6 stack is available but disabled by default. To enable the IPv6 stack, at a command prompt run
'netsh interface ipv6 install'. In Vista IPv6 is the on by default and cannot be turned off, while the IPv4 stack is optional and may be turned off by a command similar to the previous.
Once you have IPv6 on in your OS you can turn on IPv6 for
IIS6 or just use IIS7. The address ::1 refers to the local machine.
In some places in Windows like UNC paths, IPv6 addresses aren't allowed. In those cases you can use a Vista DNS IPv6 hack that lives in the OS
name resolution stack that transforms particularly crafted names into IPv6 addresses. Take your IPv6 address, replace the ':'s with '-'s and the '%' with an 's' and then append '.ipv6-literal.net'
to the end. For example: fe80--2c02-db79s8.ipv6-literal.net
. That name will resolve to the same example I've been using in Vista. This transformation occurs inside the system's local
name resolution stack so no DNS servers are involved, although Microsoft does own the ipv6-literal.net domain name.
MSDN describes IPv6 addresses in URIs in Windows and I've described IPv6 addresses in URIs in IE7. File URIs in
IE7 don't support IPv6 addresses. If you want to put a scope ID in a URI in IE7 you use a '%25' to delimit the scope ID and due to a bug you must have at least two digits in your scope ID. So,
to take the previous example: http://[fe80::2c02:db79%2508]/
. Note that its 08 rather than just 8.
roundup ip windows ipv6 technical microsoft boring syntax 2008 Jan 2, 8:57
Two and half weeks ago Sarah and I went to Las Vegas where I got to
see Jesse, Pat, Chris, and (briefly because he's some kind of big shot too busy for his friends now etc) Grib from college. They're mostly in San Jose and I hadn't seen them for a while so it was a
lot of fun to hang out. We all stayed at the MGM which is a nice hotel with some good restaurants. In other Vegas related links, Sarah added Sarah's Las Vegas restaurant reviews to her reviews and Jesse has Jesse's Vegas
photos up too.
Sarah and I saw the Blue Man Group (video from a concert) and the Price is Right Live Show. The Blue Man Group
was very cool although the music was all rock with a heavy drum focus (not depicted in the videos I linked) which I got a little tired of. But despite that I really enjoyed the show, very funny and
I totally recommend it. The Price is Right Live Show is like the regular show on TV except the recording is not televised and its not hosted by Bob Barker or Drew Carey. So folks from the audience
are still called up to play the same games and really win prizes. It was advertised as hosted by Todd Newton, B-list game show host, but was instead
hosted by JD Roberto who hosted such things as "Reality Remix" and the show "Are You Hot? The Search for America's Sexiest People". The showcase
showdown included the 2008 version of my car and thankfully I wasn't picked to compete for that because, well I don't know where they bought the car, but I would have gotten the price very wrong.
We sat right next to the stage for that show and had a good time.
For New Years Eve Sarah and I stayed in and watched the glitched Seattle Space Needle fireworks show from a safe distance. On New Years we went to a pot-luck at Todd's house and had a fun time. Todd's place
is on the top of a hill and has a lovely view of Washington's snow-capped mountains.
newyear vegas lasvegas personal bluemangroup 2007 Dec 6, 12:24The spec for FeedSync which allows for synchronizing RSS and Atom files among multiple machines.
sse rss atom feedsync feed specification microsoft 2007 Nov 28, 1:23One of the new Zune features that had me the most excited was the claimed improved Windows Media Center integration which unfortunately turned out to simply mean support for the Win MCE video format
(
with an exception for HD). I wanted to be able to pick shows recorded by my Win MCE and have the Zune automatically sync up the
latest episodes. However, with the improved podcast support in the Zune software one can easily create a ridiculous hack to accomplish this.
The new Zune software has podcast support which does everything I'd want to do with a
Win MCE recorded TV series so the goal is to shoehorn a TV series into a Zune podcast. An overview of the steps: Create an XSLT that converts Win MCE data to a podcast, run the XSLT as a scheduled
task every few hours per TV series, setup a Web server pointed at the resulting podcasts and the Win MCE Recorded TV directory, and subscribe to the resulting podcasts in the Zune software.
- Reading through the Win MCE data stored as an XML file in "C:\ProgramData\Microsoft\eHome\Recording\Recordings.xml" and the spec for podcasts I created an XSLT to convert a series from Win MCE data to a podcast.
- I added a new task to the Scheduled Tasks to run my XSLT using my xsltproc.js script. The task runs a handful of commands that look something like the following:
C:\windows\system32\wscript.exe C:\users\dave\bin\xsltproc.js C:\Users\Dave\Documents\trunk\development\mce-zune\mce-to-podcast.xslt
C:\ProgramData\Microsoft\eHome\Recording\Recordings.xml --param title "The Daily Show With Jon Stewart" --param max 4 --param baseURI "http://groucho/" --param thisRelURI "tds.xml" -o
"D:\recorded tv\tds.xml"
For each TV series I run a command like the above and that outputs a podcast for that series into my "D:\Recorded TV\" directory.
- Zune only allows http URIs for its podcasts so I installed a web server on my Win MCE server. I'm running Vista Ultimate so it was quick and easy for me to install IIS7 but any Web server will do. Then I pointed it at "D:\Recorded TV\".
- Once all the above was done I just subscribed to the resulting podcasts via my Web server and viola! Since I'm forced to use a Web server I can even run the Zune software on a machine other
than my Win MCE server. You can see a screen-shot above of my Zune software showing my Colbert Report podcast.
technical xml mce hack windows media center zune windows xslt podcast 2007 Oct 14, 3:12I've updated my homepage by moving stuff about me onto a separate
About page. Creating the About page was the perfect opportunity
to get
FoaF, a machine readable way of describing yourself and your friends, off my to do list. I have a
base FoaF file to which I add friends, projects, and accounts
from delicious
using an XSLT. This produces the
FoaF XML resource on which I use another
XSLT to convert into HTML and produce the About page.
I should also mention a few FoaF pages I found useful in doing this:
-
FOAF Vocabulary Specification - The standard on which I based my XSLT to add in info from delicious.
-
FoaF Explorer - Turns any RDF XML FOAF resource into a webpage with links to the other people, projects, etc mentioned in the FOAF file.
-
FoaF-a-Matic - I used this to produce my base FoaF file.
-
RDF Validator - This is the closest thing I could find for validation. It does RDF in general but unfortunately not FoaF specifically. I found two
links to sites that are down or dead that claimed to do what I actually wanted.
technical xml foaf personal xslt xsl homepage 2007 Jul 13, 8:30I bought an external backup drive a few weekends ago. I've previously setup a
Subversion repository so I decided to move everything into the repository and
then back it up. So in went the contents of all of my %USERPROFILE% and ~ directories with a bit of sorting and pruning. Not too much though given its much easier to dump in everything and search for
what I want then to take the time to examine and grade each file. What follows are the notes I took while setting this up. It takes me a bit of time to look up the help on each command so I figure
I'll write it all down here for the benefit of myself and potentially others...
Setting Up the Backup Drive For Linux
I first changed the filesystem on the drive to ext3. I plugged it into my USB2.0 port and ran fdisk:
sudo fdisk /dev/sda
Useful commands I used to do this follow mostly in order:
-
m
-
help
-
p
-
print current partitions
-
d
-
delete current partition
-
n
-
create new partition (I used the defaults)
-
w
-
write changes and exit
Then I formatted for ext3.
sudo mkfs.ext3 /dev/sda1
I made it easy to mount:
sudo vim /etc/fstab
# added line to end:
/dev/sda1 /media/backup ext3 rw,user,noauto 0 0
I setup the directory structure on the disk
mount /media/backup
sudo mkdir /media/backup/users
sudo mkdir /media/backup/users/dave
sudo chown dave:dave /media/backup/users/dave
After all that its easy to make a copy of the Subversion repository:
mount /media/backup
cp -Rv /home/dave/svn /media/backup/users/dave/
umount /media/backup
Next on the agenda is to add a cron job to do this regularly.
Subversion Command Reference
On a machine that has local access to the Subversion repository you can check out a specific subdirectory as follows using the file scheme:
svn co file:///home/dave/svn/trunk/web/dave%40deletethis.net/public_html
Note also that although one of my directories is named 'dave@deletethis.net' Subversion requires the '@' to be percent-encoded.
Other useful subversion commands:
-
svn help
-
help
-
svn list file:///home/dave/svn/
-
list all files in root dir of svn depot
-
svn list -R file:///home/dave/svn/
-
list all files in svn depot
-
svn list -R file:///home/dave/svn/ | grep \/$
-
list all directories
-
svn status
-
List status of all files in the working copy directory as in - modified, not in repository, etc
-
svn update
-
Brings the working copy up to date wrt the repository
-
svn commit
-
Commit changes from the working copy to the repository
-
svn add / move / delete
-
Perform the specified action -- occurs immediately
Setting up Windows Client for Auto Auth into SVN
When using an SVN client on Windows via svn+ssh its useful to have the Windows automatically generate connections to the SVN server. I use
putty on my Windows machines so I read the directions on
using public keys with putty.
putty.exe dave@deletethis.net
cd .ssh
vim authorized_keys # leave the putty window open for now
puttygen.exe
Click the 'generate' button
Move the mouse around until finished
Copy text in 'Public key for pasting into OpenSSH authorized_keys file:' to putty window & save & close putty window
Enter Key passphrase & Comment in puttygen
Save the private key somewhere private
pageant.exe
'Add Key' the private key just saved.
Checking out using Tortoise SVN
On one of my Windows machines I've already installed Tortoise SVN. Checking out from my SVN repository was really easy. I just right clicked in Explorer in a directory and selected "SVN Checkout...".
Then in the following dialog I entered the svn URI:
svn+ssh://dave@deletethis.net/home/dave/svn/trunk/web/dave%40deletethis.net/public_html/
Note again that the '@' that is part of the directory name is percent-encoded as '%40' while the '@' in the userinfo is not.
Windows Command Line Check Out
On my media center I didn't want to install Tortoise SVN so rather I used the
command line tool. I setup pageant like before the only
difficulty was getting the SVN command line tool to use putty. With the default configuration you can use the SVN_SSH environment variable to point at a compliant SSH command line tool. The trick is
that its interpreted as a backslash escaped string. So I set mine thusly:
set SVN_SSH=C:\\users\\dave\\bin\\putty\\plink.exe
The escaping solved the vague error I received about not being able to create the tunnel.
backup technical personal windows svn linux subversion 2007 Jun 17, 10:40FTA: "Let an ultraintelligent machine be defined as a machine that can far surpass all the intellectual activities of any any man however clever. Since the design of machines is one of these
intellectual activities, an ultraintelligent machine could de
ai article human intelligence internet philosophy evolution essay scifi technology science future singularity 2007 May 13, 12:16My parents and grandmother came to visit the weekend before this current weekend, starting Friday May 4th. They arrived via their new motor-home which is quite the machine. Of course its my parents
motor-home so its very well decorated inside including drapes and mini-chandelier. I didn't have a memory card for my camera at the time but I'm sure my parents will put up photos on their
new blog dedicated to their motor-home at some point in the future.
At any rate, they parked the motor-home in an
RV park in Issaquah so that Friday night I drove over to them and we ate at the conveniently
closely located
Pogachas. The next day they came over and I showed them the various cool looking things my computer connected to my flat
screen TV can do. This includes
Vista Media Center showing my photos from recent trips and
Google Earth mapping out our respective homes and my recent trips (and Paris). Additionally, we played Wii which, unsurprisingly based on anecdotal evidence
from varied sources across the Internet, was a seeming hit. Mom broke records playing bowling with my dad and I, Dad did an excellent job fishing, and Grandma's slow but steady win's the race
approach to cow racing worked very well.
The next day I drove them to Seattle and we walked around Pike's Place. My parents made dinner that night at my place which was very good and made my apartment actually smell like cooked food. Also,
we exchanged Christmas gifts. For the past two years I've flown back to my parents' house for Christmas and ended up with gifts I couldn't take with me in both directions. Those I left at their house
they drove up and I was able to give them the ones I left at my place. They started the drive back the next day. I really enjoyed seeing them here.
motorhome family personal nontechnical