Entries in web-site design (6)

Sunday
Apr242011

Getting Done with C++ Basics

So, it's been about three weeks, and my C++ studies pass another significant point - I am about to finish introductory chapters in textbook as well as the CS106B first five lectures.  One thing I found out about C++ almost right away is that it's really easy to understand.  The syntax, the structure, the ideas are very similar to those I learned during Java studies.  To state the obvious once again, I am to continue with the lessons and exercises, maybe even at faster pace than I thought before.

Some minor yet quite important changes were made to the design of the web-site:  the corners are rounded (at least for Mozilla and WebKit-based browsers), the colors match better, the bugs are mostly fixed.  My goal for the week ahead would be to come up with a better background for the site, the current one seems to be way too dark...

This is it for today, oh and last but certainly not least:  Happy Easter!!  I love this holiday, not only because of colored food, but also because of the term 'Easter Egg' reserved for surprises hidden in the programs by coders.  So, Happy Easter again!!

Sunday
Mar272011

My First "Serious" Project  :)

Last week started with changes in SimpleBeat web-site design (I changed the background from plain brown color to simple "wooden" texture), and it continued with making the header for the web-site, original typography art-work, rendering "SimpleBeat" in bold white letters with outline effect.  It may seem a bit out of style, and I am going to fine-tune it this week.
 
As far as my programming and studies go, I've learned a couple new concepts:  HashMaps and Layouts.  These concepts are Java-specific (at least Layouts scheme), so I am not spending much time on it.  My Java course should be over by mid-April (which is in three weeks), and I'll be starting C++ as my second course.
 

To practice Arrays and Layouts I am going to do a few practice exercises.  And here's a brief overview of my first exercise, a variation of Hangman game, which I call "Harakiri", and which is styled and related to Japanese culture.  In traditional Hangman player guesses the letters of a word, and if he makes a mistake the picture gets updated with new details of the hangman.  In my variation the hangman is samurai (Japanese warrior) ready to perform harakiri (ritual suicide), and the only way to prevent samurai from doing it is to guess the word correctly making the least of the mistakes possible.  The word list will contain English words originated in Japan, or famous places in Japan (some well-known and not so much entities like "tsunami", "Tokio", "banzai", "kimono", etc).

This is going to be a "serious" projest, involving writing/reading files (dictionary), displaying rich graphics (I am on a zero budget, so do not expect anything too advanced), music & sounds.

I am treating this project as a prototype for my future iOS development process, and will be testing out various techniques and approaches to see what works and what doesn't.  I plan to finish with the game by the end of the week, and will post various details and follow up next Sunday.

Sunday
Mar062011

iPad 2 Is On Its Way!

This week's greatest news was of course the iPad 2 event on March 2nd.  I was delighted to know that Steve Jobs himself presented the thing, and over all the keynote was quite impressive.  I am definitely to become iOS developer!  I like the fact there will be cameras, more power and the gyro -- those are the things which I'll definitely take into account.

Speaking of programming, it wasn't a big learning week for me, but rather 'settling down' and getting the skills sharpen.  I was also taking a quick break for 3 days to get done with one highly captivating reading, 'Under the Dome' by Stephen King.  Still got one last chapter to read, and I know I'm better to be done with it soon, because this means returning to programming soon as well! :)

Apart from the reading and Apple event, the final touches of the basic redesign were applied to the SimpleBeat web-site.  Now I can concentrate on fine-tuning the minor details and develop the visuals.

Sunday
Feb272011

Learning Java Programming (almost) at Stanford

In one of the very first blog posts I've mentioned the fascinating opportunity provided by Stanford University initiative which allows anyone in the world who has Internet access to watch complete sets of lectures on various subjects including Computer Science & programming.  In fact, I believe that without such opportunity it would've been virtually impossible for me to make necessary advancements this quick.  So let me describe the courses I've chosen to 'attend'.

First, the current and the only course I am attending right now is CS106A (which is Computer Science Programming Methodology).  It is a starter course, quite basic, but challenging enough.  Professor Mehran Sahami, who conducts this course, is above and beyond any great words I might've thought to write here.  He makes it very energetic, fun, and engaging study.  Even though the series of these lectures were recorded back in 2008, the material is still relevant and it suits my 'entry' level in object-oriented programming perfectly!  I was also lucky enough to have a chance to get the textbook for the course which is called 'The Art and Science of Java' by Eric S. Roberts.  It's really well-written and provides lots of necessary details.

Second, after completing the course (which I plan to achieve somewhere in mid-March), I'll be watching CS106B course, the complimentary and highly recommended one.  This is a 'prerequisite' course for the iOS development course at Stanford, which is the third one, and presumably the last one to take.  During that last course I plan to enroll in MacOS X and iOS Developer programs to be able to code and publish the apps at both the Mac App Store and the iTunes App Store.  I've already started jotting down some thoughts and design ideas on what those first apps might be and how they'd look like, so hopefully by the time I finish my self-education there will be plenty of material to start with!

On the final note today I'd also like to mention that the color scheme of the web-site has changed, and some ideas about the header image are considered to surface during this week.

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!  :)