<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Peaceful Programmer</title>
	<atom:link href="http://blog.raymondberg.com/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.raymondberg.com</link>
	<description>A Blog that Walks the Fine Line Between Usefulness and Acrobats</description>
	<lastBuildDate>Thu, 04 Mar 2010 05:15:17 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Elementary Java: main() and constructors</title>
		<link>http://blog.raymondberg.com/archives/180</link>
		<comments>http://blog.raymondberg.com/archives/180#comments</comments>
		<pubDate>Thu, 04 Mar 2010 03:38:42 +0000</pubDate>
		<dc:creator>rwb</dc:creator>
				<category><![CDATA[academia]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[tips]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[comedy]]></category>
		<category><![CDATA[constructor]]></category>
		<category><![CDATA[difference]]></category>
		<category><![CDATA[elliptical]]></category>
		<category><![CDATA[galaxy]]></category>
		<category><![CDATA[god]]></category>
		<category><![CDATA[hilarious]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[joke]]></category>
		<category><![CDATA[learning java]]></category>
		<category><![CDATA[main]]></category>
		<category><![CDATA[spiral]]></category>
		<category><![CDATA[theology]]></category>
		<category><![CDATA[understanding java]]></category>
		<category><![CDATA[universe]]></category>

		<guid isPermaLink="false">http://blog.raymondberg.com/?p=180</guid>
		<description><![CDATA[I can't believe I wrote an entire blog post just to get to tell that joke.]]></description>
			<content:encoded><![CDATA[<p>This is one of those seemingly simple concepts that never really gets elaborated. Usually a student learning Java for the first time is told. &#8220;Write the following:&#8221;<br />
<code>public class Person<br />
{<br />
	public static void main(String[] args)<br />
	{<br />
		System.out.println("Hello World!");<br />
	}<br />
}</code><br />
&#8220;Don&#8217;t ask why, just do it.&#8221; Because of that, I&#8217;ve heard this question more than a few times in the last couple years.<br />
<span id="more-180"></span></p>
<h4>The main()</h4>
<p>The simple definition/purpose of the &#8216;main()&#8217; method? It&#8217;s the starting point for every single Java application you&#8217;ll ever write, and this one and only main() makes up the entire life of the program. Once main() starts you&#8217;re program is running, and once it exits then your program dies. That&#8217;s all it does, really.</p>
<p>I&#8217;ll give you some background on the details here, hopefully to reduce the &#8216;magic&#8217;. In the &#8220;public static void&#8221; part the &#8220;public&#8221; is the signature that is required as a main() must be accessible to all interested invokers, &#8217;static&#8217; signifies this method is always run in an identical environment with no worry about conflicting instances (read more on static elsewhere), and &#8216;void&#8217; designates that there is no return type from the method. The args variable, or whatever you choose to name it, is the array of command line inputs that you specified beyond the name of the Java class. Easy, right?</p>
<h4>The Constructor</h4>
<p>Constructors are an entirely different beast: an object that is created in a runtime is created by explicit or implicit call to that object&#8217;s constructor, essentially establishing the working space for that object. You can have many different constructors, too, but only one can be called for each object that you create. The most common place you see this is in the &#8220;new Person()&#8221; call where the &#8216;new&#8217; keyword indicates a new instance of this event, as created in the constructor call &#8216;Person()&#8217;. I know this is getting crazy, but just look at the following example.<br />
<code><br />
public class Galaxy<br />
{<br />
	public boolean isSpiral;<br />
	public boolean hasLife;<br />
	public Galaxy()<br />
	{<br />
		isSpiral = (Math.random() > 0.5); // 50-50 chance of being spiral<br />
		hasLife= (Math.random() > 0.99999999); // tiny chance of supporting life<br />
	}<br />
	public Galaxy(boolean isSpiralp)<br />
	{<br />
		isSpiral = isSpiralp;  //Specified before creation, guaranteed to be what is requested<br />
	}<br />
	public Galaxy(boolean isSpiralp, boolean hasLifep)<br />
	{<br />
		this(isSpiralp); //Call other constructor<br />
		hasLife = hasLifep; //set life<br />
	}<br />
}<br />
class Universe<br />
{<br />
	public static void main(String[] args)<br />
	{<br />
		Galaxy sagittariusDwarf = new Galaxy(false);<br />
		Galaxy milkyWay = new Galaxy(true,true);<br />
		Galaxy peacefulProgrammer = new Galaxy();<br />
		milkyWay = peacefulProgrammer;<br />
	}<br />
}<br />
</code></p>
<p>In this example Galaxy cannot be started by itself, some other program with a main() method (if it&#8217;s an application) must actually create the object through the constructor. In this case, we find an example in the Universe class. The Universe &#8217;starts up&#8217;, creates a few galaxies (overwrites some lesser galaxies), and then flickers out and dies. I know it&#8217;s sad; pay attention! </p>
<p>The Galaxy object isn&#8217;t limited to being used only in the Universe class, but it&#8217;s just what we used here.  Anything, in theory, could instantiate this galaxy object. I&#8217;ve met few girls with Eyes that seemed to instantiate a couple of Galaxy objects, but that&#8217;s another blog post.</p>
<h4>Self-referential, complicating monkey-wrench.</h4>
<p>Some situations call for main and constructor methods, and the constructor could be created inside the runtime. The reason for this is often that the object itself may be created within another program, or it could be something that stands alone. In the case of the universe example, it&#8217;s a theology question. If Universe is a class that can be independent of any other class and can suffice by it&#8217;s internal definition (a.k.a the programmer is an atheist), then you can just run Universe to create it&#8217;s own instance.</p>
<p><code>public class Universe<br />
{<br />
	public static final int TOTAL_ATOMS_POWER_OF_TEN = 81;<br />
	public static final boolean IS_STRING_THEORY_LEGITIMATE = false;<br />
	public Sphere core;<br />
	public void Universe()<br />
	{<br />
		core = new Sphere(1,1);<br />
		for(int i = 0; i < TOTAL_ATOMS_POWER_OF_TEN; i++)<br />
		{<br />
			core.increaseDensity(10.0);<br />
		}<br />
	}<br />
	public void bang()<br />
	{<br />
		//code to cause bang<br />
	}<br />
	public static void main(String args)<br />
	{<br />
		Universe everything = new Universe();<br />
		everything.bang();<br />
	}<br />
}</code></p>
<p>Now suppose the programmer isn't an atheist, then we've got a bit of a problem. We need somebody driving this crazy bus we call life; which will work out totally fine. In fact, not only can we create God, but we can make sure that he's got enough power to create more than one universe. Mix the following class into the Java file for the above and add water:<br />
<code>class God<br />
{<br />
	public static final POWER_REQD_PER_UNIVERSE = 42;<br />
	private int power;<br />
	Vector<Universe> multiverse;<br />
	public God()<br />
	{<br />
		multiverse = new Vector<Universe> multiverse;<br />
		power = POWER_REQD_PER_UNIVERSE;<br />
	}<br />
	public void createUniverse()<br />
	{<br />
		power += POWER_REQD_PER_UNIVERSE;<br />
		Universe temp = new Universe();<br />
		temp.bang();<br />
		multiverse.add(temp);<br />
	}<br />
	public void getHaircut()<br />
	{<br />
		//code to get haircut<br />
	)<br />
	public static void main(String[] args)<br />
	{<br />
		God me = new God();<br />
		me.addUniverse();<br />
		me.addUniverse();<br />
		me.getHaircut();<br />
	}<br />
}</code></p>
<p>The best thing about designing the original universe to allow for versatile, constructor-based invocation is that we didn't have to change the Universe object to allow for God to create a Universe. In this way we create Universe to be God-agnostic. </p>
<p>I can't believe I wrote an entire blog post just to get to tell that joke.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.raymondberg.com/archives/180/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Reflecting, briefly, on Learning</title>
		<link>http://blog.raymondberg.com/archives/191</link>
		<comments>http://blog.raymondberg.com/archives/191#comments</comments>
		<pubDate>Thu, 04 Mar 2010 03:05:41 +0000</pubDate>
		<dc:creator>rwb</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.raymondberg.com/?p=191</guid>
		<description><![CDATA[My favorite professor, Dr. Bezrukov, used to have a very apt approach embed to those all-important, core elements in computer science to which there was no simple explanation: &#8220;I&#8217;m going to tell you how important it is that you should know this. Not only do you need to remember&#8230;it needs to be there in the [...]]]></description>
			<content:encoded><![CDATA[<p>My favorite professor, Dr. Bezrukov, used to have a very apt approach embed to those all-important, core elements in computer science to which there was no simple explanation: &#8220;I&#8217;m going to tell you how important it is that you should know this. Not only do you need to remember&#8230;it needs to be there in the center of your mind. If someone were to come into your room in the middle of the night, grab you, and shake you awake&#8230;you need to be shouting  as you wake up.&#8221; This was an extraordinary way to help us realize how much he wanted us to learn this topic.</p>
<p>The first thing that my professor explained to me in just such a way was the structure of a Java class. I had never had any programming experience in my life, and Java was as foreign to me as Greek. But it didn&#8217;t take long for me to memorize &#8220;public static void main(String[] args){}&#8221;. I had no clue what any of it meant, but I shouted it when I was startled from my sleep. I also got used to typing it every time I started my homework in vim.</p>
<p>My most enjoyable memories in the computer science field were those &#8220;a-ha&#8221; moments when the simplest of concepts suddenly made complete sense, like Dr. Bezrukov&#8217;s &#8220;public static void main()&#8221;. I admit that I used to have one of these every week. I remember standing in the shower before an early morning of class and suddenly realizing how hot and cold water piping really worked and why it took time for water to warm up. This may seem silly to you, but it&#8217;s not something I had thought about before. I encourage everyone to have these moments as often as possible at every phase in life.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.raymondberg.com/archives/191/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Quick Dinner at Home</title>
		<link>http://blog.raymondberg.com/archives/172</link>
		<comments>http://blog.raymondberg.com/archives/172#comments</comments>
		<pubDate>Sun, 28 Feb 2010 04:21:11 +0000</pubDate>
		<dc:creator>rwb</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.raymondberg.com/?p=172</guid>
		<description><![CDATA[I'll grant you I've never made a souffle, but I've never had a bad time while cooking.]]></description>
			<content:encoded><![CDATA[<p>Tonight&#8217;s dinner was a nice quick meal of Curried Potatoes and Barbecue [Turkey] Ham (I&#8217;m trying to live a little healthier, after all). This was a bit of an experiment for me, as I&#8217;m not fully acclimated to using curry in my recipes, but I braved it for you, the reader. I do all this for you, and I get nothing in return.</p>
<p>The preparation is simple enough. 3 medium, Yukon gold tomatoes (I&#8217;m sure the recipe would work fine with russets or other kinds) and 1 medium onion, both chopped broadly. Come to think of it, I don&#8217;t think I know another way to say &#8220;chopped into big pieces, kind of bit-sized but maybe a little bigger&#8221;. Anyway, spread these about the cooking pan. </p>
<p>Warm up a 2-3 tablespoons of olive oil with 1-2 tablespoons of butter. As you are beginning to see, I&#8217;m not a big fan of measuring things. Anyways, balance this out with a tablespoon-ish of curry powder and a hefty sprinkling of red pepper and some minced garlic.  This is all relative to your taste! Add pepper if you want, I don&#8217;t care, I even threw in a pinch of cilantro. How you warm this up is your business, but since I don&#8217;t own a microwave I used a cereal bowl nestled in my rice cooker. Let me shatter your belief that decent cooks (and computer people) lead glamorous lives.</p>
<p>Drizzle this evenly over the potato/onion mix. Then start the process to cook this bad boy in an oven or, in my case, Nu-wave oven. Halfway through, stir it up and be sure the sauce coats the potatoes. I would recommend another peppering of curry powder, but I love the taste of curry. Once the potatoes are done, eat them! Bam, who&#8217;s amazing? You are. </p>

<a href='http://blog.raymondberg.com/archives/172/dscf8079-small' title='DSCF8079 (Small)'><img width="150" height="150" src="http://blog.raymondberg.com/wp-content/uploads/2010/02/DSCF8079-Small-150x150.jpg" class="attachment-thumbnail" alt="" title="DSCF8079 (Small)" /></a>
<a href='http://blog.raymondberg.com/archives/172/dscf8080-small' title='DSCF8080 (Small)'><img width="150" height="150" src="http://blog.raymondberg.com/wp-content/uploads/2010/02/DSCF8080-Small-150x150.jpg" class="attachment-thumbnail" alt="" title="DSCF8080 (Small)" /></a>
<a href='http://blog.raymondberg.com/archives/172/dscf8081-small' title='DSCF8081 (Small)'><img width="150" height="150" src="http://blog.raymondberg.com/wp-content/uploads/2010/02/DSCF8081-Small-150x150.jpg" class="attachment-thumbnail" alt="" title="DSCF8081 (Small)" /></a>
<a href='http://blog.raymondberg.com/archives/172/dscf8085-small' title='DSCF8085 (Small)'><img width="150" height="150" src="http://blog.raymondberg.com/wp-content/uploads/2010/02/DSCF8085-Small-150x150.jpg" class="attachment-thumbnail" alt="" title="DSCF8085 (Small)" /></a>
<a href='http://blog.raymondberg.com/archives/172/dscf8086-small' title='DSCF8086 (Small)'><img width="150" height="150" src="http://blog.raymondberg.com/wp-content/uploads/2010/02/DSCF8086-Small-150x150.jpg" class="attachment-thumbnail" alt="" title="DSCF8086 (Small)" /></a>

<p>Look, I could give you more to work with, but I hate recipes. Even when I follow one I tend to drift off halfway through and add my own personality to it. I&#8217;ll grant you I&#8217;ve never made a souffle, but I&#8217;ve never had a bad time while cooking. Let me know if you found a way to better this recipe. </p>
<p>Bonus &#8211; BBQ Ham: Easy, precooked ham, cubed, dropped in a bowl of hickory bbq sauce, thrown on the grill rack and warmed up in the oven. Easy to do, and life is simple.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.raymondberg.com/archives/172/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Defining Purpose for Your Team</title>
		<link>http://blog.raymondberg.com/archives/170</link>
		<comments>http://blog.raymondberg.com/archives/170#comments</comments>
		<pubDate>Fri, 26 Feb 2010 05:17:59 +0000</pubDate>
		<dc:creator>rwb</dc:creator>
				<category><![CDATA[teams]]></category>
		<category><![CDATA[business]]></category>
		<category><![CDATA[driving force]]></category>
		<category><![CDATA[effort]]></category>
		<category><![CDATA[enhance]]></category>
		<category><![CDATA[figure skating]]></category>
		<category><![CDATA[focus]]></category>
		<category><![CDATA[group]]></category>
		<category><![CDATA[magnify]]></category>
		<category><![CDATA[meaning]]></category>
		<category><![CDATA[organization]]></category>
		<category><![CDATA[purpose]]></category>
		<category><![CDATA[speed skating]]></category>
		<category><![CDATA[support]]></category>
		<category><![CDATA[team]]></category>
		<category><![CDATA[teamwork]]></category>

		<guid isPermaLink="false">http://blog.raymondberg.com/?p=170</guid>
		<description><![CDATA[When you're fighting on battle lines with increasingly intangible opponents and problems, it drastically magnifies the need for clear, concise and defined purpose. You don't have battle flags or holy relics to look for in cube-land. ]]></description>
			<content:encoded><![CDATA[<p>When I sat in my Software Engineering or management courses it always seemed like an interesting task to rally the troops and build a working software solution. In these courses we learned to identify talent and involve people with whatever skills they had in their arsenal. Successful and failed projects passed by; each one taught a lesson about coping with failure and harnessing success towards future efforts. Everything was a process to accomplish a common goal: teams were given a task, chose an approach and learned how to squeeze all the talent they could into a solid attempt at the solution. All of these trials seemed to be finely tuning muscles to be called on in any team situation and bring out the best solutions. Entering the workforce has quickly shown where I&#8217;ve developed strong muscles in some wrong areas, and I find myself aggressively pursuing a figure skating gold with legs trained for speed-skating.  </p>
<p>The problem that I face most frequently <span id="more-170"></span>isn&#8217;t the sharp corners or the break-neck speeds, it&#8217;s to get the body started in the same direction. A primary team, the integrators on-site to install the system, is firmly situated with a solid mission, for the most part, with both eyes on the finish-line. It&#8217;s a little looser than I was used to having, but you can ease into an established group and take cues from managers and clear decision-makers. Once you pick up the tone and the focus of the group then you can start a few strokes along with the group. Before you know it, you&#8217;re keeping up with the pack and generating some quality work. The finish line might keep moving 100m farther out, but you&#8217;re keeping pace and making progress. </p>
<p>In a larger organization, like mine, you often have secondary groups; fast-response teams are formed on directives from management of people with diverse skills or similar functional areas to work across normal organization. Predefined goals for these groups are often vague, but in the worst case you can still look to the 1-line e-mail that started the whole project. The absolute worst case are groups that self-organize to improve quality of life or &#8220;enhance productivity&#8221;, focusing on all kinds of issues without a clear directive. These groups, like PTAs, community development boards, and other groups are lucky to get their skates on the ice, much less run a race. </p>
<p>This kind of group is the one I am least prepared to deal with. I&#8217;ve often been a member of groups that start informally with a great solution in mind, but this idea of just having problems to solve is mind-blowing! (Un)Fortunately I&#8217;ve got a chance to work on this as I&#8217;m getting involved in just such a group. In this group you have some of the worst combinations: lack of financial or capital resources, long history of peaks and troughs in efficiency, little recognition, lack of power, volunteered or borrowed time from other recognized efforts, poor documentation/recollection of events and milestones, opinionated members, and cynicism/resentment from participating members. From this description it sounds like the only thing they&#8217;re missing is a coffin, but luckily that&#8217;s not the case. This group, like many groups that suffer similar handicaps, has a lot of talent and passion buried in each of it&#8217;s members. The key is to bring it out.</p>
<p>In cases like this there is a lot of push and pull at every single step. People will take a piece of the puzzle in which they&#8217;re interested and start skating as hard as they can in whatever direction seems best. Then another comes and does the same, and another, and another. All of these people think they are doing their best to contribute, but in reality they&#8217;re just creating confusion. Even if a solution comes out you have no metric for success, and no way to get motivated by progress being made. You&#8217;ve just got a rink full of crazy people. </p>
<p>As a team leader, you must see how important it is to seek purpose for yourself and for your group. Defining a clear purpose gives your team focus and drive. They&#8217;ll begin to give pause to even the smallest of their actions, and they&#8217;ll begin to seek out solutions and ideas that will get more impact on the objective. </p>
<p>Of course, this is all very different from group to group. Sometimes, you&#8217;ll find that defining a purpose and setting boundaries for your group is very simple, and other times it will be very hard. I made a comment, half-jokingly, to a colleague: &#8220;It would almost be easier if we were fighting against racism, because at least then maybe we&#8217;d know who we were.&#8221; Forgive me if I come off as insensitive, but I feel this is a very important, albeit blunt, point. When you&#8217;re fighting on battle lines with increasingly intangible opponents and problems it drastically magnifies the need for clear, concise and defined purpose. You don&#8217;t have battle flags or holy relics to look for in cube-land. </p>
<p>To continue, in this modern world you&#8217;ll be hard pressed to find a team that will walk to the Holy Land and back without a good reason they should go beat up some other guy who lives closer. And why not?! Life is too short to waste time on lost causes or crusades you don&#8217;t believe in. If someone calls my house and says &#8220;Please donate money, I want to do some stuff for people&#8221; I&#8217;ll hang up the phone. No one will take you seriously or help you in any significant way if you can&#8217;t give them a reason to support you with their resources.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.raymondberg.com/archives/170/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Microsoft Access: A Perfect Solution</title>
		<link>http://blog.raymondberg.com/archives/165</link>
		<comments>http://blog.raymondberg.com/archives/165#comments</comments>
		<pubDate>Thu, 18 Feb 2010 04:20:23 +0000</pubDate>
		<dc:creator>rwb</dc:creator>
				<category><![CDATA[databases]]></category>
		<category><![CDATA[nerds]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[access]]></category>
		<category><![CDATA[business]]></category>
		<category><![CDATA[duties]]></category>
		<category><![CDATA[engineer]]></category>
		<category><![CDATA[engineering]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[process]]></category>
		<category><![CDATA[productivity]]></category>
		<category><![CDATA[rdbms]]></category>
		<category><![CDATA[service]]></category>
		<category><![CDATA[volunteer]]></category>
		<category><![CDATA[workflow]]></category>

		<guid isPermaLink="false">http://blog.raymondberg.com/?p=165</guid>
		<description><![CDATA[If you found this site via some sort of Google search, you&#8217;re probably looking for answers. I won&#8217;t get to that now, but I will warn you that I don&#8217;t have them. If you&#8217;re a friend or colleague of mine you will have let out at bit of a laugh and settled into your chair [...]]]></description>
			<content:encoded><![CDATA[<p>If you found this site via some sort of Google search, you&#8217;re probably looking for answers. I won&#8217;t get to that now, but I will warn you that I don&#8217;t have them. If you&#8217;re a friend or colleague of mine you will have let out at bit of a laugh and settled into your chair with every intent of hating what I&#8217;m about to write. Well, I&#8217;m glad.</p>
<p>In industrial technology applications we often see projects and ideas labelled with ideas that spark value to other techies.  Terms like &#8216;robust&#8221;, &#8216;quality&#8217;, &#8216;efficient&#8217;, and, to a lesser degree, &#8216;boffo&#8217;. Far less often do we see technology simply described in terms of ease of use.  In fact, I would say it&#8217;s downright rare to hear of any steam-powered, hard-left engineers bringing up usability or learning curve when drafting a system designs or applications. Just like football players are interested in beer chugging and cheerleaders, I guess engineers into database normalization and load-balancers.</p>
<p>So what happens when you take that out of the equation? What happens when you take away the pomp and circumstance, when you lose the beer and the cheerleaders? Well, then you have football  or,  in this case, engineering. Take away the sex appeal of massive, scalable availability and mind-boggling complexity; what are you left with? It&#8217;s not frequent, sure, but it happens eventually. You&#8217;ve got problem solving, pure and simple. Simple calculations, exercises, tasks, and duties.  Sometimes football players have practice, they run drills, lift weights, and sell pizza coupons. Well it&#8217;s no different for engineers.</p>
<p>Enter Microsoft Access.</p>
<p>I&#8217;m serious, although this is quite a leap (move with me here, I&#8217;m trying to keep this short). Access has never, in its entire existence as a RDBMS, won any championship football games, but that doesn&#8217;t mean it isn&#8217;t a great tool. It&#8217;s the football practice dummy and the barbell and the coupon book, but all of this for engineers. Just like them, we&#8217;ve got to do the boss&#8217; laundry and earn our keep. We architect the big solutions, sure, but what about the little stuff? What about the parts inventory for the warehouse? What about the customer contact that the boss does once a week and notes in his journal? There&#8217;s also that email list that you share information on, but people keep asking the same questions every year or so and nobody keeps any of the information recorded anywhere? What about office supply orders that Debbie does once a week? It&#8217;s all little stuff.</p>
<p>Three times, in three different positions, I&#8217;ve used Access (or other simple data management tools) to bridge a gap or improve a process that was being done poorly or not-at-all.  Each of these times it&#8217;s been a task that I volunteered for, and each time I&#8217;ve received more recognition than all of my &#8216;big picture&#8217; work combined. I didn&#8217;t choose Access because it&#8217;s fast or robust or sexy (as it is clearly none of these things), but it is definitely quick and easy and portable, not to mention the availability across most corporate IT spaces. It&#8217;s not designed to track Walmart&#8217;s inventory, but it does get the job done.  After all, who cares about an 18% performance increase on the security log queries when I have this nifty iPhone app that lets me keep track of what I eat every day? Okay, maybe that&#8217;s silly, but it&#8217;s all little stuff. And the reason it makes a difference is because it effects people.</p>
<p>I&#8217;m a proud Access developer. It&#8217;s not my day job, and I&#8217;m glad for that, but it&#8217;s an amazing tool. I pledge to volunteer my services to help improve the processes and daily work of people on whom I rely. I&#8217;m also going to use it as a &#8216;gateway database&#8217;; I&#8217;ll use it to get into American homes and get kids and adults to try harder stuff like MySQL, Linq, Rails, and Hibernate. But for Dad&#8217;s big list of home electronic serial numbers, Timmy&#8217;s baseball card collection, and small project CRM&#8230;well, I&#8217;m on board. Who knows? Maybe even the Microsoft or the EPA will use it.</p>
<p>*Remember: a good developer is an active developer. Please stop engineering for engineering&#8217;s sake; it&#8217;s not healthy. Put your skills to some good use and fix something or teach someone (or vice-versa).</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.raymondberg.com/archives/165/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Quest for Babylon 5: A Purchasing Nightmare</title>
		<link>http://blog.raymondberg.com/archives/143</link>
		<comments>http://blog.raymondberg.com/archives/143#comments</comments>
		<pubDate>Sun, 27 Dec 2009 18:13:52 +0000</pubDate>
		<dc:creator>rwb</dc:creator>
				<category><![CDATA[entertainment]]></category>
		<category><![CDATA[reviews]]></category>
		<category><![CDATA[amazon]]></category>
		<category><![CDATA[babylon 5]]></category>
		<category><![CDATA[buy]]></category>
		<category><![CDATA[buy.com]]></category>
		<category><![CDATA[cheaper]]></category>
		<category><![CDATA[eBay]]></category>
		<category><![CDATA[hulu]]></category>
		<category><![CDATA[media]]></category>
		<category><![CDATA[more expensive]]></category>
		<category><![CDATA[netflix]]></category>
		<category><![CDATA[purchase]]></category>
		<category><![CDATA[purchasing]]></category>
		<category><![CDATA[s3]]></category>
		<category><![CDATA[sci-fi]]></category>
		<category><![CDATA[season]]></category>
		<category><![CDATA[series]]></category>
		<category><![CDATA[shopping]]></category>
		<category><![CDATA[streaming]]></category>
		<category><![CDATA[video on demand]]></category>
		<category><![CDATA[vod]]></category>

		<guid isPermaLink="false">http://blog.rwberg.org/?p=143</guid>
		<description><![CDATA[As usual, my first stop is always Amazon. They seem to have pretty solid, just-under-retail pricing scheme.  They&#8217;ve been my number one online source for online purchases for the last five years. In this case, the price seemed incredibly high: $211!! That&#8217;s just over $40 dollars per season, which was more than what I [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.raymondberg.com/wp-content/uploads/2009/11/b5_amazon_set.PNG"><img class="size-medium wp-image-145 alignright" title="b5_amazon_set" src="http://blog.raymondberg.com/wp-content/uploads/2009/11/b5_amazon_set-300x144.PNG" alt="b5_amazon_set" /></a>As usual, my first stop is always Amazon. They seem to have pretty solid, just-under-retail pricing scheme.  They&#8217;ve been my number one online source for online purchases for the last five years. In this case, the price seemed incredibly high: $211!! That&#8217;s just over $40 dollars per season, which was more than what I would expect any  individual season to cost. I&#8217;m not buying diamonds, people.</p>
<p><a href="http://blog.raymondberg.com/wp-content/uploads/2009/11/b5_amazon.PNG"><img class="size-medium wp-image-144 alignleft" style="clear: both;" title="b5_amazon" src="http://blog.raymondberg.com/wp-content/uploads/2009/11/b5_amazon-300x182.PNG" alt="b5_amazon" /></a></p>
<p style="clear: right;">To verify this I added all of the individual seasons together, again priced at Amazon.   The result? $202.  This was disheartening. You could basically get a 5% discount by buying each item individually, but it&#8217;s not impressive enough to be anything more than  a blip. Something is wrong at Amazon, and I don&#8217;t like it. While I love Babylon 5, there&#8217;s got to be a better way.</p>
<p style="clear: right;">At this point I checked eBay and put in a few bids. Most sets seemed to be going for anywhere between $90 and $140. This is 50% cheaper than the Amazon prices, but you&#8217;ve got to take your chances with the unknown sellers of the massive, online-sales supergiant.  I was further restricted from this option by my terrible bidding skills;  I kept losing every bid.</p>
<p><a href="http://blog.raymondberg.com/wp-content/uploads/2009/11/b5_buy_set-300x133.PNG"><img class="size-medium wp-image-147 alignright" style="clear: both;" title="b5_buy_set" src="http://blog.raymondberg.com/wp-content/uploads/2009/11/b5_buy_set-300x133.PNG" alt="b5_buy_set" /></a></p>
<p style="clear: left;">Returning to the world I love of higher prices with no bidding skill required, I decided to check Buy.com to see what they had in store for me.  I&#8217;ve been using this site on and off when Amazon&#8217;s prices border on the insane. The full series of Babylon 5 is available for $153 with shipping!!! How can this be? This price is 25% lower than the Amazon options.  At $30 per season we&#8217;re almost in business. It&#8217;s still quite the investment, but we&#8217;re talking about one of the best sci-fi shows of all time.</p>
<p><a href="http://blog.raymondberg.com/wp-content/uploads/2009/11/b5_buy.PNG"><img class="alignleft size-medium wp-image-146" style="clear: both;" title="b5_buy" src="http://blog.raymondberg.com/wp-content/uploads/2009/11/b5_buy-99x300.PNG" alt="b5_buy" /></a></p>
<p style="clear: right;">The last test was to see if the blip in Amazon&#8217;s pricing also applied to here.  Individual pricing of the seasons was $20 per season resulting in a flat $100 for all 5 seasons of B5. This cost is less than 50% of the Amazon prices, and 30% less than Buy.com complete set. The best news is how comparable the Buy.com price is to eBay listings without any of the hassle or dangers of bidding sales. If you haven&#8217;t noticed, I hate bidding on things. It makes me feel so&#8230;..dirty.</p>
<p style="clear: right;">
<p style="clear: right;"><strong>BONUS:</strong></p>
<p style="clear: right;">The Amazon Video Store is asking $2 per episode with discounts bringing the 20-something-episode seasons down to between $36 and $38. This puts their Video on Demand price for the full series at about $185. I&#8217;m a big fan of streaming video (Hulu, Netflix, and the Roku), but this price seems outrageous to me.  The distribution costs of the electronic versions are drastically lower than physical discs. While there will be continuing maintenance/bandwidth costs for electronic distribution, it&#8217;s completely absurd to think that this market will be successful without drastically reduced prices. I think Amazon is basing their VoD pricing on iTunes&#8217; Store and Amazon&#8217;s own cloud services. It doesn&#8217;t make any sense to the end consumer right now to be spending this much on intangible product. Even if they see profit margin reduction in these early days it seems like they couldn&#8217;t afford the long term cost of losing any potential consumer base to Netflix, Blockbuster, and other video services.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.raymondberg.com/archives/143/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A Completely Arbitrary, Ranked List of the United States</title>
		<link>http://blog.raymondberg.com/archives/149</link>
		<comments>http://blog.raymondberg.com/archives/149#comments</comments>
		<pubDate>Sun, 27 Dec 2009 01:54:18 +0000</pubDate>
		<dc:creator>rwb</dc:creator>
				<category><![CDATA[state preference]]></category>
		<category><![CDATA[alabama]]></category>
		<category><![CDATA[arbitrary]]></category>
		<category><![CDATA[favorite]]></category>
		<category><![CDATA[favorite state]]></category>
		<category><![CDATA[list]]></category>
		<category><![CDATA[listed]]></category>
		<category><![CDATA[michigan]]></category>
		<category><![CDATA[minnesota]]></category>
		<category><![CDATA[ordered]]></category>
		<category><![CDATA[rank]]></category>
		<category><![CDATA[ranked]]></category>
		<category><![CDATA[sorted]]></category>
		<category><![CDATA[states]]></category>
		<category><![CDATA[texas]]></category>
		<category><![CDATA[united states]]></category>

		<guid isPermaLink="false">http://blog.rwberg.org/?p=149</guid>
		<description><![CDATA[The following list is an list our United States of America, ranked in an arbitrary order based on my preference. ]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been telling people for a while that &#8220;Maryland is my second-least favorite state, right after Texas&#8221;. Now, that&#8217;s a bit inflammatory, especially for me, but it got me to thinking about how I really do think about our great union.</p>
<p>The following list is an list our United States of America, ranked in an arbitrary order based on my preference.  I suppose the ranking comes from personal experience and marvel that I&#8217;ve built up over my few years on this planet.  It&#8217;s probably not even that accurate, it&#8217;s just my first pass.</p>
<ol>
<li>Minnesota</li>
<li>Michigan</li>
<li>Colorado</li>
<li>Washington</li>
<li>Montana</li>
<li>Maine</li>
<li>Alaska</li>
<li>Idaho</li>
<li>New York</li>
<li>Georgia</li>
<li>Vermont</li>
<li>Virginia</li>
<li>Pennsylvania</li>
<li>Massachussets</li>
<li>California</li>
<li>New Mexico</li>
<li>Ohio</li>
<li>Arkansas</li>
<li>Oregon</li>
<li>Conneticut</li>
<li>Oklahoma</li>
<li>North Dakota</li>
<li>Kansas</li>
<li>Utah</li>
<li>Wisconsin</li>
<li>New Hampshire</li>
<li>Illinois</li>
<li>Indiana</li>
<li>North Carolina</li>
<li>Arizona</li>
<li>Iowa</li>
<li>West Virginia</li>
<li>Rhode Island</li>
<li>Wyoming</li>
<li>Nebraska</li>
<li>Tennessee</li>
<li>New Jersey</li>
<li>Delaware</li>
<li>Missouri</li>
<li>South Dakota</li>
<li>Kentucky</li>
<li>Hawaii</li>
<li>South Carolina</li>
<li>Louisiana</li>
<li>Nevada</li>
<li>Florida</li>
<li>Maryland</li>
<li>Mississippi</li>
<li>Alabama</li>
<li>Texas</li>
</ol>
<p>Well, it turns out I was wrong about Maryland, and I&#8217;m definitely not sure about 1 and 50.  I&#8217;ll let you know if it changes, maybe it&#8217;ll be a series on this blog (under the category &#8217;state preference&#8217;).</p>
<p>What I&#8217;ve learned from all of this is that I don&#8217;t really dislike any state in this union. I&#8217;m a big fan of our country, and our planet too.  I used to be very bombastic about this kind of thing, but I think I&#8217;ve mellowed out. Let me know if you think I&#8217;m waaaay off, and I&#8217;m sure you do, but I&#8217;d really love to see your ordered list of the states.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.raymondberg.com/archives/149/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>This Week in Procrastination: Food</title>
		<link>http://blog.raymondberg.com/archives/139</link>
		<comments>http://blog.raymondberg.com/archives/139#comments</comments>
		<pubDate>Wed, 25 Nov 2009 01:25:16 +0000</pubDate>
		<dc:creator>rwb</dc:creator>
				<category><![CDATA[food]]></category>
		<category><![CDATA[basil]]></category>
		<category><![CDATA[chicken]]></category>
		<category><![CDATA[corn]]></category>
		<category><![CDATA[ground ground]]></category>
		<category><![CDATA[hamburger]]></category>
		<category><![CDATA[meat]]></category>
		<category><![CDATA[parsley]]></category>
		<category><![CDATA[pasta]]></category>
		<category><![CDATA[potatoes]]></category>
		<category><![CDATA[rice]]></category>
		<category><![CDATA[tomatoes]]></category>

		<guid isPermaLink="false">http://blog.rwberg.org/?p=139</guid>
		<description><![CDATA[Thanksgiving Break is a beautiful thing, but not perfect. I think there&#8217;s a very accurate expression &#8220;If you need something done, ask the busiest person.&#8221; This comes with the corollary: &#8220;A person with much to do will always sabotage themselves when confronted with plenty of time to do it.&#8221;  Well, we&#8217;re coming up on finals [...]]]></description>
			<content:encoded><![CDATA[<p>Thanksgiving Break is a beautiful thing, but not perfect. I think there&#8217;s a very accurate expression &#8220;If you need something done, ask the busiest person.&#8221; This comes with the corollary: &#8220;A person with much to do will always sabotage themselves when confronted with plenty of time to do it.&#8221;  Well, we&#8217;re coming up on finals week with plenty of projects to work on&#8230;soooo.</p>
<p>First was a simple mix of potatoes, onions, corn, and ground round. I mixed a bit with rice for the first go-around, then cooked it overnight in beef broth. The result of which I showed in the picture.</p>
<p>Second, thrice cooked chicken (boiled, grilled, and pan fried[olive oil and lots of minced garlic]) in rigatoni. I overcooked the noodles a bit, as you can see in the picture, but it was truly delicious with plenty of basil, grape tomatoes, parsley, and Parmesan cheese.</p>

<a href='http://blog.raymondberg.com/archives/139/dscf7273' title='DSCF7273'><img width="150" height="150" src="http://blog.raymondberg.com/wp-content/uploads/2009/11/DSCF7273-150x150.jpg" class="attachment-thumbnail" alt="" title="DSCF7273" /></a>
<a href='http://blog.raymondberg.com/archives/139/dscf7277' title='DSCF7277'><img width="150" height="150" src="http://blog.raymondberg.com/wp-content/uploads/2009/11/DSCF7277-150x150.jpg" class="attachment-thumbnail" alt="" title="DSCF7277" /></a>

<p>I&#8217;d love to hear/see about easy dishes that you guys like to whip up.  For now I&#8217;ll put my nose to the grindstone and hope to improve my productivity.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.raymondberg.com/archives/139/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A Few Cooking Experiments with NuWave</title>
		<link>http://blog.raymondberg.com/archives/124</link>
		<comments>http://blog.raymondberg.com/archives/124#comments</comments>
		<pubDate>Sun, 08 Nov 2009 02:43:20 +0000</pubDate>
		<dc:creator>rwb</dc:creator>
				<category><![CDATA[food]]></category>
		<category><![CDATA[barbecue]]></category>
		<category><![CDATA[basil]]></category>
		<category><![CDATA[bbq]]></category>
		<category><![CDATA[chicken]]></category>
		<category><![CDATA[cilantro]]></category>
		<category><![CDATA[cook]]></category>
		<category><![CDATA[cooking]]></category>
		<category><![CDATA[dishes]]></category>
		<category><![CDATA[meat]]></category>
		<category><![CDATA[nuwave]]></category>
		<category><![CDATA[olive oil]]></category>
		<category><![CDATA[oven]]></category>
		<category><![CDATA[potatoes]]></category>
		<category><![CDATA[recipes]]></category>
		<category><![CDATA[rice]]></category>
		<category><![CDATA[rosemary]]></category>
		<category><![CDATA[thyme]]></category>
		<category><![CDATA[tin foil]]></category>

		<guid isPermaLink="false">http://blog.rwberg.org/?p=124</guid>
		<description><![CDATA[While I usually just throw together sandwiches or spartan pastas, now and again I get to cook up something fun. Usually this involves the NuWave Oven that I reviewed a while back...]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been running silent lately. Most of this is due to the fact that I&#8217;m stretched a little too far. What I <em>have</em> had lately is a lot more time to be in my apartment (working or otherwise) to enjoy the joys of cooking. While I usually just throw together sandwiches or spartan pastas, now and again I get to cook up something fun. Usually this involves the NuWave Oven that <a href="http://blog.rwberg.org/archives/47" target="_blank">I reviewed a while back</a> (thanks again S &amp; H).  I threw together a gallery of the ones I remembered to photograph.</p>
<p>The first and second was some chicken I made for my first attempt at a Chicken Tikka Masala. The chicken was rubbed in butter, onions, cayenne and ginger.  The dish went over fairly well with my parents, but it was pretty far from any Masala&#8217;s I&#8217;ve had.  Next time I&#8217;ll remember to buy the right ingredients and follow a recipe. Oh, the third picture was the same sauce and chicken (lots of leftovers) over rice.</p>
<p>The fourth and fifth pictures are Parmesan Potatoes (I guess that&#8217;s the best name I could come up with). Three potatoes spiced with parsley, rosemary, thyme and basil and cooked in butter and olive oil. Near the end of the cooking I threw on some grated Parmesan cheese I had sitting around.</p>
<p>The last pictures are from today&#8217;s lunch/dinner: HabaHoneyBQ Chicken (they&#8217;re getting worse). I had some Habanero Honey left from my trip to Colorado (courtesy of a little candy shop in Monument) which I mixed with barbecue sauce to coat the chicken. I baked for about 15 minutes on one side and 10 on the other.  The result was a deliciously charred, sweet taste.  Unfortunately  some of it was a bit tough, the reason for which I finally realized: using partially frozen chicken breasts. Unless you chop all of the chicken into similarly sized pieces the NuWave tends to overcook the smaller ones.  From now on I get uniform cuts or, preferably, allow my chicken plenty of time to thaw.</p>
<p>Anyways, the dish was partnered with some rice pilaf with corn and dusted with cilantro.  It&#8217;s been very tasty, but I&#8217;m not a master yet. I&#8217;ll stay vigilant and keep you updated. I&#8217;m excited to graduate and settle into a real apartment with a decent kitchen. I promise my posts will improve.</p>
<p>Happy Saturday.</p>

<a href='http://blog.raymondberg.com/archives/124/dscf7075' title='DSCF7075'><img width="150" height="150" src="http://blog.raymondberg.com/wp-content/uploads/2009/11/DSCF7075-150x150.jpg" class="attachment-thumbnail" alt="" title="DSCF7075" /></a>
<a href='http://blog.raymondberg.com/archives/124/dscf7253' title='DSCF7253'><img width="150" height="150" src="http://blog.raymondberg.com/wp-content/uploads/2009/11/DSCF7253-150x150.jpg" class="attachment-thumbnail" alt="" title="DSCF7253" /></a>
<a href='http://blog.raymondberg.com/archives/124/dscf7263' title='DSCF7263'><img width="150" height="150" src="http://blog.raymondberg.com/wp-content/uploads/2009/11/DSCF7263-150x150.jpg" class="attachment-thumbnail" alt="" title="DSCF7263" /></a>
<a href='http://blog.raymondberg.com/archives/124/dscf7264' title='DSCF7264'><img width="150" height="150" src="http://blog.raymondberg.com/wp-content/uploads/2009/11/DSCF7264-150x150.jpg" class="attachment-thumbnail" alt="" title="DSCF7264" /></a>
<a href='http://blog.raymondberg.com/archives/124/dscf7266' title='DSCF7266'><img width="150" height="150" src="http://blog.raymondberg.com/wp-content/uploads/2009/11/DSCF7266-150x150.jpg" class="attachment-thumbnail" alt="" title="DSCF7266" /></a>
<a href='http://blog.raymondberg.com/archives/124/dscf7269' title='DSCF7269'><img width="150" height="150" src="http://blog.raymondberg.com/wp-content/uploads/2009/11/DSCF7269-150x150.jpg" class="attachment-thumbnail" alt="" title="DSCF7269" /></a>
<a href='http://blog.raymondberg.com/archives/124/dscf7270' title='DSCF7270'><img width="150" height="150" src="http://blog.raymondberg.com/wp-content/uploads/2009/11/DSCF7270-150x150.jpg" class="attachment-thumbnail" alt="" title="DSCF7270" /></a>
<a href='http://blog.raymondberg.com/archives/124/dscf7271' title='DSCF7271'><img width="150" height="150" src="http://blog.raymondberg.com/wp-content/uploads/2009/11/DSCF7271-150x150.jpg" class="attachment-thumbnail" alt="" title="DSCF7271" /></a>
<a href='http://blog.raymondberg.com/archives/124/dscf7272' title='DSCF7272'><img width="150" height="150" src="http://blog.raymondberg.com/wp-content/uploads/2009/11/DSCF7272-150x150.jpg" class="attachment-thumbnail" alt="" title="DSCF7272" /></a>

]]></content:encoded>
			<wfw:commentRss>http://blog.raymondberg.com/archives/124/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>This Blog Post is Twice as Good as Anything You&#8217;ve Written</title>
		<link>http://blog.raymondberg.com/archives/119</link>
		<comments>http://blog.raymondberg.com/archives/119#comments</comments>
		<pubDate>Sun, 30 Aug 2009 19:10:37 +0000</pubDate>
		<dc:creator>rwb</dc:creator>
				<category><![CDATA[personal]]></category>
		<category><![CDATA[reviews]]></category>
		<category><![CDATA[daily mail]]></category>
		<category><![CDATA[darth vader]]></category>
		<category><![CDATA[grain]]></category>
		<category><![CDATA[grain of sand]]></category>
		<category><![CDATA[molecule]]></category>
		<category><![CDATA[picture]]></category>
		<category><![CDATA[sand]]></category>
		<category><![CDATA[small]]></category>
		<category><![CDATA[stupidity]]></category>

		<guid isPermaLink="false">http://blog.rwberg.org/?p=119</guid>
		<description><![CDATA[Maybe you science people can help me figure this out. The Daily Mail recently posted a news story titled &#8220;Single molecule, one million times smaller than a grain of sand, pictured for the first time&#8221;. My question is: what the hell does that mean?
How can something be &#8220;one million times smaller&#8221; than anything? Is small [...]]]></description>
			<content:encoded><![CDATA[<p>Maybe you science people can help me figure this out. The Daily Mail recently posted a news story titled <a href="http://www.dailymail.co.uk/sciencetech/article-1209726/Single-molecule-million-times-smaller-grain-sand-pictured-time.html" target="_blank">&#8220;Single molecule, one million times smaller than a grain of sand, pictured for the first time&#8221;</a>. My question is: what the hell does that mean?</p>
<p>How can something be &#8220;one million times smaller&#8221; than anything? Is small a measurement?  What is twice as small as I am? Or twelve times as small as a planet? Is it a redneck term for  mass? Are they saying it is a percentage of another object? As far as I know, small is a descriptive and relational term that has zero scientific meaning.  Maybe I&#8217;ve gone crazy, but it just doesn&#8217;t make any sense.</p>
<p>At this time I would like to say that I&#8217;m 3.6 times smaller than Darth Vader, but I smell twice as nice.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.raymondberg.com/archives/119/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
