Exploring the web

Todays talk: less practical, more on coding ethics that can prevent your head from exploding.

Some background: I decided to give my portfolio an overhaul. Now that I’m not yet job-bound, I wanted to explore PHP, JS and CSS a bit more. These are some tips and tricks I want to share with you. Good tips for junior (and sloppy or lazy senior) web designers:

-> Valuable tip 0: Dynamic > static
Even in small projects like a portfolio, dynamic code can be such a delight. The web has become a dynamic place to be, so use those possibilities.

-> Valuable tip 1: Find a technology that works!
Is the focus on speed, on usability, on comprehensiveness, …?
There are many ways to get to Rome so choose wisely. My focus was: learning more about web languages, browser compatibility, being future proof, code readability and ease of change. I chose for PHP because it’s nice and dynamic, pretty understandable, there’s good documentation on the subject and it runs on LAMP servers.

-> Valuable tip 2: Keep headers and footers in separate documents and include them.
This follows the rule “Single point of data“, which can save you a lot of time when dealing with larger projects.

-> Valuable tip 3: Separate style/design from content. That is why I use external CSS files. If you don’t know CSS yet: w3schools has tons of clear info. Use it.

-> Valuable tip 4: Use unobtrusive JavaScripts when using JS for extra bells and whistles.
Example: During my work on a new portfolio, I wanted to add thumbnails to give an overview of some of my projects. Of course, some effects would be nice I thought, so I checked some example image galleries. They came in wide varieties. Eventually I found something pretty cool in JavaScript. The code was pretty bloated though, not very readable and it did not separate style/design from behavior. On top of that, it wasn’t unobtrusive, meaning you’d see absolutely nothing when JavaScript is turned off. Many people have JS-enabled browsers, but still… a fallback would be nice.

I eventually coded it myself using PHP, html and well applied CSS. On top of that – to add the bells and whistles – I use JavaScript for some animating parts.
However, with JS turned off, it’s still functional. So if you have sufficient time, strive towards something unobtrusive.
I found a good article by Jeremy Keith on Unobtrusive JS.

-> Valuable tip 5: When one approach fails, try another.
Example: I wanted a matching layout for my WordPress blog and portfolio.
Since WordPress (WP) has a WYSIWYG way of doing things, I looked into:

– Method 1: Implementing my pages in WP.
This seemed to be pretty limiting since WP is just a CMS/blogsoftware, so I approached the problem in an other way.

Method 2: Implementing the WP header, footer and stylesheets in my pages.
This caused me headaches.  Wordpress is very useful, but its code is chaos. I couldn’t be as flexible as I wanted to be in my own pages. No need to get stuck though… Different approach!

Method 3: Changing WP’s theme’s header and footer to my header and footer.
This got things running smooth again. Tip n°2 proved useful. I already had my header and footer separated and that proved very pluggable into WP. Of course, basic rules like naming your id’s, classes, variables and such appropriately, will prevent conflicts with other libraries, API’s, software, …

Posted in Web technologies | Leave a comment

SVN usage

Usage of version control should be mandatory at all times on projects with longevity of more than 2-3 weeks, whether you are working alone or in group. You should familiarize yourself with it. I used bazaar which is command line. Now I use TortoiseSVN which is very graphical and easy to use. But it has some quirks I want to get out of the way. You may think it’s lame, but it really does help you along if you do it right from the start.

1. Use trunk, branches and tags folders

In trunk: your development version on which you’re working.
In tags: your stable revisions, important (software) versions.
In branches:  when you want to make big changes or try something out without losing your stable development version so far. Switch “branches” between the trunk and branches folder to choose where you want to work on. Eventually, you should want to merge your changes back into the trunk once everything became stable. If a branch goes to lead a different life, it is called a “fork”. They share the same base, but became something different.

Learn to use switch, branch/tag!

2. Backup/Restore. Moving between svn servers.

Note: You’ll never create backups before it’s too late. Just do it!
Not long ago, I used assembla, a free svn service. However, having my own server and to make sure my data is secure, I wanted to move it from assembla to my server. Of course without losing file versions as I would with a regular svn export.

I set up visualSVN on the server. I exported an SVN dump file from assembla. Mind the few differences:

– Full svn with version control for server: this contains folders like “conf”, “db”, “hooks”, “locks”, …
This is strictly server side and should not be polluted by your files. Keep out!
– SVN checkout or repository: Your main directory and the result of a checkout of the svn server. This gives you an entire repository with all your files, including “.svn” folders with version control information.
– Exported repository: The result of an export of your repository. This contains all your files without the version control info. Smaller in size, but limited, so hold onto your directory with svn info.

