هلالtonight’s moonشمسةthe sixteen-petal rosette — how it is drawn

The observatory

Tonight’s moonهلال

Next new moon
—
Next full moon
—

The first thin crescent — هلال, the hilal — is the moon a day or two out of conjunction, and it is a beginning. The Hijri calendar is lunar: twelve months of twenty-nine or thirty days, a year some eleven days shorter than the solar one, so its months walk backwards through the seasons. A month opens when the new crescent is seen — and the naked-eye hilal is a hard object, thin and low and lost in the dusk it hangs in, which is why what counts as seeing it has been argued over for centuries.

That is one reason the astronomers of the medieval Islamic world measured the moon as closely as they did. Al-Battani, who spent most of his life at Raqqa and died in 929, left the earliest surviving zīj — a book of astronomical tables — in the Ptolemaic tradition, and tables like it could place the crescent before anyone went out to look for it. The disc above is worked the same way: everything on it follows from ψ, the angle between sun and moon, which fixes both the phase and the lit fraction, (1 − cos ψ) ⁄ 2.

The observatory

The sixteen-petal rosetteشمسة

the compass circle · sixteen points

Everything here is stepped off one circle. Sixteen points around it, each joined to the sixth from it; the {16/6} star polygon that follows then supplies its own measurements — the petal valleys at 0.689 R where consecutive chords meet, the ring at 0.390 R where they cross closest to the centre. Nothing is chosen by eye.

Patterns built on that kind of scaffolding are girih, the interlaced strapwork behind much of Islamic geometric ornament; cut from glazed terracotta and set piece by hand-chiselled piece, the same figures become zellij, the mosaic of Morocco and al-Andalus this page is named for. What craftsmen carried between sites was the construction rather than the finished design: the Topkapı Scroll, 114 patterns from the Timurid workshops, is the one pattern-book of its kind to survive. The eight-pointed star this rosette closes on is the khatam — two squares laid across each other, the octagram the Qur’an uses in its margins as the Rub el Hizb.

Ahmed El Gabri

أحمد الجابري

Two-centred drop arch — the Mosque of Ibn Tulun, Cairo, 876–879

Blog

No more hosts file with dnsmasq

In my search for the best local development setup on my Mac, I wanted to have local domains something like project.dev that can work when I’m working on a project locally instead of http://localhost/dev/projectname/somethingelse/etc/. It’s easier, faster, cleaner & looks better.

The old way to achieve this needs you to edit the /etc/hosts/ & Apache httpd-vhosts.conf files each time you want to add new project, or if you are using VirtualDocumentRoot inside httpd-vhosts.conf you will have something like this

httpd-vhosts.conf
NameVirtualHost *:80
<VirtualHost *:80>
   VirtualDocumentRoot /Users/<username>/Sites/%1/%-1/build
</VirtualHost>

Then you will only need to edit the hosts file. Which is still manual & tedious.

The solution I found is using dnsmasq, the setup actually is easy & straightforward. First you need to install dnsmasq through Homebrew brew install dnsmasq make sure you follow the steps mentioned after the end of the installation.

Then we need to edit /usr/local/etc dnsmasq.conf, let’s say you want the local domain name to be .dev then you should add this line address=/.dev/127.0.0.1 to dnsmasq.conf if you want to add more domains you can just add a new line with a new domain name. Next we need to create a file called dev with no file extension inside /etc/resolver/ with this nameserver 127.0.0.1 inside. If you have multiple domains you will need multiple files, each file name need to match the domain name

The last step is to setup your httpd-vhosts.conf let’s say your folder structure is like this

Sites/
|- dev/
|--|-project/
|----|-public/

Then you will need to add this to your httpd-vhosts.conf file

httpd-vhosts.conf
<Virtualhost *:80>
    UseCanonicalName Off
    VirtualDocumentRoot "/Users/<username>/Sites/dev/%1/public/"
    ServerAlias *.dev
    LogFormat "%V %h %l %u %t \"%r\" %s %b" vcommon
    ErrorLog "/Users/<username>/Sites/dev/vhosts-error_log"
</VirtualHost>

If you have multiple domains then you will need to add more blocks, a block for each domain.

After you save this file you will need to restart Apache & Dnsmasq, but I found that sometimes the dnsmasq settings don’t get applied if I restarted it so I restart the computer itself.

Now, try to access any projects you have under the dev folder using this pattern http://<project-name>.dev this will always serve what is inside the public/ folder under this project. whenever you create a new project under the dev/ folder it will be accessible using .dev domain, no need to manually do anything or edit the hosts file anymore.

You can share this post or reach me on @ahmedelgabri.