happy hacking emily lisp server
Emily's Work Station
Battle station and other interesting things and technology from my friend Emily E.
So on the workstation (left) I run Firefox and terminal and stuff - this is the machine that has all my monitors and keyboards plugged into. On the server (right) I run my Emacs server. I then forward X over ssh to run Emacs on my machine with all the screens. This way Firefox doesn't take up cpu and ram and I can restart it is something goes funky without losing my Emacs sessions. And finally I have the UCS supercomputer that I use tramp with to remotely edit files on.
So I interact with Emacs on one machine, run it on a seperate one, and edit files on a third
—emily, 2019-11-05
Happy Hacking Keyboard with Custom Firmware
I've programmed the hhkb with my own keyboard layout that I've been evolving over the past few years. And on the filco I have it send f13-f24 keys.. I have 3 screens, and 3 desktops on each consisting of emacs, Firefox and terminal. So I have a 3x3 section dedicated to switching monitor focus and changing the desktop. So pressing '1' will switch to Emacs running on my left monitor. I then have keys for full screen, kill etc...
Note that she is using a modified version of Colemak MOD DH layout , with a custom added middle column. 〔see Ergonomic Keyboard Layouts〕
Emily Keyboard Layout History
Hasu Controller for HHKB
https://geekhack.org/index.php?topic=12047.0
Hasu USB to USB Converter
This allows you to program any USB device.
hasu USB to USB converter https://www.1upkeyboards.com/shop/controllers/usb-to-usb-converter/
96 CPU Core Server
Steel Bank Common Lisp in Emacs
The line at upper right half is her emacs mode line. and she has interesting clock system:
in my mode-line i have:
- file save status
- buffer name
- place in file%
- (line and character number)
- standard time
- EmilyStandardTime
- [EmilyStandardTime but compressed to base 36]
- EmilyStandardTime visual representation
Compiler Dragon Book
Emily Senary Watch
She likes 6 based numbering system, and uses that as her clock. She programed her watch to use 6 based numbering system.
** time system (Emily Standard Time)
base 6
standard: day -> 24d hours -> 60d minutes -> 60d seconds
EST: day -> 100 pent -> 100 tri -> 100 mon
pent =~= hour
tri =~= minute
mon =~= second
*** divisibility
24d -> 60d -> 60d is uneven
100 -> 100 -> 100 is consistent
therefor
44 pent = 4400 tri = 440000 mon
*** covert/compare
1 pent = 40d minutes
1 tri = 1.(1)d minutes
1 mon = 1.85d seconds
*** segments
inital digit of time = segment of day
0 = sleep
1 = free
2 = work
3 = work
4 = free
5 = sleep
* senary
: nd = decimal . n = senary . 10d = 14 ;
a base 6 number system
I use for personal calculations and timekeeping
** number system
0 1 2 3 4 5
10 11 12 13 14 15
20...
*** divisibility
decimal: 2 5 10
senary: 2 3 6
*** fraction table
senary is more often simpler
| fraction | decimal | senary |
|----------+-------------+--------|
| 1/2 | 0.5d | 0.3 |
| 1/3 | 0.(3)d | 0.2 |
| 1/4 | 0.25d | 0.13 |
| 1/5 | 0.2d | 0.(1) |
| 1/6 | 0.1(6)d | 0.1 |
| 1/7 | 0.1(42857)d | 0.(05) |
| 1/8 | 0.125d | 0.043 |
| 1/9 | 0.(1)d | 0.04 |
| 1/10 | 0.1d | 0.0(3) |
| | | |
*** nomenclature
- base numbers are the same with 0 = nil
0 = nil
1 = one
2 = two
3 = three
4 = four
5 = five
- place names are based on the initial sylable of the polygon shapes
nxn = mon
nxnn = di
nxnnn = tri
nxnnnn = tet
nxnnnnn = pent
nxnnnnnn = hex
nxnnnnnnn = hept
nxnnnnnnnn = oct
nxnNNNNNNNN = NON
NXNNNNNNNNNN = DEC
NXNNNNNNNNNNN = HEN
NXNNNNNNNNNNNN = DODE
NXNNNNNNNNNNNNN = TRID
...
12 = ONE MON TWO
123 = ONE DI TWO MON THREE
1234 = ONE TRI TWO TRI THREE MON FOUR
12345 = ONE QUAD TWO TRI THREE DI FOUR MON FIVE
*** DI-COMPRESSION
2 SENARY CHARS -> 1 DI-CHAR
012345
+------
00|012345
10|6789AB
20|CDEFGH
30|IJKLMN
40|OPQRST
50|UVWXYZ
34 = m
Here's the full org file, including emacs lisp code emily_heximal_watch_notes_3j5bv.org
Emscript
Emily also devised her own writing system, called emscript.
Font for emscript: emscript-mid-regular.otf
* EmScript - an efficient, regular writing system
** Design goals:
- efficient to read
- continuous forward hand movement
- this means no loops that require the hand to swap direction of movement
- will ensure the fastest transfer from mind to paper
- simple, regular shapes
- all shapes are based off a pattern to create a simple set of glyphs that can be easily constructed and read
- efficient to write
- simple, regular shapes
- all of the shapes can be interperated by pattern recognition such that a word becomes its shape instead of its collection of characters
** Glyph structure:
each glyph consists of 2 (or 3 for some cases) straight lines arranged aligning to a 3x3 grid.
Imagine you have a 3x3 grid, this will have 3 colulmns of 3 dots each
each glph is a line connecting a dot in the first column, to a dot in the second, to a dot in the third
these dots are not actually written or draw, but are still connected like so:
#+BEGIN_SRC text
. . .
.\._.
. . .
#+END_SRC
the glyph are always drawn from left to right, with the hand constantly moving and the fingers creating the dips and rises
Due to this structure there are therefor 3x3x3=27 different and distinct 2-line glyphs, here are some examples:
#+BEGIN_SRC text
. . .
.\._.
. . .
._. .
. .\.
. . .
. . .
. . /.
.__./ .
#+END_SRC
(note the larger spacing for the last example is just to enable it to be shown with text, they are all the same size)
in addition to this set of 2-line glyphs, there is also a collection of 3-line glyphs
These 3 line glyphs are similar, but they have a vertical line down the middle, connecting all 3 dots in the second colulmn
This means that there are only 18 combinations, as the second column has to start at either the top and end at the bottom, or vice versa
for example:
#+BEGIN_SRC text
._. .
. | .
. |/.
. . .
./| .
. |_.
. . .
. |\ .
.__| \.
#+END_SRC
Due to being in sets of 3, these 3-line glyph varients are considered usefull for numbers, especially due to their construction
they can mathematically represent the value
This works best for number systems that have a base of a multiple of 3, such as base 6
** Writing
EmScript is written over the lines on a page as they server a useful guide as to where the dots are located
any line starting from the line will be from the middle dot
any line starting from below them line will be from the bottom dot
any line starting from above the line will be from the top dot
this allows for some inaccuracy as the height of the upper dots do not need to match, they just need to be above the line
additionally, two consecutive characters that have a common ending and starting point are written in a continuous stroke with the pen staying on the paper
** mapping to english
To map EmScript to english there is a 1-to-1 mapping from english letters to EmScript glyphs
punctuation remains english however as there is no support for them in EmScript
Capital letters are just written in bold by pressing the pen down harder
The challenge in mapping these glyphs to english characters arises in creating a mapping that has the most flow
that is to say that common digrams of the english language should use glyphs that can written continiously
thereis the first glyph ends where the first begins
to create this mapping I wrote a program in lisp that I let run for a week on my server to find the optimal mapping
The final result was then verified by consecutive runs with 90% of the total runs performed finding the same, best result
the remtaining 10% could only find a worse scoring mapping
This mapping can be seen in the image
The numbers are fitted mathematically with their glyph
you can think of the first line starting on the multiple of 3 and the third line starting on the multiple of 1
these values are 0 at the top and 2 at the bottom
so, for example - the number 5 consits of 1 lot of 3 and 2 lots of 1's
so it starts on the middle in the first line and ends on the bottom of the second line like so:
#+BEGIN_SRC text
2 . . . 2
1 ./| . 1
0 . |_. 0
3's 1'2
#+END_SRC
Epson Business Full Keyboard, 2004
Stenotype
Display Ink Phone
MacBook Keyboard
Nerd Battlestations
happy hacking emily lisp server
Xah Battle Station