Thursday, April 30, 2009

A reflection on security

As a technically-minded person, I'd like to think I have a pretty good grasp on Internet security. Well I got rocked today and I didn't realize it until the moment after I hit enter and gave away some information.

I needed to find a good way to generate thumbnails on a series of images for a work assignment. I wanted it to be scriptable so I could jam in a few commands and let my computer do the work. Well I found a good solution on this blog post.

If you go there, you might notice a small pop up stating a Twitter API needs a password. To me, this made sense. I have a few applications to feed the Twitter addiction, and I didn't think twice before dropping my password to make my Twitter plug-ins work again.

This is social engineering at its finest. However, when I think of social engineering, I think of people who are too "stupid" (for lack of a better term) to realize people are playing against that ignorance. I suppose I allowed my arrogance to shove me into complacency.

It was a good reminder to realize the Internet isn't necessarily safe and my confidence in my technical ability was perfect bait.

Now I don't know whether this guy did this intentionally or not. He has some pretty solid information on there that helped me a lot. It could be a third party hijacked his site. Either way, I had to change my password and all other passwords similar to it.

A sobering reminder.

Thursday, April 23, 2009

On the homestretch

I don't really have anything specific to jot down lately. Perhaps that's why I've avoided posting lately, but I think now might be a good time to dump some filler in here. I'm currently waiting for my computer to update to Ubuntu 9.04, dubbed "Jaunty Jackelope." I'll record my impressions after this is all done with and I've had a chance to evaluate. My end-goal is to reclaim the entirety of my hard drive from a defunct Vista install.

The back-story on that one was I had a dual-booting solution going for a while (you might read my earlier posts to find out more about that adventure). Unfortunately, my Vista set up went down a long time ago after I tried to install SP1. Even more unfortunately, I didn't have the time to stop and fix it because it was during the busier part of first semester. So I've been running entirely on 15 GBs worth of Ubuntu. So yeah, I need to fix this. Anyway, moving on...

Run for the Homeless


This went really well! On Sunday, April 19th, we had just over 200 runners and walkers come out and show their support for People's City Mission and the struggle against homelessness. I was so relieved to see such a good turnout, and it reminded me how wonderful it is to work with people who have their stuff together. Behind the scenes, I think we overcame quite a bit to make this come off. For a first effort, the planning, logistics, recruiting, and turnout came together beautifully.


Right now, things are looking like they'll be doing this event again next year. Sadly, I won't be around to see it. Hopefully my interactions with other kids have inspired them to commit to helping out this time next year. It would be even more wonderful if some people were inspired to help beyond just an afternoon's worth of running.


I had a thought along these lines the other day. I was thinking about our fund raising goals and how much revenue we actually did generate. I thought about the turnout and how I would have liked it to be better. And then I thought about this:

From among the approximately 250 or so people that came out that day, some had a better awareness about the condition of homelessness in Lincoln. From that subset, perhaps some of them began to see how they could contribute and do something about it. Even fewer still may feel accountable to that knowledge and would become passionate about serving their community. If even 5 people came out of this event and committed to volunteering on a regular basis, I would be thrilled and would see it as a victory worth more than any revenue we could generate.


I'll see if I can get some pictures up on this site, but I will be working on putting them up on the Mission's site for sure. Feel free to check them out when they're up.

PCM Change Manager


I've mentioned once or twice that I've been working on a web application that would help the people here at the Mission organize the changes made to the web site. I'm realizing it is more of a specialized project management system where the project is hard coded to be web site maintenance. Hopefully, the differentiating value can be in the in-application file editor that I hope to hook up to the publishing process. I have an idea of how I can make that work, but I need to get the interface done first.


That has been something I've found frustrating about Grails so far. I love the MVC methodology, and I really enjoyed setting things up in Grails. I've been asking myself lately if building from the domain up is the right way to go. I'm realizing now that in doing so, I haven't really made many design considerations regarding the interface or flow through the site. This is a stark contrast to the design pattern we used in our HCI class. In this methodology, we designed from the interface down. We used personas, user tests, and even paper mock-ups and prototypes to get an understanding of how the user would use the application and designed from there. Perhaps, next time I will look for some kind of happy medium between the two.


