2009 Nov 3, 1:33'A few hours after that, Tim Berners-Lee responded: I had imagined that figues would be reprented as <a name=fig1 href="fghjkdfghj" REL="EMBED, PRESENT">Figure </a>'. Ohhhh, that would
have been better.
html history mark-pilgrim browser web images technical 2009 Sep 30, 4:07The hashing part makes sense, but not the 'why no URL query' bit: "But because victim=12345 has already been visited they satisfy condition 2 and they get the 404 page fooling them into thinking the
site has already been taken down. So query strings don't really work." You could implement the same thing in the path and even were that not the case there's no telling that removing the query would
get you the same page. What's described here is a general method to circumvent the AP filter not an explaination as to why it avoids the query portion of the URL.
phishing technical web browser http url hash 2009 Sep 27, 11:28
sequelguy posted a photo:
Sarah's Fallout 3 teddy bear collection in Megaton.
sarah teddybear megaton fallout3 2009 Sep 24, 3:58"Put more constructively, if GCF mentioned application/xhtml+xml AND intercepted it, my site would “just work”. But that wouldn’t be an “opt in”, a concept that Ian Hickson once described as yet
another quirks mode switch."
chrome google web browser extension webbrowser mime xml xhtml technical 2009 Sep 18, 5:52"We recently came across a series of colorfully decorated safety posts at the Standard Hotel in New York." The Knit Graffiti Crew strikes again.
humor knit graffiti new-york nyc cultural-disobediance photo 2009 Sep 10, 6:11Google Documents can render any PDF on the web simply via an URL API. Step 2, implement HTML5. Step 3, call registerContentHandler('application/pdf', 'http://docs.google.com/gview?url=%s')
pdf google web internet html5 technical via:waxy 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 23, 3:23Web fonts plus appropriate style sheets for embedding.
css font typography free web design technical 2009 Jul 1, 2:24Stats on HTTP servers and HTTP server response headers. "Current statistics are based on a sample of 84604 probed servers, gathered in the last 386 days."
http statistics server internet http-header via:mnot technical 2009 Jun 29, 1:23"'You have 3 hours. You may use your class notes and Feynman.' "Feynman" of course referred the Feynman physics lecture notes which are published in three volumes. On reading these instructions one
particularly alert student grabbed his exam and ..."
humor richard-feynman physics education 2009 Jun 19, 10:12
I'm excited by HTML5's video tag as are plenty of other people. Once that
comes about and once media fragments are adopted, linking to or embedding a portion of a video will be as easy as using the correct
fragment on your URL thanks to the Media Fragments WG who has been hard at work since the last time I looked at fragments.
However, until that work is embraced by browsers, embedding portions of videos will continue to require work specific to the site from which you are embedding the video. On the YouTube blog they
wrote about how to "link to the best parts in your videos", using a fragment syntax like '#t=1m15s' to start playback of the associated
video at 1 minute and 15 seconds. Of course if you want to embed part of a Hulu video it will be different. Although I haven't found an authoritative source describing the URL syntax to use, you
can follow Hulu's video guide on linking to part of a video and note how the URL changes as you adjust the
slider on the time-line. It looks like their syntax for linking to a Hulu page is to add '?c=[start time in seconds](:[end time in seconds])' with the colon and end time optional in order to link
to a portion of a video. And the syntax for embedding appears to be "http://www.hulu.com/embed/.../[start time in seconds](/[end time in
seconds])" again with the end time optional.
For more sites, check out the Media Fragments WG's list of existing applications' proprietary fragmenting
schemes.
hulu technical media fragment wg url youtube video html5 uri fragment 2009 Jun 19, 8:07
The weekend before the previous, Sarah and I moved our belongings into the
new house and spent a lot of time packing and unpacking, and now we're officially living there (interested Facebook friends can find my
new address or just ask me). The Saturday of the previous weekend Sarah's family came over for a half house warming and half Sarah's birthday celebration which was fun and served to force us to do
more unpacking and forced me to take trips to Home Depot, Bed Bath and Beyond, etc. On Sunday, Sarah and I went out to her favorite restaurant and she opened her gifts that I had to hide to keep
her from opening before her birthday. Happy Birthday Sarah!
While at Home Depot I had trouble finding what I was actually looking for, but I did find everything I needed to terminate the Cat5e cables that are wired in the house. Each room has a wall plate
with two RJ45 sockets, both sockets wired to Cat5e cable. One of the cables per plate was already hooked up to a standard phone service punchdown board and the other cables per plate were all
hanging unterminated next to the punchdown board. So now I've terminated them all with RJ45 connectors and hooked them up to my hub, wireless router, cable modem, etc. I had the same sort of fun
setting all that up as I did playing with model train sets as a child. Hopefully no therapy will be required to figure out why that is.
personal2 train address sarah house new-house birthday 2009 Jun 1, 3:26Some unbelievable stuff in this video for future Xbox features. And I write 'unbelievable' as in, I find it difficult to believe the 3d motion sensing 'you are the controller' stuff would work as
well as it does in the demo video. The rest of the described features seem practical and sound neat.
blog microsoft video videogames xbox e3 2009 May 19, 1:43Lovely, although a bit out of my price range. "Formerly the Golden Gate Lutheran Church, this stunning Gothic Revival style building is now one of the most extraordinary and largest single family
homes in San Francisco."
for:hellosarah photo house home church california san-francisco flickr slideshow via:boingboing church-home 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 2009 Mar 10, 9:22Justin Frankel (Previously Winamp/Nullsoft guy) makes a designated graffiti box on his garage with the note: "All are welcome to express themselves in the box below. Printing within the above box is
hereby expressly permitted and shall not be considered 'graffiti' in accordance with article #23 of the San Francico Municipal Code." Before graffiti: , And with graffiti:
graffiti cultural-disobediance legal san-francisco nullsoft justin-frankel blog 2009 Feb 4, 4:30New URN schemes with no central minting authority. duri allows you to name a resource that was identified by the specified URI at the specified date (e.g. refers to the IETF's homepage at the end of
the year 2001). tdb allows you to name a physical object or entity that was described by a resource that was identified by a specified URI at the specified date (e.g. refers to IETF the orginization
as referenced by their homepage at the end of the year 2001). Date format is concise but I'd prefer RFC3339 rather than roping in another date format.
duri tdb uri url scheme reference ietf date datetime rfc 2009 Jan 22, 9:57'Dubbed the "Light Car," the concept car is designed to communicate with other drivers using a system of OLED lights, which rest on the some part of the body of the car including the front and rear
light, in the form of an OLED display panel.'
car led communication sign signal 2009 Jan 20, 2:04"Early this morning in San Francisco, Bush Street was changed to Obama Street along its entire length, from Presidio to Battery."
via:boingboing flickr obama cultural-disobediance streetart street sign photo