<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-31481944</id><updated>2011-04-21T18:55:56.912-07:00</updated><category term='linux'/><category term='products'/><category term='my opinion'/><category term='soldering'/><category term='kill your tele'/><category term='dyson vacuum'/><category term='web2.0'/><category term='consumerism'/><category term='movies'/><category term='fun'/><category term='vim'/><category term='gaming'/><category term='electronics'/><title type='text'>whatadorkiam</title><subtitle type='html'>sitting here blogging when I could be writing code...</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://dwark.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31481944/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://dwark.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>robottaway</name><uri>http://www.blogger.com/profile/16898889765420671029</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_713t16V0cpQ/SC9PjVsTmiI/AAAAAAAAAAo/o1q0doIWdrs/S220/clintonmaniac.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>33</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-31481944.post-1171801143034673768</id><published>2009-01-03T15:55:00.001-08:00</published><updated>2009-01-03T16:10:06.725-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='my opinion'/><category scheme='http://www.blogger.com/atom/ns#' term='gaming'/><title type='text'>Starcraft: the one thing I'd take to a deserted island</title><content type='html'>There are few games so perfect that after years of playing it you can pick it up and still find it fascinating. &lt;a href="http://www.blizzard.com/us/starcraft/"&gt;Starcraft&lt;/a&gt; is one of those games. Love, obsession, passion are things this game has conjured up in the ten years since its release. The &lt;a href="http://en.wikipedia.org/wiki/StarCraft_professional_competition"&gt;Koreans still consider&lt;/a&gt; it the best competitive video game around. It tickles me to think that lots of kids in their teens probably haven't even heard of it, or for that matter played it... although I suppose that could be a completely wrong to assume. I remember being a young man back around Senior year of high school (the late nineties) when this game came out. I played it A LOT. Whats more you could play online (Blizzard, the games creator, basically created the online gaming experience) for free against people across the world.&lt;br /&gt;&lt;br /&gt;I picked up a copy of the game and the expansion "Brood War" for only $20 this holiday season. I'm now hooked once again, playing through the single player campaign. Although the graphics and such are a bit dated (the plot acting is horrid on re acquaintance, although the voice acting isn't bad) they don't detract at all from the experience. Actually playing it on my 20 inch iMac feels pretty good. I was using a 14-15 inch CRT back in high school. Maybe by the time I've tired once again of Starcraft I'll be ready to move to Starcraft II which is coming out in 2009 (ten years after the first).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31481944-1171801143034673768?l=dwark.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dwark.blogspot.com/feeds/1171801143034673768/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31481944&amp;postID=1171801143034673768' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31481944/posts/default/1171801143034673768'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31481944/posts/default/1171801143034673768'/><link rel='alternate' type='text/html' href='http://dwark.blogspot.com/2009/01/starcraft-one-thing-id-take-to-deserted.html' title='Starcraft: the one thing I&apos;d take to a deserted island'/><author><name>robottaway</name><uri>http://www.blogger.com/profile/16898889765420671029</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_713t16V0cpQ/SC9PjVsTmiI/AAAAAAAAAAo/o1q0doIWdrs/S220/clintonmaniac.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31481944.post-6518582217502815933</id><published>2008-08-23T08:06:00.000-07:00</published><updated>2008-08-23T08:13:00.305-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vim'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><title type='text'>Vim on Ubuntu 8.04 (Hardy Heron)</title><content type='html'>If you are like me you enjoy the uninhibited feeling of using a text editor such as Vim. If you are using Vim you also are probably using a Linux or maybe an Apple machine. If not god rest your soul (Windows development drives me bonkers). Well I'll get to the point. I installed Hardy Heron, version 8.04 of Ubuntu, onto my laptop. The version of Vim installed by default could only be described as broken. I'm sure they didn't want to fill up disk space with a full version; assuming correctly (my opinion) that most users would never give it a crack. So what is the good looking, charming and generally decent smelling Vim user to do? Never fear just use your old friend &lt;span style="font-weight: bold;"&gt;apt-get&lt;/span&gt;:&lt;br /&gt;&lt;blockquote&gt;sudo apt-get install vim-full&lt;/blockquote&gt;And with that you can now edit to your hearts content.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31481944-6518582217502815933?l=dwark.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dwark.blogspot.com/feeds/6518582217502815933/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31481944&amp;postID=6518582217502815933' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31481944/posts/default/6518582217502815933'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31481944/posts/default/6518582217502815933'/><link rel='alternate' type='text/html' href='http://dwark.blogspot.com/2008/08/vim-on-ubuntu-804-hardy-heron.html' title='Vim on Ubuntu 8.04 (Hardy Heron)'/><author><name>robottaway</name><uri>http://www.blogger.com/profile/16898889765420671029</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_713t16V0cpQ/SC9PjVsTmiI/AAAAAAAAAAo/o1q0doIWdrs/S220/clintonmaniac.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31481944.post-2336764957010457883</id><published>2007-12-20T23:55:00.000-08:00</published><updated>2007-12-21T00:10:32.741-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='my opinion'/><category scheme='http://www.blogger.com/atom/ns#' term='movies'/><category scheme='http://www.blogger.com/atom/ns#' term='fun'/><category scheme='http://www.blogger.com/atom/ns#' term='gaming'/><title type='text'>Movie Review: Silent Hill</title><content type='html'>Ok any film buff worth their weight in goobers know that movies which are adaptations of video games almost always fall flat. Seriously 99.9% of the time. Fighting games: Mortal Kombat 1 &amp; 2 and Street Fighter (oh it is soooo bad). Adventure: Tomb Raider. Platformer: Mario Brothers. First person shooter: Doom. Any of these movies I mentioned here are terrible, in both pointlessness and especially in not keeping true to the spirit of the original content. Now the review here is for yet another movie based on a game. This one unlike the aforementioned does not rank high on the lame-o-meter. Silent Hill was a game for the original Playstation. I never actually did get around to playing it. I thought it was a poor mans Resident Evil when I spied it, and I just kinda ignored it. I hear it is an amazing game, at least for the time.&lt;br /&gt;&lt;br /&gt;Now Silent Hill has a few things going for it. First off is that the director is the same guy that brought us "Brotherhood of the Wolf". Yes this guy is French. Silent Hill though is in English. Second he plays video games. Third he really liked Silent Hill way back when he played it and hence had always wanted to make it into a movie. Well the movie does not follow the plot 100% from the game. Some characters are modified, deleted and added. The main character is now a woman. Overall though I believe the plot is very close to the game. Please someone correct me if I am wrong.&lt;br /&gt;&lt;br /&gt;The plot is interesting, you probably will be wondering what will happen next. It could get boring but the effects and cinematography are top notch. The monsters are also very cool. In keeping with the spirit of the game (according to the director) the camera work does some very unique things. Sweeping shots which float you from one place to another occur a few times and give the movie a voyeuristic feel. I would recommend to any horror movie fan this movie. Most people that see it probably don't even know it is based on a game.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31481944-2336764957010457883?l=dwark.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dwark.blogspot.com/feeds/2336764957010457883/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31481944&amp;postID=2336764957010457883' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31481944/posts/default/2336764957010457883'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31481944/posts/default/2336764957010457883'/><link rel='alternate' type='text/html' href='http://dwark.blogspot.com/2007/12/movie-review-silent-hill.html' title='Movie Review: Silent Hill'/><author><name>robottaway</name><uri>http://www.blogger.com/profile/16898889765420671029</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_713t16V0cpQ/SC9PjVsTmiI/AAAAAAAAAAo/o1q0doIWdrs/S220/clintonmaniac.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31481944.post-5916118784854961075</id><published>2007-12-16T21:05:00.000-08:00</published><updated>2007-12-16T21:39:51.178-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='my opinion'/><category scheme='http://www.blogger.com/atom/ns#' term='fun'/><category scheme='http://www.blogger.com/atom/ns#' term='gaming'/><title type='text'>Metroid Prime 3: Corruption</title><content type='html'>Another game, another 15 hours of my life spent vegging out. Well spent :) I have not played the previous two Metroid Prime games. I have however played the NES, Gameboy (original), SNES titles. They rocked my world as a young man. I have a Wii and was in command of a 100 dollar shopping mall gift certificate. So I bought this game and Burnout Revenge for the 360. So onto the review.&lt;br /&gt;&lt;br /&gt;My opinion is that Metroid Prime 3 looks and feels "so-so" in 3D. Somehow being able to move in all directions is awkward. Your visor really sucks up screen real estate, during the full playing time of the game. If Halo or any other FPS did this it would be inexcusable. Oh and you will need to use different visor modes, such as the "scanning" visor to accomplish your goals. The 'Prime' incarnations obviously put a new spin on things by playing down combat in favor of searching out minute details of the environments and recording data. What is this Poketroid? I don't want to record information I want to blow shit up. This really kills the action. Ergghhhh... This actually is my only gripe: MP3 does not flow smoothly. You constantly are switching visors and moving back and forth between areas. I would just like some steady combat. I would like to work through areas and have the story flow in lock step. I don't want to backtrack areas once, twice, even three frickin times! That just screams "padding out the game". It destroys replay value since most people do not like running around the same areas. They want, nay expect new and interesting experiences. This game tries to do many different things but never lets you just get immersed in any one thing. That kills the chance of getting sucked in.&lt;br /&gt;&lt;br /&gt;Nintendo, remember Super Metroid? Fantastic game, remember all those cool weapons and power ups? The constant battle? What about enemies that only are effected by using a particular weapon. Your beam in MP3 just upgrades over the course of the game. There isn't any switching it up. I kinda though that was annoying as having you change up your arsenal to fit different combat situations could have made things more interesting. There was a "corruption" mode where you deal out more damage, while risking an "overload". Really though that didn't pique my interest in the game at all.&lt;br /&gt;&lt;br /&gt;I do have some words of praise. The voice acting and cinematic sequences are good, I would say on par with Halo, though the story is not. The graphics are also pretty good relative to other Wii games I have played. The controls are not bad, although I don't feel the Wii remote beats a keyboard and mouse or 360 gamepad for FPS gaming. Maybe some game will eventually prove the Wii controller superior for FPS. Mostly I'm just impressed the controls can pull it off, and be so precise.&lt;br /&gt;&lt;br /&gt;I recommend you give MP3 a play this if you enjoyed any of the previous Prime games. If you didn't play any of those games there was probably a reason. You were likely off playing more combat oriented shooters like Halo or Half-life, or tactical shooters like Rainbow Six. If so I suggest you save your time and money and try something else.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31481944-5916118784854961075?l=dwark.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dwark.blogspot.com/feeds/5916118784854961075/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31481944&amp;postID=5916118784854961075' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31481944/posts/default/5916118784854961075'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31481944/posts/default/5916118784854961075'/><link rel='alternate' type='text/html' href='http://dwark.blogspot.com/2007/12/metroid-prime-3-corruption.html' title='Metroid Prime 3: Corruption'/><author><name>robottaway</name><uri>http://www.blogger.com/profile/16898889765420671029</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_713t16V0cpQ/SC9PjVsTmiI/AAAAAAAAAAo/o1q0doIWdrs/S220/clintonmaniac.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31481944.post-1952024399213741915</id><published>2007-11-03T09:24:00.000-07:00</published><updated>2007-11-03T10:03:36.508-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='my opinion'/><category scheme='http://www.blogger.com/atom/ns#' term='web2.0'/><title type='text'>More "Reddit" Sites Needed</title><content type='html'>The thing I like about Reddit is how different it is than other sites. I have been active on the web since my first year of high school, back in 1995! It was love at first site (sic). &lt;br /&gt;&lt;br /&gt;I think that Reddit does something more sites should do, which is provide a place for the users to define what exactly the site is. See Reddit is really nothing with out the user provided content. Users define what the content is, and therefore they define the site itself. The content is simple, links to articles and comments on articles.&lt;br /&gt;&lt;br /&gt;Now I notice that Reddit is a very liberal site. You can't read five entries on the front page without hitting an entry about politics. Often these do have some liberal slant via the listing's title. I have no problem with this. I like the fact that I can kinda uncover what the more liberal crowd are interested in, worried about, and such. If I were a political analyst I could do better to understand the liberal side of our nation by spending a few weeks on Reddit.&lt;br /&gt;&lt;br /&gt;Back to the need for more Reddit. Now in simple terse terms, Reddit is a MySpace, Facebook, LinkedIn type of site. Really it is a loose set of rules that define what the content form is. Not what the content is! MySpace gives users a page which they can then decorate with whatever they want. Reddit allows submission of entries which link to articles; while allowing the submitter to give a title to the link, and providing a comments page for the entry.&lt;br /&gt;&lt;br /&gt;Now I'm noticing these sites are waaaaay to broad in their scope. As I have mentioned the Reddit site has a very liberal slant. That means there is a great opportunity for  a site with a conservative slant. MySpace? How about something targeted towards art and graphic design students (maybe even architectural designers) that targets the features that they want. What are those? HIIK. Stuff that cuts out the posers. There are a lot of posers on the web and people enjoy a site that doesn't feel fake. Now if you are interested in a specific thing like art and design you should use this interest to start a new site. Just keep a couple things in mind.&lt;br /&gt;&lt;br /&gt;Allowing the users to post and update content is key. Make sure that doing so is easy. Do not put too many constraints on what can be contained in the content. Define what the content is, like video in X format, images in Y Z formats, articles. Make sure to seed a good amount of content to the site before marketing it. Why? Because you want the site to notify the user via this content what is acceptable. If you wanted to create a conservative site, but you start marketing the site and there is not a lot of content users are likely to post anything. They don't have a good gauge of what type of content should be going into the site.&lt;br /&gt;&lt;br /&gt;I feel like the coming years will be about little big sites, which target communities, not everyone on the web. These sites will work to inform, train, and entertain these communities. I think the wheels are already in motion, its just the business side of the web are focused on these mega sites such as Facebook and MySpace.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31481944-1952024399213741915?l=dwark.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dwark.blogspot.com/feeds/1952024399213741915/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31481944&amp;postID=1952024399213741915' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31481944/posts/default/1952024399213741915'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31481944/posts/default/1952024399213741915'/><link rel='alternate' type='text/html' href='http://dwark.blogspot.com/2007/11/more-reddit-sites-needed.html' title='More &quot;Reddit&quot; Sites Needed'/><author><name>robottaway</name><uri>http://www.blogger.com/profile/16898889765420671029</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_713t16V0cpQ/SC9PjVsTmiI/AAAAAAAAAAo/o1q0doIWdrs/S220/clintonmaniac.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31481944.post-1576089513322146013</id><published>2007-08-19T09:24:00.000-07:00</published><updated>2007-08-19T10:11:24.010-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gaming'/><title type='text'>God of War, Resident Evil 4, Bioshock</title><content type='html'>I'm a gamer. Have been since that Christmas when I was 6 or 7 years old and my family received a Nintendo Entertainment System. From then on I went through many games and console hardware. The list of systems I've owned is longer than I would like to admit. So lately I've been on a long kick of Guitar Hero 2. I got this game as a gift, and have played the heck out of it. It has terrific replay value.&lt;br /&gt;&lt;br /&gt;For the 4th of July week my employer gave me Wednesday through Friday off. My wife unfortunately only got Wednesday off (the 4th). So I figured I would be having time to kill, so why not pick up some new games? I picked up two games I knew as highly recommended, "God of War" and "Resident Evil 4". Both $20 bucks. Did I tell you I just bought a PS2 like 7-8 months ago? Well there is a goldmine of great games that sell on the cheap and I love it.&lt;br /&gt;&lt;br /&gt;So anyway heres my take on these games.&lt;br /&gt;&lt;br /&gt;God of War is an excellent beat 'em up style game. It takes games like Final Fight and Streets of Rage pushing them into the 3D era. This could have not worked so great, but the controls and camera angle make sure that you can function in this 3D world. This game also borrows from games like Zelda, where you gain more magic and life force by collecting items hidden throughout the game, and solve many puzzles. The only thing I can view as a 'possible' downside to this game is the short length. I don't really mind it though. I think the game has terrific replay value. The fun is in how fast you can play through, powering up in different ways. The battle system is so open that each time you play you may devise news ways to deal with your enemies. The graphics in this game are very good. I enabled the 480P resolution and have to say for an 'old' PS2 game it runs very smooth and is pretty detailed.&lt;br /&gt;&lt;br /&gt;I recently borrowed "God of War 2" from a friend. Everything I said above goes for this game too. "God of War 2" seems to be a little more balanced and polished. So far I am really enjoying it, and I think I'll try to pick up a copy when it drops in price.&lt;br /&gt;&lt;br /&gt;The other game I picked up my long weekend was "Resident Evil 4". Now I heard lots praise be lavished upon this game. I wanted to play it for the longest time, but owned neither a Gamecube or PS2. I've always been a big fan of the RE franchise. RE4 ditches the zombies for mind controlled peasants. It also adds a over the shoulder view when aiming with a weapon, making battle feel more like a shooter. Another thing was the environments are completely 3D now. I'm not sure if this was new to RE since I missed a couple games in the chain. So what made this game so good? Well they nailed the main stuff, being the controls, music and look and feel. What really shines though is the interesting story and narrative. I'm not saying that the story is perfect, it has its low points, but the story and narrative make you always feel like you are in the RE world.&lt;br /&gt;&lt;br /&gt;So what am I looking forward to playing? I just downloaded the demo for Bioshock on my Xbox 360. This game is going to be amazing. It is a shooter, but blends in great storytelling like in RE4. You always feel immersed in the story, for the 30-40 minutes of you get to play in the demo.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31481944-1576089513322146013?l=dwark.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dwark.blogspot.com/feeds/1576089513322146013/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31481944&amp;postID=1576089513322146013' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31481944/posts/default/1576089513322146013'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31481944/posts/default/1576089513322146013'/><link rel='alternate' type='text/html' href='http://dwark.blogspot.com/2007/08/god-of-war-resident-evil-4-bioshock.html' title='God of War, Resident Evil 4, Bioshock'/><author><name>robottaway</name><uri>http://www.blogger.com/profile/16898889765420671029</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_713t16V0cpQ/SC9PjVsTmiI/AAAAAAAAAAo/o1q0doIWdrs/S220/clintonmaniac.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31481944.post-1686177639187306135</id><published>2007-08-09T21:33:00.000-07:00</published><updated>2007-08-09T21:53:40.029-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='kill your tele'/><title type='text'>Spaghetti</title><content type='html'>Man movie making has becoming way too generic. I am watching "&lt;a href="http://www.imdb.com/title/tt0068699/"&gt;High Plains Drifter&lt;/a&gt;" a movie that I would say is unmatched by anything from the past 5 years. Man I mean the whole deal. From the freaky high pitched music to the guesswork pertaining to the main characters intentions. And everyone in town is dirty, even the priest! The deal with this movie is  that it doesn't cater to pop culture. I feel movies these days tie in references to events, products, people and such just to give the viewer the "satisfaction" of familiarity. Like the Apple dude in the new Die Hard movie as a computer "nerd". Or Will Ferrell showing up in way too many movies even though he is  (kinda like Adam Sandler wore out his welcome...).&lt;br /&gt;&lt;br /&gt;I think people have become trained to enjoy simplistic movies. TV too. I mean fuck, look at all those lame ass reality television shows. It's cool to be formulated. All the cool kids are doing it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31481944-1686177639187306135?l=dwark.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dwark.blogspot.com/feeds/1686177639187306135/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31481944&amp;postID=1686177639187306135' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31481944/posts/default/1686177639187306135'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31481944/posts/default/1686177639187306135'/><link rel='alternate' type='text/html' href='http://dwark.blogspot.com/2007/08/spaghetti.html' title='Spaghetti'/><author><name>robottaway</name><uri>http://www.blogger.com/profile/16898889765420671029</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_713t16V0cpQ/SC9PjVsTmiI/AAAAAAAAAAo/o1q0doIWdrs/S220/clintonmaniac.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31481944.post-6259645356203393227</id><published>2007-06-21T15:39:00.000-07:00</published><updated>2007-06-21T15:44:29.188-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='electronics'/><category scheme='http://www.blogger.com/atom/ns#' term='fun'/><category scheme='http://www.blogger.com/atom/ns#' term='soldering'/><title type='text'>Soldering for dummies</title><content type='html'>Great article over on &lt;a href="http://mt.makezine.com/mt/mt-tb.cgi/11214"&gt;MAKE&lt;/a&gt; about soldering. If you plan on doing any soldering soon you should check this out!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31481944-6259645356203393227?l=dwark.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dwark.blogspot.com/feeds/6259645356203393227/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31481944&amp;postID=6259645356203393227' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31481944/posts/default/6259645356203393227'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31481944/posts/default/6259645356203393227'/><link rel='alternate' type='text/html' href='http://dwark.blogspot.com/2007/06/soldering-for-dummies.html' title='Soldering for dummies'/><author><name>robottaway</name><uri>http://www.blogger.com/profile/16898889765420671029</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_713t16V0cpQ/SC9PjVsTmiI/AAAAAAAAAAo/o1q0doIWdrs/S220/clintonmaniac.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31481944.post-6054466651513550539</id><published>2007-06-17T12:04:00.000-07:00</published><updated>2007-06-17T12:28:33.804-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='dyson vacuum'/><category scheme='http://www.blogger.com/atom/ns#' term='products'/><category scheme='http://www.blogger.com/atom/ns#' term='consumerism'/><title type='text'>Get What You Pay For</title><content type='html'>I am a guy who loves a good deal. Often I buy something merely because of pricing. This is not limited to new items, I love shopping for used stuff. Garage sales, eBay, Craigslist you name it. Don't take this as a statement indicating that I am a cheap skate! Just because I pride myself on finding the best Mexican taco stand, where you can fill up for under 10 bucks, doesn't mean I will not plunk down $30-$40 for a really good dinner. I understand that often you get what you pay for.&lt;br /&gt;&lt;br /&gt;Now here is an example. When Dyson vacuums first came onto the seen a few years ago I was astonished. How could one justify paying over $400 dollars for a vacuum. Geez, I mean the one I had through college was maybe  sixty dollars. This feeling was strengthened when I actually got to check out one firsthand at a shop. I felt it's construction was a little cheap, being made out of so much plastic (and those colors WTF?). I would say these feelings where strong, but guess what? I was all wrong.&lt;br /&gt;&lt;br /&gt;My wife and I received a Dyson as a wedding gift. At first I just figured "Hey it must be better than my old college vac". When I finally broke open the packaging I was dumbstruck. It came with so many extras it was hard to believe. There where a lot of special attachments in the box. I'm not talking about just simple brush tools, crevice tools and whatnot. It came with 3 varieties of the aforementioned. It also came with 3 other, very fancy attachments for other things. What, I do not know yet, but they look pretty useful. It also came with a full on carpet care kit, included spot remover and carpet freshener. &lt;br /&gt;&lt;br /&gt;So how does the thing work? Well it gets the job done much, much better than my old college vacuum did. I don't think I could ever go back now. It picks up everything, doesn't (seem) to lose suction, and moves around with a precision that my old vacuum just never had. It also is pretty sturdy in light of it's all plastic construction. I think I was wrong in holding it's plastic construction against it. The plastics used do seem pretty durable, save for the piece that at the bottom front of the machine. This piece has been rammed into a few walls, and has developed stretch marks that plastics often get when bent and such.&lt;br /&gt;&lt;br /&gt;The engineering of this vacuum is also a point of interest to me. I find more and more cool features of this machine as I fiddle around with it. The material that is used in the hose of the vacuum is amazing. It stretches and shrinks back very naturally. No other vacuum I've seen uses this sort of material. The emptying of the debris sucked up by the vacuum is simple, and is much cleaner than any vacuum I have used. Every little part of the machine can be easily removed for cleaning, which makes me think the engineers put a lot of thought and time into it's design.&lt;br /&gt;&lt;br /&gt;Well I've spent way to much time blabbing about a freaking household appliance. Like the title says you do get what you pay for. I would also like to say that sometimes maybe innovations go without being noticed because of held beliefs. If something costs an arm and a leg then maybe it deserves a closer look.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31481944-6054466651513550539?l=dwark.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dwark.blogspot.com/feeds/6054466651513550539/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31481944&amp;postID=6054466651513550539' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31481944/posts/default/6054466651513550539'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31481944/posts/default/6054466651513550539'/><link rel='alternate' type='text/html' href='http://dwark.blogspot.com/2007/06/get-what-you-pay-for.html' title='Get What You Pay For'/><author><name>robottaway</name><uri>http://www.blogger.com/profile/16898889765420671029</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_713t16V0cpQ/SC9PjVsTmiI/AAAAAAAAAAo/o1q0doIWdrs/S220/clintonmaniac.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31481944.post-9211154627735566744</id><published>2007-06-17T12:01:00.001-07:00</published><updated>2007-06-17T12:04:23.951-07:00</updated><title type='text'>Whats going on?</title><content type='html'>So I was adding things that are tech related in this blog, such as working with Maven. Maven is a sweet build system for Java projects. I say build system lightly, as it does so many things. I have decided that my large cache of knowledge would be better presented in it's own blog, solely dedicated to Maven. So here it is, &lt;a href="http://mavenize.blogspot.com/"&gt;mavenize.blogspot.com&lt;/a&gt;! If you are trying to become a user of Maven this is a great place to get the many concepts down. It can be hard to connect the dots as a new user of Maven. Have fun!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31481944-9211154627735566744?l=dwark.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dwark.blogspot.com/feeds/9211154627735566744/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31481944&amp;postID=9211154627735566744' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31481944/posts/default/9211154627735566744'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31481944/posts/default/9211154627735566744'/><link rel='alternate' type='text/html' href='http://dwark.blogspot.com/2007/06/whats-going-on.html' title='Whats going on?'/><author><name>robottaway</name><uri>http://www.blogger.com/profile/16898889765420671029</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_713t16V0cpQ/SC9PjVsTmiI/AAAAAAAAAAo/o1q0doIWdrs/S220/clintonmaniac.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31481944.post-4050382605745492376</id><published>2007-06-10T10:20:00.001-07:00</published><updated>2007-06-10T10:20:28.014-07:00</updated><title type='text'>Testing your code</title><content type='html'>Testing is very important. What constitutes testing? Well that depends. If your application is mostly self contained, meaning it takes some command line args then spits out some data, then unit testing probably would be all you need. Other times your application must interact with one or more systems, so it would be good to test that all systems integrate nicely.&lt;br /&gt;&lt;br /&gt;In this post I'm going to give my opinion on testing, and the two larger types I use and how and when to apply them.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Unit Testing&lt;br /&gt;&lt;br /&gt;What do I mean by unit testing? I mean the following:&lt;br /&gt;&lt;br /&gt;   1. Your tests all run very fast, and the whole suite of tests runs in or around 5-10 seconds.&lt;br /&gt;   2. Every (yes every) time you compile the unit test suite is run to find errors in your code. Now you see why they must run fast.&lt;br /&gt;&lt;br /&gt;To have fast running unit tests it is often very important to use interfaces between application objects. This will allow you to create mock versions of objects for testing.&lt;br /&gt;&lt;br /&gt;An example: you have a remote HTTP interface with an implementation that allows HTTP calls to a network server. Now say you want to test an object that uses this remote HTTP interface. If you use the real implementation of the HTTP interface, the one you create for use in your application, you will encounter some problems. At some point you will compile, and your unit tests will fail because the HTTP object cannot reach the HTTP server, or maybe the server is on the fritz and returns the wrong data. This remote HTTP call could also be slow, causing your tests to break the 5-10 second 'rule'.&lt;br /&gt;&lt;br /&gt;What is my solution? Create mock objects that implement an interface but don't do much. Some methods return nothing, so you may just create an empty method. Others might return an object, so simply create that objects configure it and return it. If you create a mock version of the HTTP interface you can control exactly what happens when it's methods are run.&lt;br /&gt;&lt;br /&gt;Creating the mock objects allows consistency in your tests. Unit tests are all about consistency. If nothing else your unit tests should always perform exactly the same, with the only variable(s) being the object(s) being tested. What this means is that if you are having tests "integrate" with other systems it is no longer a unit test... Which leads me to the next part of this post.&lt;br /&gt;&lt;br /&gt;Integration Testing&lt;br /&gt;&lt;br /&gt;Integration testing is just as important as unit testing. If you are building an application that must integrate with another system you may want to write tests that test your application against the system to integrate with. These tests can let you gain knowledge such as: where things are slow between the two systems, test what happens in various scenarios i.e. testing for error handling, make sure that the system you integrate with can handle the load you put on it, or any other type of integration. Integration tests are more important to run a few times a day while you are actively working on a project. They often to do not run very fast, and could take many minutes or even hours :(&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31481944-4050382605745492376?l=dwark.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dwark.blogspot.com/feeds/4050382605745492376/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31481944&amp;postID=4050382605745492376' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31481944/posts/default/4050382605745492376'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31481944/posts/default/4050382605745492376'/><link rel='alternate' type='text/html' href='http://dwark.blogspot.com/2007/06/testing-your-code.html' title='Testing your code'/><author><name>robottaway</name><uri>http://www.blogger.com/profile/16898889765420671029</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_713t16V0cpQ/SC9PjVsTmiI/AAAAAAAAAAo/o1q0doIWdrs/S220/clintonmaniac.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31481944.post-4136280478277182238</id><published>2007-05-19T16:36:00.001-07:00</published><updated>2007-06-20T10:09:48.268-07:00</updated><title type='text'>Count to 10</title><content type='html'>Well I'm married, working at a new job, in a new state, new apartment, new dishes, new shoes, new haircut...&lt;br /&gt;&lt;br /&gt;Life has been hectic in recent times for those around me and myself! I have been involved in all kinds of events lately, and I look forward to being a homebody for a day, maybe two. I just got back from the &lt;a href="http://makerfaire.com/"&gt;Maker Faire&lt;/a&gt;. Wholly fun time, attend if you can it will be going on tomorrow and also down in Texas (in a month?). They had a huge, human size Mouse Trap Rube Goldberg deal!!! If that does not get you there what will?&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Interesting stuff going on at the jobby job&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;On the work side of things I have putting together some image manipulation code in the last week (my first back since the marriage/honeymoon). I am watermarking pngs, jpegs and pdfs. The pdfs are the hard ones. I am using this lib called &lt;a href="http://www.lowagie.com/iText/"&gt;iText&lt;/a&gt;. My hat is off to Bruno Lowagie and Paulo Soares, the men behind iText. If you need to generate pdfs in the Java language this will be the lib you use (I'm 95.7% sure).&lt;br /&gt;&lt;br /&gt;Oh I also set up Continuum at work so that it sends email notifications when projects break, bam!&lt;br /&gt;&lt;br /&gt;My boss has been playing with Derby. I have some experience with Derby, but mostly in using it for testing w/ Spring + Hibernate + Maven 2. We are using this XML database called Mark Logic. Pretty cool I haven't been let loose on it yet, being busy with many other things... So my boss he created some code which he embedded into Derby that allows him to get documents from the Mark Logic DB. He parses these documents and inserts data into relational db tables within Derby. That guy is a hacker pro! He is also creating an Atom server that can be embedded easily within Java code.&lt;br /&gt;&lt;br /&gt;I love this because it will allow me to create integration tests for an Atom client I am developing (among other Atom based projects I am working on). These tests would not depend on network machines. To outline this; a test begins by starting the embedded server. The server can create a simple Atom workspace containing some feeds and entries in kind. Then I can have my client hit the server (in the test). The nice thing is that I can control the server 100%. Every time the test runs the server will be a fresh copy of the Atom workspace. This is very very useful.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;My Javascript journey&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I've been reading a bit. I read a bunch of &lt;a href="http://www.davidflanagan.com/"&gt;David Flanagan's&lt;/a&gt; 5th edition of "Javascript: The Definitive Guide". The chapter on modules and namespaces was most interesting to me. I haven't used the technique he describes, using objects within Javascript to create a namespace. I see it as a must use technique for any collection of code that you would like to see reused. Unfortunately this technique was not employed in a pet project I have been working on. I will have to spend more time refactoring it so that different parts are packaged under namespaces. Oh well if I never get an actual product working I at least garnered some skills in the whole mess.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Becoming a better programmer&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I'm on a kick to to enable myself to be a better Java programmer. To do this I will be looking at ways to extend my skills in general ways.&lt;br /&gt;&lt;blockquote&gt;Dear readers (LOL): Any tips or stories of how you may have done this for yourself would be appreciated.&lt;/blockquote&gt;I have picked up the books "&lt;a href="http://www.oreilly.com/catalog/jakartackbk/"&gt;Jakarta Commons Cookbook&lt;/a&gt;" and "&lt;a href="http://www.oreilly.com/catalog/javagenerics/"&gt;Java Generics and Collections&lt;/a&gt;". I think these should be helpful. I have sadly known about the Apache commons libs for a long time, and never mustered the energy to explore them. I can see now that was dumb. The commons-lang and commons-logging alone simplify lots of the Java cruft I dislike. Generics is a language feature that I do have some experience with. I have done little to really understand them though. I think the book will be a quick way to expand my language skills. I am also really interested in getting deep into the 1.5 concurrency stuff. Any good book suggestions?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31481944-4136280478277182238?l=dwark.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dwark.blogspot.com/feeds/4136280478277182238/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31481944&amp;postID=4136280478277182238' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31481944/posts/default/4136280478277182238'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31481944/posts/default/4136280478277182238'/><link rel='alternate' type='text/html' href='http://dwark.blogspot.com/2007/05/count-to-10.html' title='Count to 10'/><author><name>robottaway</name><uri>http://www.blogger.com/profile/16898889765420671029</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_713t16V0cpQ/SC9PjVsTmiI/AAAAAAAAAAo/o1q0doIWdrs/S220/clintonmaniac.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31481944.post-3502649598407686987</id><published>2007-04-19T19:30:00.000-07:00</published><updated>2007-05-19T16:26:07.385-07:00</updated><title type='text'>Cool new things report</title><content type='html'>Apple Tv. I bought one. It rocks. It is easy to get content from the many computers around my home. The streaming works flawlessly. I have only once experienced some lag. It also is not too hard to create backups of movies using &lt;a href="http://handbrake.m0k.org/"&gt;Handbrake&lt;/a&gt;. I imagine one could create an enormous library of movies and tv show. Get yourself a netflix account ($20 a month, 3 movies/tv shows discs at a time), a cheap computer with upgraded hard drive ($500), and an Apple Tv ($299). Oh yeah and a HDMI cable ($50-$75). Now you are ready to back up hundreds of movies over the next year. Lets say you back up only 10 movies a month. Thats a 120 movies a year. You could easily do more. Borrow from friends ;) Even if you only stream the movies (less quality) you can have a huge library of movies available.&lt;br /&gt;&lt;br /&gt;Enough about ATV. It rocks.&lt;br /&gt;&lt;br /&gt;So work wise, I am going to be doing some work with Atom. I'm excited. It seems like cool stuff. I've also started messing with my javascript application again. It shouldn't take much longer to get a working release... I don't know when I will have time for working on it.&lt;br /&gt;&lt;br /&gt;A really cool project I have not had time to play with is &lt;a href="http://activemq.apache.org/camel/"&gt;Camel&lt;/a&gt;. It is another brain child of &lt;a href="http://macstrac.blogspot.com/"&gt;James Stratchan&lt;/a&gt;, a guy who has worked on some big open source projects.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31481944-3502649598407686987?l=dwark.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dwark.blogspot.com/feeds/3502649598407686987/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31481944&amp;postID=3502649598407686987' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31481944/posts/default/3502649598407686987'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31481944/posts/default/3502649598407686987'/><link rel='alternate' type='text/html' href='http://dwark.blogspot.com/2007/04/cool-new-things-report.html' title='Cool new things report'/><author><name>robottaway</name><uri>http://www.blogger.com/profile/16898889765420671029</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_713t16V0cpQ/SC9PjVsTmiI/AAAAAAAAAAo/o1q0doIWdrs/S220/clintonmaniac.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31481944.post-8406802464727315969</id><published>2007-03-31T17:45:00.000-07:00</published><updated>2007-03-31T18:43:07.154-07:00</updated><title type='text'>My life needs SCM</title><content type='html'>Well I haven't been able to spend much personal time programming lately. I have accepted a job as a software engineer. My very soon to be wife and myself will be leaving the lovely state of Oregon next weekend. We are relocating near Santa Rosa, California. I'm really excited, but a little bummed by the huge shift in my focus. It'll be weeks before we settle down and I can get back to working on my little pet project. I keep coming up with new stuff I want to start playing around with, which can be rather bothersome. Oh well all I can do is write down these ideas and save them for later. Sometimes other duties come up that keep you from doing what you love to do.&lt;br /&gt;&lt;br /&gt;One of my ideas I haven't gotten around to involves using Rhino. Rhino is a javascript engine implemented with Java. I would like to create a SWING version of my time tracking application. Seeing that the time tracking app is a single page web application, all the core logic is implemented in javascript. I would like to reuse as much of the javascript code as possible. Thats where Rhino would come in.&lt;br /&gt;&lt;br /&gt;In this javascript app I have worked to separate application code through a number of interfaces. There are objects that represent the views. These create and control the HTML elements in the DOM structure. These objects have events that fire, such as when a button in the GUI is clicked. There are objects that maintain the state of the application, these interface with the views. They relay messages to the view. They also have to be able to receive events from the view objects. Therefore we have circular references between the state objects and the view objects. Note one state object may have many references to view objects, but the view objects (so far) have references to only one state object.&lt;br /&gt;&lt;br /&gt;Other objects contained by the state objects will have to be interfaced out. Here I am thinking of the objects that communicate with the server (XMLHTTP!). I have not done this so far. I was thinking about the DAO pattern being used in javascript to do this. This may help to ease working with Java based DAO's in the SWING app implementation. The Java DAO's would drop in to replace the functionality of the XMLHTTP DAO's from the single page web application.&lt;br /&gt;&lt;br /&gt;Let's stop it here. Later these notes could come in handy.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31481944-8406802464727315969?l=dwark.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dwark.blogspot.com/feeds/8406802464727315969/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31481944&amp;postID=8406802464727315969' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31481944/posts/default/8406802464727315969'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31481944/posts/default/8406802464727315969'/><link rel='alternate' type='text/html' href='http://dwark.blogspot.com/2007/03/my-life-needs-scm.html' title='My life needs SCM'/><author><name>robottaway</name><uri>http://www.blogger.com/profile/16898889765420671029</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_713t16V0cpQ/SC9PjVsTmiI/AAAAAAAAAAo/o1q0doIWdrs/S220/clintonmaniac.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31481944.post-4984327892674502266</id><published>2007-03-12T11:55:00.000-07:00</published><updated>2007-03-12T13:42:42.705-07:00</updated><title type='text'>Meeting your goals</title><content type='html'>I have just pushed back a milestone for a project. This project is one I am developing in my own time, by myself. You may find it funny that I even have a milestone for such a project. Like most people, my pet projects are usually more exploratory and therefore do not include any project management. I wanted to try out the 37 signals Basecamp application and figured why not use a this project. So I signed up for my own project site on Basecamp. I called it &lt;a href="http://robottawaycodeparty.grouphub.com/login"&gt;code party&lt;/a&gt;. The project I am tracking here had already been going for a month (maybe a bit longer) before I started using Basecamp.&lt;br /&gt;&lt;br /&gt;So the project I am working just missed a milestone. I said this past Saturday would be the milestone for a dogfood version of my application. Of course my life made sure that this milestone did not happen. Beyond the increase in workload at my place of employment, I have also had family obligations including a vacation up to Seattle for the weekend. Basecamp made sure to email me and let me know that the milestone loomed in my current future. I knew a week before that I would not be hitting this target. So what do I do? Relax. No point in freaking out. Beside the fact that this is a pet project, the best thing you can do in approaching the milestone is plan more.&lt;br /&gt;&lt;br /&gt;I looked at what I had done, which was quite impressive ;) I figured I would not make it to where I wanted to be, so I examined what the missing piece of work was. By examining this missing work I could focus down on exactly what will be needed to be done in the next phase. This is work that should be accomplished before moving on to other work. I narrowed down my ideas so that I could accomplish this as quickly as possible. Other milestones will be moved forward a bit.&lt;br /&gt;&lt;br /&gt;So in summary stay focused and relaxed. Live to fight another day, rather than throwing yourself into the fire. Make sure to not move into another part of the project (unless necessary) until you finish piece you are working on. These are some outlooks that have helped me work through some difficult projects.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31481944-4984327892674502266?l=dwark.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dwark.blogspot.com/feeds/4984327892674502266/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31481944&amp;postID=4984327892674502266' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31481944/posts/default/4984327892674502266'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31481944/posts/default/4984327892674502266'/><link rel='alternate' type='text/html' href='http://dwark.blogspot.com/2007/03/meeting-your-goals.html' title='Meeting your goals'/><author><name>robottaway</name><uri>http://www.blogger.com/profile/16898889765420671029</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_713t16V0cpQ/SC9PjVsTmiI/AAAAAAAAAAo/o1q0doIWdrs/S220/clintonmaniac.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31481944.post-7489888672707271128</id><published>2007-03-04T01:01:00.000-08:00</published><updated>2007-03-04T01:13:48.365-08:00</updated><title type='text'>Required reading</title><content type='html'>If you happen to be a geek like me, then you can appreciate things such as industry humor and history. I don't think any other sector of private business can dare claim to match the level of snake-oil-ness that is found in the modern IT world. Reading is fundamental. Those who do not learn from history are doomed to repeat it. With that little statement out of the way here is some geek-hotness you should be privy to:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://fakesteve.blogspot.com/"&gt;FSJ&lt;/a&gt; - I love my Mac, but iLove (sic) FSJ even more. That is Fake Steve Jobs to the uninitiated.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.folklore.org/index.py"&gt;Folklore.org&lt;/a&gt; - This is another Apple related site. Andy Hertzfield worked for Apple in the long, long ago. He also had a role in the &lt;a href="http://www.osafoundation.org/"&gt;Chandler&lt;/a&gt; project.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31481944-7489888672707271128?l=dwark.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dwark.blogspot.com/feeds/7489888672707271128/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31481944&amp;postID=7489888672707271128' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31481944/posts/default/7489888672707271128'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31481944/posts/default/7489888672707271128'/><link rel='alternate' type='text/html' href='http://dwark.blogspot.com/2007/03/required-reading.html' title='Required reading'/><author><name>robottaway</name><uri>http://www.blogger.com/profile/16898889765420671029</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_713t16V0cpQ/SC9PjVsTmiI/AAAAAAAAAAo/o1q0doIWdrs/S220/clintonmaniac.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31481944.post-2352490348948726018</id><published>2007-02-11T16:05:00.000-08:00</published><updated>2007-02-25T20:02:51.019-08:00</updated><title type='text'>Projects focus</title><content type='html'>I'm seeing first hand why when working on a big project you must have a plan. It has got me thinking about project management (and project non-management ;)&lt;br /&gt;&lt;br /&gt;I am liking the idea of outlining a core set of project artifacts, whose creation are beneficial to a projects focus. With each of these artifacts you should install a quality measurement. First I am going to talk about some of these artifacts, then I will examine some measures of quality to go with them..&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Goals&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Goals are the first artifact I want to talk about. They are usually the driving force in getting a project up and going.&lt;br /&gt;&lt;br /&gt;Set goals for the project. What is it you are accomplishing by completing the project? Goals and business objectives are the same thing. The worst thing that could happen when goal setting would be to name a single goal like "finish X". A goal like this says that the project is not being taken seriously and that nobody is really analyzing it's purpose. Since goals are really the first artifact of a project they should be done well, right? Many parties may be effected by a project. Shouldn't this be considered in your set of goals? (NOTE: These parties are often the users of a project's products, i.e. customers)&lt;br /&gt;&lt;br /&gt;Sadly many projects are built on poor goal setting. If you don't clearly expose the project's goals you can very easily lose sight of the purpose in your project.&lt;br /&gt;&lt;br /&gt;There are at least two default goals for every project. Number one is get the project done as quickly as possible and the second is quality shall not compromised.  Goals can help you to know when you are going off the radar for a project. If an aspect of the project can not be reasoned as building towards one or more project goals then it should not be part of the project. That simple. Goals can help cut out a majority of feature creep. The other big help from goals is to measure the success of a project after completion. Everyone should do this. It rarely happens. I will go into that more later in this post.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Here is a (long) simple example...&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;You have a project for creating an application. It will be used for signing up to play on your companies inter mural sport teams. The big goal is: "make an application that is accessible by every employee across your company intra net".  Another goal is: "get rid of paper sign ups, and centralize the data in a database for documentation and reuse".&lt;br /&gt;&lt;br /&gt;Lets look at a good system requirement: "the application shall be web based". Using a web application for this makes sense. It will make the application very accessible. That helps to meet the big goal. Great. Now let's keep going with these requirements. You create the system requirement: "Use Ruby on Rails for web application platform". Your team is very familiar with Rails and therefore it makes sense to use it for creating the web platform. Both these system requirements also work with the second goal, mainly to have things backed up in a database.&lt;br /&gt;&lt;br /&gt;Now lets look at going off of the radar. One of the new guys on the project is really into learning AJAX. He is like "Hey this  will make the application so much cooler!". You and your team do not have any experience with AJAX, therefore using it would require battling a learning curve. This guy wants the system requirement: "Use AJAX to make application more responsive". Which goal does it help to accomplish. None. And in fact it would be violating goal numero uno, which is to get the project done as quickly as possible. This is something that would be nice to have but does not meet any goals.&lt;br /&gt;&lt;br /&gt;Now if a goal of the project was: "garner new experience in the Web 2.0 domain" (yes this is generic), then you could reason using AJAX techniques in the project. Unfortunately it is rare that these type of things are included into a project's goals. This is because the person(s) setting the goals are very focused on goal #1, getting things done. Often  it is hard to rationalize time spent on learning new things.&lt;br /&gt;&lt;br /&gt;Now going back to  the section above on good requirements for our goals. What if your team was not familiar with Rails, or any other web application platform (LAMP, J2EE, etc.) for that matter? Maybe you and your team have some Java Swing GUI experience. You figure "hey making a GUI based application won't be too hard". But then you think "oh yeah but getting the applications to connect to a central data store across the whole company...". If doing a web application is the best way to accomplish our goals, then you need a web platform (such as Rails). Taking the time to learn the new platform is key to the project and therefore it is not a violation of rule #1.&lt;br /&gt;&lt;br /&gt;In this case there better be one or more goals concerned with learning and using Rails in the project. The business owners in this project would not care so much about these goals. These goals are specific to the engineering domain. The business owner would have to trust that they are necessary. When the project is done you should be able to look at the goals related to working with Rails and know if you met them and/or went outside of them. A goal would be "able to demonstrate good MVC principles in application design using Rails".  These goals should narrow the focus of what is being learned to accomplish the project. Remember no AJAX ;)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Goal creation and documentation&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;You must create the goals and document them. Concise technical writing will almost always beat out spoken word for clarity. Let's say you come up with some goals in a project kickoff meeting. Thats great, but if you don't have a process to document them why bother with the meeting. In a week or two when you and other project members are busy on other things you either won't remember these goals, or worse interpret what they where incorrectly. All you will likely remember is "Get project X done"!&lt;br /&gt;&lt;br /&gt;By documenting the goals  you should be able to translate and connect them with every other project artifacts. When you look at the business requirements gathered for a project you should be able to easily superimpose the goals over them, and see the interconnections. This principle applies to the finished product to. The product for a project should map very easily to the goals that fostered it.&lt;br /&gt;&lt;br /&gt;Goals should be written as clearly and concisely as possible. Most goals should be understandable by persons of varying technical background. Technical aspects related to a goal should be boiled down, with the meat found in the requirements which correspond to the goal. Sometimes goals will be more technical because of the audience. They should still be boiled down to make their purpose clear to as many persons as is possible.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Goal artifact quality&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;So for the 'goals' artifact here are some quality markers off the top of my head:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Each goal clearly identifies its target area such as generate revenue or business, or create new technology. It may help to group like goals when you document them.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;The goals are written concisely, with a general, non-technical audience in mind. This does not mean a goal cannot be technical, just that it should be as non-technical as is possible.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;The goals should be clear enough so when laying out requirements for a project, you are  able to validate each requirement versus one or more of the goals without confusion.&lt;/li&gt;&lt;li&gt;When the project is finished (or maybe at a milestone) you should be able to draw clear comparisons between the goals and the finished product/milestone.&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Goal Assessment (the next artifact)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Why even have goals? We already talked about how they can help keep focus up, and cut down on feature creep. They obviously play a huge part in the requirements gathering process. I would say goals also allow us to gauge our success. This payoff comes mostly after a project is completed. When a product is delivered one can critique it, drawing conclusions about success from how well each goal was accomplished. This critique is part of the documentation. It is an artifact I would call "The goal assessment". It should be done in a way that draws comparisons between the goals and the product's features. On each goal there should be information on what helped or hurt the accomplishing of the goal. If a product feature does not meet the goal(s) then there should be information on how it does not meet the goal, and why that is.&lt;br /&gt;&lt;br /&gt;Now going back to the bad case, where you have one goal "Finish project X!". How the heck can you critique this? You can't. All you can do is rubber stamp the project as 'done'. With no clear documentation on the project's goals you can't do a thorough examination after completion. You are done because you have met the basic idea of what the project was supposed to be. You may have nailed the project's product, but you do not have a clearly documented picture of what has been accomplished.&lt;br /&gt;&lt;br /&gt;Documenting the goals, and how well those  goals where met, has future implications to all projects. When working on later projects you can use these goals to know what has been done and how successful it was. You can examine what made things successful. You can look for tough areas by examining the goals that could not be completed, or that where very hard to complete. If you are working on increasing quality in a particular area you should start by finding related goals on projects past. You can use the data collected about these goals to help in understanding how to increase quality.&lt;br /&gt;&lt;br /&gt;Let us imagine a company that builds radios. They finish a project for a brand new radio machine. One of the goals of this project was to develop and implement better radio reception. They test the newly built product against older products they have built. When people listen to the new radio it is a an obvious to them that the sound is more clear and crisp. The company is happy. Now at the end of the project they have accomplished one of their goals. They should take the opportunity to examine what was done correctly to make this a success.&lt;br /&gt;&lt;br /&gt;For the goal given above; they may document that a new electronic part came into production that made the job possible. In general to all goals, maybe they worked 50 hours a week, rather than the 40 they normally would have.&lt;br /&gt;&lt;br /&gt;Documenting information like the above in a goal assessment allows you to see the good and bad. When going back and reviewing this a year later you would want to be re-reminded of some of the things you had forgotten.&lt;br /&gt;&lt;br /&gt;Goal assessment quality&lt;br /&gt;&lt;br /&gt;Here is another quick top of the head list for quality in this artifact:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Collected information is easy to understand.&lt;/li&gt;&lt;li&gt;Each piece of information is connected to one or more goals, or possibly is general enough to connect with all goals (such as the working extra hours example above).&lt;/li&gt;&lt;li&gt;Nothing should be barred from this assessment. If you think a project members input is silly still put it in. If someone says the broken coffee pot caused work to slow down, they may be serious.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31481944-2352490348948726018?l=dwark.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dwark.blogspot.com/feeds/2352490348948726018/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31481944&amp;postID=2352490348948726018' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31481944/posts/default/2352490348948726018'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31481944/posts/default/2352490348948726018'/><link rel='alternate' type='text/html' href='http://dwark.blogspot.com/2007/02/projects-focus.html' title='Projects focus'/><author><name>robottaway</name><uri>http://www.blogger.com/profile/16898889765420671029</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_713t16V0cpQ/SC9PjVsTmiI/AAAAAAAAAAo/o1q0doIWdrs/S220/clintonmaniac.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31481944.post-2561525716702408425</id><published>2007-01-27T08:00:00.000-08:00</published><updated>2007-01-27T09:00:35.244-08:00</updated><title type='text'>Start a community</title><content type='html'>It's becoming harder for me to get in here and blog! I have plenty to write, but I'm just so involved in all sorts of little projects out side of work. One of them is looking into getting a web site going. I have one right now, but it is pretty weak. I have started writing my own community site from scratch using Ruby. If you don't know the idea of a community site, it is one where you offer membership. Each member gets privileges to applications such as forums, blogs, email, etc. The number of apps availiable depends on the site. &lt;a href="http://www.yahoo.com/"&gt;Yahoo&lt;/a&gt; is a community site offering a lot of apps to it's members. &lt;a href="http://www.vwvortex.com/"&gt;VWVortex&lt;/a&gt; is an example of a site that mostly offers forums for its users. Both sites could be considered community based sites.&lt;br /&gt;&lt;br /&gt;So back to my work...  I started writing the site using Rails. I have made a lot of headway into creating the articles application. I have a great javascript text editor embeded, which gives the ability to jump back and forth between editing html and rich text. Writing stuff from scratch is always a good learning experience. Writing a web app like this lets you learn to solve lots of little problems, which for me is fun.&lt;br /&gt;&lt;br /&gt;Now I'm not sold on having my site run 'On Rails'. Although I really like Ruby, and find the Rails framework very cool, I don't need to have my personal site project be based off of it. I decided to look at some other options. I looked at &lt;a href="http://www.zope.org/"&gt;Zope&lt;/a&gt;, which is pretty cool. You can run &lt;a href="http://plone.org/"&gt;Plone&lt;/a&gt; on Zope, which was my main attraction to Zope. Plone is a feature rich CMS. Plone uses the &lt;a href="http://kupu.oscom.org/"&gt;Kupu&lt;/a&gt; project for text editing. Kupu is a free, advanced article editing javascript application. I like it a lot, and tried to tie it into my Rails site. If you watch the Plone screencasts, a lot of the functions being shown are implemented by Kupu. Plone brings together lots of features for editing and managing your content. It uses lots of DHTML features, which is really nice. My main problem with Zope/Plone is needing that specialized hosting to run a Zope site. It is more costly, and also there is not that great a demand for Zope/Plone experts out there.&lt;br /&gt;&lt;br /&gt;Now I kept looking. I used to be all into writing my web apps using PHP. Oh yeah, good old get 'r' done PHP.... Well it sure has been awhile. In looking for something that already has built in community features, and is written in PHP I found &lt;a href="http://drupal.org/"&gt;Drupal&lt;/a&gt;! In like one hour I had it installed, set up some users, gave them each a blog, created forums and I'm just getting started. Drupal seems to have a simple, modularized approach to extending its base functions. This means if you don't like the blog app that ships with it you can write a new on and drop it in, or find a better one some else already wrote. That is powerful stuff. Drupal takes care of managing all the security and templating.&lt;br /&gt;&lt;br /&gt;I'm going to have to look a little further into how one goes about writing a new module. I am first going to install and configure some of the 3rd party modules that are out there, just to get a feel of how it all works.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31481944-2561525716702408425?l=dwark.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dwark.blogspot.com/feeds/2561525716702408425/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31481944&amp;postID=2561525716702408425' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31481944/posts/default/2561525716702408425'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31481944/posts/default/2561525716702408425'/><link rel='alternate' type='text/html' href='http://dwark.blogspot.com/2007/01/start-communityhttpwww2bloggercomimggll.html' title='Start a community'/><author><name>robottaway</name><uri>http://www.blogger.com/profile/16898889765420671029</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_713t16V0cpQ/SC9PjVsTmiI/AAAAAAAAAAo/o1q0doIWdrs/S220/clintonmaniac.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31481944.post-116559957746942722</id><published>2006-12-08T09:17:00.000-08:00</published><updated>2006-12-08T09:39:37.480-08:00</updated><title type='text'>Rolling a long</title><content type='html'>Well it's been a long time since I've posted anything. Lately there has just been soo many projects, work and pet.&lt;br /&gt;&lt;br /&gt;I've spent time playing with Portlets, using the Spring 2.0 MVC and Hibernate. I've also been hacking at an interesting application called 'Democracy Player'. The software has versions for Windows, Mac OS X and Linux. Each one uses different means of GUI rendering. On Mac Cocoa is used and on Linux Gtk. It is mostly written in Python, with some C/C++/ObjC used for the native GUI. I'm liking Python, much like I have enjoyed the little work I have got to do with Ruby.&lt;br /&gt;&lt;br /&gt;At work it's been lots of integration work. I've been tasked with reimplementing some old integration processes with our new ERP solution. One big integration point in our legacy system is Amazon. I've just finished integrating my companies warehouse fulfillment data with Amazon. Next thing is to integrate our returns/cancellation/refund data with Amazon. I've been doing a bit of tweaking here and there for the order entryways. I created a simple rest like web service to take orders, returning an immediate sales order. This was needed for a couple of satallite sites that we deal with. They need to know right away if a sales order was successfully created. The other entry point which we will soon use for all web order entry is the messaging system. The messaging system makes submitting orders from just about any app, written in any language trivial. It also allows our companies order data to flow smoothly through from web to ERP.&lt;br /&gt;&lt;br /&gt;Not a lot new here.... Hopefully I will have something more interesting to post here soon!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31481944-116559957746942722?l=dwark.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dwark.blogspot.com/feeds/116559957746942722/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31481944&amp;postID=116559957746942722' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31481944/posts/default/116559957746942722'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31481944/posts/default/116559957746942722'/><link rel='alternate' type='text/html' href='http://dwark.blogspot.com/2006/12/rolling-long.html' title='Rolling a long'/><author><name>robottaway</name><uri>http://www.blogger.com/profile/16898889765420671029</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_713t16V0cpQ/SC9PjVsTmiI/AAAAAAAAAAo/o1q0doIWdrs/S220/clintonmaniac.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31481944.post-116180810265385286</id><published>2006-10-25T13:05:00.000-07:00</published><updated>2006-10-25T13:28:22.666-07:00</updated><title type='text'>Integration across the board</title><content type='html'>So I've come to a point where I have Windows services reading from ActiveMQ = AMQ (it's MOM software) and feeding a system via a COM connector. The COM connector seems to be holding up really well. Last night I was tossing messages at AMQ at a rate of 10 per second. These messages are about 150-200 characters in size. I tested 360010 message going through. The messages finally ended up in a database. This morning I checked and 360010 messages where in the table! Also the software I use to track the status of the AMQ showed that 360010 messages had been put on a queue, and the same amount read off. So things are looking up.&lt;br /&gt;&lt;br /&gt;I used Ruby to send the messages onto AMQ. I think I have mentioned before that there is a simple messaging protocol called STOMP, which I used to connect to AMQ from Ruby. AMQ has a snappy transport connector which allows you to do this. AMQ also allows you to write your own transport connector, so if you don't like a protocol write your own :)&lt;br /&gt;&lt;br /&gt;I'm testing changes I made to the STOMP Ruby client. I made it much easier to use the client to send messages that get marshalled in the AMQ STOMP transport connector. The client as it came did not make it possible to send what would be a JMS TextMessage in AMQ. Messages that came from the basic client came into AMQ and got marshalled into the JMS BinaryMessage type. The AMQ transport allows for marshalling to BinaryMessage or TextMessage, depending on STOMP header settings. With some simple Ruby coding I have a modified client that now has an extra method 'sendTextMessage'. When using this method the message in AMQ will be marshalled as a TextMessage! TextMessage fits our current purposes better than BinaryMessage.&lt;br /&gt;&lt;br /&gt;So back to the testing. I have 4 producers spitting 20 messages a second onto a queue, and one consumer reading messages off of the queue as fast as it can. I'm up near 200k messages sent/received and counting. I'll see if things can break at some point :) I also have the Windows service coming on and off to take messages from this queue. This tests how well things are handled with consumers going down and coming online on the fly.&lt;br /&gt;&lt;br /&gt;So the big picture is to be able to easily integrate a M$ product into a ESB using the AMQ messaging system. Rather than have to handle the problem of the M$ product dying and data being dropped we will have a scenario where messages are kept and fed over when the product comes back online. We should also have an easy time reusing bizz logic components in the ESB.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31481944-116180810265385286?l=dwark.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dwark.blogspot.com/feeds/116180810265385286/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31481944&amp;postID=116180810265385286' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31481944/posts/default/116180810265385286'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31481944/posts/default/116180810265385286'/><link rel='alternate' type='text/html' href='http://dwark.blogspot.com/2006/10/integration-across-board.html' title='Integration across the board'/><author><name>robottaway</name><uri>http://www.blogger.com/profile/16898889765420671029</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_713t16V0cpQ/SC9PjVsTmiI/AAAAAAAAAAo/o1q0doIWdrs/S220/clintonmaniac.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31481944.post-116144555187026080</id><published>2006-10-21T08:04:00.000-07:00</published><updated>2006-10-21T08:45:51.900-07:00</updated><title type='text'>More messaging fun!</title><content type='html'>In my last post I talked about using a STOMP client for Ruby. STOMP is a very light weight protocol for doing messaging.  I have implemented an ESB (Servicemix) and messaging system (ActiveMQ) for my company. Our business depends on many programming languages, databases, software and such to keep things running. STOMP as I explained before allows the web guys at my work to message our system using Perl, Ruby, Python, C# and more :). This will allow for easy routing of web data through our ESB.&lt;br /&gt;&lt;br /&gt;The goal for now is to set up orders to flow through the ESB for our web department. We are using this new piece of software to do all our CRM, product maintenance and other business functions. I have refered to this software as 'Magic' and will continue to here. Orders will need to flow into Magic somehow. Magic is M$ built, and I figured why not put the ActiveMQ NMS implementation to use. NMS is like a .Net version of JMS. The guys over on the ActiveMQ project created an implementation of NMS for ActiveMQ. This is very nice of them. I can now use either a STOMP client or NMS client to message with ActiveMQ from my C# code!&lt;br /&gt;&lt;br /&gt;So at first I tried to create .dll libraries of the AMQ NMS implementation, then load those into Magic. Magic has CLR functionality in it's newest release. This means that the language you code with inside Magic can use objects written in C#, VB.net, Java, and on... The problem is the CLR implementation in Magic is lame! It does not support language features like events, delegates, virtual functions etc. So I cannot use the NMS code inside of Magic. Bummer. I mulled for a day about this one while working on other stuff. Then I found an idea.&lt;br /&gt;&lt;br /&gt;Magic has a COM connector, which allows you to call pretty much any code written in Magic. This is nice for executing remote procedure calls to Magic. So my new solution is to write Windows services which do the messaging, then pass/pull data from Magic using the COM connector! I have already  written my first service. It writes a simple XML doc to a queue on a separate machine every 30 seconds or so.&lt;br /&gt;&lt;br /&gt;Now that I have this written I will be focusing on writing the COM connector code to push and pull messages from Magic. Pushing is the easy part as Asynchronous communication is easy to keep. As a message comes in, the service will grab it and push it over to Magic. Pulling data out may be harder. Right now I use a timer object in my service, to execute some functions every 30 seconds. I figure I  may have to do this polling type thing to pull data. It sucks, but it is better than the alternative. In the long run it allows finer tuning of how the data will flow across our system.&lt;br /&gt;&lt;br /&gt;Right now we are getting data out of Magic using web services. I'm not impressed with web services. The only time people ask me to write them is for improper purposes. When we need to get data out of Magic, we run batch processes which send the data to an external web service. Magic spams out large chunks of data to the web service, causing it to stress badly. But for the most part the web service sits there doing nutin :) It's not a very pretty picture. With messaging we can take the flow and streamline it. Messages flow out as they are created, not at batch time. The message consumer can pull the messages as it likes, rather than having to deal with a large volume being spamed to it. This relieves stress accross the system. very nice. I think my boss is convinced that this is the way we should go. I just need to get the many pieces of this together, so that we can do some testing.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31481944-116144555187026080?l=dwark.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dwark.blogspot.com/feeds/116144555187026080/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31481944&amp;postID=116144555187026080' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31481944/posts/default/116144555187026080'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31481944/posts/default/116144555187026080'/><link rel='alternate' type='text/html' href='http://dwark.blogspot.com/2006/10/more-messaging-fun.html' title='More messaging fun!'/><author><name>robottaway</name><uri>http://www.blogger.com/profile/16898889765420671029</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_713t16V0cpQ/SC9PjVsTmiI/AAAAAAAAAAo/o1q0doIWdrs/S220/clintonmaniac.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31481944.post-116105534114615103</id><published>2006-10-16T19:42:00.000-07:00</published><updated>2006-10-16T20:28:12.513-07:00</updated><title type='text'>STOMP</title><content type='html'>I started something in motion today at work. A thing that may revolutionize inter-departmental communciation. I am urging the Perl/Ruby hackers at my work to get involved with my Smix/Amq habit. They will be doing so using the Perl or Ruby client for &lt;a href="http://stomp.codehaus.org/Home"&gt;STOMP&lt;/a&gt;. STOMP is a very simple protocol for doing messaging. When I say simple I mean it. Look at the &lt;a href="http://svn.codehaus.org/stomp/ruby/trunk/lib/stomp.rb"&gt;code&lt;/a&gt; for the Ruby client. AMQ, my favorite implementation of the Java Messaging Service (&lt;a href="http://java.sun.com/products/jms/"&gt;JMS&lt;/a&gt;), offers an adapter so that you may handle STOMP messaging clients. SWEET!!!&lt;br /&gt;&lt;br /&gt;So what does that mean for me? Well those web guys are Perl/Ruby/PHP masters but don't like the idea of getting their feet wet with Java. I wrote up some super simple Ruby scripts for doing &lt;a href="http://www.activemq.org/site/stomp.html"&gt;STOMP messaging with AMQ&lt;/a&gt;. One pair of scripts reads and writes messages from/to a topic respectively. The other pair of scripts reads and writes message from/to a queue respectively. Publishing and consuming of messages happened very quickly. I'm hoping we can get some measurements soon.&lt;br /&gt;&lt;br /&gt;I showcased this stuff to one of the top web programmer guys. I don't know if he was wow'ed but he seems excited to start playing with it. I also got him to install the Java 1.5 SDK on his windows machine. He needs it so that he can use jconsole to monitor messaging in AMQ. Jconsole is bundled with the SDK, and is used to access JMX enabled apps. &lt;a href="http://java.sun.com/products/JavaManagement/"&gt;JMX&lt;/a&gt; stands for Java Management Extensions. It's pretty nice to see exactly whats going on with your messaging service.&lt;br /&gt;&lt;br /&gt;I'm pretty excited. This should make working with the web team much easier. In the past my department has used flat files and web services to communicate. This will add an extra way for our processes to communicate.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31481944-116105534114615103?l=dwark.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dwark.blogspot.com/feeds/116105534114615103/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31481944&amp;postID=116105534114615103' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31481944/posts/default/116105534114615103'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31481944/posts/default/116105534114615103'/><link rel='alternate' type='text/html' href='http://dwark.blogspot.com/2006/10/stomp.html' title='STOMP'/><author><name>robottaway</name><uri>http://www.blogger.com/profile/16898889765420671029</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_713t16V0cpQ/SC9PjVsTmiI/AAAAAAAAAAo/o1q0doIWdrs/S220/clintonmaniac.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31481944.post-116034434785206784</id><published>2006-10-08T12:42:00.000-07:00</published><updated>2006-10-16T20:29:42.113-07:00</updated><title type='text'>And the award goes to!</title><content type='html'>&lt;span style="font-weight: bold;"&gt;WARNING: extreme rant dead ahead!&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;I'm about to be totally slammed. By slammed I mean that I will have no social life and spend all my time working on a huge project. My predicament stems from poor planning from the top down. My company has decided to build a brand new warehouse,  running it on completely new software, for our purposes we will call if 'LowSquat'. Oh yeah and they also have brought in a completely new piece of software to run all the business functions such as: customer support, order entry, and product data management. Let's call this software 'Magic'!&lt;br /&gt;&lt;br /&gt;Magic is not written yet. It's a piece of software which you build 'vertically' to suit your company. Magic's manufacturer licenses business partners to build these 'vertical solutions' (tailored software for client companies). Magic has some great features. It allows us developers to make changes, or create whole new applications that run in it's environment. Thats great and all, but Magic's out of the box the software doesn't do what we need it to do. It comes with a bunch of basic, 'vanilla' applications (like customer service, order entry, and financials). It will be our developers jobs to extend these apps so that they meet our business needs. Fun... So we need to work with this partner to develop Magic's apps/functions, then integrate with the warehouse software (LowSquat), inventory planning software etc. We do this and make sure that this happens right on time (a date that exists only based on construction of the warehouse!).&lt;br /&gt;&lt;br /&gt;I wouldn't be so bent out of shape if I trusted the management at my work. Unfortunately they have shown that they do not want to extend themselves. So far I have seen a lot of half measures. Small changes in the way we do things that make little benefit, or that are all talk. One huge obstacle in the project moving forward is that they expect us to already know how the vanilla apps work. Our management's expectations (which do not exist on paper) are going to kill this project. No one knows exactly how all the vanilla apps work. We also do not have the test data set up to properly to 'play' with Magic's vanilla apps. So how do we find out how the unmodified Magic software works? It would be obvious to any project manager that to gather requirements for modifying Magic, you would first need to be very comfortable (dare I say an expert) with Magic.&lt;br /&gt;&lt;br /&gt;The software also will be different when we go live. We are using Magic 2.5, but when we go live we will be using a whole new version 3.1!!! 3.1 is completely different in some respects. So why is that a problem? We won't have 3.1 until a month before the projects due for completion. Yikes.&lt;br /&gt;&lt;br /&gt;A little background on the project so far. We first worked on a small 'sample' phase of the project. It was one piece of many, and it took damn near 5 months (for me) to complete. The planning for that phase did nothing but cause problems. The milestones/deliverables had dates set that did not rely on any useful information. No one in management bothered to write a full project plan that detailed each feature, how it should work, how all features integrate, how to test each and know it works etcettera. The project was actually just set up by someone with *some* technical experience, so that with dates combined we would hit a certain launch date. This launch date came from above I think. It was bad...one day during a meeting I was given the timetable to complete tasks assigned to me. Laughably, we spent hours going over this completely groundless plan. I could have used that time to do some real work. I don't know how the management felt about the meetings, but they left me frustrated, and I wonder what they got from them.&lt;br /&gt;&lt;br /&gt;Another big miss on the 'sample' phase was not communicating across departments. People in departments which should have been involved never knew about our project. We where unaware of how our our project would affect other people's jobs. What happened was I was knee deep in development and finally the word got out what was going to happen. People were unhappy. Last minute, when the project should have been sailing to completion, a bunch of new 'critical' requirements came up. Since time was so short we had to hack together whatever we could. There was no way that we where going to postpone the project launch.&lt;br /&gt;&lt;br /&gt;Another real problem I have is that no contact list has been provided. We should have a list of all 'power users' or 'insanely knowledgeable' contacts on each facet of our business. That way I don't have to chase around to find the expert. This allows me to quickly contact a person and get the info I need. We should also have proper training, and facilities to get the training we need. I should not have to wait for 1/2 a day or more to get the email describing what I need.&lt;br /&gt;&lt;br /&gt;I guess the above comes to this point: if you don't bother to do a good job, don't expect me to do it for you! By good job I don't mean that you work real hard. I mean you work smart. You know what it is you are doing, and why you are doing it, and why it is a benefit. You communicate those things to other people (on paper!). You look for solutions to problems, problems that you confidently define (on paper!). You face those problems one by one, but all the while keep the big picture in view. Dates that are not created from thoughtful, thorough planning, but from need to hit a date are just a waste of everyones time.&lt;br /&gt;&lt;br /&gt;I wish that the management had brought in more experienced people to manage the project. I seriously question the fact that we have total 'greenies' running the show. A project of this caliber requires massive planning. Even I know that and I'm just a low peon of IT. The planning has been lax. They basically drummed up a bunch of 'gaps' and said to me and mine "here you guys figure these out and implement the solution". Great f#*king project management! Now that they have gone through all that hard work to find what the gaps are, I can:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;Become an expert on the current business functions (much of which I don't know)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Become an expert on Magic's business functions, look for gaps :(&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Compare the 2.5 Magic app to the 3.1 Magic app, find gaps&lt;br /&gt;&lt;/li&gt;&lt;li&gt;In one month implement all the fixes to the vanilla 3.1 Magic release so that it can run our companies business functions&lt;br /&gt;&lt;/li&gt;&lt;li&gt;find out if proper functions exist in the new software&lt;br /&gt;&lt;/li&gt;&lt;li&gt;write business requirements&lt;br /&gt;&lt;/li&gt;&lt;li&gt;write design requirements&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Create milestone/deliverables (running tested features?)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;implement solutions (git' codin)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;make contact with the users/customers&lt;br /&gt;&lt;/li&gt;&lt;li&gt;test the solutions&lt;br /&gt;&lt;/li&gt;&lt;li&gt;write test plans (maybe in my head only)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;document proper processes&lt;br /&gt;&lt;/li&gt;&lt;li&gt;document my time and progress&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Create and set my own goals, milestones and deliverables&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Manage people on my team&lt;br /&gt;&lt;/li&gt;&lt;li&gt;More to come&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;Compound all this work with the following:&lt;ul&gt;&lt;br /&gt;&lt;li&gt;Create plans to train employees on new software&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Train the employees on new software&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Test the fully integrated solution&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Test the warehouse on the new softwares&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Collect info on the terrible bugs (don't sweat the small ones ;)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Fix the terrible bugs (probably goes in my list above)&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;There has got to be many things I'm missing here. When I look at all the things we have to do, and how much talent we have to do it, I just can't fathom things going well. At least I know I will do the absolute best I can :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31481944-116034434785206784?l=dwark.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dwark.blogspot.com/feeds/116034434785206784/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31481944&amp;postID=116034434785206784' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31481944/posts/default/116034434785206784'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31481944/posts/default/116034434785206784'/><link rel='alternate' type='text/html' href='http://dwark.blogspot.com/2006/10/and-award-goes-to.html' title='And the award goes to!'/><author><name>robottaway</name><uri>http://www.blogger.com/profile/16898889765420671029</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_713t16V0cpQ/SC9PjVsTmiI/AAAAAAAAAAo/o1q0doIWdrs/S220/clintonmaniac.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31481944.post-115993975406196488</id><published>2006-10-03T17:39:00.000-07:00</published><updated>2006-10-03T22:29:14.106-07:00</updated><title type='text'>Maven 2 + Hibernate + HSQLDB</title><content type='html'>Maven make projects very portable. Hibernate makes working with persistent objects simple. HSQLDB is a Java database that you can run embeded in other programs.&lt;br /&gt;&lt;br /&gt;A problem with using Hibernate is it can take away some of the portability of your project. This is because you will need to provide a database for making your objects persistent. In doing so your test config files will be spec'd to a single database. What happens when someone runs the project's tests and does not have access to the test database? The tests will fail :( We want to have unit tests be used for all our hibernate objects. It is especially important to thouroughly test them, as they will be a central part of your projects functioning properly (especially web projects!).&lt;br /&gt;&lt;br /&gt;Luckily Maven makes it easy to use one database for testing, and another for production. This is where HSQLDB can come in handy. You can create a hibernate config  just for testing which connects to an in memory HSQL database. You will need the proper files in src/test/resources folder of your Maven 2 project. The files include the test version of your hibernate config file, and also the test hibernate mapping files that accompany your code. I put the hibernate mapping files into folders that mirror the packaging of the POJO object classes. When you run '&lt;code&gt;mvn package&lt;/code&gt;' the .hbm files will be placed in the same folder as the POJO class they belong to. Here is an example of my Maven 2 project's structure:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;/project&lt;br /&gt;pom.xml&lt;br /&gt;...other files&lt;br /&gt;/src&lt;br /&gt;  /main&lt;br /&gt;      /java&lt;br /&gt;          /some&lt;br /&gt;              /package&lt;br /&gt;                  Foo.java&lt;br /&gt;      /resources&lt;br /&gt;          hibernate.cfg.xml&lt;br /&gt;          /some&lt;br /&gt;              /package&lt;br /&gt;                  Foo.hbm.xml&lt;br /&gt;  /test&lt;br /&gt;      /java&lt;br /&gt;          /some&lt;br /&gt;              /testpackage&lt;br /&gt;                  TestFoo.java&lt;br /&gt;      /resources&lt;br /&gt;          hibernate.cfg.xml&lt;br /&gt;          /some&lt;br /&gt;              /package&lt;br /&gt;                  Foo.hbm.xml&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;So you can see that there are a set of hibernate files for the build and the test phase. Now in the test hibernate.cfg.xml file you will need to have the following properties set:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&amp;lt;!-- Database connection settings --&amp;gt;&lt;br /&gt;&amp;lt;!-- HSQL DB --&amp;gt; &lt;br /&gt;&amp;lt;property name="connection.driver_class"&amp;gt;org.hsqldb.jdbcDriver&amp;lt;/property&amp;gt;&lt;br /&gt;&amp;lt;property name="connection.url"&amp;gt;jdbc:hsqldb:mem:aname&amp;lt;/property&amp;gt;&lt;br /&gt;&amp;lt;property name="connection.username"&amp;gt;sa&amp;lt;/property&amp;gt;&lt;br /&gt;&amp;lt;property name="connection.password"&amp;gt;&amp;lt;/property&amp;gt;&lt;br /&gt;&lt;br /&gt;and...&lt;br /&gt;&lt;br /&gt;&amp;lt;property name="dialect"&amp;gt;org.hibernate.dialect.HSQLDialect&amp;lt;/property&amp;gt;&lt;br /&gt;&amp;lt;mapping resource="some/package/Foo.hbm.xml" /&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;These entries should have you now set up to use a in memory database for all your testing with hibernate. But before this will work you need to do one more thing.&lt;br /&gt;&lt;br /&gt;Set up you Maven 2 project so that HSQLDB is a dependency. Added this dependency section to your project:&lt;br /&gt;&lt;pre&gt;&lt;code&gt;&lt;br /&gt;&amp;lt;dependency&amp;gt;&lt;br /&gt;    &amp;lt;groupId&amp;gt;hsqldb&amp;lt;/groupId&amp;gt;&lt;br /&gt;    &amp;lt;artifactId&amp;gt;hsqldb&amp;lt;/artifactId&amp;gt;&lt;br /&gt;    &amp;lt;version&amp;gt;1.8.0.1&amp;lt;/version&amp;gt;&lt;br /&gt;&amp;lt;/dependency&gt;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Note that you will not need to make any specific JDBC driver available. The HSQLDB dependency contains the proper driver!&lt;br /&gt;&lt;br /&gt;Using this pattern you will be able to make very portable Maven/Hibernate projects. Users any place in the world will be able to check out your project and test it immediately. If they would like to test using their own database it is not hard for them to overwrite what is in the src/test/hibernate.cfg.xml file.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31481944-115993975406196488?l=dwark.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dwark.blogspot.com/feeds/115993975406196488/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31481944&amp;postID=115993975406196488' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31481944/posts/default/115993975406196488'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31481944/posts/default/115993975406196488'/><link rel='alternate' type='text/html' href='http://dwark.blogspot.com/2006/10/maven-2-hibernate-hsqldb.html' title='Maven 2 + Hibernate + HSQLDB'/><author><name>robottaway</name><uri>http://www.blogger.com/profile/16898889765420671029</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_713t16V0cpQ/SC9PjVsTmiI/AAAAAAAAAAo/o1q0doIWdrs/S220/clintonmaniac.jpg'/></author><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31481944.post-115954554411845584</id><published>2006-09-29T08:38:00.000-07:00</published><updated>2006-10-09T06:42:24.086-07:00</updated><title type='text'>Open source commercialism or: how I learned to stress test and prove the app</title><content type='html'>For any perspective software you may use to run a company, you will need a guaruntee that it will be able to handle what you throw at it. In the case of a bleeding edge, open source project that shows much potential you really want to make that software work. Besides the benefits of open source, such as the code being downloadable/editable/compilable, the software is free!!! Pair that with the fact that if it is a hot project then many eyes have glanced the codebase, and many users have filed many bug reports and feature requests on issues they have. Open source projects can be very commercialy viable: just look at &lt;a href="http://tomcat.apache.org/"&gt;Tomcat&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I am working with a ambitious piece of software called Servicemix &lt;a href="http://servicemix.org/site/home.html"&gt;(Smix)&lt;/a&gt;. If things go well it could really help me and my company out. While we have been using it in our production system for over 3 months I have not had time to really stretch it out. What I mean is test more of the 'out of the box' functionality in stressed ways. Smix is an &lt;a href="http://en.wikipedia.org/wiki/Enterprise_Service_Bus"&gt;ESB&lt;/a&gt; which implements the Java Business Integration (&lt;a href="http://java.sun.com/integration/"&gt;JBI&lt;/a&gt;) specification. This specification is much like the Sun servlet spec, JDBC spec etc. Those Sun guys love their specs!&lt;br /&gt;&lt;br /&gt;To really test out this software I have created some basic service assemblies (SA). A service assembly allows you to package together functionality that comprises any number of processes. It is also part of the JBI spec. An example of a SA would be a consumer for a &lt;a href="http://java.sun.com/products/jms/"&gt;JMS&lt;/a&gt; topic queue, which passes all messages to an XSLT transformer, which in turn passes the message to an app that processes the messsage and inserts the data into a database. This would all be packaged into one file for deployment. Those familiar with J2EE would think of it as a .ear file. If an SA is analogous to a .ear, then a service unit (SU) would be to .war. In the previous example the SU's would be the JMS routing, the XSLT services, and the database service. Each would be packaged as it's own service unit in Smix.&lt;br /&gt;&lt;br /&gt;Now I also created a configurable JMS provider, which can be tasked with many different things. I created a configurable JMS consumer, which can read from a queue. Last night I sent 75,000 small messages through an SA I created which does two separate XSLT transforms. The transfromed results go onto two separate queues. The contents of those queues are consumed by two of the consumers I created. Everything went off hitch free! Very nice for my first real foray into stress testing Smix. Here are some approx. results:&lt;br /&gt;&lt;br /&gt;Started message providing: ~9:40 pm&lt;br /&gt;&lt;br /&gt;Message provider rate: ~6-7 message per second&lt;br /&gt;Message consumer rate: 7.8125 messages per second&lt;br /&gt;&lt;br /&gt;Message consumer 1 finished: 2006.09.28 AD at 22:38:17:108 PDT&lt;br /&gt;Message consumer 2 finished: 2006.09.28 AD at 22:38:17:108 PDT&lt;br /&gt;&lt;br /&gt;The message payload:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;message&amp;gt;&lt;br /&gt;    &amp;lt;count&amp;gt;(message #)&amp;lt;/count&amp;gt;&lt;br /&gt;    &amp;lt;datetime&amp;gt;(date-time inserted)&amp;lt;/datetime&amp;gt;&lt;br /&gt;&amp;lt;/message&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;An example of a transformed message:&lt;br /&gt;&lt;pre&gt;&amp;lt;ecometry&amp;gt;2 ::: 2006.09.29 AD at 07:47:41:996 PDT&amp;lt;/ecometry&amp;gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31481944-115954554411845584?l=dwark.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dwark.blogspot.com/feeds/115954554411845584/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31481944&amp;postID=115954554411845584' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31481944/posts/default/115954554411845584'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31481944/posts/default/115954554411845584'/><link rel='alternate' type='text/html' href='http://dwark.blogspot.com/2006/09/open-source-commercialism-or-how-i.html' title='Open source commercialism or: how I learned to stress test and prove the app'/><author><name>robottaway</name><uri>http://www.blogger.com/profile/16898889765420671029</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_713t16V0cpQ/SC9PjVsTmiI/AAAAAAAAAAo/o1q0doIWdrs/S220/clintonmaniac.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31481944.post-115936380887953725</id><published>2006-09-27T06:18:00.000-07:00</published><updated>2006-09-27T06:30:42.976-07:00</updated><title type='text'>Working</title><content type='html'>Lot's of work with Servicemix... I have checked out the newest SNAPSHOT release and built it, deploying all the project artifacts into my companies Maven snapshot repository. I'm trying now to get all the conifguration I had for Smix before into tidy little service assemblies (SA's). These are kinda like .ear files, in that they contain service units (SU's) which are sorta like a .war. The whole service assembly idea is from the JBI specification, which Smix implements.&lt;br /&gt;&lt;br /&gt;I'm working mostly now on learning to develop for JBI and Servicemix. The newest snapshot release has reworked examples which show how to use the maven-jbi-plugin to easily create and deploy JBI components (shared libs/binding components/service engines/service assemblies). I am posting a little Smix developer roadmap over on the Smix site; follow this &lt;a href="http://goopen.org/confluence/display/SM/Users+space?showComments=true#comments"&gt;link&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;...also on the board is getting CVS managed projects into Subversion. Our SVN repository is now up and ready to go. We got  the cvs2svn tool installed, which will allow for migrating one project at a time from CVS to SVN. The benefit in doing this is all historical information for the CVS managed project will be translated into SVN. Very nice!&lt;br /&gt;&lt;br /&gt;With Subversion up and running I hope to soon get Continuum installed on our development server. It is a continuos integration server which works very well with Maven 2. It also works with plain old Ant, or Maven 1. Another thing on the board is getting a nice front end to our Subversion repository. I looked at fisheye, it is pretty nice but costs a bit of dough to use. I passed it up to my boss. If he is impressed then maybe we will end up writing the check&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31481944-115936380887953725?l=dwark.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dwark.blogspot.com/feeds/115936380887953725/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31481944&amp;postID=115936380887953725' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31481944/posts/default/115936380887953725'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31481944/posts/default/115936380887953725'/><link rel='alternate' type='text/html' href='http://dwark.blogspot.com/2006/09/working.html' title='Working'/><author><name>robottaway</name><uri>http://www.blogger.com/profile/16898889765420671029</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_713t16V0cpQ/SC9PjVsTmiI/AAAAAAAAAAo/o1q0doIWdrs/S220/clintonmaniac.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31481944.post-115895918392241732</id><published>2006-09-22T13:56:00.000-07:00</published><updated>2006-09-22T14:07:01.410-07:00</updated><title type='text'>Servicemix, Spring 2.0 Maven poms in central</title><content type='html'>My work with portals has been stopped as of late. I talked to someone at the Spring project, offereing my services to get some poms together for the Spring dependencies. I found out that Ben Hale, a member of that project is going to be doing this. Can't wait for those to be up. Then I can Maven-ize the petportal app and offer it up.&lt;br /&gt;&lt;br /&gt;I have been hacking away at Servicemix, trying to get some things done. First is using a component that comes with Smix for reading from a JMS channel (queue/topic) using JCA to handle all the resources. This component has not worked for me yet. It causes some very wierd behavior when using a durable topic subscriber. The subscriber will not get some of the messages it misses when down. This means that it is not functioning like a durable subscriber. So I gotta fix that issue.... meanwhile I am also working on learning how to create service assemblies for Smix. This allows creating SOAP services in the container, which is what I would like to do eventually. We are running our XFire SOAP services in Tomcat.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31481944-115895918392241732?l=dwark.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dwark.blogspot.com/feeds/115895918392241732/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31481944&amp;postID=115895918392241732' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31481944/posts/default/115895918392241732'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31481944/posts/default/115895918392241732'/><link rel='alternate' type='text/html' href='http://dwark.blogspot.com/2006/09/servicemix-spring-20-maven-poms-in.html' title='Servicemix, Spring 2.0 Maven poms in central'/><author><name>robottaway</name><uri>http://www.blogger.com/profile/16898889765420671029</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_713t16V0cpQ/SC9PjVsTmiI/AAAAAAAAAAo/o1q0doIWdrs/S220/clintonmaniac.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31481944.post-115810845746065644</id><published>2006-09-12T17:44:00.000-07:00</published><updated>2006-09-12T19:36:07.653-07:00</updated><title type='text'>petportal Spring 2.0 Portal MVC application</title><content type='html'>This is how to get the petportal application that was supposed to be released with Spring 2.0.&lt;br /&gt;&lt;br /&gt;First check this page:&lt;br /&gt;http://sourceforge.net/cvs/?group_id=73357&lt;br /&gt;&lt;br /&gt;That is the sourceforge site for Springframework. You can view the CVS sources that are checked in. There should be a little ditty about  anonymous  CVS access. I used this from my MacBook terminal to get the petportal application:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;cvs -z3 -d:pserver:anonymous@springframework.cvs.sourceforge.net:/cvsroot/springframework co -P spring/samples/petportal&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;happy coding!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31481944-115810845746065644?l=dwark.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dwark.blogspot.com/feeds/115810845746065644/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31481944&amp;postID=115810845746065644' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31481944/posts/default/115810845746065644'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31481944/posts/default/115810845746065644'/><link rel='alternate' type='text/html' href='http://dwark.blogspot.com/2006/09/petportal-spring-20-portal-mvc.html' title='petportal Spring 2.0 Portal MVC application'/><author><name>robottaway</name><uri>http://www.blogger.com/profile/16898889765420671029</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_713t16V0cpQ/SC9PjVsTmiI/AAAAAAAAAAo/o1q0doIWdrs/S220/clintonmaniac.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31481944.post-115810732935945393</id><published>2006-09-12T16:52:00.000-07:00</published><updated>2006-09-12T17:28:49.396-07:00</updated><title type='text'>Back again....</title><content type='html'>I haven't been posting much lately (obviously). My fiance has moved up here to good old Medford, Oregon, and I have been pretty busy between helping her get settled and working. I have been playing around with a bunch of new stuff since my last post.&lt;br /&gt;&lt;br /&gt;Ruby: I have been able to get my hands on 'Ruby Cookbook' from O'Reilly. My boss at work bought a copy for our department, bless his heart. If you plan on quickly jumping into some useful Ruby I highly recommend this book. I have already used it for developing a SOAP service client to test a Java XFire service I wrote. With this books aid I wrote the whole thing in five minutes. The benefit is in being able to test my web service with another language, and to verify the correct responses. I feel the 'cookbook' series is one of the best for becoming useful in a new language. They match a seasoned coders ability to look past the basics of a language's grammar and begin actually getting into the api's and such of a language (the nitty gritty ;).&lt;br /&gt;&lt;br /&gt;XFire: this is a nifty Java tool for doing webservices, which get war'd up and deployed into a J2EE web container. I am using it to create web services at work now, deploying to a 5.x version of Apache Tomcat. XFire is very quick and easy to work with. I started out using MyEclipse's new built in XFire web project. Of course I wanted to use XFire in a Maven2 type project (for the enormous benefits that Maven2 provides). This is easy!!! The best part about using XFire was that the services I created worked with M$ Dynamix Ax out of the box, which is a huge deal to my bosses. I was using Axis before, but I had to customize WSDL files for each of my services. Ax's SOAP object did not like the WSDL files automatically created by Axis (thus the customizing). Creating and maintaining WSDL files was time consuming and complicated the whole web service creation process for me. XFire will also auto generate WSDL files, which then work with M$ Dynamix Ax. Hurrah!!!&lt;br /&gt;&lt;br /&gt;Servicemix (Smix) and ActiveMQ (AMQ): these amazing open source projects have become a major deal at my work. We are currently using both to implement our cockeyed attempt at SOA. We are luckily starting out easy, but I get the feeling I will soon be going full bore into setting up our company with an Enterprise Service Architecture (ESA). My awsome boss bought more books. I don't have all of them here, but I will tell you that "&lt;a href="http://www.abebooks.com/servlet/SearchResults?&amp;isbn=0321200683&amp;amp;nsa=1"&gt;Enterprise Integration Patterns&lt;/a&gt;" is the book to read to get your feet wet. It is a theoretical type textbook which ellicits heartwarming memories of college reading. In it you will not find long code samples. You will find in depth explanations of how and why things work in the enterprise integration world.&lt;br /&gt;&lt;br /&gt;Portlets: I have once again taken up the burden of Java's Portlet api. It is pretty rad. I am using Liferay which is actually better for portlet development (in my opinion of course) than Pluto. Pluto is supposed to be a container used for portlet development. I think it's got a ways to go, considering the ease of deploying/redeploying portlet .war's in Liferay. Oh and not to mention how nice Liferay looks! I am hoping to write a nifty portlet which will interface with a tool we use for storing information on projects and requests for things. This tool is called QuickBase, and is an online app from Intuit. We have used it to develop a bunch of stuff for tracking projects. It was my dept's first crack at doing anything of the sort and falls a bit short (especially in the ease of use aspects). If I can get it up it will be a very nice proof of concept. Fingers crossed.&lt;br /&gt;&lt;br /&gt;Portlet-MVC: Who wants to do plain old portlet development? Not me! I first messed around with the Struts portlet bridge framework, but quickly became bored of it. Struts may  be the big kid, but the kid is obviously a beer short. I have been searching around for a better MVC for portlet development. I have found Spring 2.0's Portlet MVC. I am happy, especially since I'm a fan of Spring to begin with. The Spring portlet framework allows you to easily leverage Springs niceties. You can also work in Struts, WebWork, etc. if you really want to....&lt;br /&gt;&lt;br /&gt;So thats it. I am trying to check out a portlet app from Spring's site. It is supposed to be packaged with the 2.0 releases of Spring, but I downloaded many different versions and none included the sample app. I'll post later on how I get it (if I can). C'ya.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31481944-115810732935945393?l=dwark.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dwark.blogspot.com/feeds/115810732935945393/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31481944&amp;postID=115810732935945393' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31481944/posts/default/115810732935945393'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31481944/posts/default/115810732935945393'/><link rel='alternate' type='text/html' href='http://dwark.blogspot.com/2006/09/back-again.html' title='Back again....'/><author><name>robottaway</name><uri>http://www.blogger.com/profile/16898889765420671029</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_713t16V0cpQ/SC9PjVsTmiI/AAAAAAAAAAo/o1q0doIWdrs/S220/clintonmaniac.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31481944.post-115570554902912309</id><published>2006-08-15T21:48:00.000-07:00</published><updated>2006-08-15T22:28:38.990-07:00</updated><title type='text'>Ruby/Rails update</title><content type='html'>I've been playing around with Ruby, and the web framework for Ruby called Rails. I'm finding that Rails has some nice benefits. Using rails I've set up a couple database backed web apps from tutorials found online. I also quickly created an AJAX web app which uses Flickr's API to download thumbnails and display them. I've done this and more in two days....and I didn't have more than a couple hours previous experience with Ruby or Rails.&lt;br /&gt;&lt;br /&gt;If you are a Perl/PHP/Python programmer and haven't tried Ruby on Rails check it out.&lt;br /&gt;&lt;br /&gt;If you are a C/C++/Java/.NET/etc. programmer and haven't tried Ruby on Rails check it out.&lt;br /&gt;&lt;br /&gt;Go to the Rails &lt;a href="http://www.rubyonrails.org/"&gt;site&lt;/a&gt; and get Rails.&lt;span style="text-decoration: underline;"&gt;&lt;/span&gt;&lt;a href="http://www.rubyonrails.org/"&gt;&lt;span style="text-decoration: underline;"&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;You will find directions on getting Ruby, and Rails up and running on your machine. I am working on a MacBook, but I've also installed Ruby and Rails on a Windows machine. It works great on both.&lt;br /&gt;&lt;br /&gt;Once you have Ruby &amp;amp; Rails I recommend downloading Mongrel. Find it &lt;a href="http://mongrel.rubyforge.org/"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Mongrel is a lightweight server that will make developing your initial Rails apps easy. I have not had time to investigate but it seems Mongrel is also being used for hosting on the net. Why? I think it has something to do with it being fast, and working well with other technologies. I'll post back with more information when I get it.&lt;br /&gt;&lt;br /&gt;Once you get Ruby, Rails, and Mongrel here are some links to tutorials that you should definitely work through:&lt;br /&gt;&lt;br /&gt;Do these 'screencasts', they are very informative: &lt;a href="http://www.rubyonrails.org/screencasts"&gt;link&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;From the same Rails site check out the 'Rolling with Ruby on Rails' series: &lt;a href="http://www.rubyonrails.org/docs"&gt;link&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Find some very interesting articles on using FLEX and Rails: &lt;a href="http://www.liverail.net/articles/2006/04/16/rubyonrails-1-1-and-flex-2-0-pt-1"&gt;link&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;And another FLEX/Rails tut: &lt;a href="http://coenraets.com/tutorials/flexonrails/flexonrails.html"&gt;link&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;There are a lot of good articles out there so if you get hooked on Rails it should not be hard to find more information.&lt;br /&gt;&lt;br /&gt;Oh and here is a pretty good online book I found on Ruby itself: &lt;a href="http://www.rubycentral.com/book/"&gt;link&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31481944-115570554902912309?l=dwark.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dwark.blogspot.com/feeds/115570554902912309/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31481944&amp;postID=115570554902912309' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31481944/posts/default/115570554902912309'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31481944/posts/default/115570554902912309'/><link rel='alternate' type='text/html' href='http://dwark.blogspot.com/2006/08/rubyrails-update.html' title='Ruby/Rails update'/><author><name>robottaway</name><uri>http://www.blogger.com/profile/16898889765420671029</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_713t16V0cpQ/SC9PjVsTmiI/AAAAAAAAAAo/o1q0doIWdrs/S220/clintonmaniac.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31481944.post-115543493202452018</id><published>2006-08-12T18:51:00.000-07:00</published><updated>2006-08-15T22:28:01.540-07:00</updated><title type='text'>Ruby and Rails</title><content type='html'>I'm installing the Ruby platform for doing web work, called "Rails". I've already done this on an old CentOS box at home, but I never spent much time working with it... Now that I have Ruby installing on my MacBook (which I spend all my time on) I will soon be playing with it. Ruby sure has garnered a lot of praise from people. It seems to have really developed a cult following. I don't think 'cult' is proper, as it's more like a group who is busily evangelizing their love of Ruby.&lt;br /&gt;&lt;br /&gt;The group seems to be a more arty type. By this I mean not so black and white joe programmer. They appear to have lotsa time to be teaching Ruby, which is a good thing. It definitely helps out the language that people are excited about it. There are some real good tutorials too. One in particular is totally original:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://poignantguide.net/ruby/"&gt;Why's (Poignant) guide to ruby&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Check this out, believe me  it is interesting. I'll post soon on how the Ruby is going.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31481944-115543493202452018?l=dwark.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dwark.blogspot.com/feeds/115543493202452018/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31481944&amp;postID=115543493202452018' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31481944/posts/default/115543493202452018'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31481944/posts/default/115543493202452018'/><link rel='alternate' type='text/html' href='http://dwark.blogspot.com/2006/08/ruby-and-rails.html' title='Ruby and Rails'/><author><name>robottaway</name><uri>http://www.blogger.com/profile/16898889765420671029</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_713t16V0cpQ/SC9PjVsTmiI/AAAAAAAAAAo/o1q0doIWdrs/S220/clintonmaniac.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31481944.post-115531431382866597</id><published>2006-08-11T08:48:00.000-07:00</published><updated>2006-08-11T09:38:33.856-07:00</updated><title type='text'>Stuck on Java?</title><content type='html'>So I am knee deep in Java. That is the Java programming language. Mostly this would be due to my work with Java dating back to highschool. It was reinforced when in college Java was used in my introductory courses. I ended up being familiar with Java, and therefore using it more and more.&lt;br /&gt;&lt;br /&gt;It helps that when I entered college IDE's for languages such as C/C++ cost money while a half-decent Java IDE would be free. This just added to the ease of use, making Java my pick to write most course related code.&lt;br /&gt;&lt;br /&gt;(Sidenote: had I been properly trained in Make I probably would have been a C programmer)&lt;br /&gt;&lt;br /&gt;Now I feel pressure as I become more involved in the various Java technologies...&lt;br /&gt;&lt;br /&gt;Can any one language do everything? Maybe. But do it well? I would say no. I could be wrong, please prove me so :)&lt;br /&gt;&lt;br /&gt;So this pressure I feel is probably due to the fact that there may be a better solution to some of my problems. I don't know if Perl, Ruby, Haskell, C/C++, Basic etc. etc. could provide a cleaner, faster and/or more optimized product.&lt;br /&gt;&lt;br /&gt;I guess I should start looking into other languages. Being bilingual in the programming sense could likely bring great benefits. Especially in this age of interoperability between languages.&lt;br /&gt;&lt;br /&gt;This seems to strikingly resonate through the current world, where globalization, offshoring etc. are crippeling the dominance of any one force.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31481944-115531431382866597?l=dwark.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dwark.blogspot.com/feeds/115531431382866597/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31481944&amp;postID=115531431382866597' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31481944/posts/default/115531431382866597'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31481944/posts/default/115531431382866597'/><link rel='alternate' type='text/html' href='http://dwark.blogspot.com/2006/08/stuck-on-java.html' title='Stuck on Java?'/><author><name>robottaway</name><uri>http://www.blogger.com/profile/16898889765420671029</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_713t16V0cpQ/SC9PjVsTmiI/AAAAAAAAAAo/o1q0doIWdrs/S220/clintonmaniac.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31481944.post-115353811825108129</id><published>2006-07-21T19:59:00.000-07:00</published><updated>2006-07-21T20:15:18.260-07:00</updated><title type='text'>This is the first post....</title><content type='html'>I'll cut this short. Maybe this will become a place to post IT/Software engineering information. Maybe not.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31481944-115353811825108129?l=dwark.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dwark.blogspot.com/feeds/115353811825108129/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31481944&amp;postID=115353811825108129' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31481944/posts/default/115353811825108129'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31481944/posts/default/115353811825108129'/><link rel='alternate' type='text/html' href='http://dwark.blogspot.com/2006/07/this-is-first-post.html' title='This is the first post....'/><author><name>robottaway</name><uri>http://www.blogger.com/profile/16898889765420671029</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_713t16V0cpQ/SC9PjVsTmiI/AAAAAAAAAAo/o1q0doIWdrs/S220/clintonmaniac.jpg'/></author><thr:total>0</thr:total></entry></feed>
