June 12, 2009

On Programming

Here's some quotes, mostly pulled from here.

The difference between a Designer and Developer, when it comes to design skills, is the difference between shooting a bullet and throwing it.

— Scott Hanselman

Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.

— Brian Kernighan

On two occasions I have been asked, 'Pray, Mr. Babbage, if you put into the machine wrong figures, will the right answers come out?' I am not able rightly to apprehend the kind of confusion of ideas that could provoke such a question.

— Charles Babbage

Beware of bugs in the above code; I have only proved it correct, not tried it.

— Donald Knuth

Any problem in computer science can be solved with another layer of indirection. But that usually will create another problem.

— David Wheeler

Read More......

May 7, 2009

Simon .NET

So I got it into my head today that I'm going to build my own Simon game.

It should be relatively simple, to start with anyways. I'll start with 3 basic pieces, 1-2 of which are most likely going to be re-used.

  • A Simon Generator/Validator: really simple. Pass it the round number and it generates an random sequence of that many buttons. Pass in the sequence it sent out, plus the sequence the player it, and it verifies that the sequence matches.
  • A game logic piece: this will control starting/ending the game, flashing the lights/making sounds at the start of the sequence, validating the user's input in-place and using the validator piece whenever it thinks the user's turn has ended.
  • A GUI. 4 colored buttons that can flash and accept user clicks, plus a start game button and difficulty selector. Possibly also a game-mode selector, if I choose to to implement more that just the most basic game mode.
Here's the slightly insane part: I want to take this basic stuff and expanded it into a fully-logged, fully-networkable game. Play against your friends or play in ladder tournaments. That's the really crazy part.

Anyways, I plan on attempting to do this with TDD, or at least building some unit tests along the way. Wish me luck!

Read More......

April 9, 2009

Programmer Rage

Long time, no post. I'm currently prompted by a comment I saw today - I'd rather not say where - regarding a change-over from a deprecated method to a new one offering greater functionality. I'd mentioned that I'd noticed the change due to the "squiggly" lines - the lines that Visual Studio uses in its text editor to indicate that there's an error or informative message about the code so underlined.

The response? "We don't code by the 'squiggly lines' down here."

You know what? Neither do I, but I listen to what they say. In case of errors, especially - unless I'm expecting the lines and am immediately doing what will correct them. If it says, "Hey, this method is deprecated, go use this other one," I check to see if the new method will work for my purposes (i.e. it replicates or replaces all of the exact functionality of what the method I was using) and if it does I change the code. If it doesn't my reaction depends on where the reference comes from: if I know the developer, I may ask them directly what they plan to do about what I was using the method for; if I don't, or the developer in question is a team at Microsoft, then I may have to resign myself to finding another alternative.

In fact, I might pay too much attention to squiggles, but I only say that because it seriously bugs when I see the lines. It's the perfectionist in me going, "It doesn't think my code's correct - why?"

Anyway, I needed to vent.

Read More......

September 2, 2008

"Future Says Run", by Tonic

Holding lightly
Words that make you aware
Your head's spinning
No one knows you're not there
Blankly staring
Strangers call you a friend
The power you hold
Is a power that mends

You can't go on
No you can't even talk
Your future says run
But you can't even walk

So you harbor
Standing idly by
Indiscretions, slowly turn into lies
You're half empty
They don't know how it feels
The power inside
Is a power that heals

But You can't go on
No you can't even talk
Your future says run
But you can't even walk

Read More......

August 25, 2008

"The Future Soon" by Jonathan Coulton

Last week I left a note on Laura's desk
It said I love you signed anonymous friend
Turns out she's smarter than I thought she was
She knows I wrote it, now the whole class does too

And I'm alone during couple skate
When she skates by with some guy on her arm
But I know that I'll forget the look of pity in her face
When I'm living in my solar dome on a platform in space

Cause it's gonna be the future soon
And I won't always be this way
When the things that make me weak and strange get engineered away
It's gonna be the future soon
I've never seen it quite so clear
And when my heart is breaking I can close my eyes and it's already here

I'll probably be some kind of scientist
Building inventions in my space lab in space
I'll end world hunger I'll make dolphins speak
Work in the daytime, spend my nights and weekends

Perfecting my warrior robot race
Building them one laser gun at a time
I will do my best to teach them
About life and what it's worth
I just hope that I can keep them from destroying the Earth

Cause it's gonna be the future soon
And I won't always be this way
When the things that make me weak and strange get engineered away
It's gonna be the future soon
I've never seen it quite so clear
And when my heart is breaking I can close my eyes and it's already

Here on Earth they'll wonder
As I piece by piece replace myself
And the steel and circuits will make me whole
But I'll still feel so alone
Until Laura calls me home

I'll see her standing by the monorail
She'll look the same except for bionic eyes
She lost the real ones in the robot wars
I'll say "I'm sorry", she'll say, "It's not your fault...
Or is it?"
 
And she'll eye me suspiciously
Hearing the whir of the servos inside
She will scream and try to run
But there's nowhere she can hide
When a crazy cyborg wants to make you his robot bride

Well it's gonna be the future soon
And I won't always be this way
When the things that make me weak and strange get engineered away
It's gonna be the future soon
I've never seen it quite so clear
And when my heart is breaking I can close my eyes and it's already here

Read More......

August 18, 2008

More Mad Men

Read More......

August 13, 2008

Update?

Yeah, so I've been slacking. I think last week really drained me and I haven't been able to/haven't felt like updating. It's kinda crazy, really.

  • Braid is a pretty cool puzzler if you have an Xbox 360 and patience with platforming puzzles.
  • Empire Builder is a pretty cool board game, and if you're interested in a not-quite computer adaptation you can find someone's homebrew game Rails.

Read More......

August 8, 2008

Pixeljunk

Pixeljunk Eden is both frustrating and fun. It's also taking a nice chunk of my time.

Read More......

August 7, 2008

The Soul Still Burns

That's right - Soul Caliber IV came out last week.

I got my first taste of playing it last night. I can't say that it has the same problem that Soul Caliber 2 had (namely that is was practically the same game as the original Soul Caliber, just on a different system). It's still fun, at least against un-awesome opponents.

Read More......

August 6, 2008

Another Busy Week

Yeah, so if I'm not posting a lot, here's why:

  • Monday - FSDNUG
  • Tuesday - "TV Night"; We're watching Freaks and Geeks
  • Wednesday - Intern "Goodbye Gala"
  • Thursday - D&D
  • Friday - Pool Party
What's amazing to me is that I'm doing all this stuff during the week, not the weekend.

And that I still generally manage to feel like an outsider. But that's just me.

Read More......

August 5, 2008

Sharepoint?

I can't find a reference to the earlier versions in the usual source (wikipedia), but I can tell you this: earlier versions of Microsoft Sharepoint were not well received by the community. Apparently the latest version is more friendly (but still not as friendly as it could be) and is a lot more than what I remember Sharepoint being advertised as (a long time ago, admittedly).

Last night was the monthly FSDNUG meeting. We started out with a brief tool presentation from David Mohundro about Lutz Roeder's Reflector. It's a great tool for analyzing the libraries you're using or figuring out how the IL the .NET compiler generates looks like when disassembled and uncompiled. I was talking to David after the meeting, and he mentioned a feature that sounded useful, if a little out of the way: you can bind Reflector such that special hyperlinks can open it to specific assemblies. That would be handy for sharing assembly locations.

