Monday, November 29, 2010

I got that BOOM BOOM POW!

Graylo's guide, redux.

Refresh MF/IS as prio, pref before expiry but wait <2-3s for Eclipse
Starsurge, don't wait
FoN/SFall on CD, SF is lunar

Move as MF/IS/MF+, SS if instant

Glyph IS/Wr/MF, maybe SS;

Int > Hit > SP > Haste > Crit > Mastery

int > hit! o.O

Sunday, September 12, 2010

QC, PQ2 + Chuck

... are what have mainly been occupying me in this second glorious week of holiday. These being Questionable Content, Puzzle Quest 2 (on Steam) and a show about a nerd who gets sucked into the CIA. The first of these inspired this picture of Hello Kitty in Mirrorworld.

I hope you like the unicorn, I probably ended up spending more time on that than the whole rest of the picture. It boggles my mind the number of hours comic artists routinely expend. QC has 1500 or so pages, each of which took 10 hours or so. If it was a 9-5 job that's 7.5 years of labour.

Quite evidently I'm loving my graphics tablet (Wacom Bamboo Fun, large). The touch interface can be finicky, it's hard to get it to recognise the zoom and rotate gestures sometimes. The pen is spot on as you might expect; I'm getting used to not pushing the buttons on it by accident. The eraser end is really convenient, in the GIMP it can have its own tool + FG/BG colours set.

Besides making childish drawings, I've been using it to read QC and play PQ2. It's not the best device for web browsing really, but I've been using it so much that switching back to the mouse feels like a pain! For 'casual' games like PQ2 or Plants vs Zombies, which are really designed for a touch interface anyway, it's perfect. I did try playing Starcraft 2 with it but - no. There are two buttons on the pen, one of which acts as RMB and the other... I'm not quite sure. They're not designed to be used frequently though, I find them a bit awkward. SC2 uses RMB a lot so the tablet doesn't really work, sadly.

I really recommend Chuck btw. The agent girl voiced Miranda in Mass Effect 2 and it features the ever-awesome Adam Baldwin as well. He's been in Angel, Firefly and Full Metal Jacket. I'm thinking of putting up posters of actors after I move into my new house (squee), but it'll be hard to avoid having the whole cast of Firefly up! My favourites are probably Mal, Jayne and of course Kaylee.

Feel free, if you wish, to take a moment to daydream on the flash of wonder that was Firefly. Now, for my post-closing question I was going to ask who they are. I would much rather someone riddle me this: what does it mean if something boggles your body? Illustrations welcome, although if I should not be eating when I look at them I'd appreciate a warning.

Monday, August 30, 2010

Part le deuxieme