I don't think the "PCM Change Manager" (I'll worry about catchy names later) is too far off from being done. I just need to figure out my hardware setup now and figure out how I can deploy it before I take off!

"Graduamation!"


So I'm about to 'graduamate'--or graduate, as it's more commonly known--and I'm pretty excited. I picked up my cap and gown yesterday and coughed up some money to become a proud member of the Huskers Alumni Association. I even got a pin! Word.


In all seriousness though, I'm pretty excited for this to happen. I've loved school and the opportunity to expand my mind, but I'm even more excited to get out and do some work! I think the idea of capitalizing on all the potential my professors and other people involved in my college career have tried to grow in me is thrilling. Beyond that, I'm excited to not have homework and actually enjoy my free time. In these last few weeks, any free time I've had has been sapped of it's benefits because I keep thinking about all the work I'm not doing. It is growing tiresome. Even sleep is becoming a mess. Last night I woke up at 2:30 am thinking I had to go to work. I wake up with my heart racing sometimes ready to start working on things. On a weird note, I haven't been woken up by my alarm in weeks. I seem to always wake up before it and wonder if the clock on my phone is wrong.


So yeah. I'm excited to get out of here. :)

On a happer note, I'll be looking for an apartment in Seattle soon, and then I can get a kitchen together and start making my own food! Selleck Cafeteria, you've been wonderful (read, "free"), but I can only stand the lack of variety for so long. It's time to move on.


I think that's all I'll put for now. I've been running across a lot of project and task management applications on the Internet lately, and I think I'd like to draw some comparisons among them. I think this is a really cool area for software, and I've found a few promising players. Maybe when I find some time...


Cheers!


By the way, the coffee I'm drinking right now is just wonderful. I have no idea what it is, but it just warms my soul because of how good it tastes. Thank God human beings are wired to take pleasure in such simple things.

Tuesday, April 14, 2009

Expanding Evals Idea

In this post, I sketched out an idea for a new evaluation system focusing on brevity, frequent use, and graphic representation of information. I got a couple comments about it, and both focused on enforcement.


So how do you build policy and enforcement into software? Well, that can easily be done with checks before user actions to ensure the desired outcome has been achieved. To be honest, I don't like that. One of the top goals for my idea is that users should love--or at least not really hate--using the software. Building enforcement rules into the software doesn't align with that goal.


However, in order to be effective, students actually have to use the software to get effective evaluations. As put to me by Nate, if students don't have to do anything, they won't do it. That makes sense. So how do you ensure students use software that doesn't force them to? What makes us use the current evaluations system.


To answer that, I will stick with an idea that I've always carried with me for a while: be cautious when trying to make software do something a human should do. I love software because it helps us be more effective. It enables efficiencies and helps us do things better than we ever thought possible. It can even open doors in some situation. However, as a society, we shouldn't let software cripple us in areas where we should be competent with or without software.


Thus, software shouldn't always replace good policy, human management, and work ethic. In this software, I could easily hide a submit or exit button until the user fills in all the required information. I could write code that nags the user until he or she completes each evaluation. Yet, that is terribly annoying. It detracts from the user experience I want to create. It also eliminates the ability to work in increments--ie, work a bit, save it, and return to it later.


The current evaluation software doesn't have any enforcement rules, yet they get done. That is because there are policies or business rules to ensure things get done. In our context, the policy is "do your evals or something really bad is going to happen to your grade--even though we're going to be mysterious and not tell you what." In this software, the same thing will hold true.


Software should supplement, not replace, business rules. It can supplement management by providing reminders, work flow tools, collaboration and communication features, and a list of other things. But the human side of things can't be replaced by a machine.


