Commit graph

32 commits

Author SHA1 Message Date
William Carroll
5a2a1694e3 Support java directory
Add an example of two java files, Main.java and Another.java, where Main.java
depends on Another.java. This is part of a larger example of attempting to use
Nix to package these.

Also ignoring the *.class files that `javac <filename>` outputs.
2020-01-25 19:39:49 +00:00
William Carroll
143fc97032 Start working on f.lisp
I would like to port the `f.el` library to Common Lisp. I'm adding a README,
some build files, and the module itself to get started.
2020-01-24 10:55:04 +00:00
William Carroll
e2e59c63e7 Cleanup lisp directory
Removing the default.nix that I used to attempt to build prove, a Common Lisp
unit testing library. Also removing the lisp module with the unit tests
themselves.
2020-01-24 10:53:37 +00:00
William Carroll
95d03facb3 Support prelude.lisp
Using this module to support utility functions that I have not classified
further than being miscellaneous.
2020-01-24 10:52:53 +00:00
William Carroll
b6fa3941b3 Rename common-lisp directory to lisp
I could have renamed common-lisp to common_lisp. I think Nix prefers underscores
to hyphens.
2020-01-24 10:50:05 +00:00
William Carroll
6108f8df01 Support proof-of-concept blog
After some toil, I have a working proof-of-concept blog. The idea is simple:
write blog posts in markdown and store the posts in the `./posts`
directory. Then use the server and `pandoc` to convert these markdown files into
HTML at request time. I'm using nix to package everything together. It's far
from perfect, but it works at the moment, which is encouraging.
2020-01-23 22:01:06 +00:00
William Carroll
2e3bb0435f Package cl-arrows package
Using Nix to package this library of Clojure-inspired threading macros.

TODO: Send this patch to tazjin.
2020-01-23 21:57:25 +00:00
William Carroll
81d7bc405e Extend blog server to consume nix injections
All of this is still a work-in-progress. Just checking in my work.

Also:
- Write function `render-post` to convert a markdown file into HTML. This is
  still a work-in-progress since we need to capture the output and not just have
  it printed to *standard-out*.
- Return dummy data in /posts
2020-01-23 21:57:25 +00:00
William Carroll
b25d06db7e Attempt to inject dependencies into blog/server
- We need the markdown files, to be in the /nix/store and the server needs to be
  aware of there location.
- Since we're dependending on `pandoc`, our server needs to know about it too.

For both of these cases -- especially for the latter case -- I imagine there may
be a more idiomatic way of doing this.
2020-01-23 21:57:25 +00:00
William Carroll
336a1fdf9f Add <nixpkgs> to NIX_PATH
Lest we forget our roots.
2020-01-23 21:57:25 +00:00
William Carroll
2c28f85946 Start working on a blog
Attempting to write a blog where:

- The server is Common Lisp. Why? I'd like to learn Common Lisp.
- The blog posts can be written in Markdown.
- The package is developed and deployed using Nix.

Most of this is a learning exercise. The blog itself is something that I'd like
to use instead of Medium and other forums.
2020-01-23 16:34:07 +00:00
William Carroll
7f37acf548 Prefer <depot> and <universe>
Consuming the aliases that I defined in `NIX_PATH` in `.envrc`.
2020-01-23 16:33:47 +00:00
William Carroll
e76843d337 Create third_party
Create a third_party subdirectory and a third_party/lisp. This directory layout
resembles and is inspired by the layout of Google's mono-repo, Google3. @tazjin
borrowed this idea from Google and I'm borrowing the idea from him.
2020-01-23 16:31:54 +00:00
William Carroll
393bd0a5c7 Nixify repo
Using @tazjin's depot/default.nix to bootstrap this project. I'll be borrowing
his Nix idioms until I better understand Nix and have preferences of my own.
2020-01-23 16:30:39 +00:00
William Carroll
01539a9988 Support .envrc
Add `NIX_PATH` aliases for `depot` and `universe`.
2020-01-23 16:30:06 +00:00
William Carroll
d262d30543 Attempt to package CL unit testing with Nix
My first foray trying to package Common Lisp with Nix. I'm using @tazjin's
buildLisp and other libraries, all of which I'm importing as `tpkgs`, and all of
which have been a tremendous boon to my productivity.
2020-01-23 13:45:57 +00:00
William Carroll
55860debe5 Support Common Lisp
Adding some Common Lisp here to get the party started! *cues music*
2020-01-23 13:45:18 +00:00
William Carroll
c010e6d6cf Practice dijkstra's algorithm
Getting some practice with Python's heapq module (which I'm unsure if I used
correctly) to do a priority-first-traversal of a graph: known as Dijkstra's
algorithm.
2020-01-22 11:07:07 +00:00
William Carroll
91811236a5 Complete which-appears-twice
Solves the InterviewCake.com problem that asks us to write a function that
returns the number, y, that occurs twice in a list, xs, where xs is an unsorted
list of integers from 1..n with a length of n + 1.
2020-01-22 11:06:10 +00:00
William Carroll
4f6191b34c Complete reverse-linked-list problem
Completing the deceptively tricky reverse-linked-list problem from
InterviewCake.com.
2020-01-22 11:05:43 +00:00
William Carroll
2a0540d76d Create org table of sorting algorithms and their efficiency
This is just a small org table that I created to help me