14:56 - [O7]Garth: I was typing, about that Thorim 2.0 fight
14:56 - [O7]Garth: It's like Twin Valkyrs meets 4 horseman in 1 boss
14:56 - Alexis: Hmm, yeah
14:57 - Alexis: I loved tanking 4H as a tree and I loved mage tanking in the HKMaulgar fight
14:58 - [O7]Garth: You could make it with a teleport to start of gauntlet kind of thing
14:58 - Alexis: I liked the Solarian fight where any DPS can kill you
14:58 - Alexis: It seems a good thing for raid flavour when the DPS have real responsibility, besides their rotation
14:58 - [O7]Garth: Group 1 fighting boss G2 fighting the adds. When you start fighting Thorim 2.0 You have a +150% damage buff. And it slowly diminishes
14:59 - Alexis: Yup that also occurred to me
14:59 - Alexis: I was thinking of ways you could make people want to do 4/6 or 3/7 setups as they got good
14:59 - [O7]Garth: G2 has to battle through the arena to Take over and start with 150% buff again. Once they enter G1 gets teleported out to the start of a gauntlet and it starts over
14:59 - [O7]Garth: So if the gauntlet is slacking, damage will be low (too low/enrage)
14:59 - Alexis: Ahh I see, not what I was thinking at all
15:00 - Alexis: I like it though
15:00 - [O7]Garth: Yeah, the latter just popped in :) didn't read your part yet :D
15:00 - Alexis: I loved the Thorim 1.0 beginning part too, where the arena team are embattled and slowly getting more desperate for their friends to charge to the rescue
15:00 - Alexis: really cool social engineering
15:00 - [O7]Garth: Yeah
15:01 - Alexis: Hmm - an extension to the raid-only idea. You could charge per boss. So at any time you can go "F2P" by no longer buying bosses. Package old "tiers" into cheap bundles and eventually just give them away basic
15:01 - [O7]Garth: The arena/gauntlet part was the "epic" part though, Thorim was cake, unfortunatly
15:01 - Alexis: It sounds expensive but if you made each boss say £3-4, it'd be hard to resist
15:01 - [O7]Garth: F2P?
15:01 - Alexis: and, it'd cost less than a wow sub!
15:02 - Alexis: Yeah. F2P is good because lots of gamers are poor
15:02 - [O7]Garth: what is it?
15:02 - Alexis: Oh, free to play
15:03 - Alexis: The game company wins because on average people spend more than they would on a sub
15:03 - Alexis: The people win because they get the flexibility to keep playing at no cost if they're broke one month
15:03 - [O7]Garth: Ah, I like F2P:D
15:04 - Alexis: A wow sub is £9/month btw. You could probably charge £5 / boss, with a base rate of 2 / month + bonuses now and then
15:04 - Alexis: That model would really inspire you to create bosses people want to buy as well :)
15:04 - [O7]Garth: only "problem" I see, is if it's with guilds, you need to buy it, you can't do boss X when 9 out of 10 people have it. Peer pressure?
15:05 - Alexis: Peer pressure? Did I build peer pressure into my pricing model? Oh dear. That was naughty.
15:05 - Alexis: *snicker*
15:05 - [O7]Garth: O_o
15:06 - Alexis: No guild runs 10mans with only 10 people. Holidays happen, poor periods happen
15:06 - [O7]Garth: the F2P also lets players make their own bosses
15:06 - Alexis: Huh?
15:06 - [O7]Garth: I mean
15:06 - [O7]Garth: They'll suggest bosses you can use, so the development team can be small
15:07 - [O7]Garth: I'm drifting off now :)
15:07 - [O7]Garth: Back on topic!
15:07 - [O7]Garth: Would the fee be needed in the first place?
15:07 - Alexis: Yeah encouraging suggestions would be a good idea... providing you don't make foolish promises ofc
15:08 - [O7]Garth: I know nothing about gaming and development, and games need people to keep it updated etc. But The less people have to pay the more will play. Alien swarm is a games almost everybody in my steamlist has downloaded and played
15:08 - [O7]Garth: And still do
15:08 - [O7]Garth: well not daily, but sometimes :d
15:09 - Alexis: You could give away 10 bosses free, probably. Kind of an "infinite trial"
15:09 - Alexis: I don't like the box cost of wow at all
15:10 - Alexis: As I see it, getting people to install your game is the hard part because you have very little influence over their behaviour at that point - just marketing
15:10 - Alexis: Once you're in, it becomes about the quality of your product + your ongoing pricing strategy
15:12 - Alexis: So yeah free trial because everyone likes something for nothing. Once they've sampled the candy and got over the initial learning curve, buying the latest boss for £4-5 so you can play with non-noobs is a natural
15:12 - Alexis: By that point they know how to play, have hopefully had a great time they want more of and have already spent money
15:13 - [O7]Garth: True
15:13 - Alexis: Spending the next amount of money is easier, because they have already decided your product is worthwhile and they want to validate that decision
15:13 - Alexis: Plus hopefully they have started to make social connections
15:13 - [O7]Garth: They'll be hooked, hopefully
15:13 - Alexis: That is more or less what I am saying, yes :D
15:14 - [O7]Garth: And then the moneymaking can commence *evil laughter*
15:14 - Alexis: I'm no sales guru but I know putting big barriers to entry is poison
15:14 - [O7]Garth: One of the reasons I'm not buying SC2
15:15 - Alexis: Hmm... SC2 for me is a terrible business. Then, they didn't make it for me
15:15 - Alexis: It has a massive sticker cost and immense learning curve... you have to REALLY want to play it
15:16 - [O7]Garth: Yeah
15:16 - [O7]Garth: And once you bought it, you kinda want the Zerg and Protoss part as well
15:16 - Alexis: Hmm - that didn't really work on me
15:16 - Alexis: You can play all 3 races in MP with the first box
15:17 - Alexis: I assume they'll be introducing new MP units for all races in each expansion; the SP terran is much richer than the MP
15:18 - [O7]Garth: Oh, only played a couple of Terran SP levels
15:18 - [O7]Garth: New units.... perhaps
15:18 - [O7]Garth: I think just story mode's
15:18 - Alexis: My impression is that most of the playerbase want to play MP
15:19 - [O7]Garth: Yeah, probably
15:19 - Alexis: The SP is to hook in people who don't realise they want to play MP yet
15:19 - Alexis: On that basis, they have to enrich the MP every time or MP-ers just won't buy the expansion - while consuming infrastructure
15:20 - [O7]Garth: But Story is important as well for (blizzards player base, I think) So having done the SP will be fun/interesting/ good to learn it (new things?)
15:20 - [O7]Garth: Well, SC1 is still being played (prior to SC2 release that is)
15:20 - Alexis: Oh sure story is important, everyone will play the SP
15:21 - Alexis: but MP is the lasting appeal and if people are making a buy/nobuy decision, zero MP extension is going to weight that decision heavily
15:22 - [O7]Garth: For a MP?
15:22 - Alexis: huh?
15:23 - [O7]Garth: WEll
15:23 - [O7]Garth: I mean, single players need to be extended to keep players interested
15:23 - [O7]Garth: But afaik, MP's have that problem far less
15:23 - [O7]Garth: Everytime you play it's different
15:24 - Alexis: MPers will keep playing no matter what
15:24 - [O7]Garth: Making the need for new content less
15:24 - [O7]Garth: Yeah
15:24 - Alexis: but the question here is, how do you make them buy the next box?
15:24 - Alexis: it has to have SP in it, but if that's all there is, I think a lot of MPers will keep playing but not buy the box
15:24 - [O7]Garth: Ah
15:24 - [O7]Garth: Right
15:25 - [O7]Garth: But if you have 1-2 extra units in the box
15:26 - Alexis: then anyone who doesn't buy it is at a handicap
15:26 - [O7]Garth: There will be a problem when people play with or without box. It'll be unfair/
15:26 - [O7]Garth: Yeah
15:26 - Alexis: which is UNTHINKABLE to any pro gamer
15:26 - [O7]Garth: Or make different "ladders" worlds" for them?
15:26 - Alexis: Why would Blizz do that?
15:27 - Alexis: I mean unless they don't like making ridiculous mountains of money
15:27 - Alexis: History appears to show to the contrary...
15:27 - Alexis: Some players might complain, but - screw them, cheapass gits
15:27 - Alexis: I think it's pretty well understood that if you don't buy the product you get an inferior service
15:28 - [O7]Garth: Heh
15:28 - Alexis: You can choose not to buy TBC/LK, but Blizz don't go out of their way to help make that a sensible option
15:28 - [O7]Garth: If you do buy it: more monies, if you don't buy it, stop playing and still have money from that first box you mean?
15:29 - [O7]Garth: Yeah true
15:29 - Alexis: Well - you buy the first box, get a certain amount, are happy. Yay
15:29 - Alexis: You either buy the 2nd box and get more content, simple.
15:30 - Alexis: Or you don't buy the 2nd box and keep the same amount of content. You're probably less happy than before because now relatively, you have less to everyone else; and most people have moved on
15:30 - Alexis: That's really not Blizz' fault though, keeping up with the crowd always entails a cost
15:31 - Alexis: If you have some very good friends they might agree not to buy the box either and that's your decision
15:32 - [O7]Garth: Hmm, I guess :/
15:32 - [O7]Garth: Hard to argue against that
15:32 - Alexis: I have to post something - see you soon

MMO ideas

