2007 Aug 21, 4:04Seeing
ErrorZilla I realized I could easily do a similar thing to the IE7 404 page using the same
technique I used for the
XML view and the
feed view.
So that's what I did: I made
a new 404 page for IE7. There's not much new here technically if you've read the previous blog
entries to which I linked. My 404 page change adds links to the
Internet Archive, the
Coral Cache, and
Whois Tool.
archive personal res cache resource ie7 technical browser whois 404 error extension 2007 Aug 15, 3:20Listened to RSnake talk about this in person at one point. Pretty interesting without his scenario video with niave female Internet user narration.
ajax rsnake via:swannman reference dns security javascript dns-rebinding 2007 Aug 6, 3:43Miladin told me about the Visual Studio compiler's promising option
Wp64 that finds 64bit portability issues when compiling
in 32bit. If, for instance, you cast from a
(long*)
to a
(long)
you get a W4 warning. However, the #defines are still set for 32bit builds. This means that other parts of
the code can make assumptions based on the #defines that are valid on 32bit but generate 64bit errors or warnings.
For instance, in winuser.h the public published Windows header file there's the following:
...
#ifdef _WIN64
...
WINUSERAPI
LONG_PTR
WINAPI
SetWindowLongPtrA(
__in HWND hWnd,
__in int nIndex,
__in LONG_PTR dwNewLong);
...
#else /* _WIN64 */
...
#define SetWindowLongPtrA SetWindowLongA
...
#endif /* _WIN64 */
...
In 64bit everything's normal but in 32bit SetWindowLongPtrA is #defined to SetWindowLongA which takes a LONG rather than a LONG_PTR. So take the following code snippet:
...
LONG_PTR inputValue = 0;
LONG_PTR error = SetWindowLongPtrA(hWnd, nIndex, inputValue);
...
This looks fine but generates warnings with the Wp64 flag.
In 64 bit, p is cast to (LONG_PTR) and that's great because we're actually calling SetWindowLongPtrA which takes a LONG_PTR. In 32 bit, p is cast to (LONG_PTR) which is then implicitly cast to (LONG)
because we're actually calling SetWindowLongA. LONG and LONG_PTR are the same size in 32bit which is fine but if you turn on the Wp64 flag there's a W4 warning because of the implicit cast from a
larger size to a smaller size if you were to compile for 64bit. So even though doing a 32bit or 64bit compile would have worked just fine, if you turn on the Wp64 flag for 32bit you'd get an error
here.
It looks like I'm the most recent in a
list of people to notice this issue. Well I
investigated this so... I'm blogging about it too!
wp64 technical 64bit compiler c++ visual-studio setwindowlongptra 2007 Jul 26, 12:12The folks at the Internet Archive have created a user modifiable Open Library that intends to catalog all books. As in all of them. Includes links to the books online (Internet Archive for ex.),
where to buy (Amazon for ex.), reviews, etc.
archive library opensource wiki research book books literature catalog reference 2007 Jul 11, 3:52I realized that I have short list of chicken related things I find humorous and they're all available for the linking to via youtube.
Chicken: The Powerpoint Presentation. This is a power point presentation of a research paper written in the
language chicken. (
video)
Bluth Family Chicken Dances. From the show Arrested Development many Bluth family members had their own chicken
dance. (
video)
Peter Fights the Giant Chicken. A man sized chicken fights Peter from Family Guy for multiple
minutes in several episodes mimicking famous action sequences. I must admire the writers dedication to the gag. (
video1,
video2)
roundup video personal chicken humor nontechnical 2007 Jul 11, 9:54Stats on who uses social networks.
research reference statistics social web 2007 Jul 4, 10:58Hackdiary
I really enjoy reading Matt Biddulph's blog
hackdiary. An entry some time ago talked about his
Second
Life flickr screen which is a screen in Second Life that displays images from flickr.com based on viewers suggested tags. I'm a novice to the Second Life scripting API and so it was from this
blog post I became aware of the
llHTTPRequest. This is like the XMLHttpRequest for Second Life code in that it lets you make HTTP requests.
I decided that I too could do something cool with this.
Translator
I decided to make a translator object that a Second Life user would wear that would translate anything said near them. The details aren't too surprising: The translator object keeps an owner
modifiable list of translation instructions each consisting of who to listen to, the language they speak, who to tell the translation to, and into what language to translate. When the translator
hears someone, it runs through its list of translation instructions and when it finds a match for the speaker uses the llHTTPRequest to send off what was said to
Google translate. When the result comes back the translator simply says the response.
Issues
Unfortunately, the llHTTPRequest limits the response size to 2K and no translation site I can find has the translated text in the first 2K. There's a flag HTTP_BODY_MAXLENGTH provided but it defaults
to 2K and you can't change its value. So I decided to setup a PHP script on my site to act as a translating proxy and parse the translated text out of the HTML response from Google translate. Through
experimentation I found that their site can take parameters text and langpair queries in the query like so:
http://translate.google.com/translate_t?text=car%20moi%20m%C3%AAme%20j%27en%20rit&langpair=fr|en
. On the topic of non US-ASCII characters (which is important for a translator) I
found that llHTTPRequest encodes non US-ASCII characters as percent-encoded UTF-8 when constructing the request URI. However, when Google translate takes parameters off the URI it only seems to
interpret it as percent-encoded UTF-8 when the user-agent is IE's. So after changing my
PHP script to use IE7's user-agent non
US-ASCII character input worked.
In Use
Actually using it in practice is rather difficult. Between typos, slang, abbreviations, and the current state of the free online translators its very difficult to carry on a conversation.
Additionally, I don't really like talking to random people on Second Life anyway. So... not too useful.
personal translate second-life technical translator sl code google php llhttprequest 2007 Jun 21, 2:38Unspun is a social list creation website from Amazon. For instance, you could create a list named '
Most Desired Features for Next Version of Internet Explorer' and users of Unspun fill in and
rank the answers. There's a mix of serious answers that are excellent suggestions, fan-boy answers that are lame, uninformed answers that are already implemented, and hilarious answers that are
awesome. The following is the very short unsorted list of the awesome suggestions.
-
Innovative Anti-Phreaking Technology
-
Given the work done in IE7 on anti-phishing, subsequent work on anti-phreaking just makes sense.
-
AXELROD 2.8 Acceleration with XML Bindings
-
I'm not sure what AXELROD 2.8 is but accelerating it sounds good. Also I enjoy binding things to XML so...
-
Larger Buttons for My Mighty Fingers
-
For maximum humor this should be read by Richard Horvitz as Zim of Invader Zim. This
one makes me laugh every time I read it.
amazon personal ie humor nontechnical 2007 Jun 18, 10:49"Nature Precedings is trying to overcome those limitations by giving researchers a place to post documents such as preprints and presentations in a way that makes them globally visible and citable."
science research journal nature database collaboration archive community 2007 Jun 11, 4:20My manager has come back this week from a 10 week vacation and paternity leave. In response and similar to
other office hacks some dedicated coworkers and I decided to do something to my manager's office.
While gone we knew my manager, Venkat, was getting into meditation. My coworker Vishu had the excellent idea of easing Venkat back into work by making his office
better suited for meditation. To start with, we updated his nameplate with an
Om.
Next we emptied his office of anything that could distract him from meditation and replaced it with a yoga mat. Of course I left a copy of the specification
for the remodel in his office.
microsoft personal office humor nontechnical 2007 Jun 5, 12:30Interesting past predictions of the future. Lots of cool retro visions of the future.
future humor predictions history scifi archive blog monthly 2007 May 22, 10:12Digg RSS extension that includes submitter, digg count, and comment count.
digg rss extension xml feed 2007 Apr 18, 11:22For a trial period the BBC will open its archive online for free. Hopefully this is the start of a trend otherwise in the future the only freely available content will be reruns of Absolutely
Fabulous.
bbc television archive article ip 2007 Mar 28, 3:45Guy tapes small but intense magnet to his finger and 'feels' magnetic fields around speaker wires, lamps, etc.
magnet sense harddrive hack finger sixth-sense 2006 Dec 6, 6:18I got another blog entry on the
IE Blog! I wrote about
file URIs in
IE. Lots of fun right? Woo for file URIs! I
added the post to del.icio.us and saw that it had already been added 6 times
previous. This compared to
my previous IE Blog post which was
added to del.icio.us a total of 1 time(s) by y.t. I guess people are more interested in blog posts that have 'URI' in the title than they
are about blog posts whose title references
Dijkstra. Coming soon (or later) to the IE Blog: a post on international mailto URIs. Hooray!
blog ie7 file uri delicious 2005 Apr 3, 7:17Search through the archived Internet
search web