Tuesday, December 23, 2008

87Percent Defined

It's been a while since I posted. I really hate that. The longer the gaps are, the easier it is to ignore it. I think it's because I have an idea to post and it doesn't really pan out and I get stuck on it and can't seem to move past it. At least that is my current excuse.
Anyway, as it it getting towards the end of the year, I've decided, as my New Years resolution, to just start posting whatever it is that I'm thinking about (yeah, I know, I've said this before). Some posts will be long and some may be short, some may be off topic (Not sure what on-topic is...I guess programming, technology, and learning). I'm also not going to worry too much about it making absolute sense.

So with that, let me start by defining 87 Percent. Basically 87% is just a little reminder to myself to finish things that I've started. Over the years, I've set a lot of little projects/tasks for myself. Anything from creating some cool application, reading a technical book, learning something new, networking my house, etc. I've notice that I have a hard time finishing projects. I usually get very near the end and get stuck getting over that last hump. 87% is just about the point where I get into a rut. Not quite 90% where you can see the end, but close enough where you know that with a little bit of hard work, you will be on the home stretch. Not quite enough where things are working and the task/project is usable or there is some satisfaction from getting close to your goal. But also far enough along where I've already put in a lot of effort.

87 Percent. I guess it really just means Perseverance.

Tuesday, November 11, 2008

It's on my radar


I'm sure you all are aware of Stack Overflow, the question and answer collaboration site for programmers. Joel Spolsky is one of the people involved with the site. Anyway, I think the site has just hit a critical mass state because it's been appearing more and more on my programming research Google queries. I noticed it a couple of weeks ago and have had several more hits this week. Maybe it's just a coincidence or maybe its a good time to check it out again.

Has anyone else been seeing it more in their query results?

Wednesday, November 5, 2008

Pearl


By some weird coincidence, we were at Pearl last night. We had no idea that Pearl was the headquarters for the Democratic Party of Hawaii. Luckily there were some portions open to the general public and we were there early enough to actually get some seats.

It was pretty awesome. We were on the fringes of the celebration and not really part of the party...but it felt like we were. I actually had goosebumps when they announced that Obama had won.

Oh, and happy hour beers are only $3.

Monday, October 13, 2008

Tenkaizen rebuttal

I've been thinking about a post that a friend wrote last month regarding Kaizen and Tenkaizen. There was something about it that bothered me and I guess I'm one of those types of people that always thinks up a snappy comeback 10-minutes after the person you were talking to has left.
So anyway, here is my response....a month later.

I think that Kaizen (continuous improvement) and Tenkaizen (revolutionary thinking) are different aspects of a similar concept. Kaizen, to me, is a big part of how you should live your life, both personally and professionally. You should always strive to better yourself. The key with Kaizen is not necessarily the size of the improvement so much as the fact that at you are doing things to improve yourself or your abilities and that this is a constant goal. This does not mean that you just improve upon only what you already know, for me, it means making yourself better, or more efficient, or more knowledgeable by whatever means that presents itself. This improvement could and probably should involve radical new ways of doing things, which to me is the Tenkaizen concept.

So perhaps, my new mantra should be:

Live Kaizen...Think Tenkaizen

Wednesday, September 24, 2008

Atlassian Backup chore

I was tasked with backing up Confluence and Jira. Sounds easy enough. They both have an XML backup that can be run automatically. The only problem, for me at least, is that the XML backup can take up a lot of space especially if you backup the attachments. On the last server we had, we actually ran out of drive space because the backups were just piling up.
So I decided to go a different route. The Atlassian folks actually recommend not using the XML backup anyway since it will eventually take too long or take too much space or could even become unstable. According to the documentation, all I needed to do was take a dump of the database and backup the Attachments directory.
I also wanted the backups to be run on a daily basis and wanted some way to monitor the backups. We use Hudson for our daily builds, so I wanted to use that for the backups. I also wanted to use Ruby (actually JRuby) to write the scripts. I really only wanted to use Ruby because it seemed cooler than writing a batch file.

I don't want this post to be too long so let me just go over the major issues and realizations from doing this little chore.

First of all, it took me a while to figure out how to get Hudson to run stuff on a remote machine. Basically you just need to create a free style project and then have the Job execute a Windows Batch file. Of course, nothing is that easy: If you run Ruby or a Batch file from Hudson, it assumes you are executing on the Hudson server and not on the remote machine.
I ended up using PSEXEC to enable Hudson to execute the program remotely. PSEXEC is an awesome tool that I've never heard about before. It just worked. How cool is that?
Anyway, after that find, it was just working out little kinks in the system. For example, PSEXEC did not like output streams when you run it from Hudson. It would give you an ERROR Code 1. To fix this, all you do is make sure your batch file has ECHO OFF at the top. PSEXEC would also hang when run from Hudson and I ended up putting an /accepteula switch to prevent it from hanging.

Secondly, I've come to the conclusion that Ruby ain't all that. I'm sure it is good for certain things, but just doing simple file manipulation (copying and zipping files) is just a pain. I had a hard time finding examples of copying directories and zipping files. And the ones that I did find didn't work. I ended up spending half my time trying to figure out how to do things in Ruby. Granted I don't know Ruby at all, but still, I would have thought examples for these simple tasks would be everywhere. So maybe Ruby is just not meant for those tasks. I ended up doing the script in a Batch file. Kind of ghetto, but it worked really well. Batch files may be a bit under rated.

So anyway, the chore is over. Everything works just the way I wanted it to work, with the exceptions of the tools that I ended up using. I think that's just the way things go sometimes. You need to roll with the punches and use the tools that fit the problem.

One final note. I obviously did not figure this out all by myself. It took a lot of Googling of the discussion boards, blogs, and all that good Internet stuff that is out there to find what I needed. Thanks to everyone that posted solutions to their problems because it sure helped me. I just wish I saved all those links so that I could give them proper credit for their work. I was working on an app that would help do just that...Shoebox v 0.1...maybe I should dust that one off and start working on it again.

Friday, September 19, 2008

Flex Graphics Library

I wanted to include custom graphic into my Flex application. I wanted to have something that I would be able to manipulate in code and also look the way I want it to look.
After some searching I found Degrafa. Degrafa is a graphics framework for Flex. It allows you to create custom, sophisticated graphics using the Flex markup language.

I haven't done too much with it yet, other than verifying that it works. I got it to display a simple circle in about 4 lines of Flex XML code. The only real problem, or inconvenience so far is that the graphics do not render in the Flex Builder designer. You need to compile the code and view it in the run-time application. I'm not sure if I'm doing something wrong or not, but at least it works.

This sample application that was done by Thomas Gonzalez for the 360 Flex conference in San Jose was done using Degrafa.



You can check out the working application here.

Saturday, August 30, 2008

Flex Unit

Tried out Flex Unit today. Setup was really easy. I followed the instructions that I found here and was up and running in 20 minutes.
Writing the tests were similar to the older version of JUnit. You basically create your tests, then you need to create a test suite to run them. Creating the test suite is kind of a drag, but on the plus side, you get a pretty nice UI from FlexUnit.





This is a snippet of the UI, but right out of the box, it just looks nice.

Thursday, August 7, 2008

The Zoo

This post is a little off topic but I just thought it was worth mentioning.
Last weekend we visited the Honolulu Zoo. In the past I've been really disappointed with the zoo. It used to look run down and the few animals that they do have are usually hiding out somewhere and you really never get to see them. Anyway, I think they did some major renovations because the zoo looks great now. We got to see a lot of the animals and the exhibits looked really nice. We were about a foot away from a pair of Cheetahs, a Siberian Tiger, and ... Fancy Chickens (?).
Kama'aina rates are just $4 for adults. It's totally worth checking out.


Thursday, July 31, 2008

Inspiring

I've been going through a rough couple of months with my work. Mainly it's been a bit boring and not too much fun. I was recently forwarded a link to The Last Lecture by Randy Pausch from Carnegie Mellon. I saw this when it was first posted sometime last year but I decided to watched it again.
Without even going into the fact that my problems are minuscule in comparison, his lecture was inspiring to me on many levels. He talks about having dreams and working hard and living right as ways to achieve your goals. He also talked about mentoring, something that I really enjoy doing but have not been able to do too much recently.
So I've decided to get out of my funk and focus on building upon my skill set, working hard to achieve my goals, and try to help others as best as I can.
I have also decided to spend the rest of the Summer teaching my son to use Alice. Alice is a tool to help students learn to program using a 3D interactive programming environment. It makes learning the basics of programming fun and interesting. Randy Pausch was one of the people who helped to put Alice together.
Thanks Randy...

Thursday, July 17, 2008

You Get What You Pay For

Maybe I'm just a bit naive and maybe a bit lucky. But so far almost every tool that I've downloaded and tried from the Internet has been pretty reliable. I mean as long as it comes from a reputable site or recommended by someone who seems trustworthy or knowledgeable, they just seem to work.

So anyway, I just tried this Ant code to create a task for Doxygen. (I didn't make the call to use Doxygen, but it's pretty good, if you really care a lot about documentation). But back to the Doxygen task for Ant. I got the link from the Ant web site in the External Tools and Tasks section. So you would assume all the tools and tasks are tested and they all work (and yes, I read the disclaimer at the top, but still). I tried the Doxygen task and for some reason it just didn't work. I spent the majority of a day trying to figure it out. What it eventually turned out to be was a configuration property that was being defaulted into the config file from the Doxygen task Java code. Who would have thought that a bug that would make it not run would be in distribution binaries? For the longest time I thought it was some sort of setup issue on my end. Anyway, I also ended up fixing another error in the code that someone else found and had posted in the bugs section and put in a few custom things that I thought might be a good idea. I also posted my bug find and solution into the bug list as well.

Don't get me wrong, I really appreciate the code that Karthik A Kumar wrote. It was really well done and gets the job done in a very cool way. The Doxygen Task really helped me out a lot and saved me a lot of time. I also learned a lot about Ant Tasks and Doxygen along the way. I think it was time well spent.

But just remember, things aren't always perfect...especially when they are free.

Gamer Bus

We were invited to a birthday party for one of my son's friends. The party was at a park and they rented out a bus with video games. It was pretty cool. They had 8 XBox 360s in the bus. One side had a long leather couch and the other wall had 8 LCD panel mounted to the side. Pretty cool.
Outside the bus, they setup a Wii to keep people occupied as they waited to get into the bus.

They basically rotated the kids (and me) into the bus to play 5 minute Halo3 tournaments. I managed to not get motion sickness as I played, which was good. The kids had fun sneaking up on me and bashing me with their guns, which was not good. They didn't even want to waste bullets on me......punks.


Friday, June 27, 2008

R&D Coding and Changing Requirements

I work on a lot of R&D type projects. Basically I'm building proof of concept applications or applications that support a larger goal. These applications, for the most part are throw-aways or will not be used beyond the life of the project and also will probably not be used by real users. And, as you can expect, requirements for these types of projects change a lot and new requirements are constantly discovered as you go.

The handling of changing requirements is really not too much of an issue and it's usually easy enough to handle those. Short development cycles and refactoring help to minimize the impact of changing requirements. But how much refactoring do you do when the project is just a demo? Should you really spend the time and effort to re-architect some new requirement that has popped up that throws a wrench into your design? Or do you just do a quick hack and patch up your code to handle this new "feature"?

What do you think? Where do you draw the line between maintaining great code and getting the job done when working on a demo/throw-away application?

Thursday, June 26, 2008

Baseball Mid Season Checkup

It's getting close to mid season and I thought it might be a good time to do a quick checkup on my team and analyze some of my picks.

I'm in 3 leagues this year. A MLB Rotisserie league, an AL Rotisserie league, and an NL head-to-head league. Right now, I'm in second place in all three leagues. Not too bad considering some of the players I had high hopes for have not come through yet.

MLB Rotisserie league


The strategy in this league was to go after a high batting average and strike out pitchers. I'm in first place in both those categories, so mission accomplished there. I also tried to pick a bunch of hitters that would have break out seasons, Markakis, Rios, Pence were all high on my list and all of them have fallen short of my expectations. My only real gem was Josh Hamilton. And while I'm at it, here is the biggest blunder of my draft. In round 4 I took Derek Jeter instead of Lance Berkman. I figured the shortage of good middle infielders would start a run and allow me to grab some better guys down the line. This didn't happen and I ended up 1. without Berkman, 2. with Jeter who is doing ok, but far from a round 4 pick, 3. no good corners, 4. I failed to pickup Dan Uggla when someone dropped him because I couldn't get myself to drop Jeter or Placido Polanco. In my mind, if I did grab Berkman, I would have probably picked up Uggla as well, since I had the first waiver wire pick.

AL Rotisserie league


Sort of the same strategy here as with the MLB league. High batting average and strike out pitchers. I'm in the lead in both those categories. I also have Markakis and Rios in this league, so again, sort of disappointed there. But I also have Hamilton and I also have Milton Bradley who has been a great surprise. I ended up punting on saves but luckily so did another team and so now I'm second to the last (instead of last) with 2 saves. I thought my pitching would be really weak, but I'm getting good production out of Zack Greike, Data Eveland, and Kevin Slowey. I'm going to wait until after the All-Star break and try to pick up low ERA/WHIP relievers and start moving up in those categories

NL Head-To-Head


This one is a bit more challenging since it is head to head each week. The key in this league is consistent hitting and finding two start pitchers. My main hitters are Jose Reyes and Lance Berkman. I'm getting huge production out of those two. I also have Shane Victorino, who people laughed at when I drafted him, but in this league stolen bases are 3 point...that's a lot. My pitchers suck but it's all about getting two starts so I'm hanging in there. I really like Tim Lincecum. He's turning out to be the ace of my staff...that sort of says it all right there.

Anyway, we'll see how the second half goes.

Wednesday, June 18, 2008

World Record Holder

Well..sort of....

..maybe not. But I did download and install Firefox 3 (download count). So far I like the improvements. The Mac OS look is really nice and the browser seems to be eating up a lot less memory than version 2. There would be times that I had to restart the browser to clear the memory. I haven't had to do that yet.
I must admit that I haven't tried out too many of the new features yet. One of the features I am going to look at soon is the new bookmark manager. I stopped using the old bookmark manager because it didn't allow me to organize stuff in an easy way. Instead, I would just dump my bookmarks into delicious. Which, just so happens, has a new Firefox 3 add-on. I upgraded that too and it looks like it has a lot more features as well. I haven't really checked that out too much yet either so we'll see which one wins out....or if they both serve a purpose, I may end up using them both.
The new location bar has been working really well so far. Seems to be much more smarter than the old one. So far the location that i really want has popped up at the top more often than not. But then again, I'm a creature of habit and tend to visit the same sites throughout the day.
One thing that doesn't work in Firefox 3 is the Google Browser Sync add-on. I'm thinking of trying out Foxmarks instead. It seems to be just as good, if not better. Google Sync didn't allow me to get to my saved stuff and at times it would lose my tabs.
So anyway, if you haven't already, give Firefox 3 a try. Tell em a world record holder sent you.

Flex Woes

I've been experiencing a lot of strange behavior with Flex recently. I would add a new variable definition or an empty method to a class and all of a sudden, my application does not display. I was baffled by this for days.
I finally got the Flex Builder debugger to work and it gave me Error #1065: Variable is not defined error.
So I made sure all of my variables were defined....no luck. I even commented out every other piece of code, sometimes it would work, sometimes not. I then found out that this error message could also mean that your class is not public, or that you did not use an object, therefore it will not be included in the SWF file. All of which made no sense because all I did was add a variable declaration.
To make a long story short, the problem turned out to be with an XML object definition. I moved it to the end of my variable definition list and things started to work again. But this was a temporary solution. I have a feeling that putting the XML definition at the end of the list just ensured that the other variables would be defined before Flex errored out.
Eventually I removed the XML and put it in an object. I also made sure that all my XML was valid and all error cases were handled. Things have been working fine since then. I have a feeling that since I was breaking off pieces of the XML to be used in Flex containers that somewhere along the line something got corrupted. I still use pieces of the main XML and allow the Flex components to modify the pieces to modify the main XML document, I'm just a bit more careful about it. Using XML as a data storage mechanism for Flex has turned out to be a good thing and I'll be using it from now on.

Tuesday, June 17, 2008

Baseball Season Is Done

My son's Bronco PONY team made it to the finals but lost 4-0. They did really well and I'm proud of all the kids on the team. We hit the ball hard but they went straight to fielders.
I managed to pickup the pitching signals and were relaying what I could to the batters but the balls just couldn't find any gaps.....sigh....maybe next year.
Anyway, it was a great season. Our regular season team went 14-1 and took the league championship, the All-Star team was very competitive, and I got to coach one of the best group of kids ever. They were by far the most talented, had great personalities, and were a just plain fun to be around.
I'm looking forward to next season. Which will probably be the last season that I can coach my son. But until then......football season is coming :)

Friday, June 13, 2008

Flex Killer?

I recently stumbled on Pivot, which is a Java framework that seems to want to provide similar functionality as Adobe Flex and Air (and also Microsoft Silverlight, etc). Mainly, the ability to create more interactive/functional web applications and at the same time support the creation of stand-alone applications using the same cross-platform framework.
I ran their demo and was sorely disappointed. On my system it took about a gazillion "Internet Seconds" to load, had a lot of paint/refresh problems, was not very responsive, and didn't look very appealing. Now I haven't looked at the code, documentation, or even the tutorials, but after the demo....what's the point.
I'd really like to see and use a Java solution, but this is definitely not it. I think Flex has a lot of issues, but for now, it seems like it's the cream of the crop.

Blog Cloud

I got this from aaron...who got it from someone else. Anyway, I thought I'd put my blog posts in there to see what came out. I'm glad that search came out very prominently since that is something that I'm interested in. Other than that.....I think Wordle is a pretty cool application.
'nuff said.

Thursday, June 12, 2008

Power Naps



I've been testing this out recently (heh) and it really does a world of good. I remember sitting at my desk on some afternoons, my mind and body slowly dozing off. It would be impossible to concentrate on solving any problems or do anything constructive. I'd basically be doing busy work to stay awake until the end of the day.
Since I now work from home, if I get into this state in the afternoon, I just take a 15-20 minute nap and I'm recharged for the rest of the day and into the evening. It really does work. And I've found that a bit of coffee right before makes it even better. I just feel totally energized.
So far I have always got back up, without an alarm, in about 15-20 minutes. I'm not sure why but I just pop awake and by the time I walk back to my desk, I'm fully awake.
Here are a couple of articles that discuss this. Here and Here.
So go and pitch that "quite room" with a couch idea to your boss. 20 minutes of downtime for several hours of productivity at the end of the day. ZZZzzzzz......

Wednesday, June 11, 2008

Twittering Development

I was wondering if using Twitter in a software development team would be useful. Twitter is a pretty unobtrusive application. Messages just show up and it's very easy to disregard the messages if they do not pertain or interest you. If the message does interest you, you can easily follow up with the person using a more traditional communication tool.
For a development team, I thought it would be useful to know what other developers are working on or have accomplished. There may be times when you could help each other out or would be aware if someone is going down the wrong path or has solved a problem that you couldn't.
I think it could be a good tool. Right now I'm on a project with another developer. We're going to try using Twitter to communicate "stuff". I'm hoping that we will be able to tweak our Twitters to be beneficial to each other over time. I'll post my findings on the Twitter Experiment. Let me know if anyone out there has already tried this or something similar or if you have any suggestions of things we should try out.

Blogging Direction



I've been direction-less when it comes to what I want to blog about. I sort of want my blog to have a point and be interesting and maybe even have an impact on someone. But after talking to aaron, I think I'm going to just go back to blogging about whatever the heck I feel like.

I'm going to try to increase the frequency of my posts. I'm hoping that this will create enough diversity that every now and then you'll be able to find something interesting....but for the most part, it'll just be a lot of incessant barking.

Tuesday, June 10, 2008

Home (Summer) Schooling

Summer is here and for us that means Summer school for my son. We decided a couple of years ago to tutor him at home during the summer instead of sending him to summer school. The times that we did send him, it seemed as though he didn't really learn much.
So I'll be in charge of Math, Computer skills, and Science. My wife is in charge of the Reading and Writing.

For Math, I'm going to do some review on conversions, things like changing km/h to miles/sec and calculating amounts based on rates. He seemed to have a hard time with that during the school year. I'm also going to start on basic algebra. For computer skills, I'm going to focus on getting his typing speed up. If there is time, and interest, maybe creating a web page. I'm thinking of punting on Science this summer. Experiments take too long to prepare. I was thinking of working a little on his Googling skills and getting him to think 'out of the box' instead. Maybe an Internet scavenger hunt or something like that.

Anyway, classes begin next week Monday. He's got this entire week to play around. But on his first day home at 10:00 AM he says to me..."I'm bored".
I can't wait. :)

Friday, May 16, 2008

Tournament Team

My son made it on the KAC Bronco Tournament Team. Yay!!!

The team will be playing in a qualifying tournament next month and if they are in the top 4, they get to play in the state tournament in Kauai. The winner then advances to the mainland to play in other regional tournaments and then the Pony World Series.

I'm not sure how far this team will go, but it's great working with the kids. The coaching staff is really good this year and the kids are learning a lot and getting a feel of what it's like to compete for a position.

My son was the starting second baseman for his regular season team. He also played pretty well in the outfield, blocked the ball really well as catcher, and pitched the closing inning in a lot of games. On the Tournament Team, he is one of the younger players and may not see as much playing time. I've been talking to him all season long about working on his game. Now that he is on a team of really good players, I can finally see it sinking in. He is finally realizing that he needs to practice hard and work on things to get better.

He may or may not get the playing time. But I think the lessons that he is learning is worth more in the long run. Work hard, care about what you are doing, and improve something every day.......KAIZEN

Tuesday, May 13, 2008

Finding Answers

I've come to realize that the ability to find answers is a skill. I always thought it was something that everyone did about the same, but a couple of recent events have shown me that people have different ability levels when it comes to finding answers. (And when I say finding answers, I'm basically talking about Googling for an answer)
You would think that since everyone has access to the same Google, that answers/solution finding would be about the same, no matter who did the searching. But that is not always the case.