13:36 - [O7]Garth:
13:37 - [O7]Garth: Wrong one
14:12 - Alexis: that was pretty impressive
14:12 - [O7]Garth: Yeah
14:13 - [O7]Garth: And the speedrun achievement for that one is 4.5 minutes, so they beat it by more than 90 seconds
14:13 - Alexis: heh
14:15 - Alexis: there's gotta be a way to mix up achievements + ladders. And a way to present it so knowing you're the 5,382,786th best player doesn't feel quite so crushing
14:16 - Alexis: like "You are in the top 19.82% of players"
14:17 - [O7]Garth: Uh-huh
14:17 - [O7]Garth: Top 20 sounds good enough
14:17 - [O7]Garth: Are there ladders?
14:17 - Alexis: Say the LK kill
14:18 - Alexis: Allocate a certain amount of points overall; you get a %age of them compared to how fast you do it between the best and worst scoring times
14:19 - Alexis: So Paragon get the whole 1000 points since presumably they've done it so many times they have the fastest time
14:19 - Alexis: We get like 400 points for doing it slowly
14:20 - Alexis: Maybe a bonus for doing it with lower buffs
14:20 - [O7]Garth: And I presume Blizz has set a standard then. Killtime: 13 minutes average dps 8K average hps 5K etc
14:21 - Alexis: I assume they do, but I'm figuring Blizz just says 1k points available and the fastest time gets 1k points
14:21 - Alexis: Everyone slower gets some amount less
14:21 - Alexis: Until the slowest run that is someone's fastest, who gets say 100 points
14:23 - Alexis: There's a certain mindset that "progression" guilds have that "friendly" guilds don't, allowing gradations of achievement might
14:23 - Alexis: help make people think of efficiency
14:23 - Alexis: maybe 500-800 points as a min would be better
14:23 - [O7]Garth: How to calculate gear though? better gear is faster, or is it all about speed?
14:23 - Alexis: Gear is ignored
14:24 - [O7]Garth: I best isn't fastest. Or are we just talking about speed now?
14:24 - Alexis: The fastest time will go down over time, as the top guild practices + gears up
14:24 - Alexis: Hmm - I'm equating best + fastest, since you need to a kill to even rank
14:24 - [O7]Garth: I mean, the Timor station speedrun was done with grenade launchers (level 27) what if you can do it without, at alower level
14:24 - Alexis: Oh and I'm talking WoW :)
14:25 - [O7]Garth: Yeah, I know, but I couldn't finda way to make it explain with wow :d
14:25 - Alexis: That's because gear in AS = spells, qualitative differences. Gear in wow = more of the same, quantitive differences.
14:26 - Alexis: So gear in wow can be neglected for speed ranking purposes, but not so much in AS... for AS I'd assume everyone is max stars + level :p
14:27 - [O7]Garth: Those guys? I guess :D
14:27 - [O7]Garth: but yeah, everybody will have the same gear etc
14:27 - Alexis: Yeah
14:27 - Alexis: It gives me another thought
14:28 - Alexis: What if you could take WoW, strip the raids out and stand that up as a game?
14:28 - Alexis: So like in the lobby you pick a class, gear build, talent build etc. Then you just pick a 'map' and boom
14:28 - [O7]Garth: A co-op boss killing game?
14:28 - Alexis: Yeah
14:29 - Alexis: Like SC2 MP has no open world, no research, you just pick a race and go
14:29 - Alexis: What if in WoW you could just pick a build and go?
14:29 - [O7]Garth: hmm I don't know, If we keep the same difficulty in boss fights etc, and keep loot/progression in the game.
14:29 - [O7]Garth: I can think of a problem
14:30 - [O7]Garth: If you make it that simple, the game becomes fast
14:30 - [O7]Garth: And WoW/Raids isn't about speed, you need coordination, time, communication etc
14:30 - Alexis: Nah no loot - you pick your ilvl as difficulty level
14:30 - Alexis: People do all that for SC too
14:30 - [O7]Garth: Speedy games don't like it cause people join/leave when they want
14:31 - Alexis: PUGs would be pretty horrendous I grant you :)
14:31 - [O7]Garth: I mean, if you want to do the LK you need to play with friends to learn it slow
14:31 - [O7]Garth: Or it will be crapfest
14:31 - Alexis: Well - that's just like joining a PUG
14:31 - [O7]Garth: Yeah
14:31 - Alexis: yeah, anyone half decent will join a guild
14:32 - [O7]Garth: But then it doesn't become a loose game like AS or Borderlands or something else that's fast and guildless
14:32 - Alexis: THat's not the idea
14:32 - [O7]Garth: Aha
14:32 - Alexis: You can't play coop SC2 at a high level without friends either
14:33 - [O7]Garth: SC2 is starcraft right?
14:33 - Alexis: THe idea is to get rid of flying around, having to enchant gear, having to level up etc etc
14:33 - Alexis: yeah
14:34 - Alexis: If a games company didn't have to make quests, open world etc they could do so much more raid content
14:34 - [O7]Garth: Hmm, it does sound interesting, but I do see some "problems"
14:34 - [O7]Garth: That's true
14:34 - [O7]Garth: Did'nt calculate that in yet
14:34 - Alexis: Basically WoW is 3-5 games all in one
14:34 - Alexis: which is nice because it gives you a change, but causes friction too - like I will never get the pvp achieves
14:35 - [O7]Garth: but people who play a game need to be entertained by new content or challenges or different mode's, achievements etc.
14:35 - Alexis: If they could split the games out, I could play Leveling when I feel like it, Raiding when I feel like that
14:35 - [O7]Garth: Or the hunt for loot
14:35 - [O7]Garth: I mean Ignis can be so dull etc, but it's being done cause of the loot and when you get it, you're happy.
14:35 - Alexis: Achievements
14:36 - [O7]Garth: With no loot, no journey to/from, you will be bored with it after a couple of raids, so new content need to be out fast
14:36 - Alexis: I mean you could throw some unlocks etc in to give extra motivation for initial tries, but the ultimate goal is speed
14:37 - Alexis: What if instead of releasing 14 bosses at once, they released 1 boss / 2 weeks?
14:37 - Alexis: I think that might even be slower than Blizz
14:38 - [O7]Garth: 1 boss in 2 weeks.
14:38 - [O7]Garth: Hmm not enough I think
14:38 - Alexis: You would focus hard on each boss, pushing your time down, but never get totally bored with the game because in average 1 week, there's a new boss
14:38 - [O7]Garth: Does the old one disappear?
14:38 - Alexis: and you can always go back and work on old ones a bit more if you're hardcore and want to push your score
14:38 - [O7]Garth: Ah right
14:38 - Alexis: That's another beautiful thing
14:39 - Alexis: Because of the gear/level treadmill, bosses go out of date in wow
14:39 - Alexis: if you tie all that to a difficulty level instead, your content never dies
14:39 - Alexis: I mean... some of it will start looking pretty gash... but people don't have to do it
14:39 - [O7]Garth: I like that
14:40 - Alexis: 1/2wks could be the 'base rate', with bonus boss weekends
14:40 - [O7]Garth: but, maybe build a difficulty level in it as well?
14:40 - [O7]Garth: Like you cant go to boss X without level Y
14:40 - Alexis: Yeah the biggest issue I see is teaching people to play
14:40 - [O7]Garth: Oh wait, you mentioned unlocks already :D
14:41 - Alexis: :D
14:41 - [O7]Garth: Training rooms?
14:41 - Alexis: Yeah. Simple bosses with restricted skill sets
14:41 - [O7]Garth: Wow Is ofcourse a big trainingroom to rest skills and spells and other stuff
14:41 - [O7]Garth: Choosing your talent from scrap is hard
14:42 - Alexis: Yet, a very poor one. You can't really learn to tank while levelling
14:42 - Alexis: and healing is nonrepresentative, most of the fun/difficulty comes from multiple targets
14:42 - [O7]Garth: Could make it more mobile though, Not all of them require a tank, more of a berserker(borderlands) kind of class?
14:43 - Alexis: Well... I like the tank-cooldown model
14:43 - [O7]Garth: Less complicated, more with synergy
14:43 - Alexis: Imagine if every DPS class had an Evasion equivalent, and a taunt
14:44 - Alexis: the evasions wouldn't have to be identical... some could be selfhealing, some absorbs, some magic-resist, some armor - etc
14:44 - [O7]Garth: That will be chaos
14:44 - Alexis: Until you learn to control it :)
14:44 - [O7]Garth: people will taunt from eachother etc
14:44 - Alexis: that's the idea
14:44 - [O7]Garth: How many people?
14:45 - Alexis: 5-10
14:45 - Alexis: We're mixing up two ideas now
14:45 - [O7]Garth: Cause, it's hard enough, at times to get a good 3 man interuption rotation going, let alone a 5-10 man taunt rotation
14:45 - [O7]Garth: I'm not negative on all it, I just someone who thinks about negative sides of stuff before the positive side btw :)
14:46 - Alexis: I imagine most encounters would be multiple boss, so you'd break into 2-3 teams and have some people sit out of taunt rotation
14:46 - Alexis: It's easy to get excited about game ideas, much harder to defend them
14:46 - Alexis: There's so much cool stuff Blizz have tried, that the playerbase just broke, lol
14:47 - Alexis: For a tough fight - imagine twin emperors
14:47 - Alexis: You have 3 people tanking one; 3 the other; 4 handling adds
14:47 - Alexis: at set points, the 3 teams swap because they've been debuffed
14:48 - Alexis: or you could have a thorim like map - 5 people at the bottom, 3 on thorim, 2 on adds
14:48 - Alexis: 5 people up top just DPSing like nuts
14:48 - Alexis: at a given point, the top 5 have to click an orb and jump down, in time to let the bottom 5 escape
14:49 - [O7]Garth: Escape?
14:50 - Alexis: Up to the top :)
14:50 - Alexis: Say the boss has an evil damage aura and the orb gives you a limited time resist buff
14:50 - Alexis: with a cooldown period which forces you to use 2 teams, so as to get 110% time coverage

