Julien Hadley Jack

My Projects

challenge-me

A command line tool for programming challenges.

There are many ways to improve your programming skills by completing challenges from books like the excellent Cracking the Coding Interview, Elements of Programming Interviews and the Algorithm Design Book and websites like Project Euler, CodingBat, LeetCode and Sphere Online Judge. A programming challenge could look like:

Write a method to decide if two words are anagrams or not.

Print “1” if true, “0” otherwise.

You are given a challenge and should find a solution to. It works like a black box: a input is given to your solution and it should out the correct answer to the challenge for the input.

$ challenge-me start
Starting first challenge for category array.

$ challenge-me verify
Verifying challenge 1 for category array.
Failure.
Input: 1 2 3 4
Result:
Expected: 1 2 0 0

$ # edit file to solve challenge

$ challenge-me verify
Verifying challenge 1 for category array.
Success.
Creating file for next challenge.

pandocfilter

A collection of pandoc filters that I created to extend the functionality of pandoc:

  • minted: Use the package minted to show code blocks in LaTeX
  • csvtable: Include content from CSV files as tables

pandoc is a great tool that can be used to convert between many different formats (HTML, Markdown, restructuredText, LaTeX, Microsoft Word, EPUB, …). For example you can write a document in Markdown (which make writing text very easy) and format the final result as a LaTeX document (which can produce beautifully formatted documents suitable for print and digital distribution) by using pandoc to convert between the two formats.

To understand what you can with a pandoc filter look at an example for csvtable. The original document in markdown contains a code block containing a few attributes pointing to a CSV file.

```{.table
    file="data/csvtable_example1.csv"
    header=yes}
```

The content of that CSV file will be inserted correctly formatted as a table in the output document in LaTeX.

\begin{longtable}[c]{@{}ll@{}}
\toprule
Header 1 & Header 2\tabularnewline
\midrule
\endhead
Text 1 & Text 2\tabularnewline
Text 3 & Text 4\tabularnewline
\bottomrule
\end{longtable}

delay-rss

A very simple web application that can delay the delivery of articles in a RSS feed by a specified amount of time.

http://localhost:5000/ ?url=http://feeds.feedburner.com/AndroidPolice%3Fformat=xml &hours=6