Event 1: A person that I work(ed) with occasionally (often) asks me for help solving a problem. Most of the times, I find the answer with the first Google search. I'm not trying to make myself sound like a Google-savant but it usually isn't that hard. Sometimes it would be a couple of searches, but basically the answer was there. I just chalked it up to that person being lazy.

Event 2: I recently became a ChaCha seach guide. When you research answers to questions, you get to see a log of prior questions and answers. Some of the answers don't seem to have as much substance as others. A lot of times, the client would ask the question again and you can see the different quality levels of the answers.

So then it dawned on me. Maybe the ability to find answers on the web is not the same in all people. I'm not sure what the difference is. It could be different levels of curiosity or persistence. Or maybe the ability to think a bit out of the box and trying different types of search terms when the first, obvious ones, don't give you the answer that seems right.

In any case, I think that as more and more information is available on the Web. Being able to filter through the data to find what you want is a skill that is very valuable.

Wednesday, May 7, 2008

ChaCha guide: Day 1

I was accepted as a ChaCha guide.
My first task was to complete a set of 15 sample questions, which I passed. These were questions that were fairly straight forward. Things like the score of a baseball game, some simple facts, and some history type questions. These questions were ones that I was thinking that I would be getting when I really started.
So after passing those samples, I was ready to start for real. I was really looking forward to it. I read a couple of comments that mentioned that a lot of the questions were pranks, but I still felt that I would be helping the search community and it would be fun.

