From e68898674dbe93165016324dca27ef970121715f Mon Sep 17 00:00:00 2001 From: "Thomas J. Brailey" Date: Sat, 1 Aug 2020 17:48:20 -0700 Subject: [PATCH] content --- content/about.md | 2 +- content/posts/niche_plots_I.Rmd | 8 +- content/posts/niche_plots_I.html | 14 +- content/posts/niche_plots_II.Rmd | 52 ++++ content/posts/niche_plots_II.html | 36 +++ content/posts/replicability.Rmd | 102 +++++++ content/posts/replicability.html | 69 +++++ content/posts/research_associate.Rmd | 50 ++++ content/posts/research_associate.html | 56 ++++ content/resume.cls | 131 +++++++++ content/tb.aux | 1 + content/tb.log | 266 ++++++++++++++++++ ...railey_resume_2020_academic.pdf => tb.pdf} | Bin 83760 -> 88399 bytes content/tb.synctex.gz | Bin 0 -> 10248 bytes content/tb.tex | 155 ++++++++++ content/texput.log | 19 ++ 16 files changed, 951 insertions(+), 10 deletions(-) create mode 100644 content/posts/niche_plots_II.Rmd create mode 100644 content/posts/niche_plots_II.html create mode 100644 content/posts/replicability.Rmd create mode 100644 content/posts/replicability.html create mode 100644 content/posts/research_associate.Rmd create mode 100644 content/posts/research_associate.html create mode 100644 content/resume.cls create mode 100644 content/tb.aux create mode 100644 content/tb.log rename content/{tjbrailey_resume_2020_academic.pdf => tb.pdf} (54%) create mode 100644 content/tb.synctex.gz create mode 100644 content/tb.tex create mode 100644 content/texput.log diff --git a/content/about.md b/content/about.md index f122c73..4880e40 100644 --- a/content/about.md +++ b/content/about.md @@ -11,4 +11,4 @@ I have served as a research assistant for the Center for the Study of African Po I am interested in political institutions, elections, secession, and conflict in developing democracies, with a particular focus in sub-Saharan Africa. -My CV can be found [here](/tjbrailey_resume_2020_academic.pdf). \ No newline at end of file +My CV can be found [here](/tb.pdf). \ No newline at end of file diff --git a/content/posts/niche_plots_I.Rmd b/content/posts/niche_plots_I.Rmd index 59dbf12..8bff025 100644 --- a/content/posts/niche_plots_I.Rmd +++ b/content/posts/niche_plots_I.Rmd @@ -1,5 +1,5 @@ --- -title: "Ridiculously Niche Plots Episode I: Scaled Faceted Radar Plots with Colorful Text" +title: "Ridiculously Niche Plots Episode I: Scaled and Faceted Radar Plots" author: "Tom Brailey" date: "2020-06-17" categories: ["R"] @@ -10,7 +10,7 @@ Hello and welcome to the first episode in a series I like to call "Ridiculously In today's episode, we will be looking at radar plots, specifically, radar plots faceted by country, more specifically, scaled faceted radar plots with axis labels that corresponds to its legend, which groups percentages of military equipment by the domain in which they operate, and where if that percentage is 0, the axis text is grayed-out. -To many of you I'm sure this sounds elementary, but, honestly, when I figured this out I felt a sense of achievement like no other. So, in the interesting of reliving that euphoric moment, here we go! +To many of you I'm sure this sounds elementary, but, honestly, when I figured this out I felt a sense of achievement like no other. So, in the interest of reliving that euphoric moment, here we go! Firstly, I do some top-secret data cleaning. @@ -208,10 +208,10 @@ p <- grid.arrange(arrangeGrob( grobs = my_list, nrow = round(length(my_sub)/2, 0), - left = textGrob("X axis", + left = textGrob("Y axis", gp = gpar(fontsize = 20), rot = 90), - bottom = textGrob("Y axis", + bottom = textGrob("X axis", gp = gpar(fontsize = 20), vjust = -3), top = textGrob("Big plot", diff --git a/content/posts/niche_plots_I.html b/content/posts/niche_plots_I.html index f56dc24..5563b9d 100644 --- a/content/posts/niche_plots_I.html +++ b/content/posts/niche_plots_I.html @@ -1,5 +1,5 @@ --- -title: "Ridiculously Niche Plots Episode I: Scaled Faceted Radar Plots with Colorful Text" +title: "Ridiculously Niche Plots Episode I: Scaled and Faceted Radar Plots" author: "Tom Brailey" date: "2020-06-17" categories: ["R"] @@ -19,7 +19,7 @@

Hello and welcome to the first episode in a series I like to call “Ridiculously Niche Plots”! An intermittent series where I give a brief rundown of especially strange plots that I have spent hours trying to crack, in the hope that someone, somewhere, struggling to understand the ins and outs of gridExtra or who are hitting their head against a wall because ggplot2 is throwing out a horrifically labyrinthine error, might stumble on this article and have all of their questions answered. I have certainly spent many hours hoping for the same…

In today’s episode, we will be looking at radar plots, specifically, radar plots faceted by country, more specifically, scaled faceted radar plots with axis labels that corresponds to its legend, which groups percentages of military equipment by the domain in which they operate, and where if that percentage is 0, the axis text is grayed-out.

-

To many of you I’m sure this sounds elementary, but, honestly, when I figured this out I felt a sense of achievement like no other. So, in the interesting of reliving that euphoric moment, here we go!

+

To many of you I’m sure this sounds elementary, but, honestly, when I figured this out I felt a sense of achievement like no other. So, in the interest of reliving that euphoric moment, here we go!

Firstly, I do some top-secret data cleaning.

beep boop

@@ -27,7 +27,7 @@

Okay, so here’s what our data looks like:

DT::datatable(tbl[1:20,])

- + Now we do a little bit of work to create functions and whatnot:

# This function gets all the legend information from a given ggplot object
 get_legend <-
@@ -118,10 +118,14 @@
 }
## Warning: Factor `country` contains implicit NA, consider using
 ## `forcats::fct_explicit_na`
+
## Warning: Factor `domain` contains implicit NA, consider using
+## `forcats::fct_explicit_na`
## Warning: Vectorized input to `element_text()` is not officially supported.
 ## Results may be unexpected or may change in future versions of ggplot2.
## Warning: Factor `country` contains implicit NA, consider using
 ## `forcats::fct_explicit_na`
+
## Warning: Factor `domain` contains implicit NA, consider using
+## `forcats::fct_explicit_na`
## Warning: Vectorized input to `element_text()` is not officially supported.
 ## Results may be unexpected or may change in future versions of ggplot2.

So now we have a list of ggplot objects that have all been scaled as if using the facet_grid(scales = “fixed”) argument. All we have left to do is neatly plot them together along with a single lengend rather than a legend for each plot.

@@ -138,10 +142,10 @@ grid.arrange(arrangeGrob( grobs = my_list, nrow = round(length(my_sub)/2, 0), - left = textGrob("X axis", + left = textGrob("Y axis", gp = gpar(fontsize = 20), rot = 90), - bottom = textGrob("Y axis", + bottom = textGrob("X axis", gp = gpar(fontsize = 20), vjust = -3), top = textGrob("Big plot", diff --git a/content/posts/niche_plots_II.Rmd b/content/posts/niche_plots_II.Rmd new file mode 100644 index 0000000..7888edb --- /dev/null +++ b/content/posts/niche_plots_II.Rmd @@ -0,0 +1,52 @@ +--- +title: "Ridiculously Niche Plots Episode II: Vessel Range from Coastline in ArcGIS" +author: "Tom Brailey" +date: "2020-08-01" +categories: ["ArcGIS"] +tags: ["ArcGIS", "path distance"] +--- + + +Hello and welcome to the second episode of Ridiculously Niche Plots! Today, we are moving away from R into the realm of ArcGIS. Arc is quite a bit different to R, and reproducing outputs can be a little complicated. While there is no code to show per se, I will run through the model which is laid out in a sort of flowchart format. + +#### Context + +This project was part of my work at cPASS, specifically, Andres Gannon's dissertation on military specialization. The genesis of plot occurred as follows. Say a country that has recently joined a military alliance and acquires a new military vessel, what can the range of that vessel tell us? For example, after joining NATO, Albania acquired a military vessel that had a range of 1850 nautical miles (roughly 3426 kilometers), a range that is clearly larger than the maritime boundaries that the ship would need to patrol. Of course, it makes sense for a ship to have a larger range than is needed, but we wanted to understand just how big that range was compared to the country's maritime boundaries, and whether a ship's range gave insight into the military alliance itself. + +To do this, I needed to map which countries a ship with a range of 1850 nautical miles could reach. While this sounded simple to me in principal, I found this to be a far more challenging task. While it is easy to create a circle around Albania that is radius 1850 nautical miles, this is misleading as it assumes a ship can just travel in a straight line, and across land. So the question becomes, what does 1850 nautical miles look like when accounting for the presence of land? + +Below, you will see the flowchart layout of the model used to create a map of Albania, it's maritime boundaries, and the vessel's range. For those familiar with ArcGIS, I apologize in advance for my poor object-naming scheme; this project had gone through many iterations and by the end I had given up on naming conventions. I have named each step in the model for ease of understanding. + +![](/posts/niche_plots_II_files/Export Graphic.jpg) + +1. This plot can be replicated using three shapefiles from the web. Firstly, eez_boundaries_v11.shp is a shapefile containing information on maritime boundaries for all countries. gadm36_0.shp is a shapefile of all countries. I use this to create gadm36_0_Select2_Project_Clip.shp, which I will explain later. These files are the foundations for our visualization. + +2. We start by selecting just the maritime boundary for Albania. + +3. We then project the shapefile into a projected coordinate system that preserves distance (given that out ultimate objective is to calculate the total traversable distance of Albania's military vessels). For that, we use a European equidistant conic projection. + +4. Now, we create a buffer around the central point of Albania's maritime boundary. In essence, we are drawing a circle with a radius of 1850 nautical miles around the maritime boundary. + +5. (+ also 10) Here is where it gets a bit complicated. gadm36_0_Select2_Project_Clip.shp is created by clipping the buffer made in step 4 with the shapefile of all countries, resulting in a shapefile that is all the land that exists within the buffer. ArcGIS can be a little temperamental, and I had to write a separate model to create this output to stop the main model from breaking inexplicably (steps 8, 9, and 10 create the output, but under a different name). Anyway, we take the buffer from step four, and essentially "erase" anything that is common between that and the land within the buffer. This means that we are left with only water regions within the buffer around Albania's maritime boundary. + +6. We now convert the shapefile that contains all the water within the vessel's range into a raster file. When converting to raster, we are able to specify the size of each square that makes up the image -- for our purposes, we covert to kilometers. + +7. On opening the attributes table of the raster file, we see that each cell that makes up the image has a different value. In order to run our model later on, we need each cell to equal 1. Running "reclassify" in our case turns all values that are not equal to 1 to equal 1. The raster file is now ready to be put into the path distance model + +8. We now take the shapefile of all countries and remove Antarctica. This has just become a weird habit of mine... + +9. It is essential that all of our input files are in the same projection, otherwise our results will be completely off. Here I convert the shapefile to the European equidistant conic projection mentioned in step 3. + +10. Here, I subset the shapefile of all countries to just those that fall within the buffer created in step 4. Because of ArcGIS's quirks, I had to rename this file and manually read it in for it to be used for step 5. + +11. Now I subset the global shapefile to just include Albania. This is for both visual purposes (I want to be able to highlight where Albania is in reference to the rest of Europe) and also in order to run the main model. + +12. It is time to run the path distance model. The model requires two inputs, the starting point (the Albania shapefile, from step 11) and the cost raster (the output from step 7). The path distance model calculates distances from Albania while also accounting for the presence of obstacles, however, in doing so, it calculates distances that are beyond 1850 nautical miles (e.g. travelling from Albania to Norway via Portugal is within the buffer, but is more than 1850 nautical miles). As such, the final step is to filter values that are beyond the actual range of the ship. Doing so leaves us with the traversable distance of the ship, as denoted by the blue shaded area in the image below. + +In Arc, there are a lot of manual, and thus not really reproducible, edits you must make in order for the map to be considered publication-worthy. For example, I spent time coloring in the different shapefiles for maximum effect and clarity, adding a title, legend, and map information, and rescaling the plot to make it as clear as possible. The final product is below: + +![](/posts/niche_plots_II_files/albania_vessel_range.png) + +Quite niche indeed! This project was deceptively complicated, and more time was spent conceptualizing the problem than actually running the model. Nonetheless, it was a super interesting and enjoyable process, and I think the final product is pretty cool! + +That concludes the second episode of Niche Plots. Who knows what kind of weird things I will be plotting in the future... \ No newline at end of file diff --git a/content/posts/niche_plots_II.html b/content/posts/niche_plots_II.html new file mode 100644 index 0000000..c62bcf8 --- /dev/null +++ b/content/posts/niche_plots_II.html @@ -0,0 +1,36 @@ +--- +title: "Ridiculously Niche Plots Episode II: Vessel Range from Coastline in ArcGIS" +author: "Tom Brailey" +date: "2020-08-01" +categories: ["ArcGIS"] +tags: ["ArcGIS", "path distance"] +--- + + + +

Hello and welcome to the second episode of Ridiculously Niche Plots! Today, we are moving away from R into the realm of ArcGIS. Arc is quite a bit different to R, and reproducing outputs can be a little complicated. While there is no code to show per se, I will run through the model which is laid out in a sort of flowchart format.

+
+

Context

+

This project was part of my work at cPASS, specifically, Andres Gannon’s dissertation on military specialization. The genesis of plot occurred as follows. Say a country that has recently joined a military alliance and acquires a new military vessel, what can the range of that vessel tell us? For example, after joining NATO, Albania acquired a military vessel that had a range of 1850 nautical miles (roughly 3426 kilometers), a range that is clearly larger than the maritime boundaries that the ship would need to patrol. Of course, it makes sense for a ship to have a larger range than is needed, but we wanted to understand just how big that range was compared to the country’s maritime boundaries, and whether a ship’s range gave insight into the military alliance itself.

+

To do this, I needed to map which countries a ship with a range of 1850 nautical miles could reach. While this sounded simple to me in principal, I found this to be a far more challenging task. While it is easy to create a circle around Albania that is radius 1850 nautical miles, this is misleading as it assumes a ship can just travel in a straight line, and across land. So the question becomes, what does 1850 nautical miles look like when accounting for the presence of land?

+

Below, you will see the flowchart layout of the model used to create a map of Albania, it’s maritime boundaries, and the vessel’s range. For those familiar with ArcGIS, I apologize in advance for my poor object-naming scheme; this project had gone through many iterations and by the end I had given up on naming conventions. I have named each step in the model for ease of understanding.

+

+
    +
  1. This plot can be replicated using three shapefiles from the web. Firstly, eez_boundaries_v11.shp is a shapefile containing information on maritime boundaries for all countries. gadm36_0.shp is a shapefile of all countries. I use this to create gadm36_0_Select2_Project_Clip.shp, which I will explain later. These files are the foundations for our visualization.

  2. +
  3. We start by selecting just the maritime boundary for Albania.

  4. +
  5. We then project the shapefile into a projected coordinate system that preserves distance (given that out ultimate objective is to calculate the total traversable distance of Albania’s military vessels). For that, we use a European equidistant conic projection.

  6. +
  7. Now, we create a buffer around the central point of Albania’s maritime boundary. In essence, we are drawing a circle with a radius of 1850 nautical miles around the maritime boundary.

  8. +
  9. (+ also 10) Here is where it gets a bit complicated. gadm36_0_Select2_Project_Clip.shp is created by clipping the buffer made in step 4 with the shapefile of all countries, resulting in a shapefile that is all the land that exists within the buffer. ArcGIS can be a little temperamental, and I had to write a separate model to create this output to stop the main model from breaking inexplicably (steps 8, 9, and 10 create the output, but under a different name). Anyway, we take the buffer from step four, and essentially “erase” anything that is common between that and the land within the buffer. This means that we are left with only water regions within the buffer around Albania’s maritime boundary.

  10. +
  11. We now convert the shapefile that contains all the water within the vessel’s range into a raster file. When converting to raster, we are able to specify the size of each square that makes up the image – for our purposes, we covert to kilometers.

  12. +
  13. On opening the attributes table of the raster file, we see that each cell that makes up the image has a different value. In order to run our model later on, we need each cell to equal 1. Running “reclassify” in our case turns all values that are not equal to 1 to equal 1. The raster file is now ready to be put into the path distance model

  14. +
  15. We now take the shapefile of all countries and remove Antarctica. This has just become a weird habit of mine…

  16. +
  17. It is essential that all of our input files are in the same projection, otherwise our results will be completely off. Here I convert the shapefile to the European equidistant conic projection mentioned in step 3.

  18. +
  19. Here, I subset the shapefile of all countries to just those that fall within the buffer created in step 4. Because of ArcGIS’s quirks, I had to rename this file and manually read it in for it to be used for step 5.

  20. +
  21. Now I subset the global shapefile to just include Albania. This is for both visual purposes (I want to be able to highlight where Albania is in reference to the rest of Europe) and also in order to run the main model.

  22. +
  23. It is time to run the path distance model. The model requires two inputs, the starting point (the Albania shapefile, from step 11) and the cost raster (the output from step 7). The path distance model calculates distances from Albania while also accounting for the presence of obstacles, however, in doing so, it calculates distances that are beyond 1850 nautical miles (e.g. travelling from Albania to Norway via Portugal is within the buffer, but is more than 1850 nautical miles). As such, the final step is to filter values that are beyond the actual range of the ship. Doing so leaves us with the traversable distance of the ship, as denoted by the blue shaded area in the image below.

  24. +
+

In Arc, there are a lot of manual, and thus not really reproducible, edits you must make in order for the map to be considered publication-worthy. For example, I spent time coloring in the different shapefiles for maximum effect and clarity, adding a title, legend, and map information, and rescaling the plot to make it as clear as possible. The final product is below:

+

+

Quite niche indeed! This project was deceptively complicated, and more time was spent conceptualizing the problem than actually running the model. Nonetheless, it was a super interesting and enjoyable process, and I think the final product is pretty cool!

+

That concludes the second episode of Niche Plots. Who knows what kind of weird things I will be plotting in the future…

+
diff --git a/content/posts/replicability.Rmd b/content/posts/replicability.Rmd new file mode 100644 index 0000000..ce62416 --- /dev/null +++ b/content/posts/replicability.Rmd @@ -0,0 +1,102 @@ +--- +title: "A Brief Note on Replication in R" +author: "Tom Brailey" +date: "2020-07-15" +categories: ["R"] +tags: ["R", "replication"] +--- + +Replication studies -- repeating an existing study/experiment/analysis to see if the results hold up -- in the social sciences are essential for the advancement of scientific understanding. [See this Vox article for a primer](https://www.vox.com/science-and-health/2018/8/27/17761466/psychology-replication-crisis-nature-social-science#:~:text=One%20of%20the%20cornerstone%20principles,we%20can't%20be%20sure.). + +On a smaller scale, labs often get their researchers to run what are known as "code audits". If one researcher is working on an analysis, they hand it over to another researcher for them to run and see if the results are replicable. This process usually involves the sharing of Dropbox folders and Github repositories and code scripts. Perhaps I am being intensely persnickety about this, but I believe that if you are given an R script and have to change *anything* in order for it to run, then it is not replicable. Code audits should be quick and easy to run, giving the researchers more time to spend on actual debugging and streamlining. + +Here is an overview of a common set up for research projects: + +- Main Dropbox (MOUs, PAPs, manuscripts, admin, raw data, interim data, final cleaned data, etc.) + +- Github repository (set up using version control. Found in a separate folder in Dropbox) + + - This is where all the cleaning and analysis code lives. Scripts should call from the main Dropbox's raw data folder, run the cleaning and analysis, then save the final data in the cleaned data folder of the main Dropbox + + +Additionally, I have established a few personal rules when creating a script that I know I will being handing off to someone else for an audit. + +#### File paths +I have seen lots of different ways to set file paths and directories, and most of the time, given that we all have different folder naming conventions, auditing codes requires editing these file paths. It's not a huge deal but this is how we make mistakes and accidentally save datasets in weird places and never find them again (...definitely not speaking from experience...). When specifying your "root", i.e. the main location where raw data and other core project files exist, I do the following: + +```{r, eval = F} +root <- paste0("/Users/", Sys.getenv("USERNAME"), "/Dropbox/") +``` + +Now this will set the root to be the computer's user's Dropbox folder, which, if everyone is using Dropbox, will replicate across users. From this root, you can set other specific file paths as necessary. + +Another thing to note, many projects are split between a main Dropbox folder and a Github repository that essentially talk to one another. When specifying paths for the Github repository, I use a specific package. + +```{r, eval = F} +github <- paste0(here::here()) +``` + +This sets the working directory to be the location of the project you are working on, for example: + +"C:/Users/my_username/Dropbox/github/my_repo" + +Again this is just personal preference, I tend to have a script that is solely for specifying individual file paths. For example, I set file paths for input data, output data, summary statistics and graphs, tables for the manuscript, and so on. Doing this with the "here" package is super simple. + +```{r, eval = F} +tbls_fr_manuscript <- paste0(here::here(), "/exhibits/for_manuscript") +``` + +Then, when you've made your lovely .tex table, you can save it with ease. And as long as you are sharing the entire project structure with the auditor, everything will replicate and run smoothly. + +```{r, eval = F} +print(xtable(tbl_A, type = "latex"), file = paste0(tbls_fr_manuscript, "/tbl_A.tex")) +``` + +#### Calling packages + +Another thing I've noticed that can cause problems for auditors is the installing and loading of packages at the start of the script. This presents a few issues. First, if you are installing and loading packages each time you re-run the code, it is time consuming and often requires you to reboot R. Second, and most importantly, it creates issues with dependency. If you load all necessary packages at once, and, say, two packages have a similarly-named command, then this can produce errors when running the code. This is because R might confuse one command as being from one package when it is actually from another. For example, base R and dplyr both have the command "select" and if you load dplyr at the start of the script and later call select, R might not recognize that it is from that package. This is becoming an increasingly common issue given the proliferation of packages in R. My solution, though a little verbose, does the trick. It is also useful for debugging. It is better to dive straight into the problem rather than spending time trying to figure out where the command comes from and what it does. + +Instead of installing and loading packages at the start of the script, you call them up in line. If an auditor needs to install a package on their machine, R will tell them what packages are used in the script and whether it needs to be installed or not. Note that the only packages I specifically call at the start of a script are magrittr (for the pipe function) and ggplot2 (just because it's convenient). + +```{r, eval = F} +my_data %>% + dplyr::mutate(new_var = old_var + 100, + string_var = stringr::str_replace(string_var, "_000", "")) %>% + tidyr::pivot_longer(-keep_var, names_to = "name", values_to = "value") +``` + +If you *really* don't want to use library() in your scripts, you could do the following to call the pipe function: + +```{r, eval = F} +`%>%` <- magrittr::`%>%` +``` + +So yes, there is a little more writing required, but the payoff is clear, concise, and more easily debuggable code. + +#### rm(list=ls()) + +Lot's of scripts I see start with this. While it might be nice to clear the workspace before running everything, it doesn't really clear the workspace in a meaningful way, and auditors who are working on something else might accidentally lose their work if they start working on auditing your code (again, definitely not talking from experience...). + +#### Comments + +Lastly, and more generally, a good piece of reproducible code will have lots of comments. I enumerate a few key points below: + +- For each chunk, i.e. each for loop, ggplot, function, etc., have a header comment outlining what exactly it does. + +- Then, for each line of code, have an in-line comment that states what that code does. Are we taking the log of a variable? Are we replacing values that equal -99 with NA? While keeping this concise and short, it is also often useful to include a note on *why* you are doing that thing, too. An explanation of why can also come at the start of the chunk in order to avoid cluttering the code itself. + +- Avoid comments that superfluous/humorous/otherwise unnecessary. If, when you read back through the code, you realize that a comment doesn't add to the overall clarity of your code, then it is best to delete it. + +- Avoid abbreviations. It's better for the comments to be a bit longer and be very clear than shorter and hard to decipher. + +- At the end of a chunk of code, if applicable, have a note on what should have been produced. For example, if you have a for loop that creates a bunch of new variables, state how many new variables should have been created, their class, their naming format, and their purpose. While one could reasonably ascertain what the code is doing, and figure out what the output would do, it is better to have it in writing to avoid any unnecessary confusion and time-wasting. + +I tend to use these commenting conventions for all pieces of code that I write, from analysis and cleaning scripts, to user-defined functions, and so on. + +#### Other + +More specific to code auditing, it is really useful to have an audit document that basically contains all the meta information for the code that you are handing off to someone. For me, I find MS Excel/Googlesheets to be the best format for these audit documents. One sheet will contain an overview of how all the different scripts relate to each other -- you can usually figure this out just by looking at the file structure in your Dropbox, but I like to have a single document that outlines where each script is located and its dependencies. A second sheet will contain a list of outputs/exhibits that you expect the auditor to replicate. The name of the exhibit as well as the script that contains the code to produce the output should be mentioned, and there should be space for the auditor to leave comments and suggestions, or flag errors if the exhibit is not produced as expected. A third sheet contains a list of to-dos. These will be a mix of errors flagged from the outputs sheet, as well as any general suggestions and issues. + +This is a good framework for collaborative code audits. Of course, depending on the complexity of the code that one is sending off for audit, it might be useful to include sheets that outline particularly complex or highly interdependent processes, say, certain variables are created and how they are then used to create other variables. If you think that your in-line comments can't quite fully capture what is going on, or if the auditor isn't super familiar with the context of your project, a more thorough summary might be in order. + +That's everything I've got for now. I will probably add more to this article as I read more about reproducible research and code audits and whatnot. If anyone reads these blog posts and wants to add anything to this document, leave a comment in the [issues section](https://github.com/tjbrailey/Website/issues) of my website's Github. \ No newline at end of file diff --git a/content/posts/replicability.html b/content/posts/replicability.html new file mode 100644 index 0000000..c7fc694 --- /dev/null +++ b/content/posts/replicability.html @@ -0,0 +1,69 @@ +--- +title: "A Brief Note on Replication in R" +author: "Tom Brailey" +date: "2020-07-15" +categories: ["R"] +tags: ["R", "replication"] +--- + + + +

Replication studies – repeating an existing study/experiment/analysis to see if the results hold up – in the social sciences are essential for the advancement of scientific understanding. See this Vox article for a primer.

+

On a smaller scale, labs often get their researchers to run what are known as “code audits”. If one researcher is working on an analysis, they hand it over to another researcher for them to run and see if the results are replicable. This process usually involves the sharing of Dropbox folders and Github repositories and code scripts. Perhaps I am being intensely persnickety about this, but I believe that if you are given an R script and have to change anything in order for it to run, then it is not replicable. Code audits should be quick and easy to run, giving the researchers more time to spend on actual debugging and streamlining.

+

Here is an overview of a common set up for research projects:

+ +

Additionally, I have established a few personal rules when creating a script that I know I will being handing off to someone else for an audit.

+
+

File paths

+

I have seen lots of different ways to set file paths and directories, and most of the time, given that we all have different folder naming conventions, auditing codes requires editing these file paths. It’s not a huge deal but this is how we make mistakes and accidentally save datasets in weird places and never find them again (…definitely not speaking from experience…). When specifying your “root”, i.e. the main location where raw data and other core project files exist, I do the following:

+
root <- paste0("/Users/", Sys.getenv("USERNAME"), "/Dropbox/")
+

Now this will set the root to be the computer’s user’s Dropbox folder, which, if everyone is using Dropbox, will replicate across users. From this root, you can set other specific file paths as necessary.

+

Another thing to note, many projects are split between a main Dropbox folder and a Github repository that essentially talk to one another. When specifying paths for the Github repository, I use a specific package.

+
github <- paste0(here::here())
+

This sets the working directory to be the location of the project you are working on, for example:

+

“C:/Users/my_username/Dropbox/github/my_repo”

+

Again this is just personal preference, I tend to have a script that is solely for specifying individual file paths. For example, I set file paths for input data, output data, summary statistics and graphs, tables for the manuscript, and so on. Doing this with the “here” package is super simple.

+
tbls_fr_manuscript <- paste0(here::here(), "/exhibits/for_manuscript")
+

Then, when you’ve made your lovely .tex table, you can save it with ease. And as long as you are sharing the entire project structure with the auditor, everything will replicate and run smoothly.

+
print(xtable(tbl_A, type = "latex"), file = paste0(tbls_fr_manuscript, "/tbl_A.tex"))
+
+
+

Calling packages

+

Another thing I’ve noticed that can cause problems for auditors is the installing and loading of packages at the start of the script. This presents a few issues. First, if you are installing and loading packages each time you re-run the code, it is time consuming and often requires you to reboot R. Second, and most importantly, it creates issues with dependency. If you load all necessary packages at once, and, say, two packages have a similarly-named command, then this can produce errors when running the code. This is because R might confuse one command as being from one package when it is actually from another. For example, base R and dplyr both have the command “select” and if you load dplyr at the start of the script and later call select, R might not recognize that it is from that package. This is becoming an increasingly common issue given the proliferation of packages in R. My solution, though a little verbose, does the trick. It is also useful for debugging. It is better to dive straight into the problem rather than spending time trying to figure out where the command comes from and what it does.

+

Instead of installing and loading packages at the start of the script, you call them up in line. If an auditor needs to install a package on their machine, R will tell them what packages are used in the script and whether it needs to be installed or not. Note that the only packages I specifically call at the start of a script are magrittr (for the pipe function) and ggplot2 (just because it’s convenient).

+
my_data %>% 
+  dplyr::mutate(new_var = old_var + 100,
+                string_var = stringr::str_replace(string_var, "_000", "")) %>% 
+  tidyr::pivot_longer(-keep_var, names_to = "name", values_to = "value")
+

If you really don’t want to use library() in your scripts, you could do the following to call the pipe function:

+
`%>%` <- magrittr::`%>%`
+

So yes, there is a little more writing required, but the payoff is clear, concise, and more easily debuggable code.

+
+
+

rm(list=ls())

+

Lot’s of scripts I see start with this. While it might be nice to clear the workspace before running everything, it doesn’t really clear the workspace in a meaningful way, and auditors who are working on something else might accidentally lose their work if they start working on auditing your code (again, definitely not talking from experience…).

+
+
+

Comments

+

Lastly, and more generally, a good piece of reproducible code will have lots of comments. I enumerate a few key points below:

+ +

I tend to use these commenting conventions for all pieces of code that I write, from analysis and cleaning scripts, to user-defined functions, and so on.

+
+
+

Other

+

More specific to code auditing, it is really useful to have an audit document that basically contains all the meta information for the code that you are handing off to someone. For me, I find MS Excel/Googlesheets to be the best format for these audit documents. One sheet will contain an overview of how all the different scripts relate to each other – you can usually figure this out just by looking at the file structure in your Dropbox, but I like to have a single document that outlines where each script is located and its dependencies. A second sheet will contain a list of outputs/exhibits that you expect the auditor to replicate. The name of the exhibit as well as the script that contains the code to produce the output should be mentioned, and there should be space for the auditor to leave comments and suggestions, or flag errors if the exhibit is not produced as expected. A third sheet contains a list of to-dos. These will be a mix of errors flagged from the outputs sheet, as well as any general suggestions and issues.

+

This is a good framework for collaborative code audits. Of course, depending on the complexity of the code that one is sending off for audit, it might be useful to include sheets that outline particularly complex or highly interdependent processes, say, certain variables are created and how they are then used to create other variables. If you think that your in-line comments can’t quite fully capture what is going on, or if the auditor isn’t super familiar with the context of your project, a more thorough summary might be in order.

+

That’s everything I’ve got for now. I will probably add more to this article as I read more about reproducible research and code audits and whatnot. If anyone reads these blog posts and wants to add anything to this document, leave a comment in the issues section of my website’s Github.

+
diff --git a/content/posts/research_associate.Rmd b/content/posts/research_associate.Rmd new file mode 100644 index 0000000..bebf37e --- /dev/null +++ b/content/posts/research_associate.Rmd @@ -0,0 +1,50 @@ +--- +title: "From RA to RA" +author: "Tom Brailey" +date: "2020-07-28" +categories: ["Misc"] +tags: ["Research assistant", "Research assoicate"] +--- + +In June 2020, I finished up my research assistant positions at UC San Diego's (UCSD) political science department, and in July, I began working as a research associate for J-PAL's Payments and Governance Research Program (PGRP), also at UCSD. Now I have been working there for about a month, I wanted to ruminate about the transition from RA to RA. + +Me, being my naive and excitable self, dove head first into PGRP, assuming it to be a full-time version of the work I had been doing for the political science department. A typical workday at the department would go: get tagged in an issue ticket where the task was to create a type of graph, wrangle a dataset in a particular way, or complete a given amount of data-entry. From there, I would spend usually a day or so completing that task, checking-in regularly with my supervisor (either a PhD student or a professor) to clarify questions and arrange next-steps, and then I would move on to the next task. This set up was great for me, quick tasks that usually taught me a new skill--I would be forced to figure out how to make a waffle plot or calculate a certain statistic--and that I could complete in a couple of hours, allowing me to focus on school-related work for the rest of the day. Moreover, I never felt a huge amount of responsibility as I was just working from graph to graph, dataset to dataset, with clear instruction and little room for misunderstanding. + +An aside, I had an absolutely fantastic experience with all the research assistant positions that I held. However, I have colleagues who have had wildly different experiences, and so while this post maintains a warm view toward research assistantships, the darker sides of such positions--not getting paid, being over- and under-worked, workplace misconduct, and the like--need to be acknowledged. + +I enjoyed this style of work, and somewhat foolishly thought that a full-time research associate position would be, in essence, the same. Get given a graph to make or some data to clean or a manuscript to proofread, but all day long. What fun! When you look at the job description for a research assistant and a research associate--in political science and economics at least--they look about the same, and, from my perspective at least, no one ever really distinguished between the two, and so going into my new position, I assumed that, aside from the time commitment, they were the same position. + +In fact, the jump from research assistant to associate was a fairly big one. A lot fo the work is actually quite similar; you spend a lot of time cleaning and analyzing data, making graphs, and so on, but the, for lack of a better word, "vibe", is entirely different. Perhaps the biggest shock to the system is the self-organization piece. No longer am I being instructed to make a specific graph or clean a specific dataset; it is now my job to define the work agenda, what tasks need doing, and in what order. Of course, there is a PI, a project manager, and usually a few other research associates that allow you to talk through ideas a and get clarity, but for the most part, you are in charge of day-to-day operations. Of course, people will come to you with requests, which I certainly enjoy, though this is not the day-to-day norm. I enumerate a couple of tactics that I have implemented since starting my position later, but for me, the lack of explicit guidance has been the biggest challenge for me, coming from a research assistant position. + +The lack of instruction is exacerbated by the position being full-time. As a part-time researcher, I would intersperse work with my classes and extra-cirriculars, and I wouldn't usually focus on work-related tasks for more than three hours at a time. Now, I am up at 7, and I work until 4, and I have to fill my *entire* day with stuff to do! + +Another aside, maybe, in actual fact, the jump from RA to RA is really no big deal, and what actually caused my existential crises was, you know, the big old pandemic that happened at exactly the same time. So I should perhaps say that everything I am saying might want to be taken with a pinch of salt. + +Third, and perhaps more logically, the sheer volume and scope of your responsibilities may be overwhelming at first. You will need to familiarize yourself with vast repositories of data, manuscripts, tracking sheets, instruments; long and complicated variable naming conventions; and code that you will have literally no idea of what it is supposed to do. All of these points are to be expected of any new job, but again, if you were me, going into this with a very rudimentary understanding of the concept of "full-time research", it can all seem a little overwhelming. + +So, having worked as a research associate for about a month, what have I learned? Firstly, pandemics suck. Secondly, I enumerate a couple of points below that might be of use if you find yourself transitioning between a research assistantship and a research associate position: + +1. **Ask lots of questions** + + Obviously, it is good to try to figure things out for yourself, but set a limit on how much time you are going to spend on trying to make sense of something before reaching out to the right person. + + Additionally, when asking questions or making requests of others, it is good to: + + Enumerate any questions to maintain clarity. + + Specify a deadline of when you would like them to respond. + + It can also be useful to have a "questions/answers" document to keep record of particular issues. It is useful if you need reminding yourself, or if you end up handing your work off to others. + +2. **Keep a list of things to do** + + Try to keep your documents streamlined, and have all of your to dos in one document. + + Not a popular opinion, but I tend to shy away from using colors/fonts/sizes etc., instead crossing out goals as I complete them. + + Prioritize in terms of importance, not in terms of how easy something is to achieve. + +3. **Set daily, weekly, and monthly goals** + + Again, prioritize the important things. Try not to spend your time working on the small things in order to feel a sense of achievement (I say this, but I also do this literally all of the time). + + Be honest with yourself and with the task in hand. Based on how other tasks similar to this one have gone, how long do you *really* think you will need in order to finish it. + + Hold others accountable, and have others hold you accountable in completing these goals. + + Sometimes, a task is unexpectedly difficult. If you think it will take longer than planned, and if you promised someone you would get something to them by a deadline, be upfront, clear, and reoganize. + +4. **Document things** + + If there is a particular facet of the project that is confusing to you, writing it out can be useful. + + For example, if there is an analysis file that calls in a bunch of other scripts, it could be useful to use an Excel sheet to visualize how all the code files relate to one another. Going further, you could document the inputs into each script, as well as the expected outputs. + + Where I have a general understanding of something, and I know that the only way I am going to become super comfortable with it is exposure to it, I find documenting, writing about, or visualizing the thing to be very helpful. + + I find using apps like Googlesheets and Googledocs to be the most efficient and the easiest to integrate into my workflow. But as you accrue more and more documents, be them for note-taking, goal-setting, question-answering, and so on, make sure you have a clear and understandable file strucutre. + + I have a folder that is comprised of all documents relating to my work. It is clearly and concisely categorized and fairly easy to navigate. My thought process when creating it was to make something that I could one day hand off to the next research associate for them to use. With that in mind, I think having a folder on all things project related can be very useful for you and for the others you work with. \ No newline at end of file diff --git a/content/posts/research_associate.html b/content/posts/research_associate.html new file mode 100644 index 0000000..288053f --- /dev/null +++ b/content/posts/research_associate.html @@ -0,0 +1,56 @@ +--- +title: "From RA to RA" +author: "Tom Brailey" +date: "2020-07-28" +categories: ["Misc"] +tags: ["Research assistant", "Research assoicate"] +--- + + + +

In June 2020, I finished up my research assistant positions at UC San Diego’s (UCSD) political science department, and in July, I began working as a research associate for J-PAL’s Payments and Governance Research Program (PGRP), also at UCSD. Now I have been working there for about a month, I wanted to ruminate about the transition from RA to RA.

+

Me, being my naive and excitable self, dove head first into PGRP, assuming it to be a full-time version of the work I had been doing for the political science department. A typical workday at the department would go: get tagged in an issue ticket where the task was to create a type of graph, wrangle a dataset in a particular way, or complete a given amount of data-entry. From there, I would spend usually a day or so completing that task, checking-in regularly with my supervisor (either a PhD student or a professor) to clarify questions and arrange next-steps, and then I would move on to the next task. This set up was great for me, quick tasks that usually taught me a new skill–I would be forced to figure out how to make a waffle plot or calculate a certain statistic–and that I could complete in a couple of hours, allowing me to focus on school-related work for the rest of the day. Moreover, I never felt a huge amount of responsibility as I was just working from graph to graph, dataset to dataset, with clear instruction and little room for misunderstanding.

+

An aside, I had an absolutely fantastic experience with all the research assistant positions that I held. However, I have colleagues who have had wildly different experiences, and so while this post maintains a warm view toward research assistantships, the darker sides of such positions–not getting paid, being over- and under-worked, workplace misconduct, and the like–need to be acknowledged.

+

I enjoyed this style of work, and somewhat foolishly thought that a full-time research associate position would be, in essence, the same. Get given a graph to make or some data to clean or a manuscript to proofread, but all day long. What fun! When you look at the job description for a research assistant and a research associate–in political science and economics at least–they look about the same, and, from my perspective at least, no one ever really distinguished between the two, and so going into my new position, I assumed that, aside from the time commitment, they were the same position.

+

In fact, the jump from research assistant to associate was a fairly big one. A lot fo the work is actually quite similar; you spend a lot of time cleaning and analyzing data, making graphs, and so on, but the, for lack of a better word, “vibe”, is entirely different. Perhaps the biggest shock to the system is the self-organization piece. No longer am I being instructed to make a specific graph or clean a specific dataset; it is now my job to define the work agenda, what tasks need doing, and in what order. Of course, there is a PI, a project manager, and usually a few other research associates that allow you to talk through ideas a and get clarity, but for the most part, you are in charge of day-to-day operations. Of course, people will come to you with requests, which I certainly enjoy, though this is not the day-to-day norm. I enumerate a couple of tactics that I have implemented since starting my position later, but for me, the lack of explicit guidance has been the biggest challenge for me, coming from a research assistant position.

+

The lack of instruction is exacerbated by the position being full-time. As a part-time researcher, I would intersperse work with my classes and extra-cirriculars, and I wouldn’t usually focus on work-related tasks for more than three hours at a time. Now, I am up at 7, and I work until 4, and I have to fill my entire day with stuff to do!

+

Another aside, maybe, in actual fact, the jump from RA to RA is really no big deal, and what actually caused my existential crises was, you know, the big old pandemic that happened at exactly the same time. So I should perhaps say that everything I am saying might want to be taken with a pinch of salt.

+

Third, and perhaps more logically, the sheer volume and scope of your responsibilities may be overwhelming at first. You will need to familiarize yourself with vast repositories of data, manuscripts, tracking sheets, instruments; long and complicated variable naming conventions; and code that you will have literally no idea of what it is supposed to do. All of these points are to be expected of any new job, but again, if you were me, going into this with a very rudimentary understanding of the concept of “full-time research”, it can all seem a little overwhelming.

+

So, having worked as a research associate for about a month, what have I learned? Firstly, pandemics suck. Secondly, I enumerate a couple of points below that might be of use if you find yourself transitioning between a research assistantship and a research associate position:

+
    +
  1. Ask lots of questions +
      +
    • Obviously, it is good to try to figure things out for yourself, but set a limit on how much time you are going to spend on trying to make sense of something before reaching out to the right person.
    • +
    • Additionally, when asking questions or making requests of others, it is good to: +
        +
      • Enumerate any questions to maintain clarity.
      • +
      • Specify a deadline of when you would like them to respond.
      • +
    • +
    • It can also be useful to have a “questions/answers” document to keep record of particular issues. It is useful if you need reminding yourself, or if you end up handing your work off to others.
    • +
  2. +
  3. Keep a list of things to do +
      +
    • Try to keep your documents streamlined, and have all of your to dos in one document.
    • +
    • Not a popular opinion, but I tend to shy away from using colors/fonts/sizes etc., instead crossing out goals as I complete them.
    • +
    • Prioritize in terms of importance, not in terms of how easy something is to achieve.
    • +
  4. +
  5. Set daily, weekly, and monthly goals +
      +
    • Again, prioritize the important things. Try not to spend your time working on the small things in order to feel a sense of achievement (I say this, but I also do this literally all of the time).
    • +
    • Be honest with yourself and with the task in hand. Based on how other tasks similar to this one have gone, how long do you really think you will need in order to finish it.
    • +
    • Hold others accountable, and have others hold you accountable in completing these goals.
    • +
    • Sometimes, a task is unexpectedly difficult. If you think it will take longer than planned, and if you promised someone you would get something to them by a deadline, be upfront, clear, and reoganize.
    • +
  6. +
  7. Document things +
      +
    • If there is a particular facet of the project that is confusing to you, writing it out can be useful. +
        +
      • For example, if there is an analysis file that calls in a bunch of other scripts, it could be useful to use an Excel sheet to visualize how all the code files relate to one another. Going further, you could document the inputs into each script, as well as the expected outputs.
      • +
      • Where I have a general understanding of something, and I know that the only way I am going to become super comfortable with it is exposure to it, I find documenting, writing about, or visualizing the thing to be very helpful.
      • +
    • +
    • I find using apps like Googlesheets and Googledocs to be the most efficient and the easiest to integrate into my workflow. But as you accrue more and more documents, be them for note-taking, goal-setting, question-answering, and so on, make sure you have a clear and understandable file strucutre. +
        +
      • I have a folder that is comprised of all documents relating to my work. It is clearly and concisely categorized and fairly easy to navigate. My thought process when creating it was to make something that I could one day hand off to the next research associate for them to use. With that in mind, I think having a folder on all things project related can be very useful for you and for the others you work with.
      • +
    • +
  8. +
diff --git a/content/resume.cls b/content/resume.cls new file mode 100644 index 0000000..e7c4dcd --- /dev/null +++ b/content/resume.cls @@ -0,0 +1,131 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Medium Length Professional CV - RESUME CLASS FILE +% +% This template has been downloaded from: +% http://www.LaTeXTemplates.com +% +% This class file defines the structure and design of the template. +% +% Original header: +% Copyright (C) 2010 by Trey Hunner +% +% Copying and distribution of this file, with or without modification, +% are permitted in any medium without royalty provided the copyright +% notice and this notice are preserved. This file is offered as-is, +% without any warranty. +% +% Created by Trey Hunner and modified by www.LaTeXTemplates.com +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\ProvidesClass{resume}[2010/07/10 v0.9 Resume class] + +\LoadClass[11pt,letterpaper]{article} % Font size and paper type + +\usepackage[parfill]{parskip} % Remove paragraph indentation +\usepackage{array} % Required for boldface (\bf and \bfseries) tabular columns +\usepackage{ifthen} % Required for ifthenelse statements + +\pagestyle{empty} % Suppress page numbers + +%---------------------------------------------------------------------------------------- +% HEADINGS COMMANDS: Commands for printing name and address +%---------------------------------------------------------------------------------------- + +\def \name#1{\def\@name{#1}} % Defines the \name command to set name +\def \@name {} % Sets \@name to empty by default + +\def \addressSep {$\diamond$} % Set default address separator to a diamond + +% One, two or three address lines can be specified +\let \@addressone \relax +\let \@addresstwo \relax +\let \@addressthree \relax + +% \address command can be used to set the first, second, and third address (last 2 optional) +\def \address #1{ + \@ifundefined{@addresstwo}{ + \def \@addresstwo {#1} + }{ + \@ifundefined{@addressthree}{ + \def \@addressthree {#1} + }{ + \def \@addressone {#1} + }} +} + +% \printaddress is used to style an address line (given as input) +\def \printaddress #1{ + \begingroup + \def \\ {\addressSep\ } + \centerline{#1} + \endgroup + \par + \addressskip +} + +% \printname is used to print the name as a page header +\def \printname { + \begingroup + \hfil{\MakeUppercase{\namesize\bf \@name}}\hfil + \nameskip\break + \endgroup +} + +%---------------------------------------------------------------------------------------- +% PRINT THE HEADING LINES +%---------------------------------------------------------------------------------------- + +\let\ori@document=\document +\renewcommand{\document}{ + \ori@document % Begin document + \printname % Print the name specified with \name + \@ifundefined{@addressone}{}{ % Print the first address if specified + \printaddress{\@addressone}} + \@ifundefined{@addresstwo}{}{ % Print the second address if specified + \printaddress{\@addresstwo}} + \@ifundefined{@addressthree}{}{ % Print the third address if specified + \printaddress{\@addressthree}} +} + +%---------------------------------------------------------------------------------------- +% SECTION FORMATTING +%---------------------------------------------------------------------------------------- + +% Defines the rSection environment for the large sections within the CV +\newenvironment{rSection}[1]{ % 1 input argument - section name + \sectionskip + \MakeUppercase{\bf #1} % Section title + \sectionlineskip + \hrule % Horizontal line + \begin{list}{}{ % List for each individual item in the section + \setlength{\leftmargin}{1.5em} % Margin within the section + } + \item[] +}{ + \end{list} +} + +%---------------------------------------------------------------------------------------- +% WORK EXPERIENCE FORMATTING +%---------------------------------------------------------------------------------------- + +\newenvironment{rSubsection}[4]{ % 4 input arguments - company name, year(s) employed, job title and location + {\bf #1} \hfill {#2} % Bold company name and date on the right + \ifthenelse{\equal{#3}{}}{}{ % If the third argument is not specified, don't print the job title and location line + \\ + {\em #3} \hfill {\em #4} % Italic job title and location + }\smallskip + \begin{list}{$\cdot$}{\leftmargin=0em} % \cdot used for bullets, no indentation + \itemsep -0.5em \vspace{-0.5em} % Compress items in list together for aesthetics + }{ + \end{list} + \vspace{0.5em} % Some space after the list of bullet points +} + +% The below commands define the whitespace after certain things in the document - they can be \smallskip, \medskip or \bigskip +\def\namesize{\huge} % Size of the name at the top of the document +\def\addressskip{\smallskip} % The space between the two address (or phone/email) lines +\def\sectionlineskip{\medskip} % The space above the horizontal line for each section +\def\nameskip{\bigskip} % The space after your name at the top +\def\sectionskip{\medskip} % The space after the heading section diff --git a/content/tb.aux b/content/tb.aux new file mode 100644 index 0000000..f23e546 --- /dev/null +++ b/content/tb.aux @@ -0,0 +1 @@ +\relax diff --git a/content/tb.log b/content/tb.log new file mode 100644 index 0000000..2cb75b9 --- /dev/null +++ b/content/tb.log @@ -0,0 +1,266 @@ +This is pdfTeX, Version 3.14159265-2.6-1.40.20 (MiKTeX 2.9.7250 64-bit) (preloaded format=pdflatex 2020.1.16) 31 JUL 2020 11:40 +entering extended mode +**./tb.tex +(tb.tex +LaTeX2e <2019-10-01> patch level 3 +(resume.cls +Document Class: resume 2010/07/10 v0.9 Resume class +("C:\Users\tbrai\AppData\Local\Programs\MiKTeX 2.9\tex/latex/base\article.cls" +Document Class: article 2019/10/25 v1.4k Standard LaTeX document class +("C:\Users\tbrai\AppData\Local\Programs\MiKTeX 2.9\tex/latex/base\size11.clo" +File: size11.clo 2019/10/25 v1.4k Standard LaTeX file (size option) +) +\c@part=\count80 +\c@section=\count81 +\c@subsection=\count82 +\c@subsubsection=\count83 +\c@paragraph=\count84 +\c@subparagraph=\count85 +\c@figure=\count86 +\c@table=\count87 +\abovecaptionskip=\skip41 +\belowcaptionskip=\skip42 +\bibindent=\dimen102 +) +("C:\Users\tbrai\AppData\Local\Programs\MiKTeX 2.9\tex/latex/parskip\parskip.st +y" +Package: parskip 2020-01-22 v2.0d non-zero parskip adjustments + +("C:\Users\tbrai\AppData\Local\Programs\MiKTeX 2.9\tex/latex/oberdiek\kvoptions +.sty" +Package: kvoptions 2016/05/16 v3.12 Key value format for package options (HO) + +("C:\Users\tbrai\AppData\Local\Programs\MiKTeX 2.9\tex/latex/graphics\keyval.st +y" +Package: keyval 2014/10/28 v1.15 key=value parser (DPC) +\KV@toks@=\toks14 +) +("C:\Users\tbrai\AppData\Local\Programs\MiKTeX 2.9\tex/generic/oberdiek\ltxcmds +.sty" +Package: ltxcmds 2016/05/16 v1.23 LaTeX kernel commands for general use (HO) +) +("C:\Users\tbrai\AppData\Local\Programs\MiKTeX 2.9\tex/generic/oberdiek\kvsetke +ys.sty" +Package: kvsetkeys 2016/05/16 v1.17 Key value parser (HO) + +("C:\Users\tbrai\AppData\Local\Programs\MiKTeX 2.9\tex/generic/oberdiek\infware +rr.sty" +Package: infwarerr 2016/05/16 v1.4 Providing info/warning/error messages (HO) +) +("C:\Users\tbrai\AppData\Local\Programs\MiKTeX 2.9\tex/generic/oberdiek\etexcmd +s.sty" +Package: etexcmds 2016/05/16 v1.6 Avoid name clashes with e-TeX commands (HO) + +("C:\Users\tbrai\AppData\Local\Programs\MiKTeX 2.9\tex/generic/iftex\ifluatex.s +ty" +Package: ifluatex 2019/10/25 v1.5 ifluatex legacy package. Use iftex instead. + +("C:\Users\tbrai\AppData\Local\Programs\MiKTeX 2.9\tex/generic/iftex\iftex.sty" +Package: iftex 2019/11/07 v1.0c TeX engine tests +))))) +("C:\Users\tbrai\AppData\Local\Programs\MiKTeX 2.9\tex/latex/etoolbox\etoolbox. +sty" +Package: etoolbox 2019/09/21 v2.5h e-TeX tools for LaTeX (JAW) +\etb@tempcnta=\count88 +)) +("C:\Users\tbrai\AppData\Local\Programs\MiKTeX 2.9\tex/latex/tools\array.sty" +Package: array 2019/08/31 v2.4l Tabular extension package (FMi) +\col@sep=\dimen103 +\ar@mcellbox=\box27 +\extrarowheight=\dimen104 +\NC@list=\toks15 +\extratabsurround=\skip43 +\backup@length=\skip44 +\ar@cellbox=\box28 +) +("C:\Users\tbrai\AppData\Local\Programs\MiKTeX 2.9\tex/latex/base\ifthen.sty" +Package: ifthen 2014/09/29 v1.1c Standard LaTeX ifthen package (DPC) +)) +("C:\Users\tbrai\AppData\Local\Programs\MiKTeX 2.9\tex/latex/geometry-de\geomet +ry.sty" +Package: geometry 2010/09/12 v5.6 Page Geometry + +("C:\Users\tbrai\AppData\Local\Programs\MiKTeX 2.9\tex/generic/iftex\ifpdf.sty" +Package: ifpdf 2019/10/25 v3.4 ifpdf legacy package. Use iftex instead. +) +("C:\Users\tbrai\AppData\Local\Programs\MiKTeX 2.9\tex/generic/iftex\ifvtex.sty +" +Package: ifvtex 2019/10/25 v1.7 ifvtex legacy package. Use iftex instead. +) +("C:\Users\tbrai\AppData\Local\Programs\MiKTeX 2.9\tex/generic/iftex\ifxetex.st +y" +Package: ifxetex 2019/10/25 v0.7 ifxetex legacy package. Use iftex instead. +) +\Gm@cnth=\count89 +\Gm@cntv=\count90 +\c@Gm@tempcnt=\count91 +\Gm@bindingoffset=\dimen105 +\Gm@wd@mp=\dimen106 +\Gm@odd@mp=\dimen107 +\Gm@even@mp=\dimen108 +\Gm@layoutwidth=\dimen109 +\Gm@layoutheight=\dimen110 +\Gm@layouthoffset=\dimen111 +\Gm@layoutvoffset=\dimen112 +\Gm@dimlist=\toks16 + +("C:\Users\tbrai\AppData\Local\Programs\MiKTeX 2.9\tex/latex/geometry\geometry. +cfg")) (tb.aux) +\openout1 = `tb.aux'. + +LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 33. +LaTeX Font Info: ... okay on input line 33. +LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 33. +LaTeX Font Info: ... okay on input line 33. +LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 33. +LaTeX Font Info: ... okay on input line 33. +LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 33. +LaTeX Font Info: ... okay on input line 33. +LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 33. +LaTeX Font Info: ... okay on input line 33. +LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 33. +LaTeX Font Info: ... okay on input line 33. + +*geometry* driver: auto-detecting +*geometry* detected driver: pdftex +*geometry* verbose mode - [ preamble ] result: +* driver: pdftex +* paper: +* layout: +* layoutoffset:(h,v)=(0.0pt,0.0pt) +* modes: +* h-part:(L,W,R)=(36.135pt, 542.02501pt, 36.135pt) +* v-part:(T,H,B)=(36.135pt, 722.7pt, 36.135pt) +* \paperwidth=614.295pt +* \paperheight=794.96999pt +* \textwidth=542.02501pt +* \textheight=722.7pt +* \oddsidemargin=-36.135pt +* \evensidemargin=-36.135pt +* \topmargin=-73.135pt +* \headheight=12.0pt +* \headsep=25.0pt +* \topskip=11.0pt +* \footskip=30.0pt +* \marginparwidth=59.0pt +* \marginparsep=10.0pt +* \columnsep=10.0pt +* \skip\footins=10.0pt plus 4.0pt minus 2.0pt +* \hoffset=0.0pt +* \voffset=0.0pt +* \mag=1000 +* \@twocolumnfalse +* \@twosidefalse +* \@mparswitchfalse +* \@reversemarginfalse +* (1in=72.27pt=25.4mm, 1cm=28.453pt) + +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <10.95> on input line 33. +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <8> on input line 33. +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <6> on input line 33. + +Overfull \hbox (30.0pt too wide) in paragraph at lines 33--33 +[] + [] + + +! LaTeX Error: Something's wrong--perhaps a missing \item. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.94 \end{rSubsection} + +Try typing to proceed. +If that doesn't work, type X to quit. + + +! LaTeX Error: Something's wrong--perhaps a missing \item. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.98 \end{rSubsection} + +Try typing to proceed. +If that doesn't work, type X to quit. + +[1 + +{C:/Users/tbrai/AppData/Local/MiKTeX/2.9/pdftex/config/pdftex.map}] + +! LaTeX Error: Something's wrong--perhaps a missing \item. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.147 \item B + eginner: Python, Tableau. +Try typing to proceed. +If that doesn't work, type X to quit. + + +! LaTeX Error: Something's wrong--perhaps a missing \item. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.147 \item B + eginner: Python, Tableau. +Try typing to proceed. +If that doesn't work, type X to quit. + + +! LaTeX Error: Something's wrong--perhaps a missing \item. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.147 \item B + eginner: Python, Tableau. +Try typing to proceed. +If that doesn't work, type X to quit. + + +! LaTeX Error: Something's wrong--perhaps a missing \item. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.148 \end{rSubsection} + +Try typing to proceed. +If that doesn't work, type X to quit. + +[2] (tb.aux) ) +Here is how much of TeX's memory you used: + 1597 strings out of 492484 + 23003 string characters out of 3121601 + 98141 words of memory out of 3000000 + 5960 multiletter control sequences out of 15000+200000 + 7639 words of font info for 27 fonts, out of 3000000 for 9000 + 1141 hyphenation exceptions out of 8191 + 59i,4n,32p,870b,176s stack positions out of 5000i,500n,10000p,200000b,50000s + +Output written on tb.pdf (2 pages, 88399 bytes). +PDF statistics: + 33 PDF objects out of 1000 (max. 8388607) + 0 named destinations out of 1000 (max. 500000) + 1 words of extra memory for PDF output out of 10000 (max. 10000000) + diff --git a/content/tjbrailey_resume_2020_academic.pdf b/content/tb.pdf similarity index 54% rename from content/tjbrailey_resume_2020_academic.pdf rename to content/tb.pdf index 637317edd911ecd5da5b0c06410c04bac62239dd..00c4e5b93937fcacb0c68465d158f901770c90d0 100644 GIT binary patch delta 40994 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

V>A5}_6w`O&vSi!s}_6IL91b;9!u)7(v^nW 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 I@aE0`0eT^-H~;_u literal 0 HcmV?d00001 diff --git a/content/tb.tex b/content/tb.tex new file mode 100644 index 0000000..963d0c9 --- /dev/null +++ b/content/tb.tex @@ -0,0 +1,155 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Medium Length Professional CV +% LaTeX Template +% Version 2.0 (8/5/13) +% +% This template has been downloaded from: +% http://www.LaTeXTemplates.com +% +% Original author: +% Rishi Shah +% +% Important note: +% This template requires the resume.cls file to be in the same directory as the +% .tex file. The resume.cls file provides the resume style used for structuring the +% document. +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%---------------------------------------------------------------------------------------- +% PACKAGES AND OTHER DOCUMENT CONFIGURATIONS +%---------------------------------------------------------------------------------------- + +\documentclass[10pt]{resume} % Use the custom resume.cls style + +\usepackage[left=0.5in,top=0.5in,right=0.5in,bottom=0.5in]{geometry} % Document margins +\newcommand{\tab}[1]{\hspace{.05\textwidth}\rlap{#1}} +\newcommand{\itab}[1]{\hspace{0em}\rlap{#1}} +\name{Thomas J. Brailey} % Your name +\address{8540 Costa Verde Blvd., CA 92122 \\ +1 (858) 610-2437} % Your address +%\address{123 Pleasant Lane \\ City, State 12345} % Your secondary addess (optional) +\address{thomasjbrailey@gmail.com \\ https://github.com/tjbrailey \\ www.linkedin.com/in/tjbrailey} % Your phone number and email + +\begin{document} + + %---------------------------------------------------------------------------------------- + % EDUCATION SECTION + %---------------------------------------------------------------------------------------- + + \begin{rSection}{Education} + + {\bf University of California, San Diego} \hfill {\em 2016 - 2020} + \\ Bachelor of Science, Data Analytics \hfill {\em summa cum laude} + \\ Coursework: Spatial Data Analysis, Causal Inference, Applied Data Analysis, Game Theory, Research Design + + \end{rSection} + + %---------------------------------------------------------------------------------------- + % WORK EXPERIENCE SECTION + %---------------------------------------------------------------------------------------- + + \begin{rSection}{Research Experience} + + \begin{rSubsection}{Jameel Poverty Action Lab (J-PAL)}{2020-Present}{Research Associate}{} + \item Analyzing the effectiveness of the Integrated Child Development Service on key child outcomes. + \item Implementing rigorous econometric models and conduct exploratory data analysis. + \item Editing manuscripts and preparing presentations for government leaders and other stakeholders. + \end{rSubsection} + + \begin{rSubsection}{Center for the Study of African Political Economy}{2018-2020}{Research/Lab Assistant}{} + \item Independently developed a large-N database of election statistics across all recognized states. + \item Used R to combine and reshape multiple datasets, visualize the data, and perform statistical analysis. + \item Manually inputted missing data from newspapers and reports to ensure completeness of data. + \end{rSubsection} + + \begin{rSubsection}{Center for Peace and Security Studies}{2018-2020}{Research Assistant}{} + \item Used R to conduct quantitative analyses on large-N datasets. + \item Generated graphs, tables, and figures in R and LaTeX for research papers and conference presentations. + \item Wrote briefs on my data analysis and code and presented findings. + + \end{rSubsection} + + %\begin{rSubsection}{Revelle College}{2018-2019}{Resident Assistant}{} + %\item Fostered an inclusive community within Revelle through event programming and outreach. + %\item Acted as a dependable resource for residents regarding academics, emotional support, and social justice. + %\item Received regular training on issues including autism awareness, sexual assault, and mental health issues. + %\end{rSubsection} + + \begin{rSubsection}{Scripps Institution of Oceanography}{2017-2018}{Government Relations Intern}{} + \item Reviewed and researched congressional testimonies as they related to SIO projects. + \item Compiled summaries and created databases of government policy and legislation. + \item Offered and accepted paid position at end of internship. + \end{rSubsection} + + \end{rSection} + + %---------------------------------------------------------------------------------------- + % Publications + %---------------------------------------------------------------------------------------- + + \begin{rSection}{Publications} + \itemsep -5pt + \begin{rSubsection}{}{}{As Co-Author}{} + Inbok Rhee and Thomas Brailey. Targeting the core or swing?: Campaign Strategy during the 2017 Kenyan Presidential Election. Work in Progress. March 2020. + \end{rSubsection} + \begin{rSubsection}{}{}{As Research Assistant}{} + Erik Gartzke, Jon R. Lindsay, and J. Andres Gannon. After Deterrence: Explaining Conflict Short of War. Under Review. March 2020. \\ + J. Andres Gannon and Kerry Chavez. Cruisin’ for a Bruisin’: The Effects of US Cruise Missile Strikes Since the Gulf War. Work in Progress. March 2020. + \end{rSubsection} + \end{rSection} + + %---------------------------------------------------------------------------------------- + % Conferences + %---------------------------------------------------------------------------------------- + \bigskip + \begin{rSection}{Conference Invites} + \itemsep -5pt + \item Midwestern Political Science Association (Chicago, 2020) + \item International Studies Association (Honolulu, 2020) + \item Southern California Research Conference (San Diego, 2019) + \item Western Political Science Association (San Diego, 2019) + \end{rSection} + + %---------------------------------------------------------------------------------------- + % AWARDS + %---------------------------------------------------------------------------------------- + + \begin{rSection}{Awards} + \itemsep -5pt + \item Sanford Lakoff Award for the Most Outstanding Senior Thesis 2020. + \item Pi Sigma Alpha 2017-2020. + \item Provost Honors 2016-2020. + \item Ernest C. Mort Leadership Excellence Award 2018. + \item Outstanding Resident 2017. + \end{rSection} + + %---------------------------------------------------------------------------------------- + % Volunteer Experience + %---------------------------------------------------------------------------------------- + \begin{rSection}{Volunteer Experience} \itemsep -5pt + \item Co-founder of the Political Science Student Association at UCSD. + \item Employment Assistant at the International Rescue Committee. + \item Tutor for San Diego's Refugee Tutoring Program. + %\item Campaign Intern and Data Analyst for Mike Levin’s congressional campaign. + %\item Data assistant to the national coordinator of the Citizens Climate Lobby, UK. + %\item Member of the campus-wide Community Standards Board. + \end{rSection} + + %---------------------------------------------------------------------------------------- + % Volunteer Experience + %---------------------------------------------------------------------------------------- + \begin{rSection}{Skills} \itemsep -5pt + \begin{rSubsection}{Spoken Languages}{}{} + \item English, French. + \end{rSubsection} + \begin{rSubsection}{Technical Languages}{}{} + \item Proficient: R, \LaTeX, STATA, ArcGIS, Git, Microsoft Office, SPSS.\\ + \item Beginner: Python, Tableau. + \end{rSubsection} + \end{rSection} + + \begin{rSection}{References} + References available upon request. + \end{rSection} + +\end{document} diff --git a/content/texput.log b/content/texput.log new file mode 100644 index 0000000..34c1188 --- /dev/null +++ b/content/texput.log @@ -0,0 +1,19 @@ +This is pdfTeX, Version 3.14159265-2.6-1.40.20 (MiKTeX 2.9.7250 64-bit) (preloaded format=pdflatex 2020.1.16) 31 JUL 2020 09:37 +entering extended mode +**resume.tex + +! Emergency stop. +<*> resume.tex + +*** (job aborted, file error in nonstop mode) + + +Here is how much of TeX's memory you used: + 2 strings out of 492484 + 16 string characters out of 3121601 + 58725 words of memory out of 3000000 + 4452 multiletter control sequences out of 15000+200000 + 3640 words of font info for 14 fonts, out of 3000000 for 9000 + 1141 hyphenation exceptions out of 8191 + 0i,0n,0p,1b,6s stack positions out of 5000i,500n,10000p,200000b,50000s +! ==> Fatal error occurred, no output PDF file produced!