<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="wordpress/2.1.2" -->
<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/"
	>

<channel>
	<title>rtraction</title>
	<link>http://www.rtraction.com/blog</link>
	<description>rtraction blog</description>
	<pubDate>Fri, 09 May 2008 18:48:38 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.1.2</generator>
	<language>en</language>
			<item>
		<title>Command line, PHP &#038; background processing</title>
		<link>http://www.rtraction.com/blog/devit/command-line-php-background-processing.html</link>
		<comments>http://www.rtraction.com/blog/devit/command-line-php-background-processing.html#comments</comments>
		<pubDate>Fri, 09 May 2008 16:22:22 +0000</pubDate>
		<dc:creator>Jeremy</dc:creator>
		
		<category><![CDATA[Devit!]]></category>

		<guid isPermaLink="false">http://www.rtraction.com/blog/devit/command-line-php-background-processing.html</guid>
		<description><![CDATA[
Recently I encountered a situation where I need to run a PHP script in the background.  A client requested a YouTube like application where the users can upload a video and it will automatically create a preview FLV flash version.  The conversion was to be handled by FFMPEG, an open source piece of [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.rtraction.com/blog/wp-content/uploads/2008/05/phpcli.gif" alt="PHP Command Line Interpreter" /></p>
<p>Recently I encountered a situation where I need to run a PHP script in the background.  A client requested a YouTube like application where the users can upload a video and it will automatically create a preview FLV flash version.  The conversion was to be handled by FFMPEG, an open source piece of software to convert a huge range of audio and video formats.</p>
<p>In order to better get a handle on FFMPEG I downloaded the <a href="http://www.rtraction.com/blog/devit/ffmpeg-what-is-it-what-can-it-do-for-me.html" title="PHPVideoToolkit">PHPVideoToolkit</a>.  The toolkit abstracts FFMPEG into a PHP class for easier manipulation.  I created a script that would use the PHPVideoToolkit to convert the video files into FLV format.</p>
<p>Here is the snag: PHP will not finish executing the script until FFMPEG has finished the conversion.  For longer files the browser can sit in it&#8217;s &#8220;thinking&#8221; mode for quite some time until the conversion is finished.  This was unacceptable for the situation we were looking where it was unrealistic to expect users to sit there and wait for the entire conversion to take place before they could move on.   There needed to be some way to do this as a background process.</p>
<p><strong>exec()</strong></p>
<p>Enter the exec command.  This command allows us to run any program that can be run from the command line.  The reason we use exec() instead of say passthru(), which also runs the command line, is that with exec() we can specify to take the content of the output buffer and send them to a file.  Passthru returns the output right away to the browser.   That&#8217;s fine if we wanted to run FFMPEG with the super long cryptic command line.  How do we do this with our PHPVideoToolkit class though?</p>
<p><strong>php cli</strong></p>
<p>Enter the php command line interpreter (cli).  The php command line interpreter allows you to run any php script from the command line.</p>
<p>Now we can create a simple script that uses the PHPVideoToolkit to run FFMPEG.  Then we use exec() to run this php script from the command line as a background process.</p>
<pre>
exec('php convert.php &gt;&gt; convert.log &amp;');</pre>
<p>It took me a bit to figure this out as I&#8217;m not really a hardcore Linux guy.  So here&#8217;s the breakdown of the command:</p>
<ul>
<li>&#8220;php&#8221; -  invokes the php command line interpreter</li>
<li>&#8220;convert.php&#8221; - the name of the php script to run</li>
<li>&#8220;&gt;&gt;&#8221; - this specifies where to direct the output buffer.   Use &#8216;&gt;&#8217; to create a new file as opposed to &#8216;&gt;&gt;&#8217; to append to an existing file.</li>
<li>&#8220;convert.log&#8221; - name of the file where output will be directed.  You can use &#8220;/dev/null&#8221; if you want to send the output into a virtual black hole.</li>
<li>&#8220;&amp;&#8221; - this is to run the command as a background process</li>
</ul>
<p>PHP becomes far more versatile when we can run external programs for specific tasks.  Allowing us to run them in the background can help to give the user a better experience.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.rtraction.com/blog/devit/command-line-php-background-processing.html/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Object overhead now dominates most web page delays</title>
		<link>http://www.rtraction.com/blog/devit/object-overhead-now-dominates-most-web-page-delays.html</link>
		<comments>http://www.rtraction.com/blog/devit/object-overhead-now-dominates-most-web-page-delays.html#comments</comments>
		<pubDate>Mon, 28 Apr 2008 16:02:23 +0000</pubDate>
		<dc:creator>Jeremy</dc:creator>
		
		<category><![CDATA[Devit!]]></category>

		<guid isPermaLink="false">http://www.rtraction.com/blog/uncategorized/object-overhead-now-dominates-most-web-page-delays.html</guid>
		<description><![CDATA[I was reading a recent study of some general statistics regarding web pages at www.websiteoptimization.com that helped confirm some feelings I was having with page load times.  One of the conclusions this study came to was that the number of objects (images, external Javascript files, external CSS files, flash, etc&#8230;) has become the largest [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.rtraction.com/blog/wp-content/uploads/2008/04/combinefiles.gif" title="Combine Files" alt="Combine Files" align="left" />I was reading a recent study of some general statistics regarding web pages at <a href="http://www.websiteoptimization.com/speed/tweak/average-web-page/" target="_blank">www.websiteoptimization.com</a> that helped confirm some feelings I was having with page load times.  One of the conclusions this study came to was that the number of objects (images, external Javascript files, external CSS files, flash, etc&#8230;) has become the largest reason for load time delays.</p>
<p>The reason for this lies directly in the nature of an HTTP request.  For each file the web page requests it has to make a round trip from the client to the server and back.  Each time this happens there can be delays introduced.</p>
<p>There are a couple of simple ways we as web developers can look to solve this issue and keep load time swift.</p>
<ol>
<li><strong>CSS Sprites</strong> - This technique was perfected back in the days when video game consoles had limited memory.  They ended up with little 16&#215;16 pixel blocks with which to work in.  Applying this technique to web page design we can combine similar images in the same file and use CSS to offset.  This is most easily done with buttons or images of exactly the same size.  Take a look at this technique for doing <a href="http://www.rtraction.com/blog/devit/easy-rollover-menus-in-joomla.html" title="CSS sprite rollover menu buttons">CSS sprite rollover menu buttons</a>.<strong><br />
</strong></li>
<li><strong>Combining CSS / Javascript files</strong> - For organizational purposes it usually makes sense to split Javascript and css files into separate files.  However when it comes down to using that file in a web page, each file requires a separate HTTP request and therefore all the related overhead and delays. A simple solutions is to have a single file for Javascript and a single file for CSS.  To take it a step further you could use server side includes to include the CSS and Javascript right into the main HTML file.</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.rtraction.com/blog/devit/object-overhead-now-dominates-most-web-page-delays.html/feed/</wfw:commentRss>
		</item>
		<item>
		<title>MySQL Workbench helps to visualize your database</title>
		<link>http://www.rtraction.com/blog/devit/mysql-workbench-helps-to-visualize-your-database.html</link>
		<comments>http://www.rtraction.com/blog/devit/mysql-workbench-helps-to-visualize-your-database.html#comments</comments>
		<pubDate>Fri, 18 Apr 2008 15:01:36 +0000</pubDate>
		<dc:creator>Jeremy</dc:creator>
		
		<category><![CDATA[Devit!]]></category>

		<guid isPermaLink="false">http://www.rtraction.com/blog/uncategorized/mysql-workbench-helps-to-visualize-your-database.html</guid>
		<description><![CDATA[I first looked at this tool a number of months ago when it was still in alpha stage.  The alpha version didn&#8217;t work too well&#8230;actually not at all for me.  Recently I noticed they were up to release candidate 1 so I decided to give it another try. I had high hopes as I [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.rtraction.com/blog/devit/mysql-workbench-helps-to-visualize-your-database.html/mysql-workbench/" rel="attachment wp-att-76" title="MySQL Workbench"><img src="http://www.rtraction.com/blog/wp-content/uploads/2008/04/workbench.gif" title="MySQL Workbench" alt="MySQL Workbench" align="left" border="0" hspace="10" /></a>I first looked at this tool a number of months ago when it was still in alpha stage.  The alpha version didn&#8217;t work too well&#8230;actually not at all for me.  Recently I noticed they were up to release candidate 1 so I decided to give it another try. I had high hopes as I have always found the ability to visualize a database design with all relationships a huge bonus.  There are other tools to do this but I was excited to see what MySQL&#8217;s official rendition would be like.</p>
<p>I&#8217;ve only used it briefly but in my first run through I was impressed.  I had an existing MySQL database structure that someone else had built but I was now working on.  I knew the basic structure of the site but was having trouble understanding the different relationships between the tables.</p>
<p>At this point I should mention that MySQL Workbench has 2 versions.  The first is the open source version which can be freely downloaded and used within GPL restrictions.  The 2nd is a commercial version which brings some added functionality for a yearly subscription fee.  Unless you&#8217;re dealing with enterprise level database design, the open source version should suffice.</p>
<p>I first had to export my database with the MySQL Administrator GUI tool&#8217;s backup function.  This gave me a single script describing my entire database.  Then I fed that file into the &#8220;Reverse Engineer MySQL create script&#8221; import feature of MySQL Workbench.  After trying the &#8220;Autoplace object in new diagram&#8221; function once I determined it wasn&#8217;t really that useful as it just created a huge blob of tables.</p>
<p>Diagrams seem to be the most useful for me.  You can create any number of diagrams in a project with different layouts of any of the tables.  I decided to create a diagram that specifically showed the relationship of users and their associated data.</p>
<p><a href="http://dev.mysql.com/workbench/" target="_blank">MySQL workbench</a> just recently went into GA (General Availability) as a full release.  This tool is essential for anyone does any level of database design with MySQL.  Two thumbs up!</p>
<p><a href="http://dev.mysql.com/workbench/" title="MySQL Workbench Screenshot"><img src="http://www.rtraction.com/blog/wp-content/uploads/2008/04/workbench21.gif" title="MySQL Workbench Screenshot" alt="MySQL Workbench Screenshot" border="0" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.rtraction.com/blog/devit/mysql-workbench-helps-to-visualize-your-database.html/feed/</wfw:commentRss>
		</item>
		<item>
		<title>FFMPEG - What is it? What can it do for me?</title>
		<link>http://www.rtraction.com/blog/devit/ffmpeg-what-is-it-what-can-it-do-for-me.html</link>
		<comments>http://www.rtraction.com/blog/devit/ffmpeg-what-is-it-what-can-it-do-for-me.html#comments</comments>
		<pubDate>Fri, 11 Apr 2008 20:44:20 +0000</pubDate>
		<dc:creator>devit</dc:creator>
		
		<category><![CDATA[Devit!]]></category>

		<guid isPermaLink="false">http://www.rtraction.com/blog/devit/ffmpeg-what-is-it-what-can-it-do-for-me.html</guid>
		<description><![CDATA[MPEG (pronounced M-peg), which stands for Moving Picture Experts Group, is the name of a family of standards used for coding audio-visual information (e.g., movies, video, music) in a digitally compressed format.  FFMPEG is an opensource software video converter.  YouTube uses FFMPEG, as do many other video and audio websites on the web. [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://mpeg.org" title="MPEG" target="_blank">MPEG</a> (pronounced M-peg), which stands for Moving Picture Experts Group, is the name of a family of standards used for coding audio-visual information (e.g., movies, video, music) in a digitally compressed format.  <a href="http://ffmpeg.mplayerhq.hu/" title="FFMPEG" target="_blank">FFMPEG</a> is an opensource software video converter.  <a href="http://www.youtube.com/" title="YouTube" target="_blank">YouTube</a> uses FFMPEG, as do many other video and audio websites on the web.  Simply put, FFMPEG gives you the ability to manipulate mpegs in many ways.  FFMPEG has a vast array of options and can be very overwhelming.  If you&#8217;re going to be working in a <a href="http://php.net" title="PHP" target="_blank">PHP</a> environment then there are a few helpful tools out there to help you hit the road running.</p>
<p>First you&#8217;re going to need to install FFMPEG on your server. There are many resources for that and it should be relatively easy to find some examples and tutorials to get this process completed.</p>
<p>Once you get FFMPEG installed, you&#8217;re going to want to install the <a href="http://ffmpeg-php.sourceforge.net/" title="ffmpeg-php" target="_blank">FFMPEG-PHP</a> extension for php.  This process is also fairly straight forward - if you&#8217;re having trouble you can use <a href="http://www.google.com" title="google" target="_blank">Google</a> to help you resolve any issues.  Unless you want to re-invent the wheel for a specific reason there is a great class wrapper called <a href="http://sourceforge.net/projects/phpvideotoolkit/" title="PHP Video Toolkit" target="_blank">PHP Video Toolkit</a>, which I suggest grabbing and using.</p>
<p>PHP Video Toolkit provides access to both FFMPEG and <a href="http://blog.inlet-media.de/flvtool2/" title="flvtool2" target="_blank">FLVTOOL2</a>, which allows you to quickly and easily get to work on your video manipulation project.  One note I&#8217;d like to add is if you run into a bug with liblamemp3 you can edit the Video Toolkit php section and change liblamemp3 to mp3 and that should resolve any problems.  I also highly recommend reading through every example that comes with the PHP Video Toolkit as it should save you some additional time.</p>
<p>Remember the most important command when you get started is &#8220;<span><span class="comment">print_r($videotoolkit-&gt;getLastCommand());</span><span>&#8220;.</span></span></p>
<p>Some additional resources I found helpful:<a href="http://groups.google.com/group/ffmpeg-php" title="ffmpeg-php group" target="_blank"><br />
</a></p>
<ol>
<li><a href="http://groups.google.com/group/ffmpeg-php" title="ffmpeg-php group" target="_blank">ffmpeg-php google group</a></li>
<li><a href="http://howto-pages.org/ffmpeg/" title="howto" target="_blank">howto manipulate audio and video</a></li>
<li><a href="http://linux.die.net/man/1/ffmpeg" title="man ffmpeg" target="_blank">man page for ffmpeg</a></li>
<li><a href="http://dag.wieers.com/rpm/packages/ffmpeg/" title="rpm for ffmpeg" target="_blank">rpms for ffmpeg</a></li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.rtraction.com/blog/devit/ffmpeg-what-is-it-what-can-it-do-for-me.html/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Kids &#038; Programming</title>
		<link>http://www.rtraction.com/blog/devit/kids-programming.html</link>
		<comments>http://www.rtraction.com/blog/devit/kids-programming.html#comments</comments>
		<pubDate>Sat, 05 Apr 2008 19:35:19 +0000</pubDate>
		<dc:creator>devit</dc:creator>
		
		<category><![CDATA[Devit!]]></category>

		<guid isPermaLink="false">http://www.rtraction.com/blog/devit/kids-programming.html</guid>
		<description><![CDATA[Recently rtraction worked with TechAlliance to put on a webchallenge for elementary and highschool students. We were able to see the very creative and impressive websites that students in both age groups were able to develop.  The webchallenge was part of TechAlliance&#8217;s IT week, which has helped raise awareness of the world-class IT companies [...]]]></description>
			<content:encoded><![CDATA[<p>Recently rtraction worked with <a href="http://www.techalliance.ca" title="TechAlliance">TechAlliance</a> to put on a <a href="http://www.techalliance.ca/webchallenge/" title="TechAlliance WebChallenge" target="_blank">webchallenge</a> for elementary and highschool students. We were able to see the very creative and impressive websites that students in both age groups were able to develop.  The webchallenge was part of TechAlliance&#8217;s IT week, which has helped raise awareness of the world-class IT companies and resources that call London home. This experience remind us how we got into programming and we thought it would be valuable to share some tips to anyone who might be interested.</p>
<p>One great resource that lies right in the city of London is <a href="http://www.csd.uwo.ca/bitbybit/about.html" title="Bit By Bit Computer Camp" target="_blank">Bit By Bit</a> computer camp. The summer camp is run at the <a href="http://www.uwo.ca" title="University of Western Ontario" target="_blank">University of Western Ontario</a> in conjunction with their Computer Science Department.  One of our developers attended this camp and had great experiences learning new things and meeting new people.  (He actually went three years in a row to experience the beginner, intermediate and advanced levels)</p>
<p class="MsoNormal">Google recently launched a new initiative designed to help get people involved in programming.  They have some great tools and resources available at <a href="http://code.google.com/edu/" title="Google EDU" target="_blank">http://code.google.com/edu</a>.</p>
<p class="MsoNormal">If you have any other tips for young developers, or perhaps an adult who is looking to move into software development, feel free to share your comments with us below.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.rtraction.com/blog/devit/kids-programming.html/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Simple Development Tips to remember</title>
		<link>http://www.rtraction.com/blog/devit/simple-development-tips-to-remember.html</link>
		<comments>http://www.rtraction.com/blog/devit/simple-development-tips-to-remember.html#comments</comments>
		<pubDate>Fri, 28 Mar 2008 14:42:15 +0000</pubDate>
		<dc:creator>devit</dc:creator>
		
		<category><![CDATA[Devit!]]></category>

		<guid isPermaLink="false">http://www.rtraction.com/blog/devit/simple-development-tips-to-remember.html</guid>
		<description><![CDATA[Some important and yet simple tips that can get lost over time: (In no particular order)

Ensure every code path closes your database connection
Log all errors and review your error logs on a periodic basis
Comment all code - It&#8217;s easier to remove excessive comments than to try and understand someone else&#8217;s code
Write out the process in [...]]]></description>
			<content:encoded><![CDATA[<p>Some important and yet simple tips that can get lost over time: (In no particular order)</p>
<ol>
<li>Ensure every code path closes your database connection</li>
<li>Log all errors and review your error logs on a periodic basis</li>
<li>Comment all code - It&#8217;s easier to remove excessive comments than to try and understand someone else&#8217;s code</li>
<li>Write out the process in SUDO code before you start to ensure you&#8217;ve covered off all the necessary functionality</li>
<li>Have another developer review your code - in 5 minutes another developer can sanity check your code</li>
<li>Document complicated code in a WIKI or some other type of developer resource</li>
<li>Break down complex problems into smaller issues that are easier to digest - if necessary repeat</li>
<li>Always assume the user will do unexpected things</li>
<li>For larger development ensure database design and specifications are tackled first</li>
<li>Never be embarrassed to ask other developers for help, all to often developers try to solve a problem that one of their colleagues have already successfully resolved</li>
<li>Google is your friend, use it</li>
<li>And most important, get up and go for a walk, stretch your legs and get the blood flowing when you&#8217;re trying to solve a difficult problem or when you&#8217;ve just been working for hours on end</li>
</ol>
<p>If you have some great tips feel free to post a comment below.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.rtraction.com/blog/devit/simple-development-tips-to-remember.html/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Adobe Air - What it means for developers</title>
		<link>http://www.rtraction.com/blog/devit/adobe-air-what-it-means-for-developers-and-clients.html</link>
		<comments>http://www.rtraction.com/blog/devit/adobe-air-what-it-means-for-developers-and-clients.html#comments</comments>
		<pubDate>Fri, 07 Mar 2008 15:10:26 +0000</pubDate>
		<dc:creator>devit</dc:creator>
		
		<category><![CDATA[Devit!]]></category>

		<guid isPermaLink="false">http://www.rtraction.com/blog/devit/adobe-air-what-it-means-for-developers-and-clients.html</guid>
		<description><![CDATA[Adobe Air 1.0 was recently released and developers should put their lunch break or some downtime to reviewing this latest software release from Adobe.  While Adobe Air requires a download so users can utilize the software - it provides an added bonus of Flash that could have some developers quite excited.  With Adobe [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.adobe.com/products/air/" title="Adobe Air" target="_blank">Adobe Air 1.0</a> was recently released and developers should put their lunch break or some downtime to reviewing this latest software release from Adobe.  While Adobe Air requires a download so users can utilize the software - it provides an added bonus of Flash that could have some developers quite excited.  With Adobe Air you can develop rich desktop applications that utilize web based data systems.  This type of technology is perfect for people like real estate agents, sales representatives or anyone else who might find it useful to work in an offline/online mode.  Some downsides to this software package are the current lack of support for Linux, but good news for Linux users and enthusiasts alike as Adobe has committed to releasing the software on the Linux platform by the end of 2008.  I highly recommend any developer takes five minutes out of their day to review this technology and keep it in mind with future projects.</p>
<p>If you have any good Adobe Air development sites, articles or tips feel free to post them below in the comments.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.rtraction.com/blog/devit/adobe-air-what-it-means-for-developers-and-clients.html/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Enhance your web development with the Firefox web developer extension</title>
		<link>http://www.rtraction.com/blog/devit/enhance-your-web-development-with-the-firefox-web-developer-extension.html</link>
		<comments>http://www.rtraction.com/blog/devit/enhance-your-web-development-with-the-firefox-web-developer-extension.html#comments</comments>
		<pubDate>Fri, 29 Feb 2008 16:04:48 +0000</pubDate>
		<dc:creator>devit</dc:creator>
		
		<category><![CDATA[Devit!]]></category>

		<guid isPermaLink="false">http://www.rtraction.com/blog/devit/enhance-your-web-development-with-the-firefox-web-developer-extension.html</guid>
		<description><![CDATA[If completing a tasks takes you 29minutes this year.  Next year it should take you at least a couple minutes less.  Sometimes all you need to enhance your efficiencies and save yourself time at the end of the day is to learn how to properly use the tools you&#8217;ve already have installed.  [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.rtraction.com/images/stories/blog/firefox-web-dev-ext.jpg" title="web developer toolbar" alt="web developer toolbar" align="right" height="24" hspace="5" vspace="2" width="464" />If completing a tasks takes you 29minutes this year.  Next year it should take you at least a couple minutes less.  Sometimes all you need to enhance your efficiencies and save yourself time at the end of the day is to learn how to properly use the tools you&#8217;ve already have installed.  There is a great article over at sixrevisions.com with 9 practical ways to enhance your web development by using the Firefox web developer extension. Most if not all web developers already have this extension installed and likely use it on a daily basis.  One tip that the article brought to light is a great piece of functionality is &#8216;Tools-&gt;View Report&#8217; to see how your website performs from an optimization standpoint.</p>
<p>Click <a href="http://sixrevisions.com/rapid-development/9-practical-ways-to-enhance-your-web-development-using-the-firefox-web-developer-extension/" title="9 Tips!">here</a> to read the full article and hopefully save yourself some valuable time.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.rtraction.com/blog/devit/enhance-your-web-development-with-the-firefox-web-developer-extension.html/feed/</wfw:commentRss>
		</item>
		<item>
		<title>SQL Syntax - The important of accuracy</title>
		<link>http://www.rtraction.com/blog/devit/sql-syntax-the-important-of-accuracy.html</link>
		<comments>http://www.rtraction.com/blog/devit/sql-syntax-the-important-of-accuracy.html#comments</comments>
		<pubDate>Fri, 22 Feb 2008 21:34:04 +0000</pubDate>
		<dc:creator>devit</dc:creator>
		
		<category><![CDATA[Devit!]]></category>

		<guid isPermaLink="false">http://www.rtraction.com/blog/devit/sql-syntax-the-important-of-accuracy.html</guid>
		<description><![CDATA[A colleague recently pointed out a great article about the difference between &#8220;IS NULL&#8221; and &#8220;= NULL&#8221; over at http://www.sqlservercentral.com.
Often small details in syntax can be overlooked causing unintended results or nonfunctional code.  It&#8217;s very important when working with any language that you consult available help documentation whenever necessary.
Any developer who works with SQL [...]]]></description>
			<content:encoded><![CDATA[<p>A colleague recently pointed out a great article about the difference between &#8220;IS NULL&#8221; and &#8220;= NULL&#8221; over at <a href="http://www.sqlservercentral.com" title="SQLServerCentral" target="_blank">http://www.sqlservercentral.com</a>.</p>
<p>Often small details in syntax can be overlooked causing unintended results or nonfunctional code.  It&#8217;s very important when working with any language that you consult available help documentation whenever necessary.</p>
<p>Any developer who works with SQL will want to understand the important differences between &#8220;IS NULL&#8221; and &#8220;= NULL&#8221;.</p>
<blockquote><p><em>“= NULL” is an  expression of value. Meaning, if the variable has been set and memory created  for the storage of data it has a value. A variable can in fact be set to NULL  which means the data value of the objects is unknown.</em></p></blockquote>
<blockquote><p><em>Now “IS NULL”  is a little trickier and is the preferred method for evaluating the condition of  a variable being NULL. When you use the “IS NULL” clause, it checks both the  address of the variable and the data within the variable as being unknown.</em></p></blockquote>
<p>Click <a href="http://www.sqlservercentral.com/articles/Basic+Querying/understandingthedifferencebetweenisnull/871/" title="Understanding the difference between IS NULL and = NULL By James Travis" target="_blank">here</a> to see the full article to better understand the difference between IS NULL and = NULL.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.rtraction.com/blog/devit/sql-syntax-the-important-of-accuracy.html/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Is Sun&#8217;s acquisition of MySQL a good thing?</title>
		<link>http://www.rtraction.com/blog/devit/is-suns-acquisition-of-mysql-a-good-thing.html</link>
		<comments>http://www.rtraction.com/blog/devit/is-suns-acquisition-of-mysql-a-good-thing.html#comments</comments>
		<pubDate>Thu, 14 Feb 2008 22:14:51 +0000</pubDate>
		<dc:creator>Jeremy</dc:creator>
		
		<category><![CDATA[Devit!]]></category>

		<guid isPermaLink="false">http://www.rtraction.com/blog/devit/is-suns-acquisition-of-mysql-a-good-thing.html</guid>
		<description><![CDATA[When I first heard that MySQL, the open source database provider had been purchased by Sun, my immediate response was one of dread.  The perception of a merger aquisition seems to be a negative one when in reference to open source.  The fear of course is that great software that we&#8217;ve been using [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.rtraction.com/blog/wp-content/uploads/2008/01/sun_mysql.gif" title="Sun Mysql" alt="Sun Mysql" align="left" />When I first heard that MySQL, the open source database provider had been purchased by Sun, my immediate response was one of dread.  The perception of a merger aquisition seems to be a negative one when in reference to open source.  The fear of course is that great software that we&#8217;ve been using for free is suddenly going to become proprietary and closed.</p>
<p>I read the announcement from both the MySQL homepage as well as Jonathan Schwartz&#8217; (CEO of SUN) comments on his own blog.  There were a couple things that caught my eye and thought I would comment on.</p>
<p>In  Jonathan&#8217;s article he re-iterated a number of times Sun&#8217;s commitment to open source.  It&#8217;s interesting to note that Sun is one of the few companies rising out of the personal computer boom of the early 1980s to be able to adjust to the current state of technology and software.  They have struggled since the bubble burst in 2001 to stand as a hardware company alone.  Sun seems to have realized that in order to provide complete solutions to their clients they needed to become far more service oriented.</p>
<p>The idea of providing services is proving to be far more solid of a business model than just a hardware or software company alone.  It really just about emphasis.  Microsoft runs a similar business, however the focus is on the software.  Microsoft makes money by selling software and then providing services at further cost.  Sun however is banking on the fact that companies would rather pay exclusively for services to make the software work.</p>
<p>Sun now has licensed a number of it&#8217;s products under the GPL and made them available open source.  StarOffice was acquired from StarDivision and released open source as OpenOffice, the Lustre shared disk file system and even their longtime operation system Solaris has become open source.</p>
<p>The success of this merger is going to be dependent on how Sun relates to the open source community in the future.  Keeping it&#8217;s place as an advocate and support will help it grow into the primary source of services for enterprise level applications.  However if Sun decides to begin taking a heavy handed approach, an ego based insistence that the name Sun Microsystems be plastered high and low as the only provider, then they will not excel.</p>
<p>SAJM (Solaris, Apache, Java, MySQL) or whatever the acronym ends up being will become a new standard only if the open source community decides it, much the way LAMP (Linux, Apache, MySQL, PHP) became such.  But the first hint of Microsoft heavy handed tactics will put Sun back in the &#8220;proprietary&#8221; camp and left out of the open source &#8220;tree-house&#8221;.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.rtraction.com/blog/devit/is-suns-acquisition-of-mysql-a-good-thing.html/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
