In the comments to Understanding HBase and BigTable, I recieved some insightul questions. Here I attempt to answer them, in no particular order.
Picking the correct HBase performance options is akin to deciding which engine use, or whether to use CHAR vs VARCHAR vs TEXT in a relational database. These decisions can make a big impact on the amount of data stored and the speed with which it is created, updated, read, and deleted.
[read more ...] -or- [leave a comment ...]
--Jim R. Wilson 16:39, 27 May 2008 (MST)
The hardest part about learning HBase (the open source implementation of Google's BigTable), is just wrapping your mind around the concept of what it actually is.
I find it rather unfortunate that these two great systems contain the words table and base in their names, which tend to cause confusion among RDBMS indoctrinated individuals (like myself).
This article aims to describe these distributed data storage systems from a conceptual standpoint. After reading it, you should be better able to make an educated decision regarding when you might want to use HBase vs when you'd be better off with a "traditional" database.
[read more ...] -or- [leave a comment ...]
--Jim R. Wilson 03:28, 17 May 2008 (MST)
Version 0.4.2 of the ArticleComments Extension has been released and is available for download.
This minor release incorporates $wgSpamRegex support into the default SPAM filter.
Enjoy! As always, I'll be happy to answer any questions.
[read more ...] -or- [leave a comment ...]
--Jim R. Wilson 17:34, 17 March 2008 (MST)
Last week, in my article Defending PHP, I laid out my arguments for why I believe PHP is a great language. This spawned many heated comments and counter-posts, including a response by Yukihiro Matsumoto (Matz). Here I'd like to clarify a few points which I think may have been misinterpreted...
[read more ...] -or- [leave a comment ...]
--Jim R. Wilson 21:48, 2 February 2008 (MST)
Ugh. I am so tired of defending PHP - even from people I know and respect and who use it every day. So here I'm going to make my last stand. In all future arguments I get into, I will point back to this article as my sole defense. Here goes...
[read more ...] -or- [leave a comment ...]
--Jim R. Wilson 01:05, 24 January 2008 (MST)
Better late than never, this short Weely Web Hack shows how to deliver covert JavaScript in a SWF file...
[read more ...] -or- [leave a comment ...]
--Jim R. Wilson 14:51, 10 January 2008 (MST)
This Weekly Web Hack is the third in a four part series on cross-domain scripting. Moving even further away from the "traditional" solutions, this article discusses a few competing schemes to extend cross-domain data access and finally reveals a proof-of-concept Greasemonkey script for lifting all cross-domain restrictions...
[read more ...] -or- [leave a comment ...]
--Jim R. Wilson 03:21, 31 December 2007 (MST)
Version 0.2 of the SWFHttpRequest Flash/Ajax Utility has been released and is available for download. This tiny Flash 9 application provides a JavaScript bridge for utilizing Flash to make cross-domain requests.
This version adds a bunch of new features and fixes over the original release announced earlier in Cross-domain Ajax via Flash:
For binary and source downloads and installation instructions, see the project homepage.
Enjoy! As always, I'll be happy to answer any questions. [read more ...] -or- [leave a comment ...]
--Jim R. Wilson 19:21, 26 December 2007 (MST)
The second in a four part series on cross-domain scripting, this Weekly Web Hack addresses the use of Flash as an intermediary for third-party cross-domain requests. I'll review Flash's cross-domain security policy, examine a few existing solutions, and finally present my own...
[read more ...] -or- [leave a comment ...]
--Jim R. Wilson 08:22, 24 December 2007 (MST)
This week's Weekly Web Hack is the first in a four part series on cross-domain scripting. Here I'll review the nature of the same-domain policy, and how this hinders next-generation web app development. I'll also go over existing "solutions" to set the stage for the upcoming articles...
[read more ...] -or- [leave a comment ...]
--Jim R. Wilson 21:12, 17 December 2007 (MST)
In this week's Weekly Web Hack, I'll take a step back from my usual foray into the bowels of web hackery and instead answer a question I get every so often: Which Firefox Extensions do you use?
For convenience, I have broken them up into groups. In this first article on Firefox Extensions, I'll focus on those most useful for Web Development...
[read more ...] -or- [leave a comment ...]
--Jim R. Wilson 18:33, 10 December 2007 (MST)
In last week's Weekly Web Hack, I showed how to make recursive anonymous JavaScript functions. This week, I'll demonstrate how to unroll a recursive DOM traversal function into a potentially less expensive, non-recursive form...
[read more ...] -or- [leave a comment ...]
--Jim R. Wilson 11:21, 3 December 2007 (MST)
JavaScript is a wonderful language - it allows for such beautiful constructs as closures and anonymous functions as well as staples like prototyping and recursion. In this brief Weekly Web Hack, I'll explain how to make recursive anonymous functions...
[read more ...] -or- [leave a comment ...]
--Jim R. Wilson 23:32, 26 November 2007 (MST)
Version 0.2 of the KeepYourHandsToYourself Extension has been released and is available for download. It prevents users and anonymous guests from editing other users pages and subpages.
This version adds a new feature whereby editing images is also filtered by user. If an image contains a double dash '--', then anything before the double-dash is considered to be a username, and only that user may edit that image.
For example, consider [[Image:SomeUser--avatar.jpg]]. That image would only be editable by SomeUser (or a sysop since they're immune to all restrictions).
In order to implement this restriction, it is necessary that user names do not themselves contain double dashes. To this end, an additional method is supplied which will reject new accounts if the username contains double dashes.
Enjoy! As always, I'll be happy to answer any questions.
[read more ...] -or- [leave a comment ...]
--Jim R. Wilson 11:20, 26 November 2007 (MST)
Let's get right down to it - if you're going to camp out in IRC chatrooms to discuss particular technologies, please, PLEASE use "RTFM" responsibly.
What do I mean by this? Simply that if you're going to tell someone to go read the manual, ensure the following:
If you're going to send a link, the second above is CRUCIAL. If you snidely send a link to a document which does not address the problem, you just end up looking like a jerk - and nobody wants that. Seriously.
Furthermore, DO NOT do any of the following:
Why do I bring this up? I recently had some bad experiences on #bash, ##java and #mysql with RTFMing Elitist Snobs.
Now, it's only fair to say that in my experience, these kinds of people are in the vast minority of IRC participants. Most channels are great - here are a few of my favorites: #mediawiki, #python, #javascript. All top notch.
If only there were some kind of distributed JerkBlock software. Like AdBlock, but instead of blocking Ads, it uses crowdsourcing to systematically /ignore known abusers. Hmmmmm....
[read more ...] -or- [leave a comment ...]
--Jim R. Wilson 14:23, 21 November 2007 (MST)
In this short Weekly Web Hack article, I'll show how to add a new sidebar to Facebook for displaying random photos. The techniques herein could be easily extended for more elaborate functional enhancements...
[read more ...] -or- [leave a comment ...]
--Jim R. Wilson 02:14, 19 November 2007 (MST)
Version 0.1 of the RawMsg Extension has been released and is available for download. It adds a parser function called #rawmsg for inserting bits of raw HTML into wiki pages.
The RawMsg parser function expects to be called in the following way:
{{#rawmsg:message-name}}
Where message-name is the name of the message to inject.
For example, calling {{#rawmsg:test-pattern}} would grab the content of [[MediaWiki:rawmsg-test-pattern]] and insert the content directly into the page.
The MediaWiki namespace was chosen to house the HTML fragments so that only Sysops may edit them due to the XSS risk. Also, the messages must begin with 'rawmsg-' to decrease the likelihood that an obscure accidental MediaWiki article could be used as an XSS attack vector.
Enjoy! As always, I'll be happy to answer any questions.
[read more ...] -or- [leave a comment ...]
--Jim R. Wilson 01:32, 19 November 2007 (MST)