Readmilling: Scripts for ebook reader Readmill's API

I've recently fallen in lust with Readmill, a social ebook reader for iDevices that lets me share my notes and highlights (and, most importantly, allows people to comment on them, something which Kindle's web-export doesn't provide). Readmill goes a step further, however, and provides all the data in a not-entirely-shabby API, which solidifies my hankering even further.

I've since started developing Readmilling, a set of open source scripts utilizing Readmill's API. The first release includes book-comments.php, which tries to merge all comments left on similar highlights into a single entry. This particular view is impossible to get inside the Readmill app or on their site, but access to the API makes it relatively easy (but time-consuming).

Future scripts will likely include an exporter for all your data (open question: what formats would you like the export in?), a "Today in Readmill" that'd be a bit of a merge between the existing Explorer and your friends-only user stream, and a more advanced search engine that lets you fiddle with all the doohickeys the API provides. If you've your own ideas, you can certainly drop me a line at morbus@disobey.com and they might end up as an open source script for everyone to use.

Replacing bookshelves with Way Basics cube storage

The book I've owned the longest is probably Jim Arnosky's Secrets of a Wildlife Watcher. Its been signed and dated to 1986, which indicates this book, still in pristine condition, has been in my collection since I was an apparently non-destructive 8-year-old. The next longest is probably Interstellar Pig by William Sleator which, along with the Coville's The Monster's Ring, was checked out from the local library more times than I had counted.

Over the years, I've been steadily running out of room. I've reorganized, hemmed, hawed, and even moved hundreds of books into boxes for storage, a travesty to my viewing and collecting pleasure. This past summer, I replaced nearly all my bookshelves with a solution that's given me more room in the same footprint. Its allowed me to put nearly all my books back on display, whilst still giving me room to grow.

The "Before": Never enough room


Two bedroom walls. The first is a five shelf main wall; the second is a three shelf side-wall.
An in-progress dismantling. I didn't think to do "before" photos before it was too late.

The five shelf layout in my office, with a small selection of boxes. More were stored in other rooms.

The "After": Floor to ceiling!


The cubified bedroom with a 5 x 7 (main wall) and 5 x 4 (side wall) cube layout.

An 11 x 7 cube layout which follows the curve of my office walls.

I had quite some difficulty trying to get a single image of the entire layout.
This is one of the better attempts at using Photosynth. I just couldn't back up enough!

Cube storage is a go!