My first question: 13 hoopers

?? WTF ?? I actually spent 20 minutes trying to figure out what that was. No luck.....I was a search failure.....this sucks.

My next couple of questions were asking about people. Not famous people...just regular Joes. I found one of them but not the other. At this point I was feeling not to good about this. Finally after 5 more questions, they started to get better. "Who is better Chris Paul or Deron Williams?", "Who is the Seattle Mariners franchise leader in home runs?", "How did they create Alloys back in the old days?"
It got to be fun and I learned a thing or two....and on top of that, I've earned a whopping $2.40.
I'm going to keep going with this. It's a great way to relax between coding and a nice way to end the day.

Monday, May 5, 2008

Human Powered Search

I really think that putting a human in the loop can improve the quality of search results. For example, I think that Mahalo seemed like a really good idea. I even signed up to be a guide on Mahalo. A guide basically compiles the search result page for a particular search query. I was rejected, but that's besides the point. The good thing about Mahalo is that you get results that have up to date information, the bad thing is that if the search string that you input has not been created by a guide, you won't get any results. For example, if you enter Java, you get a nice page with general Java information. If you enter Java String, you get some results on String Theory and some Google search results.
I also have recently found ChaCha, which is not really a search tool but more of an information tool. You send a text message from your phone with a question and a real human does the research and sends you back an answer along with a page link to the information source. I signed up to be guide at ChaCha as well....and I was accepted. Right now I'm in the final phases of getting setup but it should be any day now. If you want to try it out, text to 242242 and send in a question. I think it's free right now. There is also an 800 number where you can verbally submit your question (1-800-2ChaCha).