Thursday, August 26, 2010

Acid skull

There's this really cute skull splat I keep seeing everywhere; I think it's some clothing company icon or whatever.

Anyway here is my imitation! I got ArtRage with my tablet which is actually pretty cool, it complements the GIMP nicely. It has different brush textures and when you use the paintbrush, the default option is for it to mix with the paint already present. I imagine for Real Artists Who Can Paint it's super good, for me it's still fun! You can turn anything into a stencil so I have this skull as a stencil now, that's how I made the dropshadow. All the green was added in the GIMP.

Wednesday, August 25, 2010

Tinky Weatherwhistle

Appearance: Your average double-pink-bunched gnome. She has a fondness for check print and leather.

Power: Humming her discordant yet beautiful songs makes mechanicals fall into line and the laws of physics bend to fit her can-do attitude to engineering.

Quote: "I need more MATERIALS!" "Make way for PROGRESS!"

Combat: She spends most of combat in the bubble of her Macrognomic Shell. This is usually humanoid, but no bets on what sneaky payloads the limbs might be carrying! The acoustics give Tinky a peculiarly deep voice.

Travel: It takes a while to put together, but with a rucksack full of material Tinky can transform the Macrognomic Shell into the Inevitable Sphere of Destruction. It looks a bit like a sea urchin and uses steam power to propel the spines. Acceleration and handling aren't all that, but the top speed isn't bad! So far it has killed one hedgehog.

Engineering: accomplished with the aid of five little autognomatons. Occasionally they wander off but usually they're safely packaged in Tinky's rucksack or compartments in the back of the Macrognomic Shell.

Balance: Tinky's inventions are extremely flexible, but they do take a while to put together and occasionally some special components or additional power sources may have to be improvised.

Secret, the first: Tinky has a real, real tiny, Sphere of Annihilation. The vacuum it generates powers the extremely gradual collapse of a many-layered metal sphere, which in turn powers many of Tinky's inventions. Every few months she returns to HQ and plugs it in to recharge. It has never escaped.

Secret, the second: Tinky has an evil twin called Tonks. Tonks has a fondness for stripes and impractical vagaries of silk.

Secret, the third: Tinky is deathly afraid of air travel. She does not know this yet.

Credit: Yes, this is principally a ripoff of Girl Genius, but with a drop of WoW. The Inevitable Sphere was all me, and the Macrognomic Shell is more of a species in GG than a suit. The D+D Arabian Nights had a clockwork wizard, Tinky is adapted for a more action-oriented, narrativist game.

Why, oh god why? So I can illustrate it! She should be fun to draw.

Friday, August 20, 2010

Random blarghing, now with pictures!

HB+0.5 has made me want to post random shit again.

Today I reread all my mortgage documentation (mature and responsible) then spent half the night on that blog (irrational funclinging). On the plus side I don't feel guilty or like I've let myself down, just rather puzzled over wtf I'm trying to accomplish. I have faith in me. Me has a great plan, I'm sure and any time me would like to let me in on it that'd be cool.

I spent most of yesterday night reading incredibly positive life-affirming blog posts from positive life-coachy people. The old barf reflex has not entirely subsided but I figure maybe I can drown it with sunshine. The Cartoonival of Wisdom is well worth Googling. Amy Hoy's Slash7 got me onto the whole thing, I enjoyed copylicious as well as some others.

My drawing tablet is languishing. I feel guilt towards my drawing tablet. Dilbert, XKCD and HB+0.5 have clearly proven bad art is funnier than good art and way funnier than no art. Therefore I am potentially fully equipped to enter the world of illustrated blogging. I'm not 100% where unrecognisable art comes in. I did rip off some image I found on Google to make a weather sign which I was idly musing about tattooing on my chest. The idea is "sometimes there are clouds but the sun is always there", which is stilton but might genuinely help me stay this side of murderous.

On that note, I've really been diving into Buddhism again and I hope it isn't just a freakish little phoenix effect thing. So much shit has happened in the last few years I've kind of given up any expectations of the future. On the other hand I'm still working, that's getting easier and I'm buying a freaking house. I have no idea how long I'll be able to maintain any of this but maybe it's okay. No matter how bad it seems I'm unlikely to suffer spontaneous organ failure or seismovoracity. I may not be Stephen Hawking but people much dumberer get along just fine.

Sunday, August 15, 2010

Clinging to the skandhas

I have written this as an exam for myself. I had thought of the skandhas as a mental model and not applied them to ethics, ie the study of saving oneself (autosoteriology?!). Learning that attachment to them causes suffering, I set out to explore how. My answers are not necessarily as useful as they could be.

The five skandhas are (my choice of terms):
  • Substance, what is

  • Sensation, attraction or repulsion

  • Conception, the modelling as objects

  • Mental formation, our habits of thought

  • Consciousness, that which observes

Substance in the presence of Consciousness leads to Sensation, Conception and Mental Formation. They cause us suffering in correlation to our attachment to them, that is our participation in them. We can be free of this suffering by:
  • Recognising the impermanent, relative and composed nature of all substance (for Substance and Conception).

  • Recognising there is no inherent good or evil, appeal or repulsion, and appreciating all things for their roles.

  • Freeing ourselves from our preconceptions and seeing each moment anew.

  • Observing the full contingency of our consciousness on our experience.

Mostly this feels like a reflection on the three marks of existence as applied to our own minds. We free ourselves from attachment to the skandhas by fully internalising our appreciation of the marks, so that as the skandhas arise we appreciate them and let them go.

The last one is tricky for me. Consciousness-as-observer is impermanent (we sleep and die) but it feels unchanging. My best formulation of the emptiness of consciousness is that it is contingent on the other skandhas, it is an illusion conjured by their illusory existence. There is no observer, the sensation conception and formations simply arise. When they do not, when we are asleep, the observer appears to disappear - it was never there.

Saturday, August 14, 2010

Couple of things for Mike

Double brace initializers:

The JSON technique is really simple... use a handrolled or library JSONBuilder on the server to spit JSON onto the client, include some JS which on DOM-load replaces some div's innerhtml with HTML rendered from the JSON. Hang observers off it (remembering not to actually observe until you've set the innerhtml, so the tags exist) and regenerate the whole shaboodle any time the data changes. Never manipulate the generated HTML.

It's great for complex widgets (a smart table) and equally good for making simple widgets smart. For example, restricting the options available in a select according to a mapping from some other select's current value.

Wednesday, June 16, 2010

Saturday, June 5, 2010

Healing for Dummies

