Commit graph

15150 commits

Author SHA1 Message Date
Vincent Ambo
92921e58af feat(web/tvl): Add some more homepage links 2020-04-21 04:38:04 +01:00
Vincent Ambo
3cf5a0541d feat(web/tvl): Add links for "hub" nodes as well 2020-04-21 04:29:21 +01:00
Vincent Ambo
fad370f0c1 style(web/tvl): Reword the note about clickable links 2020-04-21 04:24:08 +01:00
Vincent Ambo
e4676a2e0d fix(web/tvl): Embed SVG file directly into the source
Without this, the links in the graph are not clickable.
2020-04-21 04:07:40 +01:00
Vincent Ambo
7647516751 fix(web/tvl): Fix graphviz syntax (*coughs*) 2020-04-21 04:04:52 +01:00
Vincent Ambo
848aca8580 feat(web/tvl): Add clickable homepage links for most people 2020-04-21 04:03:33 +01:00
Vincent Ambo
38712efe0e style(web/tvl): Center some elements, as is tradition 2020-04-21 03:47:54 +01:00
Vincent Ambo
1faf44b3b3 feat(web/tvl): Add rendered graphviz graph to the page 2020-04-21 03:38:30 +01:00
Vincent Ambo
4683b24e14 feat(web/tvl): Add a button to join TVL 2020-04-21 03:26:04 +01:00
Vincent Ambo
5faaf48f60 feat(web/homepage): Add entry for the TVL page 2020-04-21 03:22:21 +01:00
Vincent Ambo
31004dfc46 fix(web/tvl): Use correct stylesheet name 2020-04-21 03:19:16 +01:00
Vincent Ambo
6a2beb5a6a feat(ops/nixos/camden): Add vhost for TVL homepage 2020-04-21 03:17:30 +01:00
Vincent Ambo
557b6b0c5b feat(web/tvl): Add initial homepage for TVL 2020-04-21 03:16:17 +01:00
Vincent Ambo
1229621d7b feat(ops/nixos/camden): Provision certificate for tvl.fyi 2020-04-21 03:05:03 +01:00
Vincent Ambo
97c7ebf758 chore(fun): //fun/tvl -> //fun/streamTVL
Otherwise this is confusing because //web/tvl is now a thing.
2020-04-21 03:03:42 +01:00
Vincent Ambo
cb62e87b77 chore(web/tvl): Bootstrap static assets for TVL page 2020-04-21 03:03:33 +01:00
Vincent Ambo
0bc619e1d0 chore(fun/tvl): Add more missing persons 2020-04-21 02:37:27 +01:00
Vincent Ambo
fd13489cc9 style(fun/tvl): Use a different font for the TVL graph
... plus some other minor changes
2020-04-21 00:28:22 +01:00
Vincent Ambo
9ff5d46034 feat(fun/tvl): Add graph for how loungers know each other
Rendered version at https://tazj.in/blobs/tvl.png

Rendered using `neato`.
2020-04-20 23:55:45 +01:00
Vincent Ambo
5cc37a15a5 feat(defzone): Add plist argument format for SOA records
These records have so many fields that it's difficult to track what's
what in a long list. For convenience they're now specified in plist
format (see the example).