Monday, April 28, 2008

Science Schmience

I know for the most part that science is not exact. You need to gather facts and come to conclusions based on those facts and that it's sometimes just a series of educated guesses. And I have no problem with that, especially when these "conclusions" are fully disclosed and backed up. But sometimes, studies can be just complete non-sense.
Case in point, this article that links breakfast cereal to the sex of your baby. Come on.
The survey pool was 740 first-time mothers, of which 56% had a boy if they consumed a high calorie diet. From this, the "scientist" further drilled down to breakfast and then to breakfast cereal. Now really.....I think that's pretty close to 50-50 in a fairly small sampling.
I do realize that 6% in the larger scheme of things is fairly significant, but where'd they get breakfast cereal? And what about other factors? What about just plain old dumb luck?
And now that I'm completely into this rant.....I think scientist that release these studies should be held accountable for them. If their findings are disproved later, they should rack up one in the Loss column....or something.
I'll wrap this up by saying that my comments are not based in fact either. The study may be completely correct and I have no proof that says that this is not the case. I just find it rather disturbing at how some things are stated like they are truths rather than the educated guesses that they are.

Sunday, April 27, 2008

Baseball Website

I created a website for my son's baseball team. Used Google pages to create/host the website. I learned a couple of things while I did this.
1) Google is pretty cool. The Google page creator is really easy to use and it allows you to do a lot of things....much more than I was expecting.
2) I should have used CSS to make formatting changes easier.
3) Compiling baseball stats is not as easy as you would think.

