Commit graph

15150 commits

Author SHA1 Message Date
William Carroll
1487d06660 Support autorandr
Enable autorandr with Nix home-manager. I discovered autorandr when looking
through the home-manager source code. I was hoping it would automatically
enable/disable my external monitor when I connect/disconnect my HDMI cable, but
it doesn't.

With autorandr, I run...

```shell
> autorandr --load mobile
```

...to load my randr settings for just my laptop without the external monitor,
and I run...

```shell
> autorandr --load docked
```

...to load my randr settings for my external monitor.

I'm not sure if this brings much more value than my existing display.el module,
but I'm willing to try it for now.
2020-03-16 13:59:20 +00:00
William Carroll
fbf66c423b Remove setting for enabling both laptop and external monitor
Currently I prefer working with one screen at a time, so I'm preferring to
toggle between external monitor and laptop monitor.
2020-03-16 13:58:18 +00:00
William Carroll
319652fe08 Solve InterviewCake's second-largest-item-in-bst
Return a function that returns the second largest item in a binary search
tree (i.e. BST).

A BST is a tree where each node has no more than two children (i.e. one left
child and one right child). All of the values in a BST's left subtree must be
less than the value of the root node; all of the values in a BST's right subtree
must be greater than the value of the root node; both left and right subtrees
must also be BSTs themselves.

I solved this problem thrice -- improving the performance profile each time. The
final solution has a runtime complexity of O(n) and a spacetime complexity of
O(1).
2020-03-16 11:45:34 +00:00
Felipe Martins Diel
1a1169f1a9
Add support for 0x5f36 devices and RM4 series (#317)
* Add support for 0x5f36 devices

This type of device requires a header in the payload. The rest is the same.

* Improve request header assignment

* Change code sending header

I just found out that this device uses a different header for sending codes. This update addresses this issue.

* Improve authentication

Use the error code to check if the authentication was successful.

* Use default value when devtype is None

* Use generic remote type if devtype is None

* Extend support to RM4 series

I just realized that RM4 devices use the same header. I will take the opportunity to extend support to these devices as well.

* Add device type 0x62be and create rm4 class 

The rm4 class will improve code scalability. Just add the RM4 type to this class and it will just work.

* Remove comma
2020-03-16 09:49:41 +01:00
William Carroll
56d8d1d7b2 Solve InterviewCake's bst-checker problem
Write a function that returns true if a given binary tree is a valid binary
search tree (i.e. if all of root's left nodes are less than root.value, all of
root's right nodes are greater than root.value, and both left and right subtrees
are also valid binary search trees).
2020-03-15 23:09:29 +00:00
William Carroll
47a11b76a2 Solve InterviewCake's balanced-binary-tree problem
Write a predicate for determining if a binary tree is "super balanced", which
means that the depths of all of the tree's leaves are equal or differ by at most
one.
2020-03-14 12:48:37 +00:00
William Carroll
0f82a527de Mark duplicate InterviewCake questions as DONE
I wrongfully assumed that the relationship between a question and a question
category was one-to-one; it is actually one-to-many. This explains why I
completed the "Cafe Order Checker" and "Top Scores" questions twice.

I'm marking the questions that I've completed as DONE because I would prefer to
do every question once and then prioritize repeating the questions with which I
experienced difficulty.
2020-03-14 12:20:43 +00:00
William Carroll
ea4bf1ba96 Remove UK qualifier to London
Vincent tells me that saying "London, UK" is a very *American* thing to do. I
think that is his polite way of telling me that it's naive.
2020-03-13 23:14:03 +00:00
William Carroll
e93248bc31 Fix broken link to @tazjin's Twitter
Link to @tazjin's Twitter instead of @dmjio's Twitter.
2020-03-13 23:10:06 +00:00
William Carroll
aa9b81fe21 Move wrapNonNixProgram to utils module
Define the wrapNonNixProgram in my Nix utils module.
2020-03-13 23:03:57 +00:00
William Carroll
02721a25a7 Init the "Let's Learn Nix" blog series
I'm creating a short blog series to help newcomers learn Nix.
2020-03-13 23:03:42 +00:00
William Carroll
c46fd5ee14 Define wrapNonNixProgram as a helper utility
Write a simple Nix expression to DRY up my writeShellScriptBin wrapper pattern.
2020-03-13 17:25:05 +00:00
William Carroll
beeed2baa2 Prefer locally installed /usr/bin/git
From what I understand, gLinux and Nix are sometimes compatible and sometimes
incompatible.

Some nix-installed programs rely on system state that differs from gLinux's
system state. In other cases, Google wraps existing programs (e.g. git) to
provide Google-specific configuration.

Ever since I switched to home-manager and set `programs.git.enable = true`,
magit, which uses the git that PATH exposes hasn't been able to push, fetch, and
a few other commands.

TODO(wpcarro): Define a base home.nix that my gLinux and NixOS machines can
extend.
2020-03-13 16:54:51 +00:00
William Carroll
bd67b07f52 Add default value for pkgs parameter in shell.nix
Commands like `nix-shell shell.nix` couldn't resolve `pkgs` without a default
value. I'm unsure how I expected this to work previously...
2020-03-13 16:52:40 +00:00
William Carroll
a2a5a62836 Solve InterviewCake's top-scores problem
Write a function to sort a list of scores for a game in linear time. While I had
previously solved this in python, I hadn't marked the todo.org file, so I ended
up doing this again.

"Perfect practice makes perfect."
2020-03-13 16:51:38 +00:00
Eelco Dolstra
d77eaf7976
style.css: Remove
This file is licensed under the GPL. Originally, Nix was also
GPL-licensed so that was fine. However, we later changed the license
to the LGPL but missed the fact that style.css has an incompatible
license.

Since the Nix manual at nixos.org uses its own styling, we can remove
this file.

Fixes #3392.

(cherry picked from commit 9c7e90f414067eb59170bde952d5b8ac03c8f46c)
2020-03-13 15:07:45 +01:00
Eelco Dolstra
8999beacc3
mk/README.md: Remove
The make-rules repo is not maintained.

(cherry picked from commit cc5c81822d298544489ea0861d266c3a5137759a)
2020-03-13 15:07:42 +01:00
William Carroll
2695eae15d Define fish function, ptree
Get all pstree outputs for a given process name.

Usage:
```fish
> ptree ssh-agent
```

I'm unsure if I like home-managers; I'd prefer defining this functions in a
functions.fish file for a few reasons:
- I like syntax highlighting.
- home-manager compiles this into poorly formatted fish code.
2020-03-13 12:21:43 +00:00
William Carroll
c2522a1b7a Extend default-cache-ttl and max-cache-ttl for gpg-agent
Preferring eight hours for each of these values.
2020-03-13 12:21:01 +00:00
William Carroll
4509fb5e50 Restore ssh-agent initialize in ~/.profile
For two days I tried using gpg-agent to emulate ssh-agent, but it did not work
the same way as ssh-agent. For example, gcert stopped working. Also, when I
tried adding keys to ~/.gnupg/sshcontrol using `ssh-add ~/.ssh/id_rsa`, the
command failed.

While the concept of reusing gpg-agent for ssh-agent appeals to me...
- Fewer agent processes
- pinentry support
...in practice, it fell short of my expectations. Some or all of this may be
because I tried running this on a gLinux machine.
2020-03-13 12:17:58 +00:00
Vincent Ambo
576f190972 fix(ops/nixos/nugget): Ensure that 'nuggetEmacs' is used for EXWM 2020-03-12 23:49:39 +00:00
Vincent Ambo
080c3591ca chore(ops/nixos/nugget): Disable DHCP for Remarkable USB conn
This otherwise holds up the boot process if the device is not
connected, which is annoying.
2020-03-12 23:27:12 +00:00
Vincent Ambo
de362fd278 feat(ops/nixos/nugget): Install google-c-style in Emacs 2020-03-12 23:27:12 +00:00
Abseil Team
c6954897f7 Export of internal Abseil changes
--
66a0a46462692378f77518f9db766a218bfac40b by Derek Mauro <dmauro@google.com>:

Internal change

PiperOrigin-RevId: 300565981

--
2a1ad67662b2e22beec7d3be019e6bba23c41c7f by Derek Mauro <dmauro@google.com>:

Fix CompressedTuple move constructor on MSVC
Imports GitHub #637

PiperOrigin-RevId: 300545840

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

Disable LLVM's XRay instrumentation on Android
Fixes #626

PiperOrigin-RevId: 300540906

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

Increase max cord depth by 2.
After reviewing of the paper we can prove that the algorithm in fact can lead to slightly larger max depth.

PiperOrigin-RevId: 300422376

--
98de175ee8ad33290ef883c167c2de4414a11007 by Abseil Team <absl-team@google.com>:

Use *opt/opt-> instead of opt.value() in an example, after checking the optional has a value.

PiperOrigin-RevId: 300253502

--
1107aa0acf0fe743ef50173e02e48f0d4eb572ef by Derek Mauro <dmauro@google.com>:

Stop overriding the default system C++ dialect in CMake

CMake on MacOS has some very strange defaults, like Wno-c++11-extensions,
and doesn't seem to respect CMAKE_CXX_STANDARD, so use CMAKE_CXX_FLAGS instead.

PiperOrigin-RevId: 300180753
GitOrigin-RevId: 66a0a46462692378f77518f9db766a218bfac40b
Change-Id: Icd7b84c49306441b012cb87f244cc92a11697db8
2020-03-12 12:46:00 -04:00
i-do-cpp
b92f35f65f
Fix CompressedTuple move constructor on MSVC (#637) 2020-03-12 10:41:43 -04:00
William Carroll
3c73f73517 Remove the "Professional Emacs" blog post
I don't intend to finish this blog post and since my blog is live, I'd rather
not show it on the internet.
2020-03-11 22:58:46 +00:00
William Carroll
c026f1a4c5 Add drafts for future blog posts
- caffeine.md: an explanation of my theory that caffeine antagonizes
  mindfulness.
- nix-and-hugo.md: a short tutorial explaining how I use Nix, the package
  manager and Hugo, the static site generator, to host my blog.
- self-hosting.md: explain how I installed NixOS on my used Acer laptop.
2020-03-11 22:54:50 +00:00
William Carroll
7163b299f5 Add social channels to footer of learn.wpcarro.dev
Per Mimi's suggestion, I think adding these channels helps customers better
understand that I'm a real person.
2020-03-11 18:34:20 +00:00
William Carroll
bcc2d1e902 Emphasize copy for learn.wpcarro.dev
- Embolden money amounts
- Italicize "Start today."
2020-03-11 18:33:46 +00:00
Vincent Ambo
8df1371b9d chore(tools/emacs): Remove unimportant 'important' label from graph 2020-03-11 05:55:22 +00:00
William Carroll
c23e263a9f Attempt to support gogs
Gogs claims to be an easy-to-use Git server and web frontend written in
golang. I'm eager to try it as an alternative to cgit.
2020-03-10 23:13:52 +00:00
William Carroll
73db632090 Support unclutter with home-manager
I removed the code that initializes unclutter from .profile - preferring to
start it with home-manager.
2020-03-10 23:07:30 +00:00
William Carroll
d784c1d157 Support keynav with home-manager
I removed the startup code from .profile. I also depend on a fork of
home-manager until I submit my PR from wpcarro/home-manager into
rycee/home-manager.
2020-03-10 23:07:30 +00:00
William Carroll
405be98069 Manage xsession with home-manager
redshift didn't properly work because it couldn't read the DISPLAY environment
variable. I can fix this ad-hoc with `systemctl --user import-environment
DISPLAY`, but home-manager will do this automatically if I allow it to manage my
xsession.
2020-03-10 23:07:30 +00:00
William Carroll
a7ad2e3712 Support redshift
redshift is the f.lux of Linux; it filters blue light from your screen.
2020-03-10 23:07:30 +00:00
William Carroll
8c0a56a03e Restore Emacs server
I think I removed the `(server-start)` call when I was debugging some EXWM
issues. I have stabilized my configuration considerably since then, and I'd like
to use the Emacs server.
2020-03-10 23:07:30 +00:00
William Carroll
921e6c2905 Remove dockerd startup from .profile
1. I haven't used docker in awhile.
2. If I need to restore the docker daemon, I will reach for a home-manager
   solution.
2020-03-10 23:07:30 +00:00
William Carroll
8e5152cd84 Remove PATH additions from .profile
I'd like to remove this and prefer using Nix-based solutions for PATH
maintenance.
2020-03-10 23:07:30 +00:00
William Carroll
0239f92d30 Remove RUST_SRC_PATH from .profile
I'm not doing enough Rust development to justify supporting this. I'm also in
the midst of a cleaning frenzy, so it's possible that this is just collateral
damage. I don't think it is because I can always use lorri to set this value
when I'm writing Rust (hopefully the second 1/2 of this year).
2020-03-10 23:07:30 +00:00
William Carroll
57fbee288b Define additional systemctl fish abbreviations
I often run `systemctl --user status <some-unit>`
2020-03-10 23:07:30 +00:00
William Carroll
3ae100e468 Manage session variables with home-manager
If you haven't noticed, home-manager is managing increasingly more of my
configuration.

- Migrate session variables to home.nix
- Drop support for unused session variables like TERMINAL, VISUAL
2020-03-10 23:07:30 +00:00
William Carroll
82b2c8c27c Remove ssh-agent code from .profile
TIL: gpg-agent sets the SSH_AUTH_SOCK and other values. Since I already use
home-manager to start gpg-agent and SSH has been functioning without issues, I'm
removing the obsolete ssh-agent code.
2020-03-10 23:07:30 +00:00
William Carroll
ad77311c94 Configure keyboard preference with home-manager
Preferring home-manager to reduce some of the clutter I've created.
2020-03-10 23:07:30 +00:00
William Carroll
b6a803d99d Configure bat to use a different theme
Whatever bat's default theme for syntax highlight is, I cannot read it with my
current theme.
2020-03-10 23:07:30 +00:00
Abseil Team
a877af1f29 Export of internal Abseil changes
--
ea0cfebeb69b25bec343652bbe1a203f5476c51a by Mark Barolak <mbar@google.com>:

Change "std::string" to "string" in places where a "std::" qualification was incorrectly inserted by automation.

PiperOrigin-RevId: 300108520
GitOrigin-RevId: ea0cfebeb69b25bec343652bbe1a203f5476c51a
Change-Id: Ie3621e63a6ebad67b9fe56a3ebe33e1d50dac602
2020-03-10 13:59:49 -04:00
William Carroll
452a8fd4c7 WIP: Partially solve InterviewCake's find duplicate number
Write a function that finds one duplicate number from a list of numbers 1..n.

The function should satisfy the following performance objectives:
Runtime complexity: O(n*log(n))
Space complexity:   O(1)
2020-03-10 15:01:30 +00:00
William Carroll
d408915cfd Add Google Analytics to learn.wpcarro.dev
Ten people have visited https://learn.wpcarro.dev, but no one has emailed me
yet. I'd like to learn more about how people are using my website.
2020-03-10 15:00:41 +00:00
William Carroll
c06d93a275 Ad Google AdSense script to blog.wpcarro.dev
I'm adding Google Ads to my blog to:
- learn more about Google AdSense
- attempt to offset the my advertising costs for learn.wpcarro.dev

I may need to surround the <script></script> tags with markup to positions the
ads optimally. I will publish this first, see what it looks like without any
markup, and then progress.
2020-03-10 13:27:11 +00:00
William Carroll
a37e10ced5 Lint hugo Tailwind theme
My Emacs automatically trims trailing whitespace when I save a buffer. As a
result, this diff appears whenever I edit the baseof.html file. Instead of
continuing to ignore the diff, I'm committing it.
2020-03-10 13:27:11 +00:00
William Carroll
118b7b9668 Draft blog post about March's cell phone challenge
Started working on my debut blog post about giving up my cell phone during
march.

I'd like to publish this post by the end of the month, once I conclude the
experiment. At that time, I'd like to change the voice of some the content to be
past test. For now, I'm dumping ideas here while they're fresh in my mind. I
will refine and prune the final post later.
2020-03-10 13:27:11 +00:00