Yet in a city where some of the most prominent buildings have sat vacant for decades and booting a scandal-plagued mayor out of office took eight months, raising $50,000 to produce and install a 7-foot-tall iron replica of the crime-fighting cyborg was accomplished in a mere six days.
Tag: announcements
August 2020 release of "Learning Hammerspoon" is out!
Nuevo libro "Utilerías de Unix"
New release of "Learning Hammerspoon" is out!
First release of "Learning Hammerspoon"
CFEngine talks at PICC'12 conference
Learning CFEngine 3 has been released
I am ecstatic to announce that the book is now officially released!
I am so happy :-)
CFEngine posts moving to cf-learn.info
New website for "Learning CFEngine 3"
I'm happy to announce that the website for my book is now live at http://cf-learn.info/.
In this website you will find:- General information about the book.
- A discussion forum for any type of questions, feedback or suggestions about the book.
- Downloadable code examples from the book, plus (over time) many other new examples.
- List of Errata, and access to the Errata system at O'Reilly
- A blog devoted to the book and to CFEngine.
The site is fairly empty at the moment (the blog, the forum and the errata page are live, I encourage you to participate, particularly if you have purchased the Early Release version of the book and want to provide any sort of feedback), but content will grow over time.
"Introduction to CFEngine 3 Nova" webinar
New job, new book
Tag: annoyances
Making cygwin, Windows and emacs understand the same symlinks
Today I ran into the problem that symlinks created under cygwin using "ln -s" are not understood by Windows, and of course Windows shortcuts are seen by cygwin as regular files. Happily, this is a (semi-)solved problem. For reference, this is what needs to be done:
- Add "winsymlinks" to your CYGWIN environment variable. For example, in my .bashrc I have the following: export CYGWIN="nodosfilewarning winsymlinks"
This makes cygwin create symlinks differently, in a form that is understood both by it and by Windows.
This is the main step, and the only one if you just need access from the shell and from the Windows explorer. However, emacs still sees those symlinks as regular .lnk files. To fix this, follow the next step.
Tag: apple
The First Apple Homepage
via http://kfury.com/the-first-apple-homepage
My thoughts about the Lion upgrade process
I just finished upgrading our Mac (my wife and I share it) to Lion. It looks very nice. This has been the OS X upgrade to which I have given less thought: purchase, download, backup, install, done.
Tag: applescript
Fixing the Outlook-to-OmniFocus Script
Here’s how to fix the breakage caused by one of the recent updates to Microsoft Outlook in the Outlook-to-OmniFocus AppleScript included with my SendToOmniFocus spoon.
Find all single-note tags in Evernote
Airmail tip: prevent "Save to Evernote" action from opening the created note
- Quit Airmail (don’t know if this is necessary, but it can’t hurt)
- Open the Terminal app
- Run the following command in the terminal (all in a single line):
sudo /Applications/Utilities/AppleScript\ Editor.app/Contents/MacOS/AppleScript\ Editor /Applications/Airmail.app/Contents/Resources/Evernote.applescript
This will ask you for your password and then run the AppleScript Editor.
Note: in my experience, the AppleScript Editor app may open behind the terminal window - look at the Dock for its icon, and bring it to the front. - In the AppleScript Editor window, find this line:
open note window with the note
and comment it out by inserting a # at the beginning, like this:
# open note window with the note - Save the modified file and quit AppleScript Editor.
- Restart Airmail.
Tag: apps
All the apps on my iPhone
I’m doing some cleanup and reorganization, and captured my current app setup as a reference point. Here they are.
Quick note: The first screen is my most-used apps (some are going out now, like 2Do which I've never liked too much, but was the best way to sync tasks with Outlook, which I'm no longer forced using). Second screen is all my folders. Third and fourth screens are my girls' screens, with the games they use when they borrow my phone. The games I play are mostly in the first "Games" folder.
Tag: audible
Reading on multiple media
A couple of days ago I finished reading Steve Jobs by Walter Isaacson. I thoroughly enjoyed it (I may post a longer review later on, but I really liked learning the "behind the scenes" of much of what I witnessed from the outside over so many years).
With this book, for the first time, I decided to conduct an experiment. I got the book as an audiobook (from Audible, playing on my iPhone), as an ebook (using Kindle on my iPhone) and also the hardcover physical book. This allowed me to read the hardcover book when at home, to read the ebook whenever I was around and had some quiet time, or to listen to the audiobook when I was moving around (walking, driving, working out, etc.).Tag: audioconference
Single-tap conference dialing in iOS 4.3
Apple released iOS 4.3 a few days ago, and if you follow this topic at all, you have probably already heard all about the Personal Hotspot feature, AirPlay enhancements, and whatnot. But buried in the notes for this release was a new feature that caught my attention:
Single tap conference call dialing with a pause to send a passcode
I have found almost no mentions of this new feature online (most reviews focus on the "bigger" features), so I thought I'd explore it a little bit.
Tag: autocompletion
Google Scribe-generated prose (aka "Google Scribe channels Kanye West")
Google has launched a new labs project called Google Scribe, which essentially provides an auto-completion service. You type, it autocompletes. The following text was generated by typing a single space, and from then on simply accepting the default suggestions (pressing "Enter" every time the suggestion popup appeared). I had to stop at some point, but it seems like a good source of mindless entertainment. Also, the result varies depending on the initial seed word you provide, and also on whether you just accept blindly (Enter) or type spaces at certain places. These results also provide some insight into the training texts that were used ("I'ma let you finish...")
Tag: autohotkey
Setting up a global hotkey to add tasks to Outlook
One thing I missed since I moved from a Mac (using The Hit List for GTD) to Outlook (using Jello Dashboard for GTD) was the availability of a global hot key that I could use to bring up a text entry box which I could use to quickly add things into my electronic Inbox, for later processing.
I have found a way to achieve this, and here is the setup I am using now:
GTD Tip: one-key opening of INBOX notebook in OneNote
- Download and install AutoHotKey, if you don't have it already (it's a really useful free application, well worth exploring).
- Add the following line to your default AutoHotKey.ahk file (normally in ~/Documents/AutoHotKey.ahk):This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
; AutoHotKey configuration to open my Inbox in OneNote. ; To use this, change the file path to the path of the GTD notebook ; you want to use. You may also want to change the key to which it ; is assigned (I use Win-i). #i::Run c:\Users\zambonid\Documents\OneNote Notebooks\GTD\INBOX.one
Tag: automation
Automating Leanpub book publishing with Hammerspoon and CircleCI
I am the author of two books: Learning CFEngine and Learning Hammerspoon, both self-published using Leanpub. The source of my books is kept in GitHub repositories. In this post I will show you how I use the Leanpub API together with Hammerspoon and CircleCI as part of my workflow, to automate and monitor the building, previewing and publishing of my books.

Leanpub basics
First, some basic concepts about the Leanpub API. See the documentation for the full details, I’m only mentioning clear some things you need to know to understand the rest of this post.
Tag: automator
Fast translation with Google Translator
via https://medium.com/@mrdoro/fast-translation-with-google-translator-and-mac-osx-817e32233b7a
Tag: bcfg2
The State of Open Source System Automation
The days of DIY system administration are rapidly coming to a close. Why? Because the open source tools available are just too good not to use. Presenting Bcfg2, Cfengine, Chef and Puppet.
Nice overview of the Usenix 2010 Configuration Management Summit, including descriptions and comparisons of the four major open-source CM systems.
Tag: beautifulemacs
Beautifying Org Mode in Emacs
Tag: bigdata
The log: The lifeblood of your data pipeline - O'Reilly Radar
via http://radar.oreilly.com/2015/04/the-log-the-lifeblood-of-your-data-pipeline.html
Tag: blogging
My blogging setup with Emacs, Org mode, ox-hugo, Hugo, GitLab and Netlify
Hosting a Ghost Blog in GitHub - the easier way
CFEngine posts moving to cf-learn.info
Tag: books
New release of Publishing with Emacs, Org-mode and Leanpub
August 2020 release of "Learning Hammerspoon" is out!
New book: Publishing with Emacs, Org-mode and Leanpub
New book: Literate Config
Nuevo libro "Utilerías de Unix"
New release of "Learning Hammerspoon" is out!
First release of "Learning Hammerspoon"
Limited Time Promotion! 50% off "Learning CFEngine 3"
For one week only, until September 20th, 2017, you can buy the new ebook release of “Learning CFEngine 3” on Amazon at 50% off its list price, US$4.98 instead of the regular US$9.99.
New Release of "Learning CFEngine 3"
A new release of my book “Learning CFEngine 3” is now available!
Learning CFEngine 3 has been released
I am ecstatic to announce that the book is now officially released!
I am so happy :-)
Reading on multiple media
A couple of days ago I finished reading Steve Jobs by Walter Isaacson. I thoroughly enjoyed it (I may post a longer review later on, but I really liked learning the "behind the scenes" of much of what I witnessed from the outside over so many years).
With this book, for the first time, I decided to conduct an experiment. I got the book as an audiobook (from Audible, playing on my iPhone), as an ebook (using Kindle on my iPhone) and also the hardcover physical book. This allowed me to read the hardcover book when at home, to read the ebook whenever I was around and had some quiet time, or to listen to the audiobook when I was moving around (walking, driving, working out, etc.).New website for "Learning CFEngine 3"
I'm happy to announce that the website for my book is now live at http://cf-learn.info/.
In this website you will find:- General information about the book.
- A discussion forum for any type of questions, feedback or suggestions about the book.
- Downloadable code examples from the book, plus (over time) many other new examples.
- List of Errata, and access to the Errata system at O'Reilly
- A blog devoted to the book and to CFEngine.
The site is fairly empty at the moment (the blog, the forum and the errata page are live, I encourage you to participate, particularly if you have purchased the Early Release version of the book and want to provide any sort of feedback), but content will grow over time.
"Learning CFEngine 3" Early Release now available -use AUTHD to get 40-50% off
My upcoming book "Learning CFEngine 3" is now available as an Early Release, which includes (for now) the first four chapters of the book. You can use the code AUTHD to get 40% off the print book, or 50% off the ebook version.
Go get yours! And of course, I'd be happy to receive any feedback you have.
New job, new book
Tag: career
New job, new book
Tag: cfengine
Limited Time Promotion! 50% off "Learning CFEngine 3"
For one week only, until September 20th, 2017, you can buy the new ebook release of “Learning CFEngine 3” on Amazon at 50% off its list price, US$4.98 instead of the regular US$9.99.
New Release of "Learning CFEngine 3"
A new release of my book “Learning CFEngine 3” is now available!
CFEngine talks at PICC'12 conference
Learning CFEngine 3 has been released
I am ecstatic to announce that the book is now officially released!
I am so happy :-)
CFEngine posts moving to cf-learn.info
cf-cmd: A command-line tool for running CFEngine snippets
After building the typical "test bundle" scaffolding in an editor for the hundredth time, I decided to do something about it. The result is the cf-cmd command.
A little useful script I wrote for making it easier to test CFEngine code snippets. Follow the link to see the full details.
New website for "Learning CFEngine 3"
I'm happy to announce that the website for my book is now live at http://cf-learn.info/.
In this website you will find:- General information about the book.
- A discussion forum for any type of questions, feedback or suggestions about the book.
- Downloadable code examples from the book, plus (over time) many other new examples.
- List of Errata, and access to the Errata system at O'Reilly
- A blog devoted to the book and to CFEngine.
The site is fairly empty at the moment (the blog, the forum and the errata page are live, I encourage you to participate, particularly if you have purchased the Early Release version of the book and want to provide any sort of feedback), but content will grow over time.
"Learning CFEngine 3" Early Release now available -use AUTHD to get 40-50% off
My upcoming book "Learning CFEngine 3" is now available as an Early Release, which includes (for now) the first four chapters of the book. You can use the code AUTHD to get 40% off the print book, or 50% off the ebook version.
Go get yours! And of course, I'd be happy to receive any feedback you have.
"Security in the Third Wave of IT Engineering"
Today I gave a presentation at UNAM's 2011 Computer Security Conference in Mexico City. Below you will find my presentation (done using prezi.com, follow this link if you can't see it below). You can also get the PDF version.
Related blog posts from cfengine.com:
What's New in CFEngine 3: Making System Administration Even More Powerful - O'Reilly Radar
CFEngine is both the oldest and the newest of the popular tools for automating site administration. Mark Burgess invented it as a free software project in 1993, and years later, as deployments in the field outgrew its original design he gave it a complete rethink and developed the powerful concept of promise theory to make it modular and maintainable.
I contributed to this article by Andy Oram on CFEngine 3. It talks about the history of CFEngine 3, why it is a powerful tool for system administrators, and what is new in the latest releases of both the commercial and the open-source versions of CFEngine.
"Introduction to CFEngine 3 Nova" webinar
New job, new book
Installing cfengine on Mac OS X
Cfengine (tested 3.2.0) installs easily on OS X (tested 10.7), given that it's Unix. One problem I encountered was that it does not compile with the bundled version of Berkeley DB (it recognizes it during configure, but produces compilation errors). The solution is to use some other DB engine. I chose Tokyo Cabinet. Using homebrew, the process is simple
brew install tokyo-cabinet
After this, configure --with-tokyocabinet, and then compile and install as usual.
Editing sshd configuration files with cfengine3
Here's a cfengine bundle that I wrote for editing the sshd configuration file by passing an array with the parameters. Using an array is a very elegant way of defining the values to set. The bundle also restarts sshd after any changes are made, unless the no_restarts class is defined.
The first gist contains the edit_sshd bundle itself, together with the set_config_values bundle that actually performs the editing job (this should go into a library file, I have it in my personal version of cfengine_stdlib.cf). The second file is a sample bundle showing how to use edit_sshd.
Cfengine3 lexer for Pygments
I have written a Cfengine3 lexer for Pygments, the open source syntax-highlighter used by Gist and many other sites. It seems to work fine on all the cfengine policy files I have tested, but if you find anything that doesn't quite work as expected, please let me know. This is my first-ever Pygments lexer, so if you are an expert and can advise me on better ways of doing things, I'd very much appreciate the feedback too.
Storing CFEngine configuration in CVS
Useful article about storing both development and production configurations of cfengine using a version control mechanism. I am in the process of developing a similar setup using git, I will share it here when I get it to work properly.
Hierarchical copying with cfengine3
I recently posted a snippet to perform hierarchical copying in cfengine3. As I was attempting to integrate this mechanism into my copy of cfengine's COPBL, I realized that no additional functions or body components are needed. Thanks to cfengine3's list expansion, all you need to do is include in the existing copy promise the list containing the desired list of suffixes to try. For example:
files: | |
suse_9:: | |
"${sys.workdir}/bin" | |
perms => usystem("0700"), | |
copy_from => mycopy("${repository}/bin/suse_9"), | |
depth_search => urecurse("1"); |
Becomes:
vars: | |
"suffixes" slist => { "${sys.flavour}" }; | |
files: | |
"${sys.workdir}/bin" | |
perms => usystem("0700"), | |
copy_from => mycopy("${repository}/bin.${suffixes}"), | |
depth_search => urecurse("1"); |
While this looks at first sight even longer than the original (and of course, in this case you could just specify ${sys.flavour} directly in the copy_from statement), it is much more flexible. Instead of defining different sections for each class that you want to handle (e.g. suse_9, redhat_5, etc.), the same code is able to copy the corresponding binary directory for any operating system, you just have to put the corresponding bin.* directory in your repository.
The State of Open Source System Automation
The days of DIY system administration are rapidly coming to a close. Why? Because the open source tools available are just too good not to use. Presenting Bcfg2, Cfengine, Chef and Puppet.
Nice overview of the Usenix 2010 Configuration Management Summit, including descriptions and comparisons of the four major open-source CM systems.
Editing whitespace-separated config files with cfengine
# Sets the RHS of configuration items in the file of the form | |
# LHS RHS | |
# If the line is commented out with #, it gets uncommented first. | |
# Adds a new line if none exists. | |
# The argument is an associative array containing v[LHS]="rhs" | |
# Based on set_variable_values from cfengine_stdlib.cf, modified | |
# by Diego Zamboni to use whitespace as separator, and to handle | |
# commented-out lines. | |
bundle edit_line set_config_values(v) | |
{ | |
vars: | |
"index" slist => getindices("$(v)"); | |
# Be careful if the index string contains funny chars | |
"cindex[$(index)]" string => canonify("$(index)"); | |
field_edits: | |
# If the line is there, but commented out, first uncomment it | |
"#+$(index)\s+.*" | |
edit_field => col("\s+","1","$(index)","set"); | |
# match a line starting like the key something | |
"$(index)\s+.*" | |
edit_field => col("\s+","2","$($(v)[$(index)])","set"), | |
classes => if_ok("not_$(cindex[$(index)])"); | |
insert_lines: | |
"$(index) $($(v)[$(index)])", | |
ifvarclass => "!not_$(cindex[$(index)])"; | |
} |
cfengine Community Open Promise Body Library on GitHub
I have created a copy of the cfengine COPBL on GitHub , where I will use it as a playground for changes and additions. This is in no way endorsed by cfengine - it is just my personal copy. But if you use GitHub and want to use it, go ahead, I will try to keep it updated with respect to the original subversion repository , although it will include my changes too.
Detecting NICs that match certain IP addresses
# Find all network interfaces that match a certain IP address. | |
# Time-stamp: <[netif_find.cf] modified by Diego Zamboni on Tuesday, 2010.08.24 at 01:53:03> | |
body common control | |
{ | |
bundlesequence => { "test" }; | |
} | |
bundle agent test | |
{ | |
vars: | |
"nics" slist => getindices("sys.ipv4"); | |
# Regex we want to match on the IP address | |
"ipregex" string => "192\.168\..*"; | |
# This is heavily based on cfengine3 list expansion. The expression is | |
# evaluated for every value of ${nics}, and if there are any matches, | |
# the corresponding class is defined, which then triggers the printing | |
# of the "Matched NIC" message (of course, in a real example, the class | |
# could be used to trigger some other action). | |
classes: | |
"ismatch_${nics}" expression => regcmp("${ipregex}", "${sys.ipv4[${nics}]}"); | |
reports: | |
linux|windows:: | |
"NICs found: ${nics}"; | |
"Matched NIC: ${nics} (${sys.ipv4[${nics}]})" | |
ifvarclass => "ismatch_${nics}"; | |
} |
Implementing "single-copy nirvana" in cfengine3
Installing cfengine on Windows 7 under cygwin
Update (2011/09/05): Updated the instructions for cfengine 3.2.0, cygwin 1.7.9, and tested them on a clean cygwin install.
Installing the cfengine community edition under Windows (the commercial version includes native Windows support) is fairly easy under cygwin, you just need to have the appropriate dependencies installed. Here’s how I did it.
Versions
Additional cygwin packages needed
To install these, run cygwin’s setup.exe, search for each packages in turn, and install them. Make sure you agree to install any additional packages that are listed as dependencies (setup.exe will ask you about it).
Tag: cflearn
CFEngine posts moving to cf-learn.info
New website for "Learning CFEngine 3"
I'm happy to announce that the website for my book is now live at http://cf-learn.info/.
In this website you will find:- General information about the book.
- A discussion forum for any type of questions, feedback or suggestions about the book.
- Downloadable code examples from the book, plus (over time) many other new examples.
- List of Errata, and access to the Errata system at O'Reilly
- A blog devoted to the book and to CFEngine.
The site is fairly empty at the moment (the blog, the forum and the errata page are live, I encourage you to participate, particularly if you have purchased the Early Release version of the book and want to provide any sort of feedback), but content will grow over time.
Tag: chef
The State of Open Source System Automation
The days of DIY system administration are rapidly coming to a close. Why? Because the open source tools available are just too good not to use. Presenting Bcfg2, Cfengine, Chef and Puppet.
Nice overview of the Usenix 2010 Configuration Management Summit, including descriptions and comparisons of the four major open-source CM systems.
Tag: circleci
Automating Leanpub book publishing with Hammerspoon and CircleCI
I am the author of two books: Learning CFEngine and Learning Hammerspoon, both self-published using Leanpub. The source of my books is kept in GitHub repositories. In this post I will show you how I use the Leanpub API together with Hammerspoon and CircleCI as part of my workflow, to automate and monitor the building, previewing and publishing of my books.

