<?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; learning</title>
	<atom:link href="http://www.ronbravo.com/weblog/tag/learning/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>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>myToolBox Software Development: Update 00</title>
		<link>http://www.ronbravo.com/weblog/2009_04_02/mytoolbox-software-development-update-00/</link>
		<comments>http://www.ronbravo.com/weblog/2009_04_02/mytoolbox-software-development-update-00/#comments</comments>
		<pubDate>Fri, 03 Apr 2009 04:50:23 +0000</pubDate>
		<dc:creator>ronbravo</dc:creator>
				<category><![CDATA[Art, Community, and Gardening]]></category>
		<category><![CDATA[Computers and Freedom Software]]></category>
		<category><![CDATA[application]]></category>
		<category><![CDATA[community]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[learning]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[people]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[web 2.0]]></category>
		<category><![CDATA[webapp]]></category>

		<guid isPermaLink="false">http://www.ronbravo.com/weblog/?p=801</guid>
		<description><![CDATA[So this is the first post I am making on the development of the myToolBox web application. These are just a simple set of tools to use along side other web applications. I am developing them for Arizona Homegrown Solutions &#8230; <a href="http://www.ronbravo.com/weblog/2009_04_02/mytoolbox-software-development-update-00/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>So this is the first post I am making on the development of the myToolBox web application. These are just a simple set of tools to use along side other web applications. I am developing them for <a href="”http://www.azhomegrownsolutions.org”" target="”_blank”">Arizona Homegrown Solutions</a> to help solve some small little problems we are running into here and there. Right now it is not all that impressive since a lot of the development time has been spent learning javascript, php, and mysql. I knew them to some degree before due to my exposure making web applications in the Ruby on Rails platform, but not to the degree I know now.<span id="more-801"></span> To run one of the tools just go to the myToolBox location on my personal hosting:</p>
<p><a href="”http://www.ronbravo.com/mytoolbox/source”" target="”_blank”">http://www.ronbravo.com/mytoolbox/source</a></p>
<p><strong>IMPORTANT NOTE:</strong> I developed this software using the Mozilla Firefox Internet Browser because it complies with webstandards more than Internet Explorer and it has better development tools. This means some of the myToolBox features may not work in Internet Explorer. I am assuming that the tools should work fine in the Safari or Opera browsers as well, but since I have not tested this I cannot confirm it. I just know that Internet Explorer will probably not work. This does not mean Internet Explorer will never be supported it just means that it is currently a pain in the ass to work with and so I&#8217;m holding off doing anything with it.</p>
<p>Once you&#8217;re on the myToolbox site just click on one of the tool names and the tool should run. Below I give a little bit of a description about them.</p>
<p><strong>Tabula Terra</strong></p>
<p>This is a simple journal entry system to allow people to enter in different conditions for the day while they were in their garden. This is Jill&#8217;s idea so I will be working with her to try and flesh this out more. At the moment it is pretty much a clone of the functionality provided by the <a href="”http://www.seedsofchange.com/digging/gcp_login.aspx”">Seeds of Change Garden Planner</a>. Ours is a little more sterile than theirs but I imagine as development moves on Tabula Terra will start to look a lot nicer.</p>
<p>Currently anyone can enter in a journal and mess around with it. Once user accounts get up and running we will be able to allow the journals to be organized more by an individual&#8217;s account. I also plan on allowing for charts to be generated so that we can get a visual representation of a lot of the data users will be putting in. I know that Jen has begun tracking her harvest at the end of the month and those are the kinds of things I&#8217;m hoping can get entered into the database(<a href="”http://azhomegrownsolutions.ning.com/profiles/blogs/march-harvest-tally”" target="”_blank”">See Jen that&#8217;s the surprise I was talking to you about</a>).</p>
<p>Some of the ideas Jill has thrown around are things like getting a nice database going of information on what people are planting, what their weather is like, and anything else related to growing food in our region. Hopefully in a year or so we will have enough data to compile and print for people to use. So there is a lot we can do with this.</p>
<p><strong>Wiki Reader</strong></p>
<p>This is a wiki application. Even though there is a ton of wiki software out there, many of them are pretty complicated. Most do not have the techno junk stripped out so that normal people can just jump right in and start creating documents. The few that I did like for easy of use required a subscription. No way. We need a free solution, and since I could not find what I think would be best for the group I&#8217;m hoping to create something that will. Now I will admit I have no idea how hard or easy creating wiki software is, but I figure we have some time before having a wiki up for AZHS is essential. In the meantime I will try and throw something together and see what comes out. Mostly though I&#8217;m using this as an excuse to practice my software development skills and gain a little more experience. So that in the future if AZHS does need some specific tool that does not exists I may be able to provide an option.</p>
<p>So that&#8217;s the myToolBox package in a nutshell. It&#8217;s all been license under the free, as in freedom not beer, license known as the <a href="”http://www.fsf.org/licensing/licenses/agpl-3.0.html”">GNU AGPL version 3</a>. I&#8217;m also using several 3rd party souce code libraries to help take care of some of the heavy lifting in the development of this software. The big idea being that the source code stays open for any community to update, maintain, and modify how they see fit. Providing them with the freedom to do what they want with the software hence the phrase, free as freedom not beer. Of course the development community at the moment is only made up of one person, me, but I hope that will change in the future. So give it a spin and post back any feedback or suggestions you might have. As I said these tools are in very early stage so don&#8217;t expect much yet. Give it time and they will grow.</p>
<!-- PHP 5.x -->]]></content:encoded>
			<wfw:commentRss>http://www.ronbravo.com/weblog/2009_04_02/mytoolbox-software-development-update-00/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