The main presentation was from Steve Walker (he hasn't posted in a while), of Microsoft Consulting Services, about Microsoft Sharepoint. I'll admit I was a little biased coming in, remembering what was probably the first version of the servers being marketed around my Dad's office, thinking, "How could this be useful to us?" Sharepoint, though, looks like a great resource for enterprise situations that can really use a combination web-development framework and deployment solution. The biggest problem I can see with using it is that if you don't deploy your applications the "right way", the incredible scalability possible, where you can just bring a new Sharepoint server online and make it add itself into your farm of Sharepoint servers, disappears.

Mostly, though, I see it as a way to handle deployment of web applications across server farms in an easily repeatable way (QA and operational departments should love this). It also provides a framework to work within as well, especially through the use of what's called Delegate Controls. These are basically controls that you can setup that say, "Hold a place me, I'm going to put something else here - maybe more than one - but I also want some functionality in case I don't replace you." The most visible of these on Sharepoint sites is usually the search box in the upper right. There's a default version and appearance of the control, but if you want to roll your own you can set up your search box in the place of the delegate control.

But I'm not really qualified to talk about it. Best to give you a link, in this case one that Steve pointed us too after the meeting: FanU. I won't get any use out of it, but that whole site is setup using Sharepoint.

Read More......

August 4, 2008

Keep on the Shadowfell, Part 4

When last we left our party, they had just vanquished the powerful goblin Irontooth. After rummaging through his belongings and the treasure there in the cave, those who were present decided to return to Winterhaven. Once again, the party arrived just before the gates were closed at nightfall.

The next day, reunited with Digron (who'd spent the previous day with Sister Linora, alternately aiding the townsfolk and debating the finer points of Avandra vs. Pelor), they sought and were granted an audience with Lord Padraig. Shocked to hear the news from the note but otherwise glad to be rid of the immediate menace, Padraig bid them keep this new information to themselves. On the way out, the party took their meager reward from the village's coffers.

Then, our heroes found ourselves wondering where to go next. Remembering their unfinished business regarding the mirror with Valthrun, they decided to pay the sage a visit. They found him still fumbling through his many books, but with progress to report – during the reign of the Nerath empire, a keep had been built to seal in a rift to a particularly nasty part of the Shadowfell, an area ruled over by Orcus, demon lord of the undead. After correlating this information with the note they found on Irontooth, the party suspected that this is the site of Kalarel's nefarious work. Valthrun also told them of the last lord of the keep, Sir Keegan, who (under the rift's influence, perhaps) had systematically slaughtered every inhabitant including his own wife and children.

They decided to go search the keep soon, but not so soon that they couldn't get in a little bit of shopping. In the hopes of finding a way to stop the rift from being open Raistlin decided to stay with Valthrun – he might make an important discovery, but either way he can study some of the old man's rituals.

The shop of the boisterous Bairwin Wildarson was the party's destination, as they remembered that during their first night the man had mentioned selling healing potions. Though dubious as to their veracity (the supposed ex-adventurer claimed to not know where exactly he got them), the party purchased 4 of them and decided to make the best of whatever they turned out to be.

The journey to the keep itself was uneventful. Well, what was left of the keep anyways, as everything above ground had been ravaged by the storms of time and, quite possibly, the efforts of thieves and borrowers. The party did find a way into the keep's underground area, however. Whether through the grace of Pelor or keen eyesight, Digron proved that wisdom can be just as good as intelligence sometimes when he saw and told the party of the pit trap directly in front of them.

Through similarly blessed efforts, the party made particularly quick work of the goblins who were on guard at this entrance. Cassandra, in particular, made quick work of one of her opposite number with an arrow splitting the wretched thing's head down the middle as she dashed around the pillars trying to stay undercover. One of the snipers managed to escape down the hallway though and the party followed.

They found nothing but a trio of locked doors. To the West, nothing but a storeroom – to the shame of the brute force required to open the door. Taking the door to the North however, the party hit the jackpot as who should stand before them but the injured sniper. He was no longer alone, however, and the room they just entered appeared to be a torture chamber of sorts.

Balasar charged into the room letting loose his lightning breath, killing the already wounded sniper, leapt over a table and pushed the torturer into his own fire pit. Not one to be daunted by this, the torturer struck back with hot pokers from that very same pit, lighting Balasar on fire. For a brief period, the goblin did something with his armor that appeared to make himself impervious. Digron and Levcis pursued several other goblins around the room, while Cassandra and Sil shot arrow and bolt after the fleeing figures. Despite the fact that it essentially trapped them, several of the goblins took to hiding under the tables and launching attacks from that advantageous position.

In the corner of the room, one lone sniper succeeded in trapping Balasar, inciting his Dragonborn Fury, despite its futility. Not able to free himself, the fighter allowed the others to clean up the rabble while shooting the occasional pellet from his sling to aid them.

Having cleared the room and beginning to take stock of what was around them, the party heard a voice down the short hallway to the west. It turned out to be Splug, a goblin who had been locked up by his fellows – he liked to cheat at cards – after much begging, the party decided to allow him to accompany them. He may lie, but he wasn't lying about his offer of aid as he desperately wanted his freedom.

Read More......

What?!?!

So, I finished my first playthrough of Mass Effect. You'll probably see a review series here in the next day or two.

In other news, still sitting about half-way through Watchmen (probably try to finish it tonight). I really should, I'm waiting on reading the next Ultimate X-Men trade (vol. 18, Apocalypse) until I finish it.

Read More......

August 3, 2008

Massively Effective

Haven't finished it yet (and will probably play through a few more times), but it's pretty good so far (I've finished the first 3 planets you're sent to, to say without spoiling).

I feel really lucky: I got the Asari and Quarian Ally Achievements this go round. Rock! The asari one should be nice for my upcoming Adept + Assault Rifle, plus all the XP bonuses I'm getting from this first run-through should make it faster.

Soldier = Very Easy, even on easy (I suck at FPS's) - incredibly survivable and very potent with weapons. I'm impressed by how much damage you can put out with a sniper rifle. Not high DPS, but if it has to die in one shot, that's the way to go. The one thing that really sucks: Shredder/Tungsten ammo doesn't come in varieties higher than VII.

Read More......

Investigative Techniques

Detritus was particularly good when it came to asking questions. He had three basic ones. They were the direct ("Did you do it?"), the persistent ("Are you sure it wasn't you that done it?") and the subtle ("It was you what done it, wasn't it?"). Although they were not the most cunning questions ever devised, Detritus's talent was to go on patiently asking them for hours on end, until he got the right answer, which was generally something like: "Yes! Yes! I did it! I did it! Now please tell me what it was I did!"

-- Feet of Clay, Terry Pratchett

Read More......

August 2, 2008

Watchmen Structure

Ok, so I haven't finished it - I think I'm about 1/3 of the way through. But I want to talk about it anyways.

For those who don't know Watchmen was a 12 issues "maxi-series" originally published by DC between 1986 and 1987. It's set in a parallel earth of sorts where costumed adventurers ("masks") caught on back in the late 1930s and had a heyday between 1940 and 1977 when they were outlawed. With the exception of one character, none of the masks have powers - the exception is Doctor Manhattan, who can control matter at the molecular level, which provides him with some other capabilities as well.

What's most amazing to me is the structure. First, the comic interleaves multiple situations, such that it can be hard to follow. The often panel-by-panel alternation usually serves to let the two portions of the story serve as counter point to each other. Second, each issue ends with a "primary source document" from the world of Watchmen. These are thinks like book excerpts and newspaper articles that provide you with a timeline for things that may only be hinted at in the comic itself. Really fleshes out the world.

Read More......

Random Things

  • I've started reading Watchmen, in anticipation of the movie next spring.
  • "Bring Down the Sky" is now available for Mass Effect on the PC.
  • I think I'm going to try playing through Bioshock. I've had it for a while, but I'm not great at FPS and it's a pretty spooky game. I'll probably cheat, as I just want to see the whole story for myself - and blow some splicers and Big Daddies away without worrying too much about dying (yes, I know by default you can't really die anyway, what with the Vita-Chambers and all).

Read More......

August 1, 2008

Dogs in the Vineyard, Three

There's two more pieces of advice in Dogs that I find helpful, to varying degrees if you're playing something other than Dogs.

The first is to drive play towards conflict. This is especially important in Dogs, but it holds for other games too. If the PCs don't struggle to reach their goals or get their beliefs called into question, they gain little from the experience. This doesn't mean you (the GM) have to be adversarial: the PCs can create conflict for each other.

The second is to "escalate, escalate, escalate". In Dogs, this has two meanings: to escalate conflicts in an attempt to determine how far your PCs are willing to go and to escalate the source of the conflict to figure out how strong the PCs convictions are. The first is whether they're willing to fight (or pull a gun, especially pull a gun - guns are the only way to die in Dogs without a chance of medical intervention). The second is only useful once your players have grown into their characters and you know what they feel strongly about (say, "love is always righteous," to use an example from Dogs). Then you can change to the cause but keep the result something that could be covered by their conviction ("really? how about this sin/sinner?") but that is/seems far worse.

Read More......

July 31, 2008

Dogs in the Vineyard, Two

I finished reading through Dogs last night. It's nice and short - only 140 some-odd pages.

It's also the source (but not the origin) of the oft repeated, "Say yes or roll the dice." It may not work in all kinds of games, but the idea is important: unless something interesting is going to happen along the way, the players succeed at what they want to do. If they want to go somewhere, and the trip is uneventful, they get where they were going. If they're searching for something, and not finding it doesn't present an interesting option, they find it.

Some of this is facilitated by the style of game that Dogs presents, though. The game isn't about the story or the search or the fights - it's about how the Dogs decide to resolve the town's issues and what that reveals about their characters. People are going to come to the Dogs with their issues in the town, because they know the Dogs are supposed to do something about it. Whether that turns out the way the NPC wants it to is whole separate matter.

Read More......

July 30, 2008

Jetpacks?

Looks like we'll have to worry about the skies now. Practical Jetpacks, coming to a town near you.

Read More......