Commit graph

15150 commits

Author SHA1 Message Date
Griffin Smith
ac2549ce50 argocd from unstable 2020-03-31 17:11:46 -04:00
Griffin Smith
5ed0ad3bac try installing msmtp directly 2020-03-31 17:11:32 -04:00
Griffin Smith
31fbb493f5 packages 2020-03-31 17:11:00 -04:00
Griffin Smith
2de47035c9 fix alacritty bright colors
needed to get vim color scheme working as expected
2020-03-31 17:10:38 -04:00
Griffin Smith
58741dad63 klf alias 2020-03-31 17:10:28 -04:00
Griffin Smith
562100bad2 More robust config for default firefox browser 2020-03-31 17:10:12 -04:00
Griffin Smith
cf4159a6da Some extra i3 shortcuts, plus dunst config 2020-03-31 17:09:22 -04:00
Abseil Team
fba8a316c3 Export of internal Abseil changes
--
2dd5008c7b4176859e320c7c337078adb173b662 by Tom Manshreck <shreck@google.com>:

Internal change

PiperOrigin-RevId: 304022549

--
6442abd78697b03cfe698b0d0dac7f1eb4b5cb38 by Andy Getzendanner <durandal@google.com>:

Internal change

PiperOrigin-RevId: 303890410

--
eb8b37b468b0f23da09d3de714272928ef61f942 by Gennadiy Rozental <rogeeff@google.com>:

Roll changes forward with ChunkIterator templatized.

This should facilitate usage of "small" chunk iterator for a regular usage and proper "big" iterator internally in Cord implementation. This way Cord users are not exposed to stack size overhead if they have a lot of chunk iterators or recursive implementation which relies on chunk iterators.

PiperOrigin-RevId: 303877118

--
9623c569e7c55b45254e95f2d14c5badf9c901aa by Gennadiy Rozental <rogeeff@google.com>:

Switch Flags implementation of fast type id to use absl/base/internal/fast_type_id.h

PiperOrigin-RevId: 303861019

--
e2931e8d53c86d0816da6bbc8ba58cf5a3a443bb by Matthew Brown <matthewbr@google.com>:

Internal Change

PiperOrigin-RevId: 303832407

--
b549ed6e441e920b8ad6f02a80b9fd543820ef86 by Tom Manshreck <shreck@google.com>:

Update Cord header file comments to Abseil standards

PiperOrigin-RevId: 303823232

--
fc633d4f31a2d058f2b6a7029fc7c9820cd71c92 by Evan Brown <ezb@google.com>:

Remove top-level const from K/V in map_slot_type::mutable_value and map_slot_type::key.

This allows us to move between `map_slot_type::mutable_value`s internally even when the key_type and/or mapped_type specified by the user are const.

PiperOrigin-RevId: 303811694

--
909b3ce7cb3583ee9c374d36ff5f82bba02a1b64 by Derek Mauro <dmauro@google.com>:

Add hardening assertions to the preconditions of absl::Cord

PiperOrigin-RevId: 303419537

--
9d32f79eabd54e6cb17bcc28b53e9bcfeb3cf6f4 by Greg Falcon <gfalcon@google.com>:

Don't use MSVC-specific bit manipulations when using Clang on Windows.

This fixes a compiler warning.  Note that we do not have continuous testing for this configuration; this CL is best-effort support.

PiperOrigin-RevId: 303322582

--
f6e0a35a2b9081d2a9eef73789b7bc1b5e46e5ad by Gennadiy Rozental <rogeeff@google.com>:

Introduce standlone FastTypeId utility to represent compile time unique type id.

PiperOrigin-RevId: 303180545

--
99120e9fbdb5b2d327139ab8f617533d7bc3345b by Abseil Team <absl-team@google.com>:

Changed absl's import of std::string_view to
using string_view = std::string_view.
This should help tools (e.g. include-what-you-use) discover where absl::string_view is defined.

PiperOrigin-RevId: 303169095
GitOrigin-RevId: 2dd5008c7b4176859e320c7c337078adb173b662
Change-Id: I1e18ae08e23686ac963e7ea5e5bd499e18d51048
2020-03-31 16:34:04 -04:00
Griffin Smith
188af3a0d3 Allow creating epics without milestones
The same as how we allow creating stories without epics, add a "No
Milestone" list item to the top of the list of milestones to select from
when creating an epic.
2020-03-31 15:34:45 -04:00
William Carroll
f165cf568b Update morning routine
I've been trying to read 15 minutes in the mornings. I also recently purchased
some house plants that I have been watering daily before I do my yoga routine.
2020-03-31 15:44:53 +01:00
William Carroll
b2849682d3 Progress with InterviewCake's coin problem
I'm writing a function that returns the total number of ways a cashier can make
change given the `amount` of change that the customer needs and an array of
`coins` from which to create the change.

