I am using OmniFocus to organize my life and in an attempt to get a few things done. My academic live also involves staying on top of publications. I rely on papers as my reference manager. In the last little while, I used OmniFocus to keep track of the papers that I found and that I wanted to get and / or read. This has been a quite reliable workflow, but involved quite some manual clicking.
This post describes how I improved it with a little applescript to go more directly from OmniFocus to papers:
- whenever I see a paper that interests me, I capture it into OmniFocus;
- the title of the task is the title of the paper or whatever else helps me to identify the paper;
- the note contains the URL to the pdf of the paper, and nothing else;
- the task gets assigned one particular project, whose sole purpose is to collect papers I want to get / download;
- the capturing works mostly via Omni’s “clipotron“, the share sheet extension in iOS, or from within Reeder;
- regularly, I check that project (on its review date) and get the papers. Until very recently, this involved a few steps for each paper: open the note in OF, click on the link, the relevant page would open in Safari, and I would klick on the bookmark tool that I had setup such that this webpage would open in papers. I replaced this with a very simple applescript (see code listing below)
- make sure that I am connected to the University’s network to ensure that most papers are accessible;
- select the perspective that focusses on the project that contains the papers I want to get;
- select the papers that I want to get, hit a keyboard shortcut associated to the applescript in Keyboard Maestro;
- tada! papers opens the links, tries to retrieve the pdf (which works in most of the cases) and the bibliographic information. All is left for me is to add some meta-data and read;
Below you can find a listing of the applescript code. It is fairly simple and contains only a few lines. I can see a few areas where it could be expanded (parse URL from note if it contains more stuff than just the URL; what if pdf and / or bibliographic information can not be retrieved by papers). But for most of my use cases it works remarkably well. Hence, I would well agree to John D. Cook’s line of thought that yes, it’s a bit about time being saved, and it’s also about not being derailed. It’s also about accuracy (as followed up by Dr. Drang), and about knowledge transfer and improved processes, as Mike Croucher points out.
Here’s the code snippet:
tell application "OmniFocus" -- Target the content of the front window tell content of front window
-- get selected entries set theTasks to value of every selected tree -- loop over each selected task repeat with aTask in theTasks tell aTask -- extract the task name and the note -- note contains URL set theTaskName to name set theNote to note display dialog theNote -- open in papers; it automatically retrieves the pdf and --- the bibliographic information (mostly) tell application "Papers" open location theNote end tell end tell end repeat end tell
Relevant links regarding applescript with the two main software packages used:
Seymour Papert lays down the foundations of his philosophy about programming and about learning in his book Mindstorms: Children, Computers, and Powerful Ideas was heavily involved with the creation of the programming language “Logo” (downloadable here). The main use of this programming language is education in general and learning to program as a side effect. It seems like no coincidence that the name of “Lego Mindstorms” is related to Papert’s book’s title, given that the ancestor of the Lego kit was programmed in Logo.
“Logo” in Python
There is a python module called “turtle” in python, that mimics the capabilities of Logo. This is what I used to create the figure below. There are many more examples online, f.ex. here. The point of turtle and Logo is to provide an interface that is easy to grasp, but that allows to build stepwise more and more complex things. I’ve seen an implementation of Tetris using turtle.
Learning and Playing
One of the first points of Papert is that the modern car was not created based on an analysis of the bad things of horse-powered coaches. Rather it happened because some people played around, “experimented” is probably a nicer word. Directly related to playing is the fact that you make mistakes. Which according to him is nothing bad as long as the mistakes are recognized and fixed. Unfortunately, some people are afraid of making mistakes. Papert calls this “Mathophobie”.
In that sense, Papert argues that it is a good thing if a (young) learner is following epistemology, following two approaches
- take “the novel”, the things to be learned, and provide a context with something already known
- take “the novel”, embrace it and adopt it, and make based on it something new.
The computer, and the turtle, or any programming language offer a valuable tool for playing, because it is very easy to fix mistakes! Hence, computers and programming can take away the fear of making mistakes! This sounds like such an awesome thing, but then, debugging can be quite painful! 😉
Mistakes in Hydro-Geo-Logy
Unfortunately, I am aware of only a very limited number of reported failures in hydro-geo-logy. “The Court of Miracles of Hydrology: can failure stories contribute to hydrological science? is one example. They build on Popper instead of Papert, but go along a similar vein. And in that issue of the journal there is a list of papers that deal with hydro-geo-logical mistakes. One example are models that are “right for the wrong reasons”.
Keeping all this in mind will hopefully make me a better teacher in the coming term, but also hopefully keeps me constantly reminded to try out things, if nowhere else than in the code editors! When using Computers, I look a lot at data, process data, and analyze the results. Sometimes, it is quite astounding, it almost seems magic to me, that this entire process works. Inevitably, errors occur, and they need to be found and fixed.
I will be presenting at the AGU Chapman Conference “The MADE Challenge for Groundwater Transport in Highly Heterogeneous Aquifers: Insights from 30 Years of Modeling and Characterization at the Field Scale and Promising Future Directions” website.
|date||Monday, October 5, 2015|
|time||04:00 PM – 07:00 PM|
|location||Blue Auditorium at the Research Park, located on the campus of the Universitat Politècnica de València|
|title of talk||“Modelling Non-Linear Spatial Dependence with Applications to MADE Hydraulic Conductivity Data”|
|authors||Claus Haslauer, Geoff Bohling|
The MADE site is one of three sites world wide, where very detailed measurements of aquifer properties and solute transport movement within these aquifers were taken. The other two sites are in Borden, Canada and Cape Cod, Massachusetts. The detail of monitoring was very fine for hydrogeologic applications, e.g. via test well installations used to sample aqueous geochemical parameters, that some people argue that those wells influence the properties of the aquifer (see Figure below).
A review of the first 25 years at the MADE site is given by
C. Zheng, M. Bianchi, and S. M. Gorelick, “Lessons Learned From 25 Years of Research at the MADE Site.,” Ground Water, vol. 49, no. 5, pp. 649–662, Sep. 2011. URL
I knew it through experience. I knew it from Malcolm Gladwell’s 10,000 hour rule, stating that you need about that number of hours of practice to excel in anything. It is tough. I feel like I had a lot of those hours spent in front of the piano, and I feel like i am not much further then when I started.
In my daily work, I do a lot of programming. By now, I would say I feel mostly comfortable in python. But, I am no computer scientist, and not a developer of a programming language. I once had a roommate who wrote an operating system for a term project. So at least I feel like I can gauge the work involved. What I try to get to is this this recent tweet from one of the key ipython developers. How awesome is this?
Also interesting is that not everything is dark green. It can not be. 10 minutes of Yoga per day are better than 30 minutes once per week!
So my goal is to program from now on at least 30 minutes per working day.
I played around with various tools to help me keep track of things. I feel like I can’t commit to one repository I have some stuff on repos that I host myself on a server, some on github, some on bitbucket. “I done this” looked very promising, but then my notes sit somewhere and can’t easily access or process them. I settled for now on a simple list in OmniOutliner, which exports to OPML, and which syncs between my smartphone and my computer. I will keep you posted on how I progress!
Michael Tsai just posted on a similar issue
Sometimes, I enjoy doing something that does not belong to my core area of expertise, at first glance. Still it is fun to figure out how something works 😉
Here is the “problem” I decided to address: – frequently, I send emails to “recipient_x_”. – The content of these messages should be encoded via pgp. I use gpg tools, which I like because their seamless integration into apple mail. Depsite this seamlessness, I have to click on a button to tell mail to encrypt the message, every time I want to send an email. Granted, I could encrypt by default, but among my typical recipients, the ones that use pgp are in the minority. And yes, I am still using apple mail, despite some interesting new kids on the block (MailMate at the forefront). I do use the add-ons mail tags and mail act on though. – I want to send this email from a particular email account
These tasks seems to be ideal for automation, I must have captured the macpowerusers bug. Typically I do most of my scripting with python. I dislike solutions that are bound to something specific like a given operating system. Despite recent discussions about the state of the mac, I don’t foresee myself to be using anything else in the near future. Hence, I started looking into automator, which has a few mail related tasks available, such as selecting the account. However, it has no way to automate gpg.
The next step was to look into applescript. I’ve looked a bit into it in the past, when I created latex based pdfs as notes for omni outliner. Generally, an applescript can be associated with a keyboard shortcut. Keyboard maestro, which I own since a little while, offers similar functionality, with improved user-friendliness. So now, when I am in mail, I just have to type
cmd - opt - E, the script is executed, and I get a window as shown below. The three areas highlighted by red rectangles are adapted according to variables in the script.
Feel free to check out my script on github.
Next week is AGU week!
I will be taking part again this year. If you want to see me, my poster presentation is a good opportunity:
|date||Wednesday, 17 December 2014|
|time||01:40 PM – 06:00 PM noon|
|location||Moscone West, Poster Hall|
|title of talk||“Incorporating Locally Averaged Distributions Based on Categorical Land-Use Information into Point Estimation”|
|session||Multiscale Interactions and Structures in Soil-Vegetation-Atmosphere-Systems: Monitoring, Modeling, and Data Assimilation Posters|
|authors||Claus Haslauer, Theresia Heißerer, András Bárdossy|
A couple of weeks ago, I spent two days in Münster, at the Institute for Geoinformatics, and attented the Spatial Copula Workshop organized by Benedikt Gräler from the University of Münster and Claudia Czado, from the Chair of Mathematical Statistics at the Technical University of Munich.
The nice thing was to present to a room full of people, and everybody at least had a basic understanding and appreciation of what copulas are. This was a most welcome change! Thanks Benedikt for organizing and hosting this wonderful workshop!
These wonderfully folded geological layers can be found directly behind the open-air theatre where “Geierwally” is played in Ebigenalb, Austria (Lechtal). Behind that theatre, the creek “Bernhardsbach” forms a george for few hundred meters, and offers this spectacular view on an outcrop. This outcrop is one of the best windows into the history of the Alps.
Peter Nasemann guided us this summer to glance through some of such windows on a walking tour organized by the OEAV Lechtal. Peter Nasemann has written a book on the geology of the “Lechtal” and is considered an expert on the geology of the Alps. During the walk we stopped at three spots (see map).
1) Gravel Bed next to Klimm Brücke, Elmen
At the first stop, Peter Nasemann introduced us to local rocks and their relation into the geologic sequence (main types are set in bold, youngest one are listed on top):
- Radiolarit (Elmer Mutterkopf, Mittagspitze) youngest that we looked at (Jurassic), red-ish, not prone to erosion
- three similar types:
- Allgäu Schichten: old, middle, and young (in the sequence right after Radiolarit), all still Jurassic),
- Lechtaler Schichten: not entirely sure about this layer anymore.
- Kössener Schichten (Triassic; The Stablalm is located on Kössener Schichten but everywhere around in its vicinity Radiolarit can be found, which consists of black / dark clay of light grey colour, sometimes yellow chalks with many fossils. Sometimes the annual cycles of the organic material are visible. At the bottom of each layer, remnants of animals can be found that sank into the deposits. Stones of the Kössener Schichten are somewhat “mudstones”… if you place them in your garden and wait for a couple of years, they will expand due to the water added over time, and the remnants can serve as a good addition to the soil in your garden.
- Hauptdolomit (Triassic, Klimmspitze): prone to erosion, not nice for climbing; some sections of the Hauptdolomit, predominantly dark ones (“Seefelder Schichten”) are considered building material for mineral oil, and can make blotting paper oily; these are also used for Steinöl
- (Raibler Schichten)
Theoretically, the mesozoic sequence of the East-Alpine of the Central Alps has been summarized by Adrian Pfiffner in his book “Geologie der Alpen” (figure below).
Generally, the Lechtal can be divided into dominantly Hauptdolomit in the lower valley and dominantly not-Hauptdolomit (the three similar types) in the upper valley. The divide is located near Häselgehr (Otterbach). Traditionally, the upper valley has a richer agriculture, the lower valley richer forrestry (Hauptdolomit sustains trees, but not agriculture). In fact, the richness of the diocese of Augsburg partly originated in its forests around Füssen and in the lower Lechtal (there is still a Flurbezeichnung “Füssener Wald” in the Lechtal)
The Walser were experts on agriculture, and they found the patches where the “Abtychen-Schichten” (and “Kössener Schichten”) appeared on ground surface. In the case of the Lechtal, these areas are generally higher up in the mountains. Coincidentally, the Walser came over the saddles or ridges of the mountains, not via the valleys (which one would normally think of being the connecting features).
Since we were standing on the banks of the river lech, we had a closer look on the gravel bed. It served as an excellent example for how a river builds its bed, and how the river bed gets stronger after a high flow event. Behind each stone in the river bed, sediment gets accummulated. This can form solid patches, depending on the flow rate and hence stone size at a given location.
2) First Bend on the Road to Bschlabs
After having been introduced to the rocks occurring in the area, based on samples from the river bed, and to the sequence of their occurrence in the geological sequence, we drove up to higher ground along the road to Bschlabs, to get an overview over the area.
Sometimes, the sequence of the rocks is not occurring according to the order of deposition described above. This can be seen at the Mittagsspitze (on the far right on the picture below), where Radiolarit is not at the top.
Another example for an “inverted” sequence of rocks is the Grießtalerspitze, where Hauptdolomit lies above Radiolarit and above Aptychenkalk.
Otto Ampferer was the first to recognize that such “mixed up” sequences can occur when one layer is pushing against other layers. This phenomenon is called Überschiebung / overthrusting. This is also why the picture of the outcrop at the top of this post, is so important.
3) Gorge of the Bernhardsbach behind Geierwally Theatre
The last spot was the Gorge of the Bernhardsbach (introductory picture), which served Otto Ampferer as a basis to establish the theory of overthrusting in the 1920s (english article with interesting picture of Sölden and bautiful sketches, paper in German).
Next week on monday and tuesday, there will be a spatial copula workshop, held by the fine folks at the Institute for Geoinformatics at the University of Münster. I’m looking forward to discuss copula-related issues with interesting people.
Here is some more information regarding my talk:
|date:||Monday, September 22nd|
|location:||Institute for Geoinformatics, University of Münster|
|title of talk:||“Spatial Interpolation Using Secondary Information and Censored Measurements ”|
|authors:||Claus Haslauer, Theresia Heißerer, András Bárdossy|
On Wednesday I will be giving a presentation in Paris, France. In the building where Georges Matheron worked. The conference “geostatistics for environmental applications” celebrates its 10th repetition.
If you happen to be in or near Paris, let me know — here are some details about my presentation:
|date:||Wednesday, July 9th|
|title of talk:||“Realistic Non-Stationary Spatial Interpolation”|
|session:||Geostatistical Theory & New Methodologies 1|
|authors:||Claus Haslauer, Theresia Heißerer, András Bárdossy|
We’ll be next door!
Photo by victortsu – http://flic.kr/p/ht1wM4