Sunday, August 2, 2015

VirtualBox: Accessing host's shared folders from guest Mac OS

To enable shared folder, while the guest OS is running you need to select Devices menu and then Insert Guest Additions CD Image... (Host + D). But, this feature does not support for guest Mac OS. To verify that, in host OS you can browse to /Applications/Virtualbox.app/Contents/MacOS/VBoxGuestAdditions.iso, in my case host OS is Mac OS Mountain Lion, and you will find these files: VBoxWindowsAdditions.exe, VBoxLinuxAdditions.run, VBoxSolariesAdditions.pkg but no *.app file for Mac OS.

There is an alternative way using File Sharing service of Mac OS X. Please follow the steps below.

1). On your host machine, open Network Preferences and then Sharing to share your folder or file:



* Make sure you provide Read & Write access permission on the shared file/folder to everyone


* We gonna share it using SMB service 



2). On your guest OS, open Finder and select Go then Connect to Server... and type smb://10.0.2.2 and click Connect 










Reference
http://www.takwing.idv.hk/tech/virtual/faq/access_shared_folder.html

Installing Mac OS X Mountain Lion (10.8) on VirtualBox

Please follow the following steps:

1. Purchase Mac OS X 10.8 Mountain Lion from Apple's Web Store

The downloaded installer should be a DMG file and when you mount it, you can see its content as in the following screenshot:


Some installer DMG file can't be mounted from Virtualbox because it contains only one file, an APP file. The APP file is used to reinstall (or do clean install) of existing Mac OS X you're currently on. You cannot use it as a bootable DVD. Hence, make sure you get the right one and I'm not sure why there are two different kinds of this file.

2. Create a new virtual machine the following settings:

- Set video memory to 60 MB
- Set RAM to more than 2048 MB, for example 2653 MB
- Create a new optical disk (CD/DVD ROM) and mount it to the installer (DMG) file. Don't forget to check Live CD/DVD checkbox
- Make the CD/DVD ROM drive is the first in boot order



3. Start the virtual machine and follow the instructions on the screen. 

There will be a screen asked you to select a disk to install the OS on but there won't be any disk to select. You need to format the virtual hard drive:
- Select Utilities then Disk Utilities... 
- Select the disk in the sidebar on the left and then click on Erase tab in the sidebar on the right
- Choose the file format as Mac OS Extended (Journaled)
- Click Erase button
And you'll now see the disk in the "select disk" screen and then follow the instruction on the screen.


4. It will ask you to restart after the installation's finished. 

You might get an error when it starts again. You need to turn off the virtual machine and make it boot from the virtual hard disk instead of the virtual CD/DVD ROM drive.

When you boot from the virtual hard disk, you might get stuck as in the following screenshot. If it takes you too long to wait, you might need to shutdown the machine and start it again and then it should work this time.





Saturday, August 1, 2015

Enabling NTFS Write Support on Mac OS

NTFS file format is recognized by default on Mac OS but you can only read from the NTFS formatted drives; you can't write to the drives. There are free and commercial packages for installing to enable NTFS write support. I chose to use Paragon, the commercial one. Some people downloaded the serial number or cracked version from www.thepiratebay.se. There are some reasons I don't use other packages:

1. Fuse for OS X and NTFS-3G (free)

The problem with this free package is my drive didn't mount sometimes.

2. Texura (commercial)

I tested it with the version 2014. It worked like a charm but there was a problem with Finder. I'm using XFinder to add multiple tab support to native Finder. While I was in dual pane mode showing two tabs in the same Finder window, I couldn't click on my NTFS drive name under Devices list in the left pane of Finder.



3. Paragon (commercial)

I've been using it (v8.0) on Mac OS Mountain Lion v10.8 and no problem at all. My One thing to note about it is it adds two file formats, Windows NT Filesystem (compressed) and Windows NT Filesystem support for you to choose when you want to erase your partition from Disk Utility. But, I couldn't erase my partition using Windows NT Filesystem. Everytime I clicked Erase button, Windows NT Filesystem (compressed) format was selected instead. However, I see no differences between these two file formats. I've read about NTFS (on Wikipedia) and there is only one NTFS, in which you can enable compression on drives, files or folders. Moreover, my NTFS drive once formatted using Texura driver appeared as NTFS (compressed) too when I browsed it in Disk Utility with Paragon driver installed.




Thursday, July 23, 2015

Setting up Wireless Access Point using Apple's Airport Express

I'm using ADSL internet connection at my home, in which there is a cable from ISP connected directly into my modem. I want to set up a wifi network from it. The only thing I need is Airport Express. I just plugged in the ethernet cable from the modem to the Airport Express and configure it as following:

1. Connecting modem to Airport Express



2. Configuring the Airport Express from MacBook/iPhone/iPad by using Airport Utility application. The application come with Mac OS X by default. You need to download and install the app for iPhone and iPad. The steps below show how to configure it.
















Friday, July 10, 2015

Mac OS X: Put your machine to sleep automatically when low battery

I don't want my machine shutdown because of out of battery because I may get the issues such as losing unsaved tasks and my hard drive is not mounted when the machine starts again. The Energy Saver settings in Mac OS X can put my machine to sleep after it has been idled for a period of time but it can't help in my case because most of the time I leave the music player app running so my machine is never idle.

Thus, I created an AppleScript that automatically put my machine to sleep when the battery is lower than %15. The script will be executed every 3 minutes by a cron job. For info, I'm using Mac OS X Mountain Lion 10.8.

1. Create the Apple script


Open AppleScript Editor and insert the following code and save it as SleepWhenLowBattery.scpt in /Applications/MyApps/ directory.

property lowBattery : 15

set battStatus to do shell script "pmset -g ps"
if battStatus contains "Battery Power" then
 set {TID, text item delimiters} to {text item delimiters, ";"}
 set battStatus to text items of battStatus
 set text item delimiters to tab
 set battStatus to text 1 thru -2 of last text item of item 1 of battStatus as integer
 set text item delimiters to TID
 
 if battStatus < lowBattery then
  tell application "Finder"
   activate
   set alertResult to display alert ¬
    "Low battery! Your machine is going to sleep in 90 seconds..." buttons {"Cancel", "Sleep Now"} as warning ¬
    default button ¬
    "Cancel" cancel button ¬
    "Cancel" giving up after 90
   
   
   if gave up of alertResult then
    do shell script "pmset sleepnow"
   else if button returned of alertResult is "Sleep Now" then
    do shell script "pmset sleepnow"
   end if
   
  end tell
 end if
end if
return 60

This script checks the current battery status. If it's lower than the defined value, it displays an alert saying that the machine is going to sleep in 90 seconds and the user can choose to sleep now or cancel.

Below is the sample output of the command 'pmset -g ps'  while charging:
$ pmset -g ps
Currently drawing from 'AC Power'
 -InternalBattery-0 60%; charging; (no estimate)
Below is the sample output of the command 'pmset -g ps'  while discharging:
$ pmset -g ps
Currently drawing from 'Battery Power'
 -InternalBattery-0 61%; discharging; (no estimate)
So, the script will put your computer into sleep only if your machine is not charging.


Another note about the script is that the code to display the alert need to be put in 'tell application "finder"' block or you'll get the error message below logged by the cron job in /var/mail/${username} file. Without that block, the script can still be executed manually by the user from Terminal.
/Applications/MyApps/SleepWhenLowBattery.scpt: execution error: No user interaction allowed. (-1713)

2. Create a cron job to run the script every 3 minutes


Open Terminal and type:
crontab -e
It will open crontab configuration file in VI editor. And then press 'I' key to be able to write into the file and insert the following line.
*/3 * * * * osascript /Applications/MyApps/SleepWhenLowBattery.scpt 
After that, press 'Esc' key and type ':wq' to save change and quit the VI editor. Please note that the cron job running interval should be greater than the waiting time before machine sleeps (90 seconds) defined in the script above or you will get more than one alerts on your screen if you don't close them. This cron job does not run for all users; it's for the current user only.

Now, you're done; you DON'T need to restart your machine or logout.






References
https://discussions.apple.com/thread/3836771
http://stackoverflow.com/questions/13484482/no-user-interaction-allowed-when-running-applescript-in-python

Saturday, July 4, 2015

Mac OS X: Applications do not remember their desktops or spaces

I'm using Mac OS X Mountain Lion 10.8. I have a few desktops to group applications. But, sometimes the applications start in wrong desktops or spaces. They do not remember their desktops. It's the default behavior of Mission Control. You can change it as following:

1. Open System Preferences
2. Click Mission Control
3. Uncheck Automatically rearrange spaces based on most recent use


Saturday, May 9, 2015

Chrome Issue: We are having trouble playing this video.

I was using Chromium browser v37 on Mac OSX Lion v10.7 and I was able to play videos on any sites such as Youtube, Facebook, and so on. After I upgraded it to v44, I still could play videos on Youtube but not on Facebook and it showed the message below.


To fix the problems,
1). Type "chrome://flags/#enable-npapi" in browser's address bar
2). Find the item "Enable NPAPI Mac, Windows" and click on Enable link
3). Restart browser






References

https://www.facebook.com/help/community/question/?id=10202758465869794 - commented by Gary Miller.
https://www.java.com/en/download/faq/chrome.xml#npapichrome