Cleaning up bibtex files

Sometimes bibtex files are Frankenstein's monster like documents crafted quickly from the scraps of project's past or assembled quickly from the bibliographies of review chapters using ADS or Google Scholar. A really incredible tool to clean bibtex files has been created by FlamingTempura called bibtex-tidy.

Here is the GitHub page: https://github.com/FlamingTempura/bibtex-tidy

But here is a link directly to a web browser tool that one can just paste one's bibtex file into to clean-up: https://flamingtempura.github.io/bibtex-tidy/index.html

Make sure to keep back-up copy.

Reading Advice

As we also talk about in the journal clubs, there are a lot of depth levels one can reach when reading papers. One need not read every paper to the same depth. In fact, it's a disaster if one does, because then one is often over-learning a few works at the expense of learning from many (or alternatively, not reading a few papers to great enough depth). Instead of reading a paper from beginning to end and only then assessing it, here is my suggested approach to reading scientific literature. First, (1) look at the title and authors. Then, (2) read the abstract. Then, (3) flip through looking at section titles and figures/figure captions and read the conclusions. Then, (4) skim the results and discussion. Only then, (5) do an assistive reading through the entire paper. Lastly, (6) give the paper a resistive reading. Recall that assistive reading is fast---knowing that there are holes in one's understanding, but with faith that either the author will explain what you've read or knowing that you can always go back if that lack of understanding turns out to be important. You should not make any annotations when assistive reading. The goal is building a mental map of the concepts within the work as you move through it. Resistive reading is slow, questioning, and note-making. Critically, after each of the steps 1-5 there should be a moment of reflection and metacognition. The reflection should be aimed at answering three questions: What is the takeaway message? What evidence is being shown to support that message? Is it convincing? The metacognition is aimed at answering: Is continuing to learn more about this work worth my valuable time?

This is a reading flow chart that describes the 6 steps to reading a paper that are described in the accompanying text.

This is a reading flow chart that describes the 6 steps to reading a paper that are described in the accompanying text.

This last point regarding metacognition is critical. If one applies the program above to literature surveys, then one is able to triage through dozens of articles (stopping somewhere between steps 1 and 5) to find the handful that require an assistive or even a resistive reading. My prescription is to use ADS and Google Scholar to find many articles based on steps 1 and 2 that could be valuable, keeping articles that make it through step 2 as a tab in my internet browser. Then I proceed back through those tabs, downloading each paper, then moving through step 3 and, possibly, step 4 in the downloaded pdf. I make a notation either on scrap paper, in a draft, or in a txt file that I want to move to step 5 for a given paper. I usually then do the full readings (steps 5 and 6) at a separate time.

By step 4, I have confidence that my reflections (takeaway message, evidence, believability) are at a level that if asked those three questions in journal club, I could provide answers to them and point to the primary figures or locations in the text where the evidence for the main claims are. At the same time, I likely couldn't provide answers to many possible follow-up questions that require detailed knowledge of the paper's context, methods, or results. So when presenting a paper at journal club, I do try to at least do step 5, an assistive reading.

To put some numbers to the difference in speed between assistive reading (step 5) and resistive reading (step 6). A typical two-column scientific journal article has about 750 words per figure-free page. Assistive reading should be able to proceed at about 250 words per minute (wpm), and so one should be able to read a figure-free page in about 3 minutes. Typical articles contain about 10k words, so that would mean an assistive reading should take about 40 mins (letter length articles 2.5k words should take about 10 mins). Resistive readings can take substantially longer. It's plausible to progress at well under 100 wpm, so a 10k work article could take many hours. This is why it's not good practice to plunge straight into a resistive reading: it's very time consuming. Furthermore, the assistive reading will often make an eventual resistive reading faster since (1) one will know what's actually important in the paper as opposed to an aside, (2) one has context clues that appear after as well as before a section of text, and (3) one is typically reading with a purpose, i.e., one has already identified from the assistive reading which concepts are the tricky ones that will require interrogation/time to understand.

To re-iterate, I put this practice into action by going through steps 1 and possibly 2 as I encounter papers (e.g., from listservs, social media, from other papers, etc.). If the paper is worth more time, I send it to a folder on my laptop called triage. I then set aside some time each week to do a triage process, where I move through steps 2 through 4, as necessary. If after step 2 (or 3 or 4), I think that I’ve taken what I can from the paper, I move it into my paper organization system (i.e., Bookends). If I decide that I really want to read the paper (step 5), I then find time in my calendar and read it then. The few papers that require step 6 will need additional time allotted.

Extracting a smaller .bib file from a very large .bib file

If the compiled myarticle.tex originally used a very large biblio.bib file, perhaps containing your entire paper repository gulp then this is often too large for your coauthors and too large for Overleaf. The solution is to use the command below to output just the .bib entries that are called during the compilation of myarticle.tex. The new .bib will be called extracted.bib.

bibexport -o extracted.bib myarticle.aux

Source

Example faculty interview questions

Both lists are questions provided in advance for long list Zoom interviews with the search committee looking to hire a tenure track assistant professor at R1 Universities.

First University:

  1. Tell us about your short and long term goals and how they fit with this position.
  2. What are your major contributions to the field?
  3. Which are the two or three first proposals that are you going to write if we hire you?
  4. Which experiences shaped how you teach and mentor students and postdocs?
  5. Which course would you like to teach?
  6. How do you measure success as a faculty?
  7. What do you need to succeed in terms of people, resources, and facilities?
  8. Could you tell us something about you​ that you feel is important, but that we did not discuss it yet?
  9. Do you have any questions for us?

Second University:

  1. Please give a one minute summary of the research you envision doing here. And if someone from the general public asked you: why should I care about what you are doing? What would be your response?
  2. Five years from now, if you came here, what sort of group would you imagine having (e.g., equipment, personnel, areas of activity, collaborations, sources of funding, etc...)?
  3. What are the big questions in your field, and in what ways could you (e.g., particular methods and strengths) make significant contributions to answering them?
  4. What department courses (new or current) would you like to teach? And what current courses do you feel competent to teach?
  5. What do you see as the main challenges to making our field and department more diverse and can you envision initiatives to achieve this goal?

Remove many duplicate entries from Zotero

  1. Open up the Duplicate Items folder.
  2. Go to Tools > Developer > Run JavaScript
  3. Run the snippet:
    var DupPane = Zotero.getZoteroPanes();
     for(var i = 0; i < 100; i++) {
     await new Promise(r => setTimeout(r, 1000));
     DupPane[0].mergeSelectedItems();
     Zotero_Duplicates_Pane.merge();
     }

Basically, this clicks the "Merge X items" button 100 times with a second waiting time in between.

Source: https://forums.zotero.org/discussion/comment/347581/#Comment_347581

EES Courses

EES Fall 2021 Classes

Code    Course Name       Instructor   Lecture      Lab
GLG 201 The Dynamic Earth Jacobson MWF 9:10-10:00 M 10:20-12:10
M 12:40-2:30
M 3:00-4:50
T 10:20-12:10
GLG 303 Oceanography Schrenk TR 10:20-11:40
GLG 321 Mineralogy
and Geochemistry
Dorfman MWF 9:10-10:00 T 8:00-9:50
T 12:40-2:30
T 3:00-4:50
GLG 401 Global Tectonics
and Earth Structure
McNamara MW 12:40-2:00 F 8:00-9:50
F 10:20-12:10
GLG 411 Hydrogeology Kendall MW 10:20-11:40
GLG 434 Evolutionary
Paleobiology
Brandt TR 3:00-4:20 F 10:20-12:10
GLG 446 Ecosystems Modeling,
Water and Food Security
Basso TR 8:30-9:50
GLG 481 Reservoirs and Aquifers TBA MW 9:10-10:00 R 12:40-2:30
R 10:20-12:10
GLG 821 Aqueous Geochemistry TBA MWF 11:30-12:20
GLG 871 Intoduction to Seismology Wei MW 2:40-4:00
GLG 901 Research Strategies
and Methods
Rooney F 12:40-1:30
ISP 203B Understanding Earth:
Natural Hazards
and the Environment
Drost


Vannier
Rooney
WF 12:40-2:00
WF 3:00-4:20
WF 10:20-11:40
TR 8:30-9:50
TR 12:40-2:00
ISP 203L Geology of
the Human Environment
Vannier T 12:40-2:30
T 3:00-4:50
R 12:40-2:30

To bold and italicize specific author names in a BibTex bibliography

For the purpose of emphasizing specific names in a CV or bibliography made in Latex, one can modify the relevant .bst file. The syntax of the .bst file is not straightforward, however the following steps modified from one of the deeper responses to a query on tex.stackexchange and Yu Zhang's Tools are.

First, at the top of the .bst file add a function that will replace a name with the bolded version of that name.

FUNCTION {bold.if.imauthor}
    { duplicate$ purify$ 
    "I. M. Author"
    purify$ = { 
    "\textbf{"
    swap$ * "}" * } 'skip$ if$
}

If one wants to italicize or underline, then it's a simple matter of changing \textbf for \textit or \underline.

Note that the name in the function above should be reproduced identically as it is in the sytle of the .bst file. For example if the .bst file style, prints "Author, I. M." in the author list such as in aasjournal.bst, then this is how the name should be rendered above. Lastly, syntax in .bst allows for this all to be on one-line or many, just don't put line breaks inside double quotes.

Second, find the function FUNCTION {format.names}. Somewhere in this function (near but not at the top) will be a line that contains:

format.name$

It may be that format.name$ has been written on a line that contains other commands before and after it. If so, put a line break after format.name$ so that it ends the line. Then, insert a new line directly after it with the name of the function from above, bold.if.imauthor, calling it.

For example, let's say we are modifying plain.bst. In that file, the relevant section of the format.names function originally looked like:

FUNCTION {format.names}
...
    { s nameptr 
      "{ff~}{vv~}{ll}{, jj}" format.name$ 't :=
      nameptr #1 >
...

The author emphasis function is then inserted like so:

FUNCTION {format.names}
...
    { s nameptr 
      "{ff~}{vv~}{ll}{, jj}" format.name$ 
      bold.if.imauthor
      't :=
      nameptr #1 >
...

Note that you can write as many of these author name emphasis functions as one needs. And each of the function calls can be added after the next in the format.names function.

Using git with Overleaf

The git repo for an Overleaf project is located at https://git.overleaf.com/x where x is https://www.overleaf.com/project/x.

To get the repo on the local machine:

  1. Navigate to the dir that you want to place the repo in.
  2. Think of a name for the repo on the local machine: y
  3. Enter the command: git clone -o overleaf https://git.overleaf.com/x y

To pull from overleaf to local machine

  1. Enter the command: git pull overleaf

To backup the repo on bitbucket with owner username

  1. Navigate to https://bitbucket.org/username/workspace/create/repository
  2. Name the repo y, fill out the rest of the form, and create repo.
  3. Navigate to dir/y on your local machine.
  4. Enter the command: git remote add bitbucket git@bitbucket.org:username/y.git
  5. Enter the command: git push bitbucket --force

To make pushing to both remote repos easier from local machine

  1. Navigate to dir/y on your local machine.
  2. Enter the command: git remote add all https://git.overleaf.com/x
  3. Enter the command: git remote set-url --add --push all https://git.overleaf.com/x
  4. Enter the command: git remote set-url --add --push all git@bitbucket.org:username/y.git

To push to overleaf and bitbucket from local machine

  1. Enter the command: git push all

Git remote management

To list all remotes

git remote -v

To rename remotes

git remote rename oldname newname

To push all branches to all remotes:

git remote | xargs -L1 git push --all

Or if you want to push a specific branch to all remotes: Replace master with the branch you want to push.

git remote | xargs -L1 -I R git push R master

(Bonus) To make a git alias for the command:

git config --global alias.pushall '!git remote | xargs -L1 git push --all'

Running git pushall will now push all branches to all remotes.

Bookmarkable link for MSU EZ Proxy

Using EZ proxy to get MSU access to journal articles is relatively straightforward. One must add the following before the url of the webpage of the journal article: http://ezproxy.msu.edu/login?url=

But, remembering the MSU EZ proxy link is annoying and so is copying and pasting it from somewhere else since that means opening other webpages or programs. Thus, I created the following simple javascript program that can be added as a bookmark to a web browser (or better yet, to the bookmark bar). Right-click to copy the link address below, then add a bookmark in the browswer and paste it where the url of the page belongs to make the bookmark.

This is the link that needs to be added to the bookmark bar.

Then, whenever one is off-campus and has navigated to the pay-walled version of a publication, one needs only click on the bookmark.

Setting up SSH Keys

  1. Create the RSA Key Pair on home machine
    $ ssh-keygen -t rsa
  2. Store the keys and passphrase
    Push enter twice to the prompts for where to save the key and the passphrase
  3. Copy the public Key to the away machine
    $ ssh-copy-id username@away.machine
    or if ssh-copy-id is not a functioning command
    $ cat ~/.ssh/id_rsa.pub | ssh username@away.machine "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys"