Archive for ‘OSX’ Category

I’ve been using Synergy for about 3 years now and never really thought about writing about it. Tonight I came across Synergy+ which is a maintenance fork of the original Synergy. So I thought about writing a small note about it since it’s now maintained again.

Synergy+ (synergy-plus) lets you easily share a single mouse and keyboard between multiple computers with different operating systems, without special hardware. All you need is a LAN connection. It’s intended for users with multiple computers, where each system uses its own display. It’s a little like having a 2nd or a 3rd desktop. It’s not a KVM or VNC tool, but it does achieve similar results (but with added convenience). No need to press any buttons when you want to change desktops, and your keyboard input goes to the same screen that your mouse cursor is on.

Main features:

  • Move your mouse easily between computers
  • Requires nothing other than existing ethernet
  • Copy and paste between your computers
  • No need to press any buttons (unlike KVM)
  • You can still use multiple monitors on the same computer
  • By using the ScrLock (or “Scroll Lock”) key you can prevent switching from one monitor to another, which is useful for gaming and other full screen applications.

So head over to Synergy+’s home over at Google Code and grab your copy. Synergy+ is free open source software.

Safari 4.0 crashes upon exit under OSX 10.5.7

datePosted on 14:27, June 27th, 2009 by Many Ayromlou

I’ve had this problem ever since Safari 4.0 came out a little while ago. The symptoms are simple, when you close a Safari window it crashes. I reported it the first couple of times to Apple using crash reporter, then I started to look around for a solution, but to no avail. I gave up for a while and used firefox again. Today I got fed up with this and started to debug the issue from command line and finally found the problem.

A little while back I had purchased a QNAP NAS device, which I absolutely love. At the time I was impressed by the fact that it supported both XP and OSX. There is a piece of software you install on your machine called QGET which allows you to pass all sorts of downloading commands to the NAS (so it can download things in the background). This program has a Safari plugin that turned out to be the culprit. The QGET program is actually fine and by itself doesn’t cause any issues. All you need to do is delete QGET plugin folder from /Library/InputManagers and restart your machine…….No more crashes…..yeaaaaa :-)

OSX 10.5: How to create a public share folder…..

datePosted on 12:39, June 11th, 2009 by Many Ayromlou

This problem has been around (I think) ever since the introduction of POSIX permissions. In pre-10.5 versions you could sorta do something like this by changing the default umask on the system, but that was system wide and applied to all folders/files a user created on the entire filesystem…..not nice. The real question is how do you create a directory that is totally public without mucking around with system/user wide settings. A folder that anyone on the system in question can read/write/modify/delete anything anyone else has put in there. A true shared directory with share permission inheritence. We call it “pub” directory at my place of work.

The old trick in OSX (in case someone is interested) was to write a small script that you ran via cron every 5-10 minutes that would “chmod” all the entries in a folder to be open to a specific POSIX group….something like the script below:

find /path/to/shared/directory ! -type l ! -perm -g=w -print0 | while IFS
= read -rd $'\0' filename
echo "*+*+*Permission changing program caught something"
if [ -d "$filename" ]then
chmod g+rwx "$filename"
# echo Directory changed
stat -l "$filename"
if [ -f "$filename" ]then
chmod g+rw "$filename"
# echo File changed
stat -l "$filename"

Well those were the old days and now with the help of ACL’s we can do this a lot nicer/cleaner. The procedure below is for OSX 10.5+ (it should also work on 10.4, although I haven’t tried it).

  1. Enable ACL’s on your computer. Type the following command in a Terminal window: sudo /usr/sbin/fsaclctl -p / -e and verify that ACL’s are now enabled by typing: sudo fsaclctl -p /
  2. Create a new group. The easiest way to do this is through the Accounts pane in System Preferences. Just click on the Plus sign to add a new account and then select Group from the New Account drop-down menu. Call this group anything you want; I called mine public. Add all the users who you want to participate in the file sharing to your newly-created group.
  3. Do the following steps in Terminal, in Applications -> Utilities:
  4. Change directory to /Users/Shared: cd /Users/Shared
  5. Create a new folder where the users will be able to share their files. I created a folder named Pub by typing mkdir Pub
  6. Change the group of the new folder to your newly-created group: sudo chown admin:public Pub
  7. Change the default permissions, if you wish: sudo chmod 770 Pub (this is optional if you’re happy with the default permissions).
  8. Create the ACL entry for the new folder:sudo chmod +a "group:public allow file_inherit,directory_inherit,readattr,readextattr,readsecurity,read,execute,list,search,writeattr,writeextattr,delete,append,write,delete_child,add_file,add_subdirectory" Pub

You now have a true public folder where all members of the group public can read, write and delete files, as well as read, write to and create new sub folders. The ACL rule takes precedence over standard UNIX file permissions and is automatically inherited. It’s this automatic inheritance that is really important.

IMPORTANT: You must copy (hold down Option in Finder prior to dragging), and not merely move, items. This is particularly important with bundles, such as the Aperture library bundle for example. Moving items doesn’t inherit/change the permissions/ACL’s. Copying ensures that the files are actually created in the shared folder, thereby forcing the ACL rules to be inherited. If you have moved files into this directory and the permissions are a bit messed up you can quickly fix that by issuing the following recursive command which will set the ACL’s and POSIX permissions to the “right” ones so that everyone can do anything in that directory:
sudo chmod -R +a "group:public allow file_inherit,directory_inherit,readattr,readextattr,readsecurity,read,execute,list,search,writeattr,writeextattr,delete,append,write,delete_child,add_file,add_subdirectory" /Users/Shared/Pub

OSX 10.5: How to delete user accounts from Command Line….

datePosted on 11:34, June 11th, 2009 by Many Ayromlou

I ran into this problem a little while back and thought I should document it. It’s kinda similar to the “How to get Admin rights in OSX Leopard using single user mode…” document from earlier this year. Here is the procedure:

  1. Boot into single user mode. Hold Command-s at startup.
  2. Check the filesystem: /sbin/fsck -fy
  3. If no remaining errors, mount the filesystem: /sbin/mount -uw /
  4. Start up directory services:launchctl load /System/Library/LaunchDaemons/ that single user mode said to use, but that didn’t work — this did.
  5. Find what groups the user belongs to: dscl . -list /groups GroupMembership | grep username — repeat for each group except for the user’s own group.
  6. Remove the group corresponding to the username: dscl . delete /groups/username (this may not be necessary — you may get an error that the group doesn’t exist; you can ignore it and go on).
  7. Remove the user account: dscl . delete /users/username
  8. At this point, you may wish to remove or archive the user folder in /Users.
  9. You may wish to remove the .AppleSetupDone file in /var/db to cause the Setup Assistant to run when next booted.
  10. All done? Type reboot to reboot the system or shutdown -h now to shut down the system.

Nice and squeaky clean…..

How to mount your Journalized HFS+ disk in Linux….

datePosted on 20:41, May 23rd, 2009 by Many Ayromlou

This is something that people who deal with OSX and Linux come across everyday. Yes you can format your USB stick or removable HD using FAT32. The problem is that FAT32 does not support large sized files which can cause problems. So how do you solve this…..Easy. Attach the Journalized HFS+ disk to your MAC and startup disk utility. Inside disk utility find the disk in question and click on the partition(s) while holding down the “ALT” key. Keep holding the key down and go to the File menu and choose “Disable Journaling” (command-J). Eject the disk, move it over to your linux machine and hook it up. Linux can now read and write to the disk. Once you’re done, move the disk back to the apple machine and after selecting it in disk utility click on “Enable Journaling” button. Done.

Enabling Google Calendar in Apple’s iCal under OSX 10.5+

datePosted on 18:08, May 20th, 2009 by Many Ayromlou

Yep, It works I just transfered all my calendar appointments from local iCal calendar to Google calendar in one easy step. First you need to go into iCal and export your current calendar. If you’re starting fresh with google calendar you don’t need to do this.