Anyway, here is the site if you are interested in checking it out.

Wednesday, April 23, 2008

What's A Database Layer Good For?

I've spent the past couple of days refactoring my database schema. Nothing really major, just removing a categorization layer to make it less complex. It was determined that the extra layer would not be needed. I would have just left it but it wasn't my call. We also modified some table and field names to keep things consistent.
My manager seemed rather shocked that this change would entail changes in the database layer all the way to the UI. He seemed to think that having a database code layer would protect you from these changes and isolate the code that needs to be modified.
But in fact a database layer does not necessarily do this. If there is a new field, for example, that a user needs to supply data for, or in this case an entire table that does not need to be supported. The field needs to be added to the UI and then it needs to be processed and passed to the database layer. Therefore all aspects of the code that deal with this data need to be modified.
A database layer IS very useful and should be used when dealing with anything but very simple database table structures. It gives you the ability to isolate database functionality by hiding the database specific stuff from the rest of your code. These include things like connecting to the database, transaction handling, mapping object data to table fields, and other functions that deal directly with the database. Most of these changes can be easily modified without impacting other sections of your code.
Just make sure that everyone on your team, especially managers and project planners understand what you mean when you say you are implementing a Database Layer and that they know how certain changes to the database will impact the code.

Monday, April 14, 2008

