Entries in screenshots (3)

Monday
Nov212011

Back On Track, and Running!

So many great things happened during this week, that I don't even know where to start!  Well, let's start from the beginning of the week.


Just as the Assignment #1 was done and over with the updated Stanford iOS course CS193p has been posted on iTunes!  This one is also done by Paul Hegarty, great instructor and very engaging man, but this time it's specific to iOS5 and uses the latest version of XCode (4.2).  After I've watched a couple of first lectures I firmly decided to switch from XCode 4.02 to the most recent one (I'd been holding to the old version because of the old lectures, so to be compatible).  It was quite easy to do, because I've advanced only to lecture 4 and did only one assignment.


I then updated XCode and found it to be a very much big improvement over what I had before!  Two most striking features are the Storyboard (and its automatic code generation) and the Automatic Reference Count (it vastly improves the memory management, especially when someone like me has a poor understanding of how memory should be managed).


Following the update, I've completed three lectures of the new course and did the very first assignment (it's also a calculator, but this time RPN).  I've enjoyed coding in the XCode so much that I re-made the calculator a couple more times, which also helped me to get used to the new subtleties of the app and the way it works.


Another bit of a good news is that I've decided to update my system to Lion (eventually), and join Apple Developer Program for iOS and OS X.  I've started the sign up process some days ago, and right now I'm in the middle of making it all work (for some reason I need to fax my confirmation to Apple, and the most interesting part in here is where do I find... a fax-machine!).


There was only one semi-bad event, I had Internet outage during Sunday, so this post came out late, sorry.  However, the good side is that I've had lots of time on my hand to code, code, code!

Sunday
Jul032011

Filling the Gaps

It's getting more and more organized (I mean my studies), this week I managed to find time to code a couple of exercises, started a new chapter in textbook, and completed another CS106B lecture.  But I'm most proud of having found the time to do yet another problem from Project Euler pool.  Even though it was a relatively simple problem (this is #2, quite easy), it still provided an hour or so of thinking, coding, and pure fun, not to mention zero debugging!  Yes, it worked perfectly fine and provided the right answer on the very first attempt!  Really happy about that.  Here's my badge (later I am going to put it somewhere on my blog permanently):

 

 

My goal for the coming week is to develop a stable schedule of theory/practice studies to maintain consistency in learning.  It is obviously good to have the skills up and running, rather than scan the textbook each time I forget the name of a function call or interface syntax.

To sum up the week's results, here's a really tiny screenshot from my latest practice exercise:  distribution histogram.  :)

And, of course, not to forget the upcoming holiday!  Happy 4th of July, my US friends!!

Sunday
Feb202011

Building Skills in Programming and Design

It was a wonderful and intense week for me (in a good way).  Minutes after posting my last note one week ago I decided to change the design of the web-site.  Again…  So, I spent a couple of hours tweaking a completely new template to better suit my needs.  I’ve also added tags cloud, changed appearance of Twitter feed a bit, and… that’s it for now.  :)  It still is in a ‘beta’ stage though, I will definitely change the colors (I liked the previous color scheme better), and the icons, and will pay special attention to the header.  I plan to make a collage of my working environment in Eclipse and have it as the header image.  Basically, that’s my goal for the week ahead in terms of the web-site design.

My programming skills are also improving.  I’ve completed, debugged, and polished ‘BreakOut’ game.  Even though it’s a very simple game, it turned out to be a valuable experience in programming.  I’ve learned how to program mouse and keyboard events, and also how to make many things to happen all at the same time.

This was also a great experience in debugging.  I had three major bugs.  One was that the ball may get stuck inside the puddle, another — the puddle might in some cases disappear when hit by the ball, and the last one (which I got rid of very quickly) — the ball could become invisible if the initial direction of movement was to the left and not to the right.  So, the major problem for me was not to identify the bug, but to actually come up with a fix.  And to my surprise the two bugs I had no clue to fix got worked out relatively fast once I started thinking about possible solutions.  Thus, the first lesson: 

Even if you don’t seem to know how to fix a bug, keep trying, it may be easier to fix than it looks! 

Another game (it’s even less complicated than ‘BreakOut’) I’ve implemented just yesterday is ‘UFO’.  I’ve coded it from scratch in two hours, then eliminated the bugs (which took me roughly another two hours), and implemented an advanced feature:  when the bullet hits the UFO there is a little green alien falling down from it and bouncing away.  :)

I’ve implemented a separate class for the alien named… well, GAlien, which I designed to be a separate class extending GCompound class.  It allowed me to do various things with it in simple and convenient ways.  By the way, this is how the alien looks like:      and here's the code for the GAlien class:


Next week I’ll continue my study by reviewing the lectures, reading on the book, doing the exercises.  I hope to complete the course by mid March and start with the next one immediately!  And now back to work, blog-time is over!  :)