Browsers and Plug-ins

Chrome 13

  • Lastpass
  • FreshStart
  • XMarks
  • Bookmarks Search, Bookmarks Atomic Bookmarks
  • Instachrome
  • SingleFile (and its helper)
  • Ghostery
  • Adblock
  • Trash Can
  • Expand
  • FlashBlock
  • Invisible Hand, PriceBlink
  • Tab to the Next
  • Tynt Blocker
  • Vanilla Cookie Manager

Add a Volume to Spotlight

I created an encrypted, sparse disk image. I mounted it on a folder. Spotlight wasn’t finding files in that folder. In particular, they weren’t showing up in the “All my files” predefined search.

Solution:

sudo mdutil -i on /path/to/mountpoint
... Took me forever to find this. Sadly, it adds the volume to Spotlight, but not to the "All my files" predefined search.

BTW - Spotlight does the right thing with data from the encrypted disk -- it stores it on the encrypted disk. i.e. you get a .Spotlight-V100 created in your root folder for your boot volume, and you get a separate .Spotlight-V100 created in the root of your encrypted volume. The encrypted volume's metadata is kept solely in the encrypted .Spotlight-V100

How to Be Happy Anytime

I don’t typically quote entire postings from other people, but for some reason, today, this post strikes me as worth ensuring that I have it in its entirety for the forseeable future. (From http://zenhabits.net/happy/ )

			<h6>Post written by <a href="http://leobabauta.com">Leo Babauta</a>.</h6> 

My friend Barron recently asked, “If you could be anywhere right now, doing anything you want, where would you be? And what would you be doing?”

And my answer was, “I’m always where I want to be, doing what I want to be doing.”

I’ve notice that in the past, like many people, I was always wishing I was doing something different, thinking about what I would do in the future, making plans for my life to come, reading (with jealousy) about cool things other people were doing.

It’s a fool’s game.

Many of us do this, but if you get into the mindset of thinking about what you *could* be doing, you’ll never be happy doing what you actually *are* doing. You’ll compare what you’re doing with what other people (on Facebook and Twitter, perhaps?) are doing. You’ll wish your life were better. You’ll never be satisfied, because there’s *always* something better to do.

Instead, I’ve adopted the mindset that whatever I’m doing right now is perfect. If I’m writing a post, that’s amazing. If I’m reading blog posts on the Internet, that’s interesting. If I’m doing nothing but hanging out with my family, that’s incredible. If I’m walking outside, enjoying the fresh air, that’s beautiful.

There’s nothing I’m ever doing that isn’t the most incredible thing on Earth. If I’m doing something sucky (I can’t remember doing that recently), maybe that’s an invaluable life lesson. If I’m with someone boring or obnoxious, it’s a lesson in patience, or empathy, or in learning to understand people better.

The Now Mindset, In Practice

Let’s say you’re washing the dishes. Wouldn’t you rather be having a delicious meal instead, or talking with your best friend? Sure, those things are great, but they’re only better if you believe they’re better, and more importantly, the comparison is totally unnecessary. Why should you compare what you’re doing now (washing dishes) with anything else? Wouldn’t almost anything lose out if you compare it to something you like more? Will you ever be happy with what you’re doing if you always compare it with something you like more?

Washing dishes can be as great as anything else, if you decide to see it that way. You’re in solitude, which is a beautiful thing. If you do it mindfully, washing dishes can be pleasant as you feel the suds and water in your hands, pay attention to the dish and its texture, notice your breathing and thoughts. It’s meditation, it’s quiet, it’s lovely.

You can say the same of anything. Driving to work? Enjoy the solitude, the chance to be alone with your thoughts, or to listen to music you love, to see the world around you. In a meeting with co-workers? Pay attention to how people talk and interact, learn about the human mind, see yourself in everyone around you, learn to love anyone no matter who they are, practice giving up expectations of who people should be or what this meeting should be like.

I’m always happy with what I’m doing, because I don’t compare it to anything else, and instead pay close attention to the activity itself. I’m always happy with whoever I’m with, because I learn to see the perfection in every person. I’m always happy with where I am, because there’s no place on Earth that’s not a miracle.

Life will suck if you are always wishing you’re doing something else. Life will rock if you realize you’re already doing the best thing ever.


Why I'm Not Switching From Remember the Milk to "The Deadline"

I’ve been using Remember the Milk for awhile. I noticed The Deadline, and gave it a try.

I’m not what you’d call a hard-core Milk user, though I do have a paid subscription, in order to synchronize my iPhone with the web site frequently. I have a few Getting Things Done (GTD) contexts, and a large Someday/Maybe list.

Deadline looked interesting, because of their claims about AI and their ‘virtual assistant.’ I’d also seen some talks by their head techie, and he seemed like a pretty smart guy. What really interested me was that the app is an example of an HTML5, fully offline-enabled web site. I wanted to see just how good an offline experience was available.

(Side note: I ran across The Deadline because they use Clojure and Closure, and I’ve been learning a little Clojure and Closure.)

I wanted to like Deadline, but here’s why I went back to RTM:<ol>

  • No ability to filter on tasks NOT tagged with a tag. (e.g. Show me all my tasks that are NOT tagged with "someday.")
  • Waiting while the app downloads an updated version of itself
  • </ol>

    Each of those is a pretty big deal for me.

    I use not-tagged-with a lot.

    The issue with downloading updated pages is more subtle. Sometimes I use my phone where the signal is pretty weak. The app picks up on the need to update quickly enough, but re-downloading updated pages/libraries can take some time. When the “Oh, I need to capture this task” moment hits, the whole point of capturing it is to get it off my mind quickly. That doesn’t work if I have to wait.

    The wait isn’t ALWAYS a problem for me. The big difference between a real smartphone app, and an offline-enabled HTML5 site, is that I get to choose when to update the app, but the site decides when I have to wait for updated HTML/JavaScript.

    For some applications, that’s not such a big deal, but for a to-do list, it’s a problem.

    Why I'm Considering a Switch from Remember the Milk to Evernote

    I’d like to reduce the number of applications I use, because I spend way too much time messing with them. My theory is that fewer applications would mean less futzing (but I might just fuss with the ones I retain more).

    I’m using Remember the Milk for to-do lists, and Evernote as a general notebook.

    For starters, let me say what I like about both of them. They both represent what I consider to be the future of applications, in that they give me access to my data on my Mac, my Windows PC, and my smart phone; they give me access online and offline; they keep the data synchronized on all of my devices without making me think about it. I can get to my data wherever I am via my smart phone, and when I need a bigger window to my data, I can use the computer I’m sitting at.

    This is “table stakes” going forward. If you’re building almost any application, you’d better be building it this way in order to compete.

    Task management and a general Notebook aren’t the same thing, but they aren’t as distinct as one might wish. I often find myself accumulating notes on a task, and people have been using (physical) notebooks to manage to-do lists since forever.

    Milk has some task management capabilities that are nice:<ul>

  • Filtering
  • Sorting
  • Prioritizing
  • Check-boxes to mark tasks complete
  • Notes, separate from the task. (Both a good thing and a bad thing.)
  • Email/twitter reminders when a task due date arrives.
  • </ul>

    Evernote doesn’t have these. (Evernote does have check-boxes, but they’re best thought of as stand-alone graphical check-box elements, and not as part of a to-do.) But… filtering/sorting/prioritizing are:

    1. Something I ought to be doing the night before, as part of planning the next day.
    2. Entirely do-able with pencil and paper, albeit tediously.
    3. Do-able manually in Evernote, with less tedium than paper.

    Where the manual process might break-down is if I need to re-sort/re-filter/re-prioritize quickly during the day. I’m not doing that effectively in Milk anyhow.

    Reminders will just have to go into my calendar.

    It used to be the case that Evernote didn’t have a way to keep the task-note separate from the task-title, but the new (with release 4.3) note-link feature provides that. I can have a notebook with my tasks, and a separate notebook with task-notes, and link to them (again manually) from the task.

    We’ll see how it goes…


    Here are some of my ‘learnings,’ (updated as I learn them):

    1. Keep notes in PLAIN TEXT, so I can edit them from the iPhone app.

    Aquamacs With No Resize Handle

    I’m running Aquamacs on my Macbook. One day I started it and it had no resize handle in the lower-right corner. There was no way to resize the window. Maybe using “(set-frame-size (selected-frame) )" in Emacs would have done it.

    It turns out that the “emacs starter kit” killed it.

    The solution is easy. Do NOT disable the menu-bar. I commented out the following line

    ;;(if (fboundp 'menu-bar-mode) (menu-bar-mode -1)) 
    

    Do NOT disable menu-bar-mode under OS X, because it takes the resize handle with it.

    Transition to New Manager

    Once upon a time there was a high-performing team. The manager of this team had ‘come up through the ranks,’ and was recognized for his skills. When the time was right, he decided to move into a new role.

    Since he was a good manager, he had a succession plan – to promote his replacement from within his team.

    The manager called in his replacement, and explained the upcoming transition. The soon-to-be manager expressed concern that he might not be up to the task of replacing his boss.

    The experienced manager said, “Don’t worry. I’m confident in your skills, and I have prepared three envelopes. Keep them in your desk, and pull one out in the event of a crisis you don’t know how to handle.”

    As time went by, the new manager assumed his role and was generally successful. Eventually, there was a crisis he didn’t know how to handle, so he opened the first envelope. The contents said, “Blame your predecessor.” So he blamed his predecessor, and somehow the team muddled through.

    More time passed, and eventually a second crisis arose. The somewhat-experienced manager opened the second of the envelopes. The content read, “Reorganize.” So he reorganized, and somehow the team muddled through the crisis.

    Still more time passed, and a third crisis arose. The now-wizened manager opened the third envelope. The contents read, “Prepare three envelopes…”

    SOLVED: Running CrashPlan On a TonidoPlug

    Update: This got me part-way there, but I never really got it 100% of the way to success. I’m leaving it here in the hopes that someone can get it the rest of the way to the finish line.

    I wanted to set up a TonidoPlug as a NAS, using CrashPlan to back-up my files. It wasn’t a cake-walk, but it appears to work.

    1. Download ARMv5 Linux - Headless EABI, soft float, little endian Java from http://www.oracle.com/technetwork/java/javase/downloads/embedded-jsp-135769.html. (You'll have to do this from a complete computer -- not your plug computer.)
    2. Push the downloaded Java to /tmp/java-jre.tgz on your plug.
    3. tar zxvf /tmp/java-jre.tgz
    4. mv ejre1.6.0_21 /usr/java6-kpk
    5. Edit /etc/environment, and add /usr/java6-kpk to the start of PATH
    6. Logout/login, and check to ensure you got the PATH right, before you install CrashPlan.
    7. Download CrashPlan for Linux from http://www.crashplan.com/consumer/download.html?os=Linux (You'll have to do this from a complete computer.)
    8. Push the downloaded crashplan to /tmp/crashp.tgz on your plug.
    9. tar zxvf crashp.tgz
    10. cd CrashPlan-install
    11. ./install.sh [Note: I took all the defaults except I told it to put backups in /usr/local/crashplan-backups]
    12. Visit http://www.pchilton.co.uk/2011/01/29/crashplan-online-backup-on-qnap-ts-210-nas/
    13. Scroll down until you see "I have now attached my compiled version of the jtux library: libjtux.so"
    14. Download libjtux, push it to your plug as /tmp/libjtux.so.gz.
    15. On the plug, cd /usr/local/crashplan
    16. mv libjtux.so original-libjtux.so
    17. mv /tmp/libjtux.so /usr/local/crashplan/
    18. Reboot your plug.
    19. apt-get -d install libjna-java
      • If you don't do the libjna-java, CrashPlan will start, but it will forever say "Waiting for backup" and pressing the "Backup now" button won't do anything.
      • Making this fit on the TP's flash drive can be a challenge. If you start running low on space (use "df -k" in another ssh session), you can "rm /usr/share/fonts/truetype/*" to recover font space. You don't need fonts on a headless server.
      • It might not complete the install. Once /usr/share/java/jna.jar shows up, you can interrupt the install. Oops! You're gonna need libjnidispatch.so too.
      • Copy /usr/share/jva/jna.jar to a safe location.
      • apt-get remove acl ca-certificates-java consolekit dbus dbus-x11 default-jre default-jre-headless defoma fontconfig fontconfig-config gstreamer0.10-pulseaudio hal hal-info hdparm icedtea-6-jre-cacao java-common libaccess-bridge-java libasound2 libasound2-plugins libavahi-client3 libavahi-common-data libavahi-common3 libbluetooth3 libcap2 libck-connector0 libdbus-1-3 libdbus-glib-1-2 libffi5 libflac8 libfontconfig1 libfontenc1 libfreetype6 libgif4 libgstreamer-plugins-base0.10-0 libgstreamer0.10-0 libhal-storage1 libhal1 libice6 libjna-java liblcms1 libltdl7 libpam-ck-connector libpci3 libpciaccess0 libpolkit-dbus2 libpolkit-grant2 libpolkit2 libpulse-browse0 libpulse0 libpulsecore9 libsamplerate0 libsm6 libsndfile1 libspeexdsp1 libx11-6 libx11-data libxau6 libxcb1 libxdmcp6 libxext6 libxfont1 libxi6 libxrender1 libxtst6 openjdk-6-jre openjdk-6-jre-headless openjdk-6-jre-lib pciutils pm-utils policykit powermgmt-base pulseaudio pulseaudio-esound-compat pulseaudio-module-hal pulseaudio-module-x11 pulseaudio-utils radeontool rhino smartdimmer ttf-baekmuk ttf-bengali-fonts ttf-dejavu ttf-dejavu-core ttf-dejavu-extra ttf-indic-fonts-core ttf-kannada-fonts ttf-kochi-gothic ttf-oriya-fonts ttf-sazanami-mincho ttf-telugu-fonts ttf-wqy-zenhei tzdata-java usbutils x-ttcidfont-conf x11-common xfonts-encodings xfonts-utils
      • Note to self: Is there a flavor of "apt-get install" that DOES NOT bring in all the dependencies? </ul>
      • Login to your plug, and run "/etc/init.d/crashplan status". It should report that CrashPlan is running.
      • Wait 60 more seconds, and check status again. (If you got the libjtux wrong, it can take 30-50 seconds to die.)
      • echo 1048576 > /proc/sys/fs/inotify/max_user_watches
        • This temporarily cures the "Your Linux system is currently configured to watch 8192 files in real time" message. </ul>
        • Add "fs.inotify.max_user_watches=1048576" to /etc/sysctl.conf in order to permanently cure the message.
        • See http://support.crashplan.com/doku.php/how_to/configure_a_headless_client for how to manage your 'headless' CrashPlan. </ol> This ought to work on any of the Marvel-based ARM/ARM5 "plug computers," including GuruPlug, ShivaPlug, TonidoPlug, PogoPlug, etc.
          Credits:
          • mikestaszel on http://plugapps.com/forum/viewtopic.php?f=9&t=369 for the JRE pointer.
          • http://www.pchilton.co.uk/2011/01/29/crashplan-online-backup-on-qnap-ts-210-nas/ for the libjtux.so
          • http://support.crashplan.com/doku.php/client/troubleshooting/real-time </ul>

    Creating a Launcher/Shortcut on a Linux Host to Launch an Application in a Windows Guest In Unity Mode

    This is easy, but obscure.  You want to run:

    • vmware-unity-helper -r path-to-vmx-file  path-to-exe-file

    path-to-vmx-file is the full path name in the host file system of your VMX file for the VM you want to use.

    path-to-exe-file is the full path name in the guest file system of the executable file you want to run. This can be given in ordinary Windows file name format, or in file:// URI format.  (I didn't have much luck with URIs containing spaces, regardless of how I encoded the spaces.)

     

    Some examples:

    1. Run notepad.exe in the VM whose VMX file is /home/me/VMs/vm1/vm1.vmx:
      • vmware-unity-helper -r /home/me/VMs/vm1/vm1.vmx 'C:\\windows\\notepad.exe'
      • vmware-unity-helper -r /home/me/VMs/vm1/vm1.vmx 'file:///c:/WindOWs/NoTePad.exe'
    2. Run itunes.exe in the VM whose VMX file is in /home/me/VMs/vm2/vm2.vmx:
      • /usr/bin/vmware-unity-helper -r /home/me/VMs/vm2/vm2.vmx 'file:///c:/progra~1/itunes/itunes.exe'
      • vmware-unity-helper -r /home/VMs/vm2/vm2.vmx 'C:\\Program Files\\iTunes\\itunes.exe'

    Don't forget to double your backslashes in Windows paths.

    Windows paths are not case-sensitive.

    Try out the command in a Terminal session, before you commit it to a Launcher.