Rejoining the workforce, if only temporarily, has reminded me of what it’s like to be productive. That’s not to say that my education is unproductive, but you do get a sense of accomplishment when you come home every night from a 9-5. You also feel some daily pains when it comes to things like team spaces, both physical and virtual. This is especially true if you’re joining an established team with idiosyncrasies to which you haven’t yet grown entirely comfortable.

I made a reference list of rules to obey when using a team Exchange server or other tool supplying a calendar service. While some of the following rules may seem like common sense to you, I challenge you to check yourself against these rules and see if you aren’t violating at least one of them. Actually, in writing these rules I picked things that I do too, but I won’t tell you which ones.

Raymond’s Rules for Team Calendars (Outlook, Google Calendar)

  1. All teammates must agree to use the calendar service as their primary method for personal appointment management and the collaborative scheduling tool. *
  2. Each member of the team is accountable for their own calendar.
  3. Calendars must be shared with openly with all teammates.
  4. All calendars must be up to date to provide for efficient meeting scheduling and accountability.
  5. All employees are in one of three states at any given time and their calendars should reflect this:
    • Free/Open – No scheduled events or appointments labeled as “Free” to show they do not require direct physical attention.
    • Busy – Unavailable or occupied during the time of this event.
    • Out of the Office – Time period when the employee is not located on campus. (Includes telework, alternate duty locations, vacation, personal days)
      In the event of an unexpected scheduling change the team member should make alterations to reflect that change as soon as feasibly possible.**
  6. Tentative appointments should be firmly changed to “Accepted” or “Declined” as soon as meeting attendance is most likely ensured. ***
  7. Exceptions are allowed in the form of incalculably, but necessary, overlapping appointments.
  8. It is reasonable to accept an event meeting and cancel in the event of an unexpected change.
  9. Do not add/save items on your calendar that do not serve a purpose in scheduling your day. Extraneous meetings and unrelated events that a team member does not effect the workday should be removed.
  10. Notes/Changes/Modifications to events made on calendars should be performed and tracked through the calendar service to preserve process continuity and centralized storage for meeting related data on changes or additions.
  11. Members who plan to actively attend meetings (i.e. offer input, act on authority, plan to ask questions) should be added by the meeting manager to the official roster and be notified of changes like other participants.

*If this a team cannot agree to dedicated use of the system then the team must agree to live in chaos.
**Enabling permissions for a second office-mate to modify a calendar would allow for support for meeting organization and last minute changes.
***All plans are tentative by nature so labeling events as “tentative” implies a further uncertainty than is experienced daily by mortal beings of this universe.

Casual Tips:

  • Any foreseeable blocks of work time in which a teammate prefers to be uninterrupted should be labeled on their calendar.
  • Further use of color coding to specify certain complex cases may be used, but it should be thoroughly enforced. For example, teleworking means an out of the office status but you are available for phone calls and will be responding to email just as you would if you were in the office, so a color code or tag may apply to this situation to help coworkers.

As with anything, you may disagree or agree, but I hope you’ll communicate with me either way. If I’ve forgotten something that you think belongs on this list, I’d love to hear it. This is only version one, and there will be other rules to come.

Try printing this off and sharing it with your teammates at your next meeting.

Posted on June 17th, 2009 | Filed under Uncategorized | No Comments »

(Please note that time speeds up and slows down in this article I started writing on the 18th of April)

As I sit in The Greene Turtle at BWI, I realize that the moderately sporty theme and full bar may give me an interesting possibility for introspection. So, with great resolve I start in on a fairly tasty, avocado burger and ponder the recent events of my life.

(Well, that was as far as I got before I was tempted with a piece of Macademia Nut Cheesecake, but that’s how writing works. At this point I’ve finished off my tasty meal and traveled a few hundred miles to find myself suspended in the air somewhere over Missouri.)

The most taxing part of my life, lately, has been the quest to get an internship for this summer. Being a grad student is apparently not difficult task enough to satisfy the gods, I also have to fill out loads of paperwork and fly to the east coast a few times.

I don’t like to complain too much, and the reality of the matter is that I’ve really benefited from the experience. Through interviewing with several different government agencies on more than one occasion I now feel a sense of immunity to the stinging barbs of the interviewing panel. It’s not that there are any shattered glass ceilings (for the 20-something, white male in America), but after your 20th interview in 6 months you start to place less and less stake in each one. I think half the battle is just realizing that you are wanted in this big ol’ world. Nearly everyone has the right to feel that way, but I think I didn’t let myself do it for a long time.

I’ve also become more comfortable in saying no to people. There are, literally, hundreds of places that are easily accessible to a person in computer science right now: everything from application development to taking a hammer to a hard drive. Personally, I’m just not the kind of guy that likes to track down criminals, plug small boxes into other boxes, or build robots. After everything I’ve been through I now can tell those employers that we just don’t have any chemistry and not fee. Once you realize that you’re wanted somewhere, it becomes a lot easier to do this. If I were to give any advice to a person nearing graduation at any level it would be to not accept offers just because you got them.

I’ve started to focus my knowledge of core computer organization and process flow into the field of information management and data visualization across systems. Most of my closer friends know what it’s like when I get a “topic-crush”, and right now its for data collection and aggregation. I’ll buy the drinks if you want to chat about this topic.[I'll probably leave your part of the tip for some older crushes like telecommuting, web development education, economics, or the possible existence of a Bizarro-Groucho Marx]

This new passion is partially enforced by my current research on network-based intrusion detection systems. Part of my groups task has been to create a testable out of band network for managing and sniffing traffic across large, distributed networks.

My biggest contribution thus far has been a redesign of the processing server and the way data is being handled in the short and long term. This sort of architecture really got me excited about my career because of the way I could see my knowledge and input change the process. I wasn’t always right in the choices I made, but the team was able to correct the misinterpretations or detect flaws in the design fairly quickly.

All-in-all, the solution we arrived at was fairly satisfactory, and I’m already seeing ways of improving our model. Additionally, I was also able to create a web-based GUI for accessing the new information and rendering a rather crude network visualization graph. It’s a non-trivial problem for two weeks time, especially since I still struggle with graph theory.

(This has been forgotten on my phone for over a month and a half, and now the author finds himself sitting on the couch. Feeling the red-afterglow of a Netflix-hosted episode of Outer Limits…I journey forth.)

This summer…well, I guess I don’t know what my goals are. I think I might stay cool on the personal technology side of life. I’m living with two good friends within minutes one of the most fascinating cities in the world. I think that the next 3 months will be devoted to seeing, smelling, and tasting as much of the East coast as possible. As friends may attest, I seem to have a lot more time for things “next month” than I do “this month”.

Posted on May 14th, 2009 | Filed under personal | No Comments »

I’ve been meaning to get into podcasts for a while now as a way to expand my sources and let me pick up more stuff while on the road.  Also, it’s a little more fun, which is one of the biggest biggest advantages I see to podcasting: the presentation of valuable information in a manner that’s a little more social and palatable than black-on-white. (Read on…)

Read the rest of this entry »

Posted on March 28th, 2009 | Filed under Uncategorized | No Comments »

Sometimes it’s good to have a moment of reflection and take stock of your position in life. I’ve heard that it is when you are at your busiest moments when you need to stop, if only for a moment, and consider all the things in your life. Well, I’m busy. Too busy, in fact, to look at all the things in my life, so I’ll just hit a few of recent technology moves that I’ve made. (Read on…)

Read the rest of this entry »

Posted on March 27th, 2009 | Filed under personal, programming, reviews, software | 2 Comments »

Whenever I desire to know the nerd quantity in a room I use a fairly simple test that I perform:

  1. Start a conversation with a nearby ‘normal’ about something interesting that isn’t solved easily (This also works if you’re mid-lecture and you’re instructing on some problem)
  2. Begin to say: “Well, that’s an interesting problem. It’s kind of like an episode of MythBuster’s where they <insert some myth here>.”
  3. Start the timer.

In any case, shortly after you complete step 3 you should notice that someone has turned around and said the following words to you “I SAW THAT EPISODE!!! THEY …..”.

At this point, two things happen. First, you roll your eyes or breathe in loudly and try to continue your conversation with the normal. Second, if you’re lucky, you’ll notice immediate exponential growth and the expansion of the conversation into a third or fourth person who say “Hey, are you talking about MYTHBUSTERS?!? I saw that episode, they….”. If you are not lucky, the first nerd will sense a lack of social protection, realize there’s no outlet for the feelings and words he needs to express and it will instinctively latch onto your skull and scream into your eardrum about dummies and explosives.

(That’s why I always start each test with a zeroth step: 0. pray silently to the goddess of probability that every room’s nerd quantity is x where x > 2)

You see, this test operates on the well known fact that most nerds are annoying. Contrary to popular culture, however,  this is not a cute, fun, innocent annoying. This is the kind of annoying that causes eye bleeding and blackouts. I know because I get them on a daily basis. If you don’t understand this problem, I’ll let you review the thousands of dollars in unnecessary medical bills resulting from annoyance-related accidents.

For all you nerds out there:

Please stop freaking out about MythBusters. I say this for the sake of my health and your image in society. I don’t think anyone truly dislikes the show, but please stop making it something that you salivate over. It’s just television…just television. Normal people don’t even react like that to the birth of a child, and, to be perfectly honest, it’s kind of freaking the rest of us out.  Especially since it happens once a week.

Posted on March 10th, 2009 | Filed under nerds, personal | No Comments »

I pose a challenge to any and all who read this blog: tell me how to disable binary logging on a 5.1 installation of the MySQL community server on a Windows XP box.

He who finds the Holy Grail and can return the magic elixir found therein to me shall be heralded as one greater than all in the land.

Posted on February 26th, 2009 | Filed under Uncategorized | No Comments »

Over the last two semesters I’ve found many-a-use for a couple Java functions to aid in reading and writing to byte-level values. I don’t have the time to create an entry in the OSS section of the website so I’m going to post them here for now. This release is under the Creative Commons license.

They consist of ByteUtil.java and BooleanUtil.java

Download Zip

Feedback welcome, updates and additions are welcome as well. Please let me know if this has helped you at all.

Posted on February 15th, 2009 | Filed under Uncategorized | No Comments »

Subtitle: Makes an A$$ Out of You and Me

I ran into an issue last night with MySQL Workbench that frustrated me. I’m working with a table of medium-low complexity (about 10 Tables and 15 foreign keys) that I’ve inherited in joining a research team.  At this point I’ve reworked the whole thing to be a little more robust, but when I did so I ran into some problems on importing the results into a table.

On some of the tables I was getting an “Can’t create table <x> (errno: 150)”, which turns out to be a foreign key(FK) creation failure. I then realized that all of the tables that were failing were referencing the same core table, but with no visible issues. The primary key on the table was a composite of two  surrogate keys [INT(10) in this case]: one from the parent table and a local one.

I immediately thought that the FK definitions might have been incompatible, and so I combed through some of them for reasons why this would happen. I looked through InnoDB reference documentation in search of limitations in the implementation. Maybe there was a limitation on the number of keys referencing a single table, or on chaining “cascade”, “set null”, “restrict” behaviors, or on the maximum length for foreign key field names. Nothing.

I was up until 2 in the morning in the office last night with this problem with no success and eyelids with exponential density growth. When I got in today I quickly realized that it was just a simple conflict between ‘unsigned’ and normal int values in the foreign keys and relating tables.

My beef: All of the table declarations were made in MySQL workbench. Relationships and everything were formed using the exact same tools for all of it, and yet some of my columns were unsigned and some were not. Additionally, there was seemingly no way to change this value in the interface. Well, it turns out there is.

How to enable zerofill, unsigned, and other flags in MySQL Workbench:

  • Go to (Menubar)->Tools->Options
  • Open the ‘Diagram’ Tab
  • Ensure “Show Table Column Flags” is checked

My biggest beef: A good programmer should never assume that a tool is doing what he wants it to do. If there’s no visible indication that numbers are being given unsigned classification, then that’s your job.  I wasted a few hours on this problem, but my jedi masters should be pleased that I’ve resolved this error in less than 24 hours. PEBKAC ftw.

Posted on February 14th, 2009 | Filed under databases, programming | 1 Comment »

I was recently visited by a friend who is also an IT professional. Some time during the visit, I casually made the recommendation that programmers should take a drafting course. I was a bit surprised to receive a contradictory opinion, but it was well received and has forced me to further justify my position in my own mind.

My case is rather simple; Read the rest of this entry »

Posted on January 12th, 2009 | Filed under programming, software, tips | No Comments »

A while back I found there was a rather gaping void of creativity in my life and I needed to fill it with some sort of right brain activity. I had been doing things like some elementary web design and page layout stuff, but it was more about numbers than nuances when you program CSS stuff. So I decided I’d take up photography.

The main driver for this was that I was no longer “supporting” a second person in my life. So at this point I could actually afford to perform a little “me spending”.  Nothing extravagant, just something to get me started and wouldn’t make me feel like a photography neophyte every time I took pictures in public. The Fujifilm S700 seemed pretty perfect for that. It was also right in my price range as a college student ( $$ < 200 ).

The camera actually wound up being fairly impressive, but a little outside my abilities at first. The round knob on the top was daunting enough with it’s 11 shooting modes. That number turned out to be 8 with the manual shooting modes out.  You can also forget about any configuration menus as those would be too far.

After a month or so of “point and shoot” stuff, I began eying up that manual mode.  I still didn’t have the knowledge, but I decided it was time to read up. I then found that there were 3 basic controls that would allow for varied shots, and I could mess with them from there.  Here’s a quick summary.

Shutter Speed - The amount of time the lens is exposed to the light. These are commonly notated as an amount of seconds ( e.g 1/120 sec[ave], 1/1000 sec[short], 4 sec[very long] ). Too little and the light will be too dim, to much and the motion will be blurred.

Aperture - The size of the window that exposes the world to your lens.  These are represented as F-stops (e.g F-3.5[large], F-13[small]).  If the size is too small, the picture will be too dark but if the size is too big then your field of focus is very small.

ISO - The sensitivity of the camera’s sensor to light.  These are usually factors of 100 (some exceptions) between 100 and the thousands (ISO 100 [normal], ISO 1600 [very sensitive]). Again, too little and you’ll not see anything, but too much means the image will be grainy.

As I said, these were unfamiliar to me so I experimented a bit. Since I normally shoot scenary I took a lesson from a quick tips guide for landscape shots. I started to shoot manually and shrink my aperture for distances. Sure enough, I could now pick up distant details that I was missing with my previous shots. I was also able to

My biggest issue now is the fact that my camera is designed to be a point and shoot camera. When I’m out shooting it takes time to switch between all three settings. ISO is the worst as it’s in a menu and requires about 4 button clicks to alter it and get back to the action. Adding in the fact that manual focus dissallows alteration of settings while you’re shooting you can see why I’m considering getting an SLR soon.

I do really enjoy my camera and I’ve taken about 6000 shots this year with it. The hardest part for me is getting through the editing and removal of these shots.  After any 20o+ photo shoot I find that it takes me about an hour to an hour and a half in Picasa3 to find redundancies, delete bad shots, GeoTag, and do some light (as in amount) editing. That’s not bad, but getting around to those 1000+ photos from my trip to Colorado is looking particularly daunting.

Posted on January 11th, 2009 | Filed under personal, photography | No Comments »