<?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 &#187; software</title>
	<atom:link href="http://blog.raymondberg.com/archives/category/software/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>Tue, 24 Jan 2012 03:18:55 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Tech Recipe: Spam Spices Up Any Relationship</title>
		<link>http://blog.raymondberg.com/archives/248</link>
		<comments>http://blog.raymondberg.com/archives/248#comments</comments>
		<pubDate>Fri, 09 Jul 2010 02:43:45 +0000</pubDate>
		<dc:creator>rwb</dc:creator>
				<category><![CDATA[entertainment]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[technology]]></category>

		<guid isPermaLink="false">http://blog.raymondberg.com/?p=248</guid>
		<description><![CDATA[I want  to initiate dating with you]]></description>
			<content:encoded><![CDATA[<p>I highly recommend reading the following bit of spam I received from &#8220;bbenjiluin@hotmail.com&#8221; (Note how it doesn&#8217;t match the email in the email). The best quote is &#8220;I want  to initiate dating with you&#8221;.</p>
<blockquote>
<div id="_mcePaste">Hi!</div>
<div id="_mcePaste">I received a letter from dating site. And they informed me about your email.  They also tagged that you are looking for a partner. I was fond of your character so I want  to initiate dating with you and learn you more bettterr. We could send photos each other. How do you consider this?</div>
<div id="_mcePaste">My email is h_zdenek@yahoo.com .</div>
<div id="_mcePaste">and I will respond you gladly and I will send some photos too.</div>
<div id="_mcePaste">My name is Helen and i am from Turkey.</div>
</blockquote>
<div>The alternate title for this blog post is &#8220;Boris wants to initiate Natasha dating with you&#8221;. Please note that untrusted sources for emails are almost all bogus. Don&#8217;t give any information out.</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.raymondberg.com/archives/248/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Steve Jobs is Cranky Because He Lost at the Pancreas Flash Game</title>
		<link>http://blog.raymondberg.com/archives/234</link>
		<comments>http://blog.raymondberg.com/archives/234#comments</comments>
		<pubDate>Thu, 29 Apr 2010 21:26:16 +0000</pubDate>
		<dc:creator>rwb</dc:creator>
				<category><![CDATA[programming]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[technology]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[appstore]]></category>
		<category><![CDATA[block]]></category>
		<category><![CDATA[cancer]]></category>
		<category><![CDATA[courier]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[ipad]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[jobs]]></category>
		<category><![CDATA[liver]]></category>
		<category><![CDATA[open]]></category>
		<category><![CDATA[organ]]></category>
		<category><![CDATA[pancreas]]></category>
		<category><![CDATA[prc]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[steve jobs]]></category>

		<guid isPermaLink="false">http://blog.raymondberg.com/?p=234</guid>
		<description><![CDATA[Apparently, when you make your first jog toward the light at the end of the tunnel, you're imbued with a natural inclination to blog more. ]]></description>
			<content:encoded><![CDATA[<p>Today, Steve Jobs released an interesting <a href="http://www.apple.com/hotnews/thoughts-on-flash/" target="_blank">essay justifying Apple&#8217;s shut-out of flash in the iPad and iPhone market</a>. Apparently, when you make your first jog toward the light at the end of the tunnel, you&#8217;re imbued with a natural inclination to blog more. Maybe I need one of my organs to fail? Anyways, my summary of the high points:</p>
<ol>
<li>Open &#8211; Flash isn&#8217;t an open system, it&#8217;s closed source and Flash controlled.</li>
<li>Features &#8211; All those flash sites you claim are so important? Yeah, we&#8217;ve got apps for those&#8230;so shut it.</li>
<li>Security &#8211; Adobe has more bugs than a camel&#8217;s armpit, and twice as many security flaws.</li>
<li>Power Consumption &#8211; Because you don&#8217;t use hardware acceleration it winds up sucking more processor speed, and therefore power.</li>
<li>Touch &#8211; Have you ever used an iPhone? Yeah, we like touch.</li>
<li>Flash Apps &#8211; Yeah, we&#8217;re not going to let you get that foothold. You know how we do quality control. [BAN]</li>
</ol>
<p>It&#8217;s largely concrete and controlled, but my favorite quote is the last paragraph where he unleashes the liver-fed lion:</p>
<blockquote><p>New open standards created in the mobile era, such as HTML5, will win on mobile devices (and PCs too). Perhaps Adobe should focus more on creating great HTML5 tools for the future, and less on criticizing Apple for leaving the past behind.</p></blockquote>
<p>I largely agree with everything that Jobs is saying here, with one giant caveat: he shouldn&#8217;t have said it. Thousands of other people can say things like this and have it actually mean it, hell&#8230;.even Ballmer would have gotten some respect from me for this kind of publication. But it wasn&#8217;t Ballmer, it wasn&#8217;t Zuckerberg, it wasn&#8217;t Brin, and it wasn&#8217;t even Bezos&#8230;it was Jobs.</p>
<p>Apple[Jobs] has created one of, if not the, most closed environments in recent history, barring the PRC. Every developer who wants to play in their app space needs to obey the censors and keep their noses clean, in addition to paying annual fees to enter the market. They continue to be <a href="http://gizmodo.com/5517890/apple-blocks-pulitzer-prize+winning-cartoonist-from-app-store" target="_blank">criticized</a> <a href="(http://www.tomrichmond.com/blog/2009/11/09/apple-rejects-my-caricature-app/" target="_blank">over</a>, <a href="http://www.huffingtonpost.com/2010/04/05/apple-ibooks-censors-sper_n_525564.html" target="_blank">over</a>, and <a href="http://www.ctv.ca/servlet/ArticleNews/story/CTVNews/20100429/Seal-Hunt-Game-100429/20100429?hub=SciTech" target="_blank">over again</a> for their blaze approach to censorship; Jobs even went so far as to <a href="http://www.wired.com/gadgetlab/2010/04/steve-jobs-porn/" target="_blank">tarnish the character of those who dare buy</a> from <a href="http://lmgtfy.com/?q=what%27s+an+android+phone%3F" target="_blank">the enemy</a>. To say these things may seem like a logical attempt to regain trust from developers that &#8220;Steve&#8217;s really got our backs&#8221;, but it doesn&#8217;t take a psychology degree to see what his intentions are.</p>
<p>Jobs does not have the user or developers in mind. He&#8217;s pushed his teams to exclude flash from the iPlatform because he doesn&#8217;t want to lose control of the AppStore reigns. In a nearly-open system one can make the case that singular exclusions of technological compatibility are in the best interest of the consumer. Even Hu Jintao doesn&#8217;t <a href="http://lmgtfy.com/?q=whitelisting&amp;l=1" target="_blank">whitelist </a>Internet sites for his people.   This essay has done nothing but push me closer toward a Verizon store and my first Android phone. I might even buy one of those wacky, <a href="http://gizmodo.com/5527442/microsoft-cancels-innovative-courier-tablet-project" target="_blank">now-imaginary Couriers</a>.</p>
<p>Amazing, Steve, just amazing.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.raymondberg.com/archives/234/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<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, &#8216;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 &#8216;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>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>2</slash:comments>
		</item>
		<item>
		<title>Technology Status Update</title>
		<link>http://blog.raymondberg.com/archives/95</link>
		<comments>http://blog.raymondberg.com/archives/95#comments</comments>
		<pubDate>Sat, 28 Mar 2009 00:41:47 +0000</pubDate>
		<dc:creator>rwb</dc:creator>
				<category><![CDATA[personal]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[reviews]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[allsnap]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[digsby]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[katmouse]]></category>
		<category><![CDATA[multimedia]]></category>
		<category><![CDATA[nerdtainment]]></category>
		<category><![CDATA[netflix]]></category>
		<category><![CDATA[prio]]></category>
		<category><![CDATA[productivity]]></category>
		<category><![CDATA[pydev]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[revision3]]></category>
		<category><![CDATA[roku]]></category>
		<category><![CDATA[skype]]></category>
		<category><![CDATA[social]]></category>
		<category><![CDATA[stickam]]></category>
		<category><![CDATA[subversion]]></category>
		<category><![CDATA[svn]]></category>
		<category><![CDATA[task manager]]></category>
		<category><![CDATA[TED]]></category>
		<category><![CDATA[tortoise svn]]></category>
		<category><![CDATA[twit]]></category>
		<category><![CDATA[twitter]]></category>
		<category><![CDATA[utility]]></category>
		<category><![CDATA[work]]></category>

		<guid isPermaLink="false">http://blog.rwberg.org/?p=95</guid>
		<description><![CDATA[Sometimes it&#8217;s good to have a moment of reflection and take stock of your position in life. I&#8217;ve heard that it is when you are at your busiest moments when you need to stop, if only for a moment, and consider all the things in your life. Well, I&#8217;m busy. Too busy, in fact, to [...]]]></description>
			<content:encoded><![CDATA[<p>Sometimes it&#8217;s good to have a moment of reflection and take stock of your position in life. I&#8217;ve heard that it is when you are at your busiest moments when you need to stop, if only for a moment, and consider all the things in your life. Well, I&#8217;m busy. Too busy, in fact, to look at all the things in my life, so I&#8217;ll just hit a few of recent technology moves that I&#8217;ve made. (Read on&#8230;)</p>
<p><span id="more-95"></span></p>
<p><strong>Social:</strong></p>
<ul>
<li><a href="http://www.twitter.com" target="_blank">Twitter</a> I have joined the ranks of the unclean! Alright, that was cruel, but I -am- full of the <a href="http://www.youtube.com/watch?v=PN2HAroA12w" target="_blank">shallow Twitter fuzzies</a>, my friends. Please feel free to follow me (<a href="http://twitter.com/raymondberg" target="_blank">raymondberg</a>), I promise to be 5% funny! It&#8217;s an interesting form of communication, and it&#8217;s actually a very productive means for casual communication. Some people may not agree, but most of you know my response to that is &#8220;they&#8217;re wrong&#8221;.</li>
<li><a href="http://www.digsby.com/" target="_blank">Digsby</a> Every 4 months or so I try a new desktop client for my communication needs. Every client I use must have 2 features: instant messaging and email notification. The last two I used, in order, were Pidgin(unreliable with google) and Google Talk. I then heard about this Twitter/Linked In/Mail Notifying IM client. It&#8217;s got more services than that and you can disable ones you don&#8217;t use. TRY IT.</li>
<li><a href="http://www.skype.com" target="_blank">Skype</a> I am currently without cell phone due to various personal problems. Fortunately, a $10 investment in Skype has allowed me to continue life uninterrupted. I predominently use it to talk to my parents back home, but it&#8217;s been fantastic. It&#8217;s a daily part of my life and I hope you all use it on some level.</li>
</ul>
<p><strong>Multimedia:</strong></p>
<ul>
<li><a href="http://www.ted.com/" target="_blank">TED</a> This is probably the best part of my current online life. I didn&#8217;t know these talks even existed last year, and now I don&#8217;t miss any of them via <a href="http://www.youtube.com/user/TEDtalksDirector" target="_blank">TED&#8217;s YouTube channel</a>. I&#8217;ve been energized to both continue research and volunteer time to helping others by watching these delightful talks. If you&#8217;re interested in new ideas and multiple disciplines then this is a MUST SEE series.</li>
<li><a href="http://live.twit.tv/">Twit.tv</a> My childhood (early teens) memories with Leo Laporte sharing ideas of technology far beyond my imagination was partially responsible for my foray and eventual passion for technology. Now he continues to work hard to educate and entertain the world, and I love him for it. His broadcast studio is amazing, and the shows are very valuable chunks of time.  (see also <a href="http://www.stickam.com/" target="_blank">Stickam</a>)</li>
<li><a href="http://www.netflix.com/" target="_blank">Netflix</a> I&#8217;ve been subscribing to Netflix since December (not long) and I&#8217;ve enjoyed every single moment of it. To be honest I&#8217;ve had the same DVD for 2 months, lost in my apartment somewhere, but I only really use the online streaming. I might run out soon, so I hope Netflix hurries up their conversion of MORE MEDIA for their streamers (everyone should pray for <a href="http://www.roku.com/default.aspx" target="_blank">Roku</a> success). I&#8217;ll be excited if they start a streaming only account.</li>
<li><a href="http://revision3.com/" target="_blank">Revision3</a> Now, I have to admit that I&#8217;ve just started looking at this, but I&#8217;ve been fairly excited by what I see. I don&#8217;t go for the less valuable stuff like Scam School, but I&#8217;m looking at even more resources for my nerdtainment and this looks like the spot.</li>
</ul>
<p><strong>Work:</strong></p>
<ul>
<li><strong>Java Multi-threading </strong>I&#8217;ve been digging into this pretty heavily in my NetSec project (ground up IDS). It&#8217;s remarkably easy to manage threads in Java, but I&#8217;m running those pesky race conditions.  I just crossed the 1500 line mark, and I&#8217;ve started locking up the threads pretty tightly. I&#8217;m loving it.</li>
<li><strong>SVN/Eclipse </strong>My development is now almost based in  Eclipse.  Since moving to the new office and stabilizing my schedule, I&#8217;ve been able to really settle in to a good routine (using <a href="http://pydev.sourceforge.net/" target="_blank">PyDev</a>, <a href="http://metrics.sourceforge.net/" target="_blank">Metrics</a>). I&#8217;m also working with my cohorts like a MADMAN with Subversion. It was originally just a productivity enhancement, it&#8217;s turned into an essential part of my life (using <a href="http://subclipse.tigris.org/" target="_blank">Subclipse</a>, <a href="http://tortoisesvn.tigris.org/" target="_blank">Tortoise SVN</a>).</li>
<li><strong>Python </strong>is slowly becoming a cornerstone of my development lifestyle. I do enjoy it, but I&#8217;m not ready to pledge my soul to the Python leaders. I am prreeeetty excited to see if anything comes from the new research I just heard about today (<a href="http://arstechnica.com/open-source/news/2009/03/google-launches-project-to-boost-python-performance-by-5x.ars" target="_blank">Python sped up 3x</a>)</li>
</ul>
<p><strong>Utilities:</strong></p>
<ul>
<li><a href="http://www.prnwatch.com/prio.html" target="_blank">Prio</a> Wonderfully neat tool that allows for 3 things in the windows task manager process manager tab:
<ol>
<li>Sticky Priorities on tasks</li>
<li>Color coded &#8220;Trusted&#8221; processes (for you paranoids)</li>
<li>Hover-over details about processes (Including process paths!~!!)</li>
</ol>
</li>
<li><a href="http://ehiti.de/katmouse/" target="_blank">KatMouse</a> Great tool that allows for &#8220;smarter&#8221; scroll wheel use. It removes the need to take focus of an object to scroll it. Basically, if you have a window in the foreground, you can then scroll a scrollable field in the background or a sub-window scroll field without clicking to get focus. Great!</li>
<li><a href="http://ivanheckman.com/allsnap/" target="_blank">allSnap</a> Make all Windows&#8217;s windows (hmmm) lock against each other. It&#8217;s not full docking, but it&#8217;s good enough. Those who know me know that I like to control the really small aspects of my life.[ I think it's because I'm a control freak, and the big things are registered as "In Progress" in my brain. You can't afford that luxury with small things like desktop layout.]</li>
</ul>
<p>I originally started this post with the idea that I didn&#8217;t have much time to blog, so I&#8217;d just put something short out. After 880 words and an hour or so, I think I realize that I like the sound of my own fingers typing.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.raymondberg.com/archives/95/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Draw as well as you Program (and Vice-Versa)</title>
		<link>http://blog.raymondberg.com/archives/78</link>
		<comments>http://blog.raymondberg.com/archives/78#comments</comments>
		<pubDate>Tue, 13 Jan 2009 01:01:50 +0000</pubDate>
		<dc:creator>rwb</dc:creator>
				<category><![CDATA[programming]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[tips]]></category>
		<category><![CDATA[diagram]]></category>
		<category><![CDATA[modeling]]></category>
		<category><![CDATA[object oriented]]></category>
		<category><![CDATA[objects]]></category>
		<category><![CDATA[oop]]></category>

		<guid isPermaLink="false">http://blog.rwberg.org/?p=78</guid>
		<description><![CDATA[I was recently visited by a friend who is also an IT professional. Some time during the visit, I casually made the recommendation that programmers should take a drafting course. I was a bit surprised to receive a contradictory opinion, but it was well received and has forced me to further justify my position in [...]]]></description>
			<content:encoded><![CDATA[<p>I was recently visited by a friend who is also an <a href="http://media.techtarget.com/digitalguide/images/Misc/helpdeskDave.jpg" target="_blank">IT professional</a>. Some time during the visit, I casually made the recommendation that programmers should take a drafting course. I was a bit surprised to receive a contradictory opinion, but it was well received and has forced me to further justify my position in my own mind.</p>
<p>My case is rather simple; <span id="more-78"></span>programmers are trained to think in primarily object oriented environments, especially in recent years. Most, if not all, have had some formal training in object oriented modeling using UML or de facto standards in structure design (database or other). This is not coincidence. The reason for this trend is that objects can easily, and often must, be modeled for clarity in design and maintenance. But what isn&#8217;t obvious is how those models are generated.</p>
<p>Somewhere in our brain we can start to solve problems and make concrete these relatively abstract relationships with a certain degree of ease.  Not everyone can do it, but most people can draw a diagram of a workflow or an object model. It may be slow but it can be done by most functioning individuals; the key to success is practicing this method.</p>
<p>The trick to being a good modeler is a lot like being a good programmer: process, practice, and perception. You recognize relationships and patterns between past and present problems that allow for streamlining; this is the process. As you do more to practice this process then it can become easier as you have more cases to study and experience to pull from. But the mere act of this problem solving takes a certain flair for the spatial. The perception of the problem and, more importantly, the solution deals entirely with the multidimensional aspects of relationships.</p>
<p>So that brings us to the thesis: training the mind to recognize shapes and objects in their elemental forms will allow for a much easier command when high level design is required. Logically, the drawing tools used by architects and others to define 3-dimensional objects in 2-dimensional space would lend themselves to programmers who deal with multidimensional objects, relationships, and even data. Eventually our goal is the same: get that complex object into an understandable 2-dimensional model. At least until we get the <a href="http://news.cnet.com/2100-1041-6242143.html" target="_blank">3-dimensional hologram projectors</a> in the conference room.</p>
<p>To use a personal example, just today I was given a rather daunting task: design a class representation of elements in the TCP/IP stack and a driver that can use those classes to examine network traffic. In addition, this task is part one of three and the code generated should be usable as a larger part of an elementary <a href="http://en.wikipedia.org/wiki/Intrusion-detection_system" target="_blank">IDS</a> capable of handling Snort signature rules.</p>
<p>So what did I do? I reached for the notebook and drafting pencil and started sketching out an object model that would best represent the solution with plans for expansion into the second and third phase of the product.  It was elementary, but because I&#8217;ve done it before and because of some spatial techniques picked up in Art and Drafting classes, I was able to create a logical model that represented the first picture of the solution.</p>
<p>Of course my solution may not be ready for a text book just yet, but the original draft gives me a lot to work with. Eventually I can redistribute the objects to be a well balanced diagram. I honestly think that this skill is one of the most important ones in the programmer&#8217;s tool belt, and one of the best for limiting scope and thinning the <a href="http://en.wikipedia.org/wiki/Fear,_uncertainty_and_doubt" target="_self">FUD fog</a>.</p>
<p><strong>Ps</strong>. Part of my research shows a potential correlation to this concept between drawing maps and success in early programming courses (<a href="http://eprints.usq.edu.au/2256/" target="_blank">Do map drawing styles of programmers predict success&#8230;</a>). It doesn&#8217;t have any particularly conclusive results, but it does tickle the brain a bit. Doesn&#8217;t it?</p>
<p>Let me know whose side of the argument you&#8217;re on. Am I adding unneccessary recommendations to a field already taxed with educational scope creep?</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.raymondberg.com/archives/78/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ShareItNow!!!</title>
		<link>http://blog.raymondberg.com/archives/67</link>
		<comments>http://blog.raymondberg.com/archives/67#comments</comments>
		<pubDate>Wed, 17 Dec 2008 15:52:34 +0000</pubDate>
		<dc:creator>rwb</dc:creator>
				<category><![CDATA[open source]]></category>
		<category><![CDATA[personal]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[ftp uploader]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://blog.rwberg.org/?p=67</guid>
		<description><![CDATA[Has this ever happened to you? Hey, I have this thing you have to see! I&#8217;ll send ti via email, it&#8217;s 10MBs. No wait, my email service can&#8217;t handle anything that size. It&#8217;ll have to go a different way. Okay, I&#8217;ll send it over the IM client. Wait, it says you&#8217;re using a different client [...]]]></description>
			<content:encoded><![CDATA[<p>Has this ever happened to you?</p>
<blockquote><p><strong>Hey, I have this thing you have to see! I&#8217;ll send ti via email, it&#8217;s 10MBs.</strong><br />
No wait, my email service can&#8217;t handle anything that size. It&#8217;ll have to go a different way.<br />
<strong>Okay, I&#8217;ll send it over the IM client. Wait, it says you&#8217;re using a different client than me.</strong><br />
Yeah, I&#8217;m using Pidgin (read: stupid Pidgin, seeming all helpful)<br />
<strong> Okay, log into Skype and I&#8217;ll send it as a file.</strong><br />
Okay. Wait why is it only going at 500 bytes a second?!?!? Are you running Windows 3.2? (read: or Linux, har har, but seriously why do Skype file transfers blow?)<br />
<strong>Man, I&#8217;m going to have to upload it to my FTP server and send you a link. It&#8217;ll be faster. Click, click,click,click,click,click,click,click,click,click,click,click,click,click,clickity-clickity-click. Okay, here&#8217;s the link.</strong><br />
Man&#8230;..that sucked so bad.</p></blockquote>
<p>I can imagine you, the reader, sitting in your seat and sobbing into a pillow at this point, &#8220;<strong>Yes, yes I was there&#8230;.I had to send him a burnnn&#8230;.a burrnnn&#8230;a burned cd!!!</strong>&#8221; Well, maybe it wasn&#8217;t that bad.</p>
<p>So in my own way I fixed it for myself. ShareItNow is a python script that you drag files onto and it will automatically upload said files to the FTP site of your choice and give you a URL to give to your friends and family. It&#8217;s simple, but it&#8217;s not bad. You do need Python, an FTP server, and a Webserver, but that&#8217;s what I have so too bad if you don&#8217;t.</p>
<p>Just edit the script to change the value of your server location, credentials, and a web folder the server points to and you will be golden. Once you drag a file or files onto the script it will ask you if each file is binary before uploading. Once it&#8217;s done with an upload it will print you a URL that you can use and go on to repeat the process for any additional files.</p>
<p>One last thing, to make Python scripts &#8220;Droppable&#8221; (meaning you can drag-and-drop a file onto a script to get some magical result) you need to enable a little switch in the registry. I added a .reg file to the project zip using the code in <a href="http://mindlesstechnology.wordpress.com/2008/03/29/make-python-scripts-droppable-in-windows/" target="_blank">a tutorial on how to make droppable Pyscripts</a>. The funny thing is that this guy wanted to do the same thing I did, but he didn&#8217;t share his code. Great minds think alike, I guess.</p>
<p>But I share my code  (<a href="http://blog.rwberg.org/wp-content/uploads/2008/12/shareitnow.zip">Download ShareItNow</a>)   ;D</p>
<p><span id="more-67"></span>ps. before I get spammed, this is just &#8216;A&#8217; solution. I need to share files frequently for school or work, so this is a nice option. I&#8217;ll probably improve it later by adding a &#8220;Do you want to delete?&#8221; question after you&#8217;ve finished all the uploads to auto delete the uploaded files after the other person grabs them.  But for now, &#8220;be cool&#8221;.</p>
<p>I&#8217;m also expecting that you create an FTP account that you use just with this service. That&#8217;s the way it should be done! <a href="http://blog.rwberg.org/archives/11">Remember to mind the keys</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.raymondberg.com/archives/67/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Developer Update</title>
		<link>http://blog.raymondberg.com/archives/57</link>
		<comments>http://blog.raymondberg.com/archives/57#comments</comments>
		<pubDate>Sat, 22 Nov 2008 00:30:31 +0000</pubDate>
		<dc:creator>rwb</dc:creator>
				<category><![CDATA[personal]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[c++]]></category>
		<category><![CDATA[developer]]></category>
		<category><![CDATA[languages]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://blog.rwberg.org/?p=57</guid>
		<description><![CDATA[With the Thanksgiving break finally upon me I now realize that I need to be a better behaved blogger. The nice thing about having the blog on my website is that I&#8217;m pretty committed to keeping it going despite my occasional/frequent droughts. It&#8217;s been busy for me at school and elsewhere. I&#8217;ve started regaining my [...]]]></description>
			<content:encoded><![CDATA[<p>With the Thanksgiving break finally upon me I now realize that I need to be a better behaved blogger. The nice thing about having the blog on my website is that I&#8217;m pretty committed to keeping it going despite my occasional/frequent droughts.</p>
<p>It&#8217;s been busy for me at school and elsewhere. I&#8217;ve started regaining my social life in the midst of my more intense studying aspects in the hopes of finally becoming the well-rounded individual. Also, I&#8217;ve finally returned to the developer stage with some interesting projects.</p>
<p>I&#8217;ve pretty much abandoned my trivial web projects in favor of a few more serious research and other projects in Python and C++. This is the third time I&#8217;ve been programming in C++ and the first real exposure to Python. It&#8217;s been fun dealing with interface/facade ideas in these languages instead of using the familiar Java concepts. It&#8217;s also interesting to try plugging in these tools into some fun new libraries.</p>
<p>I must say that I don&#8217;t despise C++ as I used to. It&#8217;s really not much different from Java except for the exaggerated power you feel from managing your own memory.  When I switched over the first time I can still remember how uncomfortable I felt with the lack of the amazing Java library and documentation, but you can overcome that.  The code can obviously be much more elegant at times as the magical pointer garbage can be pretty interesting. The biggest concern is that your code doesn&#8217;t start looking like something written by Escher.</p>
<p>Python is fun and different, but I&#8217;m not sure that I&#8217;m used to it yet. When working with C++ and Python at the same time you start to realize how uncomfortable that void of high level management is. I really have no idea how long it&#8217;s going to take me to get really comfortable with the language. You know what I&#8217;m talking about; there&#8217;s that point where you feel like you&#8217;re working on a code assembly line and the code colors and connecting shapes are all in arm&#8217;s reach.</p>
<p>The current situation with Python is a lot like that episode of Futurama where Bender is floating through space. A small species of people form on his body and evolve into a fully civilized species and he plays god for a little while. Then he screws up and causes a nuclear war, killing off his little world.  He then meets up with a god-like galaxy and they start talking and figuring stuff out. I think I just encountered god after playing around and blowing up my own mini-universe. Soon I should a good approach for creating life, but right now the options are just blowing my mind.</p>
<p>I&#8217;ll keep you up to date and I hope to have some descriptions of my tools and projects soon. Until then, I guess I hope that you&#8217;re staying healthy and looking forward to a happy Thanksgiving.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.raymondberg.com/archives/57/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Tip: Make Comments Monospaced in Notepad++</title>
		<link>http://blog.raymondberg.com/archives/35</link>
		<comments>http://blog.raymondberg.com/archives/35#comments</comments>
		<pubDate>Thu, 24 Jul 2008 13:33:00 +0000</pubDate>
		<dc:creator>rwb</dc:creator>
				<category><![CDATA[software]]></category>
		<category><![CDATA[tips]]></category>
		<category><![CDATA[applications]]></category>
		<category><![CDATA[customize]]></category>
		<category><![CDATA[notepad++]]></category>

		<guid isPermaLink="false">http://blog.rwberg.org/?p=35</guid>
		<description><![CDATA[I love coding in text editors because I don&#8217;t have to think about all the extra stuff. That&#8217;s not to say that I don&#8217;t love code completion and auto-generation tools, but it&#8217;s nice to sit down with just just you, a cup of hot apple cider, and ASCII. There&#8217;s no better tool for this than [...]]]></description>
			<content:encoded><![CDATA[<p>I love coding in text editors because I don&#8217;t have to think about all the extra stuff. That&#8217;s not to say that I don&#8217;t love code completion and auto-generation tools, but it&#8217;s nice to sit down with just just you, a cup of hot apple cider, and ASCII. There&#8217;s no better tool for this than Notepad++, in my opinion.</p>
<p>It boast an expansive built in syntax-higlighting library and great tools for automating some of your frequented commands. But a major problem, aside from the inability to do multi-line regex stuff, is the way comments are set up. I found out that I love the fact that it shrinks them, but I hate that it uses a non-monospaced font. But you can fix it, and fast.</p>
<p>First open up your %APP_DATA%/Notepad++/stylers.xml file in Notepad++. The APP_DATA variable usually points to your &#8216;Documents and Settings/youruser/Application Data&#8217; folder, but I could be wrong. Then do a find and replace to find &#8220;Comic Sans MS&#8221; and replace it with &#8220;&#8221;. That&#8217;s right, nothing.  Save and restart Notepad++ and you are ready to rock.</p>
<p>Thanks to Nathan for pointing this out to me. I&#8217;m fairly confident that he doesn&#8217;t even know I have a website. The only place I don&#8217;t talk about it, annoyingly, is at work. <img src='http://blog.raymondberg.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.raymondberg.com/archives/35/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

