The Path to the New Finnish APL Keyboard
The Path to the New Finnish APL Keyboard. . or How I Learned to Stop Worrying and Love Unicode 13. 9. 2021
13. 9. 2021
Starting Point • The Objective: to create a Finnish APL keyboard, which would be easy to grasp, especially for the newcomers • the necessary symbols in logical places • not vendor, version or application specific • Unicode • the standard! • Windows IME keyboards • anyone may design a keyboard with Microsoft’s Keyboard Layout Creator • Only Alt. Gr- and Shift+Alt. Gr combinations are allowed • standard shortcuts are left intact (e. g. Ctrl+C) • usable also outside APL! 13. 9. 2021
APL 2 Keyboard 13. 9. 2021
Sharp. APL Keyboard www. quadibloc. com/comp/aplint. htm 13. 9. 2021
13. 9. 2021
Unified Keyboard for Dyalog APL v 11 • Meant for seasoned APLers − historical ragbag − redundant characters • Almost all possible characters are present − no Ctrl shortcuts − dead keys cannot be used 13. 9. 2021
Guidelines • Adin Falkoff & Adrian Smith • If it appears on a key, just use that key • If there is a clear visual association, choose that next • A reasonable mnemonic for the symbol name should go next • The rest will just have to fall where they may • try to get the most common ones on the keys easiest to hit • www. dyalog. dk/Conf 2006/Adrian. Smith/keybd. htm • www. apl 385. com/kbd/ 13. 9. 2021
Keep It Simple • Clarity • avoid unnecessary exceptions and compromises • Usability • Visual mnemonics • Vicinity • logical counterpart on the same key • Grouping • look at the neighbours 13. 9. 2021
The Finnish Keyboard Layout ½ § ! 1 " # ¤ % & / ( ) = ? ` 2 @ 3 £ 4 $ 5 € 6 7 { 8 [ 9 ] 0 } + ´ Q W E R T Y U I O P Å q w e € r t y u i o p å A S D F G H J K L Ö Ä a s d f g h j k l ö ä > Z X C V B N M ; : _ < ¦ z x c v b n m µ , . - ^ ¨ ~ * ' • Upper and lower case letters A-Z & a-z • National characters åäö & ÅÄÖ • Numbers 0 -9 • • Base APL !? /[]()<>+-*=. , : ; _'~¨^ Dyalog APL #&{} APLNow " Other symbols §½¤%@£$€¦µ´` • plus those available with the five dead keys (áèïõû…) 13. 9. 2021
Begin with the Greeks ½ § ! 1 " # ¤ % & / ( ) = ? ` 2 @ 3 £ 4 $ 5 € 6 7 { 8 [ 9 ] 0 } + ´ Q W ⍹ E R T Y U I ⍸ O P Å q w ⍵ e € r ⍴ t y u i ⍳ o p å A ⍶ S D ⍙ F G H J K L Ö Ä a ⍺ s d ∆ f g h j k l ö ä > Z X C V B N M ; : _ < ¦ z x c v b n m µ , . - • • • Omega ⍵, underlined omega ⍹ Reshape (rho) ⍴ Index of (iota) ⍳, underlined iota ⍸ Alpha ⍺, underlined alpha ⍶ Delta ∆, underlined delta ⍙ ^ ¨ ~ * ' ðw key ðr key ði key ða key ðd key • … Alt. Gr+e is already taken. . what to do with ∊? 13. 9. 2021
You Can't Make an Omelet without… ½ § ! 1 " # ¤ % & / ( ) = ? ` 2 @ 3 £ 4 $ 5 € 6 7 { 8 [ 9 ] 0 } + ´ Q W ⍹ E ⍷ R T Y U I ⍸ O P Å q w ⍵ e ∊ r ⍴ t y u i ⍳ o p å A ⍶ S D ⍙ F G H J K L Ö Ä a ⍺ s d ∆ f g h j k l ö ä > Z X C V B N M ; : _ < ¦ z x c v b n m µ , . - ^ ¨ ~ * ' • No APL keyboard exception! • Euro symbol is also available with Alt. Gr+5 • Member of (epsilon, enlist) ∊, find ⍷ ðe key • Alt. Gr+m (µ) is not really used → position available • Alt. Gr+< (¦) is used → keep it • Some APL symbols are carved on the dead keys, but they are still not available 13. 9. 2021
Uniformity ½ § ! 1 " # 2 @ 3 Q W ⍹ q w ⍵ A ⍶ S a ⍺ s > ∣ Z X < ¦ z x • • ¤ % £ 4 $ 5 E ⍷ R e ∊ r ⍴ D ⍙ F d ∆ f ÷ C ⊃ V × c ⊂ v & / ( ) = ? ` € 6 7 { 8 [ 9 ] 0 } + ´ T Y U ∩ I ⍸ O ○ P Å t y u ∪ i ⍳ o ∘ p å G H J K L Ö ⍥ Ä g h j k l ö ⍤ ä N M ; : _ ⍱ B ∨ b n m µ , . - Union ∪, intersection ∩ Outer product (composition) ∘, circular functions ○ Rank (paw) ⍤, upon (hoof) ⍥ Modulo ∣ Multiplication ×, division ÷ Enclose ⊂, disclose ⊃ Or ∨, nor ⍱ ^ ¨ ~ * ' ðu key ðo key ðö key ð< key ðx key ðc key ðv key 13. 9. 2021
Visual Association ½ § ! 1 " # 2 @ 3 Q W ⍹ q w ⍵ A ⍶ S a ⍺ s > ∣ Z X < ¦ z x • • • ¤ ⍟ % £ 4 $ 5 E ⍷ R e ∊ r ⍴ D ⍙ F d ∆ f ÷ C ⊃ V × c ⊂ v ⍉ & / € 6 7 T Y t y G H g h N ⍱ B ∨ b n Reduction first � Scan first ⍀ Logarithm ⍟ Transpose ⍉ Not equal ≠ Infinity ∞ Commute ⍨ Character input ⍞, power ⍣ Catenate first ⍪ ⌿ { U u ( 8 ∩ ∪ J j M m ∞ [ I i ) 9 ⍸ ⍳ K k ; µ , = ] 0 O ○ o ∘ L l ⍪ : . ≠ ? �` } + ´ P Å p å Ö ⍥ Ä ö ⍤ ä _ - ^ ⍨ ¨ ~ * ⍣ ' ⍞ ð 7 key ð+ key ð 4 key ð 5 key ð 0 key ð 8 key ð¨ key ð‘ key ð, key 13. 9. 2021
Mnemonics ½ § ! 1 " # 2 @ 3 Q ≢ W ⍹ q ≡ w ⍵ A ⍶ S a ⍺ s > ∣ Z X < ¦ z x • • • ¤ ⍟ % £ 4 $ 5 E ⍷ R e ∊ r ⍴ D ⍙ F d ∆ f ÷ C ⊃ V × c ⊂ v ⍉ € T t & / ⌿ ( 6 ¥ 7 { 8 ↓ Y ⍒ U ∩ ↑ y ⍋ u ∪ G H J g h j N M ⍱ B ∨ b n ⍬ m Take ↑, drop ↓ Grade up ⍋, grade down ⍒ Decode ⊥, encode ⊤ Minimum ⌊, maximum ⌈ Matrix divide ⌹ Negative ¯, not ~ Numeric empty vector ⍬ Match ≡, natch ≢ Yen ¥ ∞ [ I i ) = 9 ] 0 ⍸ O ○ ⍳ o ∘ K ⊤ L k ⊥ l ⌈ ; ⍪ : ⌊ , . ≠ ? �` } + ´ P Å p å Ö ⍥ Ä ö ⍤ ä ⌹ _ ~ - ¯ ^ ⍨ ¨ ~ * ⍣ ' ⍞ ðt key (otto) ðy key (ylös) ðk key (kanta, koodaus) ðm key ð- key ðn key (null) ðq key (equal) ð 6 key 13. 9. 2021
But…? • All the symbols are still not available • lots of APL glyphs (⍢⍡⍩⍑ - and the underlined ones) • a bunch of national and other special characters (µ) • Ctrl looks _very_ tempting … … but there’s another way! • It is possible to enhance the dead key functionality to make the seldom needed characters available without stuffing the whole keyboard • Of course, the default dead keys must be left as they are! 13. 9. 2021
13. 9. 2021
13. 9. 2021
- Slides: 28