Category Archives: Mobile
Mobile security
monitor Bluetooth battery levels
I’ve just released a little utility app for those of you with an Apple Magic Mouse, Trackpad or Keyboard over on my software site, sqwarq.com.
BatteryAlert monitors and notifies you of Bluetooth battery levels via Email, Messages, Notifications or Alerts, with live Dock tile offering easy visual indication of current battery status at all times.
The first 1000 downloads of BatteryAlert are free.
Requires OS X 10.10 Yosemite or later. 🙂
how to remove Dropbox green blobs
UPDATE: this method should no longer be necessary. See the Comments below for the latest.
If like me, you’re not impressed with Dropbox drawing huge green blobs all over your Finder windows without even asking, here’s a great tip from Zackary Corbett for getting rid of them. Run the following line in Terminal:
pluginkit -e ignore -i com.getdropbox.dropbox.garcon
And you’ll be blessed with some visual peace and quiet:
If you want to reverse the effect and enjoy the green blobs again, use this line:
pluginkit -e use -i com.getdropbox.dropbox.garcon
Thanks Zachary 🙂
AppleScript: how to extract numbers from a string
Here’s a little handler I wrote in response to a query over on ASC, that will return all the numbers in a string of text. This could be really handy for all sorts of tasks, like extracting data from a text document in order to import the data into a spreadsheet or indexing page numbers from InDesign or Quark, for instance.
Here’s the handler:
on returnNumbersInString(inputString)
set s to quoted form of inputString
do shell script "sed s/[a-zA-Z\\']//g <<< " & s
set dx to the result
set numlist to {}
repeat with i from 1 to count of words in dx
set this_item to word i of dx
try
set this_item to this_item as number
set the end of numlist to this_item
end try
end repeat
return numlist
end returnNumbersInString
To use it , place the handler somewhere in your script (handlers usually go at the beginning or end of your script, but it’s up you; AppleScript doesn’t care where you put them!). Then call it like so:
set theNums to returnNumbersInString(“put your string with some numbers like $45.12, 20%, 12 months, and other assorted data here, or use a variable that points to your text “)
The handler does the work, and sets theNums to a list containing all the numbers in your text. In the example, you’ll see the result as {45.12, 20, 12}.
After that, you’re free to sort them or send them to another app or do whatever your script wants to do with numbers.
If you want to see this handler in action, take a look at my battery health meter script. 🙂
how to easily encrypt your files
Keep the spooks and data thieves out of your personal data with this easy-to-use, drag-and-drop 128-bit AES encryption applet. It’s a simple 1-2-3 process:
1. Download EncryptMe, copy to your Applications folder and drag the icon to your Dock.
2. Select the files you want to encrypt and drop them onto EncryptMe’s Dock icon.
3. Choose a password and you’re done!
That’s really all there is to it, but let’s take a moment to go over the details of Step 2 and 3.
How does it all work?
First of all, note that EncryptMe is an Automator “droplet” app. That means you use it by dropping files on it, not by clicking or double-clicking the icon (which will just produce an error message). If you want to know how EncryptMe works (or make your own), just open up Automator.app and take a look a the ‘New Disk Image’ action. EncryptMe sizes the disk image to fit the files you drop on its icon as long as you have enough free space on your drive.
Secondly, take a moment to pause and think about the password options. You can use OS X’s built-in password generator or make one up of your own. However, be careful. This encryption won’t just keep the bad guys out; it’ll keep you out too if you forget the password!
For that reason, you’ll need to think carefully about whether you’re going to tick the ‘Remember password in my Keychain‘ checkbox or not. Doing so gives you far more insurance against losing the password. The flipside is that anyone will be able to access your encrypted files if they gain access to your computer while you’re logged in. Leaving the box unchecked is more secure: the password you set here will have to be supplied every time an attempt to open the files is made even when you’re logged in. The bad news? Forget the password, and you’ll be in the same boat as the spooks and the data thieves, locked out of your data forever. So choose carefully here.
getting to grips with AppleScript
Learning AppleScript is probably the second most productive thing you can do (the first is learning the Terminal) to improve your Mac experience. You know all those utilities that you see in the Mac App Store, on MacUpdate and so on, with developers charging anything from 99 cents to $20? Well, many of those are just doing simple jobs that you can actually script yourself for free with a little learning of OS X’s unique scripting language (and, indeed, some of those apps have been built in exactly this way).
To keep this post short and practical, I’m going to leave aside the wider discussion of what AppleScript is (and isn’t), what it can (and can’t) do and all manner of other interesting but theoretical things, and instead give you a taste of what you can do with it. I’ll give you some references at the end where you can find out more and learn everything you need.
Let’s get straight to it. Open up the AppleScript Editor by opening the Spotlight search bar and typing Apples. Hit ‘return’ and you’ll be faced with a new editor window. Let’s type something in it.
tell application "Finder"
display dialog "What's your name?" default answer "" with icon note
set myName to the text returned of the result
delay 0.5
display dialog "Hi there, " & myName & "! Welcome to AppleScript!" with icon note
end tell
You could just copy and paste this into the editor, but I’m going to recommend that you don’t. There’s a good reason to take the tedious route and type it in yourself. Like learning a human language, learning a computer language requires using it, and using it repetitively. As you type in the language, you’ll get a feel for its syntax that you won’t get if you just copy and paste. And, unlike a real human language, learning a computer language’s syntax is pretty much the whole battle of mastering it.
After you’ve finished typing, press ‘Command-K’ on the keyboard. If you typed everything correctly, you see the script change into a multi-colored jamboree, like this:
If you weren’t so lucky, examine what you typed against what’s on the page here. Part of the frustration of any computer language is rooting out typos! Eventually, you get a feel for it and start to learn where to look first, based on the error messages you see. For now, you’ll have to peck and hunt (if you get really fed up, you can always go the cut-and-paste route!).
Assuming you’ve got your script to compile, now it’s time to run it and see what it does. Hit ‘Command-R’ (you can of course use the icons in the toolbar for compiling and running, too) and you should get this:
So go ahead, type your name!
OK, you’re getting the idea. Let’s try something different. Press Control-N to open up a clean editor window and enter this:
say "What's your name?" using "Vicki"
display dialog "My name is " default answer ""
set myName to the text returned of the result
say "His name is " & myName using "Vicki"
say "Welcome to AppleScript, " & myName using "Alex"
As before, press ‘Command-K’ to compile and ‘Command-R’ to run.
As you can see (or hear!), you can even have your computer continue a dialogue (with or without you!) using OS X’s many voices.
It’s worth noting that this feature is extremely useful if you’re learning a foreign language.
The Voices options in System Preferences > Dictation & Speech | Text to Speech | System Voice include many optional voices that you can download that will speak foreign text. You can paste the target text into a dialog box (like the ones you just created), and then listen and practice your language skills as repetitively as you desire. For those wanting to learn Thai, for example, download the voice “Narisa”. You can paste Thai script from the web or from the Dictionary.app (if you have the Thai extension installed) into a dialog box and have “Narisa” say it in a very passable Thai accent. Great for learning!
One last one. How about your own screencapture program? Tired of remembering those shortcut keybindings, or having to fire up Preview or SnagIt for the occasional screen grab? Why not have your own app in the Dock that captures the screen with a single click? Here’s how:
Open a new editor window and enter this (in this case, you might want to copy and paste it, for reasons I’ll explain shortly):
do shell script "screencapture -x ~/Desktop/" & time string of (current date) & ".png"
Do the Command-K thing, but then this time do Command-S instead of Command-R. From the resulting save box, change the File Format near the bottom of the box from ‘Script’ to ‘Application’. Give it a fancy name (ScreenGrab, say?) and save it in your Applications folder.
Once that’s all done, go to your Apps folder, grab the ScreenGrab.app and drag it to the Dock. Clicking on it puts a timestamped screenshot on your Desktop. If you’ve got multiple spaces open, flip between them clicking the ScreenGrab app. That’s one easy way to get a record of your entire set up! Cool, huh? (Don’t forget you can easily change the icon in the Dock for something more to your taste, as I explain here. Also, if you don’t like the / delimiters in the file name, use this version for your app.)
That last little script demonstrates one of AppleScript’s most powerful features: the ability to run other scripts (and apps). The command in the last script (and the reason why I suggested you paste it) was actually a Bash shell command (aka Terminal command), and we know those are very easy to mistype! AppleScript can actually run the commands of many apps from within its own scripts, putting the power of those apps at your disposal (and that includes some apps you’re very likely familiar with, like Word and Excel).
I hope this short intro has given you a taste for exploring AppleScript and finding out more. It’s an incredibly powerful language that you can use to enormous advantage, and profit. In order to do that, you’ll need to go on a learning adventure, but I promise, the following sources will make that relatively painless!
If you’re absolutely brand new to AppleScript, then the must-have starter’s book is
Once you’ve got through that you’ll be able to pretty much teach yourself the rest, picking it up from sources like
Other references you should consult once you’re up and running are
and don’t forget Apple’s own free guide:
AppleScript Language Guide which you can also download as a PDF for offline use.
Finally, my Mac OS X Technologies User Tip contains some of the above links as well as others that may be of interest.
Happy scripting! 🙂
Featured picture: wall and paper stencil by -endlesshate
why is my mac running so hot?
’ve previously covered one issue here about overheating macs, but kernel_task is not the only process that can get out of hand. For example, there’s a known issue with some releases of Parallels that can cause a process called prl_disp_service to run up to 99% too, leaving your mac sweating on the desktop even on a cold Winter’s eve!
In general, ‘hot’ issues can be found by looking at what’s going on in your Activity monitor, and solved by quitting (or force quitting) the process. Also, don’t wait to discover these by how hot your mac feels to the touch. Download and install a free copy of smcFanControl and have it running in the menubar. Now you’ll have a reliable means of seeing exactly how hot your mac is. 🙂
However, some processes may not re-start correctly after being quit in Activity monitor unless you reboot the machine or work a bit of Terminal magic. In the case of Parallels, for example, if you’ve identified prl-disp_service as the culprit, the correct solution is to first stop your VM and quit Parallels. Then, open Terminal.app and follow this procedure:
1. Paste this command into Terminal
sudo launchctl stop com.parallels.desktop.launchdaemon
Press ‘Return’. You will be prompted for your password. Note that when you type it in, your typing will be invisible. Press ‘Return’ again.
2. Now paste this command:
sudo launchctl start com.parallels.desktop.launchdaemon
and press ‘Return’.
3. You need to check that the process has correctly restarted before trying to start up Parallels, so one last command:
sudo launchctl list | grep com.parallels.desktop.launchdaemon
The output should look something like this:
36468 – com.parallels.desktop.launchdaemon
The number on the left will be different, but so long as it is anything except 0, you are good to go!
4. Finally, in Terminal, hold down the ‘control‘ key and press the ‘c‘ key at the same time. Now you can quit Terminal and get back to a cool Mac and your Parallels VM. 🙂
You can use these same ‘stop’, ‘start’, and ‘grep’ commands for other errant processes, but you need to find the correct name of the process. You can do this by first noting its name in Activity monitor, then in Terminal, paste:
sudo launchctl list
Look for a launchdaemon that corresponds with the name you found in Activity monitor. Then use the commands above but replace ‘com.parallels.destkop.launchdaemon’ with the name of the process you want to kill.**
🙂
**Warning: The sudo command gives you root privileges to the computer and can cause irreparable harm to your OS if used incorrectly. Never mess around with the sudo command unless you have a recent bootable clone of your system.
Related posts:
Why is my mac running so slow?
kernel_task at 103%!!
how do touch screens work?
ver wondered how those touch screens work (and presumably the Apple trackpad, though I can’t vouch for this!)?
Some clever folk have laid it out as simple as you like in this infographic.
So now you know!

