Students won't do anything they don't have to, but a piece of software shouldn't force them to do it. If there is going to be a "bad guy" in the situation, it should be in the management and not in the tool. Enforcement will lie in management--or the faculty in this case--and it will not go into my proposed solution. In my opinion, I don't think that's where it belongs.


That being said, I do see some value in creating reminders or feedback to give the student the hint that certain tasks should be completed. I could see having some notification pop up when a user is exiting to inform them that active tasks have not been completed. It might even send an e-mail alert to inform a student that their required evaluations have not been submitted and they have x number of days to complete them.


Edit: This is a late addition I thought I should add
Another thing I see is letting the software make use of data to enable managers to enforce participation. Each point submission and comment will be associated with the user that submitted it. While it probably shouldn't be shown on the interface, the system can record that "User xyz submitted the following evaluation on mm/dd/yyyy". A PM can just look up all comments made by a user and see that there were submissions for all the appropriate categories. Good reporting tools will be essential to making this work.


I think this is kind of a fun idea. I've spent some time looking at the Google Charts API and I think that could be an awesome way to present some information. I haven't put any other design considerations into it, but it might be a fun project to work on.


Any comments, feedbacks, or angry rebuttals? Please leave a comment if you have one. If you think this would be a good project to start, let me know and I'll see if I can set one up. Drew forced me to set up a GitHub account yesterday to share my Change Management software with him, so I'll spend some more time learning about Git.


Thanks for reading! Cheers.

What's a Heartsong for anyway?

Oh man, this has been one of those mornings where I would have loved to stay in bed and it's only 9:00 am.


I know I run a pretty busy life. I like to take on more than I should be able to chew. I like being in charge of things and making sure they come off ok. But occasionally it catches up to me and I crash. Like this morning.


Last night I spent most of my evening working on a group paper and preparing a presentation for another class that I will be presenting later today. The way this group operates kind of pushes me out of my comfort zone. I'm used to synchronous work in the same location. I'm used identifying tasks, doling them out, and seeing everybody get them done. Last night was so different. I'm almost surprised our presentation came together. I'm still not sure how it will go. I still have to make sure our handouts get printed off. There are many variables I can only hope go well. On top of that, I still have to eFile my taxes and the only barrier is a financial one, which is stressful enough in and of itself. In fact, one of the few things I'll really let get under my skin.


So I came to work this morning about ready to destroy something--because for some reason that's the first thing I think will make me feel better. Instead, I shut my office door and fired up my laptop. First thing I notice: it refuses to connect to the office wireless. The point goes to Ubuntu! At this point, I'm about ready to blow up.


Instead of destroying everything around me, I fire up Songbird since I can't get to Last.fm. I start up "Grapevine Fires" by Death Cab for Cutie. I shut the door. I turn the volume up.


I love this song, but for some reason the sounds enveloped me and I stopped paying attention to it. For some reason, it made me think about God. This was weird. This kind of thing hadn't happened before.


I'm taking a Leadership in Organizations class with Dr. Colleen Jones right now. She makes a big deal about teaching spirit and soul in work and in leadership. It was an odd concept to swallow at first, but it grew on me after a while. We had to read Leading with Soul for class. It's odd because I had to read it when I was a freshman and I thought it was the most expensive piece of fire-starting material I had ever seen. Reading it again as a senior, I saw so much more value in it.


The book illustrates the idea that the soul and spirit are real entities within an individual. It is interesting that the authors make a case for the soul and spirit without using religious words. This isn't a biblical concept to them. This is something we all can relate to. The spirit is the intangible way we relate to people. It is the ethereal way in which we connect and relate to the world around us. It's what we connect to when we inspire and share experiences with each other. The soul is what feeds and drives the spirit. A strong and well-attuned spirit can connect with the spirit and influence it. It works in harmony with it.


Well, I am a 'religious' person. I do see spirit and soul in a biblical sense. And this morning, mine were battered. I have taken on a huge load and I've made a considerable effort to manage it myself. This morning, I snapped into prayer without even thinking about it.