Fun fact: In Emacs, you can insert literal TAB character by pressing `C-q
TAB`. For creating tables, using TAB characters feels perfectly
acceptable. Perhaps the TAB name comes from TABle.
2020-01-22 10:12:27 +00:00
William Carroll
de039c7133 Complete find-rotation-point
Solves an InterviewCake.com problem that returns the index of the element in a
list that should be the first element in that list. It's an exercise that's
useful for seeing other applications of a binary search.
2020-01-22 10:11:23 +00:00
William Carroll
bbea699f06 Complete string permutations problem
Solves an InterviewCake.com problem that returns all of the permutations of a
string input. The problem states that it's acceptable to assume that your input
string will not have repeated characters, which is why using a Set is
acceptable. I like this solution because it builds a permutations tree and then
assembles all of the permutations by doing a DFT over that tree.
2020-01-22 10:09:46 +00:00
William Carroll
64bd3f0303 Complete balanced binary tree problem
Supporting a function that returns true if a tree has no two leaf nodes with
depth differences greater than 1.
2020-01-22 10:08:56 +00:00
William Carroll
bb0de3dec2 Begin tests for Haskell File module
Cameron sent over some property tests for his File.split function, which is a
part of a larger effort to port f.el, a nice library for working with file
paths, over to Haskell.
2020-01-18 17:05:32 +00:00
William Carroll
34dc3e05c8 Complete practice algorithms from InterviewCake.com
While I've done these algorithms before, I'm preparing for an on-site with
DeepMind, so I created a subdirectory called deepmind where I'm storing my
second attempts at these problems. The idea of storing them in a second
directory is to remove the urge to check my existing solutions that also exist
in this repository.
2020-01-18 17:04:05 +00:00
William Carroll
a62553f7b7 Add DeepMind subdirectory
I need to prepare for my on-site with DeepMind, so I'll host some attempts to
solve data structures and algorithms questions here.
2020-01-17 20:08:24 +00:00
William Carroll
8d00a456a0 Beging work to port f.el to Haskell
This is a work-in-progress. I'd like to add a README to this project to explain
my intention. The goal, roughly, is to port Elisp's fantastic f.el module to
Haskell. I consider Haskell APIs to be useful but somewhat sloppily designed. In
the same spirit as Elixir wrapping Erlang APIs, many of the functions I intend
to define will simply wrap existing Haskell APIs, but with a hopefully cleaner
API that I find more intuitive.
2020-01-15 14:29:18 +00:00
William Carroll
d4d8397e5f Add InterviewCake.com examples
Adds some of the code I generated while studying for a role transfer at Google
using the fantastic resource, InterviewCake.com. This work predates the
mono-repo.

I should think of ways to DRY up this code and the code in
crack_the_coding_interview, but I'm afraid I'm creating unnecessary work for
myself that way.
2020-01-15 14:25:33 +00:00
William Carroll
b4ee283b23 Add "Crack the Coding Interview" examples
I believe I have multiple other snippets and attempts scattered across /tmp,
~/programming, and other directories. Again, I created these files and others
before the mono-repo.
2020-01-15 14:23:37 +00:00
William Carroll
456d358cd7 Upload my 2019 Advent of Code attempts
Well, unexpectedly (perhaps naively so), I only made it to Day 7. I created
these before I stumbled upon the idea of the mono-repository; otherwise, I like
to think I would have more granular commits introducing this work.
2020-01-15 14:21:45 +00:00
William Carroll
d480b6f08b Initialize repo
Adding a README and a basic .gitignore to initialize this mono-repo. I'm quite
excited about this undertaking!
2020-01-15 14:21:08 +00:00