Using Drop Down Menus for Birthday and State in Web Forms
So in my dealings with clients and filling out the forms of websites in general, one thing keeps bugging me over and over: sites that ask for your birthday using drop down list for month/day/year and sites that use drop down for state selection for your address. There are some basic usuability issues here that really drive me nuts, if the web designers thought about it for more than a minute.
First off, why do you even need to know my birthday to begin with? I guarantee that 90% of the people just go straight to the drop down list for year, set it to something over 21 and go on their way. It isn’t like ‘birthday’ is any more legally helpful than simply asking for your age. Why not just let the user enter ‘35’ for their age and be done with it. I bet you would find that you end up getting a lot more accurate information out of your users in that situation. Typing two numbers is sooo much easier than dealing with drop down menus. If you want to keep the age up to date, all you need to do is keep track of the date they set their age, and adjust it accordingly when you retrieve it. Barring that, if for some reason you just have to have birthday info, then why not at least provide an easy way for the user to put in ‘4’ for the month, ‘16’ for the day, and ‘1982’ for the year? Again it is just that much easier to do.
With states, the same thing applies. I live in New York (NY), but apparently I can’t be trusted to type ‘NY’ for my state (2 keys). Instead, I have to click the drop down, then scroll through 50+ state abbreviations (if say PR for Puerto Rico, etc. is included), and then click my state. If I accidentally click the wrong one, I have to do it all over. Or if I want to use a ‘shortcut’, I have to press N 5 times to get past the other ‘N’ states, and usually I have to go through it a couple of times because I overshoot, since just typing ‘N’ then ‘Y’ as a shortcut doesn’t actually work in most browsers. The only other thought is that maybe the web developers are using this as some sort of easy data validation, to prevent someone from putting in ‘NX’ or something. But that is precisely what server-side validation should do for you, not rely on the client to send ‘clean’ input. Someone could easily call your registration method directly (without using a web form), so you had better implement server-side validation anyway.
Oh well, it is the little things that get to me, when you have to do them over and over and over…
My Favorites...
So, since this blog is all about me, I wanted to list some of the various media I consume that I’ve enjoyed above the rest.
Books
- Jacqueline Carey’s Kushiel Series: This is a dark fantasy series, soemwhat racy at times, but simply breathtaking it it’s scope and character development. Each of these weighs in at 600-700 pages.
- David Foster Wallace’s Infinite Jest: The funniest, strangest, and most intellectual book you could ever want to read.
- Don DeLillo’s White Noise
TV
- Deadwood: HBO blows for canceling this
- Carnivale: HBO sucks for canceling this
- Kyle XY: What can I say I like teen paranormal drama
- Roswell: What can I say I like teen paranormal drama
- Smallville (First 3 seasons)
- Buffy the Vampire Slayer: ROCKS!
- Spooks: Great Brit 24-esque spy show
- One Tree Hill/Everwood: I like teen drama in general I guess
- Scrubs: Funny, funny, funny
- Family Guy: Funniest, Funniest, Funniest
- Sopranos
- The Shield: Except that part where my ex was Vic’s love interest
- Rescue Me: Dramedy FTW
Music:
- The Cure
- Death Cab for Cutie
- Beth Orton/Mazzy Star/Elysian Fields
- The Smiths
- Tool
- NIN (Old school)
- Dinosaur Jr.
Movies:
- American Beauty
- Irreversible
- The Matrix (I)
- Henry Fool
- Fifth Element
- Love Actually
- Insomnia (Danish/Swedish version)
- The Celebration
- Leon - The Professional
- Killing Zoe
- Closer
That’s it for now. I’m sure I’ll add more as I think of them.
Ruby on Rails AJAX Back button support using Script.aculo.us and Prototype
So I don't really want to get into a debate on 'breaking' the back button with full javascript/AJAX based sites, instead of having pages use regular navigation and only using AJAX within the same page. Let's just assume you are here because you need to fix the back button for your Rails site after using link_to_remote throughout. There are a number of solutions out there for various javascript toolkits, but I never was able to find anything that was terribly helpful for Prototype/Scriptaculous. So I took some of the existing ones out there and adapted them to the Rails environment.
This code uses the same basic methodology as the others out there: manipulating the location bar URL so that it has a hash (#) in it with additional information about the AJAX link which creates back and forward history entries when it is changed. It uses an iframe to support this functionality in IE6 and IE7, otherwise using location.hash manipulation in Firefox, Opera, and Safari 3. A thread (PeriodicalExecuter) is created that checks for changes to the location bar and makes a new Ajax request if needed). Both single step back and forward buttons work, but using the back and forward drop downs will not. Reload/Refresh also works properly, as does Open in New Window/Tab right click and Bookmarks. It simply does normal link_to_remote processing for other browsers, such as old versions of Safari/WebKit (so no history support but the site still works).
The key difference between this method and the others however, is that instead of using some obscure mapping or number for the hash, we simply append all of the Rails controller/action/id?params information after the hash, so if you click an AJAX link http://my.domain.com/controller/action/id?param1=something your location bar will change to http://my.domain.com/#/controller/action/id?param1=something
In the Rails code, you don't always want to have a history/back button entry created for every AJAX call we make, so to differentiate we replace link_to_remote with history_remote whenever we wish to generate a browser history entry. The format is identical, it just adds an extra parameter to the request: history: true. Another key feature to note is that link_to_remote :update => 'some_div' also works with this code (when used as history_remote :update => 'some_div').
///////////////////////////////////////////////////////////
// Slain Jamison Wilde
// This source code is released into the public domain
var PrototypeBackButton = {
start: function(root, title) {
this.browser_id = 0;
this.history_clicks = 0;
this.ajax_object = null;
this.history_current_cache = "";
this.root = root; // this is the initial page we are loading.
this.title = title;
is_backable_webkit = false;
if (Prototype.Browser.WebKit) {
navigator.userAgent.match(/AppleWebKit\/([^ ]+)/)
if(parseInt(RegExp.$1) > 420) {
is_backable_webkit = true;
}
}
if (Prototype.Browser.IE) {
this.browser_id = 1;
var history = $("ie_hash_history");
var iframe = history.contentWindow.document;
iframe.open();
iframe.close();
iframe.location.hash = location.hash + location.search; // ie breaks up the hash
this.is_started = true;
if (location.hash + location.search == "" || location.hash + location.search == "#") {
new Ajax.Request(root, {asynchronous:true, history:true, evalScripts:true});
}
this.checker_thread = new PeriodicalExecuter(function() {
PrototypeBackButton.url_hash_check();
}, 0.2);
} else if (Prototype.Browser.Gecko || Prototype.Browser.Opera || is_backable_webkit == true ) {
this.browser_id = 2;
this.is_started = true;
if (location.hash == "") {
new Ajax.Request(root, {asynchronous:true, history:true, evalScripts:true});
}
this.checker_thread = new PeriodicalExecuter(function() {
PrototypeBackButton.url_hash_check();
}, 0.2);
} else {
this.is_started = false;
new Ajax.Request(root, {asynchronous:true, evalScripts:true});
}
},
// Destructor
destroy: function() {
this.stop();
},
set_root: function(root) {
this.root = root;
},
set_title: function(title) {
this.title = title;
},
stop: function() {
if (this.checker_thread) {
this.checker_thread.stop();
this.checker_thread = null;
this.is_started = false;
}
},
url_hash_check: function() {
if(this.browser_id > 0 && document.title != this.title)
// hack
document.title = this.title;
if (this.browser_id == 1) {
var history = $("ie_hash_history");
var iframe = history.contentDocument || history.contentWindow.document;
var current_hash = iframe.location.hash + iframe.location.search; // ie splits it
if(current_hash != this.history_current_cache || this.history_clicks > 0) {
this.history_clicks = 0;
location.hash = current_hash;
this.history_current_cache = current_hash;
if (this.ajax_object) {
this.ajax_object.request(current_hash.replace(/^#/, ''));
this.ajax_object = null; // dont reuse the request object
} else {
new Ajax.Request(current_hash.replace(/^#/, '')); // reloads dont have an existing object
}
}
} else if (this.browser_id == 2) {
var current_hash = location.hash;
if(current_hash != this.history_current_cache || this.history_clicks > 0) {
this.history_clicks = 0;
if (this.ajax_object) {
this.ajax_object.request(current_hash.replace(/^#/, ''));
this.ajax_object = null; // dont reuse the request object
} else {
new Ajax.Request(current_hash.replace(/^#/, '')); // reloads dont have an existing object
}
this.history_current_cache = current_hash;
}
}
},
ie_history_click: function(hash) {
var newhash = '#' + hash;
location.hash = newhash;
var history = $("ie_hash_history");
var iframe = history.contentWindow.document;
iframe.open();
iframe.close();
iframe.location.hash = newhash;
}
}
////////////////////////////////////////////////////////////You will need to modify the Prototype.js Ajax.Request.request definition to (the changed piece is simply the first 2 conditionals so you should be able to use this with updated Prototype.js versions by moving those pieces into the new version):
request: function(url) {
if (PrototypeBackButton.is_started && PrototypeBackButton.browser_id == 1 && this.options.history == true) {
PrototypeBackButton.ajax_object = this;
this.options.history = null; // prevent inf loop
PrototypeBackButton.ie_history_click(url);
PrototypeBackButton.history_clicks = 1;
} else if (PrototypeBackButton.is_started && PrototypeBackButton.browser_id == 2 && this.options.history == true) {
PrototypeBackButton.ajax_object = this;
this.options.history = null; // prevent inf loop
parent.location = '#' + url;
location.hash = '#' + url
PrototypeBackButton.history_clicks = 1;
} else {
this.url = url;
this.method = this.options.method;
var params = Object.clone(this.options.parameters);
if (!['get', 'post'].include(this.method)) {
// simulate other verbs over post
params['_method'] = this.method;
this.method = 'post';
}
this.parameters = params;
if (params = Hash.toQueryString(params)) {
// when GET, append parameters to URL
if (this.method == 'get')
this.url += (this.url.include('?') ? '&' : '?') + params;
else if (/Konqueror|Safari|KHTML/.test(navigator.userAgent))
params += '&_=';
}
try {
if (this.options.onCreate) this.options.onCreate(this.transport);
Ajax.Responders.dispatch('onCreate', this, this.transport);
this.transport.open(this.method.toUpperCase(), this.url,
this.options.asynchronous);
if (this.options.asynchronous)
setTimeout(function() { this.respondToReadyState(1) }.bind(this), 10);
this.transport.onreadystatechange = this.onStateChange.bind(this);
this.setRequestHeaders();
this.body = this.method == 'post' ? (this.options.postBody || params) : null;
this.transport.send(this.body);
/* Force Firefox to handle ready state 4 for synchronous requests */
if (!this.options.asynchronous && this.transport.overrideMimeType)
this.onStateChange();
}
catch (e) {
this.dispatchException(e);
}
}
},And here is the code for history_remote. Put this into your application_helper.rb. The code as given looks for a global variable $config['enable_back_button'] to determine if it should use the back button code. You can either define this in your environment.rb or simply remove the conditional as needed:
def history_remote(name, options = {}, html_options = {})
if $config['enable_back_button'] && $config['enable_back_button'] == true
html_options[:href] = "#" + url_for(options[:url]) # lets 'open in new tab' etc work
options[:history] = true
function = remote_function(options);
function.gsub!(/asynchronous\:true/, 'asynchronous:true, history:true')
# logger.dbg function
link_to_function(name, function, html_options)
else
link_to_remote(name, options, html_options)
end
endIn your layout/application.rhtml, you should add a call to PrototypeBackbutton.start("/controller/action", "My WebPage Title"); The title is there to deal with a bug I never got around to fixing that would keep appending the stuff after the # in the location bar to the title. We just force the title to this instead. You will also need an iframe for IE history:
<iframe id="ie_hash_history" style="display: none;"></iframe>
UPDATED: Here is a link to a full Rails 2.0 demo application with all of the pieces. Download the demo. Here is the demo runnning: Live Demo.
SiliconDust HDHomeRun HDTV Network Player
So the HDHomerun is a little bit difficult to describe, but it does a lot in a little package. Basically this is a little device that attaches to your router and allows any computer on your network to watch and record HDTV from OTA (Over the Air) antenna or from any unencrypted HDTV channels from your cable provider using the QAM protocol. Here in New York City, RCN and Time Warner both use QAM, which helps as OTA is less than ideal in the NYC apartment environment. (It can also connect directly to a single computer if necessary.) There is an added benefit that all of the normal, unencrypted, non-HDTV digital channels are also available for watching and recording, as well as the Digital Music Choice channels, at least on RCN. The HDHomerun has 2 antenna inputs, so you can a) watch and record 2 TV shows at once from the same or different computers, or b) have one set of HD channels from OTA and another from QAM.
Arguably, you have to commit to a fully computer mediated AV experience for this to really be useful to you, meaning that your primary TV viewing/music listening experience is through your computers attached to LCD/Plasma displays and connected to your stereo, rather than through cable boxes. But if you are willing to do that, you can save yourself 10-15$ a month in HDTV and cable box fees from your cable provider per month. For me, because I download so much of my TV, and have so many mp3’s on a server for playback thorughout my house, it is a no-brainer. But there is still this reticence in peopel to use their brand new 1080p LCD/Plasmas as the awesome computer monitors they really are.
Since HDTV is the real draw here, this is a list of the HD channels I get on RCN NYC:
- CBS
- NBC
- FOX
- ABC
- CW
- My9 (formally UPN, local origination)
- PBS HD (WNET-HD)
- NGC-HD (National Geographic Channel)
- TNT
- TBS
So no Discovery HD or HDNet, as those channels are encrypted. But you also get digital versions of regular Discovery, BRavo, A&E, MTV, etc. that your normal basic cable package has, all without dealing with cable boxes.
The one caveat here is that setup can be a little bit of a pain. There are tools for mapping the channels from QAM/OTA to get them to work with various media center software out there, like Windows Media Center, GBPVR, Team Media Portal, Beyond TV, and SageTV, but it will take you an hour or so and possibly a forum post to get everything in order, with the channel guides, etc.
The technology behind this puppy is pretty cool: It basically takes the raw ATSC/QAM data and strips it of a few headers, and then transmits the raw MPEG2 TS/TP (Transport Stream/Transport Program) data at full resolution over the network, which uses a couple of megabytes a second on your router. I may have the details slightly off here, but you should get the basic idea.
This device isn;t for everyone, but if you have a little bit of the computer geek in you, then this is hard to pass up.
Genius F610 Graphics Tablet
I’m recently new to the whole graphics tablet market, now that I’m doing more and more development with Flash. After trying to find a decent yet recent Wacom Intuos 3 on eBay for a few weeks, I finally took another look at Newegg.com (my fav!) and found the Genius F610 Graphics Tablet. It has a lot of the features that you would expect, and it comes in a great widescreen layout. The size is HUGE: 6x10 inches, especially for $90 delivered (normally $105, there was a $15 off sale when I got mine). Perhaps if you are strictly a professional designer, the Wacom tablets have that little extra polish that the Genius doesn’t have, but for my purposes, and I would assume 90% of users if truth be told, the Genius F610 is more than adequate for all of your needs. If anything, this is what you should buy your kid for Christmas/Birthday if they have even a hint of artistic talent, and at the price it won’t break the bank.
I do have one problem with it: the drivers for x64 Vista don’t work with it, and according to support won’t in the near future. This means that two features won’t work on Vista x64 in Photoshop/Flash: Pressure Sensitivity and the Macro Manager buttons. Even without these features it is a great product, but it would be better with them. Why companies are having such problems releasing 64 bit fdrivers is a testament to something, and probably not a good something, about the state of driver development on Windows. I’m not sure if the drivers work for XP x64 or not.
Features:
- 6” x 10” working area operates with widescreen laptops and monitors perfectly
- Very slim design, which should make it easier to use on a desk surface
- 1024-level pressure sensitivity shape and thickness control
- 2000 lines per inch drawing resolution (I think wacom may have >3000lpi but can’t really imagine how that would affect things)
- Has a plastic cover/overlay that should allow you to easily do tracings without damaging the original
- Works for both Mac OSX and Windows
- Let’s you use all of the Windows Tablet PC/Ink functionality, like Windows Journal (which supports pressure sensitivity without the drivers even on x64), and the Tablet PC Input Panel where you can simply write words out and insert them into your document with a very high recognition rate (better than my trained Windows Mobile PDA).
Common Complaints:
- Pen uses 1 AAA battery. I don’t really see how it affects people’s drawing, but I have seen vehement complaints about the thought of needing a battery in the pen. It is still a very slim design.
- No eraser tip on the other end. This may be the best complaint about this device, that you can’t simply flip the pen and erase like you can with the Wacom. But is that really worth another $250 dollars? A comparable Wacom tablet costs ~$350.
- x64 drivers missing, but the pen still works, just without pressure sensitivty and macros
Basically this is a great little input device for the price, and if you are on the fence about getting one for yourself or the kids, this should be the one to get for yourself or your budding artist if price is a serious issue.
Why is there no cheap CD/DVD automated changer for PC's?
So I really want an automated CD/DVD changer for my DVD burner on my PC. Ideally something that would work with pretty much any drive you threw in it. Simply a mechanism for taking a disc from one stack of blanks, dropping it into the DVD tray, and pulling it out when the dvd was finshed buring or being read. Ideally this could be used for:
- Burning a bunch of downloaded files
- Backing up a harddrive/mp3 collection that spanned many DVD
- Ripping an entire CD/DVD collection to harddrive.
Something that could be upgraded with a new ‘Blu-Ray’, X-Ray or whatever type of disc in the future with the same physical specifications.
These things do exist, but are usually outrageously expensive for a little mechanical arm that pops a disk out. Hell, I can buy a Roomba robot for $200, but the cheapest burner changer costs $500. It’s just a motorized arm for crying out loud. IN the absence of something affordable, it would be great if there was a homebrew DIY project out there that was fairly easy to put together as weekend project that could do the same. The few examples out there, but they aren’t really practical, just pretty amazing from an ingenuity perspective.
Here are some of the existing way-to-expensive-for-casual-use models out there:
Forte (cheapest duplicator out there)
ReflexAuto (This is the basic design style of many of these, and the sort of thing I would want to see but in a smaller form factor. )
Sony (I KNOW!) had probably the only consumer device on the market but did nothing to promote it, the Sony VGP-XL1B. A bunch of lucky souls got these at clearance prices before the 2007 holiday season for $99 (originally $399). They are now going for $400 on eBay. It isn;t the ideal solution tho, as dealing with a carousel when you need to label the burned media isn’t terribly easy.
The truth of the matter is that there is probably a limited timeframe where these things would be useful for the burning functionality, as hard drives get cheaper and larger. When 1TB heard drives are $100 in the near future, it basically reaches the break-even with physical media blanks. It currently costs about $0.50 to $0.60 for each DVD you burn, to buy the media ($0.35 for Ritek in 100+ lots), plus $0.15 per sleeve to put them into a binder book (unless you just keep them stacked in the spindle), plus another $0.05 per disk for the cost of the burner. Companies are even realizing this, one company selling harddrives with 10 HiDef movies on them, you just pick the 10 movies you want. Obviously hard drives become a single point of a much larger catastrophic failure, but as long as a drive ilasts another 2 years, we should see 2TB drives for $100 by then so backups become trivial.
If I was in the DVD/Blu-Ray media business I would be crapping my pants right now.
logitech dinovo edge
I’m really looking forward to the new Logitech DiNovo Mini. It looks absolutely awesome, perfect for media center usage, as well as light usage for surfing, or when ‘one-hand surfing’ is necessary. While reading the reviews for it, I saw some references to not so stellar reviews for the Logitech DiNovo Edge. It isn’t perfect, but it is by far the best keyboard I’ve ever used, so I wanted to throw in my $0.02.
What I love about it:
- Style: It looks freakin’ gorgeous, especially when you turn it on or press the [FN] function key.
- Volume Control: The built-in slider volume control is easy to use and very stylish as well. There are some complaints about the range of the volume control, but you can typical fix this with something like AutoIt if it really bothers you too much. Note, there is an issue in Windows XP that prevented it from working as intended, but it works great in Vista (even x64). The issue with XP is probably related to my use of SPDIF out, where the Edge’s Volume Bar only affect the Master Volume or Wave volume, I can’t remember which.
- Touchpad: The touchpad is one of the best I’ve used. I’ve seen a
lot of complaints about the touchpad, so I wanted to point out a few
things. No it isn’t a ‘multitouch’ touchpad, like you have on a
MacBook, but to be honest, this is my least favorite feature of
MacBooks. I have RSS (repetitive stress syndrome) in my wrists, which
prevents me from using a mouse, so touchpad is the only way to go for
me.
I’ve used Cirque touchpad products in the past, and while they general make a nice touch area, the rest of it is garbage. The drivers have typically been terrible, locking up the mouse, etc. across numerous devices. My last USB Cirque they finally got right in the driver arena, but the physical pad itself was the cheapest thing ever, when before the hardware had always been the one saving grace. This thing had sharp edges, horrible button layout, and generally required me to use a dremel and adhesive-backed foam to make it anywhere approaching comfortable.
Where the Edge really shines is in scrolling. I haven’t seen much mention of this, but basically you just start stroking (hehe) your thumb in a circular motion clockwise and you start scrolling down, and you can keep doing this indefintely. You can pause scrolling and, without lifting your finger, continue, or start going the other way, no matter where on the pad your finger happens to be at that time. With other ‘side scroll areas’ on other devices, you have to lift up your finger at a certain point and start scrolling again, etc. And don’t get me start on how much better this is than the MacBook’s two finger scrolling. OK, fine, now you’ve got me started…1) it takes 2 fingers! 2) It takes many strokes to get where you need to be in a large document, 3) TWO FREAKING FINGERS! Twirling a single thumb kicks two fingers ass (insert ‘bowling’/’pink-stink’ joke here).
I’ve seen complaints about the Edge having a ‘useless’ touchpad which makes it larger than it needs to be for a ‘compact’-type keyboard, and lack of numeric pad. Apparently, they weren’t aware that there was a specific DiNovo product designed for them: diNovo™ Media Desktop® Laser. I’ve also seen complaints about not being able to get the cursor to move far enough. If you set acceleration to at least ‘low’ in the SetPoint software you shouldn’t have any issues with getting the cursor to go across a 1920x1080 screen in one swipe. It would be nice if it worked without acceleration, but it does take 2-3 swipes if acceleration is turned off.
- Built-in CAPSLOCK disable. I’m simply not a touch-typist, and CAPSLOCK is my bane.
- Lithium-ion Rechargeable battery built-in. For heavy users like me, the charge only lasts 5-7 days on average, but gives plenty of warning before going out, and you can just toss it on the stand for 10 minutes and use it for another few hours if needed.
- Key action is very nice.
There is room for improvement:
- The charger is nice, but it would be more functional to be able to have a way to charge it that wasn’t vertical, so you could use it while it was charging. Not a huge deal, since you can charge it for like 10 minutes and get a few more hours out of it.
- The SetPoint software could use some more customization options, with setting buttons, etc., or setting the Volume Bar to a different mixer channel, for instance. The software looks like it was designed by a kindergartner.
- It would nice to have more easily accessible multimedia keys without having to press [FN]. But this is a flaw in Windows Media Center as well, not being able to set keys, etc. The fact that space bar isn’t pause/play is ridiculous.
- It’s a little heavy the way I use it. I have sort of an unorthodox
work environment, namely my bed, so it can get a little heavy trying to
hold it at times when I’m moving around trying to get comfortable,
which is one reason I’m looking forward to the Mini as a second
keyboard.
- It seems like there was a little bit of a settling in period for me, where the keyboard would stop responding, etc. when I first got it. But after the first couple of days, I had very few issues.
- Slightly odd key placement for delete, home and end keys. I want
Home and End to be on top of each other, but they aren’t here.
- OMG it gets fingerprints on the finish…who cares?
So all in all, the Edge is really a solid all around keyboard, and utterly stylish. Its $160ish street price is a little hefty, but if you are looking for the best keyboard touchpad combo out there, then look no further. I’d given up on wireless keyboards before the Edge, due to battery frustrations, but the Edge has brought me back with a vengence.
Guilty Pleasure: Paranormal Romance
OK, so this is a little (a lot) embarrassing, but I’m a big fan of the paranormal romance book genre. I was always a huge Buffy the Vampire Slayer & Angel fan, and ultimately that is what those shows were about: the paranormal and romance. So I guess it has stuck with me, and now when I find the free time, I like to plop down with a fun vampire, werewolf/shapeshifter, demonic, sidhe/fairy, psychic or otherwise paranormal romance book. I’m not a fan of the historical vampire novels per se; I like the ones set in relatively current times. And did I mention I dig kick ass chicks? The other thing I love about the genre is that it is serial, with tons of sequels. I love movies, but I find myself enjoying TV shows more because they have more than an two hours to develop the plot. I become invested with the characters and the rules of the world they live in, and so I appreciate being able to slip into their familiar world again every few months. It is also fun to see how others create a particular set of ‘rules’ for their particular world and how it affects the plot development, such as vampires who can walk around in the daylight in some series versus others.
My favorite authors in this genre along with some of their books:
- Carrie Vaughn - Kitty Series: This is a predominantly werewolf series, with vampires added in to spice things up. The hook is that the lead character, Kitty, is a DJ on a radio station and a werewolf, and she runs a late night radio show about the paranormal.
- Laurell K. Hamilton - Merry Gentry Series: Hamilton has had her ups and downs in both of her series, but for me this is currently the one that has the most going for it. She is wildly inventive when it comes to visual description, and imagination. The romance is a little repetitive and forced at times, and she has a bad habit of having her characters over-analyze their relationships. This series revolves around an anti-‘fairy princess’, and the issues between the good and bad Seelie (fairies from Irish folklore) who now live in the U.S. after being driven out of Europe.
- Laurell K. Hamilton - Anita Blake, Vampire Hunter Series: This was the series that started it all for me. RIght as Buffy was finishing up season 7, I started reading this series (there were already 5-6 at the time). Those first 6-8 of this series were great, but it has really gone downhill. I’m not sure if it corresponds to the author starting a second series, or her divorce from her husband/editor, but this series has really devolved into a morass of excruciating relationship analysis obsession by the characters. There was always a hint of that, but it has become a malignant disease on the series, along with the gratuitous multiple sex partner theme. It is hard to recommend this series now, but they really were the start of it all, and the first few books are really fun.
- C.T. Adams & Cathy Clamp - Sazi Series: These are a lot of fun, dealing with shape-shifters like werewolves, weretigers, and werebears. They do a really good job of weaving in characters from the previous books into the new releases, so you never feel too far from the characters you enjoyed in the past.
- Amy Lane - Little Goddess Series: This is a self-published series, meaning the author releases the work herself without publisher support. I don’t really know why they haven’t been picked up by a publisher yet, as it really is an exceptional series of books set in Northern California and generally revolving around the life of a young woman who becomes involved in the dealings of the Sidhe (fairies of all shapes and sizes) and vampires. Really taps into a lot of the insecurities of a young women in todays world at times (not that I would know, I’m just guessing here).
- J.R. Ward - Brotherhood of the Black Dagger Series: One of my favorite series, this is a vampire series where the vampires just try to get along while fighting against undead Lich’s (undead being that hide a phylactery – think a jar – with their essence the gives them extra power and resilence) organized against them. She does have an annoying habit of killing off lead characters though, lol, so unlike most books from this genre, the happy ending in many cases is bittersweet.
- Lara Adrian - Midnight Vampires Series: Similar to the J.R. Ward books in theme, though not quite as good, but still very entertaining.
- Nalini Singh - Psy-Changeling Series: This is one of the paranormal romances with a science fiction
twist. Also, one of my favorites. In this series we have shape-shifters like werewolves and werecats fighting against the emotionless Psy, a race of psychics linked together in a hive-mind. The hook here is that the Psy’s end up breaking their conditioning against emotions and fall in love with the shape-shifters. While the theme is somewhat repetitve from book to book, it is a very compelling theme, and really works.
- Eileen Wilks - World of the Lupi Series: Another good werewolf, et. al. series that also does a good job of bringing characters from previous books into the new releases.
- Patricia Briggs - Mercy Thompson Series: One of the better werewolf/vampire/fairy combo series out there, Briggs really has a way with words, drawing you in. The twist here is that the lead, Mercy, isn’t actually a werwolf, but a coyote shifter who has to deal with being a ‘lone wolf’ so to speak, surrounded by real werewolves.
- Richelle Mead - Georgina Kincaid/Succubus Series: One of the demon based series, with some vampires thrown in. This series is a fun romp set in Seattle, where the lead character, who isn’t always likeable, derives her sustenance through intimate encounters, stealing the life of her victims.
- Christine Warren - The Others Series: Another good multi-supernatural-being series set in New York City, with vampires, were-creatures, fairies and demons.
- Susan Sizemore - Prime Vampires Series: Interesting mix of three different vampire types, roughly correllating with ‘lawful’, ‘neutral chaotic’, and ‘evil’ along with a human vampire hunter group that doesn’t distinguish between them.
- Charlaine Harris - Southern Vampire Series: A fairly light, fun series about vampires down in Louisiana, and the psychic mind-reader who loves them.
- C.E. Murphy - Urban Shaman Series
- Marjorie M. Liu - Dirk & Steele Series: Despite the author-admittedly cheesy name of the Dirk & Steele paranormal investigators, this is a wide ranging series with a lot of fun and one of my favorites, with a decidedly Asian influence at times. Ms. Liu is one of the more beautiful ladies of the genre, and uses her mixed heritage to give her books a fresh feel while still touching on the old themes. My only complaint would be that the, uh, ‘romance’ could uses a few more sparks at times. The first book hits it right, but it seems like there is a little more held back these days when it comes to the passion. Could be one of those ‘my parents/family read my books’ syndromes.
- Kim Harrison - Rachel Morgan Series: This is a great series with a lot going for it, with witches and vampires, ley lines, and potions, with a few elves(fairies) thrown in. My one complaint here is also that the romance lacks a little spark.
- Carole Nelson Douglas - Delilah Street, Paranormal Investigator: This series is just getting going, but it seems like a lot of fun, so should be one to watch. Lots of good humor.
- Kelley Armstrong - Women of the Underworld Series:
- Rachel Caine - Weather Warden Series:
- Katie Macallister - Aisling Gray Series: This is a little too fast paced at times, but still fun.
- Rebecca York - Marshall Werewolves Series
- Keri Arthur - Riley Jensen: Guardian Series: This series takes place in Australia, and is one of the few crossover series that started out in ebook format before being picked up for publication.
- Vicki Pettersson - Sign of the Zodiac Series: Fun mix of supernatural beings, Dark and Light, with a cool comic book hook.
Young Adult Series: These are some good-to-great series in the Young Adult genre that don’t hold much back in some cases.
- Richelle Mead - Vampire Academy Series: Really looking forward to the next in this series.
- P.C. Cast and Kristin Cast - House of Night Series: Another great vampire YA series. Lots in common with Vampire Academy, in a good way.
- Ellen Schrieber - Vampire Kisses Series: This one is a little more sedate, but still a fun read.
- Holly Black - Modern Fairie Series: A very dark series with a lot of adult themes, even though it is aimed at the YA market.
- Rachel Caine - Morganville Vampires Series: Another dark series with adult themes, with a lot of heartache and angst.
- Melissa de la Cruz - Blue Bloods Series: The Gossip Girl of vampire series, set in the Upper Eastside of Manhattan. Loads of fun, with lots of adult themes.
[More to come soon. ]
Some series I haven’t listed that many consider to be cornerstones of the genre like Feehan, Sands, etc. I simply haven’t gotten around to reading yet because it would take a month to catch up, or they are historical, which just isn’t my bag.
There are a number of common themes amongst these books, but many times it is the ones that break from these themes in some way that are the more memorable. Here are a few of these common themes:
- There are generally two kinds of series, evenly split, those with a single protagonist (‘Singles’) throughout (ala Hamilton’s Anita Blake, or the Vaugh Kitty series, Rachel Caine, Kim Harrison’s Morgan and Lane’s Little Goddess)
and those where a group of people with similar powers or relationships have a self-contained romance within each book (‘Serials’), many times with the next protagonist introduced near the end of the previous. Series that typify this style are J.R. Ward, Kelley Armstong, Marjorie Liu and Lara Adrian. These differences result in very different ‘arc’s in many cases. Obviously the single protagonist novels are going to have a lot of problems in their relationships, otherwise there wouldn’t be much romance. ‘Singles’ tend to be a little darker and have a little more introspection, and obviously more development of the characters, who have many flaws and insecurities. ‘Serials’ tend to have the more of the ‘romance’ elements, with typical happy endings at the end of each novel. There is always the chance you might not like the particular protagonist for one of the books in a Serial. There are notable exceptions to these, like J.R.Ward where the happy endings can be hard to come by, or combinations of the two: ‘Serial Singles’ which generally follow one protagonist, but spin off into another series about a different protagonist in the same ‘world’, like Patricia Briggs’ new Anna & Charles Series. - Many of these books revolve around the concept of compelled or inevitable romance, where mystical forces will ensure that the lovers eventually come together, but that one or both fight the cumpulsion to ‘mate’. Equally, the protagonists might realize they are compelled to ‘mate’ but try to develop the romantic love to go with the physical need to be a mated pair. This is by far more common in Serials. The other common theme in this vein is where ,though they recognize the mating call and want to be together, circumstance prevent them from being together, such as vampires falling in love with mortal humans, werewolves falling in love with werecats, demons falling in love with any of the above, and ‘cross-species’ and ‘cross-class’ forbidden love in various forms.
- Invariably, the leads are damaged in some way, or have a close relationship with someone who is damaged. This usually takes the form of a history of rape or incest, someone who is still a virgin out of fear or other emotional damage, someone who had a single bad sexual experience and has never made another attempt, or someone who was so emotionally damaged in a previous relationship as to make it difficult to ever trust again. While sometimes, this is an obvious attempt by the author to manipulate an emotional sympathetic response to the protagonist, at the same time I’m a sucker for it every time.
- The Reveal: This is probably my favorite aspect of the paranormal romance genre. At some point in most of these novels, there is a big ‘reveal’ where someone who doesn’t know about or doesn’t believe in the supernatural is forced to come to terms with it, usually on of the targets of the romance. Being able to write a compelling ‘reveal’ is one of the key indicators for success in this genre. The reveal can take on slightly different aspects, such as one supernatural creature not realizing their lover is also supernatural.
- Development of powers/abilities/skills: One of the common themese is for the protagonist to find out he/she has abilities that they were never aware of, or have an experience where they suddenly become much more powerful than they were, such as becoming a vampire/werewolf, or always being the weak runt of the supernatural group, and suddenly blossoming with some new powers or old but forgotten powers that propel them into adventure that they otherwise wouldn’t have been able to undertake.
- Orphans/Adoption: While less common, it is still a key theme in many of these books, and part of the ‘reveal’ and development of special abilities where the protagonist finds out they are adopted and are in fact half-vampire, or are orphans and discover their true birth parents. Think Harry Potter.
My one rant about the genre is that red hair occurs in less than 2% of the worlds population (up to 4-5% in the U.S. however), but fully 30-40% of the protagonists or love interests in the genre have ‘flaming manes of red hair’ (always the woman). Seriously, I have to laugh every time I read about another red haired lead.
That said, I’m not saying these are amazing books in and of themselves. They are great entertainment in a mindless way, and lots of fun in that Buffy the Vampire Slayer way. The tend to have a lot of action and not in frequently blood and guts. The authors of this genre tend to release a book every 6 months or so, so while you get your ‘fix’ of a particular protagonist or culture on a pretty frequent basis, you don’t get the same level of detail and scope that I find in say a Jacqueline Carey novel, who releases once a year.