michaelfox + productivity   72

Metadata
-- Inspired by the Daily Log script from Ian Beck
-- See http://tagamac.com/scratchpad for his script

on append_to_log(logText)
-- Init
set curDate to do shell script "date '+%Y.%m.%d'"
set prettyDate to do shell script "date '+%A, %B %d, %Y'"
set curTime to do shell script "date '+%H:%M'"
set return to ASCII character 10 -- I'm not sure it's necessary ...
-- Check to see if we've got text, ask for it if not
if logText is equal to "" then
set question to display dialog ("Logged at " & curTime & ":") default answer ""
set logText to text returned of question
end if
-- Make sure that the Applescript dialog returned text
if logText is equal to "" then
beep
return false
end if
set logText to curTime & " " & logText & return & return & "---" & return & return
set theFilePath to (path to documents folder as string) & "Dropbox:Notational Data:" & curDate & "-Rdia-Daily Log-" & curDate & ".md" as string
-- we check whether the file exists
tell application "System Events"
if not (exists file theFilePath) then
set logText to "Title: Daily Log entry for " & prettyDate & return & return & logText
-- set the utf8 flag in the file, from http://macscripter.net/viewtopic.php?id=24534
set theFileReference to open for access theFilePath with write permission
write ((ASCII character 239) & (ASCII character 187) & (ASCII character 191)) to theFileReference
else
set theFileReference to open for access theFilePath with write permission
end if
end tell
write logText to theFileReference starting at eof as «class utf8»
close access theFileReference
end append_to_log

-- LaunchBar tie-in function
on handle_string(logText)
my append_to_log(logText)
open location "x-launchbar:hide"
end handle_string

-- Run the function just in case we activated the script directly
my append_to_log("")
applescript  launchbar  log  productivity 
january 2011 by michaelfox
productivity - Programming with ADD/ADHD - Stack Overflow
There's one aspect of ADHD that appears to be being neglected here: hyperfocus. It's a common misconception that ADHD means that you can't pay attention to things. In reality, people with ADHD have trouble regulating what they pay attention to. This can play in your favor though. People with ADHD can be totally oblivious to things that would totally destroy a "normal" developer's ability to pay attention to things.

I find that it's more difficult for me to get into the "zone" than other developers, but once I'm there, it's diffuclt to get me out. I've been known to start coding and then look down at my watch and realize that I just spent hours hammering out code without ever thinking about doing anything else.

In fact, I would say that a bigger issue for me is that I tend to go for long periods of time coding and neglect to take care of basic necessities. So make sure that you take a break every once in a while, don't skip meals, and drink plenty of water! (the last two are even more important if you're taking medication)

---
The ADHD --aka ADD-- brain (specifically the prefrontal cortex portion) craves stimulation, be it through stimulant medication or through a very stimulating piece of code that you're programming -- heck even the endorphins generated by exercise can do the trick! If you find something interesting enough to concentrate on, you can hyperfocus on it for hours and hours. However, if you are forced to complete a task that is uninteresting, it can be very difficult to focus without the aid of additional stimulation.
ADD  focus  lifehack  stackoverflow  productivity  inspiration 
december 2010 by michaelfox
productivity - Programming with ADD/ADHD - Stack Overflow
I've had similar problems as you do. The two main strategies that have helped me are

Only one project at any time: I've suffered from following more projects than I can count on my fingers, each "clamouring" for attention. Now I've radically cut down on projects either by finishing them "once and for all" or by simply dropping them altogether. Earlier this year I've founded a company and now I'm down to three projects: Health, Family and Company.

Separation of concerns: When doing everything on one desk, the risk is high to "drift" from one thing to another. I've removed all procrastination stuff from my work PC and use my Laptop only for "play" and other private internet usage (mails, userfriendly, slashdot). The PC is on my desk, the Laptop in the Living Room. This keeps a healthy distance between Company and private stuff.

Of course these two things are quite general stuff. Some of the smaller, but also helpful things:

No Lurking on IRC/other chat channels. Either I need or give support/community in the project I'm working on or I'm not in that channel.
Close The Mailer. Checking mails because the project just compiles is just stupid, since waiting for a compile is just enough time to see whether or not there is mail. If there wasn't any mail, I've interrupted my flow for nothing and if there was mail, I'd either have to interrupt my flow even more to handle it or punt it anyways. So now, I'm checking my mails three times a day and have reduced my interruption count significantly.
Exercise. Often while programming I feel the urge to jump up and run around in my room. Especially when sitting before the tougher design decisions. Going biking every other day has significantly improved my ability to concentrate on stuff as well as the added benefit of improving overall stamina and well being.
Spent Time Bookkeeping. I've got a simple spreadsheet where I enter my Company time and some private stuff. I keep it to 15 minute chunks, which makes data entry much easier and any smaller units just cause more overhead. If I'm not doing something I can "bill" on the Company and it's between 8:00 and 18:00 I know I'm doing something wrong.
Also, at the end of the week I get a nice report how I spent my time. One big caveat here though. When I started this after finishing university it was a hard blow for me how little time I was spending "productively." It took me quite a while to recognize, that I need to record everything I don't do for Family. Specifically:
I need to record times spent exercising as productive. See above.
I need to record times lost due to external factors: I'm travelling a lot lately and when I've only recorded 25 hours of work in a week, I suck. But if I add the two days I spent on the road that week, I see that I did more than 40 hours. Suddenly "I suck" changes into "the external-factors-that-cause-my-travels suck," which is a much healthier thing to say.
Eat and Sleep Regularly. Stand up at 07:00, Breakfast, Lunch at 12:00, Dinner at 18:00, Sleep from between 22:00 and 23:00.
Appreciate the Small Successes. Even if I'm not yet there, today is better than yesterday and tomorrow will be better than today.
Adjust you Environment. That's quite a broad topic. As a home worker, I got myself a nice new desk and chair which I now use exclusively for work.
Also I really like listening to music, but vocals -- especially in my mother tongue -- distract me incredibly. I've tried instrumental music, which worked for a while until the trance beats got to my nerves. Now I'm going for the complete silence. It might be different for you, but there's only one way to find out for real: experiment and watch yourself while working.
Become Accountable. Get a Conscience. I founded my Company together with an old friend, whom I deeply respect. By his presence and by knowing that our success is now is interlocked, I feel compelled to give my best.

And finally Constant Vigilance! Distractions tend to creep up from every nook and cranny of your life (stackoverflow anybody? ;). Keeping them at bay and managing them will stay a constant struggle. Having said this, I have to close my stackoverflow tabs and get back to programming!
ADD  focus  lifehack  stackoverflow  productivity  inspiration 
december 2010 by michaelfox
OnMyCommand
OnMyCommand is a UNIX shell script and AppleScript executor. You can build your own Contextual Menu Item or GUI application.
For more information on building command descriptions see Command Description Manual.
Sources are included with Contextual Menu Workshop. Newest sources are available on request.
applescript  mac  osx  software  unix  bash  shell  context  menu  tools  plugins  development  environment  programming  productivity  hacks 
november 2010 by michaelfox
Vimperator — Vimperator Labs
Vimperator is a Firefox browser extension with strong inspiration from the Vim text editor, with a mind towards faster and more efficient browsing. It has similar key bindings and you could call it a modal web browser, as key bindings differ according to which mode you are in. For example, it has a special Hint mode, where you can follow links easily with the keyboard only. Also most functionality is available as commands, typing :back will go back within the current page history, just like hitting the back button in the toolbar.

But Vimperator is more than just a simple command interface to Firefox — it is a complete development environment as well. If you are a web developer, you can enjoy an interactive JavaScript shell — even with completion support. Or if you want to extend Vimperator, you can easily do that by just dropping a JavaScript file in its plugin directory. Browse through our wiki pages for nice tips to customize Vimperator and for frequently asked questions. If you have more questions, you can visit us on IRC, in #vimperator on freenode.
browser  development  firefox  gui  vim  extension  opensource  addons  lifehacks  utility  plugin  vimperator  keyboard  javascript  mozilla  interface  shortcuts  efficiency  productivity  tools  resources  reference 
november 2010 by michaelfox
Set Your Mouse Free - GIANT ROBOTS SMASHING INTO OTHER GIANT ROBOTS
Seeing that I refuse to be tied down by the shackles of corded peripherals, I use an Apple Wireless Keyboard and Magic Mouse. Unfortunately we had an issue with our rechargeable batteries this week and I was left without a functioning mouse. Rather than go buy more batteries I decided to try to get by with just my keyboard, which worked out surprisingly well.
keyboard  shortcuts  productivity  reference  tools  resources  vim  firefox  apps 
november 2010 by michaelfox
Cocoa Text System
Apple’s Cocoa text system is a complicated beast, but also extremely flexible, and with a bit of work, it can be molded to match many working styles. This how-to covers the 2 major ways of customizing the text input system: Default key bindings, and for still more control, input managers.

I’m writing this guide because nothing like it currently exists. There is incredible room for flexibility in customizing the Cocoa text environment, but most users—even power-users—have no idea of the available options. This is mostly because Apple’s documentation is 1) aimed at developers, and 2) often incomplete or ambiguous. Most users have no idea that they can look at a file which describes all of the shortcuts on the system, and that they can easily add their own shortcuts, or replace existing ones with differing functionality.

For instance, one of the most common complaints from new Windows and Linux/Unix switchers is that many of the shortcuts they are used to, such as using the Home and End keys to move to the beginning, respectively end, of a line or document, don’t work as they expect in OS X.

