<?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>The Awesome RonBravo &#187; Computers and Freedom Software</title>
	<atom:link href="http://www.ronbravo.com/weblog/category/computers-and-free-software/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.ronbravo.com/weblog</link>
	<description>Amazing and Astounding Tales of Adventure</description>
	<lastBuildDate>Mon, 14 Mar 2011 09:37:04 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.3</generator>
<image>
  <link>http://www.ronbravo.com/weblog</link>
  <url>http://www.ronbravo.com/files/my_avatar_2009_02_02.ico</url>
  <title>The Awesome RonBravo</title>
</image>
		<item>
		<title>Switch to Trisquel GNU Linux</title>
		<link>http://www.ronbravo.com/weblog/2011_02_08/switch-to-trisquel-gnu-linux/</link>
		<comments>http://www.ronbravo.com/weblog/2011_02_08/switch-to-trisquel-gnu-linux/#comments</comments>
		<pubDate>Tue, 08 Feb 2011 20:10:22 +0000</pubDate>
		<dc:creator>ronbravo</dc:creator>
				<category><![CDATA[Computers and Freedom Software]]></category>

		<guid isPermaLink="false">http://www.ronbravo.com/weblog/?p=1048</guid>
		<description><![CDATA[If you know me personally, then you know I am a huge GNU Linux fan and a fan of Freedom software. This weekend I replaced my old dell with my girlfriend&#8217;s HP laptop she had collecting dust on the shelf. &#8230; <a href="http://www.ronbravo.com/weblog/2011_02_08/switch-to-trisquel-gnu-linux/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>If you know me personally, then you know I am a huge GNU Linux fan and a fan of Freedom software. This weekend I replaced my old dell with my girlfriend&#8217;s HP laptop she had collecting dust on the shelf. Once I got a hold of the laptop I installed a new version of Trisquel and so far I love it. I&#8217;ve also begun to convince others to make the switch with me, so we shall see how they fare with the new Operating System. If  you want to know more about Trisquel, GNU Linux, or Freedom Software, then check out the links below:</p>
<p><a href="http://www.fsf.org/">FSF &#8211; Freedom Software Foundation</a></p>
<p><a href="http://trisquel.info/en">Trisquel GNU Linux OS &#8211; completely freedom endorsing OS</a></p>
<p>C ya.</p>
<!-- PHP 5.x -->]]></content:encoded>
			<wfw:commentRss>http://www.ronbravo.com/weblog/2011_02_08/switch-to-trisquel-gnu-linux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Video Editing with Blender 2.5 Series</title>
		<link>http://www.ronbravo.com/weblog/2011_02_01/video-editing-with-blender-2-5-series/</link>
		<comments>http://www.ronbravo.com/weblog/2011_02_01/video-editing-with-blender-2-5-series/#comments</comments>
		<pubDate>Tue, 01 Feb 2011 07:45:28 +0000</pubDate>
		<dc:creator>ronbravo</dc:creator>
				<category><![CDATA[Art, Community, and Gardening]]></category>
		<category><![CDATA[Computers and Freedom Software]]></category>

		<guid isPermaLink="false">http://www.ronbravo.com/weblog/?p=1026</guid>
		<description><![CDATA[Often times many people seem to have a need to go in and edit and composite several movies. Sometimes they may want to add some simple title screens, transform, or transition effects to the video. Blender 3D has had the &#8230; <a href="http://www.ronbravo.com/weblog/2011_02_01/video-editing-with-blender-2-5-series/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Often times many people seem to have a need to go in and edit and composite several movies. Sometimes they may want to add some simple title screens, transform, or transition effects to the video. Blender 3D has had the capability of editing software for a long time now. This video which I am posting shows how to take some simple movie clips, titles, and sound into Blender 2.5, and then composite it and export it all into one movie.</p>
<p><a href="http://vimeo.com/18410349">Blender 2.5 Sequence Editor Tutorial</a></p>
<p>Enjoy and C ya.</p>
<!-- PHP 5.x -->]]></content:encoded>
			<wfw:commentRss>http://www.ronbravo.com/weblog/2011_02_01/video-editing-with-blender-2-5-series/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Geral Celente and Trends for 2011</title>
		<link>http://www.ronbravo.com/weblog/2011_01_11/geral-celente-and-trends-for-2011/</link>
		<comments>http://www.ronbravo.com/weblog/2011_01_11/geral-celente-and-trends-for-2011/#comments</comments>
		<pubDate>Tue, 11 Jan 2011 07:59:53 +0000</pubDate>
		<dc:creator>ronbravo</dc:creator>
				<category><![CDATA[Computers and Freedom Software]]></category>
		<category><![CDATA[Politics and Economics]]></category>

		<guid isPermaLink="false">http://www.ronbravo.com/weblog/?p=995</guid>
		<description><![CDATA[I&#8217;m surprised by how many people I talk to here on a daily basis are oblivious of the situation going on in Europe and the European Union. The crazy thing is that some of that animosity and problems they face &#8230; <a href="http://www.ronbravo.com/weblog/2011_01_11/geral-celente-and-trends-for-2011/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m surprised by how many people I talk to here on a daily basis are oblivious of the situation going on in Europe and the European Union. The crazy thing is that some of that animosity and problems they face may start spilling over to the US in the next year.<span id="more-995"></span>This has been echoed several times in the independent Internet media and is precisely why I keep asking people to watch more news that is not from the United States. For example Russian Television or RT has a lot of news that we just do not get here in the US, or at least very little. If you&#8217;ve never heard of <a href="http://en.wikipedia.org/wiki/Gerald_Celente">Gerald Celente</a>, he&#8217;s been on several mainstream media news channels talking about trends and things to look for in the coming year. Just do a youtube search for him and you should get a lot of information. In this interview on Russian Television he goes in to his usual forecast. This time it mix with both bad news and optimism about what could happen in 2011.</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="480" height="385" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/VO45VBO6Swo?fs=1&amp;hl=en_US" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="480" height="385" src="http://www.youtube.com/v/VO45VBO6Swo?fs=1&amp;hl=en_US" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p>It&#8217;s interesting how he talks about alternative energy, which in other interviews he specifically talks about free energy. Not sure what that is? Look it. He also talks about the change in demand from the public about where our food comes from and how it is grown. This is interesting as it&#8217;s been something people like <a href="http://en.wikipedia.org/wiki/Catherine_Austin_Fitts">Catherine Austin Fitts</a> have been talking about since 2005. The thing I agree with the most about what Mr. Celente says in his interview is the note that more and more people will begin to act as much of these events begin to effect them personally. Get out there people and start searching for you news. Stop watching television and start actively participating in the world. The world is changing so try to keep yourselves and your families informed. C ya.</p>
<p>Oh, and stock up on some food.</p>
<!-- PHP 5.x -->]]></content:encoded>
			<wfw:commentRss>http://www.ronbravo.com/weblog/2011_01_11/geral-celente-and-trends-for-2011/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OpenGL Vertex Buffer Object in Java with lwjgl</title>
		<link>http://www.ronbravo.com/weblog/2010_10_14/opengl-vertex-buffer-object-in-java-with-lwjgl/</link>
		<comments>http://www.ronbravo.com/weblog/2010_10_14/opengl-vertex-buffer-object-in-java-with-lwjgl/#comments</comments>
		<pubDate>Thu, 14 Oct 2010 22:48:36 +0000</pubDate>
		<dc:creator>ronbravo</dc:creator>
				<category><![CDATA[Computers and Freedom Software]]></category>
		<category><![CDATA[buffer]]></category>
		<category><![CDATA[display]]></category>
		<category><![CDATA[graphics]]></category>
		<category><![CDATA[lists]]></category>
		<category><![CDATA[lwjgl]]></category>
		<category><![CDATA[object]]></category>
		<category><![CDATA[opengl]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[vbo]]></category>
		<category><![CDATA[vertex]]></category>

		<guid isPermaLink="false">http://www.ronbravo.com/weblog/?p=918</guid>
		<description><![CDATA[Recently I&#8217;ve been working a lot with Java. In the past few months I&#8217;ve dabbled a bit with the Java OpenGL bindings, particularly JOGL. I&#8217;ve decided to begin working with lwjgl instead just because it has been around longer and &#8230; <a href="http://www.ronbravo.com/weblog/2010_10_14/opengl-vertex-buffer-object-in-java-with-lwjgl/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Recently I&#8217;ve been working a lot with Java. In the past few months I&#8217;ve dabbled a bit with the Java OpenGL bindings, particularly <a href="http://jogamp.org/jogl/www/">JOGL</a>. I&#8217;ve decided to begin working with <a href="http://lwjgl.org/">lwjgl</a> instead just because it has been around longer and has a more steady release cycle. So far it&#8217;s been pretty easy to make the switch. <span id="more-918"></span>I&#8217;ve worked with OpenGL back in 2007 while in college when I was trying to get some of my art assets to load into a NintendoDS emulator. At the time I was using C and it wasn&#8217;t all too difficult. Toying around on the DS got me familiar with OpenGL, OpenGL immediate mode, and OpenGL Display Lists. However, after reading a bunch of forums and tutorials online, the general recommendation has been to stop using Display Lists and start using Vertex Buffer Objects since Display Lists have been deprecated and are only included for compatibility reasons. That&#8217;s all fine and good, but there are not too many tutorials that explain a simple and straight forward way of using Vertex Buffer Objects. The few that I did focused on doing the coding in C/C++ and not in Java using lwjgl. So after some searching <a href="http://lwjgl.org/forum/index.php?topic=3314.0">I found a forum post with someone who had some simple code showing how to do this</a>. I used that as a reference and now I&#8217;m posting my changes in the hope that others can benefit from it as well. At the end of this post I&#8217;ve also listed other references I used in trying to understand an OpenGL Vertex Buffer Object.</p>
<p>Also note that this is a class called OpenGLStarter, that is loaded by a different class that has the main java entry loop. So in order to copy this code make sure you already have lwjgl running and working. If not check out <a href="http://gpwiki.org/index.php/OpenGL:Tutorials:Java:LWJGL:Introduction">this link</a> to get things started. Then just create a class called OpenGLStarter and copy the code from this example into it.</p>
<p><strong>Here is the code:</strong></p>
<p><a href="http://clippy.cz.cc/index.php?show=172">http://clippy.cz.cc/index.php?show=172</a></p>
<p>Note that I put most of the documentation of what is going on inside the code. Also there is no support on the code posted. It was done as a way for me to share vertex buffer objects as I understand them at the moment. I still need to read up more  on them. Also the code is very simple as there is way more stuff you could do with it but the simplicity is intended. I hope you enjoy and C ya.</p>
<p><strong>References:</strong></p>
<p style="text-align: left;">Wikipedia description: <a href="http://en.wikipedia.org/wiki/Vertex_Buffer_Object">http://en.wikipedia.org/wiki/Vertex_Buffer_Object</a></p>
<p style="text-align: left;">OpenGL Wiki description with example in C code: <a href="http://www.opengl.org/wiki/Vertex_Buffer_Object">http://www.opengl.org/wiki/Vertex_Buffer_Object</a></p>
<p style="text-align: left;">lwjgl Forum post with example code: <a href="http://lwjgl.org/forum/index.php?topic=3314.0">http://lwjgl.org/forum/index.php?topic=3314.0</a></p>
<p style="text-align: left;">Ozone3d description with example code in C ++: <a href="http://www.ozone3d.net/tutorials/opengl_vbo_p2.php">http://www.ozone3d.net/tutorials/opengl_vbo_p2.php</a></p>
<!-- PHP 5.x -->]]></content:encoded>
			<wfw:commentRss>http://www.ronbravo.com/weblog/2010_10_14/opengl-vertex-buffer-object-in-java-with-lwjgl/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>BlenderCraft Update 1</title>
		<link>http://www.ronbravo.com/weblog/2010_09_06/blendercraft-update-1/</link>
		<comments>http://www.ronbravo.com/weblog/2010_09_06/blendercraft-update-1/#comments</comments>
		<pubDate>Mon, 06 Sep 2010 15:44:04 +0000</pubDate>
		<dc:creator>ronbravo</dc:creator>
				<category><![CDATA[Computers and Freedom Software]]></category>
		<category><![CDATA[2.5]]></category>
		<category><![CDATA[art]]></category>
		<category><![CDATA[blender]]></category>
		<category><![CDATA[blendercraft]]></category>
		<category><![CDATA[model]]></category>
		<category><![CDATA[practice]]></category>
		<category><![CDATA[starcraft]]></category>
		<category><![CDATA[texture]]></category>

		<guid isPermaLink="false">http://www.ronbravo.com/weblog/?p=911</guid>
		<description><![CDATA[Here&#8217;s a small update of what I&#8217;ve been working on when I get the time. It&#8217;s nothing really major. I just really use it familiarize myself with Blender 2.5. The image in the top right hand corner is not mine. &#8230; <a href="http://www.ronbravo.com/weblog/2010_09_06/blendercraft-update-1/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s a small update of what I&#8217;ve been working on when I get the time. It&#8217;s nothing really major. I just really use it familiarize myself with Blender 2.5. The image in the top right hand corner is not mine. It&#8217;s what I am using as a reference and is from the Starcraft 2 trailer. I am just trying to copy the look of the door.</p>
<p><a href="http://www.ronbravo.com/files/images_wip/wip-2010-09-06.jpg" rel="lightbox[911]" title="BlenderCraft Update 1"><img src="http://www.ronbravo.com/files/images_wip/wip-2010-09-06-thumbnail.jpg" alt="" /></a></p>
<p>C ya.</p>
<!-- PHP 5.x -->]]></content:encoded>
			<wfw:commentRss>http://www.ronbravo.com/weblog/2010_09_06/blendercraft-update-1/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>What is the Best Language for Learning Programming? Blitz3D and Absolute Beginners</title>
		<link>http://www.ronbravo.com/weblog/2010_09_06/what-is-the-best-language-for-learning-programming-blitz3d-and-absolute-beginners/</link>
		<comments>http://www.ronbravo.com/weblog/2010_09_06/what-is-the-best-language-for-learning-programming-blitz3d-and-absolute-beginners/#comments</comments>
		<pubDate>Mon, 06 Sep 2010 15:22:06 +0000</pubDate>
		<dc:creator>ronbravo</dc:creator>
				<category><![CDATA[Computers and Freedom Software]]></category>
		<category><![CDATA[3D]]></category>
		<category><![CDATA[basic]]></category>
		<category><![CDATA[beginner]]></category>
		<category><![CDATA[blitz]]></category>
		<category><![CDATA[computer]]></category>
		<category><![CDATA[language]]></category>
		<category><![CDATA[learning]]></category>
		<category><![CDATA[program]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[teaching]]></category>
		<category><![CDATA[technology]]></category>

		<guid isPermaLink="false">http://www.ronbravo.com/weblog/?p=889</guid>
		<description><![CDATA[Yesterday I was presented with the challenge of teaching a friend of mine how to program. This is all started with a discussion from a few days ago when I learned that he was attempting to teach himself how to &#8230; <a href="http://www.ronbravo.com/weblog/2010_09_06/what-is-the-best-language-for-learning-programming-blitz3d-and-absolute-beginners/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Yesterday I was presented with the challenge of teaching a friend of mine how to program. This is all started with a discussion from a few days ago when I learned that he was attempting to teach himself how to program in C++. Now if you now anything about programming and C++, you probably would agree that C++ is definitely not the best language to use for someone who has never programmed in there life. As the two of us began talking more about it, I was trying to think of what language would be best for him to use as a learning tool and introduction into program. I began going through the list of options in my head like javascript, ruby, python, java, smalltalk, and several others. At first I thought the best route to go would be Python. So we downloaded the program and began going over some basic concepts and writing some basic code. This went on for about two hours where towards the end I could tell by his look and comments that he was still confused, and that many of the concepts where not sticking to his brain. So, I kept trying to think what might be something to help him get over some of these programming conceptual hurdles? Then it came to me. Blitz Basic! Duh!</p>
<p><span id="more-889"></span></p>
<p>If you are not familiar with Blitz Basic I would recommend you check out their website:</p>
<p><a href="http://www.blitzbasic.com">Blitz Basic</a></p>
<p>Now the site doesn&#8217;t look all that impressive, however looks can be deceiving because Blitz Basic is a powerful little piece of software for those looking to learn programming and have never done so before. I first began using Blitz Basic, specifically Blitz3D, back in 2000 when I was developing a strong interest in game development. I had come across systems like Dark Basic, RapidQ, and several other developer kits that were supposed to make creating a game easy for beginners. In the end I stuck with Blitz3D. It&#8217;s language was intuitive and simple enough to just jump in and start coding, and it was easy to get results fast, which is extremely important! Most people I know who gave up on programming did so because of it&#8217;s complexities and perception that it took so much time and experience just to get something cool working. Blitz3D is completely the opposite and the friend I was tutoring was the proof of this. After stumbling around in python we began to use Blitz3D. One of the best parts about this tool is the documentation, specifically the language reference document. This document has to be the easiest and most straight forward get to the point, document I&#8217;ve used for a programming language. Again, my friend confirmed this for me as he began to read through the documentation and everything began to make sense to him. To illustrate this I can provide an example.</p>
<p>Programming languages have looping techniques for when you may want the computer to do something over and over again. For example if you wanted to loop through a set of instructions 10 times a common way to do it in most programming languages might be:</p>
<pre>i = 0
for (i=0; i &lt; 10;i++) {
    my instructions here...
}</pre>
<p>or</p>
<pre>i = 0
while (i &lt; 10) {
    my instructions here...
    i = i + 1;
}</pre>
<p>Now the implementation may vary slightly from language to language but the idea is the same. One of the problems my friend kept having with programming is that he would want to instruct the computer to do something and in his mind there was a more intuitive way to give an instruction. He kept running into the problem where popular languages, in his mind, seemed to be doing or declaring things in a counter intuitive way. In the above example of looping, he asked &#8220;Why can&#8217;t you just say repeat? Why is there not a repeat command?&#8221; . Luckily for him Blitz3D answered that request:</p>
<pre>i = 0</pre>
<pre>Repeat
    my instructions....
    i = i + 1
Until (i &gt; 10)</pre>
<p>Now, that&#8217;s not to say Blitz3D does not conform to the more common convention of &#8220;For Loops&#8221; and &#8220;While Loops&#8221;, but it does offer and additional alternative to standard. An alternative that my friend perceived to be much more intuitive and natural when providing instructions to a device like the computer. After reading through more and more of the documentation he seemed to be understanding the langauage and liking many of the commands associated with it. After about four hours he was able to create a window, display text, generate his own functions, and load images. Not bad for someone who just a few hours before new little to nothing about programming.</p>
<p>The other things I think that helped him in using Blitz3D is that the program comes with everything you need to begin. Just to name a few, It comes with:</p>
<ul>
<li> It&#8217;s own text editor that provides highlighting of command words(syntax highlighting) and a simple side pane that organizes user created functions, types, and labels. The interface for the text editor is also stripped down of complexity which is helpful for someone who is new to the programming world.</li>
<li>Many working examples and source code. This provides an excellent way for new users to begin looking at ways other people have gotten the computer to do things.</li>
<li>Support for graphics upfront. Blitz3D was intended for making 3D and 2D games. This means it comes built in with the ability to load graphics, manipulate graphics, display text, use network protocols, File Input/Output operations, and much more. One of the issues with some of the other languages we were using was the need to import or use 3rd party libraries to get some of the same functionality. While not a bad thing, it did make the tutoring session a little more complicate for the new user.</li>
<li>The ability to make games. This is important since learning to program can be difficult because one needs to understand not  just what to tell the computer, but also what steps to do it in. I&#8217;ve often found that using the paradigm of creating a video game often helps people transition to a programming centred mentality. This is because many of us have played games and are familiar with the process of a game, like game start up, the main game or main game loop, shutting down the game, bringing in new enemies, and various other things. The other benefit is that because of the appeal of games it helps to keep a student&#8217;s interest in actually trying to solve complicated problems or work though many of the concepts associated with programming.</li>
<li>The documentation. As I mentioned before the documentation is extremely easy to read and digest. It seems like it was written for a 5th grader level of reading comprehension. So understanding that means that the language is now open to more people in the general population.</li>
<li>The only draw back is that Blitz3D only runs on a Windows OS. Sorry, no Linux or Mac OS support. Perhaps <a title="Virtual Box" href="http://www.virtualbox.org/wiki/Screenshots">Virtual Box</a> can solve this issue?</li>
</ul>
<p>Looking back I thought perhaps this was just something that made sense to me and my friend. However, I&#8217;ve taught several people back in college and even gave a whole presentation/workshop using the language. Not one person ever came up to me with a face of confusion after using it. Granted in these contexts we were doing very simple things, however my friend and I were also doing very simple things when we started the day with python and he was still confused.</p>
<p>The other thing that came to my mind and that my friend often brought up is why do many of these languages do things the way they do? Often times the way it&#8217;s been and currently being done is counter intuitive to the way humans are used to interacting or providing instructions, which is essentially what you are doing. This started me off explaining to him a little of the history behind computers and how many of the conventions that are used in programming today are a product of a convention that has evolved through the last 40 years. Many of these conventions which are old and were created based on the limitations and constraints of their day, still exist simply because it is tradition and sort of a de-facto standard. Blitz3D puts itself in an interesting position where it attempts to support more commonly held programming conventions while also providing alternatives that many people, including my friend, seem to be much more natural and intuitive.</p>
<p>So in the end my final analysis is that Blitz3D is one of the best programs to use as a tool to teach how to program. Now that does not mean the student needs to remain with the language, since I for example have long since moved on to things like javascript, php, and java, but the language does provide a nice and smooth entry point into understanding many of the core concepts of programming. These concepts which are essential and transferable to any programming language they may like to move into in the future.</p>
<!-- PHP 5.x -->]]></content:encoded>
			<wfw:commentRss>http://www.ronbravo.com/weblog/2010_09_06/what-is-the-best-language-for-learning-programming-blitz3d-and-absolute-beginners/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Working with Scons</title>
		<link>http://www.ronbravo.com/weblog/2010_06_06/working-with-scons/</link>
		<comments>http://www.ronbravo.com/weblog/2010_06_06/working-with-scons/#comments</comments>
		<pubDate>Mon, 07 Jun 2010 01:04:26 +0000</pubDate>
		<dc:creator>ronbravo</dc:creator>
				<category><![CDATA[Computers and Freedom Software]]></category>
		<category><![CDATA[build]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[scons]]></category>

		<guid isPermaLink="false">http://www.ronbravo.com/weblog/?p=874</guid>
		<description><![CDATA[I&#8217;ve been working to create my own software for a while called myToolbox. It was origianlly created using PHP, Javascript, and MySQL, however, I&#8217;ve now decided to move to using Java. Doing so has been both enlightening and frustrating as &#8230; <a href="http://www.ronbravo.com/weblog/2010_06_06/working-with-scons/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been working to create my own software for a while called myToolbox. It was origianlly created using PHP, Javascript, and MySQL, however, I&#8217;ve now decided to move to using Java. Doing so has been both enlightening and frustrating as moving towards a new programming language is not always easy. Especially, when one is moving to a language that is as strict as Java. <span id="more-874"></span>That said, I&#8217;ve gotten past my initial Java woes and began do some coding. The challenge now face is find the tools to create an eco system that is both intuitive and friendly towards Java development. One of the tools I have been looking at is <a href="http://www.scons.org/">Scons</a>. This is a software build tool written in Python. There are a bunch of other tools specific for Java and various other programming language. I decided to go with Scons because it&#8217;s being used in Blender, which I&#8217;ve toyed with in the past, and it supports many languages including custom ones. That&#8217;s awesome if I ever start doing coding in something else besides Java. So in the brief time that I&#8217;ve used it, it&#8217;s turned out to be pretty good. About the only issue I had with it was forcing Scons to build and analyse the code in a certain order.</p>
<p>Essentially, Sons attempts to read the python build commands, analyse it and source code dependencies, and then build your project. This was a problem for me because I was wanting Scons to run a Java program after it had completed compiling my source code. This was done with the following Scons command:</p>
<pre>action = env.Action('java -jar  dist/mypackage.jar')
env.Execute(action)</pre>
<p>The problem with doing that is that Scons would execute the line of code  and run the program before it compiled and built the source code to classes. This means that the Java program I was running would run a previous version of the classes that I needed to compile. Again, this is due to the fact that Scons works by first reading and analysing the python build scripts and source code before building.</p>
<p>Now I did searching on several forums on how to circumvent this behaviour by building or injecting custom builders, however, it still was not what I wanted. In the end I came up with a simple solution. I decide to place my build code into a file called defaultBuild.py and then I placed the instructions to run Java in a separate file called Sconstruct, which is the default file Scons looks for when running the &#8216;scons&#8217; command in the command line. It looks something like this:</p>
<p>File: Sconstruct</p>
<div style="border: 1px dashed grey;padding: 10px;">
<pre># Import the needed Python modules
import os

print '-----------------------------------------'
print 'Building my project...'
print ''

env = Environment()

<strong># This is the command that invokes the python script that has instructions on how
# to build the project </strong>
action = env.Action('scons -f defaultBuild.py')
env.Execute(action)

print ''
print 'Done building my project.'
print '-----------------------------------------'
print ''

<strong># Now we run the Java program and the newly compiled class</strong>
action = env.Action('java -jar dist/mypackage.jar')
env.Execute(action)</pre>
</div>
<p>File: defaultBuild.py</p>
<div style="border: 1px dashed grey;padding: 10px;">
<pre># Create the build environment.
env = Environment()

# Compile the java source files
env.Java (target = '/bin', source = '/src')

# Package the java class files into a jar file
env.Jar(target = '/dist/mypackage.jar', source = '/bin')</pre>
</div>
<p>What the Sconstruct file does is tell Scons that in the command line run the scons command again but call the defaultBuild.py instead of the default Sconstruct. Scons of course obeys, which cause another instance of Scons to run which builds the needed code and returns with the results. Once it returns the rest of the code in the Sconstruct file is executed which in this case means that the Java Virtual Machine is launched and told to run the Jar file mypackage.jar. Not bad. A simple solution.</p>
<p>Now this is just one way this technique could be used. I figure if one had a bunch of things they needed Scons to do, like cleaning up files, running test suites, or compressing directories to zip files, then this is one way to do it. Break the building process into seperate files and then run each file according to the order the developer needs. Of course being new to Scons I do not know if this has any serious repercussions. So I recommend using this for very simple and basic type of flow control. Hope this technique is useful to others. C ya.</p>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 407px; width: 1px; height: 1px;"># Import the needed Python modules<br />
import os</p>
<p>print &#8216;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;&#8217;<br />
print &#8216;Building myToolbox&#8230;&#8217;<br />
print &#8221;</p>
<p>env = Environment()<br />
action = env.Action(&#8216;scons -f defaultBuild.py&#8217;)<br />
env.Execute(action)</p>
<p>print &#8221;<br />
print &#8216;Done building myToolbox.&#8217;<br />
print &#8216;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;&#8217;<br />
print &#8221;</p>
<p># Run the program<br />
package = os.path.join(os.curdir, &#8216;dist&#8217;)<br />
package = os.path.join(package, &#8216;myToolbox.jar&#8217;)<br />
action = env.Action(&#8216;java -jar &#8216; + package)</p></div>
<!-- PHP 5.x -->]]></content:encoded>
			<wfw:commentRss>http://www.ronbravo.com/weblog/2010_06_06/working-with-scons/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ubuntu 10.04</title>
		<link>http://www.ronbravo.com/weblog/2010_05_16/ubuntu-10-04/</link>
		<comments>http://www.ronbravo.com/weblog/2010_05_16/ubuntu-10-04/#comments</comments>
		<pubDate>Sun, 16 May 2010 10:02:25 +0000</pubDate>
		<dc:creator>ronbravo</dc:creator>
				<category><![CDATA[Computers and Freedom Software]]></category>

		<guid isPermaLink="false">http://www.ronbravo.com/weblog/?p=870</guid>
		<description><![CDATA[For those looking for an alternative Operating System to Microsoft Windows I just thought I would post that Ubuntu 10.04 was released a few weeks ago. Check out the new version on their main page: Ubuntu 10.04 While I personally &#8230; <a href="http://www.ronbravo.com/weblog/2010_05_16/ubuntu-10-04/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>For those looking for an alternative Operating System to Microsoft Windows I just thought I would post that Ubuntu 10.04 was released a few weeks ago. Check out the new version on their main page:</p>
<p><a href="http://www.ubuntu.com/">Ubuntu 10.04</a></p>
<p>While I personally am looking way to move to a more Freedom orientent version of GNU Linux, like <a href="http://search.yahoo.com/search?p=gnewsense&#038;toggle=1&#038;cop=mss&#038;ei=UTF-8&#038;fr=yfp-t-701">gNewSense</a>, I do recommend Ubuntu as a start OS for people looking to explore alternatives to Windows. Check it out when you get a chance.</p>
<!-- PHP 5.x -->]]></content:encoded>
			<wfw:commentRss>http://www.ronbravo.com/weblog/2010_05_16/ubuntu-10-04/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ah Facebook, How I Love to Hate Thee&#8230;</title>
		<link>http://www.ronbravo.com/weblog/2010_05_16/ah-facebook-how-i-love-to-hate-thee/</link>
		<comments>http://www.ronbravo.com/weblog/2010_05_16/ah-facebook-how-i-love-to-hate-thee/#comments</comments>
		<pubDate>Sun, 16 May 2010 09:39:51 +0000</pubDate>
		<dc:creator>ronbravo</dc:creator>
				<category><![CDATA[Computers and Freedom Software]]></category>
		<category><![CDATA[Politics and Economics]]></category>

		<guid isPermaLink="false">http://www.ronbravo.com/weblog/?p=866</guid>
		<description><![CDATA[Amazing how many people hate Facebook. And the animosity towards it has steady been growing. So much so that a new Free software version is being developed which will allow for user to control the software and control the data &#8230; <a href="http://www.ronbravo.com/weblog/2010_05_16/ah-facebook-how-i-love-to-hate-thee/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Amazing how many people hate Facebook. And the animosity towards it has steady been growing. So much so that a new Free software version is being developed which will allow for user to control the software and control the data on their own servers.<span id="more-866"></span> Check out this article on the New York Times:</p>
<p><a href="http://www.nytimes.com/2010/05/12/nyregion/12about.html">Four Nerds and a Cry to Arms Against Facebook</a></p>
<p>The project they speak of can be located here:</p>
<p><a href=" http://joindiaspora.com/project.html">Project Diaspora</a></p>
<p>Apperantly, they were inspired by a talk given by the esteemed Mr. Eben Moglen on how the new computer industry business model of Software as a Service and social networking platforms essetially provide third parties access to your information. Hopefully it will be released under the <a href="http://en.wikipedia.org/wiki/Affero_General_Public_License">GNU Affero General Public License</a> which works well for ensuring that users freedoms are maintained when using Web Applications. If you haven&#8217;t seen the video I suggest you do. Moglen express many of the dangers of thinking that putting your private information in the hands of many of these companies and government agencies is an innocent affair. He also goes in to detail about how what can be even more insightful about looking at people&#8217;s personal information is the inferences people and very sofisticated software can make off that system. Take a look at the presentation here:</p>
<p><a href="http://www.youtube.com/watch?v=QOEMv0S8AcA">Eben Moglen on the Dangers of the Cloud &#8211; Part 1</a><br />
<a href="http://www.youtube.com/watch?v=kpHWnHxmnXg&amp;feature=related">Eben Moglen on the Dangers of the Cloud &#8211; Part 2</a></p>
<p>I&#8217;ve said it before. Eben Moglen is a please to listen to. Do a Google or YouTube search for many of his videos and see what comes up. If you can stand his highly intellectual vocabulary(he is a lawyer), then it&#8217;s an amazing experience. Enjoy.</p>
<p>Oh, also check out this article on why you should delete your Facebook account:</p>
<p><a href="http://www.businessinsider.com/10-reasons-to-delete-your-facebook-account-2010-5#ixzz0nRdkf0Tq">Ten Reasons You Should Delete Your Facebook Account.</a></p>
<p>I&#8217;m not deleting mine for the time being. However, I&#8217;ve decided to stop using it. I figure they&#8217;ve already got the information I&#8217;ve given them about me and are not going to delete it. I don&#8217;t plan on giving them any more.</p>
<p>At some point I&#8217;ll have to point out some of the finer details of problems with Mega Search Engine Giant Google, and the critiscims around how they deal with privacy.</p>
<p><a href="http://en.wikipedia.org/wiki/Criticism_of_Google">Critiscims of Google</a><br />
<a href="http://www.scroogle.org/">Scroogle &#8211; A search engine that masks your IP from being tracked when looking for stuff on Google</a></p>
<!-- PHP 5.x -->]]></content:encoded>
			<wfw:commentRss>http://www.ronbravo.com/weblog/2010_05_16/ah-facebook-how-i-love-to-hate-thee/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sintel Trailer Released</title>
		<link>http://www.ronbravo.com/weblog/2010_05_14/sintel-trailer-released/</link>
		<comments>http://www.ronbravo.com/weblog/2010_05_14/sintel-trailer-released/#comments</comments>
		<pubDate>Fri, 14 May 2010 05:07:36 +0000</pubDate>
		<dc:creator>ronbravo</dc:creator>
				<category><![CDATA[Computers and Freedom Software]]></category>

		<guid isPermaLink="false">http://www.ronbravo.com/weblog/?p=844</guid>
		<description><![CDATA[Well, the Blender Foundation is at it again. They are currently working on finishing up the third Blender Open Movie Project. Here is the trailer: Enjoy. In the tradition of their previous movies, the content of this project will be &#8230; <a href="http://www.ronbravo.com/weblog/2010_05_14/sintel-trailer-released/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Well, the Blender Foundation is at it again. They are currently working on finishing up the third Blender Open Movie Project. Here is the trailer:<span id="more-844"></span></p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="560" height="340" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube-nocookie.com/v/HOfdboHvshg&amp;hl=en_US&amp;fs=1&amp;" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="560" height="340" src="http://www.youtube-nocookie.com/v/HOfdboHvshg&amp;hl=en_US&amp;fs=1&amp;" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p>Enjoy. In the tradition of their previous movies, the content of this project will be released under a Ceative Commons for anyone to use. Should be interesting to see how the final short film turns out.</p>
<!-- PHP 5.x -->]]></content:encoded>
			<wfw:commentRss>http://www.ronbravo.com/weblog/2010_05_14/sintel-trailer-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