Leanpub basics
First, some basic concepts about the Leanpub API. See the documentation for the full details, I’m only mentioning clear some things you need to know to understand the rest of this post.
Tag: coding
Capturing multiple matches in Ruby
To collect all regex matches in a string into an array, pass the regexp object to the string's scan() method, e.g.: myarray = mystring.scan(/regex/). Sometimes, it is easier to create a regex to match the delimiters rather than the text you are interested in. In that case, use the split() method instead, e.g.: myarray = mystring.split(/delimiter/). The split() method discards all regex matches, returning the text between the matches. The scan() method does the opposite.
If your regular expression contains capturing groups, scan() returns an array of arrays. Each element in the overall array will contain an array consisting of the overall regex match, plus the text matched by all capturing groups.
Tag: config
How to easily create and use human-readable IDs in Org mode and Doom Emacs
My Doom Emacs configuration, with commentary
How to insert screenshots in Org documents on macOS
Using and writing completions in Elvish
Beautifying Org Mode in Emacs
My Hammerspoon Configuration, With Commentary
My Emacs Configuration, With Commentary
Bang-Bang (!!, !$) Shell Shortcuts in Elvish
My Elvish Configuration With Commentary
Tag: configurationmanagement
The State of Open Source System Automation
The days of DIY system administration are rapidly coming to a close. Why? Because the open source tools available are just too good not to use. Presenting Bcfg2, Cfengine, Chef and Puppet.
Nice overview of the Usenix 2010 Configuration Management Summit, including descriptions and comparisons of the four major open-source CM systems.
Tag: copbl
Editing whitespace-separated config files with cfengine
# Sets the RHS of configuration items in the file of the form | |
# LHS RHS | |
# If the line is commented out with #, it gets uncommented first. | |
# Adds a new line if none exists. | |
# The argument is an associative array containing v[LHS]="rhs" | |
# Based on set_variable_values from cfengine_stdlib.cf, modified | |
# by Diego Zamboni to use whitespace as separator, and to handle | |
# commented-out lines. | |
bundle edit_line set_config_values(v) | |
{ | |
vars: | |
"index" slist => getindices("$(v)"); | |
# Be careful if the index string contains funny chars | |
"cindex[$(index)]" string => canonify("$(index)"); | |
field_edits: | |
# If the line is there, but commented out, first uncomment it | |
"#+$(index)\s+.*" | |
edit_field => col("\s+","1","$(index)","set"); | |
# match a line starting like the key something | |
"$(index)\s+.*" | |
edit_field => col("\s+","2","$($(v)[$(index)])","set"), | |
classes => if_ok("not_$(cindex[$(index)])"); | |
insert_lines: | |
"$(index) $($(v)[$(index)])", | |
ifvarclass => "!not_$(cindex[$(index)])"; | |
} |
cfengine Community Open Promise Body Library on GitHub
I have created a copy of the cfengine COPBL on GitHub , where I will use it as a playground for changes and additions. This is in no way endorsed by cfengine - it is just my personal copy. But if you use GitHub and want to use it, go ahead, I will try to keep it updated with respect to the original subversion repository , although it will include my changes too.
Tag: copperexport
CopperExport development paused
Unfortunately, since the big move, I find myself without easy access to a Mac for development (I had a Mac at my previous job, and I use Windows at my new job), which pretty much makes fixing these bugs impossible. Until I get a new machine, I will not be able to provide updates to CopperExport. Of course, if any developers out there want to make the appropriate fixes, I will happily accept patches that you submit, and produce a new release myself.
Tag: csc11
"Security in the Third Wave of IT Engineering"
Today I gave a presentation at UNAM's 2011 Computer Security Conference in Mexico City. Below you will find my presentation (done using prezi.com, follow this link if you can't see it below). You can also get the PDF version.
Related blog posts from cfengine.com:
Tag: cvs
Storing CFEngine configuration in CVS
Useful article about storing both development and production configurations of cfengine using a version control mechanism. I am in the process of developing a similar setup using git, I will share it here when I get it to work properly.
Tag: cygwin
Installing latex2html under Win7 with cygwin
I got latex2html to install on the latest cygwin, however to get the configure to pass I had to alter the configure to recognize cygwin as a UNIX.
Using this patch I was able to properly configure and install latex2html under cygwin in Windows 7.
Making cygwin, Windows and emacs understand the same symlinks
Today I ran into the problem that symlinks created under cygwin using "ln -s" are not understood by Windows, and of course Windows shortcuts are seen by cygwin as regular files. Happily, this is a (semi-)solved problem. For reference, this is what needs to be done:
- Add "winsymlinks" to your CYGWIN environment variable. For example, in my .bashrc I have the following: export CYGWIN="nodosfilewarning winsymlinks"
This makes cygwin create symlinks differently, in a form that is understood both by it and by Windows.
This is the main step, and the only one if you just need access from the shell and from the Windows explorer. However, emacs still sees those symlinks as regular .lnk files. To fix this, follow the next step.
Installing cfengine on Windows 7 under cygwin
Update (2011/09/05): Updated the instructions for cfengine 3.2.0, cygwin 1.7.9, and tested them on a clean cygwin install.
Installing the cfengine community edition under Windows (the commercial version includes native Windows support) is fairly easy under cygwin, you just need to have the appropriate dependencies installed. Here’s how I did it.
Versions
Additional cygwin packages needed
To install these, run cygwin’s setup.exe, search for each packages in turn, and install them. Make sure you agree to install any additional packages that are listed as dependencies (setup.exe will ask you about it).
Tag: dennisritchie
Dennis M. Ritchie, R.I.P.
Dennis Ritchie passed away last weekend. He was one of the great minds in systems research and development, father of the C programming language, and one of the big contributors to Unix, both of which power the Mac on which I'm typing this, the iPhone on my desk, the Windows machine I use at work, the servers on which this blog is hosted, and much of the infrastructure both you and I use to connect to it.
Tag: development
Tiobe Index: C back at #1
Position
Apr 2010Position
Apr 2009Delta in Position Programming Language Ratings
Apr 2010Delta
Apr 2009Status 1 2 ![]()
C 18.058% +2.59% A 2 1 ![]()
Java 18.051% -1.29% A 3 3 C++ 9.707% -1.03% A 4 4 PHP 9.662% -0.23% A 5 5 (Visual) Basic 6.392% -2.70% A 6 7 ![]()
C# 4.435% +0.38% A 7 6 ![]()
Python 4.205% -1.88% A 8 9 ![]()
Perl 3.553% +0.09% A 9 11 ![]()
Delphi 2.715% +0.44% A 10 8 ![]()
JavaScript 2.469% -1.21% A 11 42 ![]()
Objective-C 2.288% +2.15% A 12 10 ![]()
Ruby 2.221% -0.35% A 13 14 ![]()
SAS 0.717% -0.07% A 14 12 ![]()
PL/SQL 0.710% -0.38% A 15 - ![]()
Go 0.710% +0.71% A 16 15 ![]()
Pascal 0.648% -0.07% B 17 17 ABAP 0.625% -0.03% B 18 20 ![]()
MATLAB 0.616% +0.13% B 19 22 ![]()
ActionScript 0.545% +0.09% B 20 19 ![]()
Lua 0.521% +0.03% B
Interesting information (look at the link for more stats, including long term trends, etc.) I find it interesting that Obj-C has seen such a dramatic increase in one year. A testament to the increasing popularity of Mac OS X and iPhone development? Also of note is a slight decrease in Ruby popularity.
Rugged software
I am rugged - and more importantly, my code is rugged.
I recognize that software has become a foundation of our modern world.
I recognize the awesome responsibility that comes with this foundational role.
I recognize that my code will be used in ways I cannot anticipate, in ways it was not designed, and for longer than it was ever intended.
I recognize that my code will be attacked by talented and persistent adversaries who threaten our physical, economic, and national security.
CopperExport development paused
Unfortunately, since the big move, I find myself without easy access to a Mac for development (I had a Mac at my previous job, and I use Windows at my new job), which pretty much makes fixing these bugs impossible. Until I get a new machine, I will not be able to provide updates to CopperExport. Of course, if any developers out there want to make the appropriate fixes, I will happily accept patches that you submit, and produce a new release myself.
Tag: diskutil
Fix journal in an HFS+ file system
Yesterday my external Western Digital disk (which I use for Time Machine, among other things) stopped mounting automatically when I plug it in. This may *cough*definitely*cough*have something to do with me unmounting it forcefully while it was doing a backup, since I was in a hurry.
Tag: doom
How to easily create and use human-readable IDs in Org mode and Doom Emacs
My Doom Emacs configuration, with commentary
Tag: elvish
Using and writing completions in Elvish
Bang-Bang (!!, !$) Shell Shortcuts in Elvish
My Elvish Configuration With Commentary
Elvish, an awesome Unix shell
Tag: emacs
My blogging setup with Emacs, Org mode, ox-hugo, Hugo, GitLab and Netlify
How to easily create and use human-readable IDs in Org mode and Doom Emacs
New release of Publishing with Emacs, Org-mode and Leanpub
My Doom Emacs configuration, with commentary
How to insert screenshots in Org documents on macOS
New book: Publishing with Emacs, Org-mode and Leanpub
Beautifying Org Mode in Emacs
My Emacs Configuration, With Commentary
Spotlight: use-package, a declarative configuration tool - Mastering Emacs
via https://www.masteringemacs.org/article/spotlight-use-package-a-declarative-configuration-tool
Fixing Emacs problems with the fish shell
I started getting errors from the TRAMP Emacs package because I was using fish as my default shell, and it does not recognize certain standard syntax elements (such as &&
to separate commands), and Emacs runs subcommands under the default shell. I fixed this by:
- Changing my account's default shell back to `/bin/bash`
- Changing my Terminal.app preferences to run `/usr/local/bin/fish` when a shell opens, instead of the default login shell:
Remapping Mac modifier keys on Emacs 23.3
I just switched from Carbon Emacs (which is old Emacs 22.x) to Emacs for OS X Modified on my Mac (which is a Cocoa app, and Emacs 23.3).
Emulate vi's % command (jump to matching parenthesis) in Emacs
; One of my recent favorite pieces of Emacs configuration. The % command was one of the things I missed the | |
; most in Emacs, until I found this little gem. I modified it from its original source by adding | |
; previous-line and next-line to the list of commands. | |
; From http://www.emacswiki.org/emacs/ParenthesisMatching#toc4 | |
(defun goto-match-paren (arg) | |
"Go to the matching parenthesis if on parenthesis AND last command is a movement command, otherwise insert %. | |
vi style of % jumping to matching brace." | |
(interactive "p") | |
(message "%s" last-command) | |
(if (not (memq last-command '( | |
set-mark | |
cua-set-mark | |
goto-match-paren | |
down-list | |
up-list | |
end-of-defun | |
beginning-of-defun | |
backward-sexp | |
forward-sexp | |
backward-up-list | |
forward-paragraph | |
backward-paragraph | |
end-of-buffer | |
beginning-of-buffer | |
backward-word | |
forward-word | |
mwheel-scroll | |
backward-word | |
forward-word | |
mouse-start-secondary | |
mouse-yank-secondary | |
mouse-secondary-save-then-kill | |
move-end-of-line | |
move-beginning-of-line | |
backward-char | |
forward-char | |
scroll-up | |
scroll-down | |
scroll-left | |
scroll-right | |
mouse-set-point | |
next-buffer | |
previous-buffer | |
previous-line | |
next-line | |
) | |
)) | |
(self-insert-command (or arg 1)) | |
(cond ((looking-at "\\s\(") (forward-list 1) (backward-char 1)) | |
((looking-at "\\s\)") (forward-char 1) (backward-list 1)) | |
(t (self-insert-command (or arg 1)))))) | |
(global-set-key (kbd "%") 'goto-match-paren) |
Installing AucTeX on EmacsW32 on Win7/64bit
$ ./configure --prefix='c:/Program Files (x86)/Emacs/emacs' --with-texmf-dir='/usr/local/share/texmf' --with-lispdir='c:/Program Files (x86)/Emacs/emacs/site-lisp'
$ make
$ make install I then added the following lines to my C:\Program Files (x86)\Emacs\site-lisp\site-start.el file:
Tag: enwrite
Enwrite featured in onethingwell.org!
via http://onethingwell.org/post/140035085825/enwrite
Tag: esx
Installing Windows XP in Vmware ESX - "Setup did not find any hard disk drives installed in your computer." | TechHead.co.uk
Trying to install Windows XP within VMWare ESX and getting the following error message?
"Setup did not find any hard disk drives installed in your computer."
The reason for this is that the necessary hard disk controller drivers have not been installed.
Useful information and links for installing XP VMs on a VMware ESX server.
Tag: eventviewer
LogParser, Event Logs, and Vista - Neil Carpenter's Blog - Site Home - TechNet Blogs
The only workaround to this is to convert the logfile to the new evtx format prior to parsing it. You can do this in the event log viewer GUI by doing a Save As... but I find it easier to do this at the command prompt:
wevtutil epl application.evt application.evtx /lf:true
I'm trying to process Windows Event Viewer files (.evt) from some servers on my Win7 machine, which kept me giving a "log file is corrupt" error message. The trick is to convert it to the newer .evtx format before processing. Thankfully this can also be easily done using a command-line utility.
Tag: evernote
Watching for changes (Polling notifications) in Evernote
via https://dev.evernote.com/doc/articles/polling_notification.php
Polling
If your app wants to know about changes in a user's Evernote account, you'll probably consider calling the NoteStore.findNotesMetadata function periodically to search for new notes. findNotes is incredibly powerful, but it's also expensive for our servers - we need to load the user's Lucene index, perform the search across all of their notes, hit the database to pull out the results, and send those results over the network to your app. If you're building a web application, you should use webhooks instead of polling. If you have to poll, you should follow the guidelines below.
Find all single-note tags in Evernote
How to turn off "sort by relevance" in Evernote 5.6.0 Beta

Airmail tip: prevent "Save to Evernote" action from opening the created note
- Quit Airmail (don’t know if this is necessary, but it can’t hurt)
- Open the Terminal app
- Run the following command in the terminal (all in a single line):
sudo /Applications/Utilities/AppleScript\ Editor.app/Contents/MacOS/AppleScript\ Editor /Applications/Airmail.app/Contents/Resources/Evernote.applescript
This will ask you for your password and then run the AppleScript Editor.
Note: in my experience, the AppleScript Editor app may open behind the terminal window - look at the Dock for its icon, and bring it to the front. - In the AppleScript Editor window, find this line:
open note window with the note
and comment it out by inserting a # at the beginning, like this:
# open note window with the note - Save the modified file and quit AppleScript Editor.
- Restart Airmail.
HowTo: Changing the available display formats for Evernote's "Insert Date" command
Tag: facebook
Deleting my Facebook account
Today I reactivated my Facebook account just to be able to delete it
completely. If you find Facebook useful, you should at least be aware
of its potential privacy issues, and tune your privacy settings to a
level that you find comfortable. Here are some links where you can
find more information:
http://www.fastcompany.com/1624745/time-to-audit-your-facebook-privacy-settings
http://www.fastcompany.com/1648478/online-privacy-check-yourself-before-you-w... Personally, I don't find Facebook useful enough to go through the
hassle. My account has been deactivated for the last couple of weeks
and I haven't missed it, so now it's time to permanently delete it.
Clicky clicky: https://ssl.facebook.com/help/contact.php?show_form=delete_account
The Evolution of Privacy on Facebook and why I'm dropping off
This is a very good analysis, and is why my Facebook account is currently deactivated, and probably will be deleted. Contrary to Matt, I don't find Facebook very useful. Mostly it's served me to be found by people by whom I wasn't all that interested in being found, to see relatives' photos (which I can also receive through other means), to be endlessly spammed by people playing Farmville and, most usefully, to contact people whose email addresses I don't have or can't bother to remember. None of these are indispensable or irreplaceable to me.
Tag: filter
Automatically creating tasks from email in Outlook
Please note: I am no longer using Windows nor Outlook, so unfortunately I cannot offer any help with problems you encounter using these scripts and techniques.
Over the last few days I have been redoing my GTD-under-Outlook setup, based on the instructions available in the "GTD and Outlook" guide from DavidCo (I will write more about my setup later). One of the tricks the guide suggest is creating a mail rule on outgoing mail, which scans the message body for a special tag (/wf or *wf* are suggested) and automatically adds the message to the @WAITING FOR email folder.
Tag: fonts
Tag: friction
Overhauling my GTD system under Windows
As you may know, I'm a reluctant switcher from Mac to Windows. I am also a fan of GTD. I had been using Jello Dashboard (JD) to implement GTD under Outlook. JD is a very nice system, the developer is friendly and responsive, and I had even written several patches to adapt it to my way of working. I was even in the process of drafting a series of blog posts titled "My GTD under Outlook setup".
Tag: fun
Google Scribe-generated prose (aka "Google Scribe channels Kanye West")
Google has launched a new labs project called Google Scribe, which essentially provides an auto-completion service. You type, it autocompletes. The following text was generated by typing a single space, and from then on simply accepting the default suggestions (pressing "Enter" every time the suggestion popup appeared). I had to stop at some point, but it seems like a good source of mindless entertainment. Also, the result varies depending on the initial seed word you provide, and also on whether you just accept blindly (Enter) or type spaces at certain places. These results also provide some insight into the training texts that were used ("I'ma let you finish...")
Tag: geneschultz
Dennis M. Ritchie, R.I.P.
Dennis Ritchie passed away last weekend. He was one of the great minds in systems research and development, father of the C programming language, and one of the big contributors to Unix, both of which power the Mac on which I'm typing this, the iPhone on my desk, the Windows machine I use at work, the servers on which this blog is hosted, and much of the infrastructure both you and I use to connect to it.
Gene Schultz, R.I.P.
A few days ago I learned through Spaf that Gene Schultz had had a severe accident and was hospitalized. Later we learned that the accident was apparently caused by an earlier stroke that went unrecognized. Yesterday, October 2nd, during the afternoon, Gene passed away.
Tag: ghost
Hosting a Ghost Blog in GitHub - the easier way
Tag: git
Using Multiple SSH Keys with Github
via http://www.freshblurbs.com/blog/2013/06/22/github-multiple-ssh-keys.html#tldr
Moving files between git repositories, preserving history
I needed to copy a directory between two git
repositories while preserving its history. I found some good instructions at http://gbayer.com/development/moving-files-from-one-git-repository-to-another-preserving-history/, which got me started, but I figured out a way to avoid having to move all the files into their directory again (lines 5-6 in Greg’s instructions) by reversing the filter to remove everything I don’t want instead of only including the directory I want. Here are the steps (the idea is the same as in Greg’s post, so please read that to get the explanation, I’m only listing the commands here for reference):
Three levels of GIT config
via http://www.codinginahurry.com/2011/02/05/three-levels-of-git-config/
git
config; project, global and system.-
-
- project: Project configs are only available for the current project and stored in
.git/config
in the project's directory. - global: Global configs are available for all projects for the current user and stored in
~/.gitconfig
. - system: System configs are available for all the users/projects and stored in
/etc/gitconfig
.
- project: Project configs are only available for the current project and stored in
-
git config user.name "John Doe"
git config --global user.name "John Doe"
git config --system user.name "John Doe"
Tag: github
Automating Leanpub book publishing with Hammerspoon and CircleCI
I am the author of two books: Learning CFEngine and Learning Hammerspoon, both self-published using Leanpub. The source of my books is kept in GitHub repositories. In this post I will show you how I use the Leanpub API together with Hammerspoon and CircleCI as part of my workflow, to automate and monitor the building, previewing and publishing of my books.

Leanpub basics
First, some basic concepts about the Leanpub API. See the documentation for the full details, I’m only mentioning clear some things you need to know to understand the rest of this post.
Hosting a Ghost Blog in GitHub - the easier way
Using Multiple SSH Keys with Github
via http://www.freshblurbs.com/blog/2013/06/22/github-multiple-ssh-keys.html#tldr
Website redesign and unification
cfengine Community Open Promise Body Library on GitHub
I have created a copy of the cfengine COPBL on GitHub , where I will use it as a playground for changes and additions. This is in no way endorsed by cfengine - it is just my personal copy. But if you use GitHub and want to use it, go ahead, I will try to keep it updated with respect to the original subversion repository , although it will include my changes too.
Updated server and service setup
(a friend asked me about my online setup, and I wrote the text below. Then I realized it would also make an interesting blog post, and I just copied and pasted it, with minimal editing, into an email to posterous. This is why I love posterous, it makes posting so easy)
For my setup, I have a hodgepodge of stuff all aggregated under the zzamboni.org domain. I wrote a blog post about my setup some time ago: http://blog.zzamboni.org/server-less-does-not-mean-service-lessTag: gitlab
My blogging setup with Emacs, Org mode, ox-hugo, Hugo, GitLab and Netlify
Tag: google
Google Scribe-generated prose (aka "Google Scribe channels Kanye West")
Google has launched a new labs project called Google Scribe, which essentially provides an auto-completion service. You type, it autocompletes. The following text was generated by typing a single space, and from then on simply accepting the default suggestions (pressing "Enter" every time the suggestion popup appeared). I had to stop at some point, but it seems like a good source of mindless entertainment. Also, the result varies depending on the initial seed word you provide, and also on whether you just accept blindly (Enter) or type spaces at certain places. These results also provide some insight into the training texts that were used ("I'ma let you finish...")
Updated server and service setup
(a friend asked me about my online setup, and I wrote the text below. Then I realized it would also make an interesting blog post, and I just copied and pasted it, with minimal editing, into an email to posterous. This is why I love posterous, it makes posting so easy)
For my setup, I have a hodgepodge of stuff all aggregated under the zzamboni.org domain. I wrote a blog post about my setup some time ago: http://blog.zzamboni.org/server-less-does-not-mean-service-lessTag: goya
La UNAM cumple 100 años
Si hubiera que reducir a la UNAM a unas cuantas cifras esenciales, tendrían que anotarse, entre otras, las siguientes: 314 mil alumnos, 35 mil académicos, tres mil 500 investigadores, 2 mil edificios, 139 bibliotecas, 56 mil computadoras conectadas en red, 18 museos, otros tantos recintos históricos, un canal de televisión y una estación de radio, una casa editora de miles de libros y de cientos de publicaciones periódicas, así como una Ciudad Universitaria que ha sido declarada por la UNESCO Patrimonio de la Humanidad. Más allá de los activos, en la institución se imparten 85 licenciaturas y operan 40 programas de posgrado, con 83 planes de estudio para maestría y doctorado, así como 34 programas de especialización con 189 orientaciones.
La UNAM tiene aproximadamente el mismo número de estudiantes que empresas como IBM y HP tienen de empleados a nivel mundial.
Tag: grabcartoons
Grabcartoons v2.7
Tag: gtd
Automatically creating tasks from email in Outlook
Please note: I am no longer using Windows nor Outlook, so unfortunately I cannot offer any help with problems you encounter using these scripts and techniques.
Over the last few days I have been redoing my GTD-under-Outlook setup, based on the instructions available in the "GTD and Outlook" guide from DavidCo (I will write more about my setup later). One of the tricks the guide suggest is creating a mail rule on outgoing mail, which scans the message body for a special tag (/wf or *wf* are suggested) and automatically adds the message to the @WAITING FOR email folder.
Overhauling my GTD system under Windows
As you may know, I'm a reluctant switcher from Mac to Windows. I am also a fan of GTD. I had been using Jello Dashboard (JD) to implement GTD under Outlook. JD is a very nice system, the developer is friendly and responsive, and I had even written several patches to adapt it to my way of working. I was even in the process of drafting a series of blog posts titled "My GTD under Outlook setup".
Setting up a global hotkey to add tasks to Outlook
One thing I missed since I moved from a Mac (using The Hit List for GTD) to Outlook (using Jello Dashboard for GTD) was the availability of a global hot key that I could use to bring up a text entry box which I could use to quickly add things into my electronic Inbox, for later processing.
I have found a way to achieve this, and here is the setup I am using now:
GTD tip: clean up physical clutter using ziploc bags
GTD Tip: one-key opening of INBOX notebook in OneNote
- Download and install AutoHotKey, if you don't have it already (it's a really useful free application, well worth exploring).
- Add the following line to your default AutoHotKey.ahk file (normally in ~/Documents/AutoHotKey.ahk):This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
; AutoHotKey configuration to open my Inbox in OneNote. ; To use this, change the file path to the path of the GTD notebook ; you want to use. You may also want to change the key to which it ; is assigned (I use Win-i). #i::Run c:\Users\zambonid\Documents\OneNote Notebooks\GTD\INBOX.one
How important are the tools you use with GTD?
Short video of David Allen talking about the importance of the GTD tools you choose. Conclusion: the most important thing is that you choose a tool you actually use, because the moment you stop putting your stuff in it, it will stop working.
Timely for me as I rebuild my GTD toolbox and system this week.
Setting up my GTD system in Windows - links
Since I started at my new job and moved to a new machine and OS, my old GTD setup has fallen by the wayside and I have found myself at a loss trying to keep track of things. I have found OneNote to be a very useful tool for keeping notes and reference material, and Outlook 2010 is actually not that bad as a task/calendar/email management tool.
So, as a first step, here are some links I have found and which I am in the process of reading and digesting for creating my own setup:
Tag: hammerspoon
August 2020 release of "Learning Hammerspoon" is out!
Automating Leanpub book publishing with Hammerspoon and CircleCI
I am the author of two books: Learning CFEngine and Learning Hammerspoon, both self-published using Leanpub. The source of my books is kept in GitHub repositories. In this post I will show you how I use the Leanpub API together with Hammerspoon and CircleCI as part of my workflow, to automate and monitor the building, previewing and publishing of my books.

