2007 Dec 26, 5:45Miscellaneous thoughts I had that would have been relevant many months ago:
- A History Channel program had a reenactment of a 1920's archaeologist discovering a stone tablet, sending the tablet to a warehouse, etc. all behind the voice over giving the dry facts. The
reenactor hammed it up a bit and I would have rather had clips from Indiana Jones in the background. If they're already not showing me the archaeologist who discovered the tablet, they may as well
show me one who will be entertaining.
- There are many parodies of the Get a Mac ads and so when I saw a UK Get a Mac ad I payed attention to see what the joke was. I was
disappointed by the 'parody' because it was a conventional Get a Mac ad with different actors. Apple localized their Get a Mac ad campaign in this fashion in the UK and in Japan. I've got a
playlist of the US, UK, and Japan's version of the Piechart ad. Ranking the lovable bumblingness of the PC I give the order
UK, Japan, then US and ranking the sumgness of the Mac I give the order UK, US, then Japan. But don't take my word for it, view
the ads for yourself.
-
Yahoo Pipes lets users generate an RSS feed altering service that runs on Yahoo's server using a GUI. This is very different from Microsoft's Popfly which allows users to component-ize and share javascript utilities that run client side on a webbrowser. Both have the awesome power of buzzword associations
like 'Web 2.0' and 'Mashup' but in my mind Yahoo Pipes is for server side RSS feed modification and Popfly is about client side javascript webpages. And neither will allow me to run an arbitrary
XSLT =).
popfly apple personal history-channel indiana-jones pipes mac technical microsoft mashup yahoo nontechnical 2007 Dec 24, 12:41These days it seems like there's a social sharing website for everything representable as bits. Like
Scribd for (mostly legal) documents,
SciVee for scientific research videos,
Wordie for words, and
Kuler for color themes. Kuler seems
like a ridiculous website (overkill) but I had been meaning to update my homepage's color design and Kuler has an
RSS based REST API.
The API lets you obtain things like the most recently added color themes or the most popular or all themes containing the color dark red, etc... So of course rather than update my website's design I
hooked up my css to the color themes coming out of Kuler. Select my main page's color theme from a
list of random Kuler themes. As I'm sure
the regular readers can guess I use
an xslt and blah blah blah... It looks OK with
Silver Surfer and
Happy Hipo but in general
changing the colors this way doesn't produce something pretty.
When reading about Kuler I found that they may have stolen the whole idea wholeslae from
ColourLovers. They discuss
the thievery in an article on their blog. I would have switched over to ColourLovers out of principle but
they don't have an easily accessible API.
colourlovers color xslt theme homepage technical kuler design 2007 Dec 11, 12:31I wanted to give a brief update on what's been going on for me this weekend and the previous two.
Two weekends ago Sarah and I went down to Santa Cruz for a long weekend and a belated Thanksgiving. I have yet to sort through the photos but Sarah has already put up the
photos from our California trip. There's some nice shots from the Monterey Bay Aquarium in there and the place where we
stayed. It was a good trip and I'll write more about it at some point in the future.
This past weekend Sarah and I went bowling with Eric and Jane and other friends. And no bowling experience is complete without a DJ and black lights. Surprisingly my work shirt looked great in the
blacklight.
This coming weekend Sarah and I will stay at the MGM in Las Vegas where I'll meet up with college friends I haven't seen in a while. Previously the only non-gambling thing I did in Vegas was buffets
and
the Star Trek Experience (I'm cool) but this time we'll see some more shows which should be fun.
lasvegas personal bowling california weekend nontechnical 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 Nov 28, 5:07Vishu, my ex-office-mate, has left Washington and Microsoft for California and Facebook. Vishu and I shared an office for a while and I really enjoyed it. We were able to distract one another from,
and help each other with work. We'd often bounce ideas off of one another, work related or otherwise. For one such idea I recently received a Microsoft patent cube, a small marble cube inscribed with
my and my invention's name. There are some photos of
other people's patent cubes on flickr. Vishu
would have received one for this idea too since we developed the idea and wrote the document about it together, but they wait a long time to send you the cube and he was gone a few weeks before they
sent it (don't worry, he got the credit and other rewards though).
A week or two after I got my cube Vishu was visiting the Microsoft campus just before moving his family down with him to California. A bunch of us joined him for lunch that day and it sounds like
he's enjoying his new job already. Have fun Vishu!
microsoft facebook vishu cube patent nontechnical 2007 Nov 19, 3:47I really appreciate that
the first gen Zune's get the new Zune's
firmware and software. I like the updated Zune software personally because its faster and simpler, has better podcast support, and the whole social thing has is on their website now. So, I guess
I like the software because it has new features that should have been there in the first place.
The social thing is like a Zune social network. It uses your Xbox Live friends to seed your Zune friends list, lets you do the expected social network stuff, lets you preview songs, and unlike first
gen Zunes which required face to face time with other Zune owners, allows you to send songs to people. It also lets you display your recently played tracks and your favorite tracks, similar to what
Last.FM has, via a
Zune Card. I like the Zune Card from a technical perspective because it
separates
the
Zune Card view, written in flash from the
User Card data which is in XML. I hope
they intend to keep the XML available via this UserCard Service because I think there's potential to easily do cool things.
microsoft technical music zune social 2007 Nov 19, 12:35Two weekends ago I went down to California for Angie and Kane's
going away party. It was fun despite going to a country western club. It was a very large place with plenty of space for line dancing, a dentist chair turned into a make-margaritas-in-your-mouth
chair, and of course a mechanical bull. Surprisingly, I did not fit in.
This past weekend Sarah and I went to the
EMP and SciFi Museum. The last time I was there was for the Star Trek convention (I'm cool) and Sarah hadn't been before. We also ate in the attached diner which
was acceptable.
emp seattle nontechnical 2007 Nov 9, 2:38Jon's leaving for Germany today which of course is sad. On Wednesday, Jon came over and we watched
Hackers. There's a few things you probably wouldn't
notice without repeated viewings of the film:
- Phantom Phreak is arrested and you never hear what happens to him. This is unlike Joey who is arrested but appears in the final hacking scene.
- Marc Anthony appears in the movie as a secret service agent.
- Everyone in the movie loves Coke.
- Hackers is the greatest movie of all time: it represents the pinnacle of human artistic achievement.
In similar ex college roommate news, I'm going to California over the weekend for Angie and Kane's goodbye party. They're heading for Australia for like a year or something. Angie's got a
blog about her travels but rarely seems to update it. I'll get to see Carissa and Elijah there too, almost completing the ex college roommate
experience. To avoid confusion I should mention that unlike everyone else I know, Carissa and Elijah aren't leaving the country.
personal nontechnical 2007 Nov 4, 11:20This weekend Sarah and I went to Tariq's house warming party in Issaquah and then to Seattle for Jon's going away party at Pike's Pub. On the drive over, just after getting through traffic on I-5
South, I saw emergency vehicles lights on the North bound side and suddenly found my lane stopped. I found out why when a man ran from the left most lane to my lane the right most, then darted left
one lane and back right again. Cars started leaving my lane and I could see the man now lounging on the pavement in front of a jeep. Apparently not hurt, he got up and started walking down the
highway. He didn't appear to be in his right mind and after walking by our car Sarah reported it to 911. The rest of the night went on as normal and I had fun with Jon and his friends. It'll be sad
to see him go next week.
nontechnical 2007 Oct 29, 7:07Two brief updates to previous posts:
- I noted that I had a new entry on the IE blog. Some comments on the IE blog have recently been rude in their request for information
on future versions of IE. For example see the first two comments responding to my post. Feeling bad about that
I looked at my posts entry on delicious and saw the following:
"This is the first blog from the IE team that I have found rigorous and informative. I skipped to the bottom to find it was written by one of the TA's from my first class at Cal
Poly."
That made me feel a bit better and I was able to catch up with someone from college. Thanks Kris!
- I previously had my GPS set with an Australian accent. When it encountered 'WA', as in the abbreviation for Washington in freeway
exits, it pronounced it 'Western Australia'. Now I've got it with a British accent and WA is just 'W.A.' but when I tell it to drive to 'MS', the name of my saved location for work, it pronounces
it 'Manuscript'.
microsoft blog gps personal nontechnical 2007 Oct 22, 4:47I purchased the
Orange Box off of Steam a bit ago and like
others before me who have
discussed elsewhere, I already owned two of the five games that come from the Orange Box. However, the combined price of
HL2E2 and Portal, the two games I actually wanted was supposedly equivalent to the price of the Orange Box bundle. Incidentally, if anyone would like HL2 or HL2E1 I can
gift them to you.
HL2E2 was excellent of course but the big surprise for me was Portal. (Mild spoilers follow) It has a sort of zen simplicity: there are a few simple game-play mechanics, a handful of textures and
objects, and a deceptively simple story all used well and tied together to produce an entertaining and polished game. It seems a bit short but its probably better to end with the gamer demanding
more. The humor and the sort of
play within a play aspect of the game is what really sold me though. It has the funniest
ending theme I've heard (also
blogged by the creator). The voices of the automated turrets are so adorable I would feel compelled to hug them if they weren't
always trying to kill me. Additionally the
weighted companion cube seems like an experiment in understanding gamers'
attachment to NPCs. In this case the NPC is a box and yet I still felt awful incinerating it. The whole time I was vaguely reminded of
Solitary the reality show
that sticks contestants alone in small rooms forcing them to endure various tests all the while being watched by a humorous computer with a female voice. Someone should sue...
RPS has articles on Portal including
a Portal review, a page
suggesting Portal is a tale of
lesbianism, and
others.
hl2e2 game hl2 solitary valve portal nontechnical 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 Oct 12, 3:20And now to fit in better with the rest of the emo kids on LJ, in no particular order here are some reasons why I feel old:
- I've attended friends weddings sorted chronologically by when I met them: Lucas from high school, followed by Carissa from college,
and then Palak from Microsoft.
- I rarely get carded for alcohol.
- Jon's moving to Germany soon -- this time permanently. He's already started the process of getting rid of possessions he's not taking with him like his car and TV. However, after doing so he
couldn't maintain his smug "I don't even own a TV" attitude and ended up trading me my small CRT TV
(as mentioned previously) for his DDR pads and games. A good trade for both since we were each looking to dump these items. So far I've
only convinced Sarah to try DDR once with me. Somehow I've gotten much worse at something I wasn't that great at to begin with.
- I have business cards.
- I still have semi-monthly nightmares in which I'm taking a Linear Algebra course for which I haven't studied or done homework in years. This differs from the more frequent nightmares I had
immediately after finishing that series of classes in which I was taking the final and it was all on the one topic I didn't study. In reality, the prof. had done his PhD work on this one topic and
I, correctly betting it wouldn't appear on the final, didn't study it. Apparently this was a traumatic bet for me to make given the wake of destruction left on my dreams.
- I have to remind myself that 2005 was two years ago.
personal nontechnical 2007 Oct 7, 4:12In a
previous post I mentioned an xsltproc like js file I made. As noted in that post, on Windows you can write console script files in
JavaScript, name them foo.js, and execute them from the command prompt. I later found that
MSDN has an XSLT javascript sample
which looks similar to mine, but I like mine better for the XSLT parameter support and having a non-ridiculous way of interpreting filenames. The code for my xsltproc.js follows. The script is very
simple and demonstrates the ease with which you can manipulate these system objects and all it takes is opening up notepad.
var createNewXMLObj = function() {
var result = new ActiveXObject("MSXML2.FreeThreadedDOMDocument");
result.validateOnParse = false;
result.async = false;
return result;
}
var args = WScript.arguments;
var ofs = WScript.CreateObject("Scripting.FileSystemObject");
var xslParams = [];
var xmlStyle = null;
var xmlInput = null;
var inputFile = null;
var outputFile = null;
var error = false;
for (var idx = 0; idx < args.length && !error; ++idx)
if (args.item(idx) == "-o") {
if (idx + 1 < args.length) {
outputFile = ofs.GetAbsolutePathName(args.item(idx + 1));
++idx;
}
else
error = true;
}
else if (args.item(idx) == "--param" || args.item(idx) == "-param") {
if (idx + 2 < args.length) {
xslParams[args.item(idx + 1)] = args.item(idx + 2);
idx += 2;
}
else
error = true;
}
else if (xmlStyle == null) {
xmlStyle = createNewXMLObj();
xmlStyle.load(ofs.GetAbsolutePathName(args.item(idx)));
}
else if (xmlInput == null) {
inputFile = ofs.GetAbsolutePathName(args.item(idx));
xmlInput = createNewXMLObj();
xmlInput.load(inputFile);
}
if (xmlStyle == null || xmlInput == null || error) {
WScript.Echo('Usage:\n\t"xsltproc" xsl-stylesheet input-file\n\t\t["-o" output-file] *["--param" name value]');
}
else {
var xslt = new ActiveXObject("MSXML2.XSLTemplate.3.0");
xslt.stylesheet = xmlStyle;
var xslProc = xslt.createProcessor();
xslProc.input = xmlInput;
for (var keyVar in xslParams)
xslProc.addParameter(keyVar, xslParams[keyVar]);
xslProc.transform();
if (outputFile == null)
WScript.Echo(xslProc.output);
else {
var xmlOutput = createNewXMLObj();
xmlOutput.loadXML(xslProc.output);
xmlOutput.save(outputFile);
}
}
js xml jscript windows xslt technical xsltproc wscript xsl javascript 2007 Oct 3, 2:55Similar to the previous piracy ad parody but this is what the ad would look like if it were technically accurate.
via:felix42 copyright law legal piracy advertising humor video 2007 Sep 27, 2:17Starting on a new simple project I wanted to get the history of my Delicious links. Delicious has an export tool available via the settings section so I thought I'd try that. However, the links
aren't exported in XML not even in XHTML but rather in HTML. Shocking. An example:
"Don't Tase Me, Bro!" (UF Student Tasered Remix)
Remix of the 'Don't tase me, bro!' guy getting tasered.
At this point I'm already not going to use this file because its in HTML but I'm even more disgusted by those date time values.
Raymond Chen of the Old New Thing posted about recognizing timestamps and timestamp sentinel values. From the first blog post and with the use of a calculator for base conversion one can tell that
those are UNIX style timestamps counting the number of seconds since 1970.
It reminds me of my hatred for the MIME date time format I developed working on my webpage's server side parsing of atom and RSS. Atom is
of course my favorite as Atom uses the Internet date time format described in the following documents. Here's an example of one
2007-09-27T020:50:00.000-08:00
On the other hand the evil and villainous RSS uses the MIME date time format now described in the more
recent IETF MIME standard. Here's an example Thu, 27 Sep 2007 20:50:00 -0800
The Internet date time format has the advantage of being so easy to sort. An alphabetic sort with normal C-style collation rules of strings containing Internet date times will also sort them
chronologically. This is not the case for the MIME date time due to the preceding day of the week and the spelled out month name. This also means that when producing these you have to figure out
the day of the week and when parsing them you have to match month names rather than just parsing out numbers. Anyway now days if I see mention of a date time in a new proposed standard or spec I be
sure to point out the numerous advantages of the Internet date time format.
date xml html feed time technical date-time code atom rss 2007 Sep 18, 2:16Sarah got me the
Garmin StreetPilot c580 for my birthday last month. I really like this because its a small device that makes my
life easier without me having to learn anything new. Just the way tech. should be.
The device gets current weather, traffic, and movie times. The information is sent via FM and received via the FM receiver in the cigarette lighter power adapter of the GPS device. MSN sends out this
info and I get a free one year subscription. In addition to taking traffic info into account when planning my route it will estimate the number of minutes I'm going to spend in traffic. Just knowing
how long I might be in traffic somehow makes it more bareable.
The other day while driving for dinner I got a call. I got my phone out of my pocket and answered it. I heard Jon's saying 'Hello' under my passenger seat. After a moment of confusion I remembered
that the GPS device also acts as a bluetooth hands free phone adapter and that it was under my seat.
gps garmin personal traffic nontechnical 2007 Sep 14, 7:37I previously mentioned how much I enjoyed
my new office. Well my team has moved to a new building and although we get more offices total
meaning no one on the team has to share an office, this building has less windowed surface area which means less people get window offices. Since I received the window office recently I'm kicked out
now in FIFO order. Stacks are so sad.
microsoft work personal office nontechnical 2007 Sep 11, 2:55There's been
some news recently on some guy hating on FireFox for its ad-blocking.
On a similar note here's a fun tip for IE7 users I got from Eric. You can get decent ad-blocking in IE7 by putting ad servers in the restricted zone. By default script inclusion is blocked between
different zones so you can put domains that serve up ads in your restricted zone after which, normal internet zone sites won't be able to include script from them. This covers most of the ads I run
into these days.
I use
Fiddler to figure out the domains that are serving up ads which incidentally also has an ad-blocking^H^H^H^H general purpose content blocking plugin. Here's
a screenshot of Slashdot and ArsTechnica from my browser. Notice the large blank areas in the screenshots:
ad-blocking personal ad ie7 technical browser tip ie