The book speaks of a 'heartsong' or prayer. It is the way in which we connect with our souls. It is how we reflect inwardly and meditate on who we are, what our significance is, and what it means to just exist. For me, it is my way of attuning my soul to my God.


Amidst the stress, the exhaustion, and the sonic ambiance as supplied by the oh-so-wonderful Death Cab for Cutie, I turned to prayer. I reevaluated the position of my soul and spirit before my God. I reevaluated the nature of my work and became that much more thankful that I even had the opportunity to be a good steward of my talents and the needs around me. Most importantly, I remembered I'm not in this alone. I don't have to manage all my personal stress by myself. My strength lies not in myself but in my Lord. My faith means more than my one-time salvation, but in my present-active salvation from life itself.


I don't know what it was, but I just snapped this morning--and it was in a good way. It reminded me the importance of finding ways to stop, reflect, realign, and be at peace with the world. I don't expect life to get any easier, and being able to leverage my 'heartsong' will be so important as I grow.


I think the book tries to emphasize that everybody has a heartsong. Prayer doesn't have to be a thing of faith. It is a thing of self-evaluation, internal dialogue, contemplation, and a conversation with the essence that makes you 'you'. This sounds incredibly corny, I know, but the idea is that we should be attuned to the intangibles of our lives. We should be able to balance our ethereal essence with the hard reality of the world around us. I think it's kind of a cool idea.


A lot of my posts have been technically related lately. I haven't really taken a religious leaning in my writing lately. This morning was just an interesting experience for me and I thought I'd share.

Sunday, April 12, 2009

My Crack at Evals

I don't mean to try to ride on Nick and Nate's thunder with their series on evals, but I actually came up with an idea earlier I thought I'd share. To get any new reader up to speed, we do team evaluations for our Design Studio projects in Raikes School. Many of us have been analyzing the way we do things in Design Studio to see how we can make them better. One specific area is in our evaluation system. If none of those things made sense to you, you may not find anything useful in the rest of this post.


I was taking a walk earlier today and I was thinking about how technology has changed the way people communicate. We got the pleasure of listening to Evan Williams from Twitter speak to our program last week (recorded for your viewing pleasure). Twitter is an increasingly popular way to communicate. In my experience, it is marked by brief, succinct communication, yet users are still able to say everything they need to say. I've also noticed that most Twitter users update pretty frequently.
Readers of my blog may note that brevity isn't one of my strengths ;)


Another thing I see today is the use of visual media is also a popular way to communicate. Web designers often turn to visual representations of data to mimic conventions we are used to in real life.


So my idea focused on combining short communication, frequent updates, and visual cues to create a new evaluation system.

I tried to sketch out what I thought the interface might look like with the GIMP.

My idea for an evaluation system


In this design, the individual being evaluated is shown in the middle of the graph. I made a quick assumption that this evaluation system has identified 6 key points of success that every member of Design Studio should have. Each category is a corner on graph.


Each member on the team would be able to evaluate the individual using this tool. For each category, a user would be able to add points for each category, thereby pushing the graph out on that particular axis. This graph would quickly show where the individual's strengths are. However, an evaluation system that only focused on where an individual was doing well wouldn't be too effective. To show where an individual should improve, a user would also be able to subtract points for a given strength.


The system would aggregate the submissions for all users evaluating a given individual. This data would contribute to the overall graph for an individual. If designed well, the system could present different views with the data, but that's another story.


I gave some thought to whether a user should have a number of points to distribute for each evaluation period. Players of RPG's should find this familiar if they've ever distributed points across dimensions of a character's skills. The alternative would just allow the user to add a point, subtract a point, or do nothing to a given category. Going even further, the system could allow a user to add or subtract one or two points to allow for greater variation or more expressive decisions.


One thing I don't like about the current evaluation system is that it doesn't tie results of an evaluation to specific incidents. For example, if I did well in my 'Communications' category, I can't point to any specific behaviors or incidents to reinforce the feedback. Conversely, if I did poorly in an area, I don't know which behaviors to change. Therefore, each time a user added or subtracted a point, the system would prompt for a brief comment as to why. The system would then save the comments to each category for each user in a database or other storage system. Program managers could pull this data later for reporting purposes.


The other thing that I would want to see in this system would be shorter evaluation periods. Perhaps every week or two weeks, team members would go through this process. Hopefully, the interface is easy enough that this can be done with minimal time and effort. Another advantage of more frequent updates is that feedback is more timely, and thus more useful and relevant. Individuals would be able to see their chart as it changes and can react to the evaluations more effectively.


Perhaps a cool but not as useful feature would be the ability to take periodic snapshots of the graphs and be able to play them back. A user could see his or her graph change over time. This might be a fun way to see an individual's growth over time. This engaging interface might make user's less likely to get frustrated and tired of using the system, thus making evaluations more honest, useful, and effective.

Let me know what you think! Is this a good idea? Would you use a system like this? What glaring mistakes or disasters did I overlook with this idea?
Bear in mind this came to me as I was running through the rain from the garage to Kauffman.

Friday, April 10, 2009

Evaluations of "Evals"

Nick and Nate are spending time evaluating our current Design Studio evaluation system over the next few days. Last night's post struck a chord with me. It was pretty similar to discussions I had with Ron Jeffries and relates to things I talked about in my Human Resources class. This post is to expand my reflection's on Nick's post.

An evaluation comprised of interviews could potentially put more pressure on the evaluator. However, I think this could be a good thing. In any interview situation, being able to express ideas clearly, sense the emotional and rational state of the interviewee, and maintain an ebb and flow of control in the interview as necessary. Frankly, I can't think of a reason a PM shouldn't develop skills like these.

As far as being difficult to understand, the current system is the same way. Whether spoken or written down, team members are still offering insights to the performance of other team members and it is the job of the PM to understand, compile, and analyze the evaluations of the team members. With a notepad, a good pen, and perhaps a tape recorder, an interview style evaluation would reveal the same--if not more--information as the current system.

Furthermore, I don't see understand why it is the PM's responsibility to defend anybody. Being a rational arbiter in a conversation is an important point, and it is important to have a clear-headed evaluator in the case where emotions are running high.

Moving on, I think interview style evaluations with shorter iterations would be more effective. If evaluations should be focused on how a student can improve, there should be more than four opportunities to get any real feedback or direction. This makes potential for drastic or severe changes if a student really wants to respond to feedback. If the iteration periods were shorter, a student could focus on one or two points of improvement, adjust, and move on until the next evaluation. With what we have now, any high points or low points are moderated over time to the point where whatever is being awarded or admonished has been forgotten (yay for passive voice). One of the important points impressed upon students in psychology or organizational behavioral management is that timeliness is hugely important when rewarding or correcting behavior. Another advantage of shorter iterations is that it reduces the potential that students use evaluations as a shotgun trigger to hurt other team members. There is certainly the possibility that a student who wanted to avoid confrontation would suppress any problems or issues until evals roll around and then they could blast away as they wanted. Evals should be about improvement, not venting. Therefore, in a shortened evaluation period, time no longer becomes ammunition and the evaluations offer more value to a student who truly seeks to improve.

Interviews can reveal more information than current evaluations. How many students are actually honest or specific in the current evaluation system? Suppose an evaluation reveals you did a good job in a certain area, but can't offer any information on what specific activities or instances contributed to that evaluation. Or on the contrary, suppose a student gets a negative review, but has no idea why or for what specific reasons. In an interview, a PM is in a good position to ask questions or elicit more details to get a full picture.

One drawback of interviews with shorter periods is that it means more work for the PM. Having to arrange interviews, conduct them, compile the information from each, and present reports back to students would be a lot of work in an interview. However, I think the benefits may outweigh the work here. PM's should certainly be on board with giving their team members better opportunities to respond, grow, and improve.