Leanpub basics
First, some basic concepts about the Leanpub API. See the documentation for the full details, I’m only mentioning clear some things you need to know to understand the rest of this post.
New release of "Learning Hammerspoon" is out!
First release of "Learning Hammerspoon"
My Hammerspoon Configuration, With Commentary
Just Enough Lua to Be Productive in Hammerspoon, Part 2
Just Enough Lua to Be Productive in Hammerspoon, Part 1
Fixing the Outlook-to-OmniFocus Script
Here’s how to fix the breakage caused by one of the recent updates to Microsoft Outlook in the Outlook-to-OmniFocus AppleScript included with my SendToOmniFocus spoon.
Using Spoons in Hammerspoon
Getting Started With Hammerspoon
Tag: hfs
Fix journal in an HFS+ file system
Yesterday my external Western Digital disk (which I use for Time Machine, among other things) stopped mounting automatically when I plug it in. This may *cough*definitely*cough*have something to do with me unmounting it forcefully while it was doing a backup, since I was in a hurry.
Tag: hierarchicalcopy
Hierarchical copying with cfengine3
I recently posted a snippet to perform hierarchical copying in cfengine3. As I was attempting to integrate this mechanism into my copy of cfengine's COPBL, I realized that no additional functions or body components are needed. Thanks to cfengine3's list expansion, all you need to do is include in the existing copy promise the list containing the desired list of suffixes to try. For example:
files: | |
suse_9:: | |
"${sys.workdir}/bin" | |
perms => usystem("0700"), | |
copy_from => mycopy("${repository}/bin/suse_9"), | |
depth_search => urecurse("1"); |
Becomes:
vars: | |
"suffixes" slist => { "${sys.flavour}" }; | |
files: | |
"${sys.workdir}/bin" | |
perms => usystem("0700"), | |
copy_from => mycopy("${repository}/bin.${suffixes}"), | |
depth_search => urecurse("1"); |
While this looks at first sight even longer than the original (and of course, in this case you could just specify ${sys.flavour} directly in the copy_from statement), it is much more flexible. Instead of defining different sections for each class that you want to handle (e.g. suse_9, redhat_5, etc.), the same code is able to copy the corresponding binary directory for any operating system, you just have to put the corresponding bin.* directory in your repository.
Implementing "single-copy nirvana" in cfengine3
Tag: homebrew
Installing cfengine on Mac OS X
Cfengine (tested 3.2.0) installs easily on OS X (tested 10.7), given that it's Unix. One problem I encountered was that it does not compile with the bundled version of Berkeley DB (it recognizes it during configure, but produces compilation errors). The solution is to use some other DB engine. I chose Tokyo Cabinet. Using homebrew, the process is simple
brew install tokyo-cabinet
After this, configure --with-tokyocabinet, and then compile and install as usual.
Tag: howto
My blogging setup with Emacs, Org mode, ox-hugo, Hugo, GitLab and Netlify
How to easily create and use human-readable IDs in Org mode and Doom Emacs
My Doom Emacs configuration, with commentary
August 2020 release of "Learning Hammerspoon" is out!
How to insert screenshots in Org documents on macOS
New release of "Learning Hammerspoon" is out!
First release of "Learning Hammerspoon"
My Hammerspoon Configuration, With Commentary
My Emacs Configuration, With Commentary
My Elvish Configuration With Commentary
Just Enough Lua to Be Productive in Hammerspoon, Part 2
Just Enough Lua to Be Productive in Hammerspoon, Part 1
Using Nix's "Single-user Mode" on macOS
Here is how to set up Nix in single-user mode on macOS.
Fixing the Outlook-to-OmniFocus Script
Here’s how to fix the breakage caused by one of the recent updates to Microsoft Outlook in the Outlook-to-OmniFocus AppleScript included with my SendToOmniFocus spoon.
Using Spoons in Hammerspoon
Hosting a Ghost Blog in GitHub - the easier way
Getting Started With Hammerspoon
Fast translation with Google Translator
via https://medium.com/@mrdoro/fast-translation-with-google-translator-and-mac-osx-817e32233b7a
Spotlight: use-package, a declarative configuration tool - Mastering Emacs
via https://www.masteringemacs.org/article/spotlight-use-package-a-declarative-configuration-tool
Moving files between git repositories, preserving history
I needed to copy a directory between two git
repositories while preserving its history. I found some good instructions at http://gbayer.com/development/moving-files-from-one-git-repository-to-another-preserving-history/, which got me started, but I figured out a way to avoid having to move all the files into their directory again (lines 5-6 in Greg’s instructions) by reversing the filter to remove everything I don’t want instead of only including the directory I want. Here are the steps (the idea is the same as in Greg’s post, so please read that to get the explanation, I’m only listing the commands here for reference):
Find all single-note tags in Evernote
How to solve truncated docker output in Mac OS X using boot2docker
If you are using docker on Mac OS X using boot2docker (http://docs.docker.io/installation/mac/), you may see truncated output from docker run
, and also may have noticed that docker attach
does not work properly, producing only some output and then exiting. This bug is documented here: https://github.com/boot2docker/boot2docker/issues/150, where I also found the following workaround. Documenting it here in case anyone finds it useful:
Instead of using the default value of DOCKER_HOST
provided by boot2docker up
, establish the docker connection through an ssh tunnel:
HowTo: Changing the available display formats for Evernote's "Insert Date" command
Installing cfengine on Mac OS X
Cfengine (tested 3.2.0) installs easily on OS X (tested 10.7), given that it's Unix. One problem I encountered was that it does not compile with the bundled version of Berkeley DB (it recognizes it during configure, but produces compilation errors). The solution is to use some other DB engine. I chose Tokyo Cabinet. Using homebrew, the process is simple
brew install tokyo-cabinet
After this, configure --with-tokyocabinet, and then compile and install as usual.
Automatically creating tasks from email in Outlook
Please note: I am no longer using Windows nor Outlook, so unfortunately I cannot offer any help with problems you encounter using these scripts and techniques.
Over the last few days I have been redoing my GTD-under-Outlook setup, based on the instructions available in the "GTD and Outlook" guide from DavidCo (I will write more about my setup later). One of the tricks the guide suggest is creating a mail rule on outgoing mail, which scans the message body for a special tag (/wf or *wf* are suggested) and automatically adds the message to the @WAITING FOR email folder.
Making cygwin, Windows and emacs understand the same symlinks
Today I ran into the problem that symlinks created under cygwin using "ln -s" are not understood by Windows, and of course Windows shortcuts are seen by cygwin as regular files. Happily, this is a (semi-)solved problem. For reference, this is what needs to be done:
- Add "winsymlinks" to your CYGWIN environment variable. For example, in my .bashrc I have the following: export CYGWIN="nodosfilewarning winsymlinks"
This makes cygwin create symlinks differently, in a form that is understood both by it and by Windows.
This is the main step, and the only one if you just need access from the shell and from the Windows explorer. However, emacs still sees those symlinks as regular .lnk files. To fix this, follow the next step.
Storing CFEngine configuration in CVS
Useful article about storing both development and production configurations of cfengine using a version control mechanism. I am in the process of developing a similar setup using git, I will share it here when I get it to work properly.
Installing cfengine on Windows 7 under cygwin
Update (2011/09/05): Updated the instructions for cfengine 3.2.0, cygwin 1.7.9, and tested them on a clean cygwin install.
Installing the cfengine community edition under Windows (the commercial version includes native Windows support) is fairly easy under cygwin, you just need to have the appropriate dependencies installed. Here’s how I did it.
Versions
Additional cygwin packages needed
To install these, run cygwin’s setup.exe, search for each packages in turn, and install them. Make sure you agree to install any additional packages that are listed as dependencies (setup.exe will ask you about it).
Tag: hugo
My blogging setup with Emacs, Org mode, ox-hugo, Hugo, GitLab and Netlify
Tag: ios43
Single-tap conference dialing in iOS 4.3
Apple released iOS 4.3 a few days ago, and if you follow this topic at all, you have probably already heard all about the Personal Hotspot feature, AirPlay enhancements, and whatnot. But buried in the notes for this release was a new feature that caught my attention:
Single tap conference call dialing with a pause to send a passcode
I have found almost no mentions of this new feature online (most reviews focus on the "bigger" features), so I thought I'd explore it a little bit.
Tag: iphone
All the apps on my iPhone
I’m doing some cleanup and reorganization, and captured my current app setup as a reference point. Here they are.
Quick note: The first screen is my most-used apps (some are going out now, like 2Do which I've never liked too much, but was the best way to sync tasks with Outlook, which I'm no longer forced using). Second screen is all my folders. Third and fourth screens are my girls' screens, with the games they use when they borrow my phone. The games I play are mostly in the first "Games" folder.
Single-tap conference dialing in iOS 4.3
Apple released iOS 4.3 a few days ago, and if you follow this topic at all, you have probably already heard all about the Personal Hotspot feature, AirPlay enhancements, and whatnot. But buried in the notes for this release was a new feature that caught my attention:
Single tap conference call dialing with a pause to send a passcode
I have found almost no mentions of this new feature online (most reviews focus on the "bigger" features), so I thought I'd explore it a little bit.
Tag: jello
Overhauling my GTD system under Windows
As you may know, I'm a reluctant switcher from Mac to Windows. I am also a fan of GTD. I had been using Jello Dashboard (JD) to implement GTD under Outlook. JD is a very nice system, the developer is friendly and responsive, and I had even written several patches to adapt it to my way of working. I was even in the process of drafting a series of blog posts titled "My GTD under Outlook setup".
Tag: keyboard
Remapping Mac modifier keys on Emacs 23.3
I just switched from Carbon Emacs (which is old Emacs 22.x) to Emacs for OS X Modified on my Mac (which is a Cocoa app, and Emacs 23.3).
Tag: kindle
Reading on multiple media
A couple of days ago I finished reading Steve Jobs by Walter Isaacson. I thoroughly enjoyed it (I may post a longer review later on, but I really liked learning the "behind the scenes" of much of what I witnessed from the outside over so many years).
With this book, for the first time, I decided to conduct an experiment. I got the book as an audiobook (from Audible, playing on my iPhone), as an ebook (using Kindle on my iPhone) and also the hardcover physical book. This allowed me to read the hardcover book when at home, to read the ebook whenever I was around and had some quiet time, or to listen to the audiobook when I was moving around (walking, driving, working out, etc.).Tag: kvm
How to create a new KVM VM using command line tools
Tag: languages
Tiobe Index: C back at #1
Position
Apr 2010Position
Apr 2009Delta in Position Programming Language Ratings
Apr 2010Delta
Apr 2009Status 1 2 ![]()
C 18.058% +2.59% A 2 1 ![]()
Java 18.051% -1.29% A 3 3 C++ 9.707% -1.03% A 4 4 PHP 9.662% -0.23% A 5 5 (Visual) Basic 6.392% -2.70% A 6 7 ![]()
C# 4.435% +0.38% A 7 6 ![]()
Python 4.205% -1.88% A 8 9 ![]()
Perl 3.553% +0.09% A 9 11 ![]()
Delphi 2.715% +0.44% A 10 8 ![]()
JavaScript 2.469% -1.21% A 11 42 ![]()
Objective-C 2.288% +2.15% A 12 10 ![]()
Ruby 2.221% -0.35% A 13 14 ![]()
SAS 0.717% -0.07% A 14 12 ![]()
PL/SQL 0.710% -0.38% A 15 - ![]()
Go 0.710% +0.71% A 16 15 ![]()
Pascal 0.648% -0.07% B 17 17 ABAP 0.625% -0.03% B 18 20 ![]()
MATLAB 0.616% +0.13% B 19 22 ![]()
ActionScript 0.545% +0.09% B 20 19 ![]()
Lua 0.521% +0.03% B
Interesting information (look at the link for more stats, including long term trends, etc.) I find it interesting that Obj-C has seen such a dramatic increase in one year. A testament to the increasing popularity of Mac OS X and iPhone development? Also of note is a slight decrease in Ruby popularity.
Tag: latex
Installing latex2html under Win7 with cygwin
I got latex2html to install on the latest cygwin, however to get the configure to pass I had to alter the configure to recognize cygwin as a UNIX.
Using this patch I was able to properly configure and install latex2html under cygwin in Windows 7.
Installing AucTeX on EmacsW32 on Win7/64bit
$ ./configure --prefix='c:/Program Files (x86)/Emacs/emacs' --with-texmf-dir='/usr/local/share/texmf' --with-lispdir='c:/Program Files (x86)/Emacs/emacs/site-lisp'
$ make
$ make install I then added the following lines to my C:\Program Files (x86)\Emacs\site-lisp\site-start.el file:
Tag: latex2html
How to fix "texexpand error: More than one input file specified" in latex2html
There's a bug that causes problems when running latex2html on files which have spaces in the path. The workaround is to either move things to folders with no spaces, or add appropriate symbolic links.
This error had me stumped in trying to process a latex file with latex2html:
texexpand: Error: More than one input file specified.
texexpand failed: No such file or directory
The fix is simple - make sure the path of the current directory does not have any spaces.
Installing latex2html under Win7 with cygwin
I got latex2html to install on the latest cygwin, however to get the configure to pass I had to alter the configure to recognize cygwin as a UNIX.
Using this patch I was able to properly configure and install latex2html under cygwin in Windows 7.
Tag: leanpub
New release of Publishing with Emacs, Org-mode and Leanpub
New book: Publishing with Emacs, Org-mode and Leanpub
New book: Literate Config
Nuevo libro "Utilerías de Unix"
Automating Leanpub book publishing with Hammerspoon and CircleCI
I am the author of two books: Learning CFEngine and Learning Hammerspoon, both self-published using Leanpub. The source of my books is kept in GitHub repositories. In this post I will show you how I use the Leanpub API together with Hammerspoon and CircleCI as part of my workflow, to automate and monitor the building, previewing and publishing of my books.

Leanpub basics
First, some basic concepts about the Leanpub API. See the documentation for the full details, I’m only mentioning clear some things you need to know to understand the rest of this post.
Tag: linux
Nuevo libro "Utilerías de Unix"
Tag: lion
My thoughts about the Lion upgrade process
I just finished upgrading our Mac (my wife and I share it) to Lion. It looks very nice. This has been the OS X upgrade to which I have given less thought: purchase, download, backup, install, done.
Tag: literateconfig
My Doom Emacs configuration, with commentary
New book: Literate Config
My Hammerspoon Configuration, With Commentary
My Emacs Configuration, With Commentary
My Elvish Configuration With Commentary
Tag: literateprogramming
My Doom Emacs configuration, with commentary
New book: Literate Config
My Hammerspoon Configuration, With Commentary
My Emacs Configuration, With Commentary
My Elvish Configuration With Commentary
Tag: logging
The log: The lifeblood of your data pipeline - O'Reilly Radar
via http://radar.oreilly.com/2015/04/the-log-the-lifeblood-of-your-data-pipeline.html
Tag: logparser
LogParser, Event Logs, and Vista - Neil Carpenter's Blog - Site Home - TechNet Blogs
The only workaround to this is to convert the logfile to the new evtx format prior to parsing it. You can do this in the event log viewer GUI by doing a Save As... but I find it easier to do this at the command prompt:
wevtutil epl application.evt application.evtx /lf:true
I'm trying to process Windows Event Viewer files (.evt) from some servers on my Win7 machine, which kept me giving a "log file is corrupt" error message. The trick is to convert it to the newer .evtx format before processing. Thankfully this can also be easily done using a command-line utility.
Tag: lua
Just Enough Lua to Be Productive in Hammerspoon, Part 2
Just Enough Lua to Be Productive in Hammerspoon, Part 1
Tag: mac
August 2020 release of "Learning Hammerspoon" is out!
How to insert screenshots in Org documents on macOS
New release of "Learning Hammerspoon" is out!
First release of "Learning Hammerspoon"
Just Enough Lua to Be Productive in Hammerspoon, Part 2
Just Enough Lua to Be Productive in Hammerspoon, Part 1
Using Nix's "Single-user Mode" on macOS
Here is how to set up Nix in single-user mode on macOS.
Fixing the Outlook-to-OmniFocus Script
Here’s how to fix the breakage caused by one of the recent updates to Microsoft Outlook in the Outlook-to-OmniFocus AppleScript included with my SendToOmniFocus spoon.
Using Spoons in Hammerspoon
Getting Started With Hammerspoon
Fast translation with Google Translator
via https://medium.com/@mrdoro/fast-translation-with-google-translator-and-mac-osx-817e32233b7a
Clicking on the MacBook Pro is entirely artificial
via http://sixcolors.com/post/2015/10/apple-magic-trackpad-2-review/
Fixing Emacs problems with the fish shell
I started getting errors from the TRAMP Emacs package because I was using fish as my default shell, and it does not recognize certain standard syntax elements (such as &&
to separate commands), and Emacs runs subcommands under the default shell. I fixed this by:
- Changing my account's default shell back to `/bin/bash`
- Changing my Terminal.app preferences to run `/usr/local/bin/fish` when a shell opens, instead of the default login shell:
Find all single-note tags in Evernote
How to solve truncated docker output in Mac OS X using boot2docker
If you are using docker on Mac OS X using boot2docker (http://docs.docker.io/installation/mac/), you may see truncated output from docker run
, and also may have noticed that docker attach
does not work properly, producing only some output and then exiting. This bug is documented here: https://github.com/boot2docker/boot2docker/issues/150, where I also found the following workaround. Documenting it here in case anyone finds it useful:
Instead of using the default value of DOCKER_HOST
provided by boot2docker up
, establish the docker connection through an ssh tunnel:
How to stop com.apple.dock.extra from "using significant energy"
HowTo: Changing the available display formats for Evernote's "Insert Date" command
Changing "message:" protocol handler from Sparrow back to Mail.app
Fix journal in an HFS+ file system
Yesterday my external Western Digital disk (which I use for Time Machine, among other things) stopped mounting automatically when I plug it in. This may *cough*definitely*cough*have something to do with me unmounting it forcefully while it was doing a backup, since I was in a hurry.
Remapping Mac modifier keys on Emacs 23.3
I just switched from Carbon Emacs (which is old Emacs 22.x) to Emacs for OS X Modified on my Mac (which is a Cocoa app, and Emacs 23.3).
Installing cfengine on Mac OS X
Cfengine (tested 3.2.0) installs easily on OS X (tested 10.7), given that it's Unix. One problem I encountered was that it does not compile with the bundled version of Berkeley DB (it recognizes it during configure, but produces compilation errors). The solution is to use some other DB engine. I chose Tokyo Cabinet. Using homebrew, the process is simple
brew install tokyo-cabinet
After this, configure --with-tokyocabinet, and then compile and install as usual.
My thoughts about the Lion upgrade process
I just finished upgrading our Mac (my wife and I share it) to Lion. It looks very nice. This has been the OS X upgrade to which I have given less thought: purchase, download, backup, install, done.
CopperExport development paused
Unfortunately, since the big move, I find myself without easy access to a Mac for development (I had a Mac at my previous job, and I use Windows at my new job), which pretty much makes fixing these bugs impossible. Until I get a new machine, I will not be able to provide updates to CopperExport. Of course, if any developers out there want to make the appropriate fixes, I will happily accept patches that you submit, and produce a new release myself.
Tag: macros
How to digitally sign a macro project - Outlook
This article explains how you can digitally sign a file or a macro project by using a certificate. If you don't already have a digital certificate, you must obtain one. To test macro projects on your own computer, you can create your own self-signing certificate by using the Selfcert.exe tool.
Useful for future reference. I'm playing with a bit of VBA in Outlook, and found that my code would work fine right after writing it, but if I restart Outlook, the macros will be disabled unless I first sign them as described in this article.
Tag: mail
Changing "message:" protocol handler from Sparrow back to Mail.app
Tag: markdown
Testing markdown support
I’m giving an Ignite talk for the first time at DevOps days Paris. It’s an interesting format: a 5-minute talk with 20 auto-advancing slides, every 15 seconds. I found How to Give a great Ignite Talk by Scott Berkun very useful, including the accompanying video.
Tag: mosaic
The First Apple Homepage
via http://kfury.com/the-first-apple-homepage
Tag: netlify
My blogging setup with Emacs, Org mode, ox-hugo, Hugo, GitLab and Netlify
Tag: networking
Know your tools
Tag: nix
Using Nix's "Single-user Mode" on macOS
Here is how to set up Nix in single-user mode on macOS.
Tag: nova
What's New in CFEngine 3: Making System Administration Even More Powerful - O'Reilly Radar
CFEngine is both the oldest and the newest of the popular tools for automating site administration. Mark Burgess invented it as a free software project in 1993, and years later, as deployments in the field outgrew its original design he gave it a complete rethink and developed the powerful concept of promise theory to make it modular and maintainable.
I contributed to this article by Andy Oram on CFEngine 3. It talks about the history of CFEngine 3, why it is a powerful tool for system administrators, and what is new in the latest releases of both the commercial and the open-source versions of CFEngine.
"Introduction to CFEngine 3 Nova" webinar
Tag: obituary
Dennis M. Ritchie, R.I.P.
Dennis Ritchie passed away last weekend. He was one of the great minds in systems research and development, father of the C programming language, and one of the big contributors to Unix, both of which power the Mac on which I'm typing this, the iPhone on my desk, the Windows machine I use at work, the servers on which this blog is hosted, and much of the infrastructure both you and I use to connect to it.
Steve Jobs, R.I.P.
Gene Schultz, R.I.P.
A few days ago I learned through Spaf that Gene Schultz had had a severe accident and was hospitalized. Later we learned that the accident was apparently caused by an earlier stroke that went unrecognized. Yesterday, October 2nd, during the afternoon, Gene passed away.
Tag: objc
Tiobe Index: C back at #1
Position
Apr 2010Position
Apr 2009Delta in Position Programming Language Ratings
Apr 2010Delta
Apr 2009Status 1 2 ![]()
C 18.058% +2.59% A 2 1 ![]()
Java 18.051% -1.29% A 3 3 C++ 9.707% -1.03% A 4 4 PHP 9.662% -0.23% A 5 5 (Visual) Basic 6.392% -2.70% A 6 7 ![]()
C# 4.435% +0.38% A 7 6 ![]()
Python 4.205% -1.88% A 8 9 ![]()
Perl 3.553% +0.09% A 9 11 ![]()
Delphi 2.715% +0.44% A 10 8 ![]()
JavaScript 2.469% -1.21% A 11 42 ![]()
Objective-C 2.288% +2.15% A 12 10 ![]()
Ruby 2.221% -0.35% A 13 14 ![]()
SAS 0.717% -0.07% A 14 12 ![]()
PL/SQL 0.710% -0.38% A 15 - ![]()
Go 0.710% +0.71% A 16 15 ![]()
Pascal 0.648% -0.07% B 17 17 ABAP 0.625% -0.03% B 18 20 ![]()
MATLAB 0.616% +0.13% B 19 22 ![]()
ActionScript 0.545% +0.09% B 20 19 ![]()
Lua 0.521% +0.03% B
Interesting information (look at the link for more stats, including long term trends, etc.) I find it interesting that Obj-C has seen such a dramatic increase in one year. A testament to the increasing popularity of Mac OS X and iPhone development? Also of note is a slight decrease in Ruby popularity.
Tag: onenote
GTD Tip: one-key opening of INBOX notebook in OneNote
- Download and install AutoHotKey, if you don't have it already (it's a really useful free application, well worth exploring).
- Add the following line to your default AutoHotKey.ahk file (normally in ~/Documents/AutoHotKey.ahk):This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
; AutoHotKey configuration to open my Inbox in OneNote. ; To use this, change the file path to the path of the GTD notebook ; you want to use. You may also want to change the key to which it ; is assigned (I use Win-i). #i::Run c:\Users\zambonid\Documents\OneNote Notebooks\GTD\INBOX.one
Setting up my GTD system in Windows - links
Since I started at my new job and moved to a new machine and OS, my old GTD setup has fallen by the wayside and I have found myself at a loss trying to keep track of things. I have found OneNote to be a very useful tool for keeping notes and reference material, and Outlook 2010 is actually not that bad as a task/calendar/email management tool.
So, as a first step, here are some links I have found and which I am in the process of reading and digesting for creating my own setup:
Tag: oreilly
Learning CFEngine 3 has been released
I am ecstatic to announce that the book is now officially released!
I am so happy :-)
"Learning CFEngine 3" Early Release now available -use AUTHD to get 40-50% off
My upcoming book "Learning CFEngine 3" is now available as an Early Release, which includes (for now) the first four chapters of the book. You can use the code AUTHD to get 40% off the print book, or 50% off the ebook version.
Go get yours! And of course, I'd be happy to receive any feedback you have.
What's New in CFEngine 3: Making System Administration Even More Powerful - O'Reilly Radar
CFEngine is both the oldest and the newest of the popular tools for automating site administration. Mark Burgess invented it as a free software project in 1993, and years later, as deployments in the field outgrew its original design he gave it a complete rethink and developed the powerful concept of promise theory to make it modular and maintainable.
I contributed to this article by Andy Oram on CFEngine 3. It talks about the history of CFEngine 3, why it is a powerful tool for system administrators, and what is new in the latest releases of both the commercial and the open-source versions of CFEngine.
New job, new book
Tag: orgmode
My blogging setup with Emacs, Org mode, ox-hugo, Hugo, GitLab and Netlify
New release of Publishing with Emacs, Org-mode and Leanpub
How to insert screenshots in Org documents on macOS
New book: Publishing with Emacs, Org-mode and Leanpub
Beautifying Org Mode in Emacs
Tag: outlook
Fixing the Outlook-to-OmniFocus Script
Here’s how to fix the breakage caused by one of the recent updates to Microsoft Outlook in the Outlook-to-OmniFocus AppleScript included with my SendToOmniFocus spoon.
Automatically creating tasks from email in Outlook
Please note: I am no longer using Windows nor Outlook, so unfortunately I cannot offer any help with problems you encounter using these scripts and techniques.
Over the last few days I have been redoing my GTD-under-Outlook setup, based on the instructions available in the "GTD and Outlook" guide from DavidCo (I will write more about my setup later). One of the tricks the guide suggest is creating a mail rule on outgoing mail, which scans the message body for a special tag (/wf or *wf* are suggested) and automatically adds the message to the @WAITING FOR email folder.
Overhauling my GTD system under Windows
As you may know, I'm a reluctant switcher from Mac to Windows. I am also a fan of GTD. I had been using Jello Dashboard (JD) to implement GTD under Outlook. JD is a very nice system, the developer is friendly and responsive, and I had even written several patches to adapt it to my way of working. I was even in the process of drafting a series of blog posts titled "My GTD under Outlook setup".
How to digitally sign a macro project - Outlook
This article explains how you can digitally sign a file or a macro project by using a certificate. If you don't already have a digital certificate, you must obtain one. To test macro projects on your own computer, you can create your own self-signing certificate by using the Selfcert.exe tool.
Useful for future reference. I'm playing with a bit of VBA in Outlook, and found that my code would work fine right after writing it, but if I restart Outlook, the macros will be disabled unless I first sign them as described in this article.
Setting up a global hotkey to add tasks to Outlook
One thing I missed since I moved from a Mac (using The Hit List for GTD) to Outlook (using Jello Dashboard for GTD) was the availability of a global hot key that I could use to bring up a text entry box which I could use to quickly add things into my electronic Inbox, for later processing.
I have found a way to achieve this, and here is the setup I am using now:
Setting up my GTD system in Windows - links
Since I started at my new job and moved to a new machine and OS, my old GTD setup has fallen by the wayside and I have found myself at a loss trying to keep track of things. I have found OneNote to be a very useful tool for keeping notes and reference material, and Outlook 2010 is actually not that bad as a task/calendar/email management tool.
So, as a first step, here are some links I have found and which I am in the process of reading and digesting for creating my own setup:
Tag: people
Dennis M. Ritchie, R.I.P.
Dennis Ritchie passed away last weekend. He was one of the great minds in systems research and development, father of the C programming language, and one of the big contributors to Unix, both of which power the Mac on which I'm typing this, the iPhone on my desk, the Windows machine I use at work, the servers on which this blog is hosted, and much of the infrastructure both you and I use to connect to it.
Steve Jobs, R.I.P.
Gene Schultz, R.I.P.
A few days ago I learned through Spaf that Gene Schultz had had a severe accident and was hospitalized. Later we learned that the accident was apparently caused by an earlier stroke that went unrecognized. Yesterday, October 2nd, during the afternoon, Gene passed away.
Tag: perl
Capturing multiple matches in Ruby
To collect all regex matches in a string into an array, pass the regexp object to the string's scan() method, e.g.: myarray = mystring.scan(/regex/). Sometimes, it is easier to create a regex to match the delimiters rather than the text you are interested in. In that case, use the split() method instead, e.g.: myarray = mystring.split(/delimiter/). The split() method discards all regex matches, returning the text between the matches. The scan() method does the opposite.
If your regular expression contains capturing groups, scan() returns an array of arrays. Each element in the overall array will contain an array consisting of the overall regex match, plus the text matched by all capturing groups.
Tag: personal
New job, new book
Going home
It isn't so much a leaving as a beginning of something else. When you return, as you will, it will be with a more wordly viewpoint. That is both a loss and a gain.
Tag: photos
Purdue at Night
Tag: picc12
CFEngine talks at PICC'12 conference
Tag: posterous
Website redesign and unification
Tag: prezi
"Security in the Third Wave of IT Engineering"
Today I gave a presentation at UNAM's 2011 Computer Security Conference in Mexico City. Below you will find my presentation (done using prezi.com, follow this link if you can't see it below). You can also get the PDF version.
Related blog posts from cfengine.com:
Tag: privacy
Deleting my Facebook account
Today I reactivated my Facebook account just to be able to delete it
completely. If you find Facebook useful, you should at least be aware
of its potential privacy issues, and tune your privacy settings to a
level that you find comfortable. Here are some links where you can
find more information:
http://www.fastcompany.com/1624745/time-to-audit-your-facebook-privacy-settings
http://www.fastcompany.com/1648478/online-privacy-check-yourself-before-you-w... Personally, I don't find Facebook useful enough to go through the
hassle. My account has been deactivated for the last couple of weeks
and I haven't missed it, so now it's time to permanently delete it.
Clicky clicky: https://ssl.facebook.com/help/contact.php?show_form=delete_account
The Evolution of Privacy on Facebook and why I'm dropping off
This is a very good analysis, and is why my Facebook account is currently deactivated, and probably will be deleted. Contrary to Matt, I don't find Facebook very useful. Mostly it's served me to be found by people by whom I wasn't all that interested in being found, to see relatives' photos (which I can also receive through other means), to be endlessly spammed by people playing Farmville and, most usefully, to contact people whose email addresses I don't have or can't bother to remember. None of these are indispensable or irreplaceable to me.
Tag: productivity
Overhauling my GTD system under Windows
As you may know, I'm a reluctant switcher from Mac to Windows. I am also a fan of GTD. I had been using Jello Dashboard (JD) to implement GTD under Outlook. JD is a very nice system, the developer is friendly and responsive, and I had even written several patches to adapt it to my way of working. I was even in the process of drafting a series of blog posts titled "My GTD under Outlook setup".
Setting up a global hotkey to add tasks to Outlook
One thing I missed since I moved from a Mac (using The Hit List for GTD) to Outlook (using Jello Dashboard for GTD) was the availability of a global hot key that I could use to bring up a text entry box which I could use to quickly add things into my electronic Inbox, for later processing.
I have found a way to achieve this, and here is the setup I am using now:
How important are the tools you use with GTD?
Short video of David Allen talking about the importance of the GTD tools you choose. Conclusion: the most important thing is that you choose a tool you actually use, because the moment you stop putting your stuff in it, it will stop working.
Timely for me as I rebuild my GTD toolbox and system this week.
Setting up my GTD system in Windows - links
Since I started at my new job and moved to a new machine and OS, my old GTD setup has fallen by the wayside and I have found myself at a loss trying to keep track of things. I have found OneNote to be a very useful tool for keeping notes and reference material, and Outlook 2010 is actually not that bad as a task/calendar/email management tool.
So, as a first step, here are some links I have found and which I am in the process of reading and digesting for creating my own setup:
Tag: programming
Tiobe Index: C back at #1
Position
Apr 2010Position
Apr 2009Delta in Position Programming Language Ratings
Apr 2010Delta
Apr 2009Status 1 2 ![]()
C 18.058% +2.59% A 2 1 ![]()
Java 18.051% -1.29% A 3 3 C++ 9.707% -1.03% A 4 4 PHP 9.662% -0.23% A 5 5 (Visual) Basic 6.392% -2.70% A 6 7 ![]()
C# 4.435% +0.38% A 7 6 ![]()
Python 4.205% -1.88% A 8 9 ![]()
Perl 3.553% +0.09% A 9 11 ![]()
Delphi 2.715% +0.44% A 10 8 ![]()
JavaScript 2.469% -1.21% A 11 42 ![]()
Objective-C 2.288% +2.15% A 12 10 ![]()
Ruby 2.221% -0.35% A 13 14 ![]()
SAS 0.717% -0.07% A 14 12 ![]()
PL/SQL 0.710% -0.38% A 15 - ![]()
Go 0.710% +0.71% A 16 15 ![]()
Pascal 0.648% -0.07% B 17 17 ABAP 0.625% -0.03% B 18 20 ![]()
MATLAB 0.616% +0.13% B 19 22 ![]()
ActionScript 0.545% +0.09% B 20 19 ![]()
Lua 0.521% +0.03% B
Interesting information (look at the link for more stats, including long term trends, etc.) I find it interesting that Obj-C has seen such a dramatic increase in one year. A testament to the increasing popularity of Mac OS X and iPhone development? Also of note is a slight decrease in Ruby popularity.
Tag: publishing
New release of Publishing with Emacs, Org-mode and Leanpub
New book: Publishing with Emacs, Org-mode and Leanpub
Tag: puppet
The State of Open Source System Automation
The days of DIY system administration are rapidly coming to a close. Why? Because the open source tools available are just too good not to use. Presenting Bcfg2, Cfengine, Chef and Puppet.
Nice overview of the Usenix 2010 Configuration Management Summit, including descriptions and comparisons of the four major open-source CM systems.
Tag: purdue
Purdue at Night
Tag: pygments
Cfengine3 lexer for Pygments
I have written a Cfengine3 lexer for Pygments, the open source syntax-highlighter used by Gist and many other sites. It seems to work fine on all the cfengine policy files I have tested, but if you find anything that doesn't quite work as expected, please let me know. This is my first-ever Pygments lexer, so if you are an expert and can advise me on better ways of doing things, I'd very much appreciate the feedback too.
Tag: python
Cfengine3 lexer for Pygments
I have written a Cfengine3 lexer for Pygments, the open source syntax-highlighter used by Gist and many other sites. It seems to work fine on all the cfengine policy files I have tested, but if you find anything that doesn't quite work as expected, please let me know. This is my first-ever Pygments lexer, so if you are an expert and can advise me on better ways of doing things, I'd very much appreciate the feedback too.
Tag: reading
Reading on multiple media
A couple of days ago I finished reading Steve Jobs by Walter Isaacson. I thoroughly enjoyed it (I may post a longer review later on, but I really liked learning the "behind the scenes" of much of what I witnessed from the outside over so many years).
With this book, for the first time, I decided to conduct an experiment. I got the book as an audiobook (from Audible, playing on my iPhone), as an ebook (using Kindle on my iPhone) and also the hardcover physical book. This allowed me to read the hardcover book when at home, to read the ebook whenever I was around and had some quiet time, or to listen to the audiobook when I was moving around (walking, driving, working out, etc.).Tag: reference
Must-Have Windows Software (or Windows Programs that I use) - good coders code, great reuse
I am not just a Linux enthusiast, I also happen to use Windows quite often. In fact, Windows is my primary desktop from which I connect to all the other boxes and do my work on. During the years of Windows usage, I have accumulated a list of must-have Windows programs that I wouldn’t be able to work without. Some of them are commercial, some are freeware, but that doesn’t matter. What matters is how productive you are with your setup. If you’re really productive on Linux with your own set of tools, it’s perfectly fine and you have done a great job of finding the best tools of trade.
Having recently moved to Windows as my main desktop OS (out of work requirement, not by wish), I have been trying to find good software that makes it a more pleasant environment. This list has many good recommendations.
Tag: regex
Capturing multiple matches in Ruby
To collect all regex matches in a string into an array, pass the regexp object to the string's scan() method, e.g.: myarray = mystring.scan(/regex/). Sometimes, it is easier to create a regex to match the delimiters rather than the text you are interested in. In that case, use the split() method instead, e.g.: myarray = mystring.split(/delimiter/). The split() method discards all regex matches, returning the text between the matches. The scan() method does the opposite.
If your regular expression contains capturing groups, scan() returns an array of arrays. Each element in the overall array will contain an array consisting of the overall regex match, plus the text matched by all capturing groups.
Tag: review
Single-tap conference dialing in iOS 4.3
Apple released iOS 4.3 a few days ago, and if you follow this topic at all, you have probably already heard all about the Personal Hotspot feature, AirPlay enhancements, and whatnot. But buried in the notes for this release was a new feature that caught my attention:
Single tap conference call dialing with a pause to send a passcode
I have found almost no mentions of this new feature online (most reviews focus on the "bigger" features), so I thought I'd explore it a little bit.
Tag: ruby
Capturing multiple matches in Ruby
To collect all regex matches in a string into an array, pass the regexp object to the string's scan() method, e.g.: myarray = mystring.scan(/regex/). Sometimes, it is easier to create a regex to match the delimiters rather than the text you are interested in. In that case, use the split() method instead, e.g.: myarray = mystring.split(/delimiter/). The split() method discards all regex matches, returning the text between the matches. The scan() method does the opposite.
If your regular expression contains capturing groups, scan() returns an array of arrays. Each element in the overall array will contain an array consisting of the overall regex match, plus the text matched by all capturing groups.
Tag: screenshots
All the apps on my iPhone
I’m doing some cleanup and reorganization, and captured my current app setup as a reference point. Here they are.
Quick note: The first screen is my most-used apps (some are going out now, like 2Do which I've never liked too much, but was the best way to sync tasks with Outlook, which I'm no longer forced using). Second screen is all my folders. Third and fourth screens are my girls' screens, with the games they use when they borrow my phone. The games I play are mostly in the first "Games" folder.
Tag: scribe
Google Scribe-generated prose (aka "Google Scribe channels Kanye West")
Google has launched a new labs project called Google Scribe, which essentially provides an auto-completion service. You type, it autocompletes. The following text was generated by typing a single space, and from then on simply accepting the default suggestions (pressing "Enter" every time the suggestion popup appeared). I had to stop at some point, but it seems like a good source of mindless entertainment. Also, the result varies depending on the initial seed word you provide, and also on whether you just accept blindly (Enter) or type spaces at certain places. These results also provide some insight into the training texts that were used ("I'ma let you finish...")
Tag: script
Automatically creating tasks from email in Outlook
Please note: I am no longer using Windows nor Outlook, so unfortunately I cannot offer any help with problems you encounter using these scripts and techniques.
Over the last few days I have been redoing my GTD-under-Outlook setup, based on the instructions available in the "GTD and Outlook" guide from DavidCo (I will write more about my setup later). One of the tricks the guide suggest is creating a mail rule on outgoing mail, which scans the message body for a special tag (/wf or *wf* are suggested) and automatically adds the message to the @WAITING FOR email folder.
Tag: security
"Security in the Third Wave of IT Engineering"
Today I gave a presentation at UNAM's 2011 Computer Security Conference in Mexico City. Below you will find my presentation (done using prezi.com, follow this link if you can't see it below). You can also get the PDF version.
Related blog posts from cfengine.com:
Layer 8: The exception IS the rule
Whenever you look at a firewall rule, half the time you’re going to be asking yourself, “Why is that there? Did *I* put it there? Do we still need it?” It would sure be nice if the explanation were right there, as a comment that could be version-tracked, exported into nice reports, searched on, and placed in a standard format that would be compatible with other exception entries in other tools. (Kind of like a syslog for exceptions.) It would be nice if you could mark a scanner finding as, “We KNOW it’s there. We’re not going to fix it. Just for these two machines, STOP REPORTING ON THIS.”)
Insightful article. I can't count the number of times I have asked myself exactly this, and hoped for a good, INTEGRATED way of keeping track of these exceptions.
Rugged software
I am rugged - and more importantly, my code is rugged.
I recognize that software has become a foundation of our modern world.
I recognize the awesome responsibility that comes with this foundational role.
I recognize that my code will be used in ways I cannot anticipate, in ways it was not designed, and for longer than it was ever intended.
I recognize that my code will be attacked by talented and persistent adversaries who threaten our physical, economic, and national security.
Tag: shell
Using and writing completions in Elvish
Bang-Bang (!!, !$) Shell Shortcuts in Elvish
Elvish, an awesome Unix shell
Tag: sitenews
On the other side
About a year ago, Posterous was acquired by Twitter. A month ago, it was announced that it will be completely shut down by April 30th. I’ll spare you my rant about how the awesome customer service that characterized Posterous pre-acquisition completely disappeared after the acquisition :)
On a more practical note, Posterous’ closing meant finding a new place to host my blogs. There are many options (you can find many of them described in the posthaven.com migration guide), but I decided to go the DIY way and move my blogs to Octopress, hosted on GitHub Pages.
Website redesign and unification
Updated server and service setup
(a friend asked me about my online setup, and I wrote the text below. Then I realized it would also make an interesting blog post, and I just copied and pasted it, with minimal editing, into an email to posterous. This is why I love posterous, it makes posting so easy)
For my setup, I have a hodgepodge of stuff all aggregated under the zzamboni.org domain. I wrote a blog post about my setup some time ago: http://blog.zzamboni.org/server-less-does-not-mean-service-lessTag: software
Grabcartoons v2.7
Must-Have Windows Software (or Windows Programs that I use) - good coders code, great reuse
I am not just a Linux enthusiast, I also happen to use Windows quite often. In fact, Windows is my primary desktop from which I connect to all the other boxes and do my work on. During the years of Windows usage, I have accumulated a list of must-have Windows programs that I wouldn’t be able to work without. Some of them are commercial, some are freeware, but that doesn’t matter. What matters is how productive you are with your setup. If you’re really productive on Linux with your own set of tools, it’s perfectly fine and you have done a great job of finding the best tools of trade.
Having recently moved to Windows as my main desktop OS (out of work requirement, not by wish), I have been trying to find good software that makes it a more pleasant environment. This list has many good recommendations.
Rugged software
I am rugged - and more importantly, my code is rugged.
I recognize that software has become a foundation of our modern world.
I recognize the awesome responsibility that comes with this foundational role.
I recognize that my code will be used in ways I cannot anticipate, in ways it was not designed, and for longer than it was ever intended.
I recognize that my code will be attacked by talented and persistent adversaries who threaten our physical, economic, and national security.
CopperExport development paused
Unfortunately, since the big move, I find myself without easy access to a Mac for development (I had a Mac at my previous job, and I use Windows at my new job), which pretty much makes fixing these bugs impossible. Until I get a new machine, I will not be able to provide updates to CopperExport. Of course, if any developers out there want to make the appropriate fixes, I will happily accept patches that you submit, and produce a new release myself.
Tag: spanish
Nuevo libro "Utilerías de Unix"
Tag: sparrow
Changing "message:" protocol handler from Sparrow back to Mail.app
Tag: spoons
Using Spoons in Hammerspoon
Tag: ssh
Using Multiple SSH Keys with Github
via http://www.freshblurbs.com/blog/2013/06/22/github-multiple-ssh-keys.html#tldr
Editing sshd configuration files with cfengine3
Here's a cfengine bundle that I wrote for editing the sshd configuration file by passing an array with the parameters. Using an array is a very elegant way of defining the values to set. The bundle also restarts sshd after any changes are made, unless the no_restarts class is defined.
The first gist contains the edit_sshd bundle itself, together with the set_config_values bundle that actually performs the editing job (this should go into a library file, I have it in my personal version of cfengine_stdlib.cf). The second file is a sample bundle showing how to use edit_sshd.
Tag: statistics
Tiobe Index: C back at #1
Position
Apr 2010Position
Apr 2009Delta in Position Programming Language Ratings
Apr 2010Delta
Apr 2009Status 1 2 ![]()
C 18.058% +2.59% A 2 1 ![]()
Java 18.051% -1.29% A 3 3 C++ 9.707% -1.03% A 4 4 PHP 9.662% -0.23% A 5 5 (Visual) Basic 6.392% -2.70% A 6 7 ![]()
C# 4.435% +0.38% A 7 6 ![]()
Python 4.205% -1.88% A 8 9 ![]()
Perl 3.553% +0.09% A 9 11 ![]()
Delphi 2.715% +0.44% A 10 8 ![]()
JavaScript 2.469% -1.21% A 11 42 ![]()
Objective-C 2.288% +2.15% A 12 10 ![]()
Ruby 2.221% -0.35% A 13 14 ![]()
SAS 0.717% -0.07% A 14 12 ![]()
PL/SQL 0.710% -0.38% A 15 - ![]()
Go 0.710% +0.71% A 16 15 ![]()
Pascal 0.648% -0.07% B 17 17 ABAP 0.625% -0.03% B 18 20 ![]()
MATLAB 0.616% +0.13% B 19 22 ![]()
ActionScript 0.545% +0.09% B 20 19 ![]()
Lua 0.521% +0.03% B
Interesting information (look at the link for more stats, including long term trends, etc.) I find it interesting that Obj-C has seen such a dramatic increase in one year. A testament to the increasing popularity of Mac OS X and iPhone development? Also of note is a slight decrease in Ruby popularity.
Tag: stevejobs
Reading on multiple media
A couple of days ago I finished reading Steve Jobs by Walter Isaacson. I thoroughly enjoyed it (I may post a longer review later on, but I really liked learning the "behind the scenes" of much of what I witnessed from the outside over so many years).
With this book, for the first time, I decided to conduct an experiment. I got the book as an audiobook (from Audible, playing on my iPhone), as an ebook (using Kindle on my iPhone) and also the hardcover physical book. This allowed me to read the hardcover book when at home, to read the ebook whenever I was around and had some quiet time, or to listen to the audiobook when I was moving around (walking, driving, working out, etc.).Dennis M. Ritchie, R.I.P.
Dennis Ritchie passed away last weekend. He was one of the great minds in systems research and development, father of the C programming language, and one of the big contributors to Unix, both of which power the Mac on which I'm typing this, the iPhone on my desk, the Windows machine I use at work, the servers on which this blog is hosted, and much of the infrastructure both you and I use to connect to it.
Steve Jobs, R.I.P.
Tag: subversion
Storing CFEngine configuration in CVS
Useful article about storing both development and production configurations of cfengine using a version control mechanism. I am in the process of developing a similar setup using git, I will share it here when I get it to work properly.
Tag: symlink
Making cygwin, Windows and emacs understand the same symlinks
Today I ran into the problem that symlinks created under cygwin using "ln -s" are not understood by Windows, and of course Windows shortcuts are seen by cygwin as regular files. Happily, this is a (semi-)solved problem. For reference, this is what needs to be done:
- Add "winsymlinks" to your CYGWIN environment variable. For example, in my .bashrc I have the following: export CYGWIN="nodosfilewarning winsymlinks"
This makes cygwin create symlinks differently, in a form that is understood both by it and by Windows.
This is the main step, and the only one if you just need access from the shell and from the Windows explorer. However, emacs still sees those symlinks as regular .lnk files. To fix this, follow the next step.
Tag: sysadmin
"Security in the Third Wave of IT Engineering"
Today I gave a presentation at UNAM's 2011 Computer Security Conference in Mexico City. Below you will find my presentation (done using prezi.com, follow this link if you can't see it below). You can also get the PDF version.
Related blog posts from cfengine.com:
Tag: talks
CFEngine talks at PICC'12 conference
Tag: technology
Translation on the fly
When I arrived in Switzerland nine years ago I didn't speak a word of German (much less Swiss German!), so for a while I faced a very real and practical problem. I would encounter signs on the street, and have absolutely no idea what they meant. Does this sign mean I can pass, or I cannot? "Watch your step" or "Watch for the vicious dog"? During that period, I often wished for a gadget that I could point at the sign and would give me an instant translation.
Tag: tips
Using Nix's "Single-user Mode" on macOS
Here is how to set up Nix in single-user mode on macOS.
Elvish, an awesome Unix shell
Fast translation with Google Translator
via https://medium.com/@mrdoro/fast-translation-with-google-translator-and-mac-osx-817e32233b7a
Spotlight: use-package, a declarative configuration tool - Mastering Emacs
via https://www.masteringemacs.org/article/spotlight-use-package-a-declarative-configuration-tool
Using Multiple SSH Keys with Github
via http://www.freshblurbs.com/blog/2013/06/22/github-multiple-ssh-keys.html#tldr
Fixing Emacs problems with the fish shell
I started getting errors from the TRAMP Emacs package because I was using fish as my default shell, and it does not recognize certain standard syntax elements (such as &&
to separate commands), and Emacs runs subcommands under the default shell. I fixed this by:
- Changing my account's default shell back to `/bin/bash`
- Changing my Terminal.app preferences to run `/usr/local/bin/fish` when a shell opens, instead of the default login shell:
Moving files between git repositories, preserving history
I needed to copy a directory between two git
repositories while preserving its history. I found some good instructions at http://gbayer.com/development/moving-files-from-one-git-repository-to-another-preserving-history/, which got me started, but I figured out a way to avoid having to move all the files into their directory again (lines 5-6 in Greg’s instructions) by reversing the filter to remove everything I don’t want instead of only including the directory I want. Here are the steps (the idea is the same as in Greg’s post, so please read that to get the explanation, I’m only listing the commands here for reference):
Three levels of GIT config
via http://www.codinginahurry.com/2011/02/05/three-levels-of-git-config/
git
config; project, global and system.-
-
- project: Project configs are only available for the current project and stored in
.git/config
in the project's directory. - global: Global configs are available for all projects for the current user and stored in
~/.gitconfig
. - system: System configs are available for all the users/projects and stored in
/etc/gitconfig
.
- project: Project configs are only available for the current project and stored in
-
git config user.name "John Doe"
git config --global user.name "John Doe"
git config --system user.name "John Doe"
Watching for changes (Polling notifications) in Evernote
via https://dev.evernote.com/doc/articles/polling_notification.php
Polling
If your app wants to know about changes in a user's Evernote account, you'll probably consider calling the NoteStore.findNotesMetadata function periodically to search for new notes. findNotes is incredibly powerful, but it's also expensive for our servers - we need to load the user's Lucene index, perform the search across all of their notes, hit the database to pull out the results, and send those results over the network to your app. If you're building a web application, you should use webhooks instead of polling. If you have to poll, you should follow the guidelines below.
How to create a new KVM VM using command line tools
Find all single-note tags in Evernote
How to turn off "sort by relevance" in Evernote 5.6.0 Beta

