More Noise?

Posted in development,scrum by Kris Gray on January 30th, 2007

Last week Mike Vizdos wrote an article at Implementing that had me scratching my head a little. In this article Mike was arguing that Silence is a symptom of poor communication, and that when team members have conversations over messenger, those that would gain collateral information from the conversation would be shut out from such juicy bits.

One of my colleagues once walked into a room with a new team. When he told me about it, he said something along the lines of, “It was so quiet you could hear the waterfall.”

Think about that last statement for a moment. I’ll stick around.

Welcome back. Good thought break? Hope so.

When *I* hear this statement, I realize a team is probably not working to its full potential.

While not the Uber scrum master Mike is, I don’t think he understands the psychologies of programmers to realize that ambient conversations are going to murder their performance and concentration. When I initiate a conversation with a person over IM that is in the same office, it gives them the ability to multi-task and not be thrown off their process completely.

I’d basicly equate this to trying to program with the TV on. Some of us can do it, some of us can’t, but nobody is as productive with it on, as with it off.

A lot of the rules of Scrum are really important, transparency between client and team, team and scrum master, team and team are super important, but were not the Borg. And there are only so many hits performance can take in the name of transparency before Scrum starts to become a hindrance.

Long live IM!


Javascript Singleton Part II

Posted in AJAX,development,javascript by Kris Gray on January 27th, 2007

So I wrote that Singleton post a few weeks ago, and what it really turned into is how to initialize Static Properties. Though calling it a Singleton post really makes you look kind of silly, since its a piss poor example of that.

Here is the Class Diagram from Wikipedia for the Singleton Pattern


To break that down, we have a Public Instance Function that retrieves the singleton instance, and a private constructor so the object can only create itself.

In the example I gave earlier, you can’t have a private constructor, and you can still call the public constructor again after the singleton has been defined. I was really excited to see that the new Prototype 1.5 library that was released (maybe the old one too, I’m just starting to get into it) contains some classes such as the Position class that have no public constructor, and are available without having to construct them initally.

How did they do this I wondered. A quick dig into the library shows that Prototype just uses the inline object syntax, which makes the Position class just an object instance, which of course has no constructor.

var Position = { "Methods" : function() { /* */ } }

I really like this a lot better, and I’ll probably be utilizing it a bit more in the library for our companies product. I’d love to see more libraries out there that you can include and you would get these specialized functional classes. Prototype’s Position is really helpful, what else could we want?

No comments

Programming, Diet and you.

Posted in food by Kris Gray on January 13th, 2007

So like many, I have a New Years resolution to get healthier this year. Being a programmer who sits on his butt all day and my only joy (other then my glorious job!) is a social hour with good food and great company. I can’t state enough how much fun it is to wander down to the International District during lunch to get some authentic Japanese food. But, now I have to put all that in the past, this year I’m eating to live, not living to eat. Here are my plans.

  1. Bring food into the office.
    Besides saving a butt-load of money, this allow me to continue to work uninterrupted during the middle of the day.
  2. Small Portions
    I’m looking to be able to take breaks every other hour, and eat a little something. The most important thing I can do is to avoid that one large meal at 12, and to constantly have my system processing. I don’t want long breaks either, getting my food, some water sitting down, and eating should take 10 minutes, at which point I would imagine being back to work.
  3. Nothing Complex
    The more attention I have to pay to something, the less attention I can pay to something else. Or of course, the less likely I am to do it, which is even worse. So what I’m looking for this year, is a simple solution that I can just throw together, and don’t have to plan to far in advance for. I’m definitely looking to avoid spending all night cooking, even if it is one night a week for the whole week.

So with that in mind, here is a breakdown of a typical day and the meals I expect.

  • Light breakfast
  • Lunch – Every 3 hours
    • Protein
    • 3-4 Slices of Turkey/Ham from the Deli
    • Cottage Cheese
    • Leftovers from some meal I had earlier
    • Carb
    • Fruit, Salad, or Yogurt
    • Healthy Fats
    • Walnuts
  • Constantly throughout the day
    • Water
    • Snacking on Walnuts
    • Green tea

I’m adding walnuts to my diet because it was on this list of superfoods I read. The hardest part of this, is saying no to my co-workers when they want to go out. I kinda feel bad, its not that I don’t want to, I just have terrible discipline when it comes to saying no to a menu.

On top of this, I’m going to keep doing my usually extra curricular activities after work, which include Karate, Soccer, Flag Football, Softball, and Running with my Girlfriend.

How do you deal with eating healthy while being a programmer? Got any suggestions, please share.

No comments

Script signatures

Posted in development by Kris Gray on January 8th, 2007

If you view enough of my Javascript, you’ll notice, I like to comment my code a little differently then the other developers at our company.

My main purpose of doing this is to track comments that just I make. I also want to be sure that I did or did not perform any working a certain area. Or to just make comments to myself. I’ve seen comments like, // Edited by Bill Gates 10-20-2003: I fixed a bug here, and yes those serve the same purpose, they are even more descriptive, but they how many of you do that currently? Source control will tell me when a changed occurred and who fixed it, I’m mainly worried about my own train of thought, and notes.

Here are the signatures I use.

//— Generic comments.

//# Todo comments

I don’t have a signature for /* */ style comments, and the Todo comments are for NON crucial todo tasks only. A good old / / TODO: still is king for those.

For those of you with no Imagination, here are some for you guys to pick from.

//> Whats this supposed to do?

//\\ My little house here says, this code rules!

//oo I just infinitely commented my code!

//=D Smile! This code just took a picture of you!

If you adopt a comment signature, post!, share!

No comments

Javascript Singleton using static properties

Posted in development,javascript by Kris Gray on January 8th, 2007

I’m pretty sure I don’t need to go over the benefits of having a singleton, especially in javascript when you often want to avoid using a global variable whenever possible.

I want to apoligize for the poor formatting of the script, I don’t have the luxury of some of the awesome wordpress plugins out there.

First, lets create a generic object with some base init logic.

function BatmanObj() {
this.mInit = fnInit;
function fnInit() {}

So here we have our Batman object, and we want to always know that we can get the BatMobileObj, and who knows, batman may need access to his BatMobile too.

To do this, we Reference the Objects name, then our property or methods signature.

// Makes Current a reference to an instance of
//the BatmanObj  
BatmanObj.Current = new BatmanObj();  
// Makes mTurnOnSpotlight a static Method.  
BatmanObj.mTurnOnSpotlight = function() {  
return BatmanObj.Current;  

One of the conditions we need to start defining Static Methods and Properties is an instance of an object, so we can’t do it in the container of the object, or outside the definition but its perfectly fine to do in our handy fnInit function.

function BatMobileObj() { }  

function BatmanObj() {  
// Bad, Error, Crash and Burn
BatmanObj.xBatMobile = new BatMobileObj(); 
this.mInit = fnInit;  

function fnInit() {  
// Yay, Success!! 
BatmanObj.xBatMobile = new BatMobileObj();  

BatmanObj.Current = this;

The Singleton is only valid once the object is instantiated, but, is good beyond that.


Next Page »