2016 Oct 13, 6:19 2016 Oct 9, 11:42
@BreetzTweetz @dwf In the late 22nd century, warp probes were launched to every corner of
the galaxy containing the spec for H.264
2015 Feb 19, 8:27 2010 Aug 22, 4:04Demo of marked-up video with the people and places shown in the video popping up along side in real time.
video html html5 javascript technical mozilla 2010 Jul 5, 4:24Awesome rendition of the Popcorn song by the Swedish Chef
humor video mumpet popcorn swedish-chef 2010 Jun 21, 1:15"We'd like to publicly apologize to the NPB for the confusion over unicorn and pork--and for their awkward extended pause on the phone after we had explained our unicorn meat doesn't actually exist."
humor copyright legal law thinkgeek unicorn pork 2009 Sep 9, 10:52The wall of fluff is a mega unicorn chaser.
cute humor cat youtube video via:boingboing 2009 Mar 20, 4:51
Working on Internet Explorer extensions in C++ & COM, I had to relearn or rediscover how to do several totally basic and important things. To save myself and possibly others trouble in the
future, here's some pertinent links and tips.
First you must choose your IE extensibility point. Here's a very short list of the few I've used:
Once you've created your COM object that implements IObjectWithSite and whatever other interfaces your extensibility point requires as described in the above links you'll see your SetSite method
get called by IE. You might want to know how to get the top level browser object from the IUnknown site object passed in via that method.
After that you may also want to listen for some events from the browser. To do this you'll need to:
- Implement the dispinterface that has the event you want. For instance DWebBrowserEvents2, or HTMLDocumentEvents, or HTMLWindowEvents2. You'll have
to search around in that area of the documentation to find the event you're looking for.
- Register for events using AtlAdvise. The object you need to subscribe to depends on the events you want. For example, DWebBrowserEvents2 come from the webbrowser object, HTMLDocumentEvents come
from the document object assuming its an HTML document (I obtained via get_Document method on the webbrowser), and
HTMLWindowEvents2 come from the window object (which oddly I obtained via calling the get_script method on the document object).
Note that depending on when your SetSite method is called the document may not exist yet. For my extension I signed up for browser events immediately and then listened for events like NavigateComplete before signing up for document and window events.
- Implement IDispatch. The Invoke method will get called with event notifications from the dispinterfaces you sign up for in AtlAdvise. Implementing Invoke manually is a slight pain as all the
parameters come in as VARIANTs and are in reverse order. There's some ATL macros that may make this easier but I didn't bother.
- Call AtlUnadvise at some point -- at the latest when SetSite is called again and your site object changes.
If you want to check if an IHTMLElement is not visible on screen due how the page is scrolled, try comparing the Body or
Document Element's client height and width,
which appears to be the dimensions of the visible document area, to the element's bounding client rect which appears to be
its position relative to the upper left corner of the visible document area. I've found this to be working for me so far, but I'm not positive that frames, iframes, zooming, editable document
areas, etc won't mess this up.
Be sure to use pointers you get from the IWebBrowser/IHTMLDocument/etc. only on the thread on which you obtained the pointer or correctly marshal the pointers to other threads to avoid weird crashes and hangs.
Obtaining the HTML document of a subframe is slightly more complicated then you might hope. On the other hand this might
be resolved by the new to IE8 method IHTMLFrameElement3::get_contentDocument
Check out Eric's IE blog post on IE extensibility which has some great links on this topic as well.
technical boring internet explorer com c++ ihtmlelement extension 2008 Sep 29, 2:33A short post on the topic of those irritating high fructose corn syrup commericals: 'Really, there's no way that you could make something called "high fructose corn syrup" sound good for you. Which
is why, instead of irritating the public with defensive commercials featuring gross, brightly colored "juice," the Corn Refiners Association should just call "high fructose corn syrup" something more
appealing: like "Deliciosity," or "Yummy Tummy Syrup," or "So You Think You Can Sweeten?" or "Fun Sugar"'
humor onion video corn-syrup corn propaganda tv commercial 2008 Sep 23, 1:11"...a film crew and a renowned scientist are plunked down on a busy city street corner, and an impromptu Q&A session with the public ensues." I like the concept. Two videos on the topic
video science education physics nyc via:boingboing 2008 Aug 18, 3:46Legal corner case bugs exploited for free rent in SF. "Getzow is getting pretty well known along the Polk Street corridor. Unlike other serial evictees, who move among different neighborhoods, all of
his eight evictions in San Francisco have occurred in a 20-block area known as Lower Nob Hill."
article legal rent house eviction san-francisco 2008 Aug 4, 3:44Benefits of dating a unicorn enumerated here.
humor unicorn comic 2008 Jul 12, 12:33Rice on a speaker makes interesting patterns based on the tone played. Like the cornstarch subwoofer video earlier.
rice video youtube sound science via:swannman 2008 May 2, 1:55Avoid sniffing using the HTTP range header: "...if we have an application...which protects against FindMimeFromData XSS attacks by searching the first 256 bytes for certain strings, then we can
simply place our strings after the first 256 bytes and get Fl
via:swannman http http-header range xss security 2008 Jan 22, 9:56
More ideas stolen from me in the same vein as my stolen OpenID thoughts.
Fast
Pedestrian Crossing on Four Way Stops. In college I didn't have a car and every weekend I had weekly poker with friends who lived nearby so I would end up waiting to cross from one corner of a
traffic lit four way stop to the opposite corner. Waiting there in the cold gave me plenty of time to consider the fastest method of getting to the opposite corner of a four-way stop. My plan was
to hit the pedestrian crossing button for both directions and travel on the first one available. This only seems like a bad choice if the pedestrian crossing signal travels clockwise or counter
clockwise around the four way stop. In those two cases its better to take the later of the two pedestrian signal crossings, but I have yet to see those two patterns on a real life traffic stop. I
decided recently to see if my plan was actually sound and looked up info on traffic signals. But the info
didn't say much other than "its complicated" and "it depends" (I'm paraphrasing). Then I found some guy's analysis of this problem. So I'm done with this and I'll continue pressing both
buttons and crossing on the first pedestrian signal. Incidentally on one such night when I was waiting to cross this intersection I heard a loud multi-click sound and realized that the woman in the
SUV waiting to cross the intersection next to me had just locked her doors. I guess my thinking-about-crossing-the-street face is intimidating.
Windows Searching
Windows Media Center Recorded TV's Closed Captions. An Ars-Technica article on
a fancy DVR described one of the DVRs features: full text search over the subtitles of the recorded TV shows. I thought implementing this for Windows Media Center recorded TV shows and Windows
Search would be an interesting project to learn about video files, and extending Windows Search. As it turns out though some guy, Stephen Toub implemented Windows Search over MCE closed captions already. Stephen Toub's article is very long and describes some
other very interesting related projects including 'summarizing video files' which you may want to read.
stolen-thoughts windows search mce windows traffic closed captions four-way-stop windows-media-center 2007 Jan 19, 9:15I've moved my homepage to server-side scripting. Previously I've mentioned that
I was using client side scripting to interpret and sort my
livejournal and delicious entries together. Now I'm using
PHP and
XSLTs to process and sort my livejournal,
delicious, flickr, and librarything entries. See
my homepage for the finished result.
LibraryThing is pretty cool despite being pretty niche. Its like flickr but for books. I display a random sampling of the covers of books I have listed in
librarything on my page. I've also hooked the display of the covers of my book up to the corner image. Now when you hover over the cover of a book a bigger picture of its cover appears in the corner
of the webpage. Also, flickr entries in the main section how have the same on hover behavior.
This may not be the best use of my time, but its still fun.
librarything xslt delicious homepage flickr technical php livejournal script 2004 Aug 19, 2:52I received an email from verification@citibank.com the other day with the subject "Fraud Check Verification". Or at least that's what someone at the jumphk2.net domain would have me believe. The
whole official looking email was very convincing at first glance. There's the Citibank logo image up in the left corner, the reassuring TrustE image in the opposite corner, and just the right amount
of legal-ese on the bottom. The text requested me to follow a link in the email to update and verify my information. At closer examination however it becomes apparent that this is a scam. Little
things start to catch your eye. The TrustE image is hosted on ebay and the Citibank logo is hosted at 65.108.92.50. Both images one might expect to be hosted on Citibank's site. The link in the email
looks like its taking you to https://www.citibank.com/saw-cgi/citibankISAPI.dll?PlaceCCInfo but in fact its taking you to a page hosted at 65.108.92.50 again. The following sentence appears in the
email:
If your account information is not updated within 48 hours then your ability to sell or bid on Citibank will become restricted.
Oh shit! My bid on Citibank might not go through! Seriously, they might have gone to a little more effort than just copying and pasting a scam letter meant for EBay. And the number one fact
revealing the email for what it is -- I don't have a Citibank account. I had received an email exactly like this several months ago and just deleted it, but for some reason, perhaps I was in a foul
mood, I decided to do something this time around. I emailed abuse at my domain, the ISP controlling their IP address, and Citibank. My domain told me there was nothing they could do. Citibank has yet
to respond. As for their ISP, the following day I received an email from Leon at Alabanza's Abuse department informing me:
This account has been locked down and is now on schedule for deletion. If we can further assist you please let us know.
Fuck yeah! This was a lot better than anything I had expected. I anticipated no response from any of the letters I sent. The page is gone now. Leon rocks!