]> gitweb.michael.orlitzky.com - charm-bypass.git/log
charm-bypass.git
12 months agoindex.html.in: use the right font for the security code
Michael Orlitzky [Tue, 24 Oct 2023 15:53:23 +0000 (11:53 -0400)]
index.html.in: use the right font for the security code

12 months agoindex.html.in: javascript cleanup
Michael Orlitzky [Tue, 24 Oct 2023 15:36:40 +0000 (11:36 -0400)]
index.html.in: javascript cleanup

Encapsulate everything into functions and kick them off with event
listeners. This _mostly_ fixes the centering of the security code.

There is however a slight centering glitch visible upon page load when
the code is (for example) "WW". Resizing the page correctly re-centers
it; leaving only the mystery of why it was not centered to begin with;
we supposedly center it once when the page loads.

12 months agoindex.html.in: center the security code in its container
Michael Orlitzky [Tue, 24 Oct 2023 15:16:15 +0000 (11:16 -0400)]
index.html.in: center the security code in its container

This is mostly working and just needs some code cleanup. And to be
called when the window resizes. I found an easy solution completely
by accident, so that's nice.

12 months agoMakefile.am: preserve the "codebg" id
Michael Orlitzky [Tue, 24 Oct 2023 15:15:44 +0000 (11:15 -0400)]
Makefile.am: preserve the "codebg" id

We'll need it to center the security code within its red box.

12 months agoindex.html.in: support random and user-specified security codes
Michael Orlitzky [Tue, 24 Oct 2023 14:10:39 +0000 (10:10 -0400)]
index.html.in: support random and user-specified security codes

The security code will now be set at page-load to a random two digit
string with characters taken from the set [0-9A-Z]. I've never
actually seen two consecutive digits (zero through nine) in the
official app; but it's good enough for now.

What's better is that you can pass ?code=YO via URL paramaters to set
the code to "YO". Since the code only changes once every day, a
one-way ticket revealing the code now essentially gets you a day pass.

Note: The resulting codes are not usually centered properly (yet).

12 months agoMakefile.am: don't strip the "codetext" id
Michael Orlitzky [Tue, 24 Oct 2023 14:10:07 +0000 (10:10 -0400)]
Makefile.am: don't strip the "codetext" id

We'll need it to change the security code.

12 months agoindex.html.in: do javascript tricks in order of importance
Michael Orlitzky [Tue, 24 Oct 2023 13:46:34 +0000 (09:46 -0400)]
index.html.in: do javascript tricks in order of importance

For example, centering the ticket is probably most important. Being
able to tap the screen to switch it to night mode the least.

12 months agotableau.svg: rename the "hash" to "securitycode" and group it
Michael Orlitzky [Tue, 24 Oct 2023 12:41:39 +0000 (08:41 -0400)]
tableau.svg: rename the "hash" to "securitycode" and group it

That's what Moovel calls it and how I'll reference it.

12 months agotableau.svg: unhide the tram
Michael Orlitzky [Tue, 24 Oct 2023 12:37:38 +0000 (08:37 -0400)]
tableau.svg: unhide the tram

Whoops.

12 months agoconfigure.ac: update day.svg -> tableau.svg
Michael Orlitzky [Tue, 24 Oct 2023 12:36:59 +0000 (08:36 -0400)]
configure.ac: update day.svg -> tableau.svg

12 months ago.gitignore: update day.svg -> tableau.svg
Michael Orlitzky [Tue, 24 Oct 2023 12:34:31 +0000 (08:34 -0400)]
.gitignore: update day.svg -> tableau.svg

12 months agoMakefile.am: update day.svg -> tableau.svg
Michael Orlitzky [Tue, 24 Oct 2023 12:34:18 +0000 (08:34 -0400)]
Makefile.am: update day.svg -> tableau.svg

12 months agoday.svg: rename to tableau.svg because it's important to be fancy
Michael Orlitzky [Tue, 24 Oct 2023 12:34:02 +0000 (08:34 -0400)]
day.svg: rename to tableau.svg because it's important to be fancy

