Posts Tagged Mac OSX

Apple’s humour regarding Windows Network Icon on OS X

Unlike most of my posts this one is aimed to provide some pretty light hearted fun. I have been using OS X for a few years now and am pretty much on a network all the time. Well for all these years I have noticed that in the network panel, windows machines are represented by CRT’s and other *nix/Mac’s are represented by a pretty swish high definition Apple TFT’s. I have always chuckled at this slightly, but today this little observation sure did make myself and a colleague laugh.

I tend to keep my icons pretty small and standard. With a slight slip/ accidental pinch on a macbook pro whilst setting up a VPN connection I enlarged the icon used by OS X to represent the windows machines. It became so large, I was able to read the information on the CRT icon used to represent Windows machines. On reading this we sure did laugh! Low and behold Apple use a Windows system failure/crash notice to represent such machines on a network by default. Who said Apple don’t have a sense of humour.

I apologise to those who probably discovered this years ago, I just thought I would share this as it’s new to me.

Typical example of networked machines

Typical display of networked machines

Typical display of networked machines

The enlarged Mac machine icon (Default OS X Icon)

An enlarged Apple machine on the network

An enlarged Apple machine on the network

An enlarged Windows machine on the network (Default Windows Icon)

An enlarge Windows machine on the network

An enlarge Windows machine on the network

, , , , , , , , , ,

No Comments

Why buy an iPad and where does it fit in to the market place ?

Finally the long awaited iPad has has been released. For quite some time people had speculated what the device was going to be and what it would be capable of. This has been followed by some passionate underlying debates for what it should and needs to be for consumers. Well the device has been released, which has been met predictably by a mixed reception with continued debate. Following such debates, the key point of confusion standing out is people are unsure where an iPad fit’s into their lifestyle. This is the question I am trying answer from my own perspective and lifestyle, suggesting where an iPad would mainly suit me.

iPad doesn't replace PC's or smart phones

iPad doesn't replace PC's or smart phones

Being a Software Developer/IT Manager by profession I have pretty much access to a computer/device of some description most places I visit on a day to day basis. I currently use a ‘G1 Android phone’, have a ‘macbook’ for working on the move, iMac at home, and have a Vista machine at work, not to mention access to several remote linux servers holding my information. I also have an xbox360 which is linked to my media linked to the TV. With all these devices around me where would an iPad fit in and why would I want one?

To understand where an iPad would fit into my lifestyle, I have to look at my daily patterns and highlight where I waste time with a little ‘lean’ thinking. Pretty much most of the day I’m in front of a computer and I clearly don’t see and iPad as a suitable replacement/substitute for what I use these devices for. When relaxing in front of the TV, listening to music via the xbox360 and iMac, I don’t see and iPad offering anything against these devices. I certainly don’t want a 10 inch device to replace my mobile phone unless I was aiming to block out the sun. So what gap is leftwithin my daily lifestyle pattern?

Well looking at my daily patterns I quickly identified somewhere where I am wasting time which could be improved. As part of my day, I regular attend Scrum meetings, meetings with 3rd parties, and am often called for quick consultation from various parts of the business. Most of the time these can be quick meetings lasting no longer than 10-20 minutes. When called for any of these tasks, I find myself picking up my A4 notepad, rushing into a room and writing notes. Most of the time I then type up key points of the meeting on my PC. Sometimes however with interruptions I miss the odd one or two and end up being chased up by others where I have to then play catch up. For me, this is where I see an iPad fitting into my lifestyle.

If I could turn to the iPad rather than an A4 notepad this would mean I could take more information everywhere, makes notes once and most importantly of all for me is to free up my time. An iPad offers 10 hours of battery life and can stay on standby for a month! It is small, lightweight and quick to turn on and off which makes it a perfect fit to replace my A4 notepad replacement. I can make notes and pass it around the room with others to share information such as diagrams, images or notes, as easily as passing around sheets of paper. I have a macbook, but there is no way I could get it to fill this gap like an iPad could, otherwise believe me I would be already doing it. It’s overkill, less mobile, slower to turn on and involves launching full blown software packages. This is enough to say no and the A4 notepad has won every time. On the same note where I would use my macbook and smartphone, an iPad wouldn’t be a replacement for these. My macbook is good at being a macbook and provides me with the ability to have a mobile computer for developing code, running VM’s etc. My smartphone is too much of a compromise with such a small screen. Therefore I’m very glad Apple decided to make the iPad exactly what it is without a full OS trying to compete with the notebook/laptop devices. A purposeful and simple solution to fill an obvious gap in the market.

