Thursday, March 27, 2008

Would you follow me on twitter?

The past month I've started asking myself if anyone would follow me on twitter, and who would I follow on twitter. Not surprisingly I began asking, why anyone would ever use twitter.

I know of a few people that use twitter, and I hear about it a lot in the podcasts that I listen to
however, I don't understand the true purpose of it.

Twitter's site asks, "What are you doing?" So from that I take it to mean that the purpose is to tell the world constantly what I'm doing.

Since the majority of my daily activities are boring enough that I wouldn't want to make someone follow me around, I don't think that most things are worth mentioning. Heck, my job is sitting at a computer. From the outside looking in, I'm pretty boring. I even find it hard sometimes when my kids ask what I did today, and my answer is, "I read 200 pages of documentation trying to find how to do something that we haven't done before". Or, "I made a change to the program that I'm working on to allow someone to edit the phone number in the middle without the cursor being reset to the end after every keystroke". To which they seem to always look at me dumbfounded. So instead I try to say things like, "I made some else's job easier today".

Even my home activities are not the most exciting. Things like "Doing dishes", "Eating a great dinner my wife cooked", "Playing catch with the kids". These aren't things that I do that would be interesting to people.

I've heard of, and seen some people use twitter solely as a marketing tool for their blog. I guess this is possible, but most likely, if I'm going to care enough to follow someone on twitter, I'm also following their blog in an RSS Reader, so I don't want them to post that they have a new blog to read, and I don't want to do that myself.

I have seen a great use for something like twitter within a company or team, in order to keep everyone informed on the current status of what each member in the group is doing. However these statuses are not useful to the world at large, and are possibly proprietary enough in nature that they need to be housed completely in house at the company.

Since I began my twittering experiment a few days ago, I now have a good reason for the service. There are some people out there that I admire. I am amazed at the way they think, and the things they think about. These are people that I look up to and aspire to be more like. It's possible that through twitter I can get a little more of a glimpse into the things that these people do. Maybe the reason they think a certain way is influenced by things that they read, and something like that could be shared on twitter. That extra glimpse into what helps to open their mind to creativity, could provide me a way to become more open to creativity too.

So why would I post anything about myself on twitter? I've already explained that I see myself as boring. But that doesn't really mean I am boring. And it doesn't mean that others see me as boring. Maybe instead, by my posting on twitter, someone will be inspired or influenced by something that I do or say. The only way to know for sure is to keep tweeting and see how it goes.

That begs the question, would you follow me on twitter?

Thursday, March 13, 2008

Using Ultra Edit for Ruby

Configure Ultra Edit for Ruby Syntax highlighting.
First open Ultra Edit. Open the View Menu. Open the View As (Highlighting File Type) and see what the next empty language number is.

Then Open C:\Program Files\IDM Computer Solutions\UltraEdit-32\wordfile.txt.

Move to the bottom of this file and paste the following code. Change the L12 to L## to the next Language number in your Ultra Edit menu.



/L12"Ruby" Line Comment Num = 2# Block Comment On = =begin Block Comment Off = =end Escape Char = \ File Extensions = RB RBW
/Indent Strings = "do" "begin" "{" "|"
/Unident Strings = "}" "end"
/Delimiters = []{}()<>="'.,+
/C1"Keywords"
__FILE__ __LINE__
BEGIN
END
alias and
begin break
case class
def defined? do
else elsif end ensure
false for
if in
module
next nil not
or
redo rescue retry return
self super
then true
undef unless until
when while
yield
/C2"Object, Module, Class, Kernel"
__id__ __send__
ancestors alias_method append_features attr attr_accessor attr_reader attr_writer abort at_exit autoload
binding block_given?
class_eval class_variables clone const_defined? const_get const_set constants callcc caller catch chomp chomp! chop chop!
display dup
extend_object eval exec exit exit! eql? equal? extend
fail fork format freeze frozen?
gets global_variables gsub gsub!
hash
included_modules instance_methods include iterator? id inspect instance_eval instance_of? instance_variables is_a? inherited
kind_of?
lambda load local_variables loop
method_defined? module_eval method_added module_function method method_missing methods
name nesting new nil?
open
private protected public private_class_method private_instance_methods protected_instance_methods public_class_method public_instance_methods p print printf proc putc puts private_methods protected_methods public_methods
remove_const remove_method raise rand readline readlines require respond_to?
scan select set_trace_func singleton_method_added sleep split sprintf srand sub sub! syscall system send singleton_methods superclass
test throw trace_var trap taint tainted? to_a to_s type
undef_method untrace_var untaint
/C3"Instance Variable"
** @a @b @c @d @e @f @g @h @i @j @k @l @m @n @o @p @q @r @s @t @u @v @w @x @y @z
/C4"Class Variable"
** @@a @@b @@c @@d @@e @@f @@g @@h @@i @@j @@k @@l @@m @@n @@o @@p @@q @@r @@s @@t @@u @@v @@w @@x @@y @@z
/C5"Globals"
** $
/C6 "Symbols"
** :
/C7"Constants"
** A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
/C8"Operators"
+ +=
- -=
% %=
/ /=
** **=
& &=
| |=
^ ^=
> >> >>=
< << <<= = == ===


This configuration was originally pulled from a website about supoort. But seeing how I couldn't actually find anywhere on their website that linked to the file, I decided to just include it here. I thank them greatly for a good layout to work with Ultra Edit.

I've been wanting to learn Ruby for some time, and finally found what looks like a good beginners guide to ruby. Here's a link to The Little Book of Ruby. I've only made it through chapter 1 so far, but it looks like a good place to start.

**** Updated 10/31/2008 ****
IDM now has word files for Ultra Edit on their site. Their version of the Ruby language is possibly more complete than the one I have included. You may want to check it out at http://www.ultraedit.com/downloads/extras.html#wordfiles

Sunday, March 09, 2008

A wiki for a knowledge base.

In my continuing series on tools and processes that we looked at and used to solve problems at work, I'll discuss the knowledge base next.

Part of the problem we had, was the ability to support an application, when the primary developer of that application was on vacation, or worse, had quit. Each application had only a few who knew it, but that knowledge had continually left with them.

We wanted a knowledge base, so when problems occurred we could capture:
  • What Happened (What is the symptom)
  • What is the underlying problem, can we fix this later.
  • How do we fix it now.

Without company support for this decision, we started investigating open source solutions to the problem. We installed and tested a few knowledge base systems, but they were cumbersome to use at best. We had just installed MediaWiki. It didn't really have a purpose or design in mind, it was just there. I took the opportunity to play with it and started documenting support options on the wiki.

It was apparent pretty quickly, that the ease of editing, searching, and cross linking made this a great place for a knowledge base. While some of the knowledge base systems seemed to support a better interface for finding a related problem, grouping pages logically, and using the search feature of a wiki made more sense.

Since then, we use the wiki to document all of our knowledge base items, more and more of our applications, and we're even using it to manage some of our projects. We aren't the first either, I've read that Thoughtworks uses wikis to manage their projects.