Iolani Fair

This weekend is the Iolani Fair. Friday and Saturday from noon to 10:30pm. Come check it out. I'll be there working at the Produce booth under one of the big tents (the one without the games). I'll be there both days....all day long. Come check it out.

Thursday, April 10, 2008

Advanced Searching

I put together a couple of custom searches. One using Google Custom Search and another one with Swicki. They are both set to search websites that contain java programming pages. I seeded them both with a set of urls. I'm going to start using them to see if it will give me a better set of search results when I look for coding help. Hopefully I'll be patient enough to use them and compare the differences when I really need to find something.
The Swicki search is in my sidebar, the Google search didn't fit very well, so you can check it out here.
The way the searches work is that the Google custom search will search the entire web and put my url finds at the top of the search result list. The Swicki search is supposed to learn from other Swicki searches and refine itself over time. It also uses my seeded urls as a base and also uses a set of keywords. The set of keywords that I started the Swicki with was: coding, examples, java, programming, search, software.

Wednesday, April 9, 2008

ShoeBox v0.1

Here are the first set of prototype screens for the ShoeBox. It's basically functioning. The rest of the development will be fine tuning it to make it work better for me.

This is the Link screen. You can drag links from the browser to the list on the upper left. The space on the upper right displays the web page. The rest of the fields are description fields. Right now I'm storing the links on del.icio.us so I'm using the Topic Notes section as tags.



These are the link posts in del.icio.us. I'm hoping I'll be able to add these to my search component. The del.icio.us api is really limited but I think it'll work.




This is the search screen. There is a combo box at the top that will allow the user to switch between the various custom searches. For now I will be creating searches using the Google Custom Search tool.




This is the feeds page. For now I'll be displaying the Google Reader page since I'm planning to point all feeds here using Yahoo Pipes if necessary. I'm not really sure if this page is necessary. I was thinking of integrating this page with the Save Links page but I'm not sure yet.

Monday, April 7, 2008

Adobe Air

I tried out Adobe Air this past weekend. Spent a couple of hours prototyping my new project. By the way, I've named it ShoeBox for now.
Anyway, I have 3 basic screens and I created them in Air in no time at all. Of course I have Flex Builder so that helped with the layout, but still it was pretty quick. I also got some basic functionality done pretty quick as well.