Following on from DPS for Dummies, and Healatica Principia (what an amazingly pretentious title XD). I have healed in Wrath with all of these specs, but not all in progress raids. Like the DPS guide, this will obviously not make you a star, just get you started. The value here is having every style listed in a very condensed format.

Comment very welcome.

Always: be casting, prehot if you're bored.
AOE: RJx5/WG, tranquility for decimates
Spot: RG/swiftmend. I like LB for minor spot healing, it's sick efficient and can be boosted if the incoming DPS rises.
Tank: Full hots + nourish spam. You can afford to roll at least 1 stack of LB and are hurting your HPS badly if you don't. Fast stack if you have mana issues; slow stack on secondary tanks.
Mana: use innervate early and you should have very few problems.
Macro: yell to Rebirth, NS+HT
Gear: cap haste then stack SP. Spirit is ok, mp5 is terribad.

Disco priest:
Always: Bubbles are always your priority. Keep PoM up but try not to hide it under a full shield. Melee usually make the best targets; use SW:D if it jumps to you. Use Pain Suppression and Power Infusion liberally.
AOE: If everyone's shielded and big damage is incoming, consider Renew. Not a strength.
Spot: Flash heal. Never use GH. Binding heal if you're damaged.
Tank: Maintain renew, penance to top up, binding if you're damaged, flash when you have to.
Mana: shadowfiend, try the Rapture trick if you're too leet for this guide.

Holy priest: Skipping for now because I haven't played Holy since BC.

Holydin: HL build is recommended.
Always: Maintain beacon, JotJ and SS, usually both on MT. Use your auras and hands.
AOE: Haha. Glyph HL and spam. Raid-bubblewall before big bangs.
Spot: Holy Shock, FoL. Hands.
Tank: FoL, HL when needed (ie most of the time, in raid).
Mana: Time Plea with lulls, but USE it. Other healers will cover you. Stacking with wings loses overall HPS, but this isn't a big problem. Pop DI when you know you'll be spamming HL.
Macro: DS /cancelaura, DF+HS (FoL after)

Always: Think out your totems. Usually you want SoE, Flametongue, WoA + Healing Spring. Use Stoneskin if you have a DK; skip FT if you have an elem sham; use windfury if WoA is covered and you don't have a frost DK; use Mana Spring if you lack BoW. Tremor and Cleansing can be situationally OP.
Always: Maintain water shield and healing waves for yourself, earth shield on the tank.
AOE: Brain heal FTW.
Spot: CH, Riptide, LHW. Rip leaves HOTs about to CH.
Tank: Riptide, LHW spam, HW if you really have to.
Mana: Mana Tide is a bit lame but does affect your group. Shaman are hard to run OOM, but if you get close use more LHW and less HW.
Macro: NS+TF+HW, NS+CH

I really like macros like this:
/cast [@mouseover] earth shield; earth shield
It will cast on your mouseover target if it can, or your target if you have one, or yourself (assuming you have auto selfcast on).


Moved this to Google Wave


Jeez when did this blog actually get content? Huh.

