<?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>Dovyski</title>
	<atom:link href="http://www.dovyski.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.dovyski.com</link>
	<description>Pointless things somehow useful</description>
	<lastBuildDate>Mon, 25 Mar 2013 20:45:51 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>Gamedev book – days 1 and 2</title>
		<link>http://www.dovyski.com/2013/03/gamedev-book-days-1-and-2/</link>
		<comments>http://www.dovyski.com/2013/03/gamedev-book-days-1-and-2/#comments</comments>
		<pubDate>Fri, 22 Mar 2013 20:37:59 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Book]]></category>

		<guid isPermaLink="false">http://www.dovyski.com/?p=2881</guid>
		<description><![CDATA[It's been three weeks since I started working on this book. During Friday the 15th I finished the summary. I came up with 19 chapters! That's more than I previously thought, but since it's a draft, I can cut some &#8230; <a href="http://www.dovyski.com/2013/03/gamedev-book-days-1-and-2/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p><a href="http://www.dovyski.com/wp-content/uploads/2013/03/book_1_2.jpg"><img class="alignleft size-full wp-image-2883" alt="book_1_2" src="http://www.dovyski.com/wp-content/uploads/2013/03/book_1_2.jpg" width="887" height="665" /></a></p>
<p>It's been three weeks since I started working on this book. During Friday the 15th I finished the summary. I came up with 19 chapters! That's more than I previously thought, but since it's a draft, I can cut some chapters along the way.</p>
<p>Today I finally started writing something. Damn, it was <strong>hard</strong>! It's been almost 3 years since I wrote something big (my master thesis) , so I had to brush all that dust. The key secret for every endeavor is persistence, so it took me some time to get things working again. At the end of the day I was really proud of my result. It was a small piece of text, but it served the purpose of warming things up.</p>
<p>Analyzing the current scene I will merge some chapters and change the main subject of others. However that's a task for the future and for my next Friday.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dovyski.com/2013/03/gamedev-book-days-1-and-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Gamedev book &#8211; day 0</title>
		<link>http://www.dovyski.com/2013/03/gamedev-book-day-0/</link>
		<comments>http://www.dovyski.com/2013/03/gamedev-book-day-0/#comments</comments>
		<pubDate>Fri, 08 Mar 2013 22:00:39 +0000</pubDate>
		<dc:creator>Dovyski</dc:creator>
				<category><![CDATA[Book]]></category>
		<category><![CDATA[book]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[games]]></category>
		<category><![CDATA[resolutions]]></category>

		<guid isPermaLink="false">http://www.dovyski.com/?p=2853</guid>
		<description><![CDATA[I am thrilled to say that today I've started writing my book about game development! Every great (and huge) journey starts with a single step, which probably is the hardest one. This book is one of my new year’s resolutions &#8230; <a href="http://www.dovyski.com/2013/03/gamedev-book-day-0/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p><img class="alignleft  wp-image-2855" alt="book-textbook" src="http://www.dovyski.com/wp-content/uploads/2013/03/book-textbook-1024x678.jpg" width="100%" height="auto" /></p>
<p>I am thrilled to say that today I've started writing my book about game development! Every great (and huge) journey starts with a single step, which probably is the hardest one. This book is one of my <a title="My new year’s resolutions for 2013" href="http://www.dovyski.com/2013/01/my-new-years-resolutions-for-2013/" target="_blank">new year’s resolutions for 2013</a>.</p>
<p>I've been planning to start this book since the beginning of the year, but university work (and some side projects, such as <a href="http://onegameamonth.com" target="_blank">1GAM</a>) swamped me with tasks. I knew there was no easy way to start this book, so I reserved 20% of my week to work exclusively on it. My workmate <a href="http://duartedenio.wordpress.com/" target="_blank">Denio</a> and I made a pact to progress a personal side-project during a specific day of the week. We chose Friday for that and named it "Insane Friday" (sounds much better in Portuguese).</p>
<p>Sharing a common day to work on our projects is great because it helps us focus on the job, even though we are working on completely different things. No matter how much university work we need to overcome during Friday, we must progress with our projects, that's the rule. I know 20% (a single day of the week) is not the perfect amount of time to finish a book, but I need to start with a healthy pace. The idea is to (hopefully) increase that amount over time, but smoothly.</p>
<p>During my first day of work, I did the obvious: planned the content. I brainstormed all the subjects I want to cover, then I wrote them down on a draft summary. Our first Insane Friday just lasted for a couple of hours, so I was not able to make my draft become a real summary, but that's already a start.</p>
<p>I am looking forward to working on my book again. I will blog every week about my progress, so I can keep track of the time and measure how many centuries it will take me to finish this book <img src='http://www.dovyski.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> .</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dovyski.com/2013/03/gamedev-book-day-0/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>My new year&#8217;s resolutions for 2013</title>
		<link>http://www.dovyski.com/2013/01/my-new-years-resolutions-for-2013/</link>
		<comments>http://www.dovyski.com/2013/01/my-new-years-resolutions-for-2013/#comments</comments>
		<pubDate>Thu, 03 Jan 2013 11:20:11 +0000</pubDate>
		<dc:creator>Dovyski</dc:creator>
				<category><![CDATA[Thoughts]]></category>
		<category><![CDATA[2013]]></category>
		<category><![CDATA[ideas]]></category>
		<category><![CDATA[resolutions]]></category>

		<guid isPermaLink="false">http://www.dovyski.com/?p=2835</guid>
		<description><![CDATA[Last year was amazing! It was my second year working as a professor, something really different from the life I used to have as a game developer at Decadium. I experimented much more and the overall was pretty good. I &#8230; <a href="http://www.dovyski.com/2013/01/my-new-years-resolutions-for-2013/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>Last year was amazing! It was my second year working as a professor, something really different from the life I used to have as a game developer at <a href="http://decadium.com" target="_blank">Decadium</a>. I experimented much <a title="I told my 2nd year CS students to create a programming language" href="http://www.dovyski.com/2012/04/i-told-my-2nd-year-cs-students-to-create-a-programming-language/">more</a> and the overall was pretty good. I am happy with the results <img src='http://www.dovyski.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>I got so many ideas during last year that I end up surrounded by a vortex of them. Lots of those ideas came to reality, but a huge amount is still out there, waiting to be implemented. This year I will try to stick with the list below, my year's resolutions for 2013:</p>
<ul>
<li>Improve my skills as an <strong>indie game developer</strong>. I already joined <a href="http://onegameamonth.com" target="_blank">OneGameAMonth</a> and will try to release 12 games in 2013. A pharaonic task, but the fun is proportional. It is not about working until faint, but learning how to avoid code bloat and feature creep (two of my most significant problems as a developer).</li>
<li><strong>Exercise!</strong> I stopped running with my friends (in 2011, I ran a 10km marathon, that felt great!). I want to start jogging at least. I also want to get back on track on my push-ups training. I will buy a dumbbell too.</li>
<li>Regularly write <strong>tutorials</strong> about game development at <a href="http://as3gamegears.com" target="_blank">As3GameGears</a>. Since I started the blog, I just post about tools. It's time to improve the content and write about game related stuff.</li>
<li> Write a <strong>book</strong> about game development. That one is the toughest. I wrote a couple of tutorials last year, but they were small compared to a whole book. This item was in my year's resolutions for 2012 as well, but I didn't touch it during the year. What a shame! Let's hope this year things will be different.</li>
<li>Contribute to an <strong>open source project</strong>. This one is already happening since I joined <a href="http://github.com/flixelcommunity" target="_blank">Flixel Community</a> team. Flixel is a great game engine for Flash and I want to work hard to make it even better.</li>
<li>Found a <strong>Jr tech company</strong> at <a href="http://www.uffs.edu.br" target="_blank">UFFS</a>. I've been working on that during the last months and it is almost done. It will improve the students perception about the world out there. My idea is to establish some sort of incubator-venture-capital-startup-booster company. I know, I know, but it works in my head <img src='http://www.dovyski.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </li>
<li><strong>Research</strong>. It's been two years since I stopped working on my master's dissertation. I want to start working on it again, researching and publishing papers.</li>
<li>Find inner <strong>patience</strong>. Sometimes I get really upset by small things and it is not helping. I will try to keep myself calm and constant during 2013. It will make me a better husband, professor and person.</li>
<li>Release at least one <strong>side project</strong>. I have lots of ideas, but I never manage to work on it and release something.</li>
</ul>
<p>All right! That's quite a list. If I accomplish half of it, it will be a huge step <em>per se</em>. I've noticed I'm some sort of TODO list addicted. No matter if I accomplish the items, as long as I have a ton of them. Pretty creepy. I'll work on improving that too.</p>
<p>It's time to keep the focus and work hard. The problem with a big list like that is the first step: where should I start?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dovyski.com/2013/01/my-new-years-resolutions-for-2013/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Open-source projects of one man army</title>
		<link>http://www.dovyski.com/2012/11/open-source-projects-of-one-man-army/</link>
		<comments>http://www.dovyski.com/2012/11/open-source-projects-of-one-man-army/#comments</comments>
		<pubDate>Sat, 24 Nov 2012 20:37:21 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Thoughts]]></category>

		<guid isPermaLink="false">http://www.dovyski.com/?p=2795</guid>
		<description><![CDATA[I am not a new "consumer" of open-source software (OSS). In fact several tools I work in a daily basis are open-source. The OSS idea of freedom to create, share and help others (most of the time for free) always fascinated me. I've &#8230; <a href="http://www.dovyski.com/2012/11/open-source-projects-of-one-man-army/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>I am not a new "consumer" of open-source software (OSS). In fact several tools I work in a daily basis are open-source. The OSS idea of freedom to create, share and help others (most of the time for free) always fascinated me.</p>
<p>I've been planning to jump into that open-source world for a while. And for "jump into" I mean start contributing code/ideas/energy instead of just watching things happen. I was certain I would not write the shiniest nor the best code in the world, but heck, I had to start! After a while, I started looking at the projects I use every day to find something to start contributing to. After some time, I must say I saw something pretty strange, but rather common in the community: projects with a <strong>single developer</strong>. It is a project founded, coded and maintained by a single person. That's honorable and bad at the same time.</p>
<p>If you have a single point of failure, any fluctuation will generate a huge impact. If for some reason the author can't work on that project (for a short period or for months), there is nothing you can do about it. You can contribute to that project doing things that do not involve the author (such as reporting bugs, answering questions at the forums), but you can't do anything beyond.</p>
<p>As a consequence the project may experience an inactivity time. Even if you can fix a bug, you can send a patch (or a pull request, for Github lovers) but it will land only when (and if) the author comes back. In the worst case scenario the project will slowly fade away, unable to catch up with another developer (or team). Here comes another huge misunderstanding of the idea behind OSS that I noticed in the users of some projects: the author <strong>must</strong> continue<strong> </strong>the work<strong>. </strong>That's nonsense! <strong>The developers owe you nothing!</strong></p>
<p>When you start an open-source project, it can be for a variety of reasons. Maybe the author just thought it could be a cool idea, he was trying something new or he got bored. It doesn't matter the reason, but I am pretty sure when the projected started, the author did not sign any contract using his own blood to seal a connection that guaranties he will work on that project for the rest of his life. The same way the project started, it can end, because the author got a new job, had a baby or got tired. That happens.</p>
<p>Complaining is not an option. We can do better than that! If the project is <strong>open-source </strong>(and the license allows it), anyone in the world can fork it and continue the work. I know that a forked project may not be as strong as the original, but it's <em>alive </em>at least<em>. </em>If you can gather more developers, the fork may end up being as strong and popular as the original project.</p>
<p>I might be new to all that OSS development, but I thought everyone already knew that.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dovyski.com/2012/11/open-source-projects-of-one-man-army/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Using ChromiumOS in a daily basis</title>
		<link>http://www.dovyski.com/2012/06/using-chromiumos-in-a-daily-basis/</link>
		<comments>http://www.dovyski.com/2012/06/using-chromiumos-in-a-daily-basis/#comments</comments>
		<pubDate>Mon, 11 Jun 2012 02:15:44 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Misc]]></category>
		<category><![CDATA[chromebook]]></category>
		<category><![CDATA[chromeos]]></category>
		<category><![CDATA[chromiumos]]></category>
		<category><![CDATA[cloud]]></category>

		<guid isPermaLink="false">http://www.dovyski.com/?p=2770</guid>
		<description><![CDATA[The very first time I heard about ChromeOS I thought it was an amazing idea. I always hated the painful process of keeping a computer running smoothly, which consists of formatting, installing OS/apps, update everything, repeat it all. When Google &#8230; <a href="http://www.dovyski.com/2012/06/using-chromiumos-in-a-daily-basis/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>The very first time I heard about <a href="http://www.chromium.org/chromium-os" target="_blank">ChromeOS</a> I thought it was an amazing idea. I always hated the painful process of keeping a computer running smoothly, which consists of formatting, installing OS/apps, update everything, repeat it all. When Google released their <a href="http://google.com/chromebook" target="_blank">Chromebooks</a>, I joined the waiting list, but they were not available here in Brazil. Damn it!</p>
<p>It did not stop me from trying ChromeOS. After some time, I searched the web and found <a href="http://chromeos.hexxeh.net/" target="_blank">ChromiumOS</a> builds by <a href="http://hexxeh.net/" target="_blank">Hexxeh</a>. I first created a bootable USB stick carrying the ChromiumOS and used it a couple times. It was cool, so I decided to go hardcore and installed ChromiumOS on my notebook (Lenovo ThinkPad T400). Those are my first impressions.</p>
<h2>Is it fast?</h2>
<p>No and yes. Deeply inside I was expecting an extremely fast boot time (the famous 8 seconds), but I got a 23s boot. I know I don't have an official Chromebook, so I was expecting that "slow" boot time. The resume time, however, is dead-fast. I guess it takes about 2 or 3 seconds to be ready to use after I open the notebook lid. Great!</p>
<p>Excluding the boot and resume time, everything feels fast. The windows, the apps, the UI. The OS interface is easy to understand and is simple, no complex options.</p>
<h2>Can you still do everything you used to using another OS?</h2>
<p>It depends. All tasks that are not related to game/app development I am able to do, such as create/view docs, read e-mails, blog, etc. I could even plug a data-show into the notebook and share the screen to use in my classes. I did not create anything unusual yet such as a banner or an image using any image editor in the cloud, but so far, so good with the rest.</p>
<p>About my development tasks, I cannot perform any of them using ChromiumOS. Google already knew that was a problem for several developers out there, so they created <a href="http://www.google.com.br/url?sa=t&amp;rct=j&amp;q=&amp;esrc=s&amp;source=web&amp;cd=1&amp;ved=0CGQQFjAA&amp;url=http%3A%2F%2Fchrome.google.com%2Fwebstore%2Fdetail%2Fgbchcmhmhahfdphkhkmpfmihenigjmpp&amp;ei=kk3VT8O5JI6J6gHE1vD7Ag&amp;usg=AFQjCNG8JLkmUNmz-g3VWvmekvM_FXe5jg&amp;sig2=5xDmrsYR-E7Pj8uugnUB5Q" target="_blank">Chrome Remote Desktop</a>, an extension that allows me to remotely access my other computers. I must say that it is fast, really fast! I've been using <a href="http://logmein.com" target="_blank">LogMeIn</a> or Windows Remote Desktop for that, the latter being the fastest. Chrome Remote Desktop is so fast that I feel like using the remote computer locally. It will fill the gap I need to use ChromiumOS to develop, however I still need another computer.</p>
<h2>Is it buggy?</h2>
<p>Sure! I assume ChromeOS is able to use the Chromebook hardware perfectly, but it is not able to do the same with my Lenovo. I was already expecting that. My trackpad works relatively well and all notebook shortcut buttons (such as the volume ones) work as well. However I am not able to use the trackpad to perform all OS gestures such as tap with two finders then drag them away from each other.</p>
<p>Something I was not expecting was the network problems. Frequently ChromiumOS is unable to load any website, reporting there was a DNS problem. My network is just fine, because all other computers are using the Internet normally (using Chrome, by the way). To fix that I must constantly disable and enable the network, so everything starts to work again. Sometimes after the network reset ChromiumOS keeps telling me my device is offline, even when it is not.</p>
<h2>Final thoughts</h2>
<p>I am happy with the experience so far. It is a new concept and I think it is the future. I've been trying to integrate ChromiumOS into my life one step at a time, starting with home activities. I plan to use it on my work too, but I need to set everything up first.</p>
<p>Stay tuned for more reports!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dovyski.com/2012/06/using-chromiumos-in-a-daily-basis/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>I told my 2nd year CS students to create a programming language [RESULTS]</title>
		<link>http://www.dovyski.com/2012/05/i-told-my-2nd-year-cs-students-to-create-a-programming-language-results/</link>
		<comments>http://www.dovyski.com/2012/05/i-told-my-2nd-year-cs-students-to-create-a-programming-language-results/#comments</comments>
		<pubDate>Mon, 14 May 2012 21:21:05 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://www.dovyski.com/?p=2737</guid>
		<description><![CDATA[A few weeks ago I told my 2nd year CS students to create a programming language and here are the results of such assignment. I am sorry for the long post, but I used any good information I collected. I have 24 &#8230; <a href="http://www.dovyski.com/2012/05/i-told-my-2nd-year-cs-students-to-create-a-programming-language-results/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>A few weeks ago <a title="I told my 2nd year CS students to create a programming language" href="http://www.dovyski.com/2012/04/i-told-my-2nd-year-cs-students-to-create-a-programming-language/" target="_blank">I told my 2nd year CS students to create a programming language</a> and here are the results of such assignment. I am sorry for the long post, but I used any good information I collected.</p>
<p>I have <strong>24</strong> students attending my classes. The assignment was supposed to be performed by pairs within 3 weeks, but I had two students that decided to go alone, so there were only <strong>11 pairs</strong> of students. I was expecting a high number of accomplishments, but it was better than I thought. In the end, just <strong>one</strong> pair of students didn't show up for the presentation day, all other students were there with a working interpreter.</p>
<h3>A little lie</h3>
<p>According to the assignment description, the interpreter should be able to handle if's and loops in order to get a good grade. I would test that asking them to implement two programs: #1 calculate the average of two numbers and #2 check prime numbers. If the interpreter was able to run program #1, they would be graded with at least 4.0 (up to 10.0). If the interpreter was able to run program #2, they would be graded from 8.0 to 10.0.</p>
<p>I told them this little lie to keep everybody focused and avoid extremely simple interpreters (e.g. able to handle variable assignments and expressions only). I evaluated the interpreters using the students hard work and the evolution they had on subjects they learned during the classes.</p>
<h3>The languages</h3>
<p>The very first thing I noticed was that they focused all their manpower on trying to create something able to interpret program #2. As a consequence, 12 of 14 interpreters were able to handle if's and loops, but not nested ifs/loops. You could use several ifs and loops as long as they were not nested. However all those 12 interpreters were able to handle loops containing several ifs, as long as they were not nested among each other. One pair of students did not implement if's/loops.</p>
<p>I assume this "non-nested thing" happened because they were thinking about checking prime numbers using a loop containing some if's. Some samples I found (translated to C for the sake or understanding):</p>
<pre>if(exp) {
  // only variable assignments allowed here.
}
while(exp) {
  if(exp) {
     // only variable assignments allowed here.
  }
  if(exp) {
     // only variable assignments allowed here.
  }
  // the following is not allowed here:
  while() {
  }
}</pre>
<p>Several students told me at the end of the presentation that they had ideas to allow nested if's/loops, but they had no time left to implement it. They also said there were too focused on small things (e.g. variables) and forgot to check the big picture. One pair of students used an "assembly" like approach and implemented the goto, so they their code allowed nested if's/loops.</p>
<p>About 5 interpreters used an "op-code" like grammar, so the programmer must start every statement with an "instruction op-code", e.g. <code>assign a = 2 + b</code>. I think they did that because they thought it would be easier to analyze every line, but in the end they noticed it was not that useful.</p>
<p>Just 3 interpreters were able to create variables on the fly, such as PHP does, where <code>$var = 2</code> declares <code>$var</code> if it is not already declared, or it assigns 2 if <code>$var</code> already exists. All other interpreters force the programmer to previously declare variables. I think it happened because they wrote just C code until now (they will meet PHP next semester).</p>
<p>Several interpreters were very sensitive about the spaces among tokens. As a consequence the programmer must use the exact number of spaces among tokens, otherwise it would not work. Just a few interpreters could read the code one char at a time, which allowed them to ignore extra spaces. All other interpreters used some sort of split method based on spaces/tabs/separators.</p>
<p>Five interprets had input commands, pretty much like <code>input var;</code>. The assignment description had no requirements about that, so it was cool to see them implementing something beyond what I asked for.</p>
<p>I also saw one interpreters able to handle complex math expressions (more than two elements/operators), but analyzing it from left to right with no operator precedence; I also saw typed vars (including int, float and string!), predefined variable names (you could use "a" to "z", and nothing else <img src='http://www.dovyski.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> ), output with value substitution (e.g <code>var = @var</code> produces <code>var = 2</code>).</p>
<h3>Students feedback</h3>
<p>The week after the students concluded the assignment, I issued a poll to check their opinion about all they had to go through. Those were the results:</p>
<p style="text-align: center;"><strong>How difficult was it to implement this assignment?</strong></p>
<table id="table#0">
<tbody>
<tr>
<td><strong>Pretty easy</strong></td>
<td></td>
<td></td>
<td>0%</td>
</tr>
<tr>
<td><strong>Easy</strong></td>
<td></td>
<td></td>
<td>5%</td>
</tr>
<tr>
<td><strong>Regular</strong></td>
<td></td>
<td></td>
<td>11%</td>
</tr>
<tr>
<td><strong>Hard</strong></td>
<td></td>
<td></td>
<td>42%</td>
</tr>
<tr>
<td><strong>Pretty hard</strong></td>
<td></td>
<td></td>
<td>42%</td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<p style="text-align: center;"><strong>From 0 to 5, being 0 just a little and 5 very much, how much do you think this assignment helped you to understand the concepts we studied?</strong></p>
<table id="table#2">
<tbody>
<tr>
<td>0 -</td>
<td>
<div><strong>Just a little</strong></div>
</td>
<td></td>
<td>0%</td>
</tr>
<tr>
<td>1</td>
<td></td>
<td></td>
<td>11%</td>
</tr>
<tr>
<td>2</td>
<td></td>
<td></td>
<td>5%</td>
</tr>
<tr>
<td>3</td>
<td></td>
<td></td>
<td>21%</td>
</tr>
<tr>
<td>4</td>
<td></td>
<td></td>
<td>16%</td>
</tr>
<tr>
<td>5 -</td>
<td>
<div><strong>Very much</strong></div>
</td>
<td></td>
<td>47%</td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<p style="text-align: center;"><strong> How much fun did you have doing this assignment?</strong></p>
<table id="table#4">
<tbody>
<tr>
<td><strong>It was death boring, don't ever do that again!</strong></td>
<td>16%</td>
</tr>
<tr>
<td><strong>It was fun!</strong></td>
<td>68%</td>
</tr>
<tr>
<td><strong>It was damn cool!</strong></td>
<td>16%</td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<p style="text-align: center;"><strong>Would you recommend me to repeat this assignment in the future with other students?</strong></p>
<table id="table#6">
<tbody>
<tr>
<td><strong>Yes</strong></td>
<td></td>
<td></td>
<td>89%</td>
</tr>
<tr>
<td><strong>No</strong></td>
<td></td>
<td></td>
<td>11%</td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<h3>Conclusion</h3>
<p>It was outstanding! My very first goal with the interpreter was to make them understand about objects, classes, methods and their relation. I could have asked them to implement a simple calculator to enforce those concepts, but as I told before, it was too boring.</p>
<p>I broke the line and pushed them really hard and they were able to handle it. I think nobody got depressed or something like that. I am very proud of them and looking forward to publish the next big assignment: a Guitar Hero like game.</p>
<p><strong>UPDATE:</strong> discuss it on <a href="http://news.ycombinator.com/item?id=3973367" target="_blank">Hacker News</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dovyski.com/2012/05/i-told-my-2nd-year-cs-students-to-create-a-programming-language-results/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>I told my 2nd year CS students to create a programming language</title>
		<link>http://www.dovyski.com/2012/04/i-told-my-2nd-year-cs-students-to-create-a-programming-language/</link>
		<comments>http://www.dovyski.com/2012/04/i-told-my-2nd-year-cs-students-to-create-a-programming-language/#comments</comments>
		<pubDate>Fri, 13 Apr 2012 22:19:43 +0000</pubDate>
		<dc:creator>Dovyski</dc:creator>
				<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://www.dovyski.com/?p=2721</guid>
		<description><![CDATA[I teach object-oriented programming using Java to 3rd semester Computer Science students at Federal University of Fronteira Sul. During their first years, the students attend to algorithms and data structures classes, all using C. I teach algorithms too. I like &#8230; <a href="http://www.dovyski.com/2012/04/i-told-my-2nd-year-cs-students-to-create-a-programming-language/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>I teach object-oriented programming using Java to 3rd semester Computer Science students at <a href="http://www.uffs.edu.br" target="_blank">Federal University of Fronteira Sul</a>. During their first years, the students attend to algorithms and data structures classes, all using C. I teach algorithms too.</p>
<p>I like to teach using assignments. During the last two semesters, my OOP/Java classes were followed by small assignments, every two weeks. Those assignments were strictly related to some topic being discussed during the classes. I was afraid to push my students too hard, so the tasks were easy (in my opinion) to understand and complete. I already told them to implement a tic-tac-toe game, a simple Android app (at the end of semester), a simplified bank management app, among others. However they are all boring tasks.</p>
<p>This semester I decided to take another approach. I wanted to push my students to the limits. After two months of classes, they were already familiar (or I thought so =) with objects, classes, strings and arrays. So I fired the first assignment: implement an interpreter for a programming language each pair of students must design. The language must have the following "feature" set:</p>
<ul>
<li>Declaration of variables</li>
<li>Assign values to variables</li>
<li>Math expressions with at least two members (e.g. 2 + 2)</li>
<li>ifs</li>
<li>loops</li>
</ul>
<p>Boom! When I told them about the assignment, they were a little bit shocked. They will get in touch with subjects as compilers only at the beginning of the 4th year, so I told them some basic tips about interpreting a language, such as analyzing tokens and using a dictionary to store and manage variables.</p>
<p>After they digested the information, they started designing their languages. They looked like they were having fun doing that. During the last two weeks, they have been working on that assignment. Lots of questions, lots of ideas and approaches. So far, so good.</p>
<p>I don't really expect them to create a production ready language interpreter. My goal with that task was to enhance their understanding about objects, classes, methods, instantiation, etc. They will empirically learn about a programming language structure. It's been great so far.</p>
<p>Next week they will present their interpreters. In order to make things even cooler, each pair of students must implement two programs using somebody else's language. I know this may not be the best approach for teaching OOP/Java, but it's way better than boring simple tasks.</p>
<p><strong>UPDATE</strong>: check the <a href="http://news.ycombinator.com/item?id=3839099" target="_blank">Hacker News</a> thread.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dovyski.com/2012/04/i-told-my-2nd-year-cs-students-to-create-a-programming-language/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Nokaloompas</title>
		<link>http://www.dovyski.com/2011/09/nokaloompas/</link>
		<comments>http://www.dovyski.com/2011/09/nokaloompas/#comments</comments>
		<pubDate>Fri, 30 Sep 2011 23:43:24 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.dovyski.com/?p=2696</guid>
		<description><![CDATA[My friends at Decadium just released a new game called Nokaloompas. It's a funny puzzle game that has the inverse gameplay of Cut the Rope, meaning you have to add ropes in order to achieve the level goal (carry bombs around) &#8230; <a href="http://www.dovyski.com/2011/09/nokaloompas/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p style="text-align: center;"><a href="www.kongregate.com/games/iopdecadium/nukaloompas"><img class=" wp-image-2698 aligncenter" title="Nukaloompas" src="http://www.dovyski.com/wp-content/uploads/2011/09/main.png" alt="" width="640" height="302" /></a></p>
<p style="text-align: left;">My friends at <a href="http://decadium.com">Decadium</a> just released a new game called <a href="http://www.kongregate.com/games/iopdecadium/nukaloompas" target="_blank">Nokaloompas</a>. It's a funny puzzle game that has the inverse gameplay of <a href="http://itunes.apple.com/us/app/cut-the-rope/id380293530?mt=8" target="_blank">Cut the Rope</a>, meaning you have to add ropes in order to achieve the level goal (carry bombs around)</p>
<p>Play for free at <a href="http://www.kongregate.com/games/iopdecadium/nukaloompas" target="_blank">Kongregate</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dovyski.com/2011/09/nokaloompas/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AS3 GameGears</title>
		<link>http://www.dovyski.com/2010/05/as3-gamegears/</link>
		<comments>http://www.dovyski.com/2010/05/as3-gamegears/#comments</comments>
		<pubDate>Fri, 07 May 2010 02:42:04 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Misc]]></category>
		<category><![CDATA[as3]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[games]]></category>

		<guid isPermaLink="false">http://www.dovyski.com/?p=2483</guid>
		<description><![CDATA[Flash game developers - meet my new project: AS3 Game Gears ! It is the right place to find useful tools to boost your game development. There is no need to reinvent the wheel, all you need is a place &#8230; <a href="http://www.dovyski.com/2010/05/as3-gamegears/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>Flash game developers - meet my new project: <a href="http://www.as3gamegears.com/" target="_blank">AS3 Game Gears</a> ! It is the right place to find useful tools to boost your game development. There is no need to reinvent the wheel, all you need is a place to find what you have been looking for. Enjoy!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dovyski.com/2010/05/as3-gamegears/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>FIVe3D &#8211; Flash Interactive Vector-based 3D</title>
		<link>http://www.dovyski.com/2010/05/five3d-flash-interactive-vector-based-3d/</link>
		<comments>http://www.dovyski.com/2010/05/five3d-flash-interactive-vector-based-3d/#comments</comments>
		<pubDate>Wed, 05 May 2010 10:04:02 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.dovyski.com/?p=2468</guid>
		<description><![CDATA[If you are looking for something different to make you game or Flash app looks better than the rest then you must take a look at FIVe3D. It is an open source code for the conception of interactive vector-based 3D &#8230; <a href="http://www.dovyski.com/2010/05/five3d-flash-interactive-vector-based-3d/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>If you are looking for something different to make you game or Flash app looks better than the rest then you must take a look at <a href="http://code.google.com/p/five3d/" target="_blank">FIVe3D.</a> It is an open source code for the conception of  interactive vector-based 3D animations.</p>
<p>It is licensed under the <a rel="nofollow" href="http://www.opensource.org/licenses/mit-license.php">MIT License.</a> One of my favorites demos is the <a href="http://five3d.mathieu-badimon.com/gallery/fluo/" target="_blank">Fluo Board</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dovyski.com/2010/05/five3d-flash-interactive-vector-based-3d/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
