Posts Tagged “scripting”

  • PodTagger: automatic ID3 tagging for podcasts

    I have a couple of podcasts (Systematic, Overtired) that I do my own editing on. To save Moises over at ESN some time, I've been tagging the MP3 files. Not surprisingly, I decided I wanted to automate this process.…

  • Natural language dates anywhere with Keyboard Maestro

    Updated: if you experienced a JavaScript compiler error Error on line 13605: SyntaxError: Unexpected token '='., download the 1.0.1 version below.…

  • Shell Tricks: shorten every line of output

    Updated: Dr. Drang pointed out that the original functions were mostly working but flawed. I've updated this whole post.…

  • Shell Tricks: list files with most text matches

    Here's a Bash function for searching all text files in the current directory for a pattern, then listing the files containing matches in ascending order by number of matches. It's mostly a proof of concept, but a useful companion to a basic grep search.…

  • iTunesIcon 2.2

    I just updated iTunesIcon, my little app for grabbing icons for any App Store application. This is a bugfix release, updated to fix the recent bug that only saved the 100x100px version of an icon.…

  • Share all your browser tabs at once

    Update: Version 1.0.1 is now the current download. Fixes Safari functionality and allows the optional use of a dotfile (~/.dropboxid with the 5-digit Dropbox user id in it) instead of modifying the script directly.…

  • A universal clipboard command for Bash

    I frequently use pbcopy` in the shell to get output to the OS X clipboard. I'm constantly using `[command] | pbcopy, and figured it would be worth making a little easier, so I wrote this little function this morning.…

  • OS X shell tricks: speaking in tongues

    I have an always-on Mac mini that sits in the corner of my office. It toils away running staging servers for media, web development, and home automation. It also runs a lot of scheduled scripts.…

  • A Bash function for finding your Bash functions

    As you may have noticed if you've followed this blog lately, I write a lot of Bash functions and aliases. I keep them in distinct files using a plugin system based on bash-it. It works really well, and makes upkeep simple. However, I very often lose track of exactly where I defined a function or alias after a few months go by.…

  • Shell trick: printf rules

    This post is about a simple trick for printing a horizontal rule in the Terminal, but I would like to start by saying that the headline is not entirely an attempt at humor. I spent a long time working with the limitations of echo`, with its `-e` annoyances and `-n` inconsistencies between shells. Then I started using `printf more, and it's made string formatting and terminal output so much simpler. Check out the man page (and some more info on format strings)if you're not already familiar with…

  • Web Excursions for February 16, 2015
  • GitHub TOC Service 0.2.0

    I just uploaded the GitHub TOC Service version 0.2.0. Mostly because I needed a break from testing the next version of Marked, but also because it had a few bugs that needed fixing.…

  • The "Shell Tricks" video course

    It's $11.99 for the full course, and covers tricks for working with files and directories on the command line, clever git tricks, web design tools, and more fun on the command line.…

  • Automating OS X Automator scripting

    I write a lot of Services using Automator these days. They usually consist of one "Run Shell Script" action and possibly a few other Automator tasks. Editing a script in the Automator text fields is a horrible experience, so I end up doing a lot of copy-switch-pasting between my editor and Automator. This script lets me make the process simple.…

  • Bytes: file size conversion Service

    This will probably be part of SearchLink someday, but I decided to stop adding features and get that shipped as soon as possible (just have to rewrite most of the documentation). So here's this piece of it as a Service and a CLI.…

  • The MatchData object in Ruby gsub blocks

    I use regular expressions in Ruby a lot. One of the features I've come to use frequently is the block syntax for gsub` calls. Whereas the other syntaxes for `gsub really only provide back referencing for capture groups in replacements, the block syntax allows much more flexibility.…

  • Shell tricks: A time to kill

    I detailed the open command in the last Shell Tricks post, so I thought I'd go over some tricks for doing the opposite next: closing and quitting apps.…

  • ezsnippets for Marked 2, text expansion on the fly

    First, I'd like to thank everyone who's responded to my "pledge drive." It's encouraging, and I appreciate all the new subscribers and the ideas that have been shared with me for adding value to the proposition!…

  • Shell tricks: the OS X open command

    You may already be familiar with the open command in Darwin (OS X's flavor of Unix). It allows you to open files and URLs in their default app or one that you specify. In its simplest form:…

  • Shell tricks: Changelogs with Git

    I've been collecting some shell tricks. The list got long enough to warrant a few posts, so this is part one of a few. I'm going to add them to the "Bash Fun" series rather than creating a new one, so that's the place if you want to track them.…

  • Custom export options for Marked 2

    Here's a trick for Marked 2 that allows you to keep a custom export format updated every time you save your file and update the Marked preview. I designed it specifically for updating a Lyx file, but you can use it with any secondary processor that doesn't necessarily output HTML.…

  • TagBak, tag backup and restore

    I mentioned a few days ago that there were a few ways to lose your tags in OS X. I began working on the best solution I could come up with for now: TagBak.…

  • How to lose your tags

    First, Happy July 4th! I was going to take today off from everything, but woke up early with a bug to do some more OS X tagging research. I'll go back to bed after this...…

  • Mavericks tags and coreutils, a warning

    This won't affect too many people, but if you've installed the GNU Coreutils, you should be aware that the mv` and `cp commands strip extended attributes from your files. If you do any tagging in Mavericks (or with OpenMeta), you'll find your tags disappearing after shell scripts or command line filing act on a file.…

  • A GitHub README table of contents Service

    There's probably an existing tool to do this, but I couldn't find it this morning. I have some very long README files on GitHub and I wanted a simple Table of Contents for them. I'm too lazy to break most of them up into wikis, so I needed a way to emulate the [[toc]] tag found in the Gollum wiki platform that GitHub has.…

  • Marker, Grablinks, and Bullseye fixes

    Recently a few of my bookmarklets broke due to conflicts in the way GitHub serves raw gists and Chrome security settings. I've moved all of the gists that the bookmarklets previously loaded from GitHub to my own server and updated the main bookmarklet code.…

  • Fast, fuzzy directory navigation for Tag Filer

    This script provides an easy way to jump around the filesystem if (and only if) you're using my Tag Filer system. In that system, you tag main "context" folders with "=Tagname," and target subfolders (project folders) with "@projecttag." The Tag Filing system allows me to tag individual files and folders with a "#Tagname" (target context) and ":project:chain" tags to have Hazel automatically move them to their destination and maintain both a shallow folder system and a tag-based search system.…

  • Even better random filenames

    This is an evolution of the random filename generator I posted last week. Based on comments from BrianEnigma, this script allows you to specify "starts with" arguments to get an adjective and a noun using the WordNet dictionaries.…

  • (Potentially) funny random filenames for Bash scripts

    It's been a busy week, and I'll be writing up my WWDC thoughts and a couple of TUAW posts after a plane ride today. In the meantime, I made you a thing.…

  • Mirror your MindMeister maps to nvALT

    I love iThoughtsX, MindNode Pro and Mindjet MindManager for a lot of the local brainstorming I do on my Mac, but I've found myself doing a lot of work with MindMeister in a Fluid browser (and on iOS) lately.…

  • up: fuzzy navigation up a directory tree

    Here's a (relatively) simple shell function for navigating up the tree from your current working directory. It was inspired by bd, but I got frustrated with some aspects (and the fact that it's not really OS X-compatible anymore).…

  • Making my tmux life easier

    Have you heard of tmux? Do you ache for terminal mutiplexing and persistent shell sessions? If not, you can probably skip this post. Hang tight, I have something more generally palatable in the works. In the meantime, if you want to read up, head to the tmux homepage.…

  • Bash and Dash

    I know, "bash and dash" sounds like a sadistic game for frat boys. But it rhymed and was so apropos.…

  • Web Excursions for May 05, 2014
  • Folderize - Sync nvALT notes to nested folders

    This script is designed for people who want to sync a flat folder of notes (a la nvALT) to a more organized system of nested folders. It serves as a system for creating a structure that's easier to navigate in iOS note apps, or for separating notes that might be compiled into different books or projects.…

  • Web Excursions for April 14, 2014
  • A Service for getting sums from selections

    Here's a quick System Service for OS X that finds all the numbers in selected text and adds them together. I find myself making lists of numbers in Markdown quite a bit, and often just want to add them all together. That's what this does.…

  • Dash docsets from MultiMarkdown

    Dash is my favorite way to reference syntax and info about dozens of programming languages, and one of my most used applications. The developer of Dash recently released "Cheatset", a way to build your own Cheat Sheets to display in Dash as docsets, complete with indexed commands and categories.…

  • Scatterbrains 3: a new tool for doing

    I made something that I worked really hard on, despite knowing few people besides myself would ever find a use for it. However, if you:…

  • Remote pbcopy on OS X systems

    I've been using this great tip from Sean Coates for years now on my remote Linux servers. It allows you to simulate the pbcopy command (which copies piped text to the OS X clipboard) on remote SSH servers, but copies to your local clipboard instead. I've primarily been using OS X servers for a while now, though, and it took a few changes to get it working.…

  • Automating dynamic date math in TextExpander

    Here's a TextExpander trick for automating dynamic portions of snippets. It's a way to allow the power of shell scripting inside of regular text snippets, avoiding extra fill-ins or running two snippets. First, a short backstory.…

  • iTunesIcon 2.1 with easy icon sizing

    You may recall my iTunesIcon app that lets you easily search for and pull an icon from any App Store (Mac or iTunes) app. I posted a minor update recently that I forgot to mention: you can now specify the size of the returned icon.…

  • Quick Tip: Automating your Mac's wifi power

    This is a quick one, and many of you probably know it, but you can quickly toggle wifi on your Mac with the networksetup command. To turn your wifi on:…

  • Custom Processors in Marked 2

    Custom processors are an advanced feature of Marked which provide a lot of power and flexibility --- if you know how to write scripts and implement them. For the average user they're of less use, but for the power users they're a goldmine.…

  • A Service for creating Marked indexes

    In case you're not familiar with it already, Marked has the ability to include external documents within any other document. The main use for this is creating longer documents with chapters/sections split into separate files. Then you create an index file that pulls them all together in the proper order.…

  • Scripting podcast and screencast prep on a Mac

    There's a lot to remember when you're preparing to record a screencast or a podcast. Quitting some apps, launching others, changing settings... I find it easiest just to script everything. That's probably not a surprise to anyone.…

  • Automatic filing with Hazel and Mavericks tags

    I've finished a tag-based filing system I started working on before Mavericks. I personally think it's flexible enough to be shared, but others may balk at the apparent complexity. It does take some planning and setup, but it's an effective way for me to manage files.…

  • Icon Grabber updated to search any platform

    I've updated the icon grabber script to allow you to specify what type of application you're looking for, be it iPhone, iPad or Mac. In case you're not familiar, this script uses the iTunes API to locate the highest resolution icon for an application based on a search query. It previously always assumed "iPad."…

  • Command line bar chart (for GeekTool, et al)

    This is a script I'm using with GeekTool to output a bar chart of stats for my blog to my desktop. It's specifically geared toward the data returned by FeedPress, but I'm posting it because it can pretty easily be modified to work with any date-based data set. The concept is actually easy enough to use with any sequential data, and can be modified to output horizontal bars as well.…

  • Planter 2.0 with Mavericks tagging

    I've finished the biggest update to Planter thus far, and bumped it to version 2.0. I don't know how popular this project is or ever will be, but I still find it useful enough to keep in good shape.…

  • Bash completion for Mac app aliases

    I have a slew of aliases that launch various apps. Quite a few of them launch apps that I generally only use with one type of file. Xcode and TaskPaper, for example. I wanted a completion system that would find just the applicable files in the directory. In most cases with these apps there's only one file per project, so being able to type xc` and hit tab to open the `xcodeproj file for the current project is handy.…

  • Save Pocket favorites to nvALT with IFTTT and Hazel

    Here's a quick script that works with an IFTTT recipe to put your Pocket favorites into nvALT as Markdown. It works well for me because I typically use Pocket to store articles that are more informational than time sensitive. If you star a lot of "newsy" articles, this is probably a bad idea, but for reference material it's helpful.…

  • Top RAM processes Geeklet Mavericks fixer upper

    For those of you using the memmeter.rb Geeklet to display your top RAM processes on your Desktop, I've updated the script located here with a version compatible with Mavericks and Ruby 2.0.…

  • Web Excursions for October 24, 2013
  • "Lazy" Markdown reference links

    This allows you to not bother naming or numbering links while writing, and easily move links along with their paragraphs without breaking numbering sequences or naming conventions.…

  • Wallflowers: my favorite OS X augmentations

    There are quite a few apps on my machine that run in the background, waiting for that moment when they get to shine. These apps augment the OS X experience in ways that I'd have trouble functioning without.…

  • Web Excursions for October 11, 2013
  • Using Growl for long-running script status

    My Jekyll build takes a while, and when I'm at my machine I like to know at a glance if a build is running. I've gone to great lengths with notifyutil and GeekTool to put status lights on my desktop. I do the same for multiple long-running tasks. I realized the other day, though, that Growl could do this very easily, and could be automated as part of a script or Rake task.…

  • Easily save that wicked awesome shell command

    This isn't a brand new trick. It's based on a Bash function for "alias last" that I've seen in a few places. The original version uses history to get the last command you ran and turn it into a temporary alias. I expanded it a little with some escaping for quotes and trimming whitespace, but it's the same function.…

  • Clickable wiki links in the nvALT preview

    I worked this very short script up last night to help a friend scratch an itch. It allows the HTML preview window in nvALT to show [[wiki links]] as clickable text that will jump to linked notes in the editor.…

  • Scripting TaskPaper, mind maps, outliners and other fun

    I did some hacking on the excellent "Extra Info" script from Pedro Lobo. I wouldn't say I greatly improved it, but I did make a fine mess of the code. My goal was achieved, though: special tags create new files from templates with things like subject, source link, date, etc. all ready to go. Trigger it with FastScripts and you can add extended notes to any task using MindNode, Mindjet MindManager, OmniOutliner, iThoughtsX and nvALT.…

  • Bash image tools for web designers

    Here are a couple of my Bash functions for people who work with images in CSS or HTML. Nothing elaborate, just things that supplement my typical workflow.…

  • Web Excursions for July 08, 2013
  • nvremind: Automatic reminders for nvALT

    Inspired by Evernote, I whipped up a little script to find "@reminder" tags with date parameters in nvALT notes (or any folder of text files). It can generate notifications or send HTML emails at the specified time. It's just for fun right now, but I thought I'd put it out there to see if anyone had any ideas for it.…

  • Natural Language Date Service 1.3

    I've updated the natural language date Service again, adding a few things that I'd personally been wishing for.…

  • Planter 1.3 with File Templates

    I've updated Planter to 1.3 with a few new features. Previously, it created directory structures based on tab-indented folder trees in plain text, using either the command line or LaunchBar (original post, and the LaunchBar version). Now, it handles file templates as well as slightly more advanced variables.…

  • Instantly grab a high-res icon for any iOS app

    As a blogger who writes about a lot of apps, I frequently need to grab artwork for iOS apps. iTunes and its web previews don't make this an easy task, especially for high-res versions. To assist in this process, I wrote a quick script to allow me to search for an iOS app by name and instantly write its 1024px version (or the highest resolution available) to the current directory in Terminal. There's also an OS X application version at the end of this post, so you can perform this trick without…

  • Synchronizing Screen Savers between multiple Macs

    I'm currently running a Mac Pro with one monitor as my always-on server. My primary work machine is a 13" Air connected to a 27" Thunderbolt display. The Mac Pro display, the Air and the 27" are next to each other on the desktop, and I use teleport to fluidly pass between the monitors and control both machines with one keyboard and Magic Trackpad.…

  • A multi-purpose EDITOR variable

    Here's a quick trick I've been using to load different editors from the command line based on the type of file. It can be extended to whatever file types you want to handle and use whichever editor you prefer.…

  • nvALT Tag Search for Alfred 2

    While dinking around with Alfred 2, I came up with something kind of handy. It's a workflow containing just a file filter which constrains the search to your nvALT folder and searches only by OpenMeta tags, and a shell script that opens the file in nvALT.…

  • More command line handiness

    These are just a few tricks that have come in handy lately that I thought I'd pull out of my .bash_profile and stick on a web page.…

  • An in-progress custom site search project

    I'm writing about a project that's not finished, might never be and is probably of little interest to most people. This post is basically journaling a milestone, but you can see the project in action right now. I'll show you in a minute.…

  • beengone: a script-friendly way to check computer idle time

    I spent too long figuring this out, but I'm quite certain there are at least 3 people who can put the result to good use. I don't know who they are yet, but they'll show up. Eventually.…

  • Every last Systematic show link

    I've done 30 episodes of Systematic now. Every week I goad my guests into sharing their "Top 3 Picks." It's usually software (kind of my thing), but it can be just about anything. After so many episodes I began to realize that I had no way to give guests advance warning as to what had been mentioned recently. I needed a list of every link ever mentioned on the show, all in one searchable page.…

  • Planter for LaunchBar

    This is a version of Planter (instant nested folder creation from indented text input) modified for LaunchBar. It has a customized version of the Planter script and CocoaDialog embedded, so you can use it simply by unzipping the download, placing the .scptd` file in `~/Library/Application Support/LaunchBar/Actions and running it directly from LaunchBar. Download at the end of this post.…

  • Web excursions: November 26, 2012
  • Coughbutton 1.3 (with 100% more Skype)

    Coughbutton, my podcaster's iPhone-based cough button for your Mac, has been upgraded to 1.3 and undergone a major switcharoo. It now works with Skype (and, by default, only with Skype), which is all I really needed anyway.…

  • WordPress to Jekyll: converting gallery shortcodes

    As I move along with my Jekyll/Octopress transition, I'm working to make the move as clean as possible. I'm importing my WordPress database rather than starting fresh, and I'll be sharing tidbits of discoveries as I go. These posts will only be of interest to people making similar transitions, but they'll also be serving as notes for myself and Google search results for people up against the same conundrums.…

  • Turn your iPhone into a cough button

    Update: These are the notes for the original version, which worked by sending the toggle command to MuteMyMic. Coughbutton has been revised to work with On/Off commands for Skype directly, no longer toggling system mute. This is more useful to me, and hopefully to others. The Github link is the same, and there's a post with revised information.…

  • Markdown link format conversion on iOS

    I was chatting with Gabe Weatherhead yesterday about turning SearchLink into a Python script that could then run on Pythonista. That would allow you to copy text from an iOS editor, open Pythonista and run the script, then go back to your editor and paste with your links converted. I'm not sure it's going to be possible, yet, because I don't know how iOS and Pythonista handle network connections from scripts. I have a lot to learn.…

  • External linking for nvALT notes 2: nvWikiLinker

    Continuing yesterday's foray into linking nvALT notes to any application, here's the universal script that makes any text linkable to nvALT without extra urls.…

  • Planter: Tree planting for your filesystem

    I wrote a script this morning called "Planter." It plants directory trees. I made a logo for it not because it's an official project or deserving of the extra effort, but because I had Photoshop open anyway.…

  • Easy command line Github Flavored Markdown

    I wrote a quick wrapper script for converting local Markdown files or raw text to HTML using Github Flavored Markdown. It uses the Github API, so there are no local dependencies (other than the json gem, see below). It just requires an Internet connection. Syntax highlighting and Github stylesheets are included in the output. Any syntax recognized by Github is converted, including line breaks and fenced code.…

  • Matrix(ish): a bash script with no practical application

    Ok, just for (nerd) fun, here's a Bash shell script that will output a Matrix-ish display in Terminal. I have no idea if it works outside of BSD on OS X, but it has a chance.…

  • Lucky Duck

    I'll admit I'm a bit perturbed by the disappearance of all of the decent web search APIs (Yahoo, Google, Live.net, Bing went paid...). Google Ajax Search is still active, I think, but I don't like working with it from the desktop. So I'm back to scraping, though this is some pretty light scraping.…

  • Quick Tip: Checking for modifier keys in shell scripts

    Yesterday I found a handy little command line utility for checking whether a modifier key is held down. It's great for scripting of all kinds. The solution came from this post on the Apple Mailing List:…

  • Launching your entire Dock at once

    I keep my Dock very trim. The only apps that have a permanent home there are apps that I either have to have running all day, or apps that I choose to have running all day. However, I don't make them launch items. Booting up can be slow enough without trying to launch five heavy apps at the same time that everything else is loading.…

  • A drop-in growlnotify replacement for Mountain Lion notifications

    I use the Growl Extra growlnotify in a lot of my scripts to offer notifications while they run in the background. It works great, and still works with Mountain Lion, but I have a thing for system integration and new shiny.…

  • Overthinking it: fast bundle ID retrieval for Mac apps

    Ok, I told the world and myself (in a podcast you haven't heard yet) that I wouldn't admit to putting time into this, but... I kinda like it. Given that you'll probably need it at least once at some point, I might as well share it and save you the time.…

  • More automated logging: Gists

    Here we go again with the automated work logging. I decided I wanted to keep a record of my public Github gists in my log as well, with descriptions and links. I use gists a lot these days and they're a good indicator of some of the things I've been working on outside of my git repositories (which are logged separately).…

  • Quickly restarting apps with LaunchBar (and friends)

    I've been using this little trick frequently for a while now. I doubt "normal" people ever need to frequently restart apps, but when I start working on keybindings and other things that require fresh starts to take effect, it's nice to be able to do so with a couple of keystrokes.…

  • wp_mangler, scripted post modification for WordPress

    Here's a quick script I was playing around with this morning. I want to do some extensive string handling on all of the posts in my WordPress database. It made the most sense to me to pull each post's content from the db, do the string mangling with a shell script and then replace the post_content field as I go. This script is destructive and any mistakes you introduce could kill your entire blog. Should you have a need for this script, back up first!…

  • A warm, fuzzy, file-finding feeling

    I write a lot of scripts. I often want to edit and tweak those scripts. I sometimes forget exactly where a script is in my path, though, so I end up using "subl $(which scriptname)" to do it (yes, I have an alias for that). I didn't know I needed a smarter, faster way until I built this, but now I'm quite enamored with it.…

  • Quick Tip: system-wide notifications with notifyutil

    I just discovered this, thus don't know a lot about it, but notifyutil is a pretty cool command line utility in OS X. I know it exists in both Lion and Mountain Lion, not sure how long it's been around before that.…

  • searchFocus, the most useful bookmarklet I've ever made at 3:21am

    Ok, so this is the only bookmarklet I recall making that early in the morning, but it's still useful if you have a browser setup at all similar to mine. When triggered, this bookmarklet finds all input elements on the page, sorts out the text/search types, runs them through a few regular expressions to find the first one that seems a likely candidate to be the main search field and then focuses it. It's not perfect, but it works pretty well across the board (and without loading any libraries or…

  • Desktop cleanup scripts for screencasting

    I don't screencast a lot, but I do it enough to have a set pattern for preparing to record. I automated the process a few months ago and figured I'd share it.…

  • Natural Language Date Service update

    I made a small update to the natural language date Service that I put together a while back. I wanted it to handle input formats like "+3" to get a date for 3 days from right now, and to handle adding times to the output if there's a time-like string in the input.…

  • A Service for writing MultiMarkdown footnotes inline

    I get a lot of one-off requests for scripts and tips on how to handle tasks specific to people's workflow or writing style. I generally keep myself pretty busy, so I usually reply with a quick idea or thought and leave it up to them to run with it. David Coleman emailed me this morning, though, with a request that struck me as an interesting enough idea to whip up a script before work.…

  • A simple but handy Bash function: console

    I've long had an alias in my ~/.bash_profile` called `console`. It simply tailed the system log with 'alias console=tail -f /var/log/system.log'. Bam I decided to amp it up a little for added convenience. The function below allows me to add additional arguments which are translated into a regular expression for filtering the log output. Arguments, separated by spaces on the command line, are joined into a regular expression as OR matches. You can specify as many as you like to track each as…

  • na: per-project todos in Terminal

    As I've mentioned before, I keep todo.taskpaper files in my web and code project folders. These allow me to keep track of bugs, ideas, notes, etc., and the archive it creates helps me remember what I did, when I did it and how it worked. I like having them separated per project it's the way my one-track mind works. I like the plain-text format because I can use any variety of methods (including TaskPaper itself) to manipulate and quickly update the files. This gave me the idea to have Terminal…

  • A little KeyBinding sanity

    I finally got around to writing a script to auto-generate the documentation for my DefaultKeyBinding.dict file. The script now reads my comments in the file and creates tables of keystrokes and descriptions ready for GitHub. From now on, my fickle changes will be reflected in the readme.md file in the repo and the keystrokes will stay current. You can see the current output here.…

  • "Open URLs" Dropzone Destination

    I just added a pull request for my latest Dropzone (review) Destination. It's called "Open URLs," and with it you can open text urls from any number of text files, drag text straight from any application, or just click it to scan your clipboard. The files, text or clipboard contents are scanned for any http(s) links and they're sent to your default browser using the system open command.…

  • Marked scripts: nvALT, Evernote, MarsEdit, Scrivener

    Thus far, Marked has had a great reception and has, overall, worked superbly with a wide range of text editors. I frequently get requests for integration with more complex editors, but have been unable to fulfill them because Marked requires an actual text file to watch. To try and fix this situation, I've been scripting "watchers" for various applications which embed their files inside of bundles or otherwise obscure the actual content files from Spotlight.…

  • Geeklet: Top RAM Processes

    This next geeklet is quite similar to the Top CPU Processes geeklet I last shared. It finds the apps and processes with the biggest memory footprint on your system and lists the top 10. The output looks like:…

  • The MindMeister Markdown Showdown

    I'd like to welcome Donald Curtis as a guest blogger today, here to talk about a very cool script we worked on to add some Markdown love to MindMeister. It started with a DM from Donald on Twitter with a link to a GitHub gist, and after some back and forth it became a very cool (and useful) tool. Cool enough that I really wanted to share it here. Since the script is his brainchild and almost entirely his handiwork, I thought it would be cool if Donald did the honors.…

  • Scatterbrains 2: The geekening

    If you read A solution for scatterbrains yesterday, but were left feeling like the solution just wasn't geeky enough... here's a Saturday morning post to help you out. You do actually need to read that for this to make any sense. Here, I'll link it again for you.…

  • Quick Tip: Quickly clear stuck Growl notifications

    Quick tips are random posts regarding something I discovered on my way to something bigger. They usually get longer than "quick" would imply, for which I refuse to apologize.…

  • Word repetition checking with JavaScript

    Ok, I made something interesting (to me) last night. It's probably not worth taking the time to write up, but someday someone might find it and think it useful. I apologize for the messiness of the code, if I take this further and clean it up, I'll update this post.…

  • Bash auto-complete for running applications

    I'm not up for doing a full Bash autocomplete tutorial tonight, but wanted to share something I figured out instead of eating lunch. Here it is with a modicum of explanation.…

  • Automating random giveaways, v1.0

    To pick the winners for the Yoink and Listary giveaways, I wrote an AppleScript to make the process completely random and as painless as possible for me. I still have plans for making a similar WordPress plugin, but that's still in the planning stages. For now, this is working quite well and I thought I'd share it. I doubt many people have the exact same setup and requirements, but the basic structure might be helpful for other projects.…

  • Marked Bonus Pack fix and Marked 1.3 progress

    I just posted a minor update to the Marked Bonus Pack with a few bugfixes for the included Service and AppleScripts. The biggest fix is for the issue some people were having where running the Service would always open TextEdit. I was unable to replicate the problem, but I think I found a solution for it.…

  • Geeklet: Top CPU processes

    Continuing the series of geeklets I've been posting for GeekTool and NerdTool, here's my "Top CPU Processes" monitor.…

  • Totally TaskPaper

    I've been switching back and forth between The Hit List and OmniFocus for a while now. I like the simplicity of The Hit List combined with it's tagging/filtering capabilities, but the overall power and scriptability of OmniFocus keeps drawing me back. Plus, the forecast and review modes in OmniFocus for iPad are amazing. You can criticize me for fiddling if you like I mess with my systems in my free time, but always make sure they're stable before Monday morning comes...…

  • Marked Bonus Pack 1.2

    I posted an update to the Marked Bonus Pack this afternoon. It includes a few fixes for stupid mistakes on my part, plus support for Emacs, both in the included instructions and in the "Open in Marked" System Service.…

  • Introducing the Marked Bonus Pack

    There's a small bundle of scripts, commands and other oddities for Marked available from the new Marked Support Site. It will be updated and expanded over time, but it provides a few bridges that have been frequently requested.…

  • Auto-convert your inline Markdown links to references

    Update: found a little bug (well, stupid mistake) in the HTML to Clipboard command. Download version is now 1.2.1, update if you grabbed 1.2.…

  • An average morning

    I was looking at some numbers on a web page. A wide variety of fairly large numbers. The web page didn't provide any kind of average for the numbers, and I was curious. Curious, of course, meant writing a script to solve the problem. Yes, I could have copied the numbers out, punched them into a calculator one by one, or opened up Numbers and pasted them into cells... bah. I wanted to be able to copy text with all kinds of other junk in it and just get the average of all the values in contained…

  • Dropbox and seamless mutli-Mac computing?

    Joe Workman put out a utility today for sharing Application Support folders between machines using Dropbox. It uses symlinks to allow moving the folder out of ~/Library/Application Support and into your Dropbox but keeping it accessible to the application. This is a great trick, and the Joe's utility makes it dead simple to pull off. The biggest concern, however, is the possibility of corruption and other issues if you run the application on multiple machines simultaneously.…

  • OS X Service for natural language dates

    I knocked out a quick project before I got around to my first App Review, so I figured I'd go ahead and share it...…

  • oft: Bash function for opening a specific filetype

    Here's another simple Bash function that I've used so much recently I thought I should share. It's called oft`, which stands for Open File Type, and can be used as a standalone shell script or as a function in your `.bash_profile. When run, it looks in the current directory for files with extensions that match (or partially match) the first argument and opens them.…

  • A Bash function for Markdown bloggers

    I store all of my writing as separate Markdown files. A basic tagging system adds more "searchability," and I can quickly locate any file with Spotlight. Given the amount of time I spend in Terminal (well, iTerm 2 these days), I use mdfind quite a bit to do the Spotlight searching. This function just makes it a little more convenient to search for and quickly edit an existing document.…

  • Quick Tip: clean up your MultiMarkdown tables

    Quick tips are random posts regarding something I discovered on my way to something bigger. They usually get longer than "quick" would imply, for which I refuse to apologize.…

  • Quick Tip: throttling parallel batch processes in Terminal

    Quick tips are random posts regarding something I discovered on my way to something bigger. They usually get longer than "quick" would imply, for which I refuse to apologize.…

  • Duplicating Safari browsing sessions between Macs

    Hey, you're just in time for another "stupid trick of the day" script. I have good reason for this one, and it only took me about 8 minutes to set up. It will take me longer to write about it than it's probably worth, but it might be of use to anyone in a similar situation. Here's the scenario:…

  • Automated HTML5 video encoding revisited

    A little while ago I approached the subject of scripting automated encoding for HTML5 video formats. I started using the process regularly as I built the Blogsmith Bundle video site. Pretty soon I got some help from friend and TUAW editor Mike Rose, and working together we refined the script and improved the speed tremendously. It was built for use on Mac OS X, but with just a few lines modified, it should work on any *NIX system.…

  • Address Book search and Skype from the command line

    Here's a neat little command-line utility for searching your address book: aboo. It's not complex... it just takes a single word or phrase and searches your Address Book entries' names for it. It can output vcards and YAML, too. I created a fork that adds a few things, most importantly I extended search to business names and notes. It also does a better job of realizing there's no proper name and substituting the Company name in the output, if it exists. There's a compiled binary of my fork on…

  • Quick calculations in Bash

    This is probably going to seem stupid, but every time I decide to do something in Bash that should only take me a minute, I end up losing an hour. I obsess over "better" ways to do everything. Not surprisingly, my motivation often wanes before I actually find the better, more elegant way, so these little projects end up lackluster. Fortunately, I end up learning all kinds of new, mostly unrelated things in the process, which is what happened this evening. It's amazing to me that I use UNIX…

  • VoodooPad log navigation plugins

    These VoodooPad Script Plugins are the result of two opposing traits of mine: laziness and curiosity. Laziness because, well, why should I have to move my hand all the way over to my mouse to go to the previous day in my VoodooPad log? Curiosity because I have absolutely no idea what I'm doing in Lua and wanted to see if I could do something just slightly more interesting than my "Go to Today" script.…

  • Things tasks from the command line

    If you're a Things.app user (and a Terminal user), I've got a quick function for your .bash_profile that will allow you to quickly add todo items to your inbox with notes and natural-language date parsing.…

  • Answer Skype with a hotkey

    If you use Skype and happen to be as clumsy as I am, you may have run into this at some point: you see a call come in, you fumble for your headset, you go back to your mouse, find the cursor on your big screen and then try to click the "Answer" button on the call window... only to miss the call because you took too long. I solved this for myself a while back, and thought I'd share my solution.…

  • HomeControl: Local Mac control for iPhone

    I tried out a tip recently for controlling a Mac via Mobile Safari on your iPhone, and it got me thinking, which is often dangerous. I put together this little web app today as a proof of concept (that got a little out of hand). It basically provides a full interface for volume control, application starting and stopping and many iTunes functions, including volume and EQ. All features provide interface feedback and update you with current info from your Mac.…

  • Clear sticky Growl notifications with a keyboard shortcut

    I ran into a question yesterday that didn't seem to have an obvious answer: how can I clear a stack of sticky Growl notifications using only the keyboard. It's not been any secret that I'm a fan of keyboard shortcuts, as indicated by the extensive keyboard support I've added to Instapaper Beyond. So I decided to make an interim solution until a specific feature for this is added, either to the Growl preferences or via AppleScript support.…

  • Taskpaper Date Scripts

    4 quick scripts for TaskPaper users tonight, specifically for handling dates quickly. If you've used my other TaskPaper scripts, you know you can use natural language to set start and due dates, and then convert them with the Expand Dates script. These scripts allow you to assign shortcut keys to increment and decrement start and due dates.…

  • A Quick VoodooPad Script Plugin - Go To Today

    This script may not be of use to many people, but I'm finding it so handy today that I figured I'd post it in the hopes that someone who needs it finds it. It's really only useful to people who use VoodooPad to keep a journal or log with a page for each date, and all it does is jump to the current day's page. Simple, but useful.…

  • fk: redux

    Just a quick change to my post on the bash function fk` that I've been using. A small modification has greatly improved its usability: make the cancel option always be first in the menu. Just move "Cancel" before the `$(fp $1) bit. It's a little odd that I didn't do that to begin with...…