For new users, almost every text box you use is a Cocoa text box (or close enough to act the same as far as we’re concerned) — Safari web form boxes, the text field in iChat for sending new messages, the documents in Pages or TextEdit, the email composer in Mail, etc. Note: Some text boxes are not Cocoa however, so the tricks in this article still aren’t completely universal. Notably, Microsoft Word, Adobe applications, AppleWorks, and the text fields in Camino and Firefox won’t work with this hint.

I expect that all users of OS X can get something out of this guide. I’m starting with the basics, so that new users, unfamiliar with the terminal and the intricacies of OS X can be brought up to speed. But even the most experienced users should hopefully learn something from this article; I know I learned several new nifty things while writing it.

Disclaimer: it is possible, when mucking around with the text system, to send applications messages they aren’t expecting. This can cause them to crash. As long as you stick to standard text selectors, you should be fine, but I’m not responsible if your program crashes because of a binding you add.
bindings  cocoa  keybindings  keyboard  text  osx  mac  programming  development  textmate  input  editing  system  hack  productivity  editor  howto  tutorial  reference   
october 2010 by michaelfox
Programmer Productivity: Measuring Results » Debuggable Ltd
This is post #2 of my programmer productivity series.

Before I embark on trying out various productivity strategies, I need to establish a set of metrics that will help me understand what works, and what doesn't.

For now I decided to keep track of two things:

1. My time, using a daily journal where I enter every task I am working on, and the time spent on it.
2. My commits, as well as the lines of code I add / delete throughout my day

If you want to follow along, I am using a simple notebook for my time tracking. I write one task per row, using the following format:

* 09:23 - 09:26 Coffee & Planning today's tasks (3m)
* 09:26 - 10:30 Work on setting up new server (1h 3m)

By writing out the time I start and end my tasks, it's pretty hard to miss an item.
git  productivity  tracking  time  efficient  programming  developer  development 
september 2010 by michaelfox
TextMate shortcuts you should be using « require ‘brain’
This is my list of TextMate‘s keyboard shortcuts that are very useful for Ruby and Rails developers, but are not used as widely as they should (according to my very scientific observation on a very representative sample, i.e. my colleagues). I skipped all the obvious ones (like “open file”, “save file”, “go to next window”, “close window” etc.) that most people use anyway. My list includes shortcuts that are very useful but sometimes might be hard to grasp at first or might require a little explanation.
textmate  shortcuts  keyboard  tips  productivity 
may 2010 by michaelfox
Gojko Adzic » When windows are not enough
It’s not uncommon for “star” programmers to be an order of magnitude more productive than their colleagues. I believe that a large part of that productivity gap comes not from doing tasks faster, but from not doing them at all. Good programmers make the machine sweat instead.
bestpractices  work  productivity  efficient 
april 2010 by michaelfox
Inventive: iClip - a simply useful multiple clipboard/scrapbook for Mac OS X
iClip is a new multiple clipboard/scrapbook software application for Apple Macintosh computers with OS X.
apple  productivity  storage  organization  software  osx 
december 2005 by michaelfox

related tags

*todo  ADD  addons  addressbook  apache  app  apple  applescript  apps  article  automation  automator  bash  bestpractices  bindings  bookmarking  browser  browsing  calendar  cellphone  checklist  chrome  cli  cnet  cocoa  coding  communication  context  customization  dashboard  data  date  DefaultKeyBindings.dict  delicious  design  desktop  desktopmanager  developer  development  diff  dotfiles  dotmac  drive  editing  editor  education  efficiency  efficient  email  environment  explorer  extension  filemanager  filesystem  filing  finder  firefox  focus  free  git  gmail  google  greasemonkey  gtd  gui  hack  hacks  hazel  hotkeys  howto  hyperfocus  ical  input  inspiration  instapaper  interface  javascript  keybindings  keyboard  launchbar  learning  lifehack  lifehacker  lifehacks  linux  list  log  logbook  mac  macosx  management  menu  merge  metadata  mindmapping  mobileme  mood  mouse  mozilla  notes  notetaking  ocr  office  online  openmeta  opensource  organization  osx  paperless  pdf  php  plugin  plugins  productivity  programming  quantifiedself  quicksilver  reading  reference  reminders  resources  saas  scanner  scripting  scripts  services  setup  shell  shortcut  shortcuts  software  speedreading  ssh  stackoverflow  storage  svn  system  tag  tagging  tags  tags.app  text  textmate  textreplacement  time  timetracking  tips  tools  tracking  tutorial  tweak  ultimatebuild  unix  usability  utilities  utility  utils  vim  vimperator  web  webapp  webdav  webservice  wiki  window  work  writing   

Copy this bookmark:



description:


tags: