2009 Aug 18, 4:19
Before we shipped IE8 there were no Accelerators, so we had some fun making our own for our favorite web services. I've got a small set of tips for creating Accelerators for other people's web
services. I was planning on writing this up as an IE blog post, but Jon wrote a post covering a
similar area so rather than write a full and coherent blog post I'll just list a few points:
- The first thing to try is looking for developer help for the web service, specifically if there's a REST-ful URL based API. For example, Bing Maps has great URL API documentation that would
be enough to create an Accelerator.
- The Accelerator XML is very similar to HTML forms. If you can find an HTML form for the web service for which you want to create an Accelerator, you can view the HTML source and create an
Accelerator based on that.
- I created the FormToAccelerator extension based on the previous idea. You can
use the extension to create an Accelerator from an HTML form, or just use it to create the start of one and edit it manually after.
- If the page doesn't use an HTML form, you can start up an HTTP debugger like Fiddler, use the web service from the normal web
page, and then in Fiddler see if you can find a REST-ful looking URL you can use.
- When looking to create a preview for your Accelerator, see if the web page for the web service has a mobile version or a version that's intended to embed in other web pages via an iframe. On
this same line, iPhone apps make great Accelerators usually with lovely previews.
- If there's no mobile or embeddable version and the only thing wrong with the normal web page for the web service is that the useful information doesn't fit in the preview window then see if you
can find an HTML tag with a name or id near the useful information, and stick a '#' fragment pointing to that tag onto the preview URL template.
- Without a reasonable REST-ful API you can use a combination of Google's "site:" and "I'm Feeling Lucky" to find the most relevant page on a particular site.
- The value of a name and value pair need not consist of only a single Accelerator variable. You can get creative and put other text in there. For instance, I implemented a Google currency conversion by setting the query to "{selection} in US Dollars".
technical accelerator ie8 ie 2009 Jul 28, 5:07Suggests that local news must provide the raw facts and only in particular cases do a 'story' on top of that -- not everything needs to be a story.
news via:sambrook journalism 2009 Jul 27, 4:23"To find the local time in another time zone, simply roll the clock so the city representing that time zone is on top."
clock time timezone 2009 Jul 25, 3:23
There's no easy way to use local applications on a PC as the result of an accelerator or a search provider in IE8 but there is a hack-y/obvious way, that I'll describe here. Both accelerators and search
providers in IE8 fill in URL templates and navigate to the resulting URL when an accelerator or search provider is executed by the user. These URLs are limited in scheme to http and https but those
pages may do anything any other webpage may do. If your local application has an ActiveX control you could use that, or (as I will provide examples for) if the local application has registered for
an application protocol you can redirect to that URL. In any case, unfortunately this means that you must
put a webpage on the Internet in order to get an accelerator or search provider to use a local application.
For examples of the app protocol case, I've created a callto accelerator that uses whatever application is
registered for the callto scheme on your system, and a Windows Search search provider that opens Explorer's search
with your search query. The callto accelerator navigates to my redirection page with 'callto:' followed by the selected text in the fragment and the redirection page redirects to that callto URL.
In the Windows Search search provider case the same thing happens except the fragment contains 'search-ms:query=' followed by the selected text, which starts Windows Search on your system with the
selected text as the query. I've looked into app protocols previously.
technical callto hack accelerator search ie8 2009 May 25, 10:19"Wallace and Gromit return-this time as purveyors of the Top Bun bakery, despite the fact that 12 other local bakers have disappeared in the previous year. Now it's up to Gromit to solve the mystery
while Wallace woos new love interest Piella Bakewell."
humor movie wallace-and-gromit animation claymation for:hellosarah 2009 Apr 7, 10:45HTML 5 allows websites to register themselves as handlers of particular URI schemes and particular content-types. I think this is great, but I'm surprised it doesn't support POSTing files to allow
for interactions with local content.
html5 url uri protocol reference html standard javascript webbrowser registerProtocolHandler 2009 Feb 26, 11:52This is what I'd like in a newspaper: "1: Focus on original content, do not rewrite wire stories or press releases." and "2: Focus on hyper-local coverage, newspapers should "own" their regional beat
because they have the best contacts and the best understanding of local companies and issues."
via:sambrook newspaper advertising business journalism internet 2009 Feb 5, 8:39The long expired draft of the Web Proxy Autodiscovery Protocol (WPAD). To summarize, use DHCP and failing that DNS to find the name of a web server and on that web server find a Proxy Auto-Config
file at a well known localtion.
wpad proxy internet reference browser dns dhcp 2009 Feb 4, 4:16From Sorting it all Out wrt the weather gadget in Vista's sidebar, this link to China's laws on weather forecast: "Article 22 The State applies a unified system for the issue of public meteorological
forecast and severe weather warning... No other organizations or individuals may issue to the community such forecast or warning." "Article 25 When the media, including radio, television, newspaper
and telecommunication, issue to the community public meteorological forecast or severe weather warning, they shall use the latest meteorological information provided by a meteorological office...
Part of the revenues from the distribution of meteorological information shall be drawn to support the development of meteorological service." Whether an application is legally allowed to provide a
weather forecast is not an attribute I would have imagined necessary for a localization API.
via:michael-kaplan china law legal politics weather forecast localization 2008 Sep 8, 11:40"Up and Then Down: The lives of elevators. by Nick Paumgarten". A story on elevators, the people behind them, elevator mishaps, etc. Interesting article.
article elevator history design newyorker 2008 Jul 21, 10:36
Saturday we went to Kirkland Uncorked,
a wine tasting festival near our home. We took the bus and after finding the correct one (they really should have different numbers for buses that are on the same route but traveling in different
directions) made it to the festival. Unfortunately I don't remember any of the names of the wines just which ones I enjoyed by order. Recalling that I enjoyed the first one I had and the second to
last one, doesn't really help me find them again. There were local artists who had setup booths and Sarah got
a lovely necklace. After that we ate at Cactus which, because it was such a lovely day, had all its windows and doors open.
Sunday was quieter. A few household chores and plenty of GTA4. I almost got the One Man Army achievement but I found that after four minutes with six
stars I eventually dropped back down to three stars without realizing it.
wine weekend nontechnical 2008 May 13, 10:33
This past
Saturday Sarah and I took the Savor Seattle Tour of various food shops in Pikes Place. Sarah had suggested it at one point and when Jesse and Nicole
brought it up again when they came up to Seattle we decided to go. Surprisingly our tour group consisted of mostly locals. Except for the fish market I hadn't been to see any of the places on the
tour. I particularly enjoyed the chocolate cherries and the tea. Our tour guide Tim was funny and overall I enjoyed the tour and would recommend it. I've made a map of our tour including what free trials we got at each location. Yum!
food tour seattle savor seattle nontechnical 2008 Apr 1, 11:21'95 article on the Internet fad: "So how come my local mall does more business in an afternoon than the entire Internet handles in a month? Even if there were a trustworthy way to send money over the
Internet--which there isn't--the network is missing a m
humor article internet news history future 2008 Mar 31, 2:31Social local's guide to various areas including Seattle.
via:swannman guide seattle food social 2008 Mar 31, 1:08"Why would the bad guys do this? To buy time. ...say you arrived at that site via a search engine and you were clueful and you got owned. You're going to give the URL that tried to exploit you to
your local IT security geek and he's going to paste it i
security web internet spam microsoft blog research 2008 Mar 4, 11:01Google's My Maps: "And now, this morning, Google has updated its Maps product yet again, adding "My Maps", user-generated collections of annotated placemarks, lines, and polygons."
google map microsoft live georss blog article 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 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 23, 11:18Sarah and I went down to California at the end of last month for a Thanksgiving visit with my parents. We visited the famous
Monterey Bay Aquarium (fun fact: the aquarium scenes in Star Trek IV were filmed here) and saw many jelly fish. We wandered around Capitola where we visited many local
shops and ate on the wharf. We shopped in Carmel and ate at the
Forge in the Forest (fun fact: Clint Eastwood was the mayor of this city in the late
80s). We visited the Santa Cruz Beach Boardwalk which was very cold and closed.
My parents took us out to dinner on the first night and the rest of the nights we ate dinner at their house. They had the Shelton's over and I got
to see Chris and Alison. It was fun to talk with them and catch up since its been quite a while since I'd seen them.
We stayed in the lovely beach house of our family friend's the Goodwins.
My parents have been helping them fix it up and decorate it and it looks great. It was quite a treat staying in a house right on the ocean. Also of note, this was the first trip on which I was old
enough to rent the car and accordingly I did all of the driving. This trip was very fun and relaxing.
aquarium friends parents personal beach california vacation 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