These are Way Basics cube storage: six individual Storage Cubes and one Storage Cube Plus create a column that rises to about an inch and a half from my ceiling. Though they don't lock together for stacking, wedging something into the remaining space provides enough stability that I've no fears about jumping four- or six-year-olds. (I'm not kidding, either - that was actually part of my stress-testing.)

The cubes are made out of recycled cardboard, which makes them quite light at 4.4 pounds each. You build a cube by sticking the pieces together with double-sided adhesive tape from 3M. You might be saying "cardboard?! adhesive?!", and you wouldn't be alone. But, besides the weight, they seem indistinguishable from the standard MDF or particleboard shelves you can buy cheaply nowadays. The colored laminate hides any indication they're made of cardboard and, when they're properly built and have rested for 24 hours, they're quite sturdy. I've moved around cubes full of heavy books without mishap (and by supporting the required backboard, of course).

More inches with the same foot

If you look at my "before" pictures, you'll see the standard department store shelves I've had for years, with lots of wasted vertical space above the book tops. This is both because you only get a certain number of shelves (one of which is hardwired near the middle for stability) and because there tends to be only one optimal way to place them. A single shelf gives you 26.75 inches (″) of horizontal space. For a three shelf unit, that's a total of 80.25″, or 133.75″ for a five shelf unit.

With the Way Basics cubes, I can get four shelves in the same space as a three shelf unit. A single cube offers 11.75″ of space. For the bedroom's side wall, which had two three shelf units, I had 160.5″ of horizontal space. Replacing those shelves with cubes gave me 188″. Since the cubes fit into tinier nooks than the full-blown shelves, I was also able to fit a fifth column on the side, bringing my total up to 235″, nearly 5½ feet of extra horizontal space in the same footprint.

For floor to ceiling columns, something I could never do with department store bookshelves, the extra space gained is even larger. With six regular cubes and one plus-sized cube per column, I maximize the height for most of the books I own, while still allowing room for the various oversized items I have. You can see the Plus-sized cubes in the first or second rows of the floor to ceiling photos.

Other conclusions and a happy-faced Morbus

The fact that there are more "walls" to cube storage is actually a benefit in disguise: with most cheap bookshelves, your shelves will start to sag over time. It was a habit of mine to flip my shelves, like a mattress, every six months or so. With cubes, every horizontal shelf is reinforced either by the floor or the top of the cube beneath it. I haven't had them long enough to notice any sagging, but my guess is that it won't be a problem. No more mattress flipping!

Way Basics storage cubes come in a variety of colors, and I spent many an hour drafting up cute little patterns and schemes in a drawing program. After building a 5 x 7 pattern (for the bedroom's main wall), I found that you don't really notice the pattern unless you actively look for it. I switched over to single colors per column (for the office walls), and they become a bit more noticeable. If color isn't your thing, they also offer black, white, and a few wood grains.

I've looked into storage cubes before, but always found them to be too expensive (locking wooden crates that cost a ton to ship), too bookshelve-y (a single unit with nine cubicles defeats a lot of the advantages of cube storage), or too flimsy (full plastic walls that weren't sturdy enough, milk crates that didn't have enough flat surfaces, etc.). The Way Basics cubes have none of these problems, and after two months of testing and three months of completion, I'm quite thrilled with the result!

Incidentally, if you're wondering why you're not seeing any mass-market paperbacks, it's because they're all stored on DVD shelving units available from MediaShelving.com. I've three of these in my house, with a fourth slowly inching its way into necessity.

Achievements 7.x-1.5 released

The Drupal Achievements module offers the ability to create achievements and badges similar to systems seen on Xbox 360, Playstation 3, Foursquare, Gowalla, GetGlue, and more. For a Drupal site, this could mean commenting a certain number of times, starting a forum topic, visiting the site every day of the week, or anything else that can be tracked and coded. The recently released 7.x-1.5 update adds two optional modules, a new type of achievement, and a bunch of bug fixes and tweaks.

Critical API change for "hidden" achievements

If you're using "hidden" achievements (that is, achievements which coquettishly say "I'm here!", but don't reveal their points, title, or description until unlocked), they've been renamed to "secret" in 7.x-1.5. If you don't retype any of your hidden achievements in your code, they'll become visible to your users. From a gamer's perspective, a "secret achievement" is a more frequently used phrase than a "hidden achievement", and "secret" and "invisible" (see below) work better together than "hidden" and "invisible" (which are synonymous).

Invisible achievements are now available

"Secret" achievements are those that are displayed to the end-user but don't reveal their details until unlocked. These achievements are best used to indicate there are still things to earn, but without spoiling the fun of discovering how to do so. Sometimes, though, you want entirely "invisible" achievements - those that don't show up at all in the user's achievements list until they've been earned. These are now possible in Achievements 7.x-1.5, and are great for tenure-based milestones to thank long-time users or beta testers, event-specific achievements for those who were there at the right place and the right time, or simply to provide a different type of experience when you have thousands of achievements or want to "build up" the user's achievement list vs. starting them off with everything visible and locked.

Opting out and no competition

Two new optional modules have been made available in this release. Some folks just plain ol' hate gamification, and the Opt-out module adds a new checkbox field to the user's edit screen that allows them to refrain from (and reenable, if they so desire) earning achievements. Opting out will hide the user's Achievements tab, delete all their currently earned achievements and storage data, and can also be used as a quickie "start over" mechanism (though if you've written any legacy unlocking code for them, they won't re-earn for free what you may have granted them in the past).

The second module, Pointless, removes all the explicit competitive elements of achievements. Milestones will no longer display a user's unlock rank or the number of points, and access to the leaderboards is disabled. This creates an environment where the user unlocks achievements for their own gratification, not to simply one-up another user or to get noticed on a nebulous high-score table.

Et cetera

Further information about smaller tweaks and bug fixes is available in the release notes.

Using Achievements on your site? I'd love to see it and start unlocking 'em myself. Lemme know!

Achievements development is supported by Examiner.com, which uses the module for its Examiner-specific Trophy Case. If you're a passionate or knowledgeable writer, consider applying to become an Examiner and see the implementation yourself, as well as earning money for your popular articles.

#TwitFlix #DrPhibesRisesAgain Twitter archive

What follows is a curated archive of TwitFlix's live-tweeting of Dr. Phibes Rises Again on Netflix. The curated archive removes all retweets, repeated statements or off-topic tweets, and the standard hashtags (#TwitFlix #DrPhibesRisesAgain).

Alright folks it is about time! At 8:30 EST theGang is watching Dr. Phibes Rises Again w/ Vincent Price. Join in with us!!
10 minute countdown to! Get your Netflix queued up, and find out more at http://t.co/heupOiyb.
GOGOGOGOGOGOGOGOGOGOGOGOGOGOGOGO
This film is based on a true story....
American and those Other Countries.
The voice-over narrator speaks with the easygoing manner of The Amazing Criswell
It's true! The narrator said so! “@GenXnerd: This film is based on a true story....”
They just jumped right into this story didn't they!
Oh God, it's Willard!
His Clockwork musicians seem a bit orange
Where in the World is Dr. Philbes?
@sewdork You're missing the thing I made a joke about in #Hellraiser!
Three Years Later. This movie is that long?
I have a bed exactly like that!
The "eternal" planets? As opposed to the "trendy" planets that only last for a few years?
Oh, Mr. Narrator, now tell us a story about Buck Rogers!
"Yawn... What have a missed? The Red Sox won a World Series!?!?!?! How long was I out?"
And now a reading from St. Paul.
Vincent Price hasn't even spoken yet and he's already hamming it up.
The aromas… the aroOOMmahhs!
I love the Phibes series - this is one of those "good" sequels you don't hear much about.
Phibes was the original keyboardist in ELP.
Quick my dear! To the PhibesMobile!
So… now you're Ra's Al Ghul and Talia?
I'm impressed by his ability to chew the scenery without moving his lips.
JOHN GALE, not Phibes, you plebs! Vibrochord goOoO!
It was Peter Cushing, wasn't it!?
Sorry, Phibes. The mortgage on your mansion adjusted upward while you were asleep. It's BOA's now.
Enter Phibes' quarry for this film. #sorry
The papyrus says Mummy 3 will suck.
My Dear Man, this isn't a resurrection formula, it's a Tijuana Bible!
When these guys play pool, it's all solid, baby… all solid.
I'm *positive* Robert Quarry wore that same smoking jacket in Count Yorga. #FrugalAIP
"About the time as the rings around Uranus! People still like that joke, right?" --Phibes
Sometimes it's like my breasts on the pool table.
OH HAI, I AM NOT TOR.
THRILL at the non-stop Pool action!
...Is the snake shaving? Does Norelco breed reptiles?
This is why you're supposed to watch out for snakes. They could be clockwork creatures.
I am having Netflix issues... working on it guys.
You'd think a muscley guy would just rip the snakes apart instead of coordinating hand & eye with a pool cue.
That should have said "Animatronic snakes bitches!"
"You play solids. I'll be stripes." --The Snake.
That was one of the most invasive ways to kill someone ever.
Yeah, Price doesn't have any vocal lines. He only needs the power of his EYES to make the scene.
Yay! The befuddled constabulary is back! Whoooo!
With respect, you're a fucking dick
37 cents.
He brilliantly deduced that an attack by a mechanical snake was a "calculated" act.
Hawking would sound so much cooler with a Phibes synthesizer.
Brain Shishkebob to waltz dancing.
Wait, wait, the Titanic was real?!
If only M. Night could set up weird twists half as well as Phibes.
Time for my Laudanum.
Quarry is so very...
Ooh, mine, too! “@DisgrunScholar: Time for my Laudanum.”
Not even Basil of Baker Street!
Everyone speaks such proper English in this film.
With his Mickey Mouse gloves, nothing can stop Phibes now!
Incurable psychopath, sure, but damn if he's not an incurable romantic.
@morbusiff I'd hate to see Dr. Phibes in Fantasia. @_@
Just like the band at my local Chucky Cheese!
"Hmmm. My mustache is glorious!"
I need a traveling clockwork band
I suddenly thirst for "Muller's Gin" Gin.
Enjoy your two minutes of Peter Cushing
Peter Cushing!!! Whoooo! #Fangirling
Now if you'll excuse me, Alderaan is waiting.
The Doctor!
Oh, and a gunshot.
2 minutes of Peter Cushing is better than no minutes of Peter Cushing. “@TheWickerBill: Enjoy your two minutes of Peter Cushing
And to "The Thief and the Cobbler" I'm sure it will be grand.
I must say those are some sweet gloves!
I like to feed the back of my neck too
@word_countess You have an excellent point, my dear
Phibes is going to have some 'splaining to do to Corpse Bride about Vulnavia.
Behold, SKELETONS!!!
Count the toes! It's the LOST statue!
This movie is halfway between CLeopatra and Manos.
Before Shredder, Phibes was master of the Foot Clan. #YouCanUseItMichaelBay
It's not commonly known that Ancient Egyptians invented Art Deco.
This might be what a live action BioShock looks like.
"Yes, none of us are as good as Price, are we?"
Is that man going to a formal dance? Why is he wearing a flower?
Terry-Thomas!!! In the AIP tradition of reusing actors and smoking jackets...
High Phibes!! Low Phibes... ah to slow!
Spoiler alert: Phibes killed Terry-Thomas in the first movie. He got better.
SR. PHIBES RISES AGAIN! THRILL AT THE SUPERNATURAL AWE!
She is a pretty good painter but can she paint a ceiling?
I'm picking up good Phibrations.
So the Clockwork Band is on tour, huh?
@DisgrunScholar You can see them at a Chucky Cheese in your local area.!
"That's where my hat shop is."
This movie just turned khaki!
You know, this movie is kinda silly. #CaptainObvious
@GenXnerd @disgrunscholar Or a Spencer's Gifts! (Do they still have those?)
@DisgrunScholar Yeah, but this is the same era where Vincent made "Dr. Goldfoot and the Bikini Machine."
This bird fight is 1000% better than any of Birdemics!
@word_countess @disgrunscholar I haven't been to a Mall in at least 10 years.
OH MY GOD, A NOSE!
It was the hawk, the hawk!, that caused the great Chicago fire!
Big horn with a lil' gal!
Someone needs to tell that bird that looking right into the camera is soOO film school year one.
It's...a....TUBA!
Dr. Phibes Vulnavia cosplay: GO!
Oh, generic bird cry takes me right back to many a tale of the Herculoids.
@morbusiff At least they didn't go with CGI birds.
Missing 12 minutes at the start of this has really screwed my perception of this film up.
@mkglert "When he came to me, that night, the tuba stood in the corner, its brassiness a glint in our eyes."
@word_countess Or those raptor bird things from the Star Trek: The Animated Series episodes.
I think we found this year's Halloween costume! I'll be Phibes. You be Vulnavia. “@mkglert: Dr. Phibes Vulnavia cosplay: GO!”
So Phibes is...The Keymaster?
@word_countess @mkglert Can I be the Tuba?#Halloween #cosplay
Intellectual Freedom? Well, thank God we're all idiots!
Cigars, Cigarettes, Ears, Noses.... Get your Roman Noses!
@morbusiff @word_countess Sure! Now we need two enormous feet.
I'm trying to live forever, how can human life mean nothing to me? Mine does! Yours… eh, not so much.
The Rolls Royce of coffins
Bider Beck and Bilbo Baggins and Billy Batson! All of them!
Clockwork Wizards & enough Vulnavian costume changes to justify a suitcase co.… that's what goes on there
Vulnavia, Victoria, Vesuvia, Valeria...
@mkglert Venerial?
MMMmm, shadow porn. That really needs to be a marketable sub genre.
@mkglert Valium?
Millenniums? What? Pull over, movie. #GrammarPolice
@morbusiff I have a HD full of it!
Ah, it's the "Kiss the Girl" scene of B-Movies.
When I see thecrew making fun of DR. PHIBES RISES AGAIN, I get a sad. That movie makes fun of itself, you know. #istillloveit
I bet we could find some shadow porn actors here on Twitter!! Anyone? Shadow porn?
@GenXnerd Remind me to abuse your Dropbox bandwidth again after the movie.
Iron Shiek!Price is Pleased!
@mkglert Vulnavia: strongly invokes female genitals, yet least sexy name ever. #VulnaviaGalore
"Could you scream a bit louder? You're totally not in synch with the violin!"
"Maybe they can sell us Droids!"
So, is Price...Prof. X or something?
"3 dunes east. Now a dune to the right. Now back up about a quarter dune."
Phibes is wearing a Hypercolor robe.
Behold, Nazgul!Price!
"This isn't Hyde Park." Ooh, buuuuuurn!
"This isn't Hyde Park. ...It's Tahrir Square, so yeah, go ahead."
Phibes on a giant swamp boat, looking for the elixir of life, whilst being chased by Barbeau. #MakeItHappen
Vulnavia + the Machine.
Hammy Murders for Hammy Actor!
I love how Phibes' contraptions appear out of thin air
Awww yeah, the tuba's back.
Wait, so he only killed one of them?
Even when Robert Quarry's not playing a vampire, he wears enough pancake to pass for one.
Vincent Price is faster than The Flash.
This clockwork band sure does get around!
Seriously, who hears bagpipes and goes toward them?
The Clockwork Band! Live at Edinburgh!
He has nothing to say sir!
AHHH! I'M BEING BLINDED BY COCO POWDER!
Uh-oh, boss fight.
"It's my key! You can't have it! Nah-nah-ne-poopy!"
@word_countess I'd run away from bagpipes even if it was on the radio.
Phibes seems not to know the pharoahs are actually dead.
I...will...pause...more...often...than...William...Shatner...and...emphasize...every...word!
I'm not sure who I'm supposed to be rooting for, but Team Phibes all the way.
This is the hammiest episode of "Legends of the Hidden Temple" I've ever seen.
@Kinetograph It must have been a pain in the butt to do a second take. Not that I expect they did very many...
Do we get to hear Biederbeck play cornet?
There's no place like home.
Now on K-Tel Records: Vincent Price sings the hits of Judy Garland!
Too bad Vinny never did a Golden Throats LP.
I wanna know who played the Tuba!
@word_countess Terry-Thomas of course.
If you liked that, kids, the first one IS better, but not on streaming. Recommended!
@GenXnerdyou should do Bride of the Monster soon
@word_countess I'd recommend the first one too.

#driveinmob #foodofthegods Twitter archive

What follows is a curated archive of Drive-In Mob's movie mafia live-tweeting the viewing of Food of the Gods on Netflix. Come join us next Thursday for Blaxploitation Horror 2, with Blacula and Dr. Black and Mr. Hyde. The curated archive removes all retweets, repeated statements or off-topic tweets, and the standard hashtags (#driveinmob #foodofthegods).

Start food of the gods!
Arkoff, Gordon, Wells! One of these things is not like the other.
FOOD OF THE GODS IS A GO!
Marjoe! W00!
SCREENPLAY BY BERT I. GORDON!
DIRECTED BY BERT I. GORDON!
Couldn't hear you, Boat Driver. VoiceOver was too loud.
Marjoe's narration must have inspired Charles B. Pierce. #AndTheLegendContinues
Son, Nature will KICK your ass!
Jumping ... fences ... in ... slow ... motion ...
CRAFT SERVICES BY BERT I. GORDON! :D “@MnstrIsleResort: DIRECTED BY BERT I. GORDON! ”
Is this filmed here? PNW?
RUN BAMBI RUN
Man, that dog bark really travels.
BTW I am 42% sure this is based on a true story.
@TonjiaAtomic I thought it was filmed in Canada, but I'm not positive.
Oh, no, Lonesome Dove flashbacks...
I had a German Short Hair pointer but he was murdered by a Chevy work van a year ago.
This is the worse opener to A Game of Thrones episode yet.
I don't even know what the fuck those things are. Birds? Bats?
Oh ... wasps. My bad.
GIANT HORNETS! ACK!
This is just like that scene in THE HUNGER GAMES.
The venom turned him into George Kennedy.
Giant Mosquitos provided by the special effects team behind THE ALIEN FACTOR.
This genuinely scared me as a kid, btw.
Anyone remember that game Cooties?
He turned into Stay Puft!
I thought those were flying monkeys.
@MnstrIsleResort And what, may I ask, did you think those creatures were when you were a kid?
Oh that's cool- Canada IS my backyard.
FUCKING LOL at the giant chicken.
Where the heck was the Terminix Man when we needed him   
@CM_MattD Obviously, I thought they were what they are---SCARY!
He's being attacked by a pavement album cover
GIANT CHICKEN! BEST PART OF THE FILM!
You might say he's cockblocking.
I have a dozen chickens and I never EVER turn my back on them!
Grandma always said poultry is hateful.
AHAHAHAHHAHAAHAHA!!!! Giant chicken is the best!!!
"You had no business messing with my cocks!"
I got 'em at Costco. Only have time to shop every couple months, mister.
Dude she totally knows. She knows...
"Where the hell did you get those goddamn chickens!"
"Look, lady, I've already seen your chickens." #WorstPornoEver
You Choked My Chicken!!   
@DriveInMob That is one of the most obscure references ever. It's not even a fucking album ... just an EP. :)
Maybe the giant chickens can help with the rat problem?
Giant chicken attack. "Where the hell didja get those chickens."
Marjoe was caught off guard by Ida Lupino's enormous cock.
Marjoe Gortner is taking giant chickens pretty much in stride!
haha! “@CM_MattD: @DriveInMob That is one of the most obscure references ever. It's not even a fucking album ... just an EP. :) ”
"Ferry vehicle traffic only" -- dun dun duuuuuunnnn.
I don't think these guys would make it in today's NFL
@word_countess I was thinking the same thing.
Sometimes your luck runs out and the high likelihood of being killed by giant bugs catches up with you.
“@FOURDK: Anyone remember that game Cooties? ” Yes!
A little more ran out than just luck to be killed by muted wasps.
The riveting DISEMBARKING THE FERRY scene. hG wells was a master!
getglue won't let me check in for this movie- but it is telling me that there is a PART 2!
@TonjiaAtomic There is indeed a part 2. Hoo boy, that movie!
Hey, it's the paranoid drug addict military guy from Fallen Skies!
So "food of the gods" isn't pizza-flavored Combos?
I'd be lathering myself in OFF and SKIN SO SOFT by the boatload
Ida Lupino and Ray Milland would be such a cute senior couple, defying the forces of nature in their isolated strongholds.
Grub of the Gods.
"Not my peaches, you damn dirty rats!" Somber music.
Sigh. . .poor Ida Lupino. All she wanted was some good preserves!
Get them off, Ida!
@CM_MattD Oh right, this is another one of those HG Wells novels Bert I. Gordon had narrated to him by a hopped up insectophobe.
Literal LOL. RT:“@CM_MattD: Grub of the Gods. ”
When gigantic maggots start feeding on my hand, I make sure to hold it stock still like that for the camera.
Was Bert I. Gordon a little guy? Just wondering.
@CM_MattD No they are the true food of the gods once they were invented!
wow- mutant caterpillars don't waste time.
@FOURDK He was smaller than me when I met him, but he's also pretty old now.
I like how Ida was like, "Oh no, you're not going anywhere, worm. I'm going to scream in your fucking ear."
Ida Lupino uses her mighty acting to sell those giant rubber maggots into being horrifying.
Wow what a lazy FX guy!!
This is the greatest movie ever.
Oh, rats. #charliebrown
So giant rats make a sound somewhere between an angry cat and a TARDIS...
My how Willard's friends have grown!
You can't see it but Willard is standing in the tree line!
I mean ... this is not NIGHT OF THE LEPUS ... but still...
I buy giant chickens waaaaaay more than Pro Marjoe.
Cue.Michael Jackson song... Ben   
isn't the REAL food of the gods that canned fruit salad, cool whip, mini marshmallows thing?
OMG!! I love the men in rat suits CUT TO close of real rats. It adds to the authenticity.
Give me more scenes like that rat attack scene and this movie has me ... sold.
@CM_MattD If Netflix gets Night of the Lepus, we must have an emergency Internet-wide tweetalong. It will be a public holiday.
isn't that sid ceasar?
Maybe a pregnant woman could find a better place to stand than in front of the winnebago while he guns the motor
The girl was pregnant! So?
Okay, that's just about enough character development for those two.
@aytiws What can I say? Love the giant bunnies.
Existential questions abound in this film, like "who put this goddamn gate here?"
Ralph Meeker rules.
Maybe we can get some grub...   
Jack, I think you better impregnate me now, or else we have no hope of being saved in case something happens.
@CM_MattD @driveinmob without an unintentional deletion: It made me happy.
@ADignorantium that was last night. #atomiccinema #willard
Oh, I'm sorry. I meant *deserving* to be saved. #personalbugaboo
#FailedSelfHelpBook “@ADignorantium: You Choked My Chicken!! ”
Show 'em your chickens, Ida!
Rats in the bong? Heavens!
The awful, giant Mr. Skinner.
Chicken caucuses? Could they have got a sober actor to deliver these lines.
Ralph Meeker should eat the food. That would be the most awesome turn of events ever
It's The Stuff.
They got "et" by the real big ones?
@DriveInMob Oh, jeez. That's Ralph Meeker? This movie is like a film noir icons' graveyard.
@MnstrIsleResort "Socrates!!!!"
“@CM_MattD: It's The Stuff. ” I love that movie.
These ferry scenes are as tedious as an actual ferry ride. #realtime
So this is like a cross between The Stuff and Village of the Giants with guys in rat costumes?
every time I find weird sludge on the ground I mix it with cat food and feed it to my cats
Eh, I've seen Ida in too many high society roles to accept the poor rural Southern affectation.
I actually prefer Larry Cohen to Bert I. Gordon (sorry Bert!).
RAID!!   
This would be more fun if they prepackaged the grown muck in colorful containers, like in The Stuff.
You say tedious, @DriveInMob, I say "patience, science!" #existential
my cats won't eat the weird sludge off the ground that I found unless I mix it with some cat food.
Yars Attacks
Look! really bad animation!
No, go back to the melancholy ferry. I certainly am not looking for giant animal attacks in a Bert I. Gordon movie.
Does Bert I. hold any records for most forced perspective movies or anything?
I want to see the raw footage of Ralph Meeker swatting at nothing without the bad fx and buzzing sounds
Try new OFF! Giant Critter Spray!   
@word_countess Actually, I think he does. Maybe not in an official capacity, though.
@MnstrIsleResort Oh, hell yeah. Bert didn't have a "Q" in him.
@aytiws @cm_mattd You aren't alone.
Meeker's gone meek!
Well, yeah. "@MnstrIsleResort: I actually prefer Larry Cohen to Bert I. Gordon (sorry Bert!). "
@FOURDK That kind of genius occurs once in a millenium!
If they remade this today, evil business guy = Sam Neill.
Ha, my husband is trying to join and synch up. He said- are they slapping birds now?
@dmreds I know, it's a pretty obvious and unfair comparison.
who will be wearing the next beige outfit?
W.A.S.P.S gone crazy!   
THEIR NOT MY WASPS!
Oh, God. Ralph probably really is drunk. I feel horrible now. "Kiss Me Deadly" is one of my favorite movies.
Dammit, THEY'RE NOT MY WASPS!
With giant RATTs! RT:“@ADignorantium: W.A.S.P.S gone crazy! ”
I don't mind women around when I'm facing danger. Oh, can I come along?
He seems pretty broken up about the death of his friend.
You want the baby to be named Douchebag?
She kicked because she wants you to get off the goddamn island.
Yeah, but I don't B.I. Gordon. "@MnstrIsleResort: @dmreds I know, it's a pretty obvious and unfair comparison. "
Those rats have enormous balls, says my wife.
You know, I really care about these characters. Now, please gorily kill them with giant critters.
@TonjiaAtomic I think they took it word for word, including "they got et by the big ones."
Ben, the two of us need look no more....   
hhehehehe. . .rats roar like lions!
“@CM_MattD: Those rats have enormous balls, says my wife. ” Bigger than yo-- wait, never mind.
Might the gods want some snacks before the main course?
Looks like the hive ate that growing muck, too!
Come out with your stingers UP!   
Whack that giant hornet nest with a stick! #teamgiantsnimal
Yes yes, stick your hand in the giant wasp's nest.
@Kinetograph They are too big to notice pesky humans!
When stranded in the woods, always feed the wildlife.
Are they killing the wasps or saving them from a second floor window?
Those wasps must've been hidin' explosives.   
"The Earth gave way..." #existential
Danger prone Daphne, stuck in a giant rat warren... #Tsk
Are they exploding the wasp nest in the day or the night time?
The only sin, Mrs. Skinner, is your goddamned stupidity!
Yes. RT @CulturalGutter Are they exploding the wasp nest in the day or the night time?
“@word_countess: Danger prone Daphne, stuck in a giant rat warren... #Tsk” Rut row.
At least they showed that rat footage in reverse instead of repeating it the same way again.
They just can't help but feed strange goo to all the animals- they can't help it!
Little Timmy fell down the well? again?
They used a rat's eye lens for those shots.
Is there anything paper mâché and plaster of Paris can't do?
He hit that rat with a red paintball!!!
@dmreds I have a fondness for him :)
That's right trumpet effect, fade away and stammer, fade away and stammer.
...and the white rat, is talking backwards.   
Don't hurt the rat! It's pregnant!
This is like mst3k without the robots - unless some of you are robots....
@Kinetograph You beat me to that tweet!
Oh my god! it's a rat on a piece of cardboard!!!!
The rats done et the RV!
Do you think one day the giant rats came after Gordon for his treatment of non-giant rats.
Jeeps are pretty dangerous even when not confronting giant killer stuff.
I think the white rat's name is Algernon.
DRINK IT, MEEKER!
Holy crap! There's a rat One-Eye!
He h ehe, cardboard camper. #cute
how is it worse than he thought?
Oh good. Close the gate. That'll keep out the giant wild life. :/   
And that, my friends, is why the gate is there. #existential
@aytiws @MnstrIsleResort Socrates!
Watching him slop the ooze is making me gag just a teeny bit.
You could be a dues ex machina.
If he drank some of the stuff, would he become an even bigger ass?
I actually think that RV effects scene is pretty decent. I prefer that to CG.
These rats didn't learn to swim as small rats... Oh never mind.
"Nobody could be a whore like you. You're numbah one."
and the winner of the best beige overcoat and/or sweater, jacket goes to...
@MnstrIsleResort "Forced Perspective: The Life and Times of Bert I. Gordon." [cue intro music]
Star wars was a year later #sfx
It's all my fault/ her pregnancy or her being out here?
Brought to you by Imperial, for when it's easier to drink your life away than to survive giant rats.
Bert, you can make animals as big as you want, but you can't make them look like they give a shit.
Rats get mad and scream like panthers.
@FOURDK Yeah, he can't make them look like they give a rat's ass.
Football training makes you extra good at rat counting.
Eiji Tsuburaya put Bert I. Gordon shame almost 20 years earlier than this.
I want a rat vs. velociraptor scene
They are too fat from eating all that food of the gods!
Rats the size of teletubbies! Teletubbies the size of elephants!
Have they tried using a giant piece of cheese?
Rats WERE harmed during the making of this movie
Yay, giant ray heads!
@DriveInMob Sadly, yes, many of them were.
Is it odd that I actually grill Rat for dinner tonight while watching this movie?
In the new remake, Tourettes Guy will be playing Ralph Meeker's part.
Smash the bottles so the liquid spills on the ground where more animals can drink it.
I bet all of this was caused by a briefcase ralph meeker had opened 20 years earlier
Some really nice matte work on the cabin there.
The FX in this isn't Birdemic lazy but they are rather sad!!
Oh sh-t really? That is a shame that any rat would be harmed to make a movie such as this. Rat gods frowning. @MnstrIsleResort @DriveInMob
Cringeworthy moments here.
I know why the rats are after the jerky people now, but I don't know why they were before.
@DriveInMob From the Great Whatsit to the Great WTF.
Is this where the Living Dead come in?   
Has anyone tried just talking to the rats? Working it out like adults?
are the rats burping?
Oh no! The Well's run dry!   
I have decided... I am on the Rat's side in this film.... Come on Ben, lead us to victory!
@TonjiaAtomic Yeah. :/
"Someone run to the hardware store and bring back a shitload of D-Con"
@MnstrIsleResort Checking out. See you on the other side.
@GenXnerd I'm with you! Go rats! kill 'em!
When are you ever with the humans in a giant monster movie? @genxnerd
The 70s? No, it's not crazy at all.
@aytiws Along with their army of atomic supermen?
# You may be right You may be crazy But it just might be a giant rat you're looking for #FeelingSillyNow
Yes, it's crazy. You weren't raised right, you freaky loon.
@morbusiff never......?
There are giant rats outside... and... and you want to Make Out???   
Please bone me before we are eaten by giant rats. kthx.
Sure I'm afraid, but more... I'm bothered.
"I know my husbands not comming back to me" good thing to say when there's a pregnant lady ready to give birth.
So, the ASPCA really doesn't give a shit about rats is what I'm getting out of this.
Getting eaten by rats is a calling.
I have a basement full of chickens that I am sure I shouldn't have allowed to watch this movie!!
If we survive you'll be grateful for these preserves!
The Mouse ...er Rat... That Roared!   
Maybe it's crazy but hanging out with an older lady & pregnant one being attacked by giant rats, makes me horny.
Director- "Hey would it be easier to make giant rats or a little house?" FX Guy- "Uh... I like to smoke pot!"
eeee- I don't like all the rat shootings!
The least classy moment of Ida lupino's life
140k breakdown of tonight... Frogs can and will most likely be toads and giant rats are also sometimes just mice.
"Quick! Someone make love to me!"
@DriveInMob Dont know what's less classy, this or Joan Crawford crawling through the muck calling, TROG! TROOOG!
yes! finally some color in those jackets, too bad its old lady blood.
So where does Food Of The Gods come down on the existence of God? I need to know!
Our hero is a loser for not sleeping with that girl.
I didn't know Marjoe was in the A-Team!
@GenXnerd And sometimes a cigar is just a cigar.
@TonjiaAtomic Mr. and Mrs. Skinner fed the muck to their animals because they thought it was food from God.
It's like Cecil B. Demille directed that dam-busting scene!
Congratulations! Your bay has a... has a... has a... TAIL!   
It's...... the Davis baby.
That must smell awful.
Amazingly, this movie makes Village Of The Giants the more faithful adaptation of this story.
its a boy! Rat! Its Ratboy!
God, it's starting to look like broth.
Hmm, so they are surrounded and trapped! I live it when a plan comes together.
You mean they thought it was ambrosia salad with lil' marshmallows n stuff? Yum!
Rat broth.
Feed your heaaadd!
I guess we should have got rat insurance.
This actually makes Troll 2 seem like a quality movi..... I can't even lie for humor and say it.
"R.U.O.S's Rodent's of Unusual Size? I don't think they exist." -Princess Bride
Troll 2 is more fun. it's weirder
Mmmmm Roasted Rat!   
Troll 2 is definitely more fun.
@aytiws Rat head puppets please.
You.re right, putting that oatmeal on top of that pile of giant dead rats does make them look more appetizing.
They spent all their money on the big stuffed rats in this scene.
@GenXnerd Oh my Goooooooooooooood!
Yeah, go ahead, pour that crap on the dead rats. They'll just turn into BIGGER ZOMBIE RATS!
Giant cows! And they sound like grizzlies! #MakeThisMovie
I hope we got all that nature. If not...
Giant COWS!
Mad milking COW!!!!!!!
and the earth pissed mud juice one more time.
Cut to Native American with a tear in his eye.   
They are really milking this concept for all it's worth.
Giant CHILDREN !
yeah, the super intelligent messiah always gets the shaft!
Ben N Jerry's family farms pledge not to use milk from cows treated with Food of the Gods.
THE END? (Us, 35 years later: "YUP!")
If I've learned anything from Willard and Food Of The Gods, regular or giant, rats will turn on you... well, if you abuse them.
Also, the jar labeled FOTG is even better than the jar labed POISON in Frogs!
So THAT explains America's obesity problem. :\   
So that's why so many kids nowadays are lactose intolerant.
@FOURDK Actually, no. There was a Food of the Gods 2.
Please let there be a goofy cartoon rat at the end of these credits.
@FOURDK If only.
Salvatore you should have been more in charge of Post-Production.
Next week has a Blaxploitation Horror Double Feature!
@TonjiaAtomic I thought Barbara Peeters all but disowned that movie?
The Rats - The Rat's Revenge [1963] http://t.co/5fv99RcV
Well, time to turn into a pumpkin. Maybe a giant one tonight. Thanks, everybody! Night!
@TonjiaAtomic That's nice to hear. So many rumors abound. I do love that movie, though!
@CulturalGutter The rats prefer soy. It's all part of their plan!
This was fun. Thanks! Goodnight!
http://t.co/H76kKSSR CALENDAR of upcoming movies
After tonight's feature, I need to go wash off. ...and maybe check for giant rodents. {:-] - Good night all.

Disobey on Drupal 7 and... Bartik?!

During DrupalCon Denver 2012, I decided to randomly upgrade Disobey.com from Drupal 6 to Drupal 7... live and without any testing or preparation. Part of my reticence for upgrading in the past was my custom theme: I simply had no interest in upgrading it to the new stuff in 7. My work of late keeps me far away from theming, and I've come to prefer "default interfaces" for things (thus why I've never tweaked my wiki's look and feel). And, generally speaking, I wasn't a fan of any of the popular Drupal contributed themes - they either required just as much work to get somewhere (Zen, ninesixty, etc.) or had crazy dependency trees that made me ROFL (Omega).

But, by this point, I didn't really care! I was frustrated with my stop motion, so I decided to use Corolla from Adaptive Themes. After fiddling with that for a few days, I hated how it looked on the iPad (and its responsive design was its primary selling point to me), and grew frustrated by some bug which caused background coloring or images on the site header to stop stretching across the full viewing width.

Screw it, I said again! I switched to core's Bartik. It's a default theme and will likely last another core version or two, right? Still, I couldn't leave well enough alone and I've just finished my 275 line CSS reskin. Disobey.com now looks nearly exactly like it did under Drupal 6, only with Bartik under Drupal 7. I no longer have to maintain a full theme, and I can just worry about CSS from now on. Works for me.

Tags:

Liz Castro's "iBooks Author"

I had originally posted this as a comment over on her blog, but it keeps disappearing mysteriously:

Evening. I don't normally read your blog.

1) "If Apple doesn't approve your book, you can't sell it anywhere else." I don't think that's entirely true, really. If Apple won't sell your book, you still have ownership of all your content, and you still have a choice: you can recreate it in any of the other non-existant EPUB3 creators, you can export to PDF (or Text) to shop it around to a design or preproduction company who can reformat it for a cost, or shop it around to another publisher who would then, also, reformat it per their needs (at cost). Apple's disapproval of your content doesn't dash your hopes of being published - it just dashes your hope of using Apple's technology to distribute your book.