13 months agoindex.html.in: don't blink the expiration date/time after 10 minutes
Michael Orlitzky [Sun, 22 Oct 2023 22:39:39 +0000 (18:39 -0400)]
index.html.in: don't blink the expiration date/time after 10 minutes

I'm pretty sure this is when CharmPass stops blinking.

13 months agoindex.html.in: set ticket expiration to 90 minutes
Michael Orlitzky [Sun, 22 Oct 2023 22:24:43 +0000 (18:24 -0400)]
index.html.in: set ticket expiration to 90 minutes

This is what CharmPass does for one-way tickets, and the expiration
date/time only blinks for about ten minutes after you use a ticket in
the official app. This is a tiny detail (and we could always ditch the
blinking to make the display accurate with an expiration of 1h) but
it's easy enough to get completely right, so why not?

13 months ago.gitignore: ignore the two woff2 output files
Michael Orlitzky [Thu, 19 Oct 2023 00:51:16 +0000 (20:51 -0400)]
.gitignore: ignore the two woff2 output files

GNU Make automatically removes these "intermediate files," but
ignoring them is The Right Thing to do.

13 months agoMakefile.am: add rule to build woff2 fonts from sfd sources
Michael Orlitzky [Thu, 19 Oct 2023 00:56:34 +0000 (20:56 -0400)]
Makefile.am: add rule to build woff2 fonts from sfd sources

13 months agodoc/README: document the new fontforge requirement
Michael Orlitzky [Thu, 19 Oct 2023 00:54:23 +0000 (20:54 -0400)]
doc/README: document the new fontforge requirement

13 months agoconfigure.ac: check for the fontforge program
Michael Orlitzky [Thu, 19 Oct 2023 00:53:59 +0000 (20:53 -0400)]
configure.ac: check for the fontforge program

We'll need this to convert our sfd source files to woff2 webfonts.

13 months agosfd2woff: new script to convert sfd source files to woff2 webfonts
Michael Orlitzky [Thu, 19 Oct 2023 00:52:39 +0000 (20:52 -0400)]
sfd2woff: new script to convert sfd source files to woff2 webfonts

13 months agoCharmBypass-{Bold,Regular}.woff2: remove
Michael Orlitzky [Thu, 19 Oct 2023 00:49:07 +0000 (20:49 -0400)]
CharmBypass-{Bold,Regular}.woff2: remove

These can now be created from the sfd source files.

13 months agosrc/CharmBypass-{Bold,Regular}.sfd: move up out of src
Michael Orlitzky [Thu, 19 Oct 2023 00:48:11 +0000 (20:48 -0400)]
src/CharmBypass-{Bold,Regular}.sfd: move up out of src

These are the last remaining files in the src/ directory. Move them to
the top level with everything else so that we can simplify the build
rules a bit.

13 months agoMakefile.am,configure.ac,.gitignore: update for day.svg rename
Michael Orlitzky [Thu, 19 Oct 2023 00:45:12 +0000 (20:45 -0400)]
Makefile.am,configure.ac,.gitignore: update for day.svg rename

Since we're moving the source day.svg to where the built day.svg
previously lived, a rename is also in order. We now name the optimized
output file day.min.svg.

13 months agosrc/day.svg: move out of src
Michael Orlitzky [Thu, 19 Oct 2023 00:43:20 +0000 (20:43 -0400)]
src/day.svg: move out of src

13 months agoMakefile.am: update for new index.html.in location
Michael Orlitzky [Thu, 19 Oct 2023 00:42:20 +0000 (20:42 -0400)]
Makefile.am: update for new index.html.in location

13 months agosrc/index.html.in: move out of src
Michael Orlitzky [Thu, 19 Oct 2023 00:42:12 +0000 (20:42 -0400)]
src/index.html.in: move out of src

