• Tech Tips

    Sorting ActiveCollab tasks

    Our company has been using ActiveCollab for years. It’s a great project management tool and has improved considerably over the years. We have managed hundreds of projects and more than 12,000 tasks using ActiveCollab. Occasionally we want a little more from the system than it offers out of the box. I’ve built an importer (shameless plug!) to make it simple to add tasks in bulk. I’ve written some automated task creation scripts. I’ve even tried my hand at writing a 3rd party integration module. Sometimes, though, you just need a simple tweak to tailor the system to your needs. That’s what this post is about.

  • Tech Tips

    GeekTool Tip – Restoring “lost” geeklets

    If you use GeekTool you may have experienced “losing” your geeklets offscreen.

    Run this simple Applescript to get them all back to a place where you can easily grab them.

     

  • Development,  Tech Tips

    Keyboard Maestro URL Handler – Link Injection

    Introduction

    This post outlines some advanced usage of the Keyboard Maestro URL handler (KMLink).

    A few weeks ago I was automating some Chrome form filling with Keyboard Maestro. It occurred to me that the perfect trigger for what I was doing would actually be a simple link within the Chrome webpage itself (or a simple bookmarklet); when the link/bookmarklet is clicked, the KM macro is executed. How about a little backstory before I get to the “here’s how to do it!” ?

    We use a project management system called ActiveCollab. It’s a great piece of web-based software, but often simple things take several steps. When I want to quickly mark a task as “Due in 2 business days” (which I need to do very often) it’d be whole lot nicer to click a link to set this, than to have to go to the edit screen, pull up the date picker, think about what two business days from today is, click that date and submit the form. Sure, I could write a module for Active Collab that would do what I want, but Keyboard Maestro provides me with much more freedom and I can build it in minutes instead of hours.

  • Tech Tips

    Customizable Date variables in Keyboard Maestro

    UPDATE: Though the solution below works well, I do recommend following the first commenter’s advice and using the ICUDateTime text tokens instead, which allow you to use any ICU date format, without having to invoke a shell script.

    Sometimes you need a date and/or time variable in your Keyboard Maestro macros. The easiest One way I’ve found to do this is via an “Execute Shell Script” action. You’ll just use the date command and format as desired.

    Keyboard Maestro "Date" Variable

  • Radio Controlled

    Castle ESC Setup and Configuration

    These processes may vary depending on your transmitter.
    PLEASE leave a comment if there’s a problem with these instructions; I’ll update ASAP.

    DISCLAIMER: This guide is meant to supplement and outline (and perhaps simplify) the official Castle documentation. Refer to that documentation if you have any questions or concerns.

    This is the procedure I use to setup my Edge 100 (Logo 500) and my ICE 120 V2 (T-Rex 700). I run both helis in governor mode with auto-rotation enabled (“bailout” feature).

    Step 1: Setup Fixed Endpoints

    1. Take blades (main and tail) off heli or disengage motor pinion
    2. Use castle link software to configure as helicopter with fixed endpoints. Enable auto rotation and flip through the other tabs too, setting what you can.
    3. Make sure throttle output from your receiver is going to ESC (e.g., RX-B on a mini vbar)
    4. Give normal throttle curve of 0 – 50 – 100 (linear)
    5. Set your travel adjust on the throttle channel to 40% for high and 40% for low
    6. Put throttle stick to highest point
    7. Plug in battery(s) to power up receiver and speed controller
    8. The speed controller will initialize but won’t arm
    9. Note: the following steps can be rather frustrating and may take several tries.
    10. Begin increasing the high travel adjust endpoint 1 point about every one to two seconds
    11. Usually right around 100 you’ll hear a few beeps. Go two clicks beyond.
    12. Drop the throttle stick to the lowest point.
    13. Wait for the tones
    14. Do the same procedure for the low travel adjust endpoint.
    15. After you’ve gone two clicks beyond, you’re done.
    16. Power off the ESC and receiver
    17. Make sure the settings are saved on your transmitter
    18. Power cycle your transmitter (just for good measure)

    Step 2: Setup Governor Mode

    1. Take blades (main and tail) off heli or disengage motor pinion
    2. Follow the steps above if you haven’t configured fixed endpoints
    3. Use castle link software to configure “Governor Mode” and “Set RPM”
    4. Configure desired headspeeds, motor parameters, etc. 1800/1900/2000 for example
    5. Note: If you intend to use “Auto-Rotation Enable” you won’t be able to use headspeed #1 (if you use the method below)
    6. Configure your “normal” throttle curve as 30% at all points (unless using Auto-Rotation Enable)
    7. Configure your “idle 1″ throttle curve as 70% at all points
    8. Configure your “idle 2″ throttle curve as 100% at all points
    9. Test! You will probably have to tinker with the various speed settings after you get the blades on and try things out.

    Step 3: Setup Auto Bailout

    Setting up auto-rotation bailout is awesome when you’re trying to learn autos. You can flip out of throttle hold and recover headspeed much faster than if you had to wait for the slow start. If your auto isn’t going to end well, simply disengage throttle hold and fly away.

    1. Take blades (main and tail) off heli or disengage motor pinion
    2. Follow the steps above if you haven’t configured fixed endpoints
    3. Enable throttle hold on your transmitter, set it to 20%
    4. Configure your “normal” throttle curve as 0% at all points. Going to “normal” mode becomes your “kill switch”.
    5. Note: After landing don’t forget to return to normal mode before releasing throttle hold; this will ensure you get a slow start.
    6. Spool up the heli by switching to idle 1
    7. Flip the throttle hold switch to enable throttle hold; the motor will continue spinning
    8. Slowly drop the throttle hold value from 20% to 19% to 18% etc.
    9. When the motor shuts off you have the correct value for throttle hold. Make sure the setting is saved.
    10. Power cycle receiver, tx, and heli
    11. Test!
  • Tech Tips

    Keyboard Maestro – It’s the Little Things

    I’ve been using Keyboard Maestro to make myself more efficient. Even the littlest things can (and should) be automated to save time.

    I spend a good portion of my day navigating directories in iTerm. Often I find myself jumping up a directory (back) and then listing the directories to get my bearings.

    In about 30 seconds I made myself a quick hotkey that will be active during iTerm sessions (it’s within my iTerm group, which is only active for the iTerm application) and will perform both operations (cd .. and ls). I mapped this to CMD-u which I think of as “up” so it’s easy to remember. Notice there is a return (linebreak) after the ls; this will simulate hitting return, which will execute the preceding commands. I could have added a return keystroke action, but this is just faster and requires less actions.

    I encourage you, if you’re a KM user, to think about the little things and figure out where you could shave off keystrokes, mouse clicks, etc. to make yourself as efficient as possible.

    km-cd-ls

  • Tech Tips

    Determining Your Most Used Commands in Terminal

    I’m always looking to automate things using Alfred, Keyboard Maestro, Text Expander, and Python. I was curious which terminal commands I use most often, so I did some experimenting. Basically I wanted to know how many times I’ve executed each unique command ( ssh myserverx or ssh myservery, not just ssh). I started by piping the output of history to  sort (to group), then to  uniq (to count), then back to sort (to sort by the number of occurrences).

    Unfortunately, the result contained the same number of lines as the original history output. I figured this was because each line had a unique integer prefix (the line number in the history output). As it turns out, ~/.bash_history (where history gets its records) doesn’t contain line numbers. I simply changed the source and it worked like a charm:
  • Tech Tips

    Keyboard Maestro – Paste into Vim (with formatting)

    Vim users frequently run   :set paste  and :set nopaste . Using paste mode makes it simple to paste text while maintaining whitespace, but some other aspects of Vim are reset in paste mode (e.g., autoindent and smartindent). I’m sure there’s a way to make it easier to flip back and forth within Vim (via .vimrc), but if you want a universal way to do this, regardless of the Vim settings that are in place, you may find the following Keyboard Maestro macro helpful.