2) "If you create an ebook in iBooks Author, can you then copy out the content and create a Kindle book in some other tool?" I would say "Yes". Apple is not copyrighting your content, it's taking control over the presentation of your content, as created by iBooks Author. I don't think that's any better, mind.

4) "iBA ebooks will work only on iBooks on iPad" I don't really see this as an important distinction: heavily-laid out PDFs are difficult to read on the iPhone's small screen too, enough so that it's usually not even worth the bother. Apple didn't bother either.

5) "It certainly can't export to any other format." iBA can export to PDF and TXT, and as another commenter mentioned, the source/bundle contains an XML file that can be parsed and converted to other formats as well, given enough effort by an enterprising hacker.

6) "Apple's iBookstore currently serves only 32 countries." As someone who only speaks English, "I don't much care". I know, I know, what a horrifically biased and locality-centric discriminism. But, it's nothing new. DVDs, Blu-ray, video games, hell, even goddamn power plugs, are locality-centric too, and you have to pay an arm-and-a-leg to get around it. Most people don't. I suspect that most of the normal end-users of iBA won't really see a loss in not serving to English-speaking users in Russia, or recoup their cost of translation to serve native-speakers in South Africa.

7) "Apple iBookstore is not that great." Heh, no complaint here. Note, however, that the only ebook store I've used that was actually useful has been Amazon's, which only works because, erm, well, it's not an ebook store. Google's eBooks isn't much better than iBooks either. Your lament here can apply to pretty much any current eBook store.

10) "This is about books (for teaching our children!) which in my opinion should not be controlled by any company or government." "for teaching our children!" is a disingenuous and heart-stringing tactic - there's nothing in iBA that forces you to write textbooks for children. Or high-schoolers. Or college people. Why aren't you as angry at Inkling for being iPad only? For being a closed-source format? For offering textbooks on, gasp, how to mix drinks?! FOR OUR KIDS! I suspect a good portion of the individually-created iBA books (vs. corporate books, like DK, Pearson, etc.) will be non-textbook-y and crappy (and those that ARE written by individuals and ARE "textbooks for children" will likely unleash a backlash of "how dare Apple let just anyone create books to teach our children!? OUR CHILDREN!").

I think the "right" approach, for me at least, is to change the Eponymous You's goal statement from "I want to write a book" to "I want to write a book FOR THE iBookstore". The added clarifying statement, RIGHT NOW, opens up an entirely different world... one that includes a WYSIWIG book creator and added interactivity that is difficult to implement or non-existent in other readers. With that goal statement in place (as opposed to the far-easier "I want to write a book"), the "only" downside is that Apple can deny your book. Otherwise, the other laments nearly disappear or become acceptable.

Achievements 7.x-1.4: Using render arrays

The Drupal Achievements module offers the ability to create achievements and badges similar to systems seen on Xbox 360, Playstation 3, Foursquare, Gowalla, GetGlue, and more. For a Drupal site, this could mean commenting a certain number of times, starting a forum topic, visiting the site every day of the week, or anything else that can be tracked and coded. The recently released 7.x-1.4 update focuses on changes that make theming easier.

In my first post about #theme_wrappers, we fixed up bad HTML in #prefix and #suffix to give themers an easier time. This post, about render arrays, is no different. In fact, most of the tweaks in Achievements 7.x-1.4 are not very obvious, or even useful, to module developers. It's only when you sit down with a themer who wants to change the entire look and feel that you realize your carefully-coded "looks good in Garland!" output is not as useful as you think.

Why render arrays are better

You've probably read about render arrays in the Drupal Developer's Handbook already, but the documentation doesn't really give a developer a decent reason why they should use them. It also doesn't talk about $content or splitting your variables into "data" and "presentation". I'll cover both below.

First, let's look at the wrong approach:

    $build['image'] = theme('image', array('path' => array('misc/druplicon.png')));

If this was passed to a theme file, the themer would simply print $image; and be done with it. The themer could even link the image if they wanted, but they wouldn't be able to add any classes or attributes to the image, since calling theme() directly always returns rendered HTML. Here's what the above looks like as a render array:

    $build['image'] = array(
      '#theme' => 'image',
      '#path' => 'misc/druplicon.png',
    );

To get this to display in the theme, we'd use print render($image); instead. In this case, the theme is telling Drupal to render the HTML, not your module. Why is this important? Ignoring the nebulous "I CAN'T ADD CSS CLASSES, SNIFF!" themer lament, consider the following small tweak to our original bad example:

    $image = theme('image', array('path' => array('misc/druplicon.png')));
    $build['image'] = l($image, 'node', array('html' => TRUE));

Here, we've simply added a link to our dummy image and the themer gets the fully rendered HTML to print out. Everything is toasty... unless the client or theme doesn't want or need the image to be linked. The themer now has no choice: they either have to use a regular expression to strip out the unwanted link or they have to recreate the $image variable in his own, well, image. Not only is that fragile (it's essentially copying module code to the theme and that code might change in a future version), but it also mixes too much logic with too little presentation. If the image's path isn't available to the theme as its own variable (it isn't, in the above example), the themer will still have to parse your rendered HTML to find the image's path first. Yuck.

Let's convert the above to a render array:

    $build['image'] = array(
      '#theme' => 'image_formatter',
      '#item' => array(
        'uri' => 'misc/druplicon.png',
      ),
      '#path' => array(
        'path' => 'node',
        'options' => array('html' => TRUE),
      ),
    );

Now, if the themer wants to remove the link, they can listen in a theme override, a preprocess, or even the dreaded hook_page_alter() and simply unset($variables['image']['#path'])'. No more link, without duplicating any upstream code or recreating things themselves. This is a real-life example, by the way - I just finished an optional submodule of Achievements which removes all links to the default leaderboards. I couldn't have easily done that if I used either of the link approaches below:

    $build['achievement_title'] = l($title, 'path/to/achievement');
    $build['achievement_title']['#markup'] = l($title, 'path/to/achievement');

But with the following render array:

    $build['achievement_title'] = array(
      '#type' => 'link',
      '#title' => $title,
      '#href' => 'path/to/achievemnt',
    );

I can make those links linkless:

  unset($variables['achievement_title']['#type']);
  $variables['achievement_title']['#markup'] = $variables['achievement_title']['#title'];

Data, presentation, and $content['a'] not $a

This doesn't mean that every single variable you pass to the theme should be a render array: there's clearly a difference between variables that represent data (an image path, the $node or $user object, a Unix timestamp, etc.) and variables that are meant for presentation (the linked image, the node's filtered teaser, a human-readable date, etc.).

There's a move afoot to more clearly indicate these two types by using a $content variable as a container for all the supplied render arrays. Drupal core does this in some places (node.tpl.php, for one), but not all, and it's slowly becoming a preferred practice in the theming world. Another benefit is the ability to use print render($content);, which says "render everything I haven't already rendered", allowing themes to display things that they, or the parent module, might not know about (new data added by a third party module in a preprocess, etc.). I've yet to implement this in Achievements, but I'll likely get there for the next release.

Achievements 7.x-1.4: Using #theme_wrappers

The Drupal Achievements module offers the ability to create achievements and badges similar to systems seen on Xbox 360, Playstation 3, Foursquare, Gowalla, GetGlue, and more. For a Drupal site, this could mean commenting a certain number of times, starting a forum topic, visiting the site every day of the week, or anything else that can be tracked and coded. The recently released 7.x-1.4 update focuses on changes that make theming easier.

One of those changes was implementing #theme_wrappers. Like many other modules, Achievements has various HTML displays that are essentially containers of things: a group of unlocked achievements, a group of categorized achievements, etc. For stronger theming, one usually wraps those in an extra <div> so that CSS folks can control the container's display. In the past, I've usually accomplished this with:

    $build['achievements'] = array(
      '#prefix' => '<div class="achievement-groups">',
      '#suffix' => '</div>',
    );

Simliar code to the above exists in Drupal core (book.module, field.module, etc.) so I never gave it a second thought. However, for a themer, the above is problematic because there's no way to tweak that HTML without dipping into a hook_page_alter() and rewriting or munging the #prefix entirely. Since I've been away from Drupal theming for so long, I never knew there was a stronger alternative by using #theme_wrappers. Not surprisingly, Drupal core uses this pattern alongside the "bad" #prefix version, so a good contender for a "Novice" patch would likely be "Replace all uses of #prefix divs with #theme_wrappers".

Like other theme functions and files, #theme_wrappers requires a hook_theme() definition:

    function achievements_theme() {
      return array(
        'achievement_groups_wrapper' => array(
          'render element'  => 'element',
        ),
      );
    }

In this case, we'll use a regular ol' theme function for the callback:

    /**
     * Default theme for the wrapper around a user's achievements page.
     *  
     * @param $variables
     *   An associative array containing:
     *   - element: A render containing the user's achievements page.
     */
    function theme_achievement_groups_wrapper($variables) {
      return '<div id="achievement-groups">' . $variables['element']['#children'] . '</div>';
    }

And finally, we can tweak the above $build render array to use it:

    $build['achievements'] = array(
      '#theme_wrappers' => array('achievement_groups_wrapper'),
    );

In this case, the resultant HTML will be exactly the same, but now a themer can more easily override it just by defining THEMENAME_achievement_groups_wrapper(). This is a far cheaper method (mentally and performant-wise) than having to futz with hook_page_alter().

Achievements 7.x-1.3 released

The Achievements module offers the ability to create achievements and badges similar to systems seen on Xbox 360, Playstation 3, Foursquare, Gowalla, GetGlue, and more. For a Drupal site, this could mean commenting a certain number of times, starting a forum topic, visiting the site every day of the week, or anything else that can be tracked and coded.

Here's what's new in version 7.x-1.3, released today.

Relative leaderboards and latest achievements

The biggest changes in 7.x-1.3 happened to the leaderboards. You can now provide an (optional) "relative leaderboard" which will show a logged-in user their current rank as well as (optionally) a number of ranks before and after their position. For folks who like achievements or mapping their rise to greatness, this will give them a little something more to strive for, a continual heartbeat of their movement through the site-wide rankings. It can also encourage rivalries as users flip-flop back and forth in their point gains and positions. Some users won't give a crap at all, certainly, but for those that do, relative leaderboards can increase a site's stickiness.

Another addition to the leaderboard is "latest achievement" which is exactly as it sounds: it'll show the latest unlock a user has earned. This is important because it increases discoverability of your site's achievements. In previous versions of the module, the only mention of individual achievements was located on a tab in the user's profile -- not exactly the easiest place to find. By including recent achievements on the leaderboard, we're increasing awareness of what you're offering, as well as providing subtle and potential todos for your users and curious visitors.

Hooks for developers

Besides the required hook_achievements_info(), I didn't add any other achievement hooks in the earlier releases because I didn't trust I had a firm grasp of how Achievements module would "end up" based upon my initial roadmap. With said roadmap nearly complete, the latest release of Achievements now includes some additional hooks for more integration. As is best practice, I'm starting off "small and obvious", but will add more as needs arise. hook_achievements_info_alter(), hook_achievements_unlocked(), and hook_achievements_locked() all do what they sound like and are further documented in achievements.api.php.

Small footprint

At its heart, Achievements is a monitoring and statistical module: it listens for events, logs statistics, and does analysis on incoming data. When you have hundreds of achievements, all this intervention could slow your site down. Thankfully, the module has been designed under the oppressive gaze of better performance experts than I and has Examiner.com, one of the largest Drupal 7 sites, as an in-progress client. The new release of Achievements has yet another performance improvement that ensures heavy traffic sustainability, and the new features above cost just one additional database query (per page, but only if you're using the block with relative leaderboards enabled). Future releases of Achievements will continue this dedication to a svelte codebase.

Take a look, bub

You can read about the full feature-set at the Achievements module project page which also includes screenshots of the default interface. Don't hesitate to contact me or create an issue with your pie-in-the-sky feature requests and questions.

Pages

Subscribe to disobey.com RSS