13 months agoMakefile.am: use double-suffix rule to build base64 from woff2
Michael Orlitzky [Thu, 19 Oct 2023 00:40:39 +0000 (20:40 -0400)]
Makefile.am: use double-suffix rule to build base64 from woff2

13 months agosrc/CharmBypass-{Bold,Regular}.woff2: move up out of src
Michael Orlitzky [Thu, 19 Oct 2023 00:39:38 +0000 (20:39 -0400)]
src/CharmBypass-{Bold,Regular}.woff2: move up out of src

Relocate the woff2 fonts to the top level. This will allow us to use a
simpler "double suffix" rule to build their base64-encodings.

13 months agosrc/CharmBypass-{Bold,Regular}.sfd: new font source files
Michael Orlitzky [Wed, 18 Oct 2023 23:13:08 +0000 (19:13 -0400)]
src/CharmBypass-{Bold,Regular}.sfd: new font source files

Include the FontForge source files for the "CharmBypass-Bold" and
"CharmBypass-Regular" fonts. This will eventually allow us to build
the woff2 fonts on-the-fly.

These fonts were created from the letterforms used in the CharmPass
app. Copyright law in the United States generally does not protect
typefaces themselves; it protects only fonts, which are a particular
programmatic digital representation of a typeface. Since I have copied
only the letterforms, distributing the fonts (which are my own
creation) should not run afoul of the law. But as always when it comes
to legal matters: IANAL, YOLO, IDGAF.

13 months agodoc/LICENSE: add AGPL-3 license
Michael Orlitzky [Wed, 18 Oct 2023 22:27:14 +0000 (18:27 -0400)]
doc/LICENSE: add AGPL-3 license

13 months agosrc/day.svg: move the bus down a tiny bit so that it overlaps the road
Michael Orlitzky [Mon, 16 Oct 2023 14:05:22 +0000 (10:05 -0400)]
src/day.svg: move the bus down a tiny bit so that it overlaps the road

13 months agosrc/index.html.in: auto-center the ticket in the viewport
Michael Orlitzky [Mon, 16 Oct 2023 14:02:31 +0000 (10:02 -0400)]
src/index.html.in: auto-center the ticket in the viewport

13 months agosrc/index.html.in: add a "const" to a javascript variable
Michael Orlitzky [Mon, 16 Oct 2023 14:02:11 +0000 (10:02 -0400)]
src/index.html.in: add a "const" to a javascript variable

13 months agoMakefile.am: retain the "ticket" id so it can be centered
Michael Orlitzky [Mon, 16 Oct 2023 13:58:31 +0000 (09:58 -0400)]
Makefile.am: retain the "ticket" id so it can be centered

13 months agodoc/README: document that we want "scour" and not "xmllint"
Michael Orlitzky [Mon, 16 Oct 2023 04:44:07 +0000 (00:44 -0400)]
doc/README: document that we want "scour" and not "xmllint"

13 months agoMakefile.am: use scour to optimize the SVG as part of the build
Michael Orlitzky [Mon, 16 Oct 2023 04:43:03 +0000 (00:43 -0400)]
Makefile.am: use scour to optimize the SVG as part of the build

And since scour can also strip the XML prologue, there's no longer any
need for xmllint (or the corresponding build step).

13 months agoconfigure.ac: check for scour instead of xmllint
Michael Orlitzky [Mon, 16 Oct 2023 04:41:37 +0000 (00:41 -0400)]
configure.ac: check for scour instead of xmllint

I'm about to switch to a more involved SVG pre-processing step using
scour,

  https://github.com/scour-project/scour

instead of xmllint.

13 months agosrc/day.svg: add a few more trees
Michael Orlitzky [Mon, 16 Oct 2023 03:56:29 +0000 (23:56 -0400)]
src/day.svg: add a few more trees

13 months agosrc/day.svg: undo/redo cloudscopy grouping to fix the animation
Michael Orlitzky [Mon, 16 Oct 2023 03:47:37 +0000 (23:47 -0400)]
src/day.svg: undo/redo cloudscopy grouping to fix the animation

13 months agosrc/index.html.in: add the city skyline animation
Michael Orlitzky [Mon, 16 Oct 2023 03:47:07 +0000 (23:47 -0400)]
src/index.html.in: add the city skyline animation

13 months agosrc/day.svg: make all of the proportions accurate
Michael Orlitzky [Mon, 16 Oct 2023 03:36:21 +0000 (23:36 -0400)]
src/day.svg: make all of the proportions accurate

13 months agosrc/day.svg: finish the last few city buildings
Michael Orlitzky [Mon, 16 Oct 2023 02:48:12 +0000 (22:48 -0400)]
src/day.svg: finish the last few city buildings

13 months agosrc/day.svg: add the city skyline
Michael Orlitzky [Sun, 15 Oct 2023 23:59:48 +0000 (19:59 -0400)]
src/day.svg: add the city skyline

It's not quite done, but it's there -- all three layers.

13 months ago.gitignore: update with the new font filenames
Michael Orlitzky [Sat, 14 Oct 2023 03:28:12 +0000 (23:28 -0400)]
.gitignore: update with the new font filenames

13 months agoMakefile.am,src: replace the existing ticket font with two new ones
Michael Orlitzky [Sat, 14 Oct 2023 03:23:52 +0000 (23:23 -0400)]
Makefile.am,src: replace the existing ticket font with two new ones

Using separate regular and bold fonts on the ticket lets us more
accurately mimic the official app. For example, the "service letter"
looks a lot better in bold. This commit replaces tickettext.woff2 by
CharmBypass-Regular.woff2 and CharmBypass-Bold.woff2.

13 months agosrc/day.svg: drop all font-family inline styles
Michael Orlitzky [Sat, 14 Oct 2023 03:19:19 +0000 (23:19 -0400)]
src/day.svg: drop all font-family inline styles

These only get in the way when we use an external (to the SVG, at
least) stylesheet to style all of its text.

13 months agosrc/day.svg: add the QR code
Michael Orlitzky [Fri, 13 Oct 2023 18:58:56 +0000 (14:58 -0400)]
src/day.svg: add the QR code

13 months agosrc/index.html.in: reduce the LCM of the bus/tram/train loops
Michael Orlitzky [Fri, 13 Oct 2023 18:33:50 +0000 (14:33 -0400)]
src/index.html.in: reduce the LCM of the bus/tram/train loops

Using prime numbers for these ensures that they won't all "reset" to
x=0 at the same time for a much longer time.

13 months agosrc/index.html.in: animate the train
Michael Orlitzky [Fri, 13 Oct 2023 18:31:37 +0000 (14:31 -0400)]
src/index.html.in: animate the train

13 months agosrc/day.svg: finish the train
Michael Orlitzky [Fri, 13 Oct 2023 18:31:27 +0000 (14:31 -0400)]
src/day.svg: finish the train

13 months agosrc/day.svg: finish the back of the train
Michael Orlitzky [Fri, 13 Oct 2023 17:46:08 +0000 (13:46 -0400)]
src/day.svg: finish the back of the train

13 months agosrc/day.svg: continue to work on the train
Michael Orlitzky [Fri, 13 Oct 2023 17:11:58 +0000 (13:11 -0400)]
src/day.svg: continue to work on the train

13 months agosrc/day.svg: start the train
Michael Orlitzky [Fri, 13 Oct 2023 16:50:18 +0000 (12:50 -0400)]
src/day.svg: start the train

13 months agosrc/index.html.in: animate the trees
Michael Orlitzky [Wed, 11 Oct 2023 00:35:41 +0000 (20:35 -0400)]
src/index.html.in: animate the trees

13 months agosrc/day.svg: duplicate the trees so that they can be animated
Michael Orlitzky [Wed, 11 Oct 2023 00:35:01 +0000 (20:35 -0400)]
src/day.svg: duplicate the trees so that they can be animated

13 months agosrc/index.html.in: prefer translateX(x) to translate(x,0)
Michael Orlitzky [Wed, 11 Oct 2023 00:26:56 +0000 (20:26 -0400)]
src/index.html.in: prefer translateX(x) to translate(x,0)

13 months agosrc/index.html.in: add the cloud animation
Michael Orlitzky [Tue, 10 Oct 2023 15:55:36 +0000 (11:55 -0400)]
src/index.html.in: add the cloud animation

13 months agosrc/day.svg: change cloud group spacing
Michael Orlitzky [Tue, 10 Oct 2023 15:54:09 +0000 (11:54 -0400)]
src/day.svg: change cloud group spacing

Even though the clouds scroll right-to-left, the translation
coordinates are based on the groups' left-hand edges. As a result,
everything will be easier if I "left align" the clouds initially.

13 months agoRevert "src/day.svg: re-center the ticket"
Michael Orlitzky [Tue, 10 Oct 2023 15:48:52 +0000 (11:48 -0400)]
Revert "src/day.svg: re-center the ticket"

This reverts commit 752909532a84da904746162a20e20f4d254b54dc.

With the clouds scrolling in from the right, it will actually be
easier if our "window" containing the ticket is on the left side
of the scene.

13 months agosrc/day.svg: duplicate the clouds layer
Michael Orlitzky [Tue, 10 Oct 2023 15:38:50 +0000 (11:38 -0400)]
src/day.svg: duplicate the clouds layer

13 months agosrc/day.svg: space out the clouds a bit more
Michael Orlitzky [Tue, 10 Oct 2023 15:30:31 +0000 (11:30 -0400)]
src/day.svg: space out the clouds a bit more

13 months agosrc/day.svg: re-center the ticket
Michael Orlitzky [Tue, 10 Oct 2023 15:28:47 +0000 (11:28 -0400)]
src/day.svg: re-center the ticket

13 months agosrc/day.svg: double the width of the document
Michael Orlitzky [Tue, 10 Oct 2023 15:26:19 +0000 (11:26 -0400)]
src/day.svg: double the width of the document

This is in preparation for an "infinite scroll" animation that I'm
going to try to implement by having two copies of the thing that
scrolls: one on-screen, and one off-screen. And for now at least I
actually want to be able to see the off-screen bits.

13 months agosrc/day.svg: rename clouds from left to right
Michael Orlitzky [Tue, 10 Oct 2023 15:21:01 +0000 (11:21 -0400)]
src/day.svg: rename clouds from left to right

13 months agosrc/index.html.in: slow down the bus and the tram a bit
Michael Orlitzky [Tue, 10 Oct 2023 14:09:06 +0000 (10:09 -0400)]
src/index.html.in: slow down the bus and the tram a bit

13 months agosrc/day.svg: scale the clouds down to the correct size
Michael Orlitzky [Tue, 10 Oct 2023 14:05:50 +0000 (10:05 -0400)]
src/day.svg: scale the clouds down to the correct size

13 months agosrc/index.html.in: add the tram animation
Michael Orlitzky [Tue, 10 Oct 2023 13:04:32 +0000 (09:04 -0400)]
src/index.html.in: add the tram animation

13 months agosrc/day.svg: shrink tram and bus to the right size; set x=0 for the tram
Michael Orlitzky [Tue, 10 Oct 2023 13:01:40 +0000 (09:01 -0400)]
src/day.svg: shrink tram and bus to the right size; set x=0 for the tram

13 months agosrc/index.html.in: enable the bus scroll animation
Michael Orlitzky [Tue, 10 Oct 2023 02:18:01 +0000 (22:18 -0400)]
src/index.html.in: enable the bus scroll animation

13 months agodoc/README: document the ungroup/regroup trick for SVG transforms
Michael Orlitzky [Tue, 10 Oct 2023 02:17:30 +0000 (22:17 -0400)]
doc/README: document the ungroup/regroup trick for SVG transforms

13 months agosrc/day.svg: move the bus to x=0
Michael Orlitzky [Tue, 10 Oct 2023 02:16:23 +0000 (22:16 -0400)]
src/day.svg: move the bus to x=0

Starting the bus with 0% of its journey across the screen completed
will sure make the animation code simpler.

13 months agosrc/day.svg: eliminate default bus transform
Michael Orlitzky [Tue, 10 Oct 2023 02:07:30 +0000 (22:07 -0400)]
src/day.svg: eliminate default bus transform

We don't want the bus group to have a "transform" attribute by default
because we want to use the CSS "transform" property to animate it, and
the CSS property overwrites the SVG one. Ungrouping and regrouping the
elements in the "bus" group fixes this somehow.

13 months agosrc/day.svg: fix a few layer names
Michael Orlitzky [Tue, 10 Oct 2023 01:24:42 +0000 (21:24 -0400)]
src/day.svg: fix a few layer names

13 months agosrc/day.svg: add the crab cloud
Michael Orlitzky [Mon, 9 Oct 2023 20:42:45 +0000 (16:42 -0400)]
src/day.svg: add the crab cloud

13 months agosrc/day.svg: add the third cloud
Michael Orlitzky [Mon, 9 Oct 2023 20:07:40 +0000 (16:07 -0400)]
src/day.svg: add the third cloud

13 months agosrc/day.svg: first attempt at what I'm calling a tram
Michael Orlitzky [Mon, 9 Oct 2023 15:10:46 +0000 (11:10 -0400)]
src/day.svg: first attempt at what I'm calling a tram

13 months ago.gitignore: ignore more build products
Michael Orlitzky [Mon, 9 Oct 2023 12:52:32 +0000 (08:52 -0400)]
.gitignore: ignore more build products

13 months agoMakefile.am: add CLEANFILES variable so that "make clean" works
Michael Orlitzky [Mon, 9 Oct 2023 12:49:15 +0000 (08:49 -0400)]
Makefile.am: add CLEANFILES variable so that "make clean" works

Use the variable CLEANFILES to indicate which files are produced
by the build process. Otherwise, automake doesn't consider our
custom rules.

13 months agoMakefile.am: add dist/install rule for index.html
Michael Orlitzky [Mon, 9 Oct 2023 12:43:26 +0000 (08:43 -0400)]
Makefile.am: add dist/install rule for index.html

13 months agoMakefile.am: teach "make" how to build our output file index.html
Michael Orlitzky [Mon, 9 Oct 2023 04:55:24 +0000 (00:55 -0400)]
Makefile.am: teach "make" how to build our output file index.html

13 months agosrc/index.html.in: add the main page template
Michael Orlitzky [Mon, 9 Oct 2023 04:50:29 +0000 (00:50 -0400)]
src/index.html.in: add the main page template

13 months agosrc/tickettext.woff2: add source font for the ticket text
Michael Orlitzky [Mon, 9 Oct 2023 04:45:41 +0000 (00:45 -0400)]
src/tickettext.woff2: add source font for the ticket text

This web font imitates the font used for the date, time, and service
name on CharmPass tickets. It's not a perfect match, but it's good
enough. I've stripped the character set down to 0-9, :/-, space, and
a-zA-Z.

13 months ago.gitignore: ignore autotools byproducts
Michael Orlitzky [Mon, 9 Oct 2023 03:53:34 +0000 (23:53 -0400)]
.gitignore: ignore autotools byproducts

13 months agoMakefile.am,configure.ac: initial autotools build system
Michael Orlitzky [Mon, 9 Oct 2023 03:50:26 +0000 (23:50 -0400)]
Makefile.am,configure.ac: initial autotools build system

13 months agodoc/README: document initial build requirements
Michael Orlitzky [Mon, 9 Oct 2023 03:49:46 +0000 (23:49 -0400)]
doc/README: document initial build requirements

13 months agosrc/day.svg: initial commit of the work-in-progress svg
Michael Orlitzky [Mon, 9 Oct 2023 03:49:03 +0000 (23:49 -0400)]
src/day.svg: initial commit of the work-in-progress svg