My solution conceptually works but it actually does not return the results I am
expecting because I cannot create a Set of Map<A, B> in JavaScript. I'm also
somewhat sure that InterviewCake is expecting a less computationally expensive
answer.
2020-03-31 14:43:03 +01:00
Vincent Ambo
db74ffb4b1 fix(nix/buildGo): Remove absolute references to GOROOT from binaries
Setting the GOROOT_FINAL environment variables replaces the absolute
location of the Go standard library sources in the final build
artefacts with a fake location (in this case starting with
go/src/...).

This is despite the documentation for 'trimpath' (in 'go tool
compile') stating that it would affect all source paths: That's only
true for user code!

I figured this out by reading through the implementation of the other
'trimpath' (in 'gob build'):

https://go-review.googlesource.com/c/go/+/173345
2020-03-31 01:29:35 +01:00
William Carroll
3550fb3452 Add dir-locals.nix to boilerplate/typescript
This should help prettier-mode work out-of-the-box.
2020-03-30 20:29:15 +01:00
William Carroll
af969a7641 Prototype my digital habits journal
Trying to obviate my Google Sheets spreadsheet in favor of a more focused web
app.
2020-03-30 20:28:38 +01:00
William Carroll
8d36c6d00f Solve InterviewCake's compute nth Fibonacci
While the "Dynamic programming and recursion" section hosts this problem, the
optimal solution does not use recursion. Many cite the Fibonacci problem as a
quintessential dynamic programming question. I assume these people expect an
answer like:

```python
def fib(n):
  cache = {0: 0, 1: 1}
  def do_fib(n):
    if n in cache:
      return cache[n]
    else:
      cache[n - 1] = do_fib(n - 1)
      cache[n - 2] = do_fib(n - 2)
      return cache[n - 1] + cache[n - 2]
  return do_fib(n)
```

The cache turns the runtime of the classic Fibonacci solution...

```python
def fib(n):
  if n in {0, 1}:
    return n
  return fib(n - 1) + fib(n - 2)
```

... from O(2^n) to a O(n). But both the cache itself and the additional stacks
that the runtime allocates for each recursive call create an O(n) space
complexity.

InterviewCake wants the answer to be solved in O(n) time with O(1)
space. To achieve this, instead of solving fib(n) from the top-down, we solve it
from the bottom-up.

I found this problem to be satisfying to solve.
2020-03-30 14:14:02 +01:00
Griffin Smith
12313582b8 Correct variable name in docstring
iteration-id, not project-id
2020-03-30 09:10:34 -04:00
Tatu Lahtela
0bca01b877 Iterations support
Ability retrieve headlines from a single iteration
2020-03-30 08:15:05 -04:00
Vincent Ambo
eab4f0e9c0 style(web/homepage): Shorten description for TWiV 2020-03-29 22:36:00 +01:00
Vincent Ambo
2776474686 feat(web/homepage): Link to TWiV 2020-03-29 22:34:10 +01:00
Vincent Ambo
049a13562c feat(tools/emacs): Install eglot & dependencies 2020-03-29 22:31:32 +01:00
William Carroll
7e41aba8b7 Drop attempt to support a user-local /etc/hosts
While the idea of managing the hosts at a per-user level appeals much more to me
that running this as root and managing /etc/hosts, I haven't been able to get it
to work.
2020-03-29 20:39:44 +01:00
William Carroll
7d340689ba Delete the stale tests
While this project would benefit from having test coverage, the current tests
are not providing any useful coverage.
2020-03-29 20:39:39 +01:00
William Carroll
946764f6bd Read and write to /etc/hosts
TL;DR:
- Rename website-blocker to url-blocker
- Add a README.md
- Reads and writes to /etc/hosts
2020-03-29 20:39:39 +01:00
William Carroll
75595b0126 Parse and serialize rules.json
TL;DR:
- Write FromJSON instances to decode rules.json file
- Prefer Text to String and use the OverloadedStrings language extension
- Read /etc/hosts and append the serialized rules.json to the end

Notes:
- I can remove some of the FromJSON instances and use GHC Generics to define
  them for me.

TODO:
- Define the systemd timer unit for this to run
- Ensure script can run with root privileges
2020-03-29 18:49:45 +01:00
Griffin Smith
6ae7133781 chupacabra home machine config 2020-03-29 12:52:29 -04:00
Griffin Smith
81628a9c39 Uncommitted kube aliases from old config 2020-03-29 12:51:24 -04:00
Griffin Smith
3f1cff7068 lots of extra packages, misc home config 2020-03-29 12:51:12 -04:00
Griffin Smith
87909fc5cb Email module for home
notmuch, lieer
2020-03-29 12:49:51 -04:00
Griffin Smith
4a049b08b1 machine config for chupacabra 2020-03-29 12:49:37 -04:00
Griffin Smith
a303e5c14d Don't actually do anything on install, just symlink
The commands should be run manually
2020-03-29 12:48:42 -04:00
Griffin Smith
83ba2c6365 extra args to cloneRepo script 2020-03-29 12:48:31 -04:00
Griffin Smith
59f6680d85 i3 config for chupacabra 2020-03-29 12:48:19 -04:00
Griffin Smith
0fcb6d0ca3 Impurely clone .doom.d
Rather than having it there immutably. Makes it easier to hack on.
2020-03-29 12:47:58 -04:00
Griffin Smith
678c6b05d3 Begin breaking environment variables into shell.nix 2020-03-29 12:47:02 -04:00
William Carroll
059af12bea Experiment with user /etc/hosts
I have not been able to get this to work yet, but I hear that it is possible to
maintain a user-specific /etc/hosts.
2020-03-29 00:01:51 +00:00
William Carroll
ef5eda4015 Implement isToday predicate
Use the Data.Time package to implement the isToday predicate.
2020-03-29 00:00:47 +00:00
Chris Feng
95d6aa96cf Merge branch 'Curiosidad-Racional/patch-1' into externals/exwm 2020-03-29 00:00:00 +00:00
Chris Feng
3dbf1b1bed Add support for _NET_WM_STATE_HIDDEN
* exwm-layout.el (exwm-layout--set-ewmh-state): New function for
setting _NET_WM_STATE (according to local state).
* exwm.el (exwm--init-icccm-ewmh): Declare the support for this atom.
2020-03-29 00:00:00 +00:00
Chris Feng
5f9ba9772f Additional fix for winner-mode
* exwm-input.el (exwm-input--on-KeyPress-line-mode): Check incomplete
key presses (which generate no valid events) before running
`pre-command-hook' and `post-command-hook'.
2020-03-29 00:00:00 +00:00
William Carroll
561cb619a1 Add <unstable> to NIX_PATH
1. I should be using NixOS/nixpkgs-channels instead of NixOS/nixpkgs
2. Instead of refactoring everything, I'm supporting <unstable> and pointing it
   to NixOS/nixpkgs-channels

I needed <unstable> to get a more recent version of the Data.Time Haskell
package.
2020-03-28 23:58:37 +00:00
William Carroll
37bb04eb5d Start social-fasting app
I'd like to ensure that my /etc/hosts file blocks websites at certains times. I
use this to allow / disallow websites at various times of the day.

TODO:
- Add project README
- Add tests
- Publish
- Create a Nix derivation
- Run as a systemd timer unit
- Figure out if I can run this as a user rather than root
2020-03-28 19:36:13 +00:00
Griffin Smith
28ccec9704 Initial commit
It begins...
2020-03-28 11:47:06 -04:00
William Carroll
778114e6a8 Digitize daily habits
Create a web app off the post-its that I keep near my bathroom mirror.
2020-03-27 18:26:27 +00:00
William Carroll
1aefbf7be3 Add timestamps to habits.org
Add approximations to the duration of each activity.
2020-03-27 16:10:55 +00:00
William Carroll
c68b3ba021 Change srcs to src for website.goals derivation
Debug the typo.
2020-03-27 16:02:44 +00:00
William Carroll
48cdb69efb Publish habits as a webpage
I think it might be a good idea to version control my habits, so that I can
audit them as they change.

I'm publishing these on my website, so that I can refer to them wherever I had
internet.
2020-03-27 16:02:44 +00:00
William Carroll
f2ba5aca31 Ensure Emacs prettier hook activates
Problem:
prettier-js waits for rjsx-mode. rjsx-mode only runs on .js files. As such,
the hook that installs prettier-js-mode for *all* of my frontend hooks, which
includes more than just js files, does not install until a javascript file is
opened.

Solution:
Do not conditionally load prettier-js.

Bonus:
Remove the .js mode from rjsx.
2020-03-27 10:59:57 +00:00
William Carroll
0281eb58aa Add node_modules to .gitignore of boilerplate/typescript
briefcase's top-level .gitignore ignores node_modules, so I never noticed that
it was missing from my boilerplate .gitignore. I don't *really* need to add it
to that .gitignore, but if I want to cleanly eject directories from this
monorepo, it makes sense to keep the .gitignore files local to each project.
2020-03-27 10:59:50 +00:00
William Carroll
514136c99a Run Prettier across projects
Problem:
Prettier was not running when I saved Emacs buffers.

Why?
- prettier-js-mode needs needs node; lorri exposes node to direnv; direnv
  exposes node to Emacs; lorri was not working as expected.

Solution:
Now that I'm using nix-buffer, I can properly expose node (and other
dependencies) to my Emacs buffers. Now Prettier is working.

Commentary:
Since prettier hadn't worked for so long, I stopped thinking about it. As such,
I did not include it as a dependency in boilerplate/typescript. I added it
now. I retroactively ran prettier across a few of my frontend projects to unify
the code styling.

I may need to run...
```shell
$ cd ~/briefcase
$ nix-shell
$ npx prettier --list-different "**/*.{js,ts,jsx,tsx,html,css,json}"
```
...to see which files I should have formatted.
2020-03-27 10:59:50 +00:00
William Carroll
f4f7f454fa Delete nut-score
In the spirit of minimalism, I would like to delete this half-baked project from
my repository.

Do less, but better.
2020-03-27 10:59:50 +00:00