Sunday, April 6, 2008

Search App

This is an overview of my next project. I basically want an application that will (1) help me store links and notes so that I can find them easily again when/if I need them, (2) allow me to do smarter searches or get search results that have more of the things that I am interested in, (3) show me more stuff (links) that i might want to see, like a suped-up google reader.

I've decided to create the application front end in Adobe Air. Just to see how it works. It seems like a good platform, although I'm not too keen on using proprietary stuff. I have also decided to use as many existing tools that I can. So I will be using things like del.icio.us, yahoo pipes, google reader, google custom search, and whatever else I can find.

My next steps will be to setup all the tools that I want to use, create the application ui, and come up with a name for this app.

Tuesday, April 1, 2008

Drafting is Done

Finally, all my baseball drafts are done. I can now get back to some real life stuff....like filing my tax returns.
I used a different method for my drafting this year. My picks turned out to be a little more off the wall then some of my past seasons. I'm placing a whole lot of hope on players like Nick Markakis, Josh Hamilton, and Matt Kemp. I got those players in multiple leagues. We'll see how the season goes.
But now that the draft prep is done, I can now start focusing on some side projects. First up is my Information storing/sharing/searching tool. More on that later.

Wednesday, March 26, 2008

Working in Hawaii

This week we are doing some integration testing with a company from Chicago. Testing went pretty smoothly and for the most part everything is working well. So we gave them a couple of days off. Must be nice to be "working" in Hawaii.

But I guess I should be thankful for what I have because I "work" in Hawaii as well.

Saturday, March 22, 2008

Flex Charting

I've started to use the Flex Charting package in my Flex application that I'm working on. You need to pay for the Charting license separately from Flex Builder, which sort of irritated me. I hate having to pay an additional fee on top of a package that I already bought. Especially since I though the Charting was included with Flex Builder. After testing out the charts for the past couple of weeks, it might be worth it.

I found that setting up the graph and pushing data to it is really really easy. And as with all the Flex components, it just looks nice. On the application I'm currently working on, I need to grab data points from a binary file and graph the results. The catch is that the chart is fairly small, around 400 pixels by 250 pixels and there will probably be a lot of data points. My concern would be that the chart would not be able to display the graph very well and the large data set would either not be handled very well or would look messy. As a test, I sent around 10,000 data points to the chart just to see what would happen.

This is about the size of the chart on my application. As you can see, the Flex Chart looks really good. Granted, that the data ended up with a very distinct pattern, but for the most part, that is what we will be expecting.

So this will probably be the last time you will see the Flex Charting Trial watermark on my graphs. We will be ordering Flex Builder 3 Professional next week.

Thursday, March 20, 2008

First Cut of Ruby

I wrote my first Ruby app yesterday. I've been meaning to do this for years but I finally did it....I was stuck at 87% for quite a while there.
Anyway, I like learning new things and like most people I find that if I use it to write an application that I am interested in, it makes learning a lot easier, more fun, and I think I learn more.
So here is an overview of my application and some things that I learned along the way. If anyone is interested in the code, leave a comment and I'll send or post it.

MLB Stat Scraper
The application basically grabs stats from a website and puts it into a text file. The reason that I wanted this was so that I would be able to look up preseason stats without having to be online. I could just print it out and take it with me. I would also not have to go to 30 team pages and cut and paste them all manually (it takes longer than you think).
I ended up using a Ruby HTML parser library called Hpricot to help me find the text that I was looking for. It worked really well once I figured out how to use RubyGems to install it. In retrospect, I didn't need Hpricot since the stats that I was looking for was placed between pre tags and was marked in such a way that I think I could have got the text with the standard Ruby libraries.
I also used JRuby instead of Ruby and that seemed to work fine as well. There were some snags when I was installing RubyGems and Hpricot for JRuby, but it all eventually worked.
I'll get into the reasons for JRuby in a later post.

Ruby Impressions
I'm liking Ruby. I need to understand how things work a whole lot better, but it did what I wanted with very minimal code. The bulk of the code was less than 20 lines and after getting everything installed it took maybe an hour or so of total time to write.

Tuesday, March 18, 2008

Book Lamp

One of the things that I am really interested in is searching. Mainly something that allows me to find what I want in a reliable way. Some of my future posts will elaborate on this some more, but for now, let me share something that I found via Digg.

Book Lamp is a service that is attempting to improve searching for books. For me, choosing a book is a very long and arduous process. Before the Internet, I would literally visit the bookstore and look over a book 5-6 times before I actually decided to buy it. Nowadays, I have started to borrow books from the library, but I still agonize over choosing the right book. I hated wasting money on a book I might not like and I also found that I hated wasting my time reading a book that I didn't like either (duh....but I really really hated it). I would spend hours looking on book recommendation sites and Amazon user ratings to find a book that I might like. Book Lamp seems like it could be the solution that I'm looking for.

BookLamp.org is a system for matching readers to books through an analysis of writing styles, similar to the way that Pandora.com matches music lovers to new music.