Mac keyboard shortcuts by Matt Gemmell
Airmail tip: prevent "Save to Evernote" action from opening the created note
- Quit Airmail (don’t know if this is necessary, but it can’t hurt)
- Open the Terminal app
- Run the following command in the terminal (all in a single line):
sudo /Applications/Utilities/AppleScript\ Editor.app/Contents/MacOS/AppleScript\ Editor /Applications/Airmail.app/Contents/Resources/Evernote.applescript
This will ask you for your password and then run the AppleScript Editor.
Note: in my experience, the AppleScript Editor app may open behind the terminal window - look at the Dock for its icon, and bring it to the front. - In the AppleScript Editor window, find this line:
open note window with the note
and comment it out by inserting a # at the beginning, like this:
# open note window with the note - Save the modified file and quit AppleScript Editor.
- Restart Airmail.
How to stop com.apple.dock.extra from "using significant energy"
HowTo: Changing the available display formats for Evernote's "Insert Date" command
Changing "message:" protocol handler from Sparrow back to Mail.app
Fix journal in an HFS+ file system
Yesterday my external Western Digital disk (which I use for Time Machine, among other things) stopped mounting automatically when I plug it in. This may *cough*definitely*cough*have something to do with me unmounting it forcefully while it was doing a backup, since I was in a hurry.
How to fix "texexpand error: More than one input file specified" in latex2html
There's a bug that causes problems when running latex2html on files which have spaces in the path. The workaround is to either move things to folders with no spaces, or add appropriate symbolic links.
This error had me stumped in trying to process a latex file with latex2html:
texexpand: Error: More than one input file specified.
texexpand failed: No such file or directory
The fix is simple - make sure the path of the current directory does not have any spaces.
Installing latex2html under Win7 with cygwin
I got latex2html to install on the latest cygwin, however to get the configure to pass I had to alter the configure to recognize cygwin as a UNIX.
Using this patch I was able to properly configure and install latex2html under cygwin in Windows 7.
LogParser, Event Logs, and Vista - Neil Carpenter's Blog - Site Home - TechNet Blogs
The only workaround to this is to convert the logfile to the new evtx format prior to parsing it. You can do this in the event log viewer GUI by doing a Save As... but I find it easier to do this at the command prompt:
wevtutil epl application.evt application.evtx /lf:true
I'm trying to process Windows Event Viewer files (.evt) from some servers on my Win7 machine, which kept me giving a "log file is corrupt" error message. The trick is to convert it to the newer .evtx format before processing. Thankfully this can also be easily done using a command-line utility.
Setting up a global hotkey to add tasks to Outlook
One thing I missed since I moved from a Mac (using The Hit List for GTD) to Outlook (using Jello Dashboard for GTD) was the availability of a global hot key that I could use to bring up a text entry box which I could use to quickly add things into my electronic Inbox, for later processing.
I have found a way to achieve this, and here is the setup I am using now:
GTD tip: clean up physical clutter using ziploc bags
Making cygwin, Windows and emacs understand the same symlinks
Today I ran into the problem that symlinks created under cygwin using "ln -s" are not understood by Windows, and of course Windows shortcuts are seen by cygwin as regular files. Happily, this is a (semi-)solved problem. For reference, this is what needs to be done:
- Add "winsymlinks" to your CYGWIN environment variable. For example, in my .bashrc I have the following: export CYGWIN="nodosfilewarning winsymlinks"
This makes cygwin create symlinks differently, in a form that is understood both by it and by Windows.
This is the main step, and the only one if you just need access from the shell and from the Windows explorer. However, emacs still sees those symlinks as regular .lnk files. To fix this, follow the next step.
Hierarchical copying with cfengine3
I recently posted a snippet to perform hierarchical copying in cfengine3. As I was attempting to integrate this mechanism into my copy of cfengine's COPBL, I realized that no additional functions or body components are needed. Thanks to cfengine3's list expansion, all you need to do is include in the existing copy promise the list containing the desired list of suffixes to try. For example:
files: | |
suse_9:: | |
"${sys.workdir}/bin" | |
perms => usystem("0700"), | |
copy_from => mycopy("${repository}/bin/suse_9"), | |
depth_search => urecurse("1"); |
Becomes:
vars: | |
"suffixes" slist => { "${sys.flavour}" }; | |
files: | |
"${sys.workdir}/bin" | |
perms => usystem("0700"), | |
copy_from => mycopy("${repository}/bin.${suffixes}"), | |
depth_search => urecurse("1"); |
While this looks at first sight even longer than the original (and of course, in this case you could just specify ${sys.flavour} directly in the copy_from statement), it is much more flexible. Instead of defining different sections for each class that you want to handle (e.g. suse_9, redhat_5, etc.), the same code is able to copy the corresponding binary directory for any operating system, you just have to put the corresponding bin.* directory in your repository.
Emulate vi's % command (jump to matching parenthesis) in Emacs
; One of my recent favorite pieces of Emacs configuration. The % command was one of the things I missed the | |
; most in Emacs, until I found this little gem. I modified it from its original source by adding | |
; previous-line and next-line to the list of commands. | |
; From http://www.emacswiki.org/emacs/ParenthesisMatching#toc4 | |
(defun goto-match-paren (arg) | |
"Go to the matching parenthesis if on parenthesis AND last command is a movement command, otherwise insert %. | |
vi style of % jumping to matching brace." | |
(interactive "p") | |
(message "%s" last-command) | |
(if (not (memq last-command '( | |
set-mark | |
cua-set-mark | |
goto-match-paren | |
down-list | |
up-list | |
end-of-defun | |
beginning-of-defun | |
backward-sexp | |
forward-sexp | |
backward-up-list | |
forward-paragraph | |
backward-paragraph | |
end-of-buffer | |
beginning-of-buffer | |
backward-word | |
forward-word | |
mwheel-scroll | |
backward-word | |
forward-word | |
mouse-start-secondary | |
mouse-yank-secondary | |
mouse-secondary-save-then-kill | |
move-end-of-line | |
move-beginning-of-line | |
backward-char | |
forward-char | |
scroll-up | |
scroll-down | |
scroll-left | |
scroll-right | |
mouse-set-point | |
next-buffer | |
previous-buffer | |
previous-line | |
next-line | |
) | |
)) | |
(self-insert-command (or arg 1)) | |
(cond ((looking-at "\\s\(") (forward-list 1) (backward-char 1)) | |
((looking-at "\\s\)") (forward-char 1) (backward-list 1)) | |
(t (self-insert-command (or arg 1)))))) | |
(global-set-key (kbd "%") 'goto-match-paren) |
Installing AucTeX on EmacsW32 on Win7/64bit
$ ./configure --prefix='c:/Program Files (x86)/Emacs/emacs' --with-texmf-dir='/usr/local/share/texmf' --with-lispdir='c:/Program Files (x86)/Emacs/emacs/site-lisp'
$ make
$ make install I then added the following lines to my C:\Program Files (x86)\Emacs\site-lisp\site-start.el file:
Must-Have Windows Software (or Windows Programs that I use) - good coders code, great reuse
I am not just a Linux enthusiast, I also happen to use Windows quite often. In fact, Windows is my primary desktop from which I connect to all the other boxes and do my work on. During the years of Windows usage, I have accumulated a list of must-have Windows programs that I wouldn’t be able to work without. Some of them are commercial, some are freeware, but that doesn’t matter. What matters is how productive you are with your setup. If you’re really productive on Linux with your own set of tools, it’s perfectly fine and you have done a great job of finding the best tools of trade.
Having recently moved to Windows as my main desktop OS (out of work requirement, not by wish), I have been trying to find good software that makes it a more pleasant environment. This list has many good recommendations.
Tag: tools
cf-cmd: A command-line tool for running CFEngine snippets
After building the typical "test bundle" scaffolding in an editor for the hundredth time, I decided to do something about it. The result is the cf-cmd command.
A little useful script I wrote for making it easier to test CFEngine code snippets. Follow the link to see the full details.
How important are the tools you use with GTD?
Short video of David Allen talking about the importance of the GTD tools you choose. Conclusion: the most important thing is that you choose a tool you actually use, because the moment you stop putting your stuff in it, it will stop working.
Timely for me as I rebuild my GTD toolbox and system this week.
Know your tools
Must-Have Windows Software (or Windows Programs that I use) - good coders code, great reuse
I am not just a Linux enthusiast, I also happen to use Windows quite often. In fact, Windows is my primary desktop from which I connect to all the other boxes and do my work on. During the years of Windows usage, I have accumulated a list of must-have Windows programs that I wouldn’t be able to work without. Some of them are commercial, some are freeware, but that doesn’t matter. What matters is how productive you are with your setup. If you’re really productive on Linux with your own set of tools, it’s perfectly fine and you have done a great job of finding the best tools of trade.
Having recently moved to Windows as my main desktop OS (out of work requirement, not by wish), I have been trying to find good software that makes it a more pleasant environment. This list has many good recommendations.
Tag: trackpad
Clicking on the MacBook Pro is entirely artificial
via http://sixcolors.com/post/2015/10/apple-magic-trackpad-2-review/
Tag: translation
Fast translation with Google Translator
via https://medium.com/@mrdoro/fast-translation-with-google-translator-and-mac-osx-817e32233b7a
Tag: tribute
Gene Schultz, R.I.P.
A few days ago I learned through Spaf that Gene Schultz had had a severe accident and was hospitalized. Later we learned that the accident was apparently caused by an earlier stroke that went unrecognized. Yesterday, October 2nd, during the afternoon, Gene passed away.
Tag: unam100
La UNAM cumple 100 años
Si hubiera que reducir a la UNAM a unas cuantas cifras esenciales, tendrían que anotarse, entre otras, las siguientes: 314 mil alumnos, 35 mil académicos, tres mil 500 investigadores, 2 mil edificios, 139 bibliotecas, 56 mil computadoras conectadas en red, 18 museos, otros tantos recintos históricos, un canal de televisión y una estación de radio, una casa editora de miles de libros y de cientos de publicaciones periódicas, así como una Ciudad Universitaria que ha sido declarada por la UNESCO Patrimonio de la Humanidad. Más allá de los activos, en la institución se imparten 85 licenciaturas y operan 40 programas de posgrado, con 83 planes de estudio para maestría y doctorado, así como 34 programas de especialización con 189 orientaciones.
La UNAM tiene aproximadamente el mismo número de estudiantes que empresas como IBM y HP tienen de empleados a nivel mundial.
Tag: unix
Nuevo libro "Utilerías de Unix"
Using and writing completions in Elvish
Bang-Bang (!!, !$) Shell Shortcuts in Elvish
Elvish, an awesome Unix shell
Tag: utilities
Must-Have Windows Software (or Windows Programs that I use) - good coders code, great reuse
I am not just a Linux enthusiast, I also happen to use Windows quite often. In fact, Windows is my primary desktop from which I connect to all the other boxes and do my work on. During the years of Windows usage, I have accumulated a list of must-have Windows programs that I wouldn’t be able to work without. Some of them are commercial, some are freeware, but that doesn’t matter. What matters is how productive you are with your setup. If you’re really productive on Linux with your own set of tools, it’s perfectly fine and you have done a great job of finding the best tools of trade.
Having recently moved to Windows as my main desktop OS (out of work requirement, not by wish), I have been trying to find good software that makes it a more pleasant environment. This list has many good recommendations.
Tag: vba
Automatically creating tasks from email in Outlook
Please note: I am no longer using Windows nor Outlook, so unfortunately I cannot offer any help with problems you encounter using these scripts and techniques.
Over the last few days I have been redoing my GTD-under-Outlook setup, based on the instructions available in the "GTD and Outlook" guide from DavidCo (I will write more about my setup later). One of the tricks the guide suggest is creating a mail rule on outgoing mail, which scans the message body for a special tag (/wf or *wf* are suggested) and automatically adds the message to the @WAITING FOR email folder.
How to digitally sign a macro project - Outlook
This article explains how you can digitally sign a file or a macro project by using a certificate. If you don't already have a digital certificate, you must obtain one. To test macro projects on your own computer, you can create your own self-signing certificate by using the Selfcert.exe tool.
Useful for future reference. I'm playing with a bit of VBA in Outlook, and found that my code would work fine right after writing it, but if I restart Outlook, the macros will be disabled unless I first sign them as described in this article.
Tag: virtualcenter
Starting VirtualCenter automatically when it fails to start
Create a .bat file with following script:net start MSSQL$SQLEXP_VIM
ping 127.0.0.1 -n 120 -w 1000 > null
net start vpxdNote: for SQL Server substitute MSSQLSERVER in the above batch file instead of MSSQL$SQLEXP_VIM.
Set script to run on boot.
In one of my VirtualCenter servers, a Windows XP machine, the VirtualCenter Server service often fails to start because it tries to run before the MSSQL server is fully initialized. This happens even when the dependencies are set correctly between the services (which is the official solution provided by VMware). The workaround is to create a startup script as shown above. I remove the redirection to nul (which means the script window shows the ping output) as a reminder of what is happening.
Tag: vmware
Starting VirtualCenter automatically when it fails to start
Create a .bat file with following script:net start MSSQL$SQLEXP_VIM
ping 127.0.0.1 -n 120 -w 1000 > null
net start vpxdNote: for SQL Server substitute MSSQLSERVER in the above batch file instead of MSSQL$SQLEXP_VIM.
Set script to run on boot.
In one of my VirtualCenter servers, a Windows XP machine, the VirtualCenter Server service often fails to start because it tries to run before the MSSQL server is fully initialized. This happens even when the dependencies are set correctly between the services (which is the official solution provided by VMware). The workaround is to create a startup script as shown above. I remove the redirection to nul (which means the script window shows the ping output) as a reminder of what is happening.
Installing Windows XP in Vmware ESX - "Setup did not find any hard disk drives installed in your computer." | TechHead.co.uk
Trying to install Windows XP within VMWare ESX and getting the following error message?
"Setup did not find any hard disk drives installed in your computer."
The reason for this is that the necessary hard disk controller drivers have not been installed.
Useful information and links for installing XP VMs on a VMware ESX server.
Tag: web
The First Apple Homepage
via http://kfury.com/the-first-apple-homepage
Website redesign and unification
Tag: whisky
Whisky - Matt Gemmell
via http://mattgemmell.com/whisky/
Nice essay.But then, finally, with one last branch hacked from your way, you set eyes upon it, and stand there. Silent and still. Perhaps you raise a hand, feeling time-worn stone beneath your fingertips. A dream, finally made solid. You’ve come so far, and now, at last, you’re here.
Tag: windows
Overhauling my GTD system under Windows
As you may know, I'm a reluctant switcher from Mac to Windows. I am also a fan of GTD. I had been using Jello Dashboard (JD) to implement GTD under Outlook. JD is a very nice system, the developer is friendly and responsive, and I had even written several patches to adapt it to my way of working. I was even in the process of drafting a series of blog posts titled "My GTD under Outlook setup".
Installing latex2html under Win7 with cygwin
I got latex2html to install on the latest cygwin, however to get the configure to pass I had to alter the configure to recognize cygwin as a UNIX.
Using this patch I was able to properly configure and install latex2html under cygwin in Windows 7.
LogParser, Event Logs, and Vista - Neil Carpenter's Blog - Site Home - TechNet Blogs
The only workaround to this is to convert the logfile to the new evtx format prior to parsing it. You can do this in the event log viewer GUI by doing a Save As... but I find it easier to do this at the command prompt:
wevtutil epl application.evt application.evtx /lf:true
I'm trying to process Windows Event Viewer files (.evt) from some servers on my Win7 machine, which kept me giving a "log file is corrupt" error message. The trick is to convert it to the newer .evtx format before processing. Thankfully this can also be easily done using a command-line utility.
Setting up a global hotkey to add tasks to Outlook
One thing I missed since I moved from a Mac (using The Hit List for GTD) to Outlook (using Jello Dashboard for GTD) was the availability of a global hot key that I could use to bring up a text entry box which I could use to quickly add things into my electronic Inbox, for later processing.
I have found a way to achieve this, and here is the setup I am using now:
Making cygwin, Windows and emacs understand the same symlinks
Today I ran into the problem that symlinks created under cygwin using "ln -s" are not understood by Windows, and of course Windows shortcuts are seen by cygwin as regular files. Happily, this is a (semi-)solved problem. For reference, this is what needs to be done:
- Add "winsymlinks" to your CYGWIN environment variable. For example, in my .bashrc I have the following: export CYGWIN="nodosfilewarning winsymlinks"
This makes cygwin create symlinks differently, in a form that is understood both by it and by Windows.
This is the main step, and the only one if you just need access from the shell and from the Windows explorer. However, emacs still sees those symlinks as regular .lnk files. To fix this, follow the next step.
GTD Tip: one-key opening of INBOX notebook in OneNote
- Download and install AutoHotKey, if you don't have it already (it's a really useful free application, well worth exploring).
- Add the following line to your default AutoHotKey.ahk file (normally in ~/Documents/AutoHotKey.ahk):This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
; AutoHotKey configuration to open my Inbox in OneNote. ; To use this, change the file path to the path of the GTD notebook ; you want to use. You may also want to change the key to which it ; is assigned (I use Win-i). #i::Run c:\Users\zambonid\Documents\OneNote Notebooks\GTD\INBOX.one
Installing cfengine on Windows 7 under cygwin
Update (2011/09/05): Updated the instructions for cfengine 3.2.0, cygwin 1.7.9, and tested them on a clean cygwin install.
Installing the cfengine community edition under Windows (the commercial version includes native Windows support) is fairly easy under cygwin, you just need to have the appropriate dependencies installed. Here’s how I did it.
Versions
Additional cygwin packages needed
To install these, run cygwin’s setup.exe, search for each packages in turn, and install them. Make sure you agree to install any additional packages that are listed as dependencies (setup.exe will ask you about it).
Installing AucTeX on EmacsW32 on Win7/64bit
$ ./configure --prefix='c:/Program Files (x86)/Emacs/emacs' --with-texmf-dir='/usr/local/share/texmf' --with-lispdir='c:/Program Files (x86)/Emacs/emacs/site-lisp'
$ make
$ make install I then added the following lines to my C:\Program Files (x86)\Emacs\site-lisp\site-start.el file:
Know your tools
Installing Windows XP in Vmware ESX - "Setup did not find any hard disk drives installed in your computer." | TechHead.co.uk
Trying to install Windows XP within VMWare ESX and getting the following error message?
"Setup did not find any hard disk drives installed in your computer."
The reason for this is that the necessary hard disk controller drivers have not been installed.
Useful information and links for installing XP VMs on a VMware ESX server.
Must-Have Windows Software (or Windows Programs that I use) - good coders code, great reuse
I am not just a Linux enthusiast, I also happen to use Windows quite often. In fact, Windows is my primary desktop from which I connect to all the other boxes and do my work on. During the years of Windows usage, I have accumulated a list of must-have Windows programs that I wouldn’t be able to work without. Some of them are commercial, some are freeware, but that doesn’t matter. What matters is how productive you are with your setup. If you’re really productive on Linux with your own set of tools, it’s perfectly fine and you have done a great job of finding the best tools of trade.
Having recently moved to Windows as my main desktop OS (out of work requirement, not by wish), I have been trying to find good software that makes it a more pleasant environment. This list has many good recommendations.
Tag: windowsxp
Starting VirtualCenter automatically when it fails to start
Create a .bat file with following script:net start MSSQL$SQLEXP_VIM
ping 127.0.0.1 -n 120 -w 1000 > null
net start vpxdNote: for SQL Server substitute MSSQLSERVER in the above batch file instead of MSSQL$SQLEXP_VIM.
Set script to run on boot.
In one of my VirtualCenter servers, a Windows XP machine, the VirtualCenter Server service often fails to start because it tries to run before the MSSQL server is fully initialized. This happens even when the dependencies are set correctly between the services (which is the official solution provided by VMware). The workaround is to create a startup script as shown above. I remove the redirection to nul (which means the script window shows the ping output) as a reminder of what is happening.
Installing Windows XP in Vmware ESX - "Setup did not find any hard disk drives installed in your computer." | TechHead.co.uk
Trying to install Windows XP within VMWare ESX and getting the following error message?
"Setup did not find any hard disk drives installed in your computer."
The reason for this is that the necessary hard disk controller drivers have not been installed.
Useful information and links for installing XP VMs on a VMware ESX server.
Tag: writing
New release of Publishing with Emacs, Org-mode and Leanpub
New book: Publishing with Emacs, Org-mode and Leanpub
Automating Leanpub book publishing with Hammerspoon and CircleCI
I am the author of two books: Learning CFEngine and Learning Hammerspoon, both self-published using Leanpub. The source of my books is kept in GitHub repositories. In this post I will show you how I use the Leanpub API together with Hammerspoon and CircleCI as part of my workflow, to automate and monitor the building, previewing and publishing of my books.

