Solving the “Could not find all biber source files” Error

Biblatex is a fantastic bibliography/citation manager for LaTeX. It trumps the older bibtex for its much easier customizability and configuration. It does however, have one bug that can be very perplexing to figure out due to the misleading error message that results: "Could not find all biber source files". At first glance this message seemed straightforward enough to send me poking about the project file structure and build system, checking paths and names. When all that seemed intact, I started Read more [...]

Invisible Photographer Meets Vanishing Fox

My absolute favorite wildlife encounter in the Pantanal was with a central South American endemic Crab-Eating Fox (Cerdocyon thous). I had left the group behind in the safari vehicle on the road to try and close in on some jabiru in the marsh on foot. I was creeping about, camera + lens in hand, when suddenly, I saw her staring at me through the marsh vegetation. I froze. After a few moments, I realized that it seemed that while she sensed something, she could not actually see me: she kept sniffing Read more [...]

Is that an archosaur in your Pantanal, or are you just happy to see me?

Finally getting around to finishing processing some of my Pantanal wetland photographs, and realized that despite being famous for its endemic birds, I was drawn more to the other clade of archosaurs in the region, the Crocodylia, represented by the Black Caiman, Caiman yacare. The Pantanal population of caimans is the largest single crocodiilan population on the planet. Read more [...]

More Sandhill Cranes!

Love these birds! More Sandhill Cranes from the kayak. This time I deliberately avoiding going too close to where I last saw the nesting pair, and instead hit a different area of the marsh. Here I stumbled upon a colony of 8-10 individuals. (The one on the right seems to be complaining about its day to the others, who are all dutifully listening, The middle one has completely zoned out, though, and is daydreaming about cornfields while waiting for the rant to end.) Read more [...]

Sandhill Cranes Parents and Chick

AMAZING experience! So, I was using my kayak to stalk a Great Blue Heron in the marshes at the other end of the lake behind our house and the guy kept drifting deeper and deeper into the marsh, till I could not follow any more (less than a 10th of an inch water, and chock full of vegetation; next time, I am getting a push pole!). So I turn around to head back, when I see these guys almost right next to me! A pair of Sandhill Cranes. AWESOME!!! I spent a while photographing them, watching them alternative Read more [...]

Evolution of Bioluminescence in Millipedes

Walk deep into a rainforest at night. Switch off your headlamps. And wait with open eyes. At first, it is so pitch black that you cannot see your own hand if you wave it in front of nose (as Bilbo might have said). As your eyes get accustomed to the darkness, you will realize one thing. Everything glows. Everything. There is fine fuzzy layer of bioluminescent fungus covering dead leaves and the bark of trees, so you can almost make out the forest like some one has traced it out in ghostly yellow-green Read more [...]

Vim: Insert Mode is Like the Passing Lane

Insert mode is not the mode for editing text. It is a mode for editing text, because both normal and insert modes are modes for editing text. Insert mode, however, is the mode for inserting new/raw text directly from the keyboard (as opposed to, e.g., from a register or a file). Thus, you will only be in insert mode when you are actually typing in inserting (raw) text directly. For almost every other editing operation, normal mode is where you will be. Once you grok this you will realize that, Read more [...]

From Acolyte to Adept: The Next Step After NOP-ing Arrow Keys in Vim

We all know about no-op'ing arrow keys in Vim to get us to break the habit of relying on them for inefficient movement. But, as this post points out, it is not the location of the arrow keys that makes them inefficient, but the modality of the movement: single steps in insert mode is a horrible way to move around when normal mode provides so much better functionality. But here is the thing: while normal mode provides for much better and more efficient ways to move around than insert mode, Read more [...]

Laika: A Sad, Unnecessary Death

I think our space programme is one of our species' greatest achievements. It does have a sordid past, though, with roots in war, conflict, aggression, violence, paranoia, and narrow-minded parochial/tribal brutality. Which makes it all the more remarkable that I think it unites us as a species now, when it was born of such acrimonious and savage division. But probably one of the greatest crimes of the early days our species' space programmes is the death of Laika. A congenial, friendly, Read more [...]

Comet Landing Pride: Rosetta Mission to Churyumov-Gerasimenko

I am always resistant to imparting any exceptionalism to our species, considering it some sort of narrow-minded parochialism based on the accident of the restricted perspective we have when we try to place ourselves in context with the rest of nature. But every time I look at at the achievements of our space programmes, I find it hard not take pride in our species' achievements in this domain (whatever else the horrible things we do): this is truly where our reach exceeds our grasp, but again and Read more [...]

Setting up a Python Scientific Environment (NumPy, SciPy, pandas, StatsModels, etc.) in OS X 10.9 Mavericks

It is better than a nightmare from which you cannot wake up ... Install Homebrew: $ ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)" Find problems and fix them (typically resulting from Homebrew becoming very stroppy if it does not have exclusive access to "/usr/local"): $ brew doctor VERY IMPORTANT NOTE: Make ABSOLUTELY sure that the DYLD_LIBRARY_PATH environmental variable is NOT set. Having this set will cause all sorts of problems Read more [...]

Taking it to a 11: Dramatically Speeding Up Keyboard/Typing Responsiveness in OSX

If you use a Mac/OSX, then enter the following commands in your shell and reboot: $ defaults write -g KeyRepeat -int 0 $ defaults write -g InitialKeyRepeat -int 15 If you live in a text editor or the shell, or otherwise spend most of your typing hammering away at the keyboard like I do, then this makes an absolutely wonderful difference in the responsiveness of any typing activity. It will make your previous typing feel like you were pecking away in slow motion at the Read more [...]

Dynamic On-Demand LaTeX Compilation

Most of the existing approaches to integrating LaTeX compilation into a LaTeX writing workflow centered around a text editor (as opposed to a fancy-schmancy IDE) are horrendously bloated creatures, aggressively and voraciously hijacking so many key-mappings and normal functionality that it makes your Vim feel like it is diseased and is experiencing a pathological personality disorder of some kind. Yes, LaTeX-Suite, I am looking at mainly at you. I did not want a platoon of obnoxiously cheery elves Read more [...]

Setting up the Text Editor in My Computing Ecosystem

Image from WikiMedia Commons Basic Setup of Shell to Support My Text Editor Preferences By "text editor", I mean Vim, of course. There are pseudo-operating systems that include rudimentary text-editing capabilities (e.g. Emacs), and integrated development environments that allow for editing of text, but there really is only one text editor that deserves the title of "text editor": Vim, that magical mind-reading mustang that carries out textual mogrifications with surgical precision Read more [...]

Smart (`infercase`) Dictionary Completions in Vim While Preserving Your Preferred `ignorecase` Settings

Dictionary completions in Vim can use a 'infer case' mode, where, e.g., "Probab" will correctly autocomplete to, e.g., "Probability", even though the entry in the dictionary might be in a different case. The problem is that this mode only works if `ignorecase` is on. And sometimes, we want one (`infercase`) but not the other (`ignorecase`). The following function, if added to your "`~/.vimrc`", sets it up so that `ignorecase` is forced on when dictionary completions are invoked via Read more [...]

Building MacVim Natively on OS X 10.7 and Higher

You might want to do this if you want to install the latest snapshot and no pre-built release is available. OR you might want MacVim to use a custom Python installation instead of the default one on the system path. This latter was my motivation. Once you have downloaded and unpacked the code base that you want to build, step into the `src/` subdirectory: $ cd src Before proceeding, make sure that your Python installations have been built with the "``--enable-shared``"! If this is not the Read more [...]

Using Python’s “timeit” Module to Benchmark Functions Directly (Instead of Passing in a String to be Executed)

All the basic examples for Python's timeit module show strings being executed. This lead to, in my opinion, somewhat convoluted code such as: #! /usr/bin/env python import timeit def f(): pass if __name__ == "__main__": timer = timeit.Timer("__main__.f()", "import __main__") result = timer.repeat(repeat=100, number=100000) print("{:8.6f}".format(min(result))) For some reason, the fact that you can call a function directly is only (again, in my opinion) obscurely Read more [...]