Category Archives: Mac

Charset problem in Play framework after upgrading OSX

This is such a strange problem that I just have to write it down for future reference.
Involved systems:
* One Ubuntu 14.04.2 LTS on AWS (Amazon Web Services)
* One MacBook Pro 2010 with 10.7.5 with iTerm 2.1.1
* One MacBook Pro 2015 with 10.10.3 with iTerm 2.1.1
* One Play framework 2.3 application

Problem description:
After starting the Play application with the MacBook that has the 10.10.3 version all files that were written to disk had all non-ascii characters shown as ??. When starting the Play application with the old computer (10.7.5) these characters where displayed correctly.

After quite a lot of trial-and-error I found that the command ‘locale’ on the remote AWS server complained about:
“locale: Cannot set LC_CTYPE to default locale: No such file or directory”
“locale: Cannot set LC_ALL to default locale: No such file or directory”
when using the newer computer but not with the old

Solution:
The ‘locale’ command error lead me to the following solution in iTerm:
Untick the Terminal option “Set locale variables automaticly” in Preference
QQ20140113-3

This option is AFAIK default on in iTerm

After this was done the ‘locale’ error was gone and all files had the correct charset

Example virtual host and .htaccess configuration for Zend application on OSX Lion

I usually work with the backend of web applications so I do not get enough training in setting up virtual hosts, so I thought I better put an example up here. At least to have something to start with.

I use the built in apache server on OSX and I usually put my virtual hosts in the <username>.conf (/private/etc/apache2/users/<username>.conf) where <username> is simply your username 🙂

Example:

<VirtualHost *:80>
        ServerName my.zendapp.com
        DocumentRoot "/Users/<username>/Sites/myzendapp"
        ServerAdmin admin@my.zendapp.com

        <Directory "/Users/<username>/Sites/myzendapp">
                Options Indexes FollowSymLinks
                AllowOverride FileInfo
                Order allow,deny
                Allow from all
        </Directory>

</VirtualHost>

To get my.zendapp.com to work we need to put an entry in the hosts file like this:

##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting.  Do not change this entry.
##
127.0.0.1       localhost
255.255.255.255 broadcasthost
::1             localhost 
fe80::1%lo0     localhost
127.0.0.1       my.zendapp.com

To reach your new zendapp go to: http://my.zendapp.com/public

If you want to use http://my.zendapp.com instead just add the public part to the DocumentRoot:

DocumentRoot "/Users/<username>/Sites/myzendapp/public"
ServerAdmin admin@my.zendapp.com

and the Directory:

<Directory "/Users/<username>/Sites/myzendapp/public">
                Options Indexes FollowSymLinks


NOTE! Depending on your choice in urls you may need to change the .htaccess (/Users/<username>/Sites/myzendapp/public/.htaccess) file accordingly:

For long url (http://my.zendapp.com/public):

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ /public/index.php [NC,L]

For short url (http://my.zendapp.com):

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ /index.php [NC,L]

Tested on OSX 10.7.4 and Zend Framework 1.10.8

Writing image to SD card on OSX

Since I play around with NSLU2, Raspberry PI’s and other experimental devices I tend to use the dd command quite a lot from time to time. The dd command is very powerful tool and if you make a mistake you vill probably have top work countless hours to get things right again, so that is why I now put this little howto up here

1. First we need to find the “system name” for the SD card

diskutil -list

Example output from my developer machine:

/dev/disk0
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *750.2 GB   disk0
   1:                        EFI                         209.7 MB   disk0s1
   2:                  Apple_HFS Macintosh HD            749.3 GB   disk0s2
   3:                 Apple_Boot Recovery HD             650.0 MB   disk0s3
/dev/disk1
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *2.0 TB     disk1
   1:                        EFI                         209.7 MB   disk1s1
   2:          Apple_CoreStorage                         2.0 TB     disk1s2
   3:                 Apple_Boot Boot OS X               134.2 MB   disk1s3
/dev/disk2
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                 Apple_HFSX My Book                *2.0 TB     disk2
/dev/disk3
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:     FDisk_partition_scheme                        *7.9 GB     disk3
   1:                 DOS_FAT_32 RASPBMC                 7.9 GB     disk3s1

Here we can see my main drive /dev/disk0, my backup drive /dev/disk1 and /dev/disk2 and at the bottom we have a small disk with only 7,9 GB of space and this is my SD card. This makes the “system name” for my SD card /dev/disk3

2. Now its time to unmount the SD card (needed for the dd command on OSX)

diskutil unmountDisk /dev/disk3

3. And now time for the trick part, writing the image

dd if=raspbmc.img of=/dev/disk3

The tricky part is to get if(input file) and of(output file) option correct. My mnemonic for this it that of is called “overwrite file” instead of “output file”. Makes it easier to remember that the of disk will be overwritten – works for me 🙂

The dd command have no progress bar or anything that tells you how long time is left. This is quite annoying. (A dd operation of a 2g image to a SD card takes 30 minutes on my machine). To remedy this we can use another command pv

dd if=raspbmc.img |pv|dd of=/dev/disk3

This gives us a small progress bar to help us keep track of the dd process

Tested on OSX 10.7