29.7%

According to this report, 29.7 percent of U.S. mobile subscribers now own smartphones that run full operating systems.

Apple and RIM devices are the most popular.

iPhone numbers

Starting iPhone development

I’ve recently decided to start developing on the iPhone platform. I wanted to share here all links and resources I found to get started.

Getting started

 

Learn Objective-C

iPhone applications are primarily written in Objective-C. Get more information about this language on Wikipedia.

Basically, Objective-C is an object-oriented programming language which adds Smalltalk-style messaging to the C programming language.

 

On the excellent Pragmatic Bookshelf, you can find books and screencasts such as :

 

Introductions, tutorials and examples I found around :

 

I also found a lot of excellent resources on iTunes-U:

Books from Amazon

I didn’t read all these books, I’ve just selected books with a good rating.

 

Learn Cocoa

iPhone development

Hello World

Hello World in video

More tutorials and application examples

FAQ

I hope you find these resources useful. Next articles will deal with iPhone development.

 

Doodle Jump

I’m starting a new iPhone category in this blog.

The first post is about a game I’ve just installed : Doodle Jump.

Be aware, it’s addictive :)

I’ll share here applications I like on iPhone.

Find and remove files

I regularly use the find command in scripts to clean directories on my servers.
The common way to use find to do this is to write something like:

find ./my_dir -name 'cache-*' -exec rm -rf \{\} \;

It works fine but it always outputs messages like this:

find: ./mydir/cache-001: No such file or director

which can be annoying when ran in a crontab.

I just found recently that using the option ‘-delete’ with find just fix this problem.

find ./my_dir -name 'cache-*' -delete

 

 

Enhance your munin load graph

load-day-old

This is the default output of the munin load plugin.

I’ve patched it to add a permanent blue line indicating the number of cpu of the server. The resulted graph looks like this :

load-day

You can download the patched plugin here. It is tested with Linux and FreeBSD.

Optimizing Servers and Processes for Speed with ionice, nice, ulimit

Just found this very good article about optimizing servers.

Quickly check hosts with ping

I needed a script for a quick health check of a bunch of servers.
This is how I did it using the ping command:

for((i=1;i<42;i++)); do
    ping -c 1 -W 3 host${i}.domain.com &> /dev/null
    if [ $? -ne 0 ] ; then
        echo "host${i} is down"
    else
        echo "host${i} is up"
    fi
done

You can also use netcat and check a specific port:

netcat -z -w 2  host${i}.domain.com 80 &> /dev/null

Set Terminal tab title in Mac OS X

Picture 2

I wrote previously a how-to to set your iTerm tab title.

I finally found a tool to do the same thing with the default Mac OS X Terminal.

Check it out here, it works perfectly for me!  link is dead.

On my Mac OS X 10.6.6 and bash (3.2.48(1)-release), you can set your tab title with the PROMPT_COMMAND variable as follow:

export PROMPT_COMMAND=’echo -ne “\033]0;${USER}@${HOSTNAME%%.*}\007″‘

Add this to your .bashrc or /etc/profile file and you’re done :)

Set the number of reserved filesystem blocks of a disk

The default value of “Reserved block count” takes 5% of usable disk. On a large fs like 813G, it represents about 40G.

These blocks are reserved to the super user to recover from situations where user processes fill up filesystems.
It is absolutely safe to reduce this space to one hundred or so MB.

  • check disk space of our filesystem:
$ df -h /dev/sda4
/dev/sda4             813G  418G  354G  55% /home

Before the tuning, we have 354G free.

  • check the current number of reserved blocks:
$ tune2fs -l /dev/sda4
...
Reserved block count:     10816865
...

Change this number to 20000.
The blocksize is 4096, 20000 blocks represent about 80MB.

$ tune2fs -r20000 /dev/sda4
...
Reserved block count:     20000
...
  • check disk space of our filesystem:
$ df -h /dev/sda4
/dev/sda4             813G  418G  395G  52% /home

We now have a gain of 40GB of free space!