There isn't really a point to this because the SOA record is the one I
care the *least* about practically as Cloud DNS sets it for me, but
whatever.
2020-04-20 22:39:58 +01:00
Vincent Ambo
8c86b9b5f6 feat(defzone): Add an Emacs package for generating zone files
This currently only supports a small subset of available records, but
I actually kind of like the nesting.
2020-04-20 22:39:58 +01:00
László Nagy
1a02b7a205
Use "-lrt" instead of the resolved find_library result when linking librt (#665)
find_library defaults to shared objects
2020-04-20 16:35:10 -04:00
Abseil Team
df60c82df4 Export of internal Abseil changes
--
b885a238ec13effcc407e250583e293052bd7984 by Greg Falcon <gfalcon@google.com>:

Remove the dependency of //absl/hash on //absl/strings:cord.

The `AbslHashValue` definition should reside in cord.h, but the implementation currently needs internal details from the hash library.  This CL changes the way that Cord gains access to those internals.  Note that PiecewiseCombiner remains an internal namespace API, and we still reserve the right to make changes to it.

The cord_benchmark shows no statistically significant changes in hash<Cord> performance with this change.

PiperOrigin-RevId: 307393448

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

Move the extension to use absl::Format() with absl::Cord as a sink to cord.h

PiperOrigin-RevId: 307077162
GitOrigin-RevId: b885a238ec13effcc407e250583e293052bd7984
Change-Id: If24a90782c786fa0b4343bc7d72d053b66c153ea
2020-04-20 12:56:42 -04:00
Vincent Ambo
d6f5ca7caf feat(ops/nixos/camden): Add static IPv6 address to camden 2020-04-20 17:06:19 +01:00
Vincent Ambo
0f0f1a547f feat(ops/nixos/camden): Configure honk service 2020-04-19 22:58:41 +00:00
Vincent Ambo
1ab6a8f263 fix(third_party/honk): Create a fake $HOME 2020-04-19 23:37:25 +01:00
Vincent Ambo
688175c1f7 feat(ops/nixos/camden): Install honk 2020-04-19 23:30:19 +01:00
Vincent Ambo
eb36f30aef chore(build): Exclude nugget from CI builds 2020-04-19 23:29:42 +01:00
Vincent Ambo
26a52edfdb feat(third_party): Add derivation for honk 2020-04-19 23:21:51 +01:00
Vincent Ambo
55eba03d6e feat(fun): Add wallpaper collection 2020-04-19 21:25:42 +01:00
Vincent Ambo
f1136cde16 fix(third_party/cgit): Correctly make "about links" on about page 2020-04-19 19:25:43 +00:00
William Carroll
7a7c29d46c Restore default view to Overview
I often debug by changing the values of State.Model in the State.init
function. I usually revert these these chage; this time I didn't.
2020-04-19 19:49:15 +01:00
William Carroll
d84d0000e0 Correct all G_sharp pitch classes
I incorrectly modelled all of the G-sharps in my application as belonging to the
G pitchClass, which resulted in a strange bug where vieChord printed "G minor
Root position", but the Piano highlit a G minor.

I checked the other accidentals, and it looks like everything is properly
classified.
2020-04-19 19:11:17 +01:00
William Carroll
ae31090a46 Remove unused Msg's
I'm sure this app contains more unused code. I would like to find some Elm tools
for detecting and deleting dead code, but this isn't my current priority.

My current priority is dogfooding this app until I find it genuinely useful for
myself.
2020-04-19 19:02:25 +01:00
William Carroll
541c40cd2f Ensure only whitelisted chord inversions present in initial state
Whoops...
2020-04-19 19:02:17 +01:00
William Carroll
a059c32403 Display "Get ready..." message before practicing
This is a temporary solution. Ideally I would like to handle this with the
following:

- Show the flashcard for a chord shortly after beginning a practice session
- Display a small 3...2...1... countdown timer immediately after beginning a
  practice session

I need to dig more deeply into Elm's Time module and subscriptions to better
understand how to properly solve this problem. In the meantime, please tolerate
this short-term solution.
2020-04-19 18:51:42 +01:00
William Carroll
4a8f750ba8 Restore support for whitelisted chord inversions
Allow users to include or exclude chord inversions.
2020-04-19 18:36:22 +01:00
William Carroll
14f11823ff Drop support for PracticeMode
For now, I'd like to support selecting keys and whitelisting inversions.
2020-04-19 18:23:01 +01:00
William Carroll
d134db700f Support a FlashCard before showing the notes that comprise a chord
My much anticipated feature: first prompt the user for a name of a chord, then
show the user that chord.

Cascading changes:
I changed the "Tap to practice" overlayButton's opacity from 30% to 100% because
pausing when showFlashCard is True causes the two piece

TIL:
You can batch Elm Subscriptions using the Sub.batch function.

What I haven't learned yet:
How to best handle rotating screens for mobile devices (i.e. portrait
vs. landscape modes). In time...

What's left?
- Support sound
- Support a fine-tune section of the preferences
- Support tablet and web browser variants
- Ask users for the "I chord" instead of asking "C major Root position"
- More styling (of course)
2020-04-19 15:32:20 +01:00
William Carroll
f92fe97aff Create Tailwind module
Moving the UI.tw function into Tailwind.use. Creating and consuming some
functions like Tailwind.if_ and Tailwind.when to make it easier to conditionally
style some of my components.
2020-04-19 13:42:37 +01:00
William Carroll
7b2163d804 Ensure the overlayButton is truly h-screen and w-screen
Now the "Tap to practice" button fully covers the screen.

- Dropped support for a Piano direction (for now)
- Using w-full and w-1/2 for piano key "length"
2020-04-19 13:14:18 +01:00
William Carroll
2fe6d7a10c Responsively size UI
TL;DR: scale down UI for non-mobile devices.

I pulled the screen resolution for my phone, the Google Pixel 4, off of the
internet. I created a device profile in Chrome to develop this application
specifically for my phone. To my surprise, when I opened the app on my phone,
many of elements that looked good in Google Chrome, looked askew on my phone. I
needed to troubleshoot.

Here's how I did that:
I used Tailwind to responsively color the bg for each breakpoint to see if my
device was sm, md, lg, xl (according to Tailwind's breakpoint
terminology). After reading Tailwind's documentation and comparing their
breakpoints with my Pixel 4's width (i.e. 1080px), I figured that my device
would be lg. It's not; it's md, which I confirmed by using ngrok to load
localhost:8000 on my phone and see that the background-color was
"md:bg-green-600".

I'm still unsure why my device is not lg, but knowing that my device was md
was enough to fix many of the styling issues. My current theory is that while
my screen's resolution is 1080 wide, the pixel density affects the media query
for the breakpoint.
2020-04-19 13:05:55 +01:00
Felipe Martins Diel
6cf9292b44
Revert adler32 (#345)
* Revert adler32

* Fix checksum
2020-04-19 08:53:09 +02:00
Felipe Martins Diel
65a1b04666
Fix device name (#342) 2020-04-19 08:50:16 +02:00
Kevin Eifinger
ed87b8d1de
Add missing "self." to calculate_crc16 uses (#344) 2020-04-19 08:49:55 +02:00
William Carroll
74ebb8e869 Set the selectedChord to Nothing when setting a key
This helps us avoid showing a chord from a key that the user did not whitelist.
2020-04-19 00:31:42 +01:00
William Carroll
8620d86fd0 Prune {Select,Deselect}AllKeys actions
Removing more unused code attempting to focus this app's scope.
2020-04-19 00:31:06 +01:00
William Carroll
11b140b6ae Highlight root note of each chord
Refactor the Piano component to highlight the root note of each chord. If this
makes things too easy, I can support this as a preference.

Also:
- Reduced the number of keys that the piano displays and increased the key
  thickness to reclaim the space
- Preferred using Tailwind selectors instead of inline styling where applicable
- Call List.reverse on the keys to ensure that the top-most note is a lower note
  than the bottom-most note

TODO:
- Support showing only the name of the chord and not just the notes that
  comprise that chord
- Rewrite the function that generates the chords for a given range of notes
- Consider supporting a dark mode
2020-04-19 00:21:37 +01:00
William Carroll
c6132ab1d6 Remove horizontal padding
Google Chrome's device preview doesn't resemble what I see when I use my phone
to visit this page.
2020-04-18 20:23:02 +01:00
William Carroll
9e855f7427 Create Overview for Learn Piano Chords
Since I've published this, I should include an Overview page to orient potential
users. This Overview could be better -- as could many things with this app --
but it's a start, and I'm seeking small wins.
2020-04-18 19:51:57 +01:00