2012 Feb 27, 2:28
One of the more limiting issues of writing client side script in the browser is the same origin limitations of XMLHttpRequest. The latest version of all browsers support a subset of CORS to allow
servers to opt-in particular resources for cross-domain access. Since IE8 there's XDomainRequest and in all other
browsers (including IE10) there's XHR L2's cross-origin request features. But the vast majority of resources out on the web do not opt-in using CORS
headers and so client side only web apps like a podcast player or a feed reader aren't doable.
One hack-y way around this I've found is to use YQL as a CORS proxy. YQL applies the CORS header to all its responses and among its features
it allows a caller to request an arbitrary XML, HTML, or JSON resource. So my network helper script first attempts to access a URI directly using XDomainRequest if that exists and XMLHttpRequest
otherwise. If that fails it then tries to use XDR or XHR to access the URI via YQL. I wrap my URIs in the following manner, where type is either "html", "xml", or "json":
yqlRequest = function(uri, method, type, onComplete, onError) {
var yqlUri = "http://query.yahooapis.com/v1/public/yql?q=" +
encodeURIComponent("SELECT * FROM " + type + ' where url="' + encodeURIComponent(uri) + '"');
if (type == "html") {
yqlUri += encodeURIComponent(" and xpath='/*'");
}
else if (type == "json") {
yqlUri += "&callback=&format=json";
}
...
This
also means I can get JSON data itself without having to go through JSONP.
xhr javascript yql client-side technical yahoo xdr cors 2012 Feb 20, 6:11
Implied HTML elements, CSS before/after content, and the link HTTP header combines to make a document that displays something despite having a 0 byte HTML file. Demo only in Opera/FireFox
due to link HTTP header support.
technical humor hack css http html 2011 Dec 3, 6:46
Cool and (relatively) new methods on the JavaScript Array object are here in the most recent versions of your
favorite browser! More about them on ECMAScript5, MSDN, the IE blog, or Mozilla's documentation. Here's the list that's got me excited:
-
some & every
-
Does your callback function return true for any (some) or all (every) of the array's elements?
-
filter
-
Filters out elements for which your callback function returns false (in a new copy of the Array).
-
map
-
Each element is replaced with the result of it run through your callback function (in a new copy of the Array).
-
reduce & reduceRight
-
Your callback is called on each element in the array in sequence (from start to finish in reduce and from finish to start in reduceRight) with the result of the previous callback call passed to
the next. Reduce your array to a single value aggregated in any manner you like via your callback function.
-
forEach
-
Simply calls your callback passing in each element of your array in turn. I have vague performance concerns as compared to using a normal for loop.
-
indexOf & lastIndexOf
-
Finds the first or last (respectively) element in the array that matches the provided value via strict equality operator and returns the index of that element or -1 if there is no such element.
Surprisingly, no custom comparison callback method mechanism is provided.
-
javascript array technical programming 2011 Nov 24, 7:45
From the document: ‘Appendix B. Implementation Report: The encoding defined in this document currently is used for two different HTTP header fields: “Content-Disposition”, defined in [RFC6266],
and “Link”, defined in [RFC5988]. As the encoding is a profile/clarification of the one defined in [RFC2231] in 1997, many user agents already supported it for use in “Content-Disposition” when
[RFC5987] got published.
Since the publication of [RFC5987], two more popular desktop user agents have added support for this encoding; see http://purl.org/
NET/http/content-disposition-tests#encoding-2231-char for details. At this time, only one major
desktop user agent (Safari) does not support it.
Note that the implementation in Internet Explorer 9 does not support the ISO-8859-1 encoding; this document revision acknowledges that UTF-8 is sufficient for expressing all code points, and
removes the requirement to support ISO-8859-1.’
Yay for UTF-8!
technical http http-headers ie9 internationalization utf-8 encoding 2011 Jun 5, 4:56"What's an engineer's worst nightmare? To realize that the supports he designed for a skyscraper like Citicorp Center are flawed---and hurricane season is approaching."
article history design business engineering 2011 Apr 30, 4:33"The HTTP-based Memento framework bridges the present and past Web by interlinking current resources with resources that encapsulate their past. It facilitates obtaining representations of prior
states of a resource, available from archival resources in Web archives or version resources in content management systems, by leveraging the resource's URI and a preferred datetime. To this end, the
framework introduces datetime negotiation (a variation on content negotiation), and new Relation Types for the HTTP Link header aimed at interlinking resources with their archival/version resources.
It also introduces various discovery mechanisms that further support briding the present and past Web."
technical rfc reference http header time memento archive 2010 Aug 17, 3:05
I've just got a new media center PC connected directly to my television with lots of HD space and so I'm ripping a bunch of my DVDs to the PC so I don't have to fuss with the physical media. I'm
ripping with DVD Rip, viewing the results in Windows 7's Windows Media Center after turning on the WMC DVD Library, and using a powershell script I wrote to copy over cover art and metadata.
My powershell script follows. To use it you must do the following:
- Run Windows Media Center with the DVD in the drive and view the disc's metadata info.
- Rip each DVD to its own subdirectory of a common directory.
- The name of the subdirectory to which the DVD is ripped must have the same name as the DVD name in the metadata. An exception to this are characters that aren't allowed in Windows paths (e.g.
<, >, ?, *, etc)
- Run the script and pass the path to the common directory containing the DVD rips as the first parameter.
Running WMC and viewing the DVD's metadata forces WMC to copy the metadata off the Internet and cache it locally. After playing with Fiddler and reading this
blog post on WMC metadata I made the following script that copies metadata and cover art from the WMC cache to the corresponding
DVD rip directory.
Download copydvdinfo.ps1
powershell wmc technical tv dvd windows-media-center 2010 Jul 8, 9:00
I previously described my desire to
hook my Outlook calendar up to my
Google calendar. I just found out that I can do this and the reverse as both support publishing calendars to the Internet. The following are how I set this up under Outlook 2010 and Google
Calendar:
In Outlook, I go to the calendar view, right click on my calendar and select "Share Publish to Office.com". At this point I can change the permissions to allow anonymous Internet access, and under
Detail change between 'Full details' (full calendar), 'Limited details' (subject lines & availability only), 'Availability only'. Availability only is almost just what I want -- I'd also like
to include location but availability only is good enough. After hitting OK here I get a 'Do you want to send an invitation...' dialog box. I hit 'Yes' and I can copy the webcals:// URL out of the
email window that opens up. Next, to add it to my Google calendar, I open
http://www.google.com/calendar/, and under 'Other calendars', I select 'Add
Add by URL', paste in that webcals:// URL but change the 'webcals' at the start to 'https'.
In Google Calendar, I can click on my calendar name under 'My calendars', select 'Calendar settings', and on the new page, look under 'Calendar Address', click the ICAL icon, and copy the URL in
the new dialog. Now back in Outlook I go to the Calendar view, right click on 'My Calendars', and select 'Add Calendar From Internet...'. In the new dialog that pops up I paste in the URL from
Google Calendar.
In this fashion I can share public calendar data between my personal and work calendars.
2010 Jun 22, 1:49"The PowerGUI Visual Studio Extension adds PowerShell IntelliSense support to Visual Studio."
technical powershell visual-studio microsoft programming shell ide 2010 May 24, 6:25FireBreath is a cross-platform web browser developement framework supporting ActiveX (for IE) and NPAPI (for everyone else).
technical web browser plugin activex 2010 May 2, 2:52'HAR to Page Speed' is a tool that takes a HAR file (Http ARchive) supported by various HTTP debuggers and produces a page speed score. This is a great example of the value of a cross HTTP debugger
file format.
http tool debug performance web technical 2010 Mar 21, 3:22Google Calendar Sync is an Outlook plugin that syncs your Google and Outlook calendars (you get to pick 1way and direction or 2way sync'ing). This almost looks like what I want but perhaps my feature
requests are too obscure for someone to have already implemented them:
Events marked personal added on my Outlook calendar should get full 2-way sync'ing with my Google calendar.
All other events added on my Outlook calendar should be assumed to have private company information and should get 1-way sync'ing with just the time and location - no attendees or subject or
desceiption.
All events added on my Google calendar should get full 2-way sync'ing with Outlook and there should be marked personal.
I doubt I'm going to find a pre-made app to do this so I guess I should get coding. Otoh, if they ever bring the updated Android OS that has Exchange support to my G1 maybe none of this would be
necessary...
google calendar outlook microsoft tool free technical 2010 Mar 9, 9:08
I've just put up an update for Encode-O-Matic with the following improvements:
- Hex editor: the output and input views can now be switched between a UTF8 textbox view and a hex editor view. This is built using the free Be.HexEditor.
- Compression: I've added the .NET GZip, deflate, and inflate streams to the list of supported encodings.
- Quick Show Output: There are now 'Show Output' radio buttons next to each encoding in the encoding stack. Clicking on them changes the output view to show the output from that encoding in the
stack. This lets you easily jump between different parts of your encoding process. Adding or removing an encoding to the stack resets the view.
- Minor visuals improvement: added app icon, changed buttons with one word symbols to command names.
technical encodeomatic project 2010 Mar 3, 2:54Really looking forward to some Exchange support post Android 1.6...
android phone cellphone exchange 2010 Feb 22, 7:11Video of an artist's conception of our future augmented reality. I like the addition of the video artifacts and the slightly out of sync overlay. I take issue with the sort of video artifacts and the
'level of advertising'. Maybe they had the advertising supported AR goggles...
augmented-reality gui 3d advertising art design video 2010 Jan 26, 2:00The sandbox attribute for the iframe element sounds like a big pit of issues. Includes a new mime type text/html-sandbox to put on content that shouldn't be rendered as html in browsers that don't
support the sandbox attribute.
html html5 sandbox security web browser iframe mime mimetype html-sandbox technical 2009 Dec 12, 1:08WinSock uses a WPAD like protocol for... something?
technical reference proxy wpad winsock windows 2009 Dec 3, 2:39"Android 2.0 comes with a bevy of refinements to its connectivity features. These include VPN support, multiple account support, exchange support, HTML5 support, bluetooth 2.1, and quite a few more
which can best be found in the Android Platform Highlights document."
android review droid motorola cellphone 2009 Dec 2, 3:00"These are tough questions, but the horrific problems of the "Victorian Internet" suggest that government overreach isn't the only thing to fear. In 1876, laissez-faire "freedom for all" meant (in
practice) the freedom for Henry Nash Smith to read your telegrams if he didn't like who you supported for President. It meant freedom for Associated Press to block criticism of Western Union, and
even to put potential critics and competitors out of business. And it meant freedom for a scoundrel to hijack the system at his leisure."
net-neutrality internet government politics communication telegraph technical 2009 Nov 23, 12:38Update to SVG Web: "SVG Web is a JavaScript library which provides SVG support on many browsers, including Internet Explorer, Firefox, and Safari. Using the library plus native SVG support you can
instantly target close to 100% of the existing installed web base."
svg development web browser ie firefox safari javascript technical