Resist, my people, resist them.
In Jerusalem, I dressed my wounds and breathed my sorrows
And carried the soul in my palm
For an Arab Palestine.
I will not succumb to the “peaceful solution,”
Never lower my flags
Until I evict them from my land.
I cast them aside for a coming time.
Resist, my people, resist them.
Resist the settler’s robbery
And follow the caravan of martyrs.
Shred the disgraceful constitution
Which imposed degradation and humiliation
And deterred us from restoring justice.
They burned blameless children;
As for Hadil, they sniped her in public,
Killed her in broad daylight.
Resist, my people, resist them.
Resist the colonialist’s onslaught.
Pay no mind to his agents among us
Who chain us with the peaceful illusion.
Do not fear doubtful tongues;
The truth in your heart is stronger,
As long as you resist in a land
That has lived through raids and victory.
So Ali called from his grave:
Resist, my rebellious people.
Write me as prose on the agarwood;
My remains have you as a response.
Resist, my people, resist them.
Resist, my people, resist them.

One day young captain Jonathan,
he was eighteen at the time,
Captured a Pelican
On an island in the Far East
In the morning,
This Pelican
of Jonathan’s
Laid a white egg
and out of it came
a Pelican
Astonishingly like the first.
And this second Pelican
laid in its turn
A white egg,
from which came inevitably
Another
who did the same again.
This sort of thing can go on
A very long time,
if you don’t make an omelette.

Robert Desnos: Chantefleurs, Chantefables
Translated from the French by Elizabeth McGovern

(This is not a paid-for/affiliate link post, I just had great difficulty tracking down a working solution for this so I thought I’d post the answer now I’ve found it!)

I tried a lot of things before finding the WorkOutDoors App. It lets you save a segment of a map (of any size) to your phone in complete zoomable detail and will even show a track of where you have been and a persistent compass pointing back to your start point. $2.99 on the App Store. Went from wanting to run in a straight line and back in unfamiliar places to feeling confident to go wherever after one run with it.

Some of the things I tried that didn’t work even remotely well enough: maps.me (app never appeared on phone), Sygic (one of many apps that wants you to plan a route on your phone and then download that and only that to the watch – didn’t even manage to achieve that), Yandex (seemed like it might work but only has Russian cities), ViewRanger, Apple Maps after scanning around the map a bit while online so it’s in memory (this was not totally useless but you can’t zoom).

I needed a Swiss Pairing algorithm for a rewrite of the pairings code in gatherling.com. The existing code has a nasty habit of awarding the bye more than once to the same player or awarding more than one bye when things get tricky due to draws or drops or other complications.

If you want to pair based on player/team skill things can get more complicated but I came up with a fairly simple weighting calculation that considers the following:

Playing the same player twice

Getting the bye twice

Someone who is not the lowest scoring player who hasn’t had the bye getting the bye

Getting paired down

Pairing down better-performing players being much less desirable than pairing down worse-performing players

but not anything about the players/teams themselves.

def weight(highest_points, p1, p2):
w = 0
# A pairing where the participants have not played each other as many times as they have played at least one other participant outscore all pairings where the participants have played the most times.
# This will stave off re-pairs and second byes for as long as possible, and then re-re-pairs and third byes, and so on …
counter = Counter(p1['opponents'])
if len(counter) > 0 and counter.get(p2['id'], sys.maxsize) < max(counter.values()):
w += quality(highest_points, highest_points) + 1
# Determine a score for the quality of this pairing based on the points of the higher scoring participant of the two (importance) and how close the two participant's records are.
best = max(p1['points'], p2['points'])
worst = min(p1['points'], p2['points'])
spread = best - worst
closeness = highest_points - spread
importance = best
w += quality(importance, closeness)
return w
# importance and closeness are values in the range 0..highest_points
def quality(importance, closeness):
# We add one to these values to avoid sometimes multiplying by zero and losing information.
return (importance + 1 ** 2) * (closeness + 1 ** 2)

Using a baseline that works across multiple columns/font sizes is a complex exercise in CSS. You will need to use a combination of line-height, font-size and probably padding. It requires a site-wide commitment and can be quite complex if you want a true baseline rather than just a vertical rhythm. More details from Smashing Magazine.

Cap Height cannot be derived or manipulated in CSS. You can calculate the Cap Height of the font you are using with this script.

Moving the descender line independently of the baseline is not supported in CSS. If you must try, here are some ideas for egregious hacks.

Italic is the simple matter of using font-style: italic.

Leading (or line spacing) is complicated. CSS’s line-height property does much the same job. But instead of determining the distance baseline-to-baseline, it determines the distance between two lines below the baseline and even the descender line. You can get a real baseline-to-baseline leading with some margin/padding and some math but it can get messy: this article has more.

Set using the font-size property. More normally specified in pixels, ems, rems or percentages than in the traditional point size. Largely because 1/72nd of an inch doesn’t have much meaning in the various screen sizes that exist.

Serif and Sans Serif/Grotesk fonts are set with the font-family property. To get the system default serif or sans serif font use serif or sans-serif as the property value.

font-vari­ant: small-caps. Note this will produce “fake” small caps if the font you are using does not contain separate small caps information.

You can get a broad control with the letter-spacing property and use your font’s included kerning properties (when present) with the font-kerning property. Note that as of 2018 font-kerning is not supported in Microsoft browsers and requires a vendor prefix in Safari.

The font-weight property accepts the values normal and bold as well as 100-900. The font being rendered must support the chosen value which is very common for normal and bold but less so for the numeric values.