Saving and storing your work

No matter if you are a Flash game developer, a web designer, a video editor, a programmer or whatever… the more your work on your computer, the more files you will generate.

After a while, your hard disk will become a nasty place full of shattered project if you don’t follow some simple rules.

That’s how I organize, save and store my work.

1) I keep on the computer’s hard disk only the projects I am currently working on

With more than 10 years of work, keeping all projects, images, video and every other kind of file on the computer I am currently using would be really a nonsense. First, there is no reason to keep old projects on your hard disk, second I don’t want someone to rob my notebook and have access to an entire life of work. So I use to keep on my computer only the projects I am currently working on. When a project is finished, I move it on another hard disk. Should I work again on an old project, I copy it on my computer and start working on it, until it’s finished, then I move it on another hard disk.

Since you will access this hard disk once in a while (sometimes once a week, sometimes once a month), there isn’t any particular recommendation about the hard disk. I am using two USB 1TB iomega where I store almost all my work.

Why “almost”? Because I have some other USB 500GB hard disks with video projects. Videos can consume a lot of hard disk space, so it’s better to dedicate an entire hard disk to each project

2) I create a folder for each branch of my projects

In the picture you can see four directories. Two are obvious, while “Beta” contains all the abandoned projects and “No internet” contains all the projects I did not develop for the web, such as executable software, brochures, business cards, and so on. As said, videos are on other hard disks.

Obviously, the folders you will have may vary according to the type of projects you are working on… so you couldn’t have “Flash games” but you could have “Magazines”… this depends on your work.

Just remember: don’t delete anything. Never. That’s why I have a directory for abandoned projects. Hard disk are so inexpensive you can afford a lot of them Read more

Being a geek in Venezuela

Yesterday I bought a MacBook on the Apple Store using some of the income generated by this blog. Do you know why I could do this? Because I am a geek, and because I live in Italy.

If I lived in Venezuela, things could have been quite different. This is the story of John Freddy Vega, a blogger and geek from Venezuela.

He runs Cristalab, a blog full of AS3 and PHP tips, just like mine. But it’s not as easy as it seems.

« Any self-respecting geek has certain basic needs, and Venezuelans are no exception: smartphones, laptops, permanent internet connection, access to information and, above all, the ability to purchase a lot of stuff we love although we don’t need it at all.

That’s why Venezuela’s technology case is so curious. We are one of the Countries with highest Blackberry penetration, so much so that RIM (Research In Motion: the Canadian company that developes the BlackBerry smartphone) people were forced to know we’re not an African country, we have crappy but still profitable Internet connections and we can even (in many cases) afford a cable TV. Read more

11 questions to ask to yourself once you complete a project

Let’s say you just finished a project… no matter whether a website or a Flash game… but you finished it right now.

Let’s suppose your client gave you a deadline, or you just wanted to finish it today because tomorrow you’ll be busy on another project, or you’ll have some holidays.

In most cases, you know the whole project can be optimized. Depending on the project complexity, you will see a lot of things you could improve to make the project run faster, look better, being more understandable and – above all – reusable.

Unfortunately, in most cases we prefer to leave it “as is” since “it works” and “that’s enough”, because we think the customer is already satisfied

I have to say, once I finish a project, I promise myself to keep it as clean as I can, even if I know I won’t be able to reuse anything… like, as example, a website. But as I have a lot of work, almost all the times I end leaving the project “as is”.

While you can’t work for the rest of your life to the same project, there are 11 questions you should ask yourself before you can consider a project as “completed”

Let’s see them: Read more

Keep your WordPress Blog (or any site) clean with new Google Webmaster Tools

Yesterday I blogged about 10 ways to secure your WordPress blog

Today I found a new, important tool to keep your blog (or site) clean: Google Webmaster Tools and its new services “Fetch as Googlebot” and “Malware details”.

Once you enter into Webmaster Tools you will find on the left Dashboard sidebar a Labs item with two sub-items: “Fetch as Googlebot” and “Malware details”.

“Fetch as Googlebot” answer the common question “What does Googlebot see when it accesses my page?” Read more

The return of “Under Construction” – evolution of a malpractice