To balance out all that unwarranted productivity, have my .vimrc file. I'll update shortly with the ninja menu-creating skillz I learnt at work.
set guifont=Courier_New:h12
set title
set nobackup
set writebackup
set nohls
set visualbell
set ruler
set incsearch
set smartcase
set smarttab
set scrolloff=10
"set sidescrolloff=10
"set nowrap
set tw=80
set wm=0
set linebreak
set tabstop=2
set shiftwidth=2
set expandtab
set backspace=2
set noai
set nojoinspaces
set cpoptions-=a
set cinoptions=g0.5s,h0.5s,:0.5s,=0.5s,p0,(0.5s,+0.5s
set winminheight=0
"V6 set winminwidth=0
set matchtime=2
" eol:$,
set nolist
set lcs=tab:>-,trail:\
hi NonText ctermfg=4
hi SpecialKey ctermfg=4
syn on
filetype indent on
" winpos 0 0
" set lines=52 columns=80
set tags=~/.tags

if hostname() != ''
let &titleold = matchstr(system('whoami'), '\w\+') .'@'. hostname()

" Darn F keys...
map OP
map OQ
map OR
map OS
map [11~
map [12~
map [13~
map [14~
map [15~
map [17~
map [18~
map [19~
map [20~
map [21~
map [23~
map [24~

" Printing
set popt=header:3,syntax:a,number:n
set printexpr=PrintFile(v:fname_in)
function! PrintFile(fname)
let pd = (&printdevice == '' ? '' : ' -d'. &printdevice)
call system('lp '. pd .' '. a:fname)
" echo 'lp '. pd .' '. a:fname
call delete(a:fname)
return v:shell_error

" New ex commands
command -range=% CppCmt ,s/\/\*\([^\/]*\)\*\//\/\/\1/g
command -range=% CCmt ,s/\/\/\(.*\)$/\/\*\1 *\//g
command -range=% TidyEOL silent! ,s/\s\+$//g
" TidySrc is broken
command -range=% TidySrc silent ,TidyEOL | ,s/{\n\n\+/{
/ | ,s/\n\n\+\(\s\+\)}/
\1}/ | ,s/\n\n\n\+/

/ | normal "gg=G"
" :silent! TidyEOL
:silent! %s/{\n\n\+/{
:silent! %s/\n\n\+\(\s\+\)}/
:silent! %s/\n\n\n\+/

command -nargs=1 -complete=help Help :h | normal _
command -range=% MkLocalScript silent! ,s/set/setlocal/ | silent! ,s/map/map / | silent! ,s/ab/ab /

" Maps
map '1 gg
map # .n
" Comment a visual block
vmap # :s/^\(\s*\)\(.\)/\1# \2/:silent! '<,'>s/^\(\s*\)# #\s*/\1/
map '' :update
"map 'q :!rm -f .*.^^:q
map 'q :q
map 'Q :q!
map 'w '''q
map 'e :files:e
map 'E '''e
map '# :e #
map '~ '''#
map 'v :e ~/.vimrc
map '. :e %:p:h
map :update:prev
map :update:next
map 'r :e!%
map 'd :!rm %:set nomodified
" Updates a line like /# Last:/
map 'l 0f:"_C: :read !date +'\%Y.\%m.\%d \%T'kJ''
map L 10k
map M 10j
map S g$F r
map w _
map zi
map Z @q
map ] >>
map [ <<
nmap 1000000u
map :!irb

" New stuff
set fillchars=vert:\|,fold:\
set foldminlines=3
" set foldclose=all
"V6 set foldlevelstart=2
"V6 set foldmethod=indent
set viewoptions=folds,cursor

" F11: EditFtplugin(), F12: EchoFtPlugin
let vimdir = expand("~/.vim")
let ftdir = vimdir .'/ftplugin'
let skeldir = vimdir .'/skel'
function! EchoFtplugin()
if exists("b:file")
echo b:file ." sourced"
else | echo "No *.vim sourced"
function! EditFtplugin()
if exists("b:file")
exec "edit ". b:file
elseif &ft != ''
let fn = g:ftdir .'/'. &ft
if isdirectory(fn)
exec "edit ". fn
else | exec "edit ". fn .".vim"
else | echo 'No filetype or b:file'
map :call EditFtplugin()
map :call EchoFtplugin()

function! ReadSkel()
let full = fnamemodify(expand("%"), ":p")
let tail = fnamemodify(full, ":t")
let extn = fnamemodify(full, ":e")
let fn = g:skeldir ."/". tail
if filereadable(fn) | call ReadSkel_(fn) | return | end
let fn = g:skeldir ."/". extn
if filereadable(fn) | call ReadSkel_(fn) | return | end
let fn = g:skeldir ."/". &ft
if filereadable(fn) | call ReadSkel_(fn) | return | end
function! ReadSkel_(fn)
exec "0read ". a:fn
silent! g/reated/normal 'l

hi Comment ctermfg=6
hi Directory ctermfg=6
hi Folded term=standout ctermfg=7 ctermbg=0
ab LAL Alexis Lee

let @q = "I:silent! %s/ A\\n// 0\"wdd@w"

" usually unnecessary
filetype plugin on
augroup vimrc

" Match any filename with at least one character
" Careful if /root/.vim -> /home/*/.vim, mkdir /root/.vim/view
au BufWinLeave ?* if &ft != 'mail' | mkview | end
au BufWinEnter ?* silent loadview

au BufEnter *.rbd setf ruby

au BufNewFile,BufEnter ~/winmvs*/* exec "so ".vimdir."/mvs.vim"
au BufNewFile ~/winmvs*/* call MvsGet()
au BufNewFile,BufEnter *.jcl setf jcl | exec "so ".ftdir."/jcl.vim"

" Do this properly sometime - test filename in cpp.vim
au BufEnter *.h exec "so ".ftdir."/h.vim"
au FileType xml setlocal ts=2 sw=2
au FileType help setlocal ts=2 sw=2
au FileType make setlocal ts=4 sw=4 list
au BufEnter sql/data/* setlocal ts=8 sw=8 list
" au VimEnter * au BufEnter * syn sync fromstart

au BufNewFile * call ReadSkel()
" au BufNewFile main.c call ReadSkel()

"au BufWritePost,FileWritePost *.pl normal :!chmod +x %
"au VimLeave *.pl normal :!chmod -R ugo+rx ~/perl/*.pl
augroup end

Friday, June 4, 2010

The trials of minification

Amy Hoy got me thinking about JS minification and my manager OK'd me to look into it.

Day 1 went very well. I got Sprockets and the YUICompressor working on the command line with a batch file. To integrate this into our Maven process, I wrote a little Maven plugin/mojo I called packJS. Mojos are written in Java so I switched from Sprockets to Combiner. I installed the two jars into my local repository and everything was hunky dory.

Day 2 slid downhill somewhat. It seems the deploy:deploy-file goal doesn't work very well, so I was unable to push the dependencies to our central repository easily.

Day 3 brings new hope, and with it new forehead-rubbing. There's a yuicompressor maven plugin already. Unfortunately it doesn't seem to work either, in aggregation mode at least. It complains the output file does not exist; creating the parent dirs manually may help, but clean will erase them again.

Updates ongoing.

ps. Which is it, Maven? A plugin or a mojo?

Thursday, June 3, 2010

Link dump

Some of the crazy CSS stuff I've been reading up on. - 62.5% rule - Fahrner Image Replacement (FIR) - media queries, not just for mobile
@media screen and (max-width: 600px) {
.footer {
-- standard css rules --
Bear in mind this is CSS3 and therefore not supported by IE. They do seem to be well supported in FF3.6, contrary to quirksmode.

Amy Hoy knows how to hustle:
Thomas Fuchs (her husband) helps write Prototype and (v1+2):

Prototype 1.7 has a sexy new Element#on. I will be metaphorically feeling up #getLayout as well.

Wednesday, March 3, 2010


private class YAHB {
StringBuilder buf;
LinkedList openTags = new LinkedList();
boolean hasIncompleteTag = false;

public YAHB() {
buf = new StringBuilder();

public String toString() {
return buf.toString();

// Requires close
public YAHB tag(String tag) {
if (hasIncompleteTag)
hasIncompleteTag = true;
return this;
// Requires close
public YAHB tag(String tag, String name) {
return tag(tag).attr("id", name).attr("name", name);

public YAHB endTag() {
hasIncompleteTag = false;
return this;

public YAHB close() {
if (hasIncompleteTag)
String tag = openTags.removeLast();
buf.append(" buf.append(tag);
return this;

// Full close
public String done() {
while (openTags.size() > 0)
return buf.toString();

public YAHB attr(String attr, Object value) {
if (value == null)
return this;

buf.append(" ");
return this;

public YAHB text(String text) {
if (text != null)
return this;

// Closes
public YAHB value(String text) {
if (hasIncompleteTag)
return this;

// these conveniences may not work for everyone
// if you add to this, be sure they're actually convenient
// these progress from most general to least

// Requires close
public YAHB form(String name, String url) {
return tag("form", name)
.attr("method", "POST");
// Requires close
public YAHB form(String name) {
return form(name, "#");

// Requires close
public YAHB input(String name, String type) {
return tag("input", name).attr("type", type);

// Makes a label and opens a <p>
// Requires close
public YAHB field(String fieldId, String label) {
return tag("label").attr("for", fieldId).text(label).text(": ").close()

public YAHB clazz(String clazz) {
return attr("class", clazz);

// labels and values are processed in lockstep ("dual comprehension")
// the word 'value' is overloaded, yes it's confusing
public YAHB select(String selectId, String def, List

Wednesday, February 24, 2010

New way to write MVC apps?

Seems like you could write a pure XHTML page and insert dynamic elements with XSLT. Writing XSLT is a bitch, so you could use a domain-specific language to declaratively specify which divs to fill in on which events. I'm thinking like:

onload {
'mainbody': "<h1>Huzzah</h1>"

action {
'post': doWork();

-- continue later --

Lets say CSS selectors or XPath or both.
Since apparently I have the hots for JSON, why not use CSS rules as JSON object keys and pass JSON to a piece of static JS+HTML for construction?

-- continue later --

Tuesday, February 23, 2010

How to DPS for dummies

This post is for people doing 4k dps in their mainspec, and maybe as a secondary benefit people can have a bit more fun with alts and offspecs. I know some of you can't spend the time outside the game I can, so I thought perhaps I could bring some of the info to you. We have a saying in England, "You can lead a horse to water but you can't make it drink". I'm expecting the standard wall of silence but as always I'm happy to talk performance with anyone. Please note we are on the brink of disbanding and consider the contributing factors, our progress has not been good and we have significantly strayed from the "hardcore casual" mandate into plain old casual. If anyone actually finds this useful, some encouragement would really be appreciated! I can do something like this for healers if desired, even have a stab at a tank one.

Gear and tiny optimisations like speed pots are debated so fiercely by the top crowd because a perfect rotation is assumed, at our level (and I very much exclude myself from that top crowd) there are much bigger fish to fry. In light of that I am not including any info on gear. Similarly I am trying to control my know-it-all side and exclude "pro tips" which are likely to hurt more than they help at low skill levels. For example the cat rotation is stupidly hard and a proper treatment wouldn't help anyone, besides there's an EJ article for pros. What I'm really aiming here for is something *short*, which takes only a minute or two to read and is easy to comprehend, yet covers enough to give you 6k dps.

~99% of the info is from EJ, or my memory of reading those sites.
If the acronyms are too hard to understand, I can go through and expand them.
I put a request for help at the end!


Use, blog sites or (my preference) to find a good talent build and glyphs. Use that exact build, if something doesn't make sense try to find out why - you are likely to learn something about spell/talent interactions. Don't make little compromises for heroics, they're so easy already. Same for AOE talents, single target dps is always more important - although get them if you have spare points!

Put a little TLC into your UI. It's your primary interface to the game and a poor UI will cost you more DPS than anything else through gaps between abilities and missed procs. You need easy access to not just your rotation abilities, but also all the little things that you use once in a blue moon, like distracting shot or gouge. Rotation abilities need to be a single keypress - you will regret abusing your hands with modifier keys later. I'm a big fan of putting them on the mouse buttons. More rarely used abilities can soak a modifier but go easy, if you're using ctrl-shift buttons something is probably wrong!

You also need need need a buff/debuff (aura) monitor, NeedToKnow is very good then pick one of TellMeWhen or Auracle. NtK gives bars, these are ideal in most cases. You can set it up to have a fixed duration, I'm using 9sec on my affl lock so I get a decent warning and good resolution. TMW and Auracle give boxes, these have a bit more visual impact when they suddenly light up so I like to use them for procs. I've moved away from PowerAuras since I had trouble remembering what everything meant.

Most classes use a priority system now so I'll just list out priorities. Any ability with a dot or debuff component should be used to maintain that and generally not more often. I'm listing cooldowns but it's quite likely I'll forget some, usually I only remember them myself because I see them on my bar. Ideally you'd learn how all your cooldowns interact with heroism, but that's advanced material and totally not necessary for doing 6k dps.


Macros aren't strictly necessary, but used properly they make your rotation simpler AND increase DPS. I'm going to give some macro "templates", I hope they help you build your own.

#1: Melee, macro /startattack onto all or at least your most common attack. We've all had that moment when you notice several seconds into a combat or after a target switch that autoattack hasn't engaged - macros like this prevent that. This means more white swings, more rage, more procs, more damage.
[code]/cast bloodthirst
#2: Trinkets. When you're just starting out, worrying about trinkets can cost DPS. This macro ensures high uptime, even if that uptime isn't perfectly timed. Many people will see a DPS increase from using a macro like this. Even pros can benefit from macroing their trinkets onto their big burst cooldown (like Arcane Power or Berserk).
[code]/use 13
/use 14
/cast moonfire[/code]
#3: Stopcasting. For when you absolutely gotta cast something RIGHT NOW. Usually if you try to counterspell in the middle of a cast, you just get a nasty message. With a macro like this, it will abort your current cast then instantly counterspell. Also useful for eg purge, cleanse, spellsteal etc.
/cast Counterspell[/code]
#4: Cooldown fallbacks. Careful with these, they can make you rather inflexible. They don't work well with three spells, trust me on this. 144 is the number of seconds dash takes to cool down, ie 2:24. I use this technique for ABarr/Fireblast and Mana Tide/Mana Spring - cases where the second ability is essentially a weaker or more expensive version of the primary.
[code]/castsequence reset=144 dash, swiftness potion[/code]
#5: A couple of classes, mainly arcane mages and spookies, have to channel their spells. Channeled spells are awkward because if you mash the key too long, you can find yourself restarting the cast. This costs time, doubles the mana cost and loses your next-spell buffs.
[code]/cast [nochanneling] Arcane Missiles[/code]
#6: STFU. Spamming dps keys can cause a lot of unwanted error noises and messages. This macro makes them STFU, simple as that.
[code]/console Sound_EnableSFX 0
/cast Blood Strike
/console Sound_EnableSFX 1
/script UIErrorsFrame:Clear()[/code]
Here's an example of how you might combine some of these. The ! means "cast this even if I already asked to".
[code]/console Sound_EnableSFX 0
/use 13
/use 14
/cast !Rune Strike
/castsequence reset=3 Icy Touch, Plague Strike
/console Sound_EnableSFX 1
/script UIErrorsFrame:Clear()[/code]
Of course there's more you can do, but I hope I've covered the most generally useful DPS macros. There are plenty of good macro guides out there, this is just a taste!

[size=150]DK - unholy[/size]

Special: DK is hard. Seriously, this isn't a class for noobs, which is why all the noobs playing DKs stand out so much. I actually use the AOE build and glyphs since the gain from the single-target build is meant to be very small. I recommend singletarget glyphs though, I should switch.
Priorities: IT/PS for diseases, desecration (blood strike), scourge strike, death coil, horn of winter. Don't forget the damn ghoul.
Cooldowns: Gargoyle, AMS and IBF are all very strong. Try to keep bone armor up but don't screw your rotation for it, blood tap can help not mess up your frost+unholy pairs.
Monitor: diseases, desecration. Optionally, bone armor.
AOE: diseases, D+D, desecration, blood boil. Try to notice when D+D is coming off cooldown and save runes for it.
Comment: desecration debuff might actually be called desolation, can't remember.

[size=150]Druid - cat[/size]

Special: omg is this one hard. You NEED a dedicated cat build to get even half decent cat dps, King of the Jungle is a surprisingly huge deal and the expertise is pretty big too. Get FeralByNight mod, turn off everything except move prediction and time-to-live. I even turn off 'suggest berserk' as very occasionally I like to save it. At low skill levels, ignore clearcasting procs and spam abilities as fast as you can. Don't stress if FB comes up but disappears before you can use it.
Priorities: SR, Mangle (IF trauma or mangle(bear) isn't up), Rip (5 pt only), FB (if you have 5 pts or mob will die in <10s), Shred (on CC), Rake, Shred, Tiger's Fury. <5 pt SRs are fine, refreshing SR early is also fine, just don't let it drop! FBN will manage all of this for you and much more.
Cooldowns: Berserk, this is an odd CD as rather than increasing your dps directly, it reduces your energy cost. To maximise this you need to be as near to 85 energy as possible before using it, but not above. You can't use TF under zerk but it still cools down, so try to use TF at about 20-25 energy then zerk. Barkskin is amaaazing and I <3 it 4evah. Feral charge is very good to regain contact.
Monitor: SR, Rip, Rake, Mangle/Trauma
AOE: Use mangle to generate CPs, SR, swipe spam. Cat swipe hits 180 degrees in front of you, unlike bear swipe which is 360 degrees. Zerk + swipe = pwnage, just mind aggro!
Comment: Don't target switch if you can possibly avoid it, our abilities synergise so much and we're so reliant on CPs. If the RL asks "all dps" to switch - don't until they start turning purple. Muti rogues are the only other spec I would accept this from, even spookies suffer less.

[size=150]Druid - Balance[/size]

Priorities: FF, Treants, MF, IS, Starfall, spam. 'spam' means wrath or starfire, start with wrath and switch every time Eclipse procs.
Cooldowns: Barkskin is love. Starfall is a bit better with 2 targets than 1, but it's worth using on CD regardless. Do NOT use on heroic trash, it just isn't worth the risk of pulling adds. Treants can die, avoid using during heavy incoming AOE.
Monitor: MF, IS, Eclipse (Solar), Eclipse (Lunar)
Comment: You might like the Squawk and Awe mod, Van does. I prefer to track Eclipse with the same aura monitor I use for everything else. Eclipse is very variable and vulnerable to movement, if you must move reapply dots while you do.

[size=150]Hunter - survival[/size]

Priorities: explosive shot, black arrow, serpent sting, aimed/multi
Cooldowns: rapid fire
Monitor: Explosive shot, black arrow, serpent sting, Lock and Load
AOE: 3+ just volley. Yawn. For two you can sting the off mob, but stay on primary so you benefit from the damage increase component of BA and SrS.
Comment: Explosive shot actually does its damage over a couple of seconds so don't spam it when L+L procs. Instead, alternate ES with other abilities. Flip to viper between trash pulls, even just for a single tick, and drink up before bosses.

[size=150]Mage - arcane[/size]

Priorities: ABx4+, (Missile Barrage), AM.
Cooldowns: arcane power, icy veins, PoM. Macro PoM to AB, it's not worth stressing over.
Monitor: Arcane Blast, Missile Barrage proc.
AOE: Blizzard :|
Comment: Never use AM when MB isn't up. If you hit 4xAB and have no MB proc you have to decide if you have spare mana (more AB) or not (cut your losses with ABarr). 6-8 ABs is usually the max you should cast in a row. 2t10 burns mana, so if you have to, use as little as ABx2 per cycle.

[size=150]Paladin - retlol[/size]

Priorities: ensure mask buff is up then spam faceroll. Reapply mask buff whenever it drops, hurts a lot otherwise.
Seriously now: SoV, HoW, judge, CS, DS, Exorcism (on proc). Usually you want to apply JoW but if there's no other paladin, JoL can be good.
Cooldowns: AW, bubbles, hand spells. Use 'em. No way I'm going through all those. At low skill levels, just spam AW and let healers know if you have raidwall.
Monitor: Art of War, optionally SoV
AOE: 4+ mobs, consecrate then normal rotation. DS might move up a place but it's so weak and you'll use it 1-2 GCDs later anyway.
Comment: Paladins use a FCFS (first come, first served) rotation. So just smash your face against any button with the temerity to be available. /point /snicker

[size=150]Rogue - Mutilate[/size]

Special: Open from stealth with garrotte if you can, otherwise just mutilate + 1 pt rupture. During combat use mutilate to gen 4+ CPs before any finisher.
Priorities: ToT, (Rupture), HfB, SnD, (Expose Armor), Envenom. Rupture and EA are both DPS losses and can be replaced with Envenom if a bleed or major armor debuff (sunder) is up.
Cooldowns: Sprint, CloS, Feint as appropriate. Vanish (for Overkill) and Cold Blood on CD. Try to CB when you have 1 CP (on Mutilate) or 4 (on Envenom).
Monitor: Envenom buff, Slice And Dice, Expose Armor/sunder
AoE: FoK spam little adds. For bigger adds, slip 2xFoK into your normal rotation just after an Envenom.
Comment: Don't let Envenom buff drop, or waste ticks by refreshing early - but never have 100 energy. You can macro Cold Blood onto Envenom and lose very little dps.

[size=150]Shaman - elemental[/size]

Priorities: flame shock, lava burst, chain lightning, lightning bolt.
Cooldowns: elemental overload, heroism. Safe option is to NOT stack them.
Monitor: flame shock, clearcasting. Optionally, water shield and flametongue weapon.
AOE: Usually I cast CL to get it on CD, flameshock as I run in, drop magma and start running out, use fire nova GCD to keep running then CL is off CD again. Prio firenova then CL. Elem AOE is not easy or strong, accept it and set your meter to bosses.
Comment: Elem clearcasting includes a sweet damage buff, use it on chain lightning. If you can afford the mana, always prefer CL to LiB.

[size=150]Shaman - enhancement[/size]

Priorities: maelstrom proc (CL or LiB @ 5 stacks), stormstrike, flame shock, earth shock, lava lash. (not sure where lightning shield goes, I'd guess just above LL)
Cooldowns: feral spirits, shamanic focus. Wolves are a big piece of dps, don't save them! Focus is a survival cooldown as well as mana regen, save it if you have a serious fear of death (Pungent Blight at FGut is a great time to blow a survival CD)
Monitor: maelstrom, lightning shield, flameshock dot. Optionally, windfury (mainhand) and flametongue (offhand).
AOE: use maelstrom procs on CL, magma, firenova. Keep smacking stuff with bricks on sticks.
Comment: if you screw up and go OOM, drink a mana pot, don't sit on autoattack waiting for focus. Alchemy offers an endless mana pot, same return as a super, which personally I adore as a retlol.

[size=150]Warlock - affliction[/size]

Priorities: Life Tap buff (glyph), Shadow Embrace debuff (haunt), Corruption, CoA, UA, haunt, shadowbolt. Drain soul at 25%.
Cooldowns: none I noticed...
Monitor: DOTs, Life Tap buff (glyph), Shadow Embrace, Nightfall, Eradication. Yeah that's a lot. Optionally, spellstone and fel armor (the SP one not the PvP one)
AOE: SoC (could be wrong here). For a two mob pull, just multidot. You can have two corruptions and CoAs up at once, but only one haunt or UA.
Comment: Affliction is all about not wasting dot ticks. Get good at estimating how long things will live and switching targets early. Still, don't overlook shadowbolt, if you get lost and don't know what to do, lob one out while you get comfy again.

[size=150]Warrior - arms[/size]

Priorities: Rend, MS, Exec, Overpower, Slam. HS or cleave if rage > 50.
Cooldowns: Bladestorm, not good for single target. Sweeping strikes, same. Recklessness - use it! Get a stancedance macro if you like.
Monitor: Rend debuff, MS, execute, overpower. Might be useful to be able to see if HS/cleave are lit.
AOE: Limited. Wait for aggro before bladestorm. Pop sweeping strikes AFTER BS, using it before is a big loss of sustained dps.
Comment: Battle stance. Use bloodrage nearly on cooldown, <20 rage works for me. Use berserker rage frequently, especially if there's incoming aoe. Arms is not an easy spec to play and it falls behind at higher gear levels, the only real reason to play it is to provide the Trauma/Blood frenzy debuffs which may help provide more raid dps than you lose by going arms.

[size=150]Warrior - fury[/size]

Priorities: Whirlwind, BT, Execute, Bloodsurge proc (Slam!). HS or cleave if rage > 50.
Cooldowns: deathwish, recklessness. DW is a lot less dangerous than it used to be.
Monitor: Slam! Might be useful to be able to see if HS/cleave are lit.
AOE: standard rotation
Comment: *so* much easier than arms! And aoe is built in you don't have to muck with BS/SS. You might hear using rend is a dps boost... don't bother unless you're seriously pro.

[size=150]-- Request for help --[/size]

I'm missing combat, destro, fire, spooky, marksman and blood DK. The rest are currently uncompetitive afaik, so while I may include them sometime, they're not a prio.