June 26, 2012

How to improve you development skills

Sometimes you feel that your code is not good enough, that something is not right and you can do better. What can you do? How can you improve that?

So assuming you have created an app and you want to improve the code, you should start asking some simple questions:

Multiple GUIs

Imagine that you would need to have a web,a desktop and a mobile UI for your app. How should you split your code to support multiple GUIs?

API

The big guys provide APIs (e.g you can use Twitter, Facebook, Google+ APIs, etc to integrate those services in your app). What you have to do if somebody needs to integrate functionality from your app in his app?

Asking the right question is very important. Is a clear sign of skill level. Try to think outside the box to understand what should be in the box.

June 20, 2012

Nikon D3100

My point-and-shoot camera became unusable a couple of weeks ago. Don't know exactly what is wrong but the pictures are very overexposed, 80% white always.

So I needed a new camera and this time I bought a DSLR, the Nikon D3100 18-55mm Kit. Everything was good until, one day later, I used the DSLR to shoot my kid and his friends while singing, dancing and reciting on a stage.

I tried all the possible combinations: auto modes, aperture priority, shutter speed priority, manual. Sadly almost all pictures were failures: wrong focus, blurry/gostly subjects, noise, everything you can think of. Anticipating issues with the poor light I shot RAW + JPEG so I managed to fix some photos later.

Here are some lesson I learned last night:

  1. Shoot RAW. Always.
  2. Use a good lens. While the kit lenses are OK, there are far better (and expensive) choices.
  3. Buy a good flash. First priority for me if I ever want to shoot indoors again.
  4. Auto mode focuses on the subject that is closest to the camera. You cannot make it focus on other subjects. Why I didn't knew that? Set focus to single autofocus (non-moving subjects) or continuous autofocus (moving subjects). Never let focus on auto mode.
  5. Low light means high ISO. 1600 or 3200 minimum. Low light also means slow shutter speeds. Try to use a tripod when there's no light (whishful thinking, yes).
  6. If no tripod in low light use shutter speed priority. Set a safe shutter speed: 1/(focal lenght * sensor crop factor) e.g. 1/150 for 100mm and 1.5 crop factor for Nikon. And with the shutter speed fixed try to find an aperture and ISO.

While the situation can be considered an extreme one because of the hard conditions - low light and moving subjects - I'm still not very sure I've made the right choice buying the DLSR.

I have to learn. "Master Your DSLR Camera", an iPad app, looks interesting.

June 12, 2012

Why I love Dropbox



Time's up. I need to run but the code doesn't compile yet. I close the ebook even if I didn't find the solution yet. Five seconds later I'm out.

I love Dropbox. It's great. Not very often I have seen a software running so great. Is flawless. Honestly is one of the best software ever written and best advertised. Many people should learn from the Dropbox team.

I keep all my work in my Dropbox folder. I keep my ebooks in my Dropbox folder. Is not an archive with everything I own, but rather with what I might need today.

What is Dropbox?

I read the mail. A small icon on the screen is telling me that all the files are up to date. I know I can resume my work.

Dropbox is a simple app that syncs a folder with files between all your devices. All you need to do is to install Dropbox app on all your devices and to select the folder to sync.

When you put a file in the Dropbox folder on one gadget, the file is uploaded to the cloud and automatically downloaded on the other gadgets.

Selective sync
A nice touch is that if you want to skip the synchronization of some subfolders on some devices you can do that very easily. For example I don't want to download all the family pictures and movies on my old laptop because I don't have enough space on disk there.

Versions
I even edit my files while they are on Dropbox because all the versions of the file are kept so I can revert to a previous version anytime. For code I use better solutions but for my "writings", simply keeping my files there helps me a lot.

Sharing
Who needs to share stuff with Megaupload or Co. when we have Dropbox? Using Dropbox you can share a file with everybody or a folder with a single friend.

Best things in life are free

I started with the free 2Gb account. Still use the free account but guess what, now I have almost 10Gb! These guys are smart, they make you spread the word for them and reward you with what they have: bonus free space.

I earned the extra 8Gb in a few ways:

  1. Referrals - I recommended Dropbox to my friends. Dropbox referrals are unlike anything else: When your friend uses your referral link instead of going directly to dropbox.com, both you and your friend earn an extra 500Mb of free space. How about that?
  2. DropQuest - more about it later.
  3. Uploading pictures from the camera to Dropbox. This gave me a whole 3Gb of free space. So easy.
  4. Just because you use it. Sometimes out of the blue a message informs me that an earn another 500Mb.

The new treasure quest

Once a year, on a certain Saturday, the entire net is in frenzy : people start gathering online to solve the tricky problems of DropQuest. The prize : huge free space on Dropbox for first places and a smaller amount for all those who dare to accept the challenge.

Again, the genius of the people behind Dropbox is reflected by the way DropQuest was conceived:

  • You earn free space when you answer a single question, not only if you finish the contest. So you win something even if you just start it.
  • There is no deadline for the content. You can go and start the quest even now (when you can easily find the answers online) and still get the free space.
  • Some of the questions teach you about the Dropbox features or makes you see the Dropbox team @ https://www.dropbox.com/about.

This is one of the best marketing stunts ever.

The Alternatives

Today there are so many alternative options, you know them: Box.net, Apple iCloud, Microsoft SkyDrive, Google Drive and many others.

I tried many of them. Most offer more free space but none of them is better.

A recent example. Several days ago I installed Google Drive: files don't have the correct icon so you are not sure if they are uploaded or not yet, and sometimes changing the same file over an over again (e.g an image processed in Gimp) has no effect - Google Drive will not upload it so it won't be available in the cloud and on the other systems.

Yes, Google Drive is new and I assume people work on those issues and we could live with that if we wouldn't have an alternative. But once you notice those little annoying issues you have no choice but to go back to Dropbox. Why worry when you can do better?

The End

I'm out in the park with the kids. I sit on a bench and watch them while Dropbox is synchronizing on the phone from my hand. A couple of minutes later I finish the ebook. I think that life is great while the phone slips back in the pocket. Who wants to play football?