To set up CalDAV support for Google Calendar in Apple’s iCal, follow these steps:

  1. Open Apple iCal, go to Preferences and then the Accounts tab.
  2. Click on the + button to add an account.
  3. Under Account Information, enter your Google Account username and password (make sure username does NOT have added).
  4. Under Server Options, add the following URL:[email protected]/user (replace ‘youremail’ with your Google Account username and is usually unless you’ve got google apps setup.
  5. Click Add.

Under the Delegation tab, select the calendars you’d like to add to iCal by checking the boxes next to them. You may need to hit refresh to get the latest list of calendars.

Add your email address to your Address Book card by selecting Add Email. You’ll be prompted to add your email address only if your address is not already in your Address Book. You won’t be able to invite or email guests to Google Calendar events within iCal if your address is not in your Address Book.
Your Google Calendar will now appear in iCal’s list of calendars, and changes you make to your Google Calendar in iCal will be reflected when you sign in to Google Calendar.

If you had previously exported existing iCal events from your local (or other remote) machine, you can now select Import from File menu and choose the file and tell iCal to import it into your google calendar (your google calendar will appear as your full registered name in the import destination list).

Writing Moblin (and Ubuntu) USB images using dd in OSX

datePosted on 15:52, May 20th, 2009 by Many Ayromlou

I came across this problem this morning, while writing the newly downloaded moblin USB image file. The concept is straight forward, plugin a 1GB+ USB stick into a functioning Linux or Windows box, make sure the stick is not mounted and use dd to write the disk image to the stick. Under OSX however the instructions for unmounting are slightly different, so here are the quick steps:

  1. Download the desired .img file
  2. Open a Terminal (under Utilities)
  3. Run diskutil list to get the current list of devices
  4. Insert your flash media
  5. Run diskutil list again and determine the device node assigned to your flash media (e.g. /dev/disk2)
  6. Run diskutil unmountDisk /dev/diskN (replace N with the disk number from the last command; in the previous example, N would be 2)
  7. Execute sudo dd if=/path/to/downloaded.img of=/dev/diskN bs=1m (replace /path/to/downloaded.img with the path where the image file is located.
  8. Run diskutil eject /dev/diskN and remove your flash media when the command completes

That should do it…..

One of the first things you hear a new mac/osx user complain about is the odd way the green “zoom” button works on the upper left hand of windows on Macs. The button behaves differently depending on the app – Finder and Safari sizes to best fit, iTunes’ zoom button switches between the mini player and the normal window, Mail goes full screen. Often times, the behavior differs from one app to another and many Mac users find this behavior inconsistent, unpredictable and disorienting to use.

RightZoom provides a quick and easy solution for the zoom button’s inconsistent behavior. It enables you to make the zoom button maximize the window to full screen when you click the green orb.

By default, RightZoom makes a number of apps blow full screen when hitting the green orb. You can add or remove specific apps if you wish on this white list. But upon a fresh install, here is the list of apps that work with RightZoom :

  • Finder
  • Safari
  • Microsoft Word
  • Microsoft Excel
  • Microsoft PowerPoint
  • Pages
  • Numbers
  • Keynote

You can also blacklist applications you don’t want to change this behavior for (like iTunes). RightZoom is free and distributed by BlazingTools Software .

Just came across tms , what a great tool. It a command line tool for OSX 10.5+ that allows basic CVS style operations on your Time Machine volumes and It does its thing in read-only mode, so nothing gets changed/deleted…..woohooo. Here is the stuff you can do with it:

  • help      – instructions on usage
  • version   – print the current version of this tool
  • disk      – print the current disk
  • disks     – print list of all Time Machine disks
  • volumes   – print list of all volumes
  • machine   – print the current machine
  • machines  – print the list of all machines backed up on the current disk
  • status    – print the current configuration
  • snapshots – print the list of snapshots for the current machine on the current disk
  • snaplog {} – print the log for the given (or latest) snapshot
  • log +     – print revision information for the given files
  • diff [-u] {} {} – print file diff with the given (or latest) snapshot, or between two snapshots
  • delta [-size] {

Go grab your copy NOW.

How to get Admin rights in OSX Leopard using single user mode…

datePosted on 23:11, February 18th, 2009 by Many Ayromlou

Here is a quick way to gain access to that leopard machine you don’t remember the admin password to. Yes I know this can be used by all the kiddies out there, but lets hope they are smarter than that. To start, reboot the machine into single user mode by holding down command-s before the chime (on the white screen with gray apple logo). Once in single user mode you need to mount the HD in read-write mode using the following commands:
/sbin/fsck -fy
/sbin/mount -uw /

Then we need to start the directory services by issuing the following:
launchctl load /System/Library/LaunchDaemons/
First thing we need to do is to create the new userid (I call it newadminusername, you can use whatever you want). It is important to assign the user a Realname (which is the long name under OSX), a UID in 5xx range (I use 599 in this example) and assign the user to group 80 (which is the admin group):
dscl . create /Users/newadminusername
dscl . create /Users/newadminusername RealName “Test Admin User”
dscl . create /Users/newadminusername UniqueID 599
dscl . create /Users/newadminusername PrimaryGroupID 80

Next we need to use the dscl command to make our newadminusername part of the admin group in open directory using the following command:
dscl . append /Groups/admin GroupMembership newadminusername
To check and make sure it worked lets look at the list of users in the admin group using the following command:
dscl . read /Users/newadminusername
and make sure newadminusername is setup correctly.
dscl . read /Groups/admin
and make sure newadminusername is listed as part of this group. The output of the commands on my machine for my test userid “tester” (I chose tester as my “newuseradmin”):
Brain:~ root# dscl . read /Groups/admin
AppleMetaNodeLocation: /Local/Default
GroupMembership: root mayromlou tester
Password: *
PrimaryGroupID: 80
RealName: Administrators
RecordName: admin
RecordType: dsRecTypeStandard:Groups
SMBSID: S-1-5-32-544
Brain:~ root# dscl . read /Users/tester
AppleMetaNodeLocation: /Local/Default
AuthenticationAuthority: ;ShadowHash; ;Kerberosv5;;tester@LKDC:SHA1.532A60C783871C50CE0DAF911171860F528DE20F;LKDC:SHA1.532A60C783871C50CE0DAF911171860F528DE20F;
GeneratedUID: A248AE2D-DCA4-41AF-B3C9-91F96CB42091
Password: ********
PrimaryGroupID: 80
Test User
RecordName: tester
RecordType: dsRecTypeStandard:Users
UniqueID: 599

If everything is good to go reset the users password:
passwd newadminusername
Reboot by typing reboot from the command line. You can now use your newadminusername to login and admin the machine. Once you’ve got access back to the machine through your regular account, you might want to undo all the stuff we have done above (just to keep things neat and tidy). If you decide to do that, reboot into single user mode again by holding down command-s before the chime (on the white screen with gray apple logo). Once in single user mode you need to mount the HD in read-write mode using the following commands:
/sbin/fsck -fy
/sbin/mount -uw /

Then we need to start the directory services by issuing the following:
launchctl load /System/Library/LaunchDaemons/
Then we need to undo all the steps we did above to create the newadminusername ID. That can be done simply by issuing the following commands:
dscl . delete /Groups/admin GroupMembership newadminusername
dscl . delete /Users/newadminusername

That’s it…..You’re done……

123456... 151617PreviousNext