Now, how do I get the dump from my svn host (assembla in my case) up on my own server? The dump is a .gz or .zip file. Unzip it somewhere easy to reach on your hard drive.
Go to VisualSVN server, start its command prompt and navigate to your repository folder on the server in the command line (with “cd” usually). Then enter

“svnadmin create foldername“.
“svnadmin load foldername < fullPathToYourUnzippedDumpFile

There. Now my revisions data is saved on my server. But my SVN checkout or ‘repository’ is still pointing to my online host (assembla). Simple, just create a new folder somewhere and perform a new SVN checkout from your server URL.

Maybe not that easy, but now your setup is done and you can enjoy the wonders of SVN again. Plus, now that you have control, you can explore additional useful svn features. I advise you to use TortoiseSVN. AnkhSVN is also quite useful for svn duties straight from Visual Studio. This will also help me remember if I ever need to relocate my svn server without losing my version control data.

Posted in Software usage | Leave a comment

1: Graduation

Hi guys,

My name is Rob, I’m a programmer-oriented handyman and today I graduated in what is called – hold your breaths – Bachelor in Digital Arts and Entertainment or DAE in short. Now, what is the
– purpose of this blog?

I’ve decided to write about my journey in and through the game industry and about my programming adventures.

But first, let me
– introduce myself to make you aware of who I am and what I do.

I’m a fun guy -at least I think so- who likes to make people smile, although I’m sometimes just a little bit shy too. I have a huge complex -well, not that huge- about my red cheeks, which some say is cute, but I think it’s not. Guess I’m warm-blooded. 🙂 I like a little sarcasm at times, although I have a tendency to get the jokes on myself.

I used to like riding my bike.
I like driving my car. 😉
I still ride my bike though, stay in shape, and -important for all game industry workers who tend to get too caught up at work- stay hydrated! But yes, cars are cool. For the record, women usually share the opposite opinion.

I like to spoil myself from time to time, but think things through before I buy. Most of the things I buy have a power cord attached to it. 😉

– A little history:

I grew up on a farm in West-Flanders, Belgium, have a younger brother, my mom passed away when I was eleven and since summer 2007, I’m living on my own in Kortrijk, Belgium. I’m -currently- single and unemployed. But I also just graduated, so that makes it ok. A lot of people travel the world before they get their careers going, but I’m ready for the plunge into the industry.

My passion for games started around 1998 when I saw some kid playing on his Playstation. Quickly after, I used the little money I had to buy a Playstation. The first game that caught my attention was Parasite Eve 2 by Squaresoft (now Square Enix). Shortly after that I discovered Final Fantasy VIII. These games made a lasting impression on me and I thought about how it must be to be part of a team that made these games. It must be amazing to bring a story to a broad audience and let them experience it. For exactly that reason, my interest in games kept growing. Since I’m also a race fanatic, I quickly enjoyed both arcade racers and driving simulations.

Later in life, I did my internship with a company that produces racing simulations, which was a cool first introduction to working in the industry. But not only RPG and racing games caught my eye. When working on school projects, I also discovered how cool it is to make just plain fun, or even educational games. So when asked if I want to go for big AAA or for small projects, I really can’t decide. ‘Both’ is the ideal answer.

– Education

When I graduated from high school, I was searching for a good game design education, but that was hard to find. I went to The Netherlands to check out a game design school, but it didn’t look all that great. I discovered a school in Kortrijk, Belgium, offering a spanking new course: DAE.

The good thing: Programming and 3D. It got my interest, and I had already worked with C++ and even assembler in my last two years of high school, so I was up for the challenge.
The bad thing: Concept art. It was and will not be my department. I struggled a lot on this one, mainly because it wasn’t my goal to become a concept artist. Yet, I persevered and it paid off.

Future plans

First off, I’m going to clean up my pc’s, make backups, improve my website and portfolio and improve some of my current projects. I’d like to use my spare time to get a few small games on the market and see how well they do. I also believe in the importance of market research. I hope this experience will help me expand my knowledge on that topic and also keep my programming skills up to date.

Besides that I’m also going to use my time to check out all kinds of companies, not restricting myself to just Belgium or Europe. You never know if there’s a great opportunity abroad, so just like when you’re brainstorming, you should keep all options open. I hope to find a company where I feel comfortable, with joyful colleagues, a solid business plan and passion for the games they’re creating.

I’ll separate my joyful programming adventures from the rest, so that non-tech-savvy people can still comprehend what I’m rambling on about.

Other than that, enjoy my blog!

Posted in Career Steps | Tagged , , | Leave a comment