Leanpub basics
First, some basic concepts about the Leanpub API. See the documentation for the full details, I’m only mentioning clear some things you need to know to understand the rest of this post.
Tag: yam
Storing CFEngine configuration in CVS
Useful article about storing both development and production configurations of cfengine using a version control mechanism. I am in the process of developing a similar setup using git, I will share it here when I get it to work properly.
Tag: zznippets
4-year-old’s first aerobatic flight
via http://kottke.org/15/06/airplane-aerobatics-are-hilarious
What a fun video. Encore!
The log: The lifeblood of your data pipeline - O'Reilly Radar
via http://radar.oreilly.com/2015/04/the-log-the-lifeblood-of-your-data-pipeline.html
Whisky - Matt Gemmell
via http://mattgemmell.com/whisky/
Nice essay.But then, finally, with one last branch hacked from your way, you set eyes upon it, and stand there. Silent and still. Perhaps you raise a hand, feeling time-worn stone beneath your fingertips. A dream, finally made solid. You’ve come so far, and now, at last, you’re here.
The First Apple Homepage
via http://kfury.com/the-first-apple-homepage
You’re probably using the wrong dictionary
Mac keyboard shortcuts by Matt Gemmell
Working from home - Matt Gemmell
I’ve been working from home full-time for more than seven years, and running my own business for the same amount of time. Many of us at least have the opportunity to occasionally work from home, and I daresay that many people would like the chance to do so permanently.It’s not just as straightforward as pulling out a laptop in the living room, though. Working from home has a number of difficulties and challenges. In many ways, it’s a battle for mastery of yourself. I’d like to talk about a few of the issues I’ve faced, and how I handle them.
Explanation of temperature scales

