about summary refs log tree commit diff
AgeCommit message (Collapse)AuthorFilesLines
2021-12-01 playbooks: add hip_opening_challengeWilliam Carroll2-0/+65
From Lucas Rockwood's 21-day Hip Opening Challenge.
2021-10-07 Delete dictionary.mdWilliam Carroll1-12/+0
Ambitious at the time, but now dusty...
2021-10-07 Tidy-up irc.elWilliam Carroll1-17/+15
Move the variable definitions to the top of the module.
2021-10-07 Remove tests from irc.elWilliam Carroll1-10/+0
A couple thoughts: - Generally, unit tests aren't worth keeping in the same file as the library - Specifically, *these* unit tests aren't worth keeping
2021-10-07 Debug call to password-store-getWilliam Carroll1-1/+1
`irc-freenode` -> `irc/freenode`
2021-10-07 Define 4k-vertical displayWilliam Carroll2-7/+28
Back to having three monitors :) I'm also calling `display-arrange-primary` in `exwm-init-hook`, which calls `xrandr` to ensure my displays are configured as I expect.
2021-10-06 Prefer Solarized LightWilliam Carroll1-1/+1
Ch-ch-ch-changes
2021-10-06 Prefer simpler datetime format for modelineWilliam Carroll1-12/+1
Instead of dottime...
2021-10-06 Debug displays issueWilliam Carroll2-16/+2
I forgot to remove references to the vertical display that I remove in a previous commit.
2021-10-06 Update movies databaseWilliam Carroll1-0/+0
I can't recall what's changed, but likely I've seen some more movies and updated the database as a result.
2021-10-06 Update displays.elWilliam Carroll1-11/+2
Today is my first day back in the office at Google (this time at MP2 in Sunnyvale)! As such, I have a new desk, new monitors, so expect some changes to my configuration until I stabilize everything.
2021-10-06 Delete finances.orgWilliam Carroll1-12/+0
I'm using ynab.com for now, so I no longer need this playbook.
2021-10-06 Add Ramp's technical assessmentWilliam Carroll2-0/+116
More technical interviews
2021-03-23 Refactor window-manager-logoutWilliam Carroll1-13/+23
`sudo systemctl suspend` wasn't working because it required a secure password prompt to read the user's password for `sudo`. The recommended way to call `shell-command` with a `sudo` command (from what I read online) is to set `default-directory` to `/sudo::` before calling `shell-command`. This works just fine, so I refactored the function, `window-manager-logout`.
2021-03-02 Uninstall telegram-desktopWilliam Carroll1-1/+0
I'm spending way too much time on Telegram (both on my phone and on my computer). I'm going to remove it from my computer, so that I can better focus.
2021-01-22 Update LOCs table in READMEWilliam Carroll1-26/+11
This time, I'm excluding languages like CSS,HTML,Markdown,Org, which I think makes the output a bit noisier than I'd like it to be. TODO(wpcarro): Automate this process Re-run `tokei --hidden --type=<comma-sep'd-langs> --sort code .` to update this table.
2021-01-22 Disable lint-emacs step from CI pipelineWilliam Carroll1-17/+0
Most of the errors at the moment are related to line-lengths exceeding my 80 character limit. While these are valid, the linter doesn't currently support disabling these checks, which means that my Elisp code always fails this CI step. This creates too much noise and conditions me to care less about CI failures. When the Elisp linter support this feature, I will gladly re-enable this step.
2021-01-22 Update BuildKite badgeWilliam Carroll1-1/+1
I changed the name of my Pipeline from briefcase -> post-receive, which broke the URL for the badge. This is easily fixed by visiting BuildKite's "Pipeline Settings" page.
2021-01-22 Prefer POST /verify to GET /verifyWilliam Carroll3-10/+20
To make things easier for testing, I setup the /verify endpoint as a GET, so that I could email myself clickable URLs. With POST /verify, my options are: - send email with an HTML button and form that POSTs to /verify - email myself the curl instruction I'm preferring the latter for now...
2021-01-22 Add 'assessments/tt/' from commit 'ee8e75231cd9d3d4aa3ffbbfa0e3b8511712e1ee'William Carroll42-0/+3994
git-subtree-dir: assessments/tt git-subtree-mainline: 67e0f93b3bbc386421a276cbd5675f5ac51625ae git-subtree-split: ee8e75231cd9d3d4aa3ffbbfa0e3b8511712e1ee
2021-01-22 Complete another LC problemWilliam Carroll1-1/+1
Another challenging but useful LeetCode problem...
2021-01-22 Rename "finances_2020" sheet to "finances"William Carroll1-1/+1
Clerical stuff
2021-01-18 Update haveWatched for IMDB 250 moviesWilliam Carroll1-0/+0
It's been awhile since I've updated this list, and I haven't stopped watching movies. Adding movies like "The Help", "Three Colours: Red" (and the whole trilogy for that matter), "The Elephant Man", and others. All worth watching.
2020-12-25 Finish Tree section of LC problemsWilliam Carroll1-3/+3
Wahoo! I need to remember that the inorder traversal of a BST should be sorted. This piece of trivia comes in handy for a variety of BST related problems. I also think being able to do a {pre,in,post}-order traversal recursively and iteratively is a skill that I need to develop.
2020-12-25 Solve a few String questionsWilliam Carroll1-3/+3
Valid Anagram This one is a classic: `sorted(a) == sorted(b)` Group Anagrams Using product of prime numbers to create a key for anagrams is much faster than sorting the characters in each word. It is also satisfyingly simple. Encode and Decode Strings My initial implementation was clumsy and prone to fail for edge-cases. A more elegant solution is using something like: ```python def encode(words): return "".join("{}:{}".format(len(x), x) for x in words) ```
2020-12-25 Tread lightly into the Dynamic Programming sectionWilliam Carroll1-1/+1
After solving this, I was immediately stumped by the other DP questions, so I'm taking a break.
2020-12-25 Solve Binary "Sum of Two Integers"William Carroll1-1/+1
This is tricky because Python has variable-width integers, so relying on two's complement to support the sum of negative numbers results in infinite recursion. I know three ways to combat this: 1. Use Java. 2. Conditionally branch and handle either addition or subtraction accordingly. 3. Use a mask to enforce fixed-width integers in Python.
2020-12-22 Solve additional Tree problemsWilliam Carroll1-4/+4
Only three more to go!
2020-12-22 Solve additional Matrix problemsWilliam Carroll1-3/+3
Looks like "Rotate Image" is the only Matrix problem that remains. It was nice to learn more about "Backtracking" -- a term I often encounter -- while attempting to solve "Word Search". From my current understanding, it is like Brute Force but with short-circuiting. It also seems quite similar to Depth First Search, and I'm currently unaware of how DFS and Backtracking differ. I'm hoping to learn more though.
2020-12-18 Solve the Linked List questionsWilliam Carroll1-2/+2
I did these during my flight from LON->NYC without wifi. I managed to get both correct on the first attempt although I did not find the *optimal* solution for "Reorder List". IMO "Reorder List" is the best Linked List question I've seen because it covers a few essential Linked List tricks.
2020-12-18 Nest URLs beneath TODO entriesWilliam Carroll1-76/+151
Tidying things up.
2020-12-18 Update remaining LC questionsWilliam Carroll1-9/+9
Looks like I should prioritize the following topics: - Dynamic Programming - String - Graph Although I'm not sure how common DP questions are in interviews, DP is a useful dragon to slay IMO.
2020-12-18 Update Linked List LC questionsWilliam Carroll1-4/+4
Snapshot my progress with Linked Lists...
2020-12-18 Update LC String questionsWilliam Carroll1-2/+2
Looks like I have a few string questions to solve before closing that chapter.
2020-12-18 Mark LC Tree questions as doneWilliam Carroll1-7/+7
Making sure that this document closely approximates the state of my LC progress.
2020-12-18 Create offline, org file from TeamBlind LC questionsWilliam Carroll1-0/+88
TeamBlind.com hosts a curated list of DS&As questions from LeetCode.com that the author claims appropriately samples the topics worth exploring. I'm creating an offline list so that I can track my progress and work while I'm traveling.
2020-12-13 Show Morning and Evening habits by defaultWilliam Carroll1-2/+2
Now that I've deployed this, and I have an iPad running in kiosk mode, I realized that I'd like to show my morning routine and my evening routine.
2020-12-13 Update Sunday and Morning chainsWilliam Carroll1-3/+1
Adapting to changes.
2020-12-13 Add -r to cp to copy the directoryWilliam Carroll1-1/+1
This should be the last hold-out before deploying habit-screens! :)
2020-12-13 Commit compiled file, output.css to habit-screensWilliam Carroll2-1/+103571
As you can see, I was previously `.gitignore`-ing this file, but because my `default.nix` attempts to `cp output.css`, I need that file available.
2020-12-13 Productionize habit-screensWilliam Carroll2-12/+20
At some point I should document or write a script for how I package Elm projects with Nix to be deployed on my website. For now, I'm modeling everything after my previous success LearnPianoChords.
2020-12-12 Add project-local .gitignoreWilliam Carroll1-0/+1
Since the `default.nix` file is specific to my tooling, I'm ignoring it.
2020-12-12 Add usage instructions to top-level READMEWilliam Carroll2-21/+14
Also delete redundant `README` from `server` directory.
2020-12-12 Expose functions at API layerWilliam Carroll4-2/+104
Creating a simple HTTP RESTful API for exposing our `Server.semiprime` function. It supports some help messages, primitive parsing and error handling, and singular vs. batch processing of arguments. For more sophisticated parsing and error-checking, I prefer to use Haskell's Servant library.
2020-12-12 Include cache hit/miss info in return typeWilliam Carroll2-3/+4
This can be useful downstream for diagnostics.
2020-12-12 Expand 10^5 in READMEWilliam Carroll1-1/+1
I think it's more readable this way.
2020-12-12 Simple Math testsWilliam Carroll1-3/+1
Calling `assert` within the `Enum.map` makes the errors more usable.
2020-12-12 Define Server.semiprimeWilliam Carroll2-9/+49
- Clear the boilerplate that `mix` generated - Consume `Math.factor` to test which inputs are semiprimes - Cache all inputs that are semiprimes as soon as we discover that they are - semiprimes I considered a couple things related to the Cache: - Could save space by storing all semiprime factors in a tree. This would make the lookups more expensive. Also because the tree's depth would never exceed two (because all semiprimes only have two factors), the tree would be quite broad, and we may not be saving enough space for the trade to be worthwhile. I might be wrong about that though. - We could consider pre-computing all semiprimes when we start the app, but without running some tests firsts, I'm not sure whether or not it's worth the trouble.
2020-12-12 Define Cache.{list,clear} to help debuggingWilliam Carroll1-0/+14
Since I'm often using `iex` for interactive development, these functions are useful.
2020-12-12 Define Cache and convert app to OTPWilliam Carroll4-1/+58
Define a simple in-memory key-value store for our cache. TL;DR: - Define `Cache` as a simple state-keeping `Agent` - Define `Sup`, which starts our Cache process - Define `App`, which starts our Supervisor process - Whitelist `App` in `mix.exs`, so that it starts after calling `iex -S mix`