There are other obvious uses where the iPad would be a benefit and that is on the commute. I used to travel to work by train carrying at least one magazine, a book and a macbook every day. An iPad would have meant I could just carry a macbook with it, reducing the weight and giving me the ability to carry much more reading material. I don’t see the point spending on an ebook reader now when and iPad is just a bit more money for a lot more value in return. I could just pull out at any time to fill the short, but sometimes very long gaps between train journeys. If the train is 10-15 minutes late, I’m not going to boot up a macbook and find a place to sit on a very over crowded platform.

iPad replaces notebooks and ebook readers

iPad replaces notebooks and ebook readers

Obviously my viewpoint above is selfish to my lifestyle. Who else could use an iPad ? Well looking at my circle of friends and family, unlike me most of them are not tech people. However, they all have computers and laptops and I know this as usually I’m contacted at some point if they run into problems. Looking at their use it tends to be mostly shopping online, social networking, emails and sharing photos. Most of them also seem to be intimidated and frustrated with their computers to various degrees. They look boring and a computer probably reminds them of the office they just left in the day. For these users an iPad could be a good option as it’s cheap ‘ish’, simple, secure and most of all friendly. It’s a device that can sit on the coffee table and be picked up and used anytime just like a magazine. For less tech savvy users this is far more inviting to use and therefore likely to get more use. This is why I’m glad they made it more like an iPhone than a notebook. It makes much more sense for this device to be app based and would be much more attractive to already proficient iPhone users.

I’m sure it won’t be long before we see Google responding with a slate device offering Android, not ChromeOS.

, , , , , , , , , , ,

No Comments

Installing PHP5 on Leopard with pdo_mysql & iconv() support

I recently took the plunge a level further into the Mac world and purchased an iMac running Leopard. Although I have been running a Macbook for years, I decided that my main machine which I develop on was going to be something I have to spend less time configuring than my previous Linux machines (Although my servers will remain Linux). My main goal was to get a slick dev environment running PHP, MySQL and Apache.

Being naïve, I expected Leopard to provide me with a suitable stable release of these technologies straight out of the box, after all Leopard comes with Apache, MySQL and PHP right? Well this maybe true, but this is not exactly what I expected. Soon after building my little world of development I realised that the distribution was insufficient. Disappointingly I learnt that the PHP distribution was missing ‘pdo_mysql’! How could they have missed this I asked myself? The extent of use of ‘pdo_mysql’ usage should have made this a fundamental module, even Zend Framework, one of the worlds largest PHP Frameworks uses this as a standard. Anyway this is the crossroads, do I recompile the distributed version and risk the Apple support or do I download and compile my own version. Well I thought, lets install it via macports, that will save me a bit of hassle. This also meant that I could maintain a separate series of installs to what came with leopard.

After downloading and installing macports I installed the following:

sudo port install php5 +apache2 +mysql5 +pear

port install jpeg

port install libpng

port install freetypeport

port install libmcrypt

After updating my apache configuration located ‘/opt/local/apache2/conf/httpd.conf/’ to suit my needs including pointing the my sites directory located in ‘Users/craigstrong/Sites’ I thought I’d give it a whirl on my web apps.

sudo apachectl restart

Everything seemed to work fine. I loaded up a few static pages from one of my Zend Framework projects, then I thought I’d try my login script. Boom! Guess what, no ‘pdo_mysql’ module installed. Arrggghhh!

Well off I went to get PHP 5.2.9 as this was the most stable recent release at the time. I convinced myself this is the solution I should had tried first. I downloaded this version and strapped myself in for a bit of compiling.

Within my extracted directory ~craigstrong/Programs/PHP-5.2.9 :

./configure
\
–prefix=/Users/craigstrong/Programs/php-5.2.9/
\
–with-apxs2=/opt/local/apache2/bin/apxs
\
–with-xsl=/usr’ \
–enable-mbstring
\
–with-gd’ \
–with-jpeg-dir=/opt/local 
\
–with-png-dir=/opt/local
\
–with-zlib-dir
\
–with-curl=/usr \
–enable-sockets \
–enable-exif
\
–with-mcrypt=/opt/local
\
–enable-soap
–with-mysql=/usr/local/mysql \
–with-pdo-mysql=/usr/local/mysql/bin/mysql_config
\
–with-mysql-sock=/tmp/mysql.sock
\
–with-freetype-dir=/opt/local
\
–with-openssl=/opt/local \
–enable-cli

The configuration went well, so I thought lets start compiling and run the following:

make

Followed by :

sudo make install
sudo mv /usr/bin/php /usr/bin/php.distro
sudo ln -s /Users/craigstrong/Programs/php-5.2.9/bin/php /usr/bin/php

All seemed to go well, and I went through my application again. This time when I go to the login form I was greeted with a new problem saying that the application could not find the function iconv(). Absolutely great I thought, another obstacle! After a bit of reading around this problem I found this link confirming my problem was real and what actually was attributed to a problem in the configure script on Leopard (http://www.mail-archive.com/php-bugs@lists.php.net/msg120323.html). I made sure to add the following 2 lines to the configure script pointing at my macports location.

–with-iconv=/opt/local
–with-openssl=/opt/local


As soon as I got to the ‘make’ command I was greeted with the following output:

Undefined symbols:
\\”_iconv_close\\”, referenced from:
_php_iconv_string in iconv.o
__php_iconv_strlen in iconv.o
__php_iconv_strpos in iconv.o
__php_iconv_mime_decode in iconv.o
__php_iconv_mime_decode in iconv.o
__php_iconv_mime_decode in iconv.o
_zif_iconv_substr in iconv.o
_zif_iconv_substr in iconv.o
_php_iconv_stream_filter_dtor in iconv.o
_zif_iconv_mime_encode in iconv.o
_zif_iconv_mime_encode in iconv.o
\\”_iconv_open\\”, referenced from:
_php_iconv_string in iconv.o
__php_iconv_strlen in iconv.o
__php_iconv_strpos in iconv.o
__php_iconv_mime_decode in iconv.o
__php_iconv_mime_decode in iconv.o
_zif_iconv_substr in iconv.o
_zif_iconv_substr in iconv.o
_zif_iconv_mime_encode in iconv.o
_zif_iconv_mime_encode in iconv.o
_php_iconv_stream_filter_factory_create in iconv.o
ld: symbol(s) not found
collect2: ld returned 1 exit status
make: *** [sapi/cli/php] Error 1

Well at this point I was getting more annoyed and again started cursing Apple for not sorting this out with the distribution of Leopard. Have to blame some one I thought.

Anyway after a long think a good time reading around the web I convinced myself to download php5.3 and go through the process again. I went through the same process of downloading, configuring and compiling it using exactly the same configuration script as above. I wasn’t expecting a high chance of success with the previous events. However to my amazement it worked. I went through my site and I finally achieved my goal of having PHP with ‘pdo_mysql’ and ‘iconv’ support! Although frustrating following the process, it was satisfying getting a result.

As I use Zend_Framework the only thing that needed to be resolved is that my date() function was throwing an error saying something on the lines of ‘best not trust the systems timezone’. I then added the following function to the bootstrap date_default_timezone_set(’GTM’) and my problem was solved. I now have a development environment I can enjoy.

Useful Links Relating to this post :

  1. http://seancoates.com/php-5-2-5-on-leopard
  2. http://www.mail-archive.com/php-bugs@lists.php.net/msg120323.html
  3. http://drewish.com/node/110
  4. http://www.malisphoto.com/tips/php-on-os-x.html

, , , , , ,

1 Comment

Common svn commands using the command line

Over the past few months I have been switching between operating systems which have included, Cent OS, Fedora, Vista and Mac OS X. When switching through these operating systems I am very aware of cross compatibility when using OS dependent software. Other than the obvious differences which include such things as file systems, one thing I have been quite frustrated with is interacting with SVN whilst moving between these operating systems. Why this has been frustrating it’s because for each of the OS’s above there is dependent software such as Tortoise SVN on windows. This is a great SVN tool and really does make things easier. However this is a Windows SVN tool so I can’t use it on other OS’s. Although there are tools available on other OS’s, I don’t want to keep switching between OS specific software as it can be time consuming and takes you a step further away from the source/task.  

Why use the command line ?

As a result of the restrictions imposed when moving around different OS’s, I have reverted my svn interaction back to the beloved command line for most svn tasks. Now I know some of you reading this may see this as a step backward in the world of modern UI, but there are a few good reasons why I have made this decision:

  1. With the exception of running putty on Windows to interact with my svn repository which sits on Linux, the command line makes you closer to being OS independent when it comes to svn.
  2.  

  3. Running svn commands on the command line is much quicker as it doesn’t have to go through the rendering process or additional layers of the OS or a series of extensive third party code. There is much less clutter, it’s just plain and simple (WYSIWYG).
  4.  

  5. I have had problems with the OS network cache, such as when ‘subclipse‘ or ‘Tortoise‘ tell you that you are working within a branch when you are actually on the trunk! As you can imagine, this can have problematic knock on effects and this is where the command line doesn’t lie. You don’t need to click refresh on your working copy directory to get the truth, you simple ask it once and it tells you there and then, no caching involved.
  6.  

  7. You don’t have to learn how to use each OS’s svn tool’s navigational menus and can therefore spend the time learning the commands plain and simple, saving you time in the long run.

 
Now I’m not saying that UI svn clients don’t have a value, the visual advantages can be extremely significant, especially when merging and looking at diff’s etc. You might find yourself going back now and again to use these tools for these advantages alone. The point is for general usage the command line has a significant value for me and for general svn interaction entering simple commands can be a time saver.

Everyday SVN Commands

For  those who are interested and for an online resource I can frequent to compensate for my poor memory, I have listed a few of the common commands I use on a day to day basis below:

Note: For the purpose of these commands I will express the path the repository as $REPO

 

svn log –revision 55:90  

Shows the log history from revision 55 to revision 99

_____________________

svn log -r 66:44

Shows the log history from revision 66 to revision 44 in reverse order

_____________________

svn log -r 81

Shows the log specifically for the chosen revision 81

_____________________

svn log $REPO/branch1234

Shows the log history for a specific branch

_____________________

svn log -vr 1234

Shows the modifications for a particular revision

_____________________

svn log –stop-on-copy | grep-i “update”

This will show the commit history up until it finds the phrase ‘update’ in the commit log

_____________________

svn list $REPO/branches/branch-123

lists the directories/files within the selected branch-123

_____________________

svn switch $REPO/branch/branch123/siteA

If you are in your working copy site directory, this command will switch your current location to the branch you require. For example if you are in my/working/copy/siteA which is checked out to the trunk, this command with switch you over to your selected branch. Note : You can also enter this command as “svn switch $REPO/branch/branch123/siteA /path/to/your/siteA”.

_____________________

svn mkdir $REPO/branches/branch333

Creates a new directory within the repository. Within my example I have created a new branch.

_____________________

svn cp $REPO/trunk/siteA $REPO/branches/branch456/siteA

Checks out the site ’siteA’ to a selected branch ‘branch456′.

_____________________

svn diff –summarize –old=$REPO/trunk/site –new = $REPO/branches/branch333/siteA

Shows the list of files that are different between the two versions selected.

_____________________

svn merge –dry-run -r123:200 $REPO/trunk/siteA

carries out a dry run of a merge between the head of branch ‘r123′ and the head of trunk ‘200′. (A merge can be between any two revision numbers)

_____________________

svn commit -m “A brief, but informative message here”

This will commit any changes to your trunk/branch accordingly and record a message in the commit log. Remember you will be reading these log messages often. If you are working within a team ask yourself if someone else looked at the commit log could they work out what your commit involved from your message. Although sometimes seen as a repetitive task entering messages, these are there for a reason. It might be good practice to employ a message standard within your workplace to keep messages consistent.

_____________________


svn info /path/to/site/in/workingcopy

This will output the information for the file/directory within your working copy. You can know exactly where your working and the current status from this. Example :

craig-strongs:~ craigstrong$ svn info ~craigstrong/working_copy/

Path: /Users/craigstrong/working_copy/

URL: svn+ssh://craig@repo/my/path

Repository Root: svn+ssh://craig@repo/my/path

Repository UUID: 12345-12345-12345-12345

Revision: 875533

Node Kind: directory

Schedule: normal

Last Changed Author: craig

Last Changed Rev: 875533

Last Changed Date: 2009-03-25 16:46:59 +0000 (Wed, 25 Mar 2009)

_____________________

svn status /path/to/working_copy

This will list the current status of your working copy. If you have switched any files/directories, you should be seeing these listed within the results back. Other information such as if you have any uncommitted files will also be listed here.

_____________________

I’ll restrict the list to the above for now as these are what I consider to be the most common commands that I use on a day to day basis. If I find myself often writing other such commands regularly I’ll add them to the above.  If you feel you would like to add to this list, please feel free to reply to this post.

, , , , , , , , , , ,

1 Comment