In the late 90’s most personal and some commercial websites used to place a big, animated, irritating image like this one:

This picture, placed in a webpage browsed at a 800×600 resolution (the most popular one during those years), fills half of the visible area.

This means the page was shouting “hey, I am incomplete, probably I will never be completed so what are you doing here?”

We know a good site is always under construction. This blog is always under construction. I add new content almost every day.

As co-owner of a web agency, I notice almost all customers ask some minor changes to their sites about every six months… no matter if it’s a new set of photos or an update to the “about” page… they are changing. Read more

Understanding (AS3) access modifiers (Public, Internal, Protected, Private)

I see a lot of confusion around the web about access modifiers, so I am going to give a brief explication about them.

First, if you noticed the post title, you’ll see I wrote AS3 in brackets because access modifiers have not been introduced with AS3, but AS3 finally featured access modifiers.

As far as I can remember, access modifiers came from C, or at least I started studying them when I was programming with C.

Acess modifiers are anguage keywords for specifying the visibility of classes and members, that means they determine which code may access classes and class members.

Just think about a bartender in a exclusive pub that may require membership, and everything will be easier.

public (available to all code): allows access from every class… the bartender will attend everyone, no matter where he’s coming from

internal (available within the same package): allows Classes sharing this package access… the bartender will attend only people somehow related with the pub (workers that built it, people involved in furnishing, and so on)… this definition may lead to misunderstandings, so let’s say access is limited exclusively to classes defined within the current project.

protected (availabile within the same class and subclasses): allows subclasses access… the bartender will only attend customers with membership and their sons

private (available only within the same class): allows access only by the same class… the bartender will only attend customers with membership

Now the big question: is it so important to use the right access modifier?… I have to say in most small projects that you’re sure you’ll be the only one using them, you can define everything as public and forget about the rest, but obviously if you are looking for reusability and portability, you should pay attention to access modifiers.

Facebook bug: none of my friends can view my profile, wall, photos…

Today I discovered an interesting Facebook bug: when I log in, every thing is alright but none of my friends can view my profile.

When they click to view it, it takes them back to their homepage.

And also, any comment I make doesn’t appear for my friends, but I can see them clearly when I log in.

Maybe FB staff needs some php classes… :)

… any clue?

I tried to login “from the other side of the world” as said in a forum (thanx Bob) but nothing happened.

It feels like a part of my “second life” has gone… it could be an interesting post… AFTER my account has been fixed.

Games for the game developers!

I was impressed by “Games for the game developers!” comment on Create a Flash game in minutes with PlayCrafter.

The idea of giving people a tool to make a so-called “videogame” without any programming knowledge isn’t new.

The first complete tool I used was the Shoot’Em-Up Construction Kit (SEUCK) on my Commodore 128

Having no idea about how to make a game, the first “games” I made with that kit was just clones of a space game included in the package, just changing bullets speed, number of lives, and other minor things.

But I loved the idea of making games.

With the SEUCK I made about 10 games I only played by myself, because you know in mid 80’s there wasn’t the so-called Web 2.0

Anyway I had a lot of fun

My first “real” game was a concentration game with time limit, combos, and so on, developed with AMOS.

I can’t even remember the name but I remember a friend of mine managed it to be included in a Aminet CD-ROM

Now the web has changed and you can create a game, upload it in a few seconds and read opinions, comments, reviews.

Moreover, you can make money out of it.

But you must not forget there are people having fun making games.

Tools like PlayCrafter are meant to make people having fun in creating their own games.

Yes, there will be a lot of bad games and most of them will be clones of the same (bad) game, but if you don’t like a game, just don’t play it.

And, more important, maybe someone will enjoy the process of making a game and will start studying a programming language to make a more original game.

And don’t forget the “Games for the game developers!” sentence can be used by Flash game developers against PlayCrafter users, but can be used in the same way by PS3 game developers against Flash game developers.

20 (TWENTY!!!) years ago people like me programming in Pascal and Basic was mocked by C++ programmers, because they said real programmers code with C++

When I learned C++ I was mocked by Assembly programmers because they said real programmers code with Assembly.

Nothing new on the horizon…

The art of debugging

In a perfect world, our software never run in an unexpected way.

Unfortunately, we don’t live in a perfect world, so sometimes (quite more than sometimes) we have to face some strange errors.

That’s when we must learn the gentle art of debugging

Follow me through easy steps and you’ll wipe the bugs out of your life

1) A bug never appears “sometimes”

Believe me, the word “sometimes” has been invented for losers. A drunk would say he “sometimes” gets drunk, but in my opinion he gets drunk EVERY TIME he drinks too much. That’s another way to live your life. “Sometimes” means you don’t know when. You can’t live this way. You are a programmer.

So, you must know when your script has a problem. Exactly. Try to replicate it. Insert breakpoints, print variables, do whatever you can to recreate the problem EVERY TIME you want.

Do you want an example? … let’s see this script

a = a random number between 0 and 9
b = 10/a

This script sometimes crashes… but you must know when it crashes… and we can say the script crashes EVERY TIME a = 0, because of a divide by zero error.

When you can describe the problem starting with EVERY TIME, proceed to step 2

2) A bug never appears for the sake of appearing

Believe it or not, Gods aren’t upset with you. There isn’t any virus in your computer. “THEY” aren’t trying to drive you mad, and leech your brain because they want to rule the world.

The bug appeared for a reason. In the previous example, the reason was a number cannot be divided by zero. It’s not a plot against you. You simply cannot divide a number by zero.

You must understand why your script does not work… in this case it was a division by zero error, you have to find your case.

Now you know when the bug appears, and why it appears

3) A bug is a useless creature

Ok, bugs are the only good actors I can see in horror movies for a couple of years, but they are quite useless… and maybe they can survive to a nuclear war, and I don’t really want to survive to a nuclear war just to face giand radioactive bugs, so make up your mind, you don’t need bugs.

I mean you must find a way to get what you want with no risk to encounter a bug. In our example, you must decide if you really need a random number between zero and 9, or if a number between one and 9 would do.

With numbers from 1 to 9 you solved the bug, but sometimes you may decide you need the zero too, and in this case you would perform the division only if the number is different than zero.

This is the step where you must decide if you want to obliterate the bug or handle it as an exception.

Needless to say the first option is the best, because you can manage one, two… maybe five… TEN exceptions, but sooner or later your script will collapse if you work this way.

4) Put a big shoe on the bug’s head

It’s the time to rewrite the bugged code… keep in mind what your script is intended to make, and what you don’t want to happen. Since at this time you will probably are a bit tired, proceed step by step. Throw a shoe to a bug from a big distance, and you’ll miss it. Get closer and closer, until… SQUASH! It will know the power of the mighty shoe.

5) It wasn’t a simple bug. It was a cyborg bug

If your bug dies with a little red light fading away, and you can hear something like “I’ll be back”… then it wasn’t a simple bug… it was a cyborg bug. In real life, fixing a bug can bring new bugs to life.

In my previous example, I can fix the bug setting a as a random number between 1 and 9.. but I can fix the bug coding the second line as b= 10/(a+1).

According to what I am expecting from the script, one of the ywo ways of fixing the bug can make the bug return later. You have to forecast future bugs and prevent them

That’s all… this was obviously an ironic post, but there is some truth in it… how do you debug your scripts?

Adobe CS4 Master Collection

Do you want to know what do Adobe ships to you when you purchase the Adobe Creative Suite 4 Master Collection?

Here it is:

Adobe CS4 Master Collection

Five DVDs with the suite itself and one DVD with two hours of video footage about using CS4 softwares.

Let me remember you the software included:

InDesign CS4
Photoshop CS4 Extended
Illustrator CS4
Acrobat 9 Pro
Flash CS4 Professional
Dreamweaver CS4
Fireworks CS4
Contribute CS4
After Effects CS4
Adobe Premiere Pro CS4
Soundbooth CS4
Adobe OnLocation CS4
Encore CS4
Adobe Bridge CS4
Adobe Device Central CS4
Dynamic Link
Version Cue CS4

I still haven’t installed it, so I can’t say, at the moment, if there is something made exclusively for the box retail edition, something the downloadable version does not have.

Next Page →

flash games company