about summary refs log tree commit diff
AgeCommit message (Collapse)AuthorFilesLines
2020-04-12 Whitelist and blacklist chordTypesWilliam Carroll2-105/+112
Allow and disallow chords by the type of chords.
2020-04-12 Whitelist and blacklist chords by inversion typeWilliam Carroll2-10/+84
Add checkboxes to support various chord positions.
2020-04-12 Properly support chord inversionsWilliam Carroll9-516/+1547
While I did change a lot of functionality, I also ran `elm-format` across the codebase, which makes these changes a bit noisy. Here is the TL;DR: - Properly support chord inversions - Ensure that the piano styling changes dynamically when I change the variables like `naturalWidth` - Add start and end notes to define the size of the piano and which chords we create - Support elm-format and run it across entire project - Debug Misc.comesBefore - Introduce a ChordInspector and debugger TODO: Ensure that we only generate chords where all of the notes can be rendered on the displayed keys. TODO: Add preferences panel, so that I can do things like "Practice blues chords in C and E with chord substitutions."
2020-04-11 Support NoteClassWilliam Carroll3-124/+283
Remodel application to support the scientific pitch notation for notes. Instead of supporting simply "C", support "C4". This change created cascading changes. After refactoring for around an hour, I restored the app to a working state. The current state is not desirable, but it compiles. More changes on the way.
2020-04-11 Support Misc moduleWilliam Carroll1-0/+15
Define two functions for attempting to return an element in a list that precedes or succeeds another element. I prefer having something like Utils.List. Perhaps I will refactor.
2020-04-11 Support BPM for tempoWilliam Carroll2-10/+50
Using BPM as the unit for tempo. TODO: Consider a higher-fidelity way to calculate BPM, although I'm not sure this is critical functionality; an interesting problem is just seducing me, and this app would be better off resisting the temptation.
2020-04-11 Support elm-mode for EmacsWilliam Carroll2-0/+4
Instead of (ab)using haskell-mode, support elm-mode. TODO: Support elm-format on buffer save
2020-04-11 Track app ideasWilliam Carroll1-0/+3
Use an org file to track random ideas or features or improvements.
2020-04-11 Prefer type alias to typeWilliam Carroll2-60/+48
Elm reminds me of Haskell. In fact, I'm using `haskell-mode` (for now) in Emacs to write my Elm code, and it works reliably. I'm not writing a Haskell app, but if I were, I would define my application Model with the following Haskell code: ```haskell data Model = Model { whitelistedChords :: [Theory.Chord] , selectedChord :: Theory.Chord , isPaused :: Bool , tempo :: Int } ``` When I first modelled my application state, I did something similar. After reading more Elm examples of SPAs, I see that people prefer using type aliases to define records. As far as I know, you cannot do this in Haskell; I believe all types are "tagged" (something about "nominal typing" comes to mind). Anyhow, Elm isn't Haskell; Haskell has cool features like type classes; Elm has cool features like human-readable error messages and exhaustiveness checking for cases. I love Haskell, and I love Elm, and you didn't ask. Anyhow, this commit refactors my records as type aliases instead of types. I think the resulting code is more readable and ergonomic.
2020-04-11 Support basic tempoWilliam Carroll2-13/+75
Supporting Play/Pause events, and Increase/Decrease tempo. TODO: Convert milliseconds to BPM
2020-04-11 Improve the styling of the pianoWilliam Carroll2-29/+58
Create a more convincing representation of the piano. I would like to compute the left-offset based on the naturalWidth. That change is probably forthcoming.
2020-04-11 Generate all known chords and display randomly selected chordsWilliam Carroll4-216/+345
First of all, Elm's purity is beautiful. I think every language should model their error messages and develop experience after Elm. If I didn't have to download packages, I don't think I would need an internet connection to troubleshoot my program's errors. This is how helpful I find the compiler. Now that that's out of the way, here's what I've changed since we've last corresponded: - Use Elm's Browser.element to create a reactive application with state - Write a function to generate all of the chords about which CDS knows - Move some code out of Main.elm into other modules - Depend on List.Extra, Random, Random.Extra What's left: - Lots of work - Instead of clicking a button to show a new chord, use a timer - Add mobile-first styling (probably add TailwindCSS) - Persist settings in LocalStorage (and then eventually create user accounts) - Allow users to curate the list of chords they're interested in practicing - Deploy the website and dogfood it Unknowns: - How can I handle tempo? I don't expect setInterval to be enough (maybe it is)...
2020-04-11 Drop support for Haskell glyphsWilliam Carroll1-5/+0
I think that glyphs look nice, but they subtley confuse Emacs's UI. In the case of a two-character glyph condensing into one character's width, the fill-width indicator -- correctly -- highlights the 81st character as red, but it looks like it's erroneously highlighting the 80th. Also when I want to create an anonymous function I type (), which condenses into the unit character, and it's difficult to delete either the opening or the closing parenthesis. Overall I think glyphs are cute, but they're not worth the trouble.
2020-04-10 Model data and sketch ideas for Chord Drill SergeantWilliam Carroll6-0/+294
Initialize an Elm application to build a MVP for the Chord Drill Sergeant application. There isn't much to see at the moment. I'm just sketching ideas. More forthcoming...
2020-04-10 Create README for Chord Drill SergeantWilliam Carroll1-0/+47
See the README for more information. I've wanted to use an application like this for awhile. I would like to start developing this soon.
2020-04-10 Add README for typo-poWilliam Carroll1-0/+10
See the README for more context on typo-po. I drank a strong cup of coffee this morning, and I cannot quiet the activity in my head. I'm attempting to use READMEs in my //website/sandbox to track ideas that I would typically track using my phone's notes application. Creating a README forces me to write more than I may have written in my phone's notes. Also, since this repository is available at https://git.wpcarro.dev, I can share these ideas with friends by sending them a URL! So much for "stealth mode"... Well I guess this stress-tests my theory that ideas are less important than execution.
2020-04-10 Create README for Github Issues ServiceWilliam Carroll1-0/+28
See the README for an overview of the concept. Basically I would like a simpler way to collect feature requests and bug reportss from my web apps.
2020-04-06 Debug unresponsive keyboardWilliam Carroll1-6/+0
After binary searching through my git history to restore my keyboard functionality, I discovered the issue: I deleted the "Terminal" workspace, but I did not remove the call to `(exwm/switch "Terminal")`, which silently prevented EXWM from initializing. I wish errors like this were noisier.
2020-04-05 Don't depend on google-stuff.elWilliam Carroll1-3/+0
I created a google-stuff.el module months ago, but I have not needed to use it much. Removing the google-stuff.el module and all of my dependencies on it.
2020-04-05 Gitignore Emacs's tramp fileWilliam Carroll1-1/+2
While I have not found any sensitive information in these files, I do not see much value in version-controlling its contents.
2020-04-05 Change Gitea's rootUrlWilliam Carroll1-1/+6
This value defaults to localhost:3000, which works, but then Gitea renders "http://localhost:3000/wpcarro/briefcase" as the URL to clone my briefcase repository.
2020-04-05 Add a README to //website/habitsWilliam Carroll1-0/+4
In //website, I have the following directories about habits: - days-of-week-habits - habitgarden - habits Without READMEs in each of these directories, visitors (and myself) can easily get confused.
2020-04-05 Delete //tools/website-blockerWilliam Carroll1-28/+0
I changed the name of this project to url-blocker, which lives both within this repository and at github.com/wpcarro/url-blocker.
2020-04-05 Add README to //websiteWilliam Carroll1-0/+11
Help orient visitors for my cobbled website.
2020-04-05 Add README to //utilsWilliam Carroll1-0/+8
Add a README.md to the //utils directory.
2020-04-05 Add README.md to //lispWilliam Carroll1-0/+16
I sometimes forget the purpose of this project, so -- while it is fresh in my mind -- I'm documenting it in a README.
2020-04-05 Remove //javaWilliam Carroll2-11/+0
When I started working on //clojure, which I also deleted, I wanted to learn more about how to package Java projects using Nix. This was a part of that study.
2020-04-05 Drop support for ynab.elWilliam Carroll1-56/+0
YNAB is short for YouNeedABudget.com. I wrote this code before I started the //monzo_ynab project.
2020-04-05 Drop support for wpc-terminalWilliam Carroll3-72/+0
As I mentioned in the previous commit, I now use vterm.el as my primary terminal. I wrote most of this Elisp when I first started using Emacs. I know longer need it.
2020-04-05 Drop support for terminator.elWilliam Carroll2-1888/+0
Before I switched to vterm.el, I used alacritty as my primary terminal. I could not install alacritty on gLinux, so I switched to terminator. When I was ricing my machine, I wanted my Emacs theme to change my terminator theme. I never finished that project, and it is quite dusty now.
2020-04-05 Remove wpc-docker.elWilliam Carroll2-17/+0
I have not needed this configuration in over a year.
2020-04-05 Remove dotfiles.elWilliam Carroll3-59/+1
This module is a bit stale.
2020-04-05 Tidy //emacsWilliam Carroll2-5/+13
TL;DR: - Add README.md that includes instructions on how to install my Emacs - Delete unused Makefile
2020-04-05 Rename //deploy -> //nix_gcrWilliam Carroll3-4/+8
I create //deploy when I first deployed a few applications that I packaged with Nix. This was before I setup socrates as my "cloud". Now I deploy all of my services using NixOS. The name "deploy" is a bit stale. I'm renaming it //nix_gcr because it documents how I can deploy Nix-packaged projects on Google Cloud Run.
2020-04-05 Remove unnecessary rec { .. }William Carroll1-1/+1
In Nix, rec mean "recursive" and for attribute sets, this allows attributes to refer to other attributes in the same attribute set. This is useful, but I'm not using it here, so I'm removing it.
2020-04-05 Prefer ~/.local/share/static to ~/Dropbox/staticWilliam Carroll1-8/+2
I would like to remove all dependencies on Dropbox.
2020-04-05 Delete //clojureWilliam Carroll1-11/+0
Deleting my early sketches of how I would like a Nix expression that built Clojure packages, libraries, and executables to look like.
2020-04-05 Tidy advent-of-code directoryWilliam Carroll5-76/+4
TL;DR: - Add README.md - Delete *.nix sketches - Delete *.pyc and *.ex python artifacts
2020-04-05 Forward git.wpcarro.dev connections to :3000William Carroll1-0/+7
Gitea is running a web server on localhost:3000.
2020-04-05 Prefer gitea to gogsWilliam Carroll1-8/+1
Gitea's announcement notes explain some of the benefits of Gitea over Gogs: https://blog.gitea.io/2016/12/welcome-to-gitea/ Also, I never configured Gogs such that I could use it, so the cost of switching from Gogs to Gitea was basically zero.
2020-04-04 Move Emacs documents to //emacsWilliam Carroll3-0/+0
These documents outline some of my Elisp conventions and ideas. As such, I think //emacs should host them.
2020-04-04 Update README.mdWilliam Carroll1-183/+81
This change was long overdue. I'm updating this README.md to reflect the state of my monorepo.
2020-04-03 Fix spelling errors in cell-phone-experiment blogWilliam Carroll1-5/+5
Shoutout to Ryan D. for texting me about these.
2020-04-03 Change Disqus shortnameWilliam Carroll1-1/+1
I setup a Disqus Admin account.
2020-04-03 Edit cell-phone-experiment blog postWilliam Carroll1-38/+48
After a full night's rest, I re-read my blog post and made some changes: - Fix grammatical errors - Clarify unclear passages
2020-04-03 Drop support for Terminal workspaceWilliam Carroll1-3/+0
I created the Terminal workspace before I wrote a function for finding/creating vterm instances. I now use the latter almost exclusively.
2020-04-03 Finish blog post about cell phone usageWilliam Carroll1-59/+237
Read the blog post for more information.
2020-04-02 Remove :index field from exwm/named-workspace structWilliam Carroll1-75/+14
I can compute the index use dash.el's -elem-index. I'm also removing some unused EXWM workspaces.
2020-04-02 Tidy window-manager.elWilliam Carroll1-47/+3
Remove stale code and stale comments.
2020-04-02 Refactor opening X applications from EmacsWilliam Carroll2-23/+35
I borrowed heavily from Vincent's depot.