Another issue is that interviews may seem difficult to quantify or provide any gradable substance. First and foremost, evaluations should be about progress, not grading. DS is in a unique position in that we have to assign grades in an environment not normally driven by academic growth. In fact, I can't think of any actual growth I've experienced from Design Studio as a class.

Therefore, it would be important to identify clear goals and objectives for a Design Studio student. In the same way that a class syllabus or an overview for a chapter in a text books describes what the student should have achieved by the end, a set of Design Studio goals and objectives for a student should be expressily outlined. It should also be something reiterated and impressed into the mind of the student. If Design Studio currently has goals like I'm talking about, then we're not stressing them because I have no idea what they are off the top of my head. In what areas am I expected to grow because of this class? What are the measurable points of success in this class? What skills should I have because of my two years in Design Studio and all the hours in team time?

The answers to these questions should be the same questions an interviewer should seek to discover in an interview. This would give the PM some structure to the interview. Facilitating a two-way discussion shouldn't be difficult as the PM asks a student how another team member is doing on a certain point of success. Really, we do that now in written form, so that isn't such a big leap.

Things like communication, leadership, diplomacy, handling tough situations, persuasiveness, and other good traits for the workplace are things we seek for now and are things we should continue. Identifying core values for a Design Studio student would be a key step. Putting more emphasis on goals would be easier in an interview since I don't think anybody pays much attention to those now.

Another issue with the current system is there close to no value of meeting with the PM after evals now. The PM usually sends the student a copy of the results of their evaluation about an hour or so (if that) before a meeting. Then the PM reads the review to you. There is no value in that. I can read. I would see more value out of my and my PM's time if we were actually discussing and poring over questions when the questions mattered to me most--ie, when things happen or shortly thereafter.

Well, those are my thoughts. Either way, I'm gone after this year, so no big deal :)

Thursday, April 9, 2009

Project Management

Recently, a friend of mine sent me an invite to try out the beta of an application called Thymer. This Web application is a minimalistic project or task management tool with a natural, fluid, and simple interface. I absolutely love it so far. I'm using it to manage personal projects and tasks, similar to what you can do with The Hit List for Mac. To be honest, I haven't seen or looked for too many tools like this.

Things I like about Thymer:

  • The Interface

    Again, I cannot stress enough how much I love using it. It's clean, simple, and very intuitive. They really take pride in their one-page design. If that sounds unique, it should because you literally do everything you need on one page.
    The other thing I like is that the interface is designed around one thing: managing tasks. The user's eyes are immediately drawn to the input bar and from there everything just makes sense. I don't remember all my fancy HCI terms, but this just reminds me of everything I learned in design class. The interface seriously makes me happy just using it. I'll shutup about this now.

  • The syntax

    The simple way to use Thymer is to just type a task in and go. However, you can start pulling in many of its features with the "@" sign. With this and a few key words, you can assign tasks to a particular project, delegate to a person on your team, set a due date, and plenty of other things.

  • Time tracking

    Being able to track time spent working on a particular task--especially if it's billable--is a cool feature to have. If used correctly, it can help an individual find out how they spend most of their day. It can also help a team manager see where the hours are going on a project. It can also be a useful estimation-training tool. I haven't investigated this feature much, so I can't really say more.

  • Other little tricks

    I only got my invite to this last night, but I've already been using it quite a bit. The ability to set up multiple projects and arrange views by projects is nice. Being able to drag tasks around to designate priority is also a good feature. It is aware of date as a context and uses color and positioning to visually show you which tasks will be on time or may run late. Those that have already passed the due date show up in red. Assigning tasks to users could be useful for a team.


For the most part, I can see this as being useful on a personal level, but it also have been thinking about how this can be used for project management in the agile methodology. There are lots of discussions going on these days on how to make various things about our Design Studio program go better. We had Ron Jeffries in class today to review what was good and what was bad about our year of agile. The time we spent talking to him yesterday was pretty awesome too, but I digress.