This is because Fahrenheit is based on a brine scale and the human body. The scale is basically how cold does it have to be to freeze saltwater (zero Fahrenheit) to what temperature is the human body (100-ish Fahrenheit, although now we know that’s not exactly accurate). Fahrenheit was designed around humans.Celsius and Kelvin are designed around the natural world.Celsius is a scale based on water. Zero is when water freezes, 100 is when water boils.Kelvin uses the same scale as Celsius (one degree, as a unit, is the same between the two), but defines zero as absolute zero, which is basically the temperature at which atoms literally stop doing that spinning thing. Nothing can exist below zero Kelvin. It’s the bottom of the scale.So.Fahrenheit: what temperatures affect humansCelsius: what temperatures affect waterKelvin: what temperatures affect atoms
Ignite talks
I’m giving an Ignite talk for the first time at DevOps days Paris. It’s an interesting format: a 5-minute talk with 20 auto-advancing slides, every 15 seconds. I found How to Give a great Ignite Talk by Scott Berkun very useful, including the accompanying video.
Included in the LinuxCon registration packet: a skateboard
Letters of Note: Regarding your dam complaint
I would like to challenge you to attempt to emulate their dam project any dam time and/or any dam place you choose. I believe I can safely state there is no dam way you could ever match their dam skills, their dam resourcefulness, their dam ingenuity, their dam persistence, their dam determination and/or their dam work ethic.
Amazing letter - read the whole thing, it's incredibly funny.
When a Dragon mated the space station /ht @BadAstronomer
At 16:02 UTC, Friday, May 25, 2012, the SpaceX Dragon officially became the first privately-owned commercial spacecraft to be captured by and berthed at the International Space Station. It is (if I’ve done the math correctly) the 114th spacecraft to dock with ISS, including the missions sent up to build the station. It is the first privately-owned commercial spacecraft in history to do so.
Amazing.
Bezos Expeditions | F-1 Engine Recovery
Photo credit: NASAI'm excited to report that, using state-of-the-art deep sea sonar, the team has found the Apollo 11 engines lying 14,000 feet below the surface, and we're making plans to attempt to raise one or more of them from the ocean floor.
Those are BIG engines. Would be awesome to recover them.
GitHub: Instantly Beautiful Project Pages
Ever pushed a new project to GitHub and wished you had the time or talent to make a beautiful page for it? Stop wishing. We're proud to present the new GitHub Page Generator.
Very nice new feature.
A dog's gotta do what a dog's gotta doo doo | The Sun |News
Poor dog, but hilarious video.
Heart Stop Beating | Jeremiah Zagar on Vimeo
Amazing - a continuous-flow artificial heart. You can live without a pulse.
Six-Legged Giant Finds Secret Hideaway, Hides For 80 Years : Krulwich Wonders... : NPR
Rod Morris/www.rodmorris.co.nzThe story is simple: A bunch of black rats almost wiped out a bunch of gigantic bugs on a little island far, far away from most of us. A few dedicated scientists, passionate about biological diversity, risked their lives to keep the bugs going. For the bugs to get their homes and their future back doesn't depend on scientists anymore. They've done their job. Now it's up to the folks on Lord Howe Island.
Lists of Note: Henry Miller's 11 Commandments
COMMANDMENTS
- Work on one thing at a time until finished.
- Start no more new books, add no more new material to "Black Spring."
- Don't be nervous. Work calmly, joyously, recklessly on whatever is in hand.
- Work according to Program and not according to mood. Stop at the appointed time!
- When you can't create you can work.
- Cement a little every day, rather than add new fertilizers.
- Keep human! See people, go places, drink if you feel like it.
- Don't be a draught-horse! Work with pleasure only.
- Discard the Program when you feel like it—but go back to it next day. Concentrate. Narrow down. Exclude.
- Forget the books you want to write. Think only of the book you are writing.
- Write first and always. Painting, music, friends, cinema, all these come afterwards.
Excellent advice for any line of work, not only writing.
How to remove a subproject/submodule to a git-svn repository
To sum up, you delete the offending directory and then run something to the effect of
git filter-branch --index-filter \
'git rm --cached --ignore-unmatch path/to/the/formerly/misbehaving/module'
I accidentally added another git repository to a git-svn repository, which makes it die when trying to push the changes. This technique helped me fix it. Documenting mostly so I remember when it happens again sometime.
nwdiag - simple network-diagram image generators — blockdiag 1.0 documentation
nwdiag generates network-diagram image file from .diag file. .diag file is similar to DOT file (graphviz’s).
You can get diagrams like this.
Very useful, like Graphviz but specifically for network diagrams. You can probably obtain the same result with Graphviz with the appropriate amount of dot magic, but nwdiag makes this very easy. Other useful graph types in sister projects: http://blockdiag.com/en/index.html
Harbin International Ice and Snow Festival 2012 - The Big Picture
A-ma-zing. All made from ice.
The Joy of Books - YouTube
Wow, the amount of work that went into making this makes me dizzy.
I broke my Zagg Smartbuds :(
How One Bit of Stupidity Could Have Brought Down a Multi-Million Dollar Media Company | Peter Shankman
the man sitting next to me was reading proprietary information, information that could be very, very damaging to this company if in the wrong hands, and he couldn’t have cared less about it
Fascinating, scary story. It's amazing the things people do in airplanes (particularly on their laptops/iPads/phones) as if no one was watching them. Situational awareness is very important.
The Restart Page - Free unlimited rebooting experience from vintage operating systems
Awesome. So many memories.
National Geographic Photography Contest Winners: 2011 - The Big Picture
It's been a while since a linked to a Big Picture set, but this one deserves it. They are all beautiful photographs.
Font Squirrel
We know how hard it is to find quality freeware that is licensed for commercial work. We've done the hard work, hand-selecting these typefaces and presenting them in an easy-to-use format.
Lots of nice, free fonts.
Fraser Speirs - Blog - Misconceptions About iOS Multitasking
Let me wrap this up by giving you a quick summary:
- If someone tells you that all the apps in the multitasking bar are running, using up memory or sucking power, they are wrong.
- When you hit the home button, an app moves from Active to Background and quickly to the Suspended state where it no longer uses CPU time or drains power.
- An app may request an additional 10 minutes of Background running to complete a big task before becoming Suspended.
- If memory is becoming scarce, iOS will automatically move Suspended apps into the Not Running state and reclaim their memory.
- Five classes of apps - audio, GPS, VOIP, Newsstand and accessory apps - and some built-in apps such as Mail may run indefinitely in the background until they complete their task.
Great post explaining iOS background processing and why you don't need to go around removing apps from the multitasking bar.
15 Years Ago Today
15 Years Ago Today Apple acquired NeXT. Not a bad move.
Not a bad move indeed. I loved NeXT computers and NEXTSTEP, and I'm happy every time I see its legacy on my Mac.
WANT: Topbrewer - Scanomat
I remember joking in grad school that we should've had coffee-on-tap so we didn't need to walk all the way down to the kitchen. Seems my dream has come true. I want one of these.
New Volcano Pictures: "Monstrous" Eruption in the Congo
Nyamulagira, which generally erupts every two years, rumbled to life at 8:06 p.m
Must be an amazing sight.
Cinema Stunt by Carlsberg | THEINSPIRATION.COM l THIS IS WH▲T INSPIRES US
One time on a plane from Brussels to Chicago, I was trying to make space in the overhead for my backpack, by moving a large bag with a flowery stamped design. A large tattooed, biker-type guy across the aisle says to me: "please be careful, I'm transporting a china set in there".
Never judge people by their appearance :)
Quadrocopters
Arms / grippers have already been used on them:
2011 Pan American Games - Alan Taylor - In Focus - The Atlantic
Nice photo set from the Panamerican Games.
GitHub Secrets
Let's talk about some of those secret features you may not know about.
Nice article about some lesser-known GitHub features.
Dennis Ritchie, 70, Dies, Programming Trailblazer - NYTimes.com
The tools that Dennis built — and their direct descendants — run pretty much everything today.
—Brian Kernighan
Nice article about Dennis Ritchie.
The Llama Song
And now for an oldie but most definitely a goodie - the Llama Song! (click on the link to see it in its full forever-repeating glory)
Llama Llama Duck.
RC Helicopter Flight Test Gone Bad
There's probably a recall on these.
Scientists Reconstruct Brains’ Visions Into Digital Video In Historic Experiment | Gizmodo
This is the stuff of Sci-Fi movies. Amazing.
Osaka Station City fountain
This is making the rounds, so I might as well contribute. Beautiful (and maybe not so hard to do - it's much like a dot-matrix printer, but printing from bottom up). I saw one of these a few years ago at the Motor Show in Geneva (at the Jeep stand), but it was much lower resolution and much less creative.
Emacs - Multiple columns one buffer - Stack Overflow
Follow mode is a minor mode that makes two windows, both showing the same buffer, scroll as a single tall “virtual window.” To use Follow mode, go to a frame with just one window, split it into two side-by-side windows using C-x 3, and then type M-x follow-mode. From then on, you can edit the buffer in either of the two windows, or scroll either one; the other window follows it. In Follow mode, if you move point outside the portion visible in one window and into the portion visible in the other window, that selects the other window—again, treating the two as if they were parts of one large window.
Very useful, and something I didn't know about.
Space Shuttle: The complete missions -- by Nature Video - YouTube
Beautiful video.
Little useful feature in Outlook: "you are not responding to the latest message in this conversation"
appears at the top of a compose window when appropriate. It is very useful because it appears if, while you are typing a message, another one comes into the same thread, thus reducing occurrences of "crossed" (and possibly conflicting) responses.
The stark beauty of Cassini’s Saturn | Bad Astronomy
Amazing short video. Make sure you enable HD, hit play, then pause, and let it download entirely before resuming, so you can watch it without interruptions. And make it full screen!
Tiny Wings review
I hate this game. I hate it so much. I don’t want to play it. I hate playing it. I don’t enjoy playing it. But every day [...] I play it. I cry and I throw a tantrum and I complain and I hate it so much, but I play it.
Go to hell, Andreas Illiger. You rich, genius son of a bitch.
My feelings exactly.
Physics engines for dummies | Paul's blog@Wildbunny
This time i’m going to talk about the basic components that make up a physics engine and how to put them together; this tutorial is aimed at programmers who have a basic grasp of maths and geometry but would like to step into the world of simulation.
It is my hope that if, at the beginning of this article, you are able to code the physics behind the 1972 game Pong, by the end of the article you will be equally happy writing your own constraints to use in your own physics solver!
Dog Sledding season - coming to a close - The Big Picture
Another beautiful set of pictures from TBP.
Concrete Poured Into Ant Colony Reveals Insect Megalopolis
Amazing. Looks like something from an Alien movie.
Open Penetration Testing Bookmarks Collection
Open Penetration Testing Bookmarks Collection
How to digitally sign a macro project - Outlook
This article explains how you can digitally sign a file or a macro project by using a certificate. If you don't already have a digital certificate, you must obtain one. To test macro projects on your own computer, you can create your own self-signing certificate by using the Selfcert.exe tool.
Useful for future reference. I'm playing with a bit of VBA in Outlook, and found that my code would work fine right after writing it, but if I restart Outlook, the macros will be disabled unless I first sign them as described in this article.
Terrifying Japan Tsunami video (via Bad Astronomy)
Yes, those are buildings on fire as they are being swept along with the water. That is one of the most terrifying, horrifying things I have ever seen.
Nyiragongo Crater: Journey to the Center of the World - The Big Picture
Amazing pictures of an incredibly dangerous expedition. Just look at the guy in the photo above, standing at the very edge of a lava lake. Click through for more beautiful pictures.
Ridiculously awesome pic of Discovery and the ISS taken from the ground! | Bad Astronomy
Simply incredible that someone can get a picture like this from the ground.
Ken Jennings describes what it's like to play against a machine - Slate Magazine
"Watching you on Jeopardy! is what inspired the whole project," one IBM engineer told me, consolingly. "And we looked at your games over and over, your style of play. There's a lot of you in Watson." I understood then why the engineers wanted to beat me so badly: To them, I wasn't the good guy, playing for the human race. That was Watson's role, as a symbol and product of human innovation and ingenuity. So my defeat at the hands of a machine has a happy ending, after all. At least until the whole system becomes sentient and figures out the nuclear launch codes. But I figure that's years away.
IBM Watson: Final Jeopardy! and the Future of Watson
Amazing feat, incredible technology. Congratulations to the Watson team!
Impact | Bad Astronomy
It’s an impressive animation of what would happen if an asteroid — maybe
100500 miles across or so — impacts the Earth. The visuals are stunning, and someone set it to excellent music for the action
Scary stuff, very well done.
Pakistan: daily life - The Big Picture
Beautiful, sometimes heart-breaking photos. Kids are kids anywhere, play and laugh and cry, but no kid should have to live in the poverty shown in some of these pictures.
Zheng Lab - Bad Project (Lady Gaga parody)
Awesome video. Every grad student I know has felt like this at some point.
Canadian TV slams homeopathy | Bad Astronomy | Discover Magazine
If you still somehow believe homeopathy works, please do yourself a favor and watch this program.
Annals of commerce « The Reality-Based Community
Nestlé pods, pal; it’s a lifetime relationship. That $500 machine is a down payment on a 400-900% tax on every cup of coffee you make with it: three cups a day and you pay for the machine again, or more, every year you own it. Next, a frying pan customized to work only with a single brand of eggs, yup.
I don't understand the popularity of those pod-fed coffee machines. The pods are expensive and the coffee is bad. I much prefer my Krups machine - whole beans (my choice) and water go in, nice fresh coffee comes out.
Dinner for One
Somehow in all my time living in Switzerland I never heard of or watched this clip, but it is very funny.
Detexify LaTeX handwritten symbol recognition
How do I use it?
Just draw the symbol you are looking for into the square area above and look what happens!
Fantastic tool. Draw a symbol, and it gives you suggestions for LaTeX symbols that match what you drew.
Filmography 2010 compilation
Incredible compilation, very nicely done. So many movies, so little time. I haven't seen even a tenth of the movies shown here (mostly I've seen the animated ones, since go to the movies more often with the girls than without).
My home office, right now
Let it snow! - The Big Picture
I am sooooo happy to be back in Mexico where I don't have to deal with snow :)
OTOH, there are some beautiful pictures here. Snow can be beautiful, but I think you have to grow with it to really enjoy it. Not my case.
docco.coffee, Rocco, etc.
Docco is a quick-and-dirty, hundred-line-long, literate-programming-style documentation generator. It produces HTML that displays your comments alongside your code. Comments are passed through Markdown, and code is passed through Pygments syntax highlighting.
Nice-looking tool for literate programming, with variants for several languages.
Pidgin cannot connect to MSN: the certificate chain presented is invalid
1. Deleted all msn/live/hotmail certificates in the folder
2. went to https://omega.contacts.msn.com using fire fox (https not http)
3. right click > view page INFO > Security Tab > View Certificate Button > Details Tab > Export Button
4. Saved the file to ~.purple/certificates/x509/tls_peers/omega.contacts.msn.com
5. Reconnected
6. Perfect
Like many people, I started getting certificate errors when connecting to my MSN account using Pidgin. The straightforward fix described (delete certificate, reconnect to fetch the new one) didn't work for me with Pidgin 2.7.5 under Windows 7, but this slightly-more-convoluted technique worked fine.
Running Shells in Emacs: An Overview | Mastering Emacs
If you use Emacs as your shell you will have all the functionality that Emacs provides plus you get almost all of the advantages provided by the shell itself, but built into Emacs. This article is only a quick overview of all the shells: I plan on tackling each one, in-depth, later on.
Nice overview, I hadn't heard of several of the more advanced shell modes.
2010 World Fencing Championships - The Big Picture
Great fencing photos. Make me miss my fencing days.
Knight Arts | Random Acts of Culture
What do you get when you combine Improv Everywhere with opera? Random Acts of Culture.
The boiling, erupting Sun | Bad Astronomy
They look so delicate, probably because they make the Sun look fuzzy, like a comfy blanket… but have no doubts on the fury and scale of what you’re seeing here. See that little bright spot on the plume on the left, just above the Sun’s edge? That spot is the same size as the Earth
Amazing photograph of the sun.
How high is space?
Amazing infographic. Make sure you follow the link through to the full version (the image shown here is just a small part of it).
Science, Reason and Critical Thinking: A Handy Alternative Therapy Flowchart
Hilarious. Make sure you look at the big version.
"Acceptable risk?" -> "Setting head on fire" -> "Ear candling"
Edward Horsford Creates Amazing Bursting Balloons Photographs
Very nice photos of exploding water balloons (see the link for an interview with the author).
Homemade Spacecraft
A father and his son send a camera into space using a weather balloon. Absolutely amazing experiment and video.
Pac-Man Spotted In The Wild
Jaime "Kalapusa" Margary, who's given us realistic Piranha Plants, and Super Mario fungi in the past, now turns his attention to Pac-Man, presently soaking in jar of formaldehyde.
Writes Jaime:
The idea behind the video is Pac Man's final days, free from the maze (kudos if you can guess who's castle that is) and eating pellets to his heart's content in a glowing pellet forest. His dead, bloated body is found afterwards and then delivered to 8-Bit Labs.
Fall is in the air - The Big Picture
I love the fall, even more now that I know it won't be followed by a crude winter :) Still, I miss some of the Swiss scenery and traditions. Beautiful photos from TBP, as usual.
This is a news website article about a scientific finding
In the standfirst I will make a fairly obvious pun about the subject matter before posing an inane question I have no intention of really answering: is this an important scientific finding?
Brilliant. Reminds me of The Ultimately Publishable Computer Science Paper of the 90s.
DGSCA se convierte en TIC
Por acuerdo del Dr. José Narro Robles, Rector de la Universidad Nacional Autónoma de México, a partir del 27 de septiembre de 2010 la Dirección General de Servicios de Cómputo Académico cambia de denominación a Dirección General de Cómputo y de Tecnologías de Información y Comunicación, y el sitio Web de esta dependencia es:
El final de una era. Yo comencé mi carrera profesional en DGSCA, por lo que tengo muchos recuerdos asociados con ese nombre. Sería interesante saber qué cambios funcionales vienen asociados con el cambio de nombre.
La UNAM cumple 100 años
Si hubiera que reducir a la UNAM a unas cuantas cifras esenciales, tendrían que anotarse, entre otras, las siguientes: 314 mil alumnos, 35 mil académicos, tres mil 500 investigadores, 2 mil edificios, 139 bibliotecas, 56 mil computadoras conectadas en red, 18 museos, otros tantos recintos históricos, un canal de televisión y una estación de radio, una casa editora de miles de libros y de cientos de publicaciones periódicas, así como una Ciudad Universitaria que ha sido declarada por la UNESCO Patrimonio de la Humanidad. Más allá de los activos, en la institución se imparten 85 licenciaturas y operan 40 programas de posgrado, con 83 planes de estudio para maestría y doctorado, así como 34 programas de especialización con 189 orientaciones.
La UNAM tiene aproximadamente el mismo número de estudiantes que empresas como IBM y HP tienen de empleados a nivel mundial.
The Texas Sharpshooter Fallacy « You Are Not So Smart
If you have a human brain, you do this all of the time. Picking out clusters of coincidence is a predictable malfunction of normal human logic.
We see patterns everywhere, our brain is hardwired to do it. Most of them are harmless or even beneficial. The problem is when people start assigning meaning to the patterns, as explanation of whatever they want to believe or to convince other people of (such as "vaccines cause autism", which is completely false).
Woot: Refurbished Coffeenaker - Ewww
Can you taste other people’s saliva, stomach acid, and tooth enamel in it? Certainly not. Will you think about it now that we’ve brought it up? Maybe. But the fact is people buy ‘em so there must be a demand.
Do I want to buy one, after reading this? Probably not.
Pacific Sun Cruise liner in very heavy seas. Internal CCTV footage.
Scary video (entertaining in a schadenfreude way). I found it unsettling that the "horizon" in the video doesn't move (as it would in a movie scene, for example, to have you notice how much the boat is moving) since the camera is moving with the ship, but you can infer the violence of the swaying from the damage it caused. /via @benthemorrison on Twitter.
The 7 habits of highly effective writers
Effective writers ...
- Separate the writing and the editing processes.
- Focus on the interesting.
- Tap into the power of metaphor.
- Do adequate research.
- Learn from the writing of others.
- Write in small bursts.
- Read their work out loud.
Worth reading the full article. I particularly suffer from not following #1 - I always end up losing time over editing details, instead of focusing on the raw content of what I'm writing.
@BadAstronomer The irony is killing me :-)
Pocketful of Dough - Tips on Tipping
“What kind of establishment do you think this is?”
“How dare you insult me!”
“You think you can get in with that?”
It’s just after 8 p.m. on a balmy summer Saturday and I’m heading toward one of New York’s most overbooked restaurants, Balthazar, where celebrities regularly go to be celebrated and where lay diners like me call a month in advance to try and secure a reservation. I don’t have a reservation. I don’t have a connection. I don’t have a secret phone number. The only things I have are a $20, a $50, and a $100 bill, neatly folded in my pocket.
On remembering and dealing with people's names
A person's own name is the single most important word to him/her; it is intimately tied to his/her identity as an individual. How you deal with people's names can have a profound effect on their impressions of you: Think about the times you've felt special when someone you admired addressed you by your name in a sincere tone; or think about the times when you've felt belittled when someone negligently called you by the wrong name, or worse, maliciously made fun of your name in front of you.
I've always been extremely bad at remembering people's names, and it's caused me my fair share of embarrassment during my life. While I lived in Switzerland, I was always amazed at how well people in general could remember names. I don't know if they train them for it, or if it's a cultural trait, but many times, for example, I was greeted by name by people I only met briefly weeks before at a party. By then, I could barely remember their faces! Lately I've been making an effort to consciously remember people's names, and it does have a positive effect, both on myself and on other people.
Science, Reason and Critical Thinking: Modern Science Map
This is seriously amazing, a subway-map-style timeline of science. Go look at the full-size image.
GeekTyrant - News - Fan Made SUPERMAN: DOOMSDAY Trailer
In this fan-edit you'll get to see the movie that I hope the studios bring to the big screen in a future Superman film. Please no more Lex Luthor centered shenanigans or kryptonite BS... let's see Superman face a real threat...Doomsday!
This would be so awesome. I've always wanted to see Doomsday in a Superman movie.
Trying out The Pomodoro Technique
The basic unit of work in the Pomodoro Technique™ can be split in five simple steps:
- Choose a task to be accomplished
- Set the Pomodoro to 25 minutes (the Pomodoro is the timer)
- Work on the task until the Pomodoro rings, then put a check on your sheet of paper
- Take a short break (5 minutes is OK)
- Every 4 Pomodoros take a longer break
I'm giving the Pomodoro Technique a try today for my work. Looks like a nice way to split time, and a nice complement to GTD as a mechanism for the "doing" part of it.
A sample cfengine policy
Actually, this is just to test what posterous does with a text attachment.
Update: so it seems it just attaches it to the page. My suggestion, which I have already emailed to the Posterous guys, is to have the option to auto-post text attachments to gist.github.com. This would make it even easier to include code in blog posts.
US Chamber: Equal Pay “a Fetish for Money,” Women Should “Choose the Right Partner at Home”
The US Chamber of Commerce has apparently spent too much time watching Mad Men: in a blog post this morning, Chamber blogger Brad Peck called women’s fight for pay equity to be nothing more than a “fetish for money,” and said women complaining about their pay should focus instead on “choosing the right partner at home.”
You couldn't make up stuff like this. Wow.
Deploying multiple environments on Heroku (while still hosting code on Github)
In this post, I will explain how I use Github to version my code and Heroku to deploy it, with 2 different environments. You may also read this article that explains how to deploy your application on Heroku and this one that also explain how to deal with multiple environments
Nice article, possibly useful reference in the future.
Catharsis
The Misconception: Venting your anger is an effective way to reduce stress and prevent lashing out at friends and family.
The Truth: Venting increases aggressive behavior over time.
Another excellent article from YANSS, dispelling one of the most-commonly held beliefs in anger management.
10 big ideas from GTD
Here are 10 big ideas from David Allen’s Getting Things Done…
1. If your day-to-day life is out of control, it’s almost impossible to think strategically or plan effectively.
2. Define what being “done” looks like.
3. Mental work has five distinct phases: Collect, Process, Organize, Do, and Review
4. Get everything out of your head.
5. Projects and tasks are two different things: track them separately.
Anchoring Effect « You Are Not So Smart
You walk into a clothing store and see what is probably the most bad ass leather jacket you’ve ever seen.
You try it on, look in the mirror and decide you must have it. While wearing this item, you imagine onlookers will clutch their chests and gasp every time you walk into a room or cross a street. You lift the sleeve to check the price – $1,000.
Well, that’s that, you think. You start to head back to the hanger when a salesperson stops you.
Drowning Doesn't Look Like Drowning
of the approximately 750 children who will drown next year, about 375 of them will do so within 25 yards of a parent or other adult. In ten percent of those drownings, the adult will actually watch them do it, having no idea it is happening (source: CDC). Drowning does not look like drowning
This is an eye-opening article for me. Not having actually watched anyone drown (fortunately), I had the impression that someone drowning would trash madly as shown on TV and movies. This is knowledge that can actually save lives! I think everyone should read this, particularly parents.
Rands In Repose: How to Write a Book
So, stop. It’s the only sure-fire way to begin.
Very interesting post from Rands about the process of writing a book.
Folders in iOS4
from 8 screens to just 2. Very nice :-)
The Just-World Fallacy
It is common in fiction for the bad guys to lose and the good guys to win.
It’s how you would like to see the world- just and fair.
In psychology, the tendency to believe this is how the real world actually works is called the Just-World Fallacy.
More specifically, this is the tendency to react to horrible misfortune, like homelessness or drug addiction, by believing the people stuck in horrible situations must have done something to deserve it.
A Services Menu for iPhone
On the Mac, Services are a niche. On iPhone OS they’d be nothing short of a revolution.
Very interesting idea, would be incredibly useful. Follow the link for a full description, plus a mock-up video of how it could work.
D8 Video: Apple CEO Steve Jobs on Adobe Flash
Nice video summary of Jobs' appearance at D8. Favorite quote: "we've sold an iPad every three seconds since launch, so people seem to be liking them".
Hail Storm Oklahoma City
Incredible hail storm. It gets really intense around 1:30, the pool looks like it's boiling.
My latest speedtest results
My ISP recently upgraded my connection at home to 3Mbps. I'm surprised it's so accurate :-)
Cory Doctorow: Persistence Pays Parasites
I don’t have a solution, but at least I have a better understanding of the problem. Falling victim to a scam isn’t just a matter of not being wise to the ways of the world: it’s a matter of being caught out in a moment of distraction and of unlikely circumstance.
Good lesson to stay always alert, even if you think you know better.
Thoughts on Flash
Perhaps Adobe should focus more on creating great HTML5 tools for the future, and less on criticizing Apple for leaving the past behind.
Letter from Steve Jobs about why Apple does not support Flash on their mobile devices.
David Allen Getting Things Done | DCGTD
Nice brief overview from the GTD guy himself. Simple system, simple tools.
How important are the tools you use with GTD?
Short video of David Allen talking about the importance of the GTD tools you choose. Conclusion: the most important thing is that you choose a tool you actually use, because the moment you stop putting your stuff in it, it will stop working.
Timely for me as I rebuild my GTD toolbox and system this week.
HTML5 presentation
HTML5*
Web Development to the next level
Really impressive presentation about HTML5, done in HTML5. Works well in Chrome.
Planes or Volcano?
Keeping things in perspective. Maybe the volcano is a good thing for the environment after all.
octopus steals my video camera and swims off with it (while it's Recording)
Amazing footage of an octopus stealing (and finally relinquishing) a diver's camera, with everything recorded.
Army Creates Fleet of Robots On Segways! | Singularity Hub
What a cool use for Segways - man-sized robots able to move in many ways like humans, act unpredictably and react to other robots, humans and the environment.
Ross sisters - Solid Potato Salad (VHS quality)
AMAZING. Start watching at 1:00 if you want to skip to the good part.
Queretaro: Internet Cerca de Todos
Queretaro, where I live, is abundant in free WiFi hotspots, they claim they are the Mexican city with the most coverage. In any case, it's very nice, most parks and public places or government buildings have free Internet access, and in my experience it's even not too slow.
Sachin's guide to buying an iPad
- Given all this, I predict that later this year the iPad product line will be something like:
- $499, 16GB WiFi
- $599, 32GB 3G
- $699, 64GB, 3G
Bottom line: If you are on the fence about buying a 1.0 iPad, go with the cheapest model.
Interesting and useful analysis.
Installing Windows XP in Vmware ESX - "Setup did not find any hard disk drives installed in your computer." | TechHead.co.uk
Trying to install Windows XP within VMWare ESX and getting the following error message?
"Setup did not find any hard disk drives installed in your computer."
The reason for this is that the necessary hard disk controller drivers have not been installed.
Useful information and links for installing XP VMs on a VMware ESX server.
Expose for Windows Vista/7 [Clone] : Divide By Zero
Switcher is a nice Expose clone for Windows 7. The blog post includes some ideas for customization to make it look nicer (i.e. more Mac-like :-) than the default.
The Virtual Choir: How We Did It « SoaringLeap.com
Beautiful video of a choir that has never met in real life. Follow the link for the story (and more videos) of how it came to be.
NASA space shuttle missions get Hollywood-style movie posters - Telegraph
Follow the link for the whole series.
El auto de Google Maps Street View — Paola Villarreal
Rare closeup- and inside-photos of a Google Street View car in Mexico City (follow the link for more photos)
Government Agency Apologizes for Evicting British Jedi - Lowering the Bar
"Jedis are very welcome to shop in our stores," he said, "although we would ask them to remove their hoods.
Hilarious story, particularly the response from the Tesco representative. I'd say that's the only way to deal with wackos like that - make fun of them on their own terms.
My Head is in the Cloud
My head was once filled with bits and pieces of information like phone numbers, to-do lists, and addresses. I’ve ceded that responsibility to technology.
So very true.
How’s that for a low price guarantee?
Great sense of humor (follow the link for more signs from the same store). Reminds me of the signs in a Shakey's Pizza place where we used to go when I was a kid. Two I remember:
"We have a deal with the bank. The bank doesn't make pizza, and we don't take checks."
"If you would like to use your plate for your cigarette ashes, please ask the waiter to serve your pizza in the ashtray"
How to Suck at Facebook - The Oatmeal
I've never been a big fan of Facebook, though I think it's OK to keep in touch with family and friends who use it (that's my main use for it these days). But these behaviors really drive me up the wall.
How to make the LG BD370 region-free
The instructions below apply to the LBD 370 & 360.
How to make the LG BD370 region-free (mine came set to "All regions" for Blu-Ray, but not for regular DVD). For the most complete instructions, see the post by BoriMar, February 06 2010. One change: I had to burn the contents of 6000.zip to a CD for it to recognize it, putting it in the USB drive didn't work, but the down/upgrade files worked fine from the USB drive. I burned the CD using the built-in capabilities of Windows Vista, just making sure to check the options for "mastered" format, and to close the session on ejecting the CD.
Trying out Google Buzz + Posterous
Posterous truly is the ideal content-generation platform. From here, I can feed every other site I use!
Must-Have Windows Software (or Windows Programs that I use) - good coders code, great reuse
I am not just a Linux enthusiast, I also happen to use Windows quite often. In fact, Windows is my primary desktop from which I connect to all the other boxes and do my work on. During the years of Windows usage, I have accumulated a list of must-have Windows programs that I wouldn’t be able to work without. Some of them are commercial, some are freeware, but that doesn’t matter. What matters is how productive you are with your setup. If you’re really productive on Linux with your own set of tools, it’s perfectly fine and you have done a great job of finding the best tools of trade.
Having recently moved to Windows as my main desktop OS (out of work requirement, not by wish), I have been trying to find good software that makes it a more pleasant environment. This list has many good recommendations.
Fraser Speirs - Future Shock
Secretly, I suspect, we technologists quite liked the idea that Normals would be dependent on us for our technological shamanism. Those incantations that only we can perform to heal their computers, those oracular proclamations that we make over the future and the blessings we bestow on purchasing choices.
Very interesting post about the negative reactions to the Apple iPad.
The 'Israelification' of airports: High security, little bother - thestar.com
Israelis, unlike Canadians and Americans, don't take s--- from anybody. When the security agency in Israel (the ISA) started to tighten security and we had to wait in line for — not for hours — but 30 or 40 minutes, all hell broke loose here. We said, 'We're not going to do this. You're going to find a way that will take care of security without touching the efficiency of the airport.
Very interesting article about doing airport security when you face real, constant threats, and how to do it without ridiculous and time-consuming measures that are only useful to further promote the security theater.
Sumerians Look On In Confusion As God Creates World | The Onion
A booming voice is saying, 'Let there be light,' but there is already light. It is saying, 'Let the earth bring forth grass,' but I am already standing on grass.
Hilarious!
2009 in photos (part 1 of 3) - The Big Picture
As usual, awesome photo set from TBP, showing some of the good, the bad and the superbad of 2009. Photo 39 (above) is absolutely heartbreaking. "Why isn't dad reaching back to me?"
Change blindness experiment
Incredible how little attention we pay to things and people around us.
National Geographic's International Photography Contest 2009 - The Big Picture
Amazing photos from TBP. I was at the Iguazu Falls many years ago, and it's a majestic and breathtaking place.
Character interactions charts (xkcd)
Amazing. The amount of work that went into these (particularly for LOTR) is staggering.
Packed and ready to go
Drives On What Side?

Interesting map. I didn't know Argentina used to drive on the left side (until 1945, according to Wikipedia: http://en.wikipedia.org/wiki/Right-_and_left-hand_traffic#Argentina )
xkcd - A Webcomic - Scary
Scary indeed. From the alt text "I'm teaching every 8-year-old relative to say this, and every 14-year-old to do the same thing with Toy Story. Also, Pokemon hit the US over a decade ago and kids born after Aladdin came out will turn 18 next year."
I feel old.
Gyrowheel by Gyrobike interbike 2009
How very cool - using a gyroscope as an alternative to training wheels.
Barack Obama's amazingly consistent smile
20-second clip of Obama photos with 130 visiting dignitaries at the UN meeting. I wonder how much time he spent practicing that smile?
10 Useful Usability Findings and Guidelines « Smashing Magazine
Everyone would agree that usability is an important aspect of Web design. Whether you’re working on a portfolio website, online store or Web app, making your pages easy and enjoyable for your visitors to use is key. Many studies have been done over the years on various aspects of Web and interface design, and the findings are valuable in helping us improve our work. Here are 10 useful usability findings and guidelines that may help you improve the user experience on your websites.
30 Bad Practices of Web Designers
Every once in a while you will come across a page that just doesn’t seem ‘right’. There are three elements of a website that can be harmed by bad practice:
- The website lacks something in its design.
- The content is written badly.
- The search engines don’t like something about the site.
Considering the three points above, this article will explains the do’s and dont’s of certain design habits.
Fix MacFusion on Snow Leopard | Racker Hacker
First off, credit for this fix goes to Geoff Watts from his two tweets.
If you’re using Snow Leopard, you’ll find that the current version of MacFusion refuses to complete a connection to a remote server. You can fix this in two steps:
First, quit MacFusion.
Second, open System Preferences and then open the MacFUSE pane. Check the “Show Beta Versions” box and click “Check For Updates”. Go ahead and update MacFUSE.
Going home
It isn't so much a leaving as a beginning of something else. When you return, as you will, it will be with a more wordly viewpoint. That is both a loss and a gain.
Send to Posterous directly from Google Reader
We're big fans of Google Reader. It's one of the easiest ways to view everyone's stuff fast. Yesterday, Google Reader added a new Send To feature that lets you post to your favorite places right from Google Reader while you're looking at stuff.
By popular demand, now you can use this new Send To feature with Posterous. Go to Settings > Send To in Google Reader and under "Don't see your favorite site?" click Create Custom Link.
Kuroshio Sea - 2nd largest aquarium tank in the world - (song is Please don't go by Barcelona)
Beautiful video.
Posterous keeps getting better
How to trick an RHEL5 client install to use server RPMs
Easy video conversion in Mac OS X
Synchronizing 1Password data between two local accounts (howto)
- In my work account (dza), switch to the AgileKeyChain format by following the instructions.
- Modify the ACL for my ~/Library/Application Support/1Password/ folder to allow my personal account (zamboni) read/write access. I did this using the "Sharing & Permissions" section of the Info dialog for the folder, and then choosing "Apply to enclosed items" from the cogwheel menu in that same section.
- Switch to my personal account.
- Quit 1Password, run the defaults command from the instructions, restart 1Password.
- Export my existing 1Password data in the "1Password Interchange file" format. To do this, choose File -> Export all -> 1Password Interchange File, and save it to a file in my desktop.
- Double click /Users/dza/Library/Application Support/1Password/1Password.agilekeychain and click "yes" to start using that file.
- Import the data from step 5: File -> Import, and follow the prompts. Wait for the data to import.
- Switch back to my work account and verify that the imported items are seen there as well.
Adding growl notification to Raymond Page's bash prompt code
Update (2008/09/10): Giles Orr kindly pointed out that he is not the author of the bash prompt package I use, I have updated to give proper credit to the author, Raymond Page.
For some time I have used Raymond Page's bash prompt code (heavily based on the work by Giles Orr in the Bash Prompt HOWTO, you can get it at http://gentoo-wiki.com/TIP_Prompt_Magic or http://code.google.com/p/homenix/source/browse/, you need to get .prompt, .prompt_functions and .prompt_config from the trunk/ directory), which I like very much because it is highly customizable, and although a lot of the functions are Linux-specific, it can easily be made to work on Mac OS X. It features context-dependent prompt colorization (e.g. based on whether the current directory is writable and on the machine load), automatic shortening of the prompt based on window width, and many other features.
Updated script for defining a new wallet item in 1Password
Fixing Mail.app's recent mail addresses problem
Markdown support
* if posterous
* understands
* markdown If not, it would be a nice feature to add. See [the markdown page](http://daringfireball.net/projects/markdown/) for reference.
My GTD system
Here's my mapping from David Allen's GTD workflow to the parts in my system that implement each component. My main electronic tools are Things (http://culturedcode.com/things/ ), Journler (http://journler.com/ ), Mail.app and iCal. My main physical tools are my HPDA, my physical tickler file, my A-Z filing cabinets and my "inbox" and "pending" boxes.
(the workflow image is © David Allen & Co.)Testing posterous
Posterous looks quite nice, with the ability to "do the right thing" for different media types, and to autopost to other places. I have just set it up to autopost to my blog (http://zzamboni.org/brt/ ), we'll see if it does the right thing.
It should also auto-post to Flickr, so here goes a test photo.