Protocol Relative URLs (and why not to use them)

Back in October 2010 (that long?!) I noticed a commit to Paul Irish’s (awesome) HTML5 Boilerplate project on GitHub that piqued my curiosity. I hadn’t really noticed the trick of linking to a resource in a protocol-independent manner before. So I drafted this post and then promptly forgot about publishing it. It’s still cool five years later—but not quite as cool, for reasons I’ll explain in a sec. For the longest time, I thought links had to have a protocol specified, no matter what. I thought that was why Google Analytics used a kind of ugly detection hack to check…

Read more

“Houdini” plugin for WordPress is no magician

I’ve seen some pretty absurd WordPress plugins show up in the Plugins dashboard widget on this site, but the recently-released “Houdini” takes the cake so far. It claims to prevent spammers from copying the contents of any post or page upon which the [houdini] shortcode is placed. The fact is the internet is open can lead to theft especially to content stealing and plagiarism. Until now, there was very little to discourage and deter this serious crime. Yes content theft and plagarism is a crime in some jurisdictions. You cannot rely on others or the authorities to continue to police…

Read more

Enhance Web Form Usability with JavaScript

This is my last canned post for the week. I wrote it on Wednesday, before leaving for Chicago on Thursday morning. I’m getting back tonight, so hopefully a fresh post will arrive sometime tomorrow. I didn’t can any more, so I better be up for writing. Probably a recap of my trip. Earlier this month, I had the dubious pleasure of filling out applications to a couple of summer programs. The first was at the University of Chicago, studying Greek drama — in Greece — for three weeks. The other was at Northwestern University, studying theater — just in Chicago…

Read more

User Actions Shouldn’t Interrupt Critical Stuff

Yes, I know that’s a rather cryptic title. I’ll do my best to illustrate what I mean in the coming prose. This was all inspired by something that happened to me last night while using the Blackboard Learning System software (it’s Web-based) to try and take an assessment in one of my courses for school. (Inspiration from homework? It’s actually happened before, like when I blogged about .) All right, down to business. Specifically, what happened last night was that I tried to perform an action on the page before it had finished loading. The tests in Blackboard (at least…

Read more

Google Analytics Rolls Out New Graphing Tools and ga.js Tracking

Google Analytics just announced new graphing tools for the service. Now, apart from comparing two date ranges, users can compare different metrics to look for correlations (“Do pageviews increase as time on site goes up?”), as well as comparing individual segments with the site total. The new ga.js tracking code, which I’ve been awaiting since the announcement made in October, has also been rolled out. The new file replaces the old urchin.js script. It is completely rewritten, appears to load faster, and has new object-based methods instead of functions and variables, meaning tracking a site in multiple accounts is a…

Read more

Programming Game Show Idea

My friend i80and had an interesting game show idea the other day. He thought of a show where contestants (probably two) are given a whiteboard, a marker, and a programming problem, and the person who designs the simplest and most efficient data structures for that situation wins. It gave me an idea, too. What if the show involved not just data structures, but entire class abstractions? Or perhaps actually writing code for a specified operation within the given situation? I think I need to give an example. Let’s say the show begins with the original idea of designing data structures.…

Read more

I Have the New Gmail!

Some time between 1330 and 1830, my Gmail account was upgraded to the new UI. I wish I could use it. Having no userscripts available is intolerable. Well, I’m being unfair; Mihai Parparita took the time to update Gmail Macros, but he changed the key bindings I’ve gotten used to and left out some features. The new Gmail codebase is definitely faster, but until I can have my properly customized Gmail Macros, Attachment Icons, and Gmail Signature Float scripts back, I’m sticking with the old UI. That is, unless Google pulls the plug on the original interface before all of…

Read more

Badly Designed Websites

After certain recent experiences, I see that the way a website works is quite essential to the visitor experience. Take www.mcool.org as an example. The menus you see (assuming you’re using a JavaScript-enabled browser) are generated by JavaScript, after page load. The data is included in a series of JavaScript functions at the end of the page, the definitions of which are included in the commercial Milonic popup menu script. This could be easily solved by including inline code that is hidden with CSS and displayed using an in-page rule contained in a <noscript> element. However, that’s not the only…

Read more

Looks Like IE7 is Finally Arriving, But Windows Vista Bites

Reviewing the site stats for this blog, I see a distinct prevalence of visits from IE7 users over IE6. Firefox still seems to dominate my hits, but Internet Explorer’s own little battle of the versions seems to be turning. A few months ago, not many people I knew used IE7; now I can see the trend clearly. It looks like the day may be coming when I can dump support for IE6 completely as regards my Web development and focus on IE7 fixes. Like the old IE5, version 6 of the venerable, annoying (to developers) browser may soon see its…

Read more

Google Docs Reviewed (Long Version)

As a kind of follow-up to my of Google Docs, I’ve decided to write a lengthier review that compares the pros and cons of using Docs versus desktop Word or Writer. Overall, the capabilities of Google Docs are pretty impressive, and it’s sure a far cry from the text-only editors included in MediaWiki, Instiki, TiddlyWiki, etc. Considering that it’s just some lines of JavaScript (OK, a lot of lines…), it can do quite a bit. Supported by the server back-end, Docs can import photos, generate charts, edit tables, and track revisions, not to mention a bunch of other stuff. While…

Read more