We've been grumbling about VersionOne pretty much all year. There were some things I liked about the application, but I think it was fairly underutilized from what I could see. Some teams really bought into it, and others only used it at a bare minimum to make sure the powers that be were pleased. I can attempt to make a few guesses at why.

  • The Interface

    VersionOne was cluttered. There was just so much going on in a given screen when all I want to do is grab stories or add tasks to my stories. With time and practice, VersionOne does become very navigable, but it pales in comparison with the ease of use in Thymer.

  • Feature Overload
    As a team, the things we were concerned with were maintaining a backlog, managing stories, adding tasks to stories, and making estimates. As far as I can tell, that was it. VersionOne had nice things like burn-down chart generation, "how far behind you are" bars, and other reporting tools. We never used many of these things. Moreover, to my knowledge, our client rarely saw any of these things. Where's the value? After a while, all these things become gold plating and one really has to take a hard look and see if you're getting the return on every feature you paid for.

  • Replace-ability

    Many software applications maintain physical metaphors and conventions to make usability more intuitive. In VersionOne's case, it was frustrating because you could kind of see where they were trying to do that, but I always felt like I could be just as productive with sticky-notes on a wall or some other simpler process. For all its glitz and glamor, VersionOne could have easily been replaced and I don't think anybody would have missed it. However, another part of the problem is that PMs and faculty can't see progress without VersionOne reports, so the teams are constrained to use a particular tool not because of its effectiveness, but because of policy. I'd take the sticky notes in a second.

  • Mapping Policy to Use

    This one may not be VersionOne's fault at all, but I can remember how messy things were at the beginning of the year. Generating stories was one thing. Jamming them into a VersionOne backlog was another. Trying to figure out how many tasks to make up or how to break things down "just so" because the faculty might be grading something made it nearly impossible to map the value of a system to requirements for class. The point is this: a tool should mold to the needs of a team, and not the other way around. Too much time was spent trying to bend in unnatural ways to play nicely with VersionOne. Something like Thyme seems flexible enough that a team could adopt it naturally into its own way of doing things.


I didn't really plan this post before starting, so I apologize if it's not well structured. What started as a post about Thyme turned into a rant about VersionOne. However, I hope somebody finds this tool useful, and I hope we can take a good look on how our use of tools in Design Studio can be a natural, pleasant aid to a team instead of an encumbrance.

I grabbed this video from their site. Take a look at it if you want:

Tuesday, April 7, 2009

Color Scheme Change

Two posts within a day's time. This is plain craziness.

I do most of my blog reading in Google Reader, which is a fantastic blog aggregating service by the way. Therefore, I don't really get to see color schemes on a blog. Well I just spent some time reviewing older posts in my blog. After a while, I realized that while I loved my old dark color scheme, it was just terrible on my eyes after a while.

I did a Google search to see what color schemes are best for reading large amounts of text and a few sources confirmed my suspicion: light text on dark backgrounds is no good. I didn't spend much time verifying the credibility of these sources, but I really only needed some light confirmation to make me switch.

I think my current theme should be a bit better. If anybody actually follows this on blogspot, leave me a suggestion if you think my scheme (not my posts!) is damaging your eyes.

Twitter Schmitter

I decided to cave in and get on Twitter.

I really resisted this idea for the longest time thinking "this is useless. I don't see why this could be important to me at all."

To be honest, I still kind of think that way. I then realized many of the times I think something is stupid or useless, it is because I don't fully understand it. More importantly, I don't realize the potential.

Well today in Design Studio class, we had a guest speaker named Ron Woerner from TD AMERITRADE. I thought he was a pretty engaging speaker and, in my opinion, the technology oriented talks seem more interesting than the Agile talks or some other topic.

He gave us the quote "Eat like a bird, poop like an elephant." I thought that was pretty awesome. Being in college has really taught me a lot about gleaning as much information from every situation or circumstance. I often feel like a vacuum hungry to learn more. Over the last year, I've been seeing the value of being less parasitic and seeking ways to turn my 'input' into 'output'. This quote is kind of interesting because it denotes the concept of taking in a lot of input and generating a lot of input.

So what about Twitter? I think it can be a new way to get more information and learn more. Along the way, I'll probably end up seeing some of the useless stuff that made me avoid Twitter before, but I think that will be ok. It can also be a way for me to put some of my thoughts and experiences down, kind of like I'm doing with this blog.

Hopefully I can avoid making "zOMG I'm so DePrEsSeD right now I JUST ATE AN APPLE" tweets. ;)

You can follow me at TheDahv.

Sunday, April 5, 2009

Resurrection of the blog

Well, I certainly let a lot of time go by on my blog, so I write now with remorse and shame. However, there's no time like the present to start back up so less whining and more writing.

The focus of this entry will be around a new project I threw together and some of the tools and methodologies going into it.

The Problem


To provide some background on what I'm doing, I should probably mention that this is a project for People's City Mission. I work there now (as in 'get paid') as a member of AmeriCorps. My title is kind of a catch-all position dubbed "Internet/Web Specialist." I'm not entirely sure what all goes into being an AmeriCorps member because I wasn't told much other than that I'd be getting paid after all that time volunteering.

Anyway, one of the great things about my role is that I pretty much have free reign to consult and help the organization make better use of its technology resources. It's a cool learning exercise because most of my training is in the academic or enterprise realm. In these domains, the technology environment is generally pretty solid and there are plenty of financial resources devoted to making it competitive. In the non-profit environment, this isn't always the case. Thus, I am challenged to think critically and find out how to do less with more.

One of my main goals there is to help them make their Web site more effective. To do so, I trained a few people on how to download a local copy of the site from the FTP server, make minor edits, and push the changes back to the server. Again, this isn't my preferred environment because there is no versioning. This created the problem of multiple people making changes to the same code base and over-writing the updates of others.

To fix this, I recommended implementing a change control system. I started by setting up a rudimentary e-mail process until I could get something better in place. Eventually, I would need a solution that would track all changes being made to the site's code base, track who was making those changes, and limit the ability to make changes to capable and trusted individuals.

The Solution


I did some investigating to see if there was an existing solution that would serve those needs. Additional criteria required that the solution would incur no costs, and that any hosting requirements would create as few snags as possible.

The first thing I found was that there weren't many hosted solutions available. Therefore, I opened up my search to open source solutions that I could run on a server located on-site. I figured I could use DynDns to make it accessible on and off-site.

I looked at a few alternatives, and Bugzilla and Trac were most ideal. Both are credible and widely-used issue-tracking solutions. However, my audience isn't necessarily tech savvy and much of the terminology and concepts used on each solution could have been a problem. I also saw that each had extra features that my problem didn't need, which could have been distracting or confusing to my audience.

Therefore, I decided to create my own. It seems like a simple enough problem, and a new coding project could be good for me. I looked into Ruby on Rails as a platform and I even started my project with it. However, I learned the MVC paradigm with Grails and I found myself thinking in those terms. My love for Grails ended up being tempting me enough to switch.

I think I'll be getting a server from People's City Mission, and I plan on putting Xubuntu on it and running the project from that. For now, I'm just prototyping on my laptop and hopefully I'll get something I can deploy to a server easily.

Other Tools


I did a lot of drawing on a marker board in my office at the Mission. I'm the type that likes to sketch things out and do some design work ahead of time so. I find this makes it a lot easier to throw concepts into code. I took some pictures of my work with my phone and decided later to get these ideas into digital form. For that, I looked online for some good diagramming tools and came up with Dia. This is kind of similar to Umbrello, but Dia doesn't force you into a UML paradigm. Instead, I could use any of its multiple sheets to visualize my ideas. This ended up being kind of fun and I was able to tease out some new features and eliminate redundancies and inefficiencies in my initial design.

Hopefully, this project turns into something useful for the people that work there. My main goal is to improve efficiency and make the process of keeping the Web site up to date and effective an activity in which everybody at the Mission could participate. Ideally, there should be enough interesting stuff coming from this project that I can write more about it instead of letting another three or four months go by before I post again.