They use some sort of algorithms to analyze the authors writing styles. I believe the algorithms look at the actual text of the books. They then match this up with things that you like and offer a list of recommendations. Future versions will also include matching of story lines, probably genres, and maybe even character types to the search parameters. It will also allow you to customize your preferences and will have some self-learning capabilities. The point, for me, is that they are doing this in a cool scientific way that will hopefully give me the next book that I'm going to read. That's way cool!!!

Book Lamp is in the very early beta stages but I'm going to be watching what they do and will be participating in their forums. I'll report back on progress.....or better yet, check it out for yourself.

Monday, March 17, 2008

Baseball Draft 2008 part 1

This probably won't interest anyone, but i wanted to log it somewhere for future reference.
This is my draft recap from the first Fantasy Baseball draft for 2008.

The league consists of 10 teams. Stat categories are R, HR, RBI, SB, AVG, OPS, W, K, ERA, WHIP.
And each roster consists of: C, 1B, 2B, 3B, SS, CI, MI, OF, OF, OF, OF, Util, SP, SP, SP, RP, RP, RP, P, P, P, BN, BN, BN, DL.

So this is how my draft went. I had the 10th pick.
1. (10) Matt Holliday OF
2. (11) Jimmy Rollins SS
3. (30) Álex Ríos OF
4. (31) Derek Jeter SS
5. (50) Nick Markakis OF
6. (51) Hunter Pence OF
7. (70) Scott Kazmir SP
8. (71) Adrián González 1B
9. (90) Chris Young SP
10. (91) Shane Victorino OF
11. (110) A.J. Burnett SP
12. (111) Matt Cain SP
13. (130) James Shields SP
14. (131) James Loney 1B
15. (150) Joakim Soria RP
16. (151) Josh Hamilton OF
17. (170) Plácido Polanco 2B
18. (171) George Sherrill RP
19. (190) Clay Buchholz SP
20. (191) Iván Rodríguez C
21. (210) Evan Longoria 3B
22. (211) Zack Greinke SP,RP
23. (230) Gil Meche SP
24. (231) Nate Robertson SP

Recap notes from the draft.
The overall strategy of the draft was to get a good Batting Average and get some quality middle tier pitching that maximized K/9.
I liked my first pick. I had Holliday in the top 5 so I was totally happy to get him at 10. I was projecting to get Ryan Howard with my first pick. I could have picked Howard next but Jimmy Rollins was still on the board and I figured it would be better to fill up a middle infield position and if Rollins can repeat his numbers from last season, the steals will make it all worth while.
Before the draft I had targeted a bunch of OF that I really wanted to get. I really wanted Alex Rios, who I think will move into the top 10 this year. Nick Markakis, who could move into All-Star status. Hunter Pence, Corey Hart, Josh Hamilton, Brad Hawpe, and possibly Shane Victorino (for the Hawaii connection and SB) were also on the list. As you can see I got most of the guys I wanted. Although at times I had to reach down my list to get them. But since I was picking at the end, I felt that I had to do that. I passed on Corey Hart, even though he went really late. Mostly since he seemed to be struggling during the pre-season. We'll see how that goes. I was really high on Josh Hamilton. I think he could deliver Ryan Howard type numbers....assuming he stays healthy.
I also got Derek Jeter. Not sure why I did that other than the fact that I've never had Jeter and I like him. If anything, his average should help. Polanco was also a guy that I wanted. I think he is really underrated and his batting average is just awesome.
Again this year, I'm weak in the corners. Maybe I'll get lucky and Evan Longoria can be another Ryan Braun. I doubt it, but one can only hope. I hope passing on Howard doesn't come back to bite me.
I got some of the Pitchers that I wanted. But I missed out on the "stud" pitchers. I really wanted Brandon Webb or CC Sabathia, but they went right before I was going to grab them (round 5/6 I think). Instead I waited and beefed up my offense and later gambled on Scott Kazmir and later AJ Burnett. AJ is the real question mark, he's capable of good numbers....again, if he can stay healthy. I really like Matt Cain and James Shields. I think they will be able to deliver above their draft picks. I also like Buchholz. He could be good.....or not but I was glad to get him where I did. Greinke, Meche, and Robertson also have some potential.
Pitching seemed to go quick in this draft. Maybe it was because I was focusing on Offense so much. There were several runs on Closers and I admit I got caught up in one of them. I was fully planning on punting on Saves.
So that was my first draft of the year. I'm happy with my team. I got a lot of guys that I wanted and who I like. My Offense should be solid. My Pitching is weak, but it has potential.

Sunday, March 16, 2008

How It's Made

For a while I was watching this show called How It's Made on the Discovery Channel. I always found it interesting to see how things were made, but this show wasn't able to hold my interest for very long. The music drove me insane, the narrator was boring, and most of the products they showed were very just plain stupid.

So anyway, I found this new show....Who Knew? With Marshall Brain. Same idea but done way better. Marshall is sort of a quirky guy and maybe not the best television personality out there. But so far, I've like the products he's picked and the way that things are explained.
And I guess I've been a fan of Marshall for a while....he is the creator of How Stuff Works. One of my all time favorite sites.
Anyway, if you are interested in this type of stuff....Who Knew? is on the National Geographic Channel.