]> gitweb.michael.orlitzky.com - charm-bypass.git/log
charm-bypass.git
6 weeks agoTODO: remove master
Michael Orlitzky [Thu, 11 Sep 2025 15:36:27 +0000 (11:36 -0400)]
TODO: remove

Everything's done. PWAs are too much of a hassle (particularly in
Firefox), and being able to use webmail as a workaround is hilarious.

6 weeks agoREADME: mention charm-bypass.com in the past tense
Michael Orlitzky [Thu, 11 Sep 2025 15:34:43 +0000 (11:34 -0400)]
README: mention charm-bypass.com in the past tense

6 weeks agoMakefile.am: include the cgi-bin directory in the release tarball
Michael Orlitzky [Thu, 11 Sep 2025 14:51:57 +0000 (10:51 -0400)]
Makefile.am: include the cgi-bin directory in the release tarball

Just in case someone wants to go hard.

6 weeks agoindex.html.in,TODO: fix the QR placement issue
Michael Orlitzky [Thu, 11 Sep 2025 14:21:21 +0000 (10:21 -0400)]
index.html.in,TODO: fix the QR placement issue

It turns out, we DON'T need to adjust our vertical offsets by the
svg-to-client unit ratio. I don't fully understand why, but I think it
has something to do with declaring the height of the tableau to be
fixed at 100% = 1080, and modern browsers treating "pixels" as an
abstraction. In any case, it works fine without the fudge factor in
both WebKit and Firefox.

6 weeks agoindex.html.in: two spaces for indentation
Michael Orlitzky [Thu, 11 Sep 2025 13:23:22 +0000 (09:23 -0400)]
index.html.in: two spaces for indentation

6 weeks agoTODO: explore gmail as a web host
Michael Orlitzky [Thu, 11 Sep 2025 13:04:55 +0000 (09:04 -0400)]
TODO: explore gmail as a web host

6 weeks agoTODO: replace the QR item with the one remaining issue
Michael Orlitzky [Thu, 11 Sep 2025 13:03:38 +0000 (09:03 -0400)]
TODO: replace the QR item with the one remaining issue

6 weeks agoindex.html.in: refactor the toggle_qr_focus() function
Michael Orlitzky [Thu, 11 Sep 2025 03:40:52 +0000 (23:40 -0400)]
index.html.in: refactor the toggle_qr_focus() function

1. Adjust to the recent conversion of resize_ticket() to CSS
   transforms.
2. Refine the ticket dimensions to match those of CharmPass.
   This is still pretty hacky and may not work in all cases,
   but on a fresh page load in a desktop browser, everything
   is where it should be.
3. Simplify / clean up the code a little bit (using forEach,
   classList, etc.)

6 weeks agoindex.html.in: use svg_to_client() in center_text()
Michael Orlitzky [Thu, 11 Sep 2025 03:33:55 +0000 (23:33 -0400)]
index.html.in: use svg_to_client() in center_text()

The center_text() function was the first place that a coordinate
change was needed, though it was in the other direction, client to
SVG. Now that we have the svg_to_client() factor, we divide by it to
get the client_to_svg factor.

6 weeks agoindex.html.in: refactor resize_ticket() to use CSS transforms
Michael Orlitzky [Thu, 11 Sep 2025 03:13:01 +0000 (23:13 -0400)]
index.html.in: refactor resize_ticket() to use CSS transforms

While it would have been nice being able to revert to the initial
ticket size by erasing the CSS "transform", doing so makes the
transitions wonky: with Commuter Bus and MARC Train tickets, it first
transitions down to the BaltimoreLink ticket size, and then back up to
the initial attribute-based size.

6 weeks agoindex.html.in: two transition fixes
Michael Orlitzky [Thu, 11 Sep 2025 03:03:53 +0000 (23:03 -0400)]
index.html.in: two transition fixes

First, the repositioning of the ticket also needs to be transitioned.
This makes the QR animation much smoother.

Second, it would seem that appending the "loaded" class (to enable
transitions) can retroactively affect style changes that were made
before the class was appended. The workaround for this is to do
something that makes the browser re-flow the affected elements, and I
guess calling focus() suffices to do that. So we add in a call to
focus() before appending the "loaded" class to the ticket and its
background; this ensures that the transitions are not enabled until
after the initial ticket sizing, as was always the intent.

6 weeks agoRevert "TODO: the date/time are fixed while the QR is focused"
Michael Orlitzky [Thu, 11 Sep 2025 02:15:41 +0000 (22:15 -0400)]
Revert "TODO: the date/time are fixed while the QR is focused"

This reverts commit 1fb309628cc841a29e4d90d20e10cd5866900975.

Just kidding, they aren't fixed; I think I looked at a ticket after
the usual ten-minute blinking period had passed.

6 weeks agoindex.html.in: use classList for the night/day toggle
Michael Orlitzky [Thu, 11 Sep 2025 01:59:56 +0000 (21:59 -0400)]
index.html.in: use classList for the night/day toggle

This is a little bit more robust than simply declaring that the sky
element will never have any other classes.

6 weeks agoindex.html.in: factor out the svg_to_client() function
Michael Orlitzky [Thu, 11 Sep 2025 01:58:09 +0000 (21:58 -0400)]
index.html.in: factor out the svg_to_client() function

This will waste a tiiiiny bit of time because we only call this
function in contexts where we already have the security code
background element handy (and the new function recomputes it),
but it's so much cleaner as a separate function.

6 weeks agoindex.html.in: delete a pointless newline
Michael Orlitzky [Thu, 11 Sep 2025 01:57:31 +0000 (21:57 -0400)]
index.html.in: delete a pointless newline

6 weeks agoindex.html.in: make loaded a more general class
Michael Orlitzky [Thu, 11 Sep 2025 01:57:00 +0000 (21:57 -0400)]
index.html.in: make loaded a more general class

We're going to apply it to the ticket, too.

6 weeks agoindex.html.in: fix QR focus for Commuter Bus and MARC train
Michael Orlitzky [Wed, 10 Sep 2025 23:58:39 +0000 (19:58 -0400)]
index.html.in: fix QR focus for Commuter Bus and MARC train

These need their initial upwards translations "repeated" when the QR
code is focused and we overwrite the transform attribute with CSS.
The scale() just works, but that's because these ticket start at the
correct scale -- not true of their position.

6 weeks agoTODO: the date/time are fixed while the QR is focused
Michael Orlitzky [Wed, 10 Sep 2025 23:39:07 +0000 (19:39 -0400)]
TODO: the date/time are fixed while the QR is focused

6 weeks agoTODO: ticket tapping is fixed already
Michael Orlitzky [Wed, 10 Sep 2025 23:28:03 +0000 (19:28 -0400)]
TODO: ticket tapping is fixed already

6 weeks agoindex.html.in: make ticket taps do nothing
Michael Orlitzky [Wed, 10 Sep 2025 23:26:47 +0000 (19:26 -0400)]
index.html.in: make ticket taps do nothing

Tapping the ticket (anything but the QR code) in CharmPass does
nothing; i.e. it does not change the background from day to night.
We mimic that with a dummy click handler on the ticket.

6 weeks agoTODO: tapping the ticket doesn't change the sky color
Michael Orlitzky [Wed, 10 Sep 2025 23:14:00 +0000 (19:14 -0400)]
TODO: tapping the ticket doesn't change the sky color

6 weeks agotableau.svg: increase ticket top/bottom overlap
Michael Orlitzky [Wed, 10 Sep 2025 14:57:14 +0000 (10:57 -0400)]
tableau.svg: increase ticket top/bottom overlap

The ticket top/bottom now have some overlap, so that 1px of roundoff
error won't cause a sky-colored line to appear between them.

6 weeks agoindex.html.in: finish the QR focus toggle
Michael Orlitzky [Wed, 10 Sep 2025 14:30:19 +0000 (10:30 -0400)]
index.html.in: finish the QR focus toggle

Get the QR focus toggle working "completely."

  * Don't show ticket resize transitions when the page loads
    (Commuter bus / MARC).
  * Fade out the origin/destination and zone when the QR is
    focused (Commuter bus / MARC).
  * Resize the bottom portion of the ticket when the QR code
    is focused, so that the QR sits in the "middle" like it
    does on CharmPass.
  * Don't recompute dimensions if we're going to toggle the
    QR code _off_.

BaltimoreLink tickets are essentially correct. I have yet to compare
against real Commuter bus and MARC train tickets, but the current
behavior is reasonable.

6 weeks agoindex.html.in: intermediate variables for the client_to_svg ratio
Michael Orlitzky [Wed, 10 Sep 2025 13:54:56 +0000 (09:54 -0400)]
index.html.in: intermediate variables for the client_to_svg ratio

This just makes things a little easier to read.

6 weeks agoindex.html.in: add two CSS comments
Michael Orlitzky [Wed, 10 Sep 2025 02:42:09 +0000 (22:42 -0400)]
index.html.in: add two CSS comments

We should mention our transform-box and transform-origin tricks in the
CSS, too.

6 weeks agoindex.html.in: use a better variable name for the ticketbottombg
Michael Orlitzky [Wed, 10 Sep 2025 02:40:33 +0000 (22:40 -0400)]
index.html.in: use a better variable name for the ticketbottombg

We were using "tbg", but "tbbg" is better.

6 weeks agoindex.html.in,TODO: reimplement ticket sizing
Michael Orlitzky [Tue, 9 Sep 2025 19:01:25 +0000 (15:01 -0400)]
index.html.in,TODO: reimplement ticket sizing

Reimplement the sizing of the commuter bus and MARC train tickets to
account for the split top and bottom halves of the ticket. This is not
too difficult because, this time around, we take advantage of the
transform-box and transform-origin properties to scale only the bottom
half of the ticket, and only downwards.

The new magic numbers were found by comparing old/new versions of the
page in two separate browser tabs. This also happens to fix the
alignment of the grey ticket separator, because the top half of the
ticket (that contains it) is no longer being scaled

6 weeks agoMakefile.am: preserve the id of the bottom half of the ticket background
Michael Orlitzky [Tue, 9 Sep 2025 18:56:02 +0000 (14:56 -0400)]
Makefile.am: preserve the id of the bottom half of the ticket background

This is the one we need to scale. Any translations that need to happen
can be done on the entire ticket.

6 weeks agotableau.svg: split ticket top and bottom
Michael Orlitzky [Tue, 9 Sep 2025 18:52:22 +0000 (14:52 -0400)]
tableau.svg: split ticket top and bottom

Eventually we have two problems to solve:

  1. The ticket separator becomes misaligned when you scale the
     ticket background independently
  2. Only the bottom of the ticket is resized when the QR gains
     focus.

Both of these will be easier if we split the bottom part of the ticket
from the top (separator, dimples, and the stuff above them). This
commit does that. The top/bottom parts aren't grouped because we
probably won't need to manipulate them as groups, so for now, there
are just two ticket background layers with an epsilon of overlap.

6 weeks agoTODO: add another one about the misaligned separator
Michael Orlitzky [Tue, 9 Sep 2025 18:52:03 +0000 (14:52 -0400)]
TODO: add another one about the misaligned separator

6 weeks agoindex.html.in: more work on the QR focus
Michael Orlitzky [Tue, 9 Sep 2025 02:15:36 +0000 (22:15 -0400)]
index.html.in: more work on the QR focus

Tapping the QR code now brings it into focus and centers it in the
ticket, accompanied by a nice CSS transition that mimics the real
thing. The timing was adjusted to make the transition faster, and a
portability issue was hacked around. What does work, works in both
Firefox and WebKit (on the desktop) at least.

Still to-do is the ticket resizing that takes place when the QR code
gets bigger, and the vertical translation of the (growing) QR code.

6 weeks agoindex.html.in: add stub QR focus toggle
Michael Orlitzky [Mon, 8 Sep 2025 22:53:05 +0000 (18:53 -0400)]
index.html.in: add stub QR focus toggle

Begin implementing the QR code focus toggle. For the moment, we only
hide or un-hide the remaining ticket elements when the QR code is
tapped.

6 weeks agoTODO: un-mention the QR code background
Michael Orlitzky [Mon, 8 Sep 2025 22:16:56 +0000 (18:16 -0400)]
TODO: un-mention the QR code background

6 weeks agoMakefile.am: don't strip the "qr" code id
Michael Orlitzky [Mon, 8 Sep 2025 22:15:57 +0000 (18:15 -0400)]
Makefile.am: don't strip the "qr" code id

6 weeks agotableau.svg: delete pointless "stroke-dasharray: none;" properties
Michael Orlitzky [Mon, 8 Sep 2025 22:15:01 +0000 (18:15 -0400)]
tableau.svg: delete pointless "stroke-dasharray: none;" properties

This is the default, and no other elements have it set to inherit
from. In other words, it's not doing anything.

6 weeks agotableau.svg: group QR code with a (white, "invisible") background
Michael Orlitzky [Mon, 8 Sep 2025 22:08:39 +0000 (18:08 -0400)]
tableau.svg: group QR code with a (white, "invisible") background

The QR code is a path, so the "click" handler that we want to write
for it will only work if the thin black squiggle is tapped. To work
around that, we add a square white background behind the squiggle that
is the same color as the ticket. Afterwards, the "QR code" consists of
the black squiggle and the square; you can click on either.

6 weeks agoindex.html.in: simplify day/night toggle
Michael Orlitzky [Mon, 8 Sep 2025 21:03:35 +0000 (17:03 -0400)]
index.html.in: simplify day/night toggle

Whatever problem was preventing us from swapping day/night colors via
CSS classes is gone. Or at least hiding in a browser that I don't have
in front of me.

6 weeks agoTODO: add a prerequisite for the tappable QR code
Michael Orlitzky [Mon, 8 Sep 2025 02:24:30 +0000 (22:24 -0400)]
TODO: add a prerequisite for the tappable QR code

6 weeks agoindex.html.in: fix typo "horizonetal"
Michael Orlitzky [Mon, 8 Sep 2025 02:20:03 +0000 (22:20 -0400)]
index.html.in: fix typo "horizonetal"

6 weeks agoindex.html.in: update snark
Michael Orlitzky [Mon, 8 Sep 2025 01:45:12 +0000 (21:45 -0400)]
index.html.in: update snark

One and a half years later, mobile Firefox still doesn't do HTML form
validation.

7 weeks agoTODO: replace the rounded corners item
Michael Orlitzky [Fri, 5 Sep 2025 18:51:35 +0000 (14:51 -0400)]
TODO: replace the rounded corners item

Our corners have been updated, but in the process I noticed that the
tickets have gotten a tiny bit wider.

7 weeks agotableau.svg: less rounding on the code background's corners
Michael Orlitzky [Fri, 5 Sep 2025 18:49:38 +0000 (14:49 -0400)]
tableau.svg: less rounding on the code background's corners

Just like the ticket background, the background on the security code
has had its corners un-rounded a bit in the latest version of
CharmPass. Turn ours down from 10 to 5.75 to match.

7 weeks agotableau.svg: delete two trailing CSS semicolons
Michael Orlitzky [Fri, 5 Sep 2025 18:33:06 +0000 (14:33 -0400)]
tableau.svg: delete two trailing CSS semicolons

Inkscape v1.4 wants to do this anyway. Hey, we save two bytes.

7 weeks agotableau.svg: less rounding on ticket background corners
Michael Orlitzky [Fri, 5 Sep 2025 18:30:38 +0000 (14:30 -0400)]
tableau.svg: less rounding on ticket background corners

The June 2025 CharmPass has slightly less rounding on the corners of
the tickets, and it actually is noticeable. Update the corners of our
ticket to match.

7 weeks agoTODO: add one
Michael Orlitzky [Thu, 4 Sep 2025 16:28:22 +0000 (12:28 -0400)]
TODO: add one

People are still using this, so I guess I should keep working on it.

17 months agoCOPYING: add to state the "or later" bit
Michael Orlitzky [Mon, 6 May 2024 18:58:12 +0000 (14:58 -0400)]
COPYING: add to state the "or later" bit

17 months agoCOPYING: rename to LICENSE
Michael Orlitzky [Mon, 6 May 2024 18:57:16 +0000 (14:57 -0400)]
COPYING: rename to LICENSE

20 months agoindex.html.in: remove links to my personal website
Michael Orlitzky [Sat, 3 Feb 2024 16:32:24 +0000 (11:32 -0500)]
index.html.in: remove links to my personal website

The MTA just sent me a cease and desist for charm-bypass.com, which I
intend to honor. But if somebody else wants to... *shrug* then my name
shouldn't be plastered all over the page.

22 months agoindex.html.in: add New Carrollton MARC info
Michael Orlitzky [Wed, 13 Dec 2023 00:25:26 +0000 (19:25 -0500)]
index.html.in: add New Carrollton MARC info

The code for New Carrollton is NCR (thanks you-know-who), and it's on
the Penn Line, so all we have to do is fill in the zone information
based on the CharmPass prices to each of the other Penn destinations.

22 months agoindex.html.in: add Frederick <-> Washington MARC info
Michael Orlitzky [Wed, 13 Dec 2023 00:13:56 +0000 (19:13 -0500)]
index.html.in: add Frederick <-> Washington MARC info

Both Frederick and Washington D.C. are on the Brunswick line, and the
code for Frederick is FRC (thanks you-know-who). The cost of that
ticket is $9 in CharmPass, so that's a Four Zone.

22 months agocgi-bin/code.cgi: new CGI script to update the daily code on a web host
Michael Orlitzky [Tue, 12 Dec 2023 21:00:20 +0000 (16:00 -0500)]
cgi-bin/code.cgi: new CGI script to update the daily code on a web host

This isn't really part of CharmBypass, but it will come in handy on
charm-bypass.com, and where else to put it? It's a CGI script that
allows visitors to update the code. You should probably password
protect it and make it available only to trusted users.

The script is written in POSIX shell script. Why? Because I didn't
really want to venture beyond a single-page, off-line, static HTML
file. But writing a CGI script in POSIX shell was just too dumb to say
no to. It uses sed to parse/edit index.html. Everything about it is
bad.

It can be tested with "python -m http.server --cgi", but the 302
redirect won't work because python doesn't support it.

23 months agoREADME: mention that fontforge needs woff2 support
Michael Orlitzky [Mon, 20 Nov 2023 18:11:27 +0000 (13:11 -0500)]
README: mention that fontforge needs woff2 support

23 months agoindex.html.in: add blank value="" attrs after name="code" on inputs
Michael Orlitzky [Fri, 17 Nov 2023 21:34:20 +0000 (16:34 -0500)]
index.html.in: add blank value="" attrs after name="code" on inputs

This will make it easy/safe to use sed every night at 3am to reset
the daily security code (if we typed one in the day before).

23 months agoindex.html.in: link "optional" to daily security code info
Michael Orlitzky [Mon, 13 Nov 2023 20:51:18 +0000 (15:51 -0500)]
index.html.in: link "optional" to daily security code info

23 months ago.gitignore: ignore "make check" byproducts
Michael Orlitzky [Fri, 10 Nov 2023 15:53:28 +0000 (10:53 -0500)]
.gitignore: ignore "make check" byproducts

23 months agoindex.html.in: add Halethorpe MARC station
Michael Orlitzky [Fri, 10 Nov 2023 15:49:43 +0000 (10:49 -0500)]
index.html.in: add Halethorpe MARC station

23 months agoindex.html.in: name origin/destination <input>s after their values
Michael Orlitzky [Fri, 10 Nov 2023 15:45:52 +0000 (10:45 -0500)]
index.html.in: name origin/destination <input>s after their values

They were named originX and destinationX (X = 1,2,...), but that makes
it plenty annoying to insert a new one into the list, which I'm about
to do.

23 months agoindex.html.in: add Halethorpe (HAE) zone mapping
Michael Orlitzky [Fri, 10 Nov 2023 15:40:55 +0000 (10:40 -0500)]
index.html.in: add Halethorpe (HAE) zone mapping

23 months agoindex.html.in: move the article links to after the forms
Michael Orlitzky [Thu, 9 Nov 2023 02:40:59 +0000 (21:40 -0500)]
index.html.in: move the article links to after the forms

23 months agoREADME: start adding substance; in particular, links to my articles
Michael Orlitzky [Thu, 9 Nov 2023 01:31:59 +0000 (20:31 -0500)]
README: start adding substance; in particular, links to my articles

23 months agoindex.html.in: update part 1 URL; add the link to part 2
Michael Orlitzky [Thu, 9 Nov 2023 01:17:03 +0000 (20:17 -0500)]
index.html.in: update part 1 URL; add the link to part 2

23 months agotableau.svg: overlap the city and its copy by one unit
Michael Orlitzky [Wed, 8 Nov 2023 23:58:10 +0000 (18:58 -0500)]
tableau.svg: overlap the city and its copy by one unit

This fixes a display glitch where there's one pixel of space visible
between the end of the city (or its copy) and the beginning of its
copy (or the original).

23 months agoREADME: document the new tidy-html5 test suite requirement
Michael Orlitzky [Wed, 8 Nov 2023 23:30:40 +0000 (18:30 -0500)]
README: document the new tidy-html5 test suite requirement

23 months agoMakefile.am: run the new test suite with "make check"
Michael Orlitzky [Wed, 8 Nov 2023 23:30:03 +0000 (18:30 -0500)]
Makefile.am: run the new test suite with "make check"

23 months agorun-tests.sh: new minimal test suite
Michael Orlitzky [Wed, 8 Nov 2023 23:29:49 +0000 (18:29 -0500)]
run-tests.sh: new minimal test suite

23 months agoindex.html.in: speed up the tree-scroll animation some more
Michael Orlitzky [Wed, 8 Nov 2023 22:38:15 +0000 (17:38 -0500)]
index.html.in: speed up the tree-scroll animation some more

They move relatively fast compared to the city skyline.

23 months agotableau.svg: strip all stroke-foo properties that follow stroke:none
Michael Orlitzky [Wed, 8 Nov 2023 22:33:11 +0000 (17:33 -0500)]
tableau.svg: strip all stroke-foo properties that follow stroke:none

Inkscape crams all of these properties into the file, I guess so that
information isn't lost if you disable and re-enable the stroke on some
element. And most of them are stripped during minimization, but a
bunch of impotent stroke-widths make it through to the final document.

I've stripped all of it by hand, since removing it all was just as
easy as removing the stroke-width.

23 months agotableau.svg: shrink/translate everything down to width=2932
Michael Orlitzky [Wed, 8 Nov 2023 21:55:46 +0000 (16:55 -0500)]
tableau.svg: shrink/translate everything down to width=2932

Previously, we had width=2932.6 and a matching viewport. It shouldn't
matter when a viewport is defined, but in the interest of pedantry:
SVG2 punts to CSS2.1 for the width, and CSS2.1 doesn't support user
(SVG internal) coordinates. Instead, width=2932.6 would represent
pixels, and 0.6 pixels doesn't make sense. We avoid the non-issue by
shrinking/translating things a tiny bit.

23 months agosvgclean.xsl: strip all deprecated xml:space attributes
Michael Orlitzky [Wed, 8 Nov 2023 21:24:27 +0000 (16:24 -0500)]
svgclean.xsl: strip all deprecated xml:space attributes

23 months agoMakefile.am: prefix svgclean.xsl with $(srcdir) for out-of-source builds
Michael Orlitzky [Wed, 8 Nov 2023 21:10:03 +0000 (16:10 -0500)]
Makefile.am: prefix svgclean.xsl with $(srcdir) for out-of-source builds

23 months agoMakefile.am: pass the output file to sfd2woff.ff
Michael Orlitzky [Wed, 8 Nov 2023 21:06:00 +0000 (16:06 -0500)]
Makefile.am: pass the output file to sfd2woff.ff

This is required as of ce8a3cc46218347579ca35e370d1afb20a5a4f48. We
also prefix the path to sfd2woff.ff with $(srcdir) for out-of-source
builds.

23 months agosfd2woff.ff: take the output file as another argument
Michael Orlitzky [Wed, 8 Nov 2023 21:05:25 +0000 (16:05 -0500)]
sfd2woff.ff: take the output file as another argument

In out-of-source builds, we can't write the output to the same
directory as the input.

23 months agoMakefile.am: clean up a bit, and include everything in the dist tarball
Michael Orlitzky [Wed, 8 Nov 2023 20:55:32 +0000 (15:55 -0500)]
Makefile.am: clean up a bit, and include everything in the dist tarball

23 months ago.gitignore: ignore the dist tarball
Michael Orlitzky [Wed, 8 Nov 2023 20:51:12 +0000 (15:51 -0500)]
.gitignore: ignore the dist tarball

23 months agoMakefile.am: don't include "doc" and "src" subdirectories
Michael Orlitzky [Wed, 8 Nov 2023 16:39:41 +0000 (11:39 -0500)]
Makefile.am: don't include "doc" and "src" subdirectories

Because they no longer exist.

23 months agodoc: move into the top-level
Michael Orlitzky [Wed, 8 Nov 2023 16:38:51 +0000 (11:38 -0500)]
doc: move into the top-level

We're not doing subdirectories any more, and there are only two files
in here.

23 months agodoc/LICENSE: rename to doc/COPYING
Michael Orlitzky [Wed, 8 Nov 2023 16:37:57 +0000 (11:37 -0500)]
doc/LICENSE: rename to doc/COPYING

The name COPYING is supported out-of-the-box by autoconf, and my
preferences just isn't that strong.

23 months agoindex.html.in: speed up the animations
Michael Orlitzky [Wed, 8 Nov 2023 16:35:51 +0000 (11:35 -0500)]
index.html.in: speed up the animations

They were running a little bit slower than they should have been.

23 months agoCharmBypass-Bold.sfd: drop unused glyphs
Michael Orlitzky [Wed, 8 Nov 2023 12:12:11 +0000 (07:12 -0500)]
CharmBypass-Bold.sfd: drop unused glyphs

The only thing we use bold for are the service identifiers, and there
are only two of those: F and R.

23 months agoindex.html.in: replace the hint with a link to my introduction
Michael Orlitzky [Tue, 7 Nov 2023 23:19:52 +0000 (18:19 -0500)]
index.html.in: replace the hint with a link to my introduction

23 months agoindex.html.in: new slogan and better semantic markup for it
Michael Orlitzky [Tue, 7 Nov 2023 23:15:53 +0000 (18:15 -0500)]
index.html.in: new slogan and better semantic markup for it

23 months agofavicon.svg: use an arrow instead of a calligraphic stroke
Michael Orlitzky [Tue, 7 Nov 2023 14:01:45 +0000 (09:01 -0500)]
favicon.svg: use an arrow instead of a calligraphic stroke

23 months agoindex.html.in: add missing origin/destination => zone mappings
Michael Orlitzky [Sat, 4 Nov 2023 15:07:57 +0000 (11:07 -0400)]
index.html.in: add missing origin/destination => zone mappings

23 months agoindex.html.in: use a footnote (dagger) to explain the Commuter Bus zone
Michael Orlitzky [Sat, 4 Nov 2023 14:18:54 +0000 (10:18 -0400)]
index.html.in: use a footnote (dagger) to explain the Commuter Bus zone

Because, just kidding, <abbr> doesn't work at all in any mobile
browsers.

23 months agoindex.html.in: use <abbr> to explain the Commuter Bus zone
Michael Orlitzky [Sat, 4 Nov 2023 14:07:11 +0000 (10:07 -0400)]
index.html.in: use <abbr> to explain the Commuter Bus zone

23 months agoindex.html.in: yet another slogan tweak
Michael Orlitzky [Sat, 4 Nov 2023 13:43:29 +0000 (09:43 -0400)]
index.html.in: yet another slogan tweak

23 months agoindex.html.in: work around busted form validation in mobile Firefox
Michael Orlitzky [Sat, 4 Nov 2023 00:32:02 +0000 (20:32 -0400)]
index.html.in: work around busted form validation in mobile Firefox

Shit's broke yo:

  https://bugzilla.mozilla.org/show_bug.cgi?id=1510450

So now when the user-agent contains both "firefox" and "mobile", we
display our own errors and disable the submit button.

23 months agoindex.html.in: replace a few tabs with spaces
Michael Orlitzky [Sat, 4 Nov 2023 00:31:48 +0000 (20:31 -0400)]
index.html.in: replace a few tabs with spaces

23 months agoindex.html.in: reword the daily security code hint
Michael Orlitzky [Fri, 3 Nov 2023 20:32:31 +0000 (16:32 -0400)]
index.html.in: reword the daily security code hint

23 months agoindex.html.in: set the body font to sans-serif for consistency
Michael Orlitzky [Fri, 3 Nov 2023 20:31:57 +0000 (16:31 -0400)]
index.html.in: set the body font to sans-serif for consistency

All of the SVG fields are sans-serif.

23 months agoindex.html.in: display a special error message if origin == destination
Michael Orlitzky [Fri, 3 Nov 2023 17:49:24 +0000 (13:49 -0400)]
index.html.in: display a special error message if origin == destination

23 months agoindex.html.in: also validate the origin/destination when the page loads
Michael Orlitzky [Fri, 3 Nov 2023 17:42:21 +0000 (13:42 -0400)]
index.html.in: also validate the origin/destination when the page loads

Firefox (at least) retains your origin/destination selections when the
page reloads, so if we don't validate those choices at page load, it's
possible to "skip" validation of an invalid pair by submitting the
form right after a reload.

23 months agoindex.html.in: fix typos in the origin/destination => zone map
Michael Orlitzky [Fri, 3 Nov 2023 17:42:07 +0000 (13:42 -0400)]
index.html.in: fix typos in the origin/destination => zone map

23 months agoindex.html.in: validate MARC origin/destination before submission
Michael Orlitzky [Fri, 3 Nov 2023 17:29:34 +0000 (13:29 -0400)]
index.html.in: validate MARC origin/destination before submission

23 months agoindex.html.in: set default zone, origin, and destination options
Michael Orlitzky [Fri, 3 Nov 2023 17:26:58 +0000 (13:26 -0400)]
index.html.in: set default zone, origin, and destination options

23 months agoindex.html.in: add a few more (origin,destination) => zone mappings
Michael Orlitzky [Fri, 3 Nov 2023 17:25:55 +0000 (13:25 -0400)]
index.html.in: add a few more (origin,destination) => zone mappings

23 months agoindex.html.in: use strict equality checks everywhere
Michael Orlitzky [Fri, 3 Nov 2023 16:43:44 +0000 (12:43 -0400)]
index.html.in: use strict equality checks everywhere

23 months agoindex.html.in: big Javascript and comment cleanup
Michael Orlitzky [Fri, 3 Nov 2023 16:11:25 +0000 (12:11 -0400)]
index.html.in: big Javascript and comment cleanup

23 months agoindex.html.in: whitespace cleanup
Michael Orlitzky [Fri, 3 Nov 2023 14:55:53 +0000 (10:55 -0400)]
index.html.in: whitespace cleanup

23 months agoindex.html.in: use less vertical (white)space for keyframes
Michael Orlitzky [Fri, 3 Nov 2023 14:44:52 +0000 (10:44 -0400)]
index.html.in: use less vertical (white)space for keyframes