DotA v6.48 Released!

August 28, 2007 | 3 Comments

DotA version 6.48 has been released! There is 1 new hero :D You can download the map here or here. Check out the changelog:

6.48 Changelog
===============

* Added a new hero from the Model-To-Hero contest (see below)
* Added a new ability for Animal Courier to change its model.
* Fixed Planeswalker’s Cloak and Hood of Defiance stacking issues on various heroes’ innate magic resistance abilities.
* Fixed an old rare bug with Leshrac (and recently Storm) that would cause them to constantly drain mana.
* Fixed a bug when killing heroes with Crow
* Fixed Flesh Heap to work properly with suicides
* Fixed a bug in -dm -nd that causes the hero after Bristleback to have Warpath if Bristleback dies with the buff on, and the player quickly picks a new hero.
* Fixed the game mode text to display in proper order
* Fixed Starfall doing extra damage on the second hit
* Restored Freeze Hero functionality
* Added a command -test to enable single player commands to be usable in multiplayer for easier extensive testing
* Added new command ‘-terrain snow’. This transforms the current terrain into a snow terrain. This is a very experimental mechanism and is still very much a WIP in the visuals department.
* Fixed Death Pulse to hit properly non-magic-immune Ancients
* Improved Alchemist’s movement speed a bit
* Increased ranged creep’s mana pool
* Rebalanced Sanity’s Eclipse (Less damage, better leveling)
* Improved Harbinger’s casting animation time
* Fixed a visual glitch with Dispersion that would make it look like it did more Dispersions than it actually did
* Fixed a bug with Unstable Concoction when used during the transformation of Chemical Rage
* Fixed a bug with Greaterbash
* Improved Lion’s movement speed a little
* Fixed Panda’s Storm Wind Walk stats
* Game now gives an error message when attacking Roshan from a disallowed area
* Added -nr(-norepick)
* Added -mute as a custom player command to disable kill sounds
* Fixed a bug with Weave and Reincarnation

My First Keynote Presentation

August 23, 2007 | 1 Comment

After long consideration, I’ve dived into Apple’s iWork Keynote full bore and have compiled this amazing presentation for Keynote to YouTube testing. Enjoy.

The presentation was awe-inspiring, I know. But what I was really doing was testing Keynote’s ease of recording a presentation and sending that data to YouTube. My summary: it’s so freaking easy your dog’s owner could do it? All you do is build your presentation, go to the beginning and click Record Slide Show. Simply talk into the mic, then click stop recording when you are done! All you need to do from there is use Keynote’s SendTo menu to send to YouTube. Authorize Keynote when it asks and BAM…done.

The Zach that I was referring to is my pal from NoSheep and the other voice is Dan from Tall Birch.

Monchichis Theme Song

August 23, 2007 | 7 Comments

As I’ve mentioned before, I’m a huge fan of digging up retro songs and shows from when I was a kid. One cartoon intro that has eluded me for years can now be found on YouTube. The cartoon? Monchichis, a show that lasted only a season but one I would watch whenever I could. Due to its obscurity and short-lived life, my mentions about the cartoon amongst friends have often met me with a blank stare. Well…here’s the show’s intro for your viewing enjoyment:

Here’s the lyrics:

Way up in the trees live the Monchichis.
Monchichi Monchichi
They love to laugh and play and have a happy happy day.
Chi chi chi chi Monchichi Monchichi
Monchichi mean happiness!
Oh oh!
But the Grumplins very mean to the Monchichis.
Everyday they tease, try to catch and squeeze.
So back up in the trees go the Monchichis.
Chi chi chi chi Monchichi means happiness!

What is pretty cool to note is that Peter Cullen - the voice of Optimus Prime in Transformers (the show and movie) and numerous other Saturday morning cartoon characters - was the voice of 3 of the Grumplins; Shreeker, Snitchitt, Gonker.

jQuery Plugin: Live Query

August 22, 2007 | Leave a Comment

My hear is exploding with happiness and joy at the existence of Brandon Aaron. He has built a sweet jQuery plugin (Live Query) that reduces complexity in Ajax and general DOM manipulation coding by a great deal (when it comes to applying behaviors). First, let me tell you the problem (if you don't already know):

Say I build a web application where I want to assign an onClick event to an <a> tag. In jQuery I'd do it like this:

First the HTML:

HTML:
  1. <a href="another.html" class="another">Grab Another!</a>
  2.  
  3.   <li><a href="whee.html" class="whatever">Bork</a></li>
  4.   <li><a href="whee.html" class="whatever">Bork</a></li>
  5.   <li><a href="whee.html" class="whatever">Bork</a></li>
  6. </ul>

Now lets do up the JavaScript:

JavaScript:
  1. $(document).ready(function(){
  2.   $('a.whatever').bind('click',function(){
  3.     alert('ZOMG Hai');
  4.     return false;
  5.   });
  6. });

Simple, right? Yeah. It is. Nothing new. Now...say that I manipulate the DOM and add in another <a> tag with the class "whatever" that I want the same even applied (with or without Ajax, doesn't matter). Here's what I would have had to do in the past:

JavaScript:
  1. $(document).ready(function(){
  2.   $('a.another').bind('click',function(){
  3.     $('ul').append('<a href="whee.html" class="whatever">Bork</a>');
  4.  
  5.     $('a.whatever').bind('click',function(){
  6.       alert('ZOMG Hai');
  7.       return false;
  8.     });
  9.  
  10.     return false;
  11.   });
  12. });

See that? Kinda complex. Things become quite complex when you begin doing Cross Domain Scripting via Remote JavaScript calls (which is what is heavily used in one of the apps I have done front-end development for).

The Live Query plugin is a beautiful thing as it "auto-magically" binds events to dynamically added elements within the page as they appear! So ALL of that JavaScript from both examples becomes:

JavaScript:
  1. $(document).ready(function(){
  2.   $('a.whatever').livequery('click',function(){
  3.     alert('ZOMG Hai');
  4.     return false;
  5.   });
  6.  
  7.   $('a.another').bind('click',function(){
  8.     $('ul').append('<a href="whee.html" class="whatever">Bork</a>');
  9.     return false;
  10.   });
  11. });

Yup. That's it. Bind a livequery event to an element and as elements that match appear on the page...BAM! The event is applied.

There are some more advanced things you can do with the plugin and you can find those out at the Live Query site.

Code Monkey: Software Developer Theme Song a-la World of Warcraft

August 21, 2007 | Leave a Comment

I just found this video over at the Geekend blog at Tech Republic.

The song is by Jonathan Coulton, a rocker that seems to understand the life of a love-struck code monkey. I headed over to his site and found that I like a lot of his stuff. He's got a great sound and his songs appeal to my taste :) To top it off, he quit his life of being a programmer in 2005 to pursue music and has done a bang-up job in my opinion. A lot of funny and geeky tunes. Of note are:

  • Code Monkey
  • Re: Your Brains
  • Skullcrusher Mountain
  • Baby Got Back (His own twist on the song...awesome)
  • Mandelbrot Set
  • A Laptop Like You

Etc, etc, etc. I like a lot more of his stuff (which he calls 'well crafted geeky folk-pop). The best thing of all, he offers the songs for purchase from his store DRM-free! I will definitely be buying a number of them to add to my collection. Definitely worth a listen.

UPDATE:
Ok. So I like this dude's stuff. I've forked over the cash and bought all his songs. w00t. Geekly songs abound (and some non-geeky ones). I have also found another very well done video rendition of "Code Monkey" done anime style with footage from "Black Heaven". I figured I'd share it here too. Here it is:

D&D 4th Edition Updates and Toolsets

August 17, 2007 | 5 Comments

As I mentioned before, the Dungeons and Dragons site was down (and is once more), but with Randy's help, he and I poked around a little bit and found some goodies.

Firstly, we read an article on class development which focused on the Fighter Class. It appears that the whole talent trees that I discussed in my previous post work in a pretty sexy way for fighters! At first level, a fighter chooses a weapon type which basically 'locks' him/her into a certain weapon tree where he can gain specific talents with the given weapon. Kinda cool.

Secondly, DnDInsider, the subscription based community site that Wizards is launching is available for public beta testing so people can get a feel for what will be coming in the next year. As soon as the site is back up, I'll be making an account and poking around there. Making an account is a good idea if you have any desire to be a 4th Edition play tester as they will be picking members sometime in the next 11 months from that community to do just that...play test!

Thirdly, here's the 4th Edition presentation that was given at GenCon this year. Within the presentation, they demo a sweet new dungeon mapping toolset. Check it out:

ZOMG Dungeons and Dragons 4th Edition

August 17, 2007 | 2 Comments

3elogo

I caught wind of this announcement that affects d20 role-players everywhere, the new version of Dungeons and Dragons is slotted for release in 2008! I look at my D&D v3.5 book collection and wince a little, yet I find myself a little excited for Wizards of the Coast's next iteration of the eons old pen & paper table top game that has kept males occupied and single for decades.

My attempts to read the announcement from the horses mouth have failed due to the Wizards Announcement section of their site has thoroughly been slashdotted. As such, I have a few tidbits that I've grabbed from various Slashdot comments and other blogs that I'll cobble together here:

Rustmonster writes:

While there are changes in play (such as incorporating “epic-level play,” with 30 levels instead of 20), they are described as “evolutionary” rather than “revolutionary.” Other changes include new power sources, changes in resource management, and new encounter design, and more clearly defined monster roles. Changes will speed play, make the game easier to learn, and make DM-ing easier. Concepts for 4th Edition gameplay were tested in the new Star Wars RPG, and the Book of 9 Swords.

ShakuUVM a commenter on Slashdot writes:

[Star Wars] Saga Edition is 90% the same as [the new] D20 rules.

Saves [have been] almost totally revamped so that everyone's saves will be within 2 points of each other (your class save bonus only applies once, and you get the best of all classes that you multiclass in, and then progresses the same for everyone). Likewise, everyone gets a bonus to damage equal to half their class level. The only difference in the classes are their 'special ability' talent trees, which work like in World of Warcraft. Essentially, every other level you get a new 'talent', many of which have prerequisites of other talents. So if you want the ability to reroll an attack roll once per day (a rogue ability) you might need the talent to reroll a skill check once per day. Sneak Attack is a talent, so if you want full Sneak Attack, you have to give up all these special abilities.

ShakuUVM seems to view the above in a negative light...I'm on the fence with the Saving Throw changes but the talent trees seems like an awesome change! Reading further in his comment, I see that feats ares still around in addition to the talents. If done right, this could feasibly reduce the complexity that has surrounded playing an odd-ball character that you want to hybridize in ways that only the Unearthed Arcana book could expose to you before.

It will be interesting to read more over the course of the next year. Sadly, I won't be able to get my grubby paws on 4th Edition until May of 2008 when the Player's Handbook is scheduled for release. The Monster Manual is due out in June and the Dungeon Master's Guide will be released in July. So...die hard fans looking to play this as soon as possible won't be able to play a solid game until those three books have been released.

Oh, another odd thing that is happening with this new Edition is a subscriber-based delivery of game content via a new Wizards of the Coast site: DnDInsider, which is basically a conglomeration of the Dungeons and Dragons magazines. Delivered through there will be tools, rules, and content available only to subscribers.

Interesting stuff.

Kruger National Park: Buffalo vs Lions vs Crocodiles

August 10, 2007 | 7 Comments

Jason Schlosberg and David Budzinski, from National Geographic, found themselves in an amazing filming opportunity in South Africa's Kruger National Park. While filming at a watering hole, a group of lionesses attacked a young water buffalo, throwing him into the water. As the lionesses began to drag the buffalo out, a crocodile found interest in the situation and snapped at the lions and young calf.

The lions struggled to keep their meal by pulling the poor calf onto dry ground only to be met by a rescue squad...the entire herd of water buffalo! Angered by the attack on their calf, the water buffalo sprang into action, executing ninja like moves on the unsuspecting lionesses; chasing, kicking, and flinging. Check it out:

The capture of such footage was quite amazing. This exhibited a protectiveness that I had grown to think was not present due to the numerous other herd-footage documentaries. From what I had seen in the past, when lions attacked and grabbed a young one, the herd would typically give up the young for dead. Not this time! Go Water Buffalo! w00t w00t!

Thanks to Dee for telling me about this video!

Pokemon Diamond/Pearl Damage Sheet

August 9, 2007 | Leave a Comment

I have recently acquired a slick new Nintendo DS and will soon be playing the fairly new Pokemon Diamond game. This will be my first Pokemon video game and I'm actually quite excited...the game received an 8.5 from IGN along with a fairly ballsy review.

In preparation for the arrival of my game, I've done a little research into the Pokemon world (which I've always been a fan) to see how Pokemon creature types affect other Pokemon creature types. I found a nice table on Wikipedia and created my own sexy graphic that I can refer to whenever I want. Here it is:

Pokemon Diamond/Pearl Damage Chart

Internet Explorer - Web Developer Toolbar

August 8, 2007 | 5 Comments

In a world of FireFox and its beautiful extensions of web-development power, Internet Explorer has been a horrid browser to develop/debug your code.

Microsoft has a fancy FireBug clone for the bane of every web developer...Internet Explorer! They call it the Web Developer Toolbar (although it isn't much of a toolbar and more of a tool set) and it is a blessing for finding problems in IE. Its features include:

The Internet Explorer Developer Toolbar provides several features for exploring and understanding Web pages. These features enable you to:

  • Explore and modify the document object model (DOM) of a Web page.
  • Locate and select specific elements on a Web page through a variety of techniques.
  • Selectively disable Internet Explorer settings.
  • View HTML object class names, ID's, and details such as link paths, tab index values, and access keys.
  • Outline tables, table cells, images, or selected tags.
  • Validate HTML, CSS, WAI, and RSS web feed links.
  • Display image dimensions, file sizes, path information, and alternate (ALT) text.
  • Immediately resize the browser window to a new resolution.
  • Selectively clear the browser cache and saved cookies. Choose from all objects or those associated with a given domain.
  • Display a fully featured design ruler to help accurately align and measure objects on your pages.
  • Find the style rules used to set specific style values on an element.
  • View the formatted and syntax colored source of HTML and CSS.

The Developer Toolbar can be pinned to the Internet Explorer browser window or floated separately.

This toolbar isn't a match for the features, look, or usability of FireBug...but it is a great start and a pretty decent tool provided by the guys at Microsoft. As many developers can attest, developing sites that work according to standards AND Internet Explorer is a pain...this tool eases that pain.

Get it here.

Oh, and once you install the toolbar, it is hard to see where to open the thing. After installing, a little blue arror will appear in the icon bar at the top of the browser. Click that and the tool will open at the bottom of the screen.

Book Review: Learning jQuery

August 6, 2007 | 2 Comments

I'm a huge fan and avid user of jQuery and have been extremely impressed by the documentation provided on the jQuery website. The one thing that documentation lacks, however, is really contextual examples that drive home some bare essentials of JavaScripting with the jQuery library. Learning jQuery - a book by Jonathan Chaffer and Karl Swedberg - is an excellent introductory book for those that are thinking about using (or struggling with) jQuery.

jQuery, while a fairly high level JavaScript library is a beautiful thing but can be very daunting to a developer that is new to JavaScripting or is coming from a dissimilar library, being thrust full bore into a 'new' way of doing old tricks. (Which jQuery is great at by the way...it makes the new ways super sexy, sleek, and easy). The authors do a great job of explaining what jQuery is and why it is such a powerful tool.

Throughout the book are examples on traversing and manipulating the DOM, event handling, leveraging jQuery's JS effect capabilities, AJAX, etc; many of which are built off of previously detailed examples, allowing the reader to easily grasp what is going on and why a chunk of code was used.

While I feel this book is primarily an excellent introductory source for diving into the world of JavaScript development with jQuery, the fairly seasoned jQuery user (like myself) may find a trick or two that they hadn't quite thought of... As I read through, I found a few choice bits that allowed me to make my own code more efficient!

My only real complaint with the book is the index at the back. There are a number of jQuery functions that are discussed within the chapters yet weren't referenced in the index. A small nitpick, I know, but I'm a sucker for a good index :)

So. Overall, I think the book is a good thing to keep on the bookshelf, whether a you are a jQuery n00b or not. There's always a co-worker/friend/programming buddy that will want to learn jQuery and what better way to get them rolling on there own than a link to the jQuery docs and a sweet book?

You can get the book here.

DotA v6.46 Released!

August 3, 2007 | 4 Comments

A New version of DotA has been released...this release filled primarily bug fixes. You can download it here and here.

6.46b Changelog
================
* Fixed Furion's Treant stats
* Fixed the neutral creep spawn time in -rd
* Fixed how Psi Blades damage spill area is calculated (149031)
* Undid some of the previous Primal Split duration buff
* Fixed a bug in -sc
* Improved Leoric cast animation time
* Fixed a bug with morphling in -sh
* Improved some issues with Omnislash
* Lowered Null Talisman recipe cost from 175 to 150
* Temporarily disabled the leaver freeze functionality until next version (too many issues, not enough time while its being abused)
* Fixed a bug with Nature's Attendants
* Fixed a bug with Grapple and Aegis
* Improved text presentation a little with swaphero
* Fixed a bug with Earthshaker and picking up DD rune

6.46 Changelog
===============
* Reduced overall bandwidth used in games
* Fixed a big exploit
* Improved Waaagh!TV compatibility
* Fixed a potential issue in -dmar and respawning
* Fixed a bug with the recent recoding of Death Pulse that causes it to hit invisible units
* Lots of internal coding improvements to get it to a stable state
* Reduced Greater Hawk's movement speed
* Added a timer in -rd/-xl/-lm to show you how much time you have left to pick your hero
* Fixed various fatal error potential issues
* Fixed Land Mines doing a little less damage than advertised
* Fixed a bug with Battle Hunger that caused it to sometimes fail to detect the hero killing with a couple abilities
* You can now disassemble Helm of the Dominator (157261)
* Rewrote how swaphero works, all old glitches with swaphero are now fixed (You can use -swap instead of -swaphero as well). You can now also select more than one hero to swap with.
* Fixed a bug that changed Bloodseeker's model scale up
* Fixed Suicide Squad, Attack! from killing wards
* Improved Medusa's Intelligence Growth
* Lots of misc glitches fixed
* Added new icons for Reincarnation, Berserker's Blood, Life Break, Remote Mines and Conjure Image (142075, snork, eva00r)
* Fixed a workaround that still allowed flying courier to steal base items
* Fixed some buff stacking issues with Malefice
* Changed Rabid icon
* Improved some lag problems that happened with nature's attendants
* Fixed a bug with Enchant that sometimes caused it to slow the converted unit
* Fixed Wall of Replica from working on Meepo's clones
* Added overhead text to show how much damage Test of Faith does
* Lowered Replicate mana cost
* Adjusted Tree Respawn code to not respawn if a hero is standing near it, as to not accidentally trap it.
* Fixed a bug with BKB that caused heroes with full ability card (like nevermore) to lose access to one ability during Avatar if done in a certain order.
* Fixed some lag problems with various abilities
* Added an ability to the Circle of Power to allow you to freeze an allied hero that has left the game (to prevent him from being killed due to things like Thundergod's Wrath)
* Fixed a bug with Spirit Bear in -dm with -nd on that caused the bear to not restore the bear's items (this is only a bug with -nd)
* Lightning Grapple no longer pulls creeps (temporary solution for some creep abuse, better ai will be attached in the future so they can resume their path properly)
* Fixed an exploit that is possible with Surge
* Fixed Arcane Orb from dealing bonus damage to Warlock's Infernal
* Fixed a bug with stun chance on level 1-3 Chaos Bolt
* Fixed Vacuum from working on BKB'd units

Apple iRack

August 3, 2007 | 1 Comment

MadTV has done a great parody on our presence over seas. Hilarious Macintosh spin-off. Thanks to Bude for passing this along.

Plugin: Sexy Comments v1.4 Released!

August 3, 2007 | 201 Comments

Introduction

This has been a long time coming and I am happy to announce the release of Sexy Comments v1.4! With this version comes a lot of changes...so be sure to read the installation section! Along with simple optimizations and general restructure, the following features are now available:

Feature List

  • Ajax comment preview (new feature)
  • Author post highlighting
  • Avatars
    • Either display/hide avatars
    • Select your avatar service of choice (Gravatar and MyBlogLog options are available)
    • Specify maximum avatar dimension (Gravatar Only)
    • Customize default/trackback avatars
  • Comment Reply-To (new feature)
  • Comment Themes (new feature)
  • CSS overriding
  • "Number of Comments" message customization
  • jQuery inclusion toggling

Installation & Upgrading

  1. Download Sexy Comments v1.4 from the WordPress plugin directory
  2. Unzip that little sucker
  3. Place sexy-comments folder in your wp-content/plugins directory (it should look like this: wp-content/plugins/sexy-comments/
  4. Log in to your WordPress plugin admin page and activate the plugin.
  5. In the plugin admin page, click the SexyComments sub-menu.
  6. Customize the settings until you have something that works for you.
  7. Locate your theme's template file that displays comments (typically comments.php). Remove the comment output loop and replace with:
    PHP:
    1. <?php sexycomments::show($comments); ?>

  8. If you plan to use the Ajax features or the Reply-To features, you will need to do two things.
    1. Enable jQuery and jQuery Form Extension via the Plugin > SexyComments administration page.
    2. Locate the template file that contains the comment submission form (typically comments.php near the bottom) and replace that chunk of code with:
      PHP:
      1. <?php sexycomments::form(); ?>

    NOTE: Be sure not to touch the section that generates the form for adding comments! This plugin does not re-create the comment creation form.

  9. Lastly, consider disabling the plugin CSS and taking the example CSS provided and customize it to suit your theme's color scheme.
  10. You should be all set, now! w00t w00t! Go make a MyBlogLog or Gravatar account if you don't already have one and upload an avatar. Gravatar tends to be pretty flakey so I'd suggest using MyBlogLog.

FAQs

  • Q: What is this "comment loop" you speak of?

    A: Ah, yes. That thing. Well, its anatomy looks similar to this (there will be some variation from theme to theme):

    PHP:
    1. <?php if ($comments) : ?>
    2.     <!-- some HTML is typically here -->
    3.  
    4.     <?php foreach ($comments as $comment) : ?>
    5.         <!-- the output HTML of each individual comment -->
    6.  
    7.     <?php endforeach; /* end for each comment */ ?>
    8.     <!--...more HTML -->
    9.  <?php else : // this is displayed if there are no comments so far ?>
    10.     <?php if ('open' == $post->comment_status) : ?>
    11.         <!-- typically a blank area or a place with a comment -->
    12.      <?php else : // comments are closed ?>
    13.         <!-- closed comments section -->
    14.     <?php endif; ?>
    15. <?php endif; ?>

  • Q: Ok...so I just upgraded to a new version and there is nothing in the SexyComments admin page...WTF?

    A: Yeah. Sorry about that. In this version, the directory structure has changed drastically and Sexy Comments should no longer live in wp-content/plugins/sexycomments.php OR wp-content/plugins/sexycomments/sexycomments.php, but instead it should be in wp-content/plugins/sexy-comments/. Make sure that the plugin is in the correct location of your plugins directory.

  • Q: What happened to sexycomments_print($comments)? I used to use that to get my comments to display...will it still work?

    A: Along with a directory structure overhaul, this version had a large code overhaul as well. The old function (sexycomments_print) is deprecated but will still work for the time being. I greatly urge you to move over to the new function call sexycomments::show($comments) as that is the new *impoved* function.