Batch Download All Of GarageBand’s Loops, Jingles, And Sound Effects

GarageBand has a lot of cool loops and sound effects.  If you are a systems administrator, you might be tasked with deploying these sounds and loops so you don’t need to download it onto each computer when GarageBand opens up.  Or maybe you just want to have these effects for your own personal movies or songs. Continue reading “Batch Download All Of GarageBand’s Loops, Jingles, And Sound Effects”

I Made My Own Script To Fill Out Tedious PDF Forms For Me

I often need to fill out a PDF form for requesting medical records.  I have typically done this using Preview since I can use it to digitally sign the form.  But requesting new records after every appointment started becoming tedious–even when doing it digitally.  I also did not want to wait for years and then request the records all at once (because it’s easier to handle large things like this via attrition rather than in bulk).  So I made a script that would fill out PDF forms for me using the information I specified. Continue reading “I Made My Own Script To Fill Out Tedious PDF Forms For Me”

Quickly Download Or Install Common Apps Without Going To The Website

While helping friends and family with their computers, I often need to download an app they don’t have or update it to the latest version–something I don’t really want to spend my time doing.  This is definitely a first-world annoyance for me, but I always have fun making the computer do my laborious tasks for me, which frees up more time to do the things I enjoy. Continue reading “Quickly Download Or Install Common Apps Without Going To The Website”

How I Went Paperless And Clutter-free For $32

Ever since I discovered Dropbox, I felt weighed down by the clutter of physical documents.  I use it for all of my digital documents.  After a while, physical documents and pieces of paper began to get on my nerves.  It was much easier to have searchable PDFs that I could access anywhere.  To that end, I wanted to be able to convert any physical document I received into a searchable PDF.  See the video below for the entire workflow in action. Continue reading “How I Went Paperless And Clutter-free For $32”

Batch Rotate Photo Files With Hazel and sips

If you have a ton of photos that are all facing the wrong direction and don’t want to do them individually, you can use Hazel to automatically go through a folder and rotate the images for you.  All it takes is a one-line bash script and a Hazel rule.

sips -r 90 "$f"

This rotates the image 90 degrees.  You can set it to 180 or whatever else you want. Continue reading “Batch Rotate Photo Files With Hazel and sips”

Trigger Scripts Via Dropbox And Hazel

I haven’t found a great use for this yet, but you can have your Mac automatically run a script by simply creating a file/folder in your Dropbox.  To do this, you need to set up Hazel to watch your Dropbox folder for a certain file/folder, and if it appears, trigger a script.  You could also use folder actions, or launchd, but it will be much more challenging.

In the example below, I simply play a sound byte of the Borg claiming that resistance is futile. Continue reading “Trigger Scripts Via Dropbox And Hazel”

OS X Mail: Create HTML-formatted Auto-response With AppleScript and Rules

Do you respond to a lot of emails with the same or similar content?  You can use Apple’s Mail app to do this for you automatically with some AppleScript and email rules.  Hopefully, you already know about the privacy glitch associated with Apple’s Mail program and Spotlight and have disabled the indexing of your emails.  If not, do that now.  Then, follow the instructions below. Continue reading “OS X Mail: Create HTML-formatted Auto-response With AppleScript and Rules”

Reduce And Resize Dropbox Camera Uploads Automatically With Hazel

I usually use my iPhone to take pictures for my Website and then upload them via the Dropbox app so they appear on my computer.  This is a nice feature, but the photos are way too large to use on a Website.  Instead of opening each one in Preview, scaling it down and saving it.  I created a Hazel workflow that does this for me automatically.  It then copies the original file to the Photos folder. Continue reading “Reduce And Resize Dropbox Camera Uploads Automatically With Hazel”

Folder Actions On Yosemite Broken? Use launchd Instead

My roll-your-own malware detection has been having troubles in OS X Yosemite.  It appears that it increases CPU usage to abnormal amounts.  I have come up with two alternative solutions that you may want to try.

To detect many pieces of malware, you will want to monitor these folders:

/Library/LaunchAgents
/Library/LaunchDaemons
/Users/your_user/LaunchAgents

There are other folders to watch, which detect specific pieces of malware like the Backdoor.iWorm, but the three above should offer decent detection.

Two Methods to Replace Folder Actions On Yosemite

Malware Detection Using Hazel (Paid, But Easy)

This will be the easiest, but you also have to pay for the app.

Set up the Hazel rules as seen below for each of the folder mentioned above.

ryo-malware-hazel

You will get a notification with the filename if something gets placed in those folders.  It will then open the folder so you can decide if it needs to be deleted or if it is a legitimate file.

hazel-alert-malware

Malware Detection Using launchd (Free, More Technical, and Severely-limited)

Unfortunately, this method is more technical and does not work as well as Folder actions because the file and folder name do not get passed as arguments to the script.  So those nice alert dialogs you used to get won’t have all the nifty information.  But if you don’t feel like paying for Hazel, or having your CPU go crazy using Folder Actions, and still want to at least know if something is going on, then read on.

Ironically enough, you will be creating a file and putting it in one of the folders that Folder Actions may have previously been monitoring.  This should also give you some insight as to why hackers are always trying to put files into these folders.

Script To Run When Items Are Added To The Folders

First, you will need a script that will execute when a new item is added into one of the folders.  Since launchd won’t pass arguments to the script, you can just make a basic dialog that tells you an item was added to them.

#!/bin/bash
osascript -e 'display dialog "Possible launchd threat detected..." with title "Roll-your-own Malware Detection"'

launchd .plist To Watch The Folders For Changes

The next process is much easier if you use a program like Lingon X, but I will show you how to manually create the file.  I suggest using an app like TextWrangler because it works better for writing code.  If you want to use TextEdit or some other editor, be sure it is set to plain-text and not rich-text.

Create a new file called RollYourOwn.MalwareDetection.Yosemite.plist  with the following content:

Then, save it to /Library/LaunchAgents .  Make sure the file has the correct user, group, and permissions by running these commands:

sudo chown root:wheel /Library/LaunchAgents/RollYourOwn.MalwareDetection.Yosemite.plist
sudo chmod 644 /Library/LaunchAgents/RollYourOwn.MalwareDetection.Yosemite.plist

You will also want to make sure any extended attributes are gone.  Check if there are any with this command:

ls -l@ /Library/LaunchAgents/RollYourOwn.MalwareDetection.Yosemite.plist

If the result has an “@” symbol in it, then there are some extended attributes and they will be listed below the filename.  For example, this is what mine look liked:

-rw-r--r--@ 1 root wheel 582B Oct 20 14:05 /Library/LaunchAgents/RollYourOwn.MalwareDetection.Yosemite.plist
     com.apple.FinderInfo  32B
     com.apple.TextEncoding  15B

To remove these, use xattr  with the -d  (delete) option

sudo xattr -d com.apple.FinderInfo /Library/LaunchAgents/RollYourOwn.MalwareDetection.Yosemite.plist
sudo xattr -d com.apple.TextEncoding /Library/LaunchAgents/RollYourOwn.MalwareDetection.Yosemite.plist

If you instead edited the text file from the command line in vim  or nano , there are probably not any extended attributes to remove.

Now the launchd plist is ready.  What you just made was your own little program that runs a custom script (for all users at login).  It will run automatically and in the background.  Now you might understand why hackers will try to install things in a similar fashion.  They can have their malicious code executed every time someone logs into their Mac.  But the file you just made runs code that will help rather than hinder.

The launchd plist utilized QueueDirectories, which will basically run the script as long as there is an item in it.  You can also use WatchPaths, but it it much more sensitive to changes.  Experiment with both to find out what is best for you.

Automator: Scale Down Large Images From the Contextual-menu

Automator seems to be one of those unknown or ignored Apple-made apps.  But it is very powerful and can save you a lot of time.  It has also been part of OS X for a long time.

Purpose

To save time by automatically scaling down images (while keeping the original file) to a pre-set size as opposed to manually editing each one.

Requirements For This Walkthrough

Materials

  1. Mac with OS X
  2. Large image files

Downloads

  1. Automator workflow

Knowledge, Skills, and Abilities

  • Ability to navigate throughout a computer OS
  • Knowledge of basic computer terminology

Step-by-step Instructions

Create the Automator Workflow

You can also download a a pre-built workflow.

  1. Create a folder for the scaled-down images to go
  2. Open /Applications/Automator
  3. Create a workflow similar to the following: (editing the folder and size fields)jacob_salmela_automator_workflow_reduce_image
  4. Click File > Save
  5. Save as something like Reduce to 800×600

Use The New Contextual Service

  1. Right-click a large image file
  2. Click Reduce to 800×600jacob_salmela_resize
  3. Watch the magic happen

The scaled-down image will now be revealed in the folder you designated.  The original remains in-tact.  This operation can also be completed on many files at once.  In this example, the picture was 1.8MB and was reduced to 144K.