diff options
Diffstat (limited to 'generated/blog')
| -rw-r--r-- | generated/blog/index.html | 223 | ||||
| -rw-r--r-- | generated/blog/otherpost.txt | 4 | ||||
| -rw-r--r-- | generated/blog/post.html | 214 | ||||
| -rw-r--r-- | generated/blog/tekstinsyotto.html | 312 | ||||
| -rw-r--r-- | generated/blog/yksinkertaisesti-monipuolinen.txt | 226 |
5 files changed, 0 insertions, 979 deletions
diff --git a/generated/blog/index.html b/generated/blog/index.html deleted file mode 100644 index 13557a1..0000000 --- a/generated/blog/index.html +++ /dev/null @@ -1,223 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" -"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" lang="fi" xml:lang="fi"> -<head> -<!-- 2026-06-13 Sat 19:21 --> -<meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> -<meta name="viewport" content="width=device-width, initial-scale=1" /> -<title>Blogin sisällys</title> -<meta name="author" content="Joel Kronqvist" /> -<meta name="generator" content="Org Mode" /> -<style type="text/css"> - #content { max-width: 60em; margin: auto; } - .title { text-align: center; - margin-bottom: .2em; } - .subtitle { text-align: center; - font-size: medium; - font-weight: bold; - margin-top:0; } - .todo { font-family: monospace; color: red; } - .done { font-family: monospace; color: green; } - .priority { font-family: monospace; color: orange; } - .tag { background-color: #eee; font-family: monospace; - padding: 2px; font-size: 80%; font-weight: normal; } - .timestamp { color: #bebebe; } - .timestamp-kwd { color: #5f9ea0; } - .org-right { margin-left: auto; margin-right: 0px; text-align: right; } - .org-left { margin-left: 0px; margin-right: auto; text-align: left; } - .org-center { margin-left: auto; margin-right: auto; text-align: center; } - .underline { text-decoration: underline; } - #postamble p, #preamble p { font-size: 90%; margin: .2em; } - p.verse { margin-left: 3%; } - pre { - border: 1px solid #e6e6e6; - border-radius: 3px; - background-color: #f2f2f2; - padding: 8pt; - font-family: monospace; - overflow: auto; - margin: 1.2em; - } - pre.src { - position: relative; - overflow: auto; - } - pre.src:before { - display: none; - position: absolute; - top: -8px; - right: 12px; - padding: 3px; - color: #555; - background-color: #f2f2f299; - } - pre.src:hover:before { display: inline; margin-top: 14px;} - /* Languages per Org manual */ - pre.src-asymptote:before { content: 'Asymptote'; } - pre.src-awk:before { content: 'Awk'; } - pre.src-authinfo::before { content: 'Authinfo'; } - pre.src-C:before { content: 'C'; } - /* pre.src-C++ doesn't work in CSS */ - pre.src-clojure:before { content: 'Clojure'; } - pre.src-css:before { content: 'CSS'; } - pre.src-D:before { content: 'D'; } - pre.src-ditaa:before { content: 'ditaa'; } - pre.src-dot:before { content: 'Graphviz'; } - pre.src-calc:before { content: 'Emacs Calc'; } - pre.src-emacs-lisp:before { content: 'Emacs Lisp'; } - pre.src-fortran:before { content: 'Fortran'; } - pre.src-gnuplot:before { content: 'gnuplot'; } - pre.src-haskell:before { content: 'Haskell'; } - pre.src-hledger:before { content: 'hledger'; } - pre.src-java:before { content: 'Java'; } - pre.src-js:before { content: 'Javascript'; } - pre.src-latex:before { content: 'LaTeX'; } - pre.src-ledger:before { content: 'Ledger'; } - pre.src-lisp:before { content: 'Lisp'; } - pre.src-lilypond:before { content: 'Lilypond'; } - pre.src-lua:before { content: 'Lua'; } - pre.src-matlab:before { content: 'MATLAB'; } - pre.src-mscgen:before { content: 'Mscgen'; } - pre.src-ocaml:before { content: 'Objective Caml'; } - pre.src-octave:before { content: 'Octave'; } - pre.src-org:before { content: 'Org mode'; } - pre.src-oz:before { content: 'OZ'; } - pre.src-plantuml:before { content: 'Plantuml'; } - pre.src-processing:before { content: 'Processing.js'; } - pre.src-python:before { content: 'Python'; } - pre.src-R:before { content: 'R'; } - pre.src-ruby:before { content: 'Ruby'; } - pre.src-sass:before { content: 'Sass'; } - pre.src-scheme:before { content: 'Scheme'; } - pre.src-screen:before { content: 'Gnu Screen'; } - pre.src-sed:before { content: 'Sed'; } - pre.src-sh:before { content: 'shell'; } - pre.src-sql:before { content: 'SQL'; } - pre.src-sqlite:before { content: 'SQLite'; } - /* additional languages in org.el's org-babel-load-languages alist */ - pre.src-forth:before { content: 'Forth'; } - pre.src-io:before { content: 'IO'; } - pre.src-J:before { content: 'J'; } - pre.src-makefile:before { content: 'Makefile'; } - pre.src-maxima:before { content: 'Maxima'; } - pre.src-perl:before { content: 'Perl'; } - pre.src-picolisp:before { content: 'Pico Lisp'; } - pre.src-scala:before { content: 'Scala'; } - pre.src-shell:before { content: 'Shell Script'; } - pre.src-ebnf2ps:before { content: 'ebfn2ps'; } - /* additional language identifiers per "defun org-babel-execute" - in ob-*.el */ - pre.src-cpp:before { content: 'C++'; } - pre.src-abc:before { content: 'ABC'; } - pre.src-coq:before { content: 'Coq'; } - pre.src-groovy:before { content: 'Groovy'; } - /* additional language identifiers from org-babel-shell-names in - ob-shell.el: ob-shell is the only babel language using a lambda to put - the execution function name together. */ - pre.src-bash:before { content: 'bash'; } - pre.src-csh:before { content: 'csh'; } - pre.src-ash:before { content: 'ash'; } - pre.src-dash:before { content: 'dash'; } - pre.src-ksh:before { content: 'ksh'; } - pre.src-mksh:before { content: 'mksh'; } - pre.src-posh:before { content: 'posh'; } - /* Additional Emacs modes also supported by the LaTeX listings package */ - pre.src-ada:before { content: 'Ada'; } - pre.src-asm:before { content: 'Assembler'; } - pre.src-caml:before { content: 'Caml'; } - pre.src-delphi:before { content: 'Delphi'; } - pre.src-html:before { content: 'HTML'; } - pre.src-idl:before { content: 'IDL'; } - pre.src-mercury:before { content: 'Mercury'; } - pre.src-metapost:before { content: 'MetaPost'; } - pre.src-modula-2:before { content: 'Modula-2'; } - pre.src-pascal:before { content: 'Pascal'; } - pre.src-ps:before { content: 'PostScript'; } - pre.src-prolog:before { content: 'Prolog'; } - pre.src-simula:before { content: 'Simula'; } - pre.src-tcl:before { content: 'tcl'; } - pre.src-tex:before { content: 'TeX'; } - pre.src-plain-tex:before { content: 'Plain TeX'; } - pre.src-verilog:before { content: 'Verilog'; } - pre.src-vhdl:before { content: 'VHDL'; } - pre.src-xml:before { content: 'XML'; } - pre.src-nxml:before { content: 'XML'; } - /* add a generic configuration mode; LaTeX export needs an additional - (add-to-list 'org-latex-listings-langs '(conf " ")) in .emacs */ - pre.src-conf:before { content: 'Configuration File'; } - - table { border-collapse:collapse; } - caption.t-above { caption-side: top; } - caption.t-bottom { caption-side: bottom; } - td, th { vertical-align:top; } - th.org-right { text-align: center; } - th.org-left { text-align: center; } - th.org-center { text-align: center; } - td.org-right { text-align: right; } - td.org-left { text-align: left; } - td.org-center { text-align: center; } - dt { font-weight: bold; } - .footpara { display: inline; } - .footdef { margin-bottom: 1em; } - .figure { padding: 1em; } - .figure p { text-align: center; } - .equation-container { - display: table; - text-align: center; - width: 100%; - } - .equation { - vertical-align: middle; - } - .equation-label { - display: table-cell; - text-align: right; - vertical-align: middle; - } - .inlinetask { - padding: 10px; - border: 2px solid gray; - margin: 10px; - background: #ffffcc; - } - #org-div-home-and-up - { text-align: right; font-size: 70%; white-space: nowrap; } - textarea { overflow-x: auto; } - .linenr { font-size: smaller } - .code-highlighted { background-color: #ffff00; } - .org-info-js_info-navigation { border-style: none; } - #org-info-js_console-label - { font-size: 10px; font-weight: bold; white-space: nowrap; } - .org-info-js_search-highlight - { background-color: #ffff00; color: #000000; font-weight: bold; } - .org-svg { } -</style> -<link rel="stylesheet"type="text/css" href="../static/global.css"> -</head> -<body> -<div id="content" class="content"> -<h1 class="title">Blogin sisällys</h1> -<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides"> - - -<colgroup> -<col class="org-left" /> -</colgroup> -<tbody> -<tr> -<td class="org-left"><a href="./post.html">Test-post-title</a> (2026-06-12) Test subtitle</td> -</tr> - -<tr> -<td class="org-left"><a href="./tekstinsyotto.html">tekstinsyotto</a> (2025-07-28) Alaotsikkoa ei saatavilla</td> -</tr> - -<tr> -<td class="org-left"><a href="./yksinkertaisesti-monipuolinen.txt">yksinkertaisesti-monipuolinen</a> (2024-05-06) Alaotsikkoa ei saatavilla</td> -</tr> -</tbody> -</table> -</div> -</body> -</html> diff --git a/generated/blog/otherpost.txt b/generated/blog/otherpost.txt deleted file mode 100644 index a9f90fd..0000000 --- a/generated/blog/otherpost.txt +++ /dev/null @@ -1,4 +0,0 @@ - -This is a plain text file - -* Please do not modify this ! diff --git a/generated/blog/post.html b/generated/blog/post.html deleted file mode 100644 index 2605de8..0000000 --- a/generated/blog/post.html +++ /dev/null @@ -1,214 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" -"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" lang="fi" xml:lang="fi"> -<head> -<!-- 2026-06-12 Fri 19:45 --> -<meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> -<meta name="viewport" content="width=device-width, initial-scale=1" /> -<title>Test-post-title</title> -<meta name="author" content="Joel Kronqvist" /> -<meta name="generator" content="Org Mode" /> -<style type="text/css"> - #content { max-width: 60em; margin: auto; } - .title { text-align: center; - margin-bottom: .2em; } - .subtitle { text-align: center; - font-size: medium; - font-weight: bold; - margin-top:0; } - .todo { font-family: monospace; color: red; } - .done { font-family: monospace; color: green; } - .priority { font-family: monospace; color: orange; } - .tag { background-color: #eee; font-family: monospace; - padding: 2px; font-size: 80%; font-weight: normal; } - .timestamp { color: #bebebe; } - .timestamp-kwd { color: #5f9ea0; } - .org-right { margin-left: auto; margin-right: 0px; text-align: right; } - .org-left { margin-left: 0px; margin-right: auto; text-align: left; } - .org-center { margin-left: auto; margin-right: auto; text-align: center; } - .underline { text-decoration: underline; } - #postamble p, #preamble p { font-size: 90%; margin: .2em; } - p.verse { margin-left: 3%; } - pre { - border: 1px solid #e6e6e6; - border-radius: 3px; - background-color: #f2f2f2; - padding: 8pt; - font-family: monospace; - overflow: auto; - margin: 1.2em; - } - pre.src { - position: relative; - overflow: auto; - } - pre.src:before { - display: none; - position: absolute; - top: -8px; - right: 12px; - padding: 3px; - color: #555; - background-color: #f2f2f299; - } - pre.src:hover:before { display: inline; margin-top: 14px;} - /* Languages per Org manual */ - pre.src-asymptote:before { content: 'Asymptote'; } - pre.src-awk:before { content: 'Awk'; } - pre.src-authinfo::before { content: 'Authinfo'; } - pre.src-C:before { content: 'C'; } - /* pre.src-C++ doesn't work in CSS */ - pre.src-clojure:before { content: 'Clojure'; } - pre.src-css:before { content: 'CSS'; } - pre.src-D:before { content: 'D'; } - pre.src-ditaa:before { content: 'ditaa'; } - pre.src-dot:before { content: 'Graphviz'; } - pre.src-calc:before { content: 'Emacs Calc'; } - pre.src-emacs-lisp:before { content: 'Emacs Lisp'; } - pre.src-fortran:before { content: 'Fortran'; } - pre.src-gnuplot:before { content: 'gnuplot'; } - pre.src-haskell:before { content: 'Haskell'; } - pre.src-hledger:before { content: 'hledger'; } - pre.src-java:before { content: 'Java'; } - pre.src-js:before { content: 'Javascript'; } - pre.src-latex:before { content: 'LaTeX'; } - pre.src-ledger:before { content: 'Ledger'; } - pre.src-lisp:before { content: 'Lisp'; } - pre.src-lilypond:before { content: 'Lilypond'; } - pre.src-lua:before { content: 'Lua'; } - pre.src-matlab:before { content: 'MATLAB'; } - pre.src-mscgen:before { content: 'Mscgen'; } - pre.src-ocaml:before { content: 'Objective Caml'; } - pre.src-octave:before { content: 'Octave'; } - pre.src-org:before { content: 'Org mode'; } - pre.src-oz:before { content: 'OZ'; } - pre.src-plantuml:before { content: 'Plantuml'; } - pre.src-processing:before { content: 'Processing.js'; } - pre.src-python:before { content: 'Python'; } - pre.src-R:before { content: 'R'; } - pre.src-ruby:before { content: 'Ruby'; } - pre.src-sass:before { content: 'Sass'; } - pre.src-scheme:before { content: 'Scheme'; } - pre.src-screen:before { content: 'Gnu Screen'; } - pre.src-sed:before { content: 'Sed'; } - pre.src-sh:before { content: 'shell'; } - pre.src-sql:before { content: 'SQL'; } - pre.src-sqlite:before { content: 'SQLite'; } - /* additional languages in org.el's org-babel-load-languages alist */ - pre.src-forth:before { content: 'Forth'; } - pre.src-io:before { content: 'IO'; } - pre.src-J:before { content: 'J'; } - pre.src-makefile:before { content: 'Makefile'; } - pre.src-maxima:before { content: 'Maxima'; } - pre.src-perl:before { content: 'Perl'; } - pre.src-picolisp:before { content: 'Pico Lisp'; } - pre.src-scala:before { content: 'Scala'; } - pre.src-shell:before { content: 'Shell Script'; } - pre.src-ebnf2ps:before { content: 'ebfn2ps'; } - /* additional language identifiers per "defun org-babel-execute" - in ob-*.el */ - pre.src-cpp:before { content: 'C++'; } - pre.src-abc:before { content: 'ABC'; } - pre.src-coq:before { content: 'Coq'; } - pre.src-groovy:before { content: 'Groovy'; } - /* additional language identifiers from org-babel-shell-names in - ob-shell.el: ob-shell is the only babel language using a lambda to put - the execution function name together. */ - pre.src-bash:before { content: 'bash'; } - pre.src-csh:before { content: 'csh'; } - pre.src-ash:before { content: 'ash'; } - pre.src-dash:before { content: 'dash'; } - pre.src-ksh:before { content: 'ksh'; } - pre.src-mksh:before { content: 'mksh'; } - pre.src-posh:before { content: 'posh'; } - /* Additional Emacs modes also supported by the LaTeX listings package */ - pre.src-ada:before { content: 'Ada'; } - pre.src-asm:before { content: 'Assembler'; } - pre.src-caml:before { content: 'Caml'; } - pre.src-delphi:before { content: 'Delphi'; } - pre.src-html:before { content: 'HTML'; } - pre.src-idl:before { content: 'IDL'; } - pre.src-mercury:before { content: 'Mercury'; } - pre.src-metapost:before { content: 'MetaPost'; } - pre.src-modula-2:before { content: 'Modula-2'; } - pre.src-pascal:before { content: 'Pascal'; } - pre.src-ps:before { content: 'PostScript'; } - pre.src-prolog:before { content: 'Prolog'; } - pre.src-simula:before { content: 'Simula'; } - pre.src-tcl:before { content: 'tcl'; } - pre.src-tex:before { content: 'TeX'; } - pre.src-plain-tex:before { content: 'Plain TeX'; } - pre.src-verilog:before { content: 'Verilog'; } - pre.src-vhdl:before { content: 'VHDL'; } - pre.src-xml:before { content: 'XML'; } - pre.src-nxml:before { content: 'XML'; } - /* add a generic configuration mode; LaTeX export needs an additional - (add-to-list 'org-latex-listings-langs '(conf " ")) in .emacs */ - pre.src-conf:before { content: 'Configuration File'; } - - table { border-collapse:collapse; } - caption.t-above { caption-side: top; } - caption.t-bottom { caption-side: bottom; } - td, th { vertical-align:top; } - th.org-right { text-align: center; } - th.org-left { text-align: center; } - th.org-center { text-align: center; } - td.org-right { text-align: right; } - td.org-left { text-align: left; } - td.org-center { text-align: center; } - dt { font-weight: bold; } - .footpara { display: inline; } - .footdef { margin-bottom: 1em; } - .figure { padding: 1em; } - .figure p { text-align: center; } - .equation-container { - display: table; - text-align: center; - width: 100%; - } - .equation { - vertical-align: middle; - } - .equation-label { - display: table-cell; - text-align: right; - vertical-align: middle; - } - .inlinetask { - padding: 10px; - border: 2px solid gray; - margin: 10px; - background: #ffffcc; - } - #org-div-home-and-up - { text-align: right; font-size: 70%; white-space: nowrap; } - textarea { overflow-x: auto; } - .linenr { font-size: smaller } - .code-highlighted { background-color: #ffff00; } - .org-info-js_info-navigation { border-style: none; } - #org-info-js_console-label - { font-size: 10px; font-weight: bold; white-space: nowrap; } - .org-info-js_search-highlight - { background-color: #ffff00; color: #000000; font-weight: bold; } - .org-svg { } -</style> -<link rel="stylesheet"type="text/css" href="../static/global.css"> -</head> -<body> -<div id="content" class="content"> -<h1 class="title">Test-post-title -<br /> -<span class="subtitle">Test subtitle</span> -</h1> -<div id="outline-container-orgfa8ca1d" class="outline-2"> -<h2 id="orgfa8ca1d">Test post</h2> -<div class="outline-text-2" id="text-orgfa8ca1d"> -<p> -This is a test org post. -</p> -</div> -</div> -</div> -</body> -</html> diff --git a/generated/blog/tekstinsyotto.html b/generated/blog/tekstinsyotto.html deleted file mode 100644 index 9ae7d80..0000000 --- a/generated/blog/tekstinsyotto.html +++ /dev/null @@ -1,312 +0,0 @@ -<!DOCTYPE html> -<html lang="fi"> - <head> - <meta charset="utf-8"> - <meta name="viewport" content="width=device-width, initial-scale=1.0"> - <link href="/static/global.css" rel="stylesheet" type="text/css"> - <title>Tarina toimivamman tekstinsyöttämiseni taustalla</title> - </head> - - <body> - <a id="skiptocontent" href="#content">Siirry pääsisältöön</a> - <header> - <a href="/fi/">FI</a> · <a href="/en/">EN</a> - </header> - <main id="content"> - <h1>Tarina toimivamman tekstinsyöttämiseni taustalla</h1> - -<p>Näppäimistöni ovat aina herättäneet hilpeyttä ystävieni keskuudessa. -Koska ensimmäisessä blogikirjoituksessani kerroin, kuinka näppärää raakateksti voi olla, -lienee sopivaa luoda katsaus, -miten kirjoitan ohjelmakoodia ja muuta raakatekstiä tietokoneella, - ja kuinka ohjelmisto- ja laitteistoratkaisuni tekstinmuokkauksen suhteen ovat muuttuneet ajan saatossa.</p> - - -<p>Joskus lukion alkupuolella siirryin asteittain käyttämään Linuxia, -ensin MinGW:n* kautta, sen jälkeen rinnakkain Windowsin kanssa -ja myöhemmin ainoana käyttöjärjestelmänäni. -Linuxin muokattavuus auttoi minua ymmärtämään, -että kykenen itse vaikuttamaan siihen, -miten ergonomisesti ja tehokkaasti kykenen työskentelemään tietokoneellani.</p> - -<p>Kun etsin tietoa netistä ratkaistakseni erinäisiä haasteita, -en voinut olla törmäämättä mainintoihin Vim-ohjelmasta. -Se on juurikin eräs ratkaisuista, -jotka ovat auttaneet minua parantamaan työskentelyni sujuvuutta.</p> - -<p>Vim on tehokas tilapohjainen tekstinmuokkausohjelma. -Sen tärkeimmät tilat ovat liiketila ja tekstinsyöttötila. -Tekstinsyöttötilassa kirjoitettu teksti päätyy kulloinkin auki olevaan tiedostoon**. -Liiketilassa taas voi siirtää kursoria ja suorittaa komentoja. -Liiketilan erillisyys tekstinsyöttötilasta on äärimmäisen hyödyllistä; -liiketilassa se mahdollistaa tavallisten kirjainten käytön liikkumis- ja yleiskomentoja vastaavina näppäinyhdistelminä. -Kursoria liikutetaan HJKL-näppäimillä nuolinäppäinten tavoin, -"N G" siirtää kursorin riville N, "$" taas rivin loppuun, -"y y" kopioi rivin, jolla kursori on ja niin edelleen. -Kaikkeen löytyy näppäinyhdistelmä. - Liiketilassa on helppoa yhdistellä, toistaa ja ketjuttaa komentoja. -Vimin etsi ja korvaa -toiminto on tehokkain, minkä olen nähnyt missään koodieditorissa.</p> - -<p>Tehokkaan tekstinmuokkauksen lisäksi -Vimin toimintaa voi muokata tarkemmin kuin useimpia muita tekstinmuokkausohjelmia. -Yksi osa tätä on nimenomaan liiketila – voit helposti lisätä näppäinyhdistelmiä, jotka tekevät mitä ikinä tahdot. -Pitkälti kaikkia varsin laajassa dokumentaatiossa [1] mainittuja komentoja ja muuttujia voi muokata omien mieltymystensä mukaan. -Vimiin on saatavilla runsaasti lisäosia [2], jotka voivat esimerkiksi lisätä Vimin yhteensopivuutta muiden ohjelmien kanssa. -Olen sittemmin siirtynyt käyttämään Neovimiä. -Se on Vimin modernimpi ja toteutukseltaan kevyempi***, mutta käytännössä samat ominaisuudet sisältävä versio. -Neovim sisältää sisäänrakennettuna jopa LSP-tuen [3]. -LSP:n tiedoilla se kykenee muun muassa huomauttamaan tekstin muokkaajaa virheistä tämän työstämässä lähdekoodissa. -Käytännössä ohjelma muuttuu LSP-serverin avulla täysiveriseksi IDE:ksi.</p> - -<p>Mikäli Vimin kuvaus jäi epäselväksi, on sen itse kokeileminen ja oppiminen sangen helppoa. -Sitä oppii käyttämään katsomalla pari tutoriaalia YouTubesta (esim. <a href="https://youtu.be/-txKSRn0qeA">youtu.be/-txKSRn0qeA</a>) ja tekemällä -Vimiin sisäänrakennetun tutoriaalin kirjoittamalla ":tutor" ja painamalla enteriä. -Jos Vimin asennus ei vielä houkuta, -löytyy samainen tutoriaali netistä, -esimerkiksi osoitteesta <a href="https://remarkablemark.org/vimtutor/">remarkablemark.org/vimtutor/</a>.</p> - - -<p>Viime aikoina olen myös tehnyt kokeiluja GNU Emacs -kehitysympäristön parissa, -ja olen vaikuttunut sen kyvyistä. -Lisäosien voimalla käytän sitä toistaiseksi kuitenkin enimmäkseen Vimin tavoin. -On muutenkin järkevää jättää sen käsittely myöhemmäksi – -se on luonteeltaan lähempänä käyttöjärjestelmää kuin tekstinmuokkausohjelmaa.</p> - - -<p>Toinen suuri muutos, -jonka tein vaihdettuani Linuxiin, -oli näppäimistöasetteluni vaihtaminen. -En koskaan oppinut kymmensormijärjestelmää kunnolla QWERTY-asettelulla, -muun muassa oudosti aseteltujen näppäinten vuoksi, -jotka hankaloittivat kymmensormijärjestelmän oikeaoppista käyttöä. -Lienee kuitenkin paikallaan selventää, -miksi QWERTY ei ollut minulle – ja tuskin muillekkaan paljon kirjoittaville – toimivin näppäimistöasettelu.</p> - -<p>QWERTY-asettelu kehitettiin aikanaan pääasiassa kirjoituskoneille. -Erilaisia asetteluita oli olemassa paljon, joista varhaisimmissa -näppäimet olivat käytännössä vain aakkosjärjestyksessä [4,5]. -Ensimmäisessä sähkeistä suoraan luettavaa tekstiä – morsekoodin sijaan – tuottavassa lennätikoneessa kirjaimet olivat aakkosjärjestyksen lisäksi kaikki samassa rivissä [6]. -Koska sellaisella näppäimistöllä oli vaivalloista kirjoittaa, siirrettiin kirjaimet kolmeen riviin ja numerot neljänteen. -Nyt peräkkäin ja vierekkäin olevat näppäimet saattoivat kuitenkin painaessa juuttua toisiinsa. -Ratkaisuna näppäimet aseteltiin siten, että useimmiten käytetyt näppäimet eivät olleet vierekkäin.</p> - -<p>Monilla Youtube-videoilla, joihin törmäsin todennäköisesti Linux-mielenkiintoni ja Youtuben algoritmin vuoksi, -perusteltiin toiseen näppäimistöasetteluun vaihtamista jotakuinkin vastaavasti. -Niillä vihjattiin, ettei ole järkevää, että useimmiten käytetyt kirjaimet ovat hajallaan ympäri näppäimistöä. -<a href="#fig1">Kuvasta 1</a> näkee helposti, -kuinka yleisimmin käytettyjä kirjaimia vastaavat näppäimet ovat QWERTYllä kaukana toisistaan. -Mistä muusta muutokset ihmisten käytöksessä nykyään johtuisivat kuin YouTubesta.</p> - -<figure id="fig1"> - <img src="/img/qwerty.png" alt="Kuva QWERTY-näppäimistöstä korostuksilla"> - <figcaption>Kuva 1. Englanninkielinen QWERTY-asettelu, jossa näppäimiä on tummennettu sen perusteella, kuinka paljon niitä vastaavat kirjaimet esiintyvät teksteissä Wikipedian mukaan [7]. Tämä tuottamani kuva on vapaasti käytettävissä <a href="https://creativecommons.org/publicdomain/zero/1.0/legalcode.en">CC0-lisenssillä</a>.</figcaption> -</figure> - -<p>Ei ole perusteltua sanoa, että näppäinten asettelua näppäimistölle ei olisi aikanaan mietitty. -Olisi kuitenkin järkevämpää, että useimmiten käytetyt näppäimet olisivat niin kutsutulla kotirivillä, -jolla sormia oletusarvoisesti pidetään näppäimistöä käytettäessä. -Tällöin sormien tarvitsisi harvemmin jättää kotirivi, -kasvattaen kirjoitusnopeutta ja lyhentäen matkaa, joka sormien on kuljettava näppäimistön yllä.</p> - -<p>Joidenkin kokeilujen kautta päädyin käyttämään Colemak-näppäimistöasettelua [8]. -Vuosilukujen valossa sen voidaan olettaa olevan QWERTYä paremmin suunniteltu. -QWERTY syntyi 1800- ja 1900-luvuilla. -Colemak puolestaan on suunniteltu 2000-luvulla [9] tehokkuutta ergonomisuutta ajatellen [8]. -Tietokoneet oli kehitetty jo pitkälle, kun Colemak suunniteltiin, -joten sitä luodessa voitiin paremmin ottaa huomioon tekijöitä, jotka vaativat laajamittaisempaa laskennallista analyysiä. -Esimerkiksi saman sormen peräkkäisiä kirjainpainalluksia, -saman käden kirjainpainalluksia ja kotirivin eri puolille vuoroin kurottavia (esim. ”minimi” QWERTYllä) näppäily-yhdistelmien esiintyvyyksiä on voitu minimoida [10, 11]. -Yksinkertaisin argumentti Colemakin puolesta lienee se, -että useimmin käytetyt näppäimet sijaitsevat kotirivillä, -kuten <a href="#fig2">Kuvasta 2</a> näkyy.</p> - -<figure id="fig2"> - <img src="/img/colemak.png" alt="Kuva Colemak-näppäimistöstä korostuksilla"> - <figcaption>Kuva 2. Colemak, värikoodi tuotettu samoin kuin <a href="#fig1">Kuvassa 1</a>. Tämä tuottamani kuva on vapaasti käytettävissä <a href="https://creativecommons.org/publicdomain/zero/1.0/legalcode.en">CC0-lisenssillä</a>.</figcaption> -</figure> - -<p>Colemak on toiminut hyvin omassa käytössäni. -Uudella asettelulla kirjoittamista harjoitellessa näppäimistöni näppäinhatut olivat fyysisesti yhä QWERTY-asettelussa. -Koska en voinut tarkastaa näppäimen sijaintia silmilläni, -opin kirjoittamaan katsomatta näppäimistöä ollenkaan, -mikä oli ollut minulle QWERTYä käyttäessä hankalaa. -Kirjoittaminen myös on myös tuntunut mukavammalta; -sormien tarvitsee harvemmin poistua kotiriviltä ja epämukavia näppäilysarjoja tuntuu esiintyvän harvemmin.</p> - -<p>On tietysti hyvä huomata, että Colemak on suunniteltu nimenomaan englannin kirjoittamista varten. -Tahdon itse käyttää kaikista järkevistä käyttöjärjestelmistä löytyvää yleisnäppäimistöä, -joka on samoin aseteltu riippumatta kielestä, jota kirjoitan. -Koska kirjoitan paljon sekä suomea että englantia, ja joskus ruotsia, -joudun joka tapauksessa näppäimistöasettelua valitessa tekemään kompromissin kielten välillä, -tai valitsemaan jonkun harrastelijan tekemän esoteerisen useamman kielen yhdistävän näppäimistöasettelun, -jota tuskin on todettu toimivaksi käytössä. -Kaikeksi onneksi Suomeakin kirjoittaessa Colemak on tuntunut minusta luontevammalta kuin QWERTY.</p> - -<p>Alun perin kokeilin ensimmäisenä näppäimistöasettelunani QWERTYn jälkeen Dvorakia****. -Saatoin mututuntumalla kirjoittaa Dvorakilla nopeammin kuin Colemakilla, -mutta sillä kirjoittaminen oli käsilleni epämukavaa, etenkin oikealle pikkurillilleni, -joka joutui usein kurkottamaan L-näppäimen perään. -Hiljalleen ymmärsin, -että itselle sopivaa näppäimistöasettelua valitessa -olennaisinta on asettelun ergonomisuus eikä kirjoitusnopeus. -Mitä hyötyä on nopeasta kirjoitustyylistä, -jos ei voi kirjoittaa rasitusvamman vuoksi.</p> - -<p>Näppäimistöasettelua valitessani minulle oli tärkeää myös erikoismerkkien helppo saatavuus. -Dvorakissa ei ollut juurikaan erikoismerkkejä, ei edes AltGr:n takana. -Colemakilla käytettävissäni ovat helposti muun muassa paljon käyttämäni -nk. ysiysi-lainausmerkit ‘”’ (AltGr+Shift+0) -sekä m-viiva ‘–’ (AltGr+-), ja mukavuuksina esimerkiksi -numeroiden potenssiversioita ‘¹²³’.</p> - -<p>Voit saada ensikosketuksen Colemakiin netissä esim. nopeuspelin <a href="https://gnusenpai.net/colemakclub/">gnusenpai.net/colemakclub/</a> kautta. -Asennus-/käyttöönotto-ohjeet Colemakille puolestaan löytyvät osoitteesta <a href="https://colemak.com/Download">colemak.com/Download</a>. -Muitakin eri tarkoituksiin optimoituja näppäimistöasetteluja löytyy runsaasti netistä, -mutta Colemak lienee kaikista testatuin ja luotetuin vaihtoehto, -joka löytyy monista laitteista vaihtoehtona ilman erillistä asennusta. -</p> - - -<p>Kiinnostuttuani näppäimistöasetteluni ergonomisuudesta aloin pohtimaan myös fyysisen näppäimistöni ergonomisuutta. -Aloitetaan hyvin yksinkertaisella ajatusleikillä. -Kuvittele olevasi pöydän ääressä ennen ateriaa. -Miten asetat kätesi rennosti pöydälle eteesi? -Entä jos niiden on oltava ainakin hieman erillään eikä yhdessä? -Todennäköisesti kätesi olisivat keskemmällä kuin kyynärpääsi. -On luultavaa, -että ranteesi olisivat suorina, -verrattuna esimerkiksi asentoon, -jossa pikkurillejä taittaa kohti kyynärluita. -Lopulta on yleistä, että kämmenesi eivät olisi olleet litteinä pöytää vasten, -vaan että ranteesi peukalopuoli osoitti joko suoraan ylös tai hieman yläviistoon.</p> - -<p>Tavallinen näppäimistö pakottaa kädet epäluonnolliseen suppuun. -Kuvittele ranteesi suoraan sormiesi takana. -Vie sitten sormesi näppäimistön kotiriville. -Joudut taittamaan pikkurilliäsi kohti kyynärluutasi. -Epämukava asento, eikö? -Ongelma ratkeaa jakamalla näppäimistö keskeltä kahtia . -Tällöin eri puoliskot voi asettaa itselleen mieluisiin kulmiin -ja itselleen mieluiselle leveydelle -siten, että ranteet saavat olla suorassa. -Samalla lapasi ja hartiasi pääsevät rentoutumaan.</p> - -<p>Ranteita on myös mukava kallistaa nostamalla peukkut ylemmäs kuin pikkurillit. -Nyt kun näppäimistösi on kahdessa osassa, -voit vapaasti kallistaa ne kulmaan, joka on ranteillesi mieluinen. -Ainakin, jos näppäimistöillä on telineet, -jotka sallivat niiden kallistamisen kätevästi. -Jotkut kirjoittavat jopa näppäimistönpuolikkaat lähes pystysuorassa.</p> - -<p>Lopulta mielenkiintoisena huomiona on varsin kummallista, että näppäimistöjen sarakkeet ovat useimmiten viistossa eivätkä suoraan ylhäältä alas. -Tämä on QWERTYn lisäksi toinen epäoptimaalinen jäänne kirjoituskoneiden ajalta. -Olihan näppäinten varsien jotenkin ulotuttava pääasialliseen kirjoituslaitteistoon. -Jos näppäimistöt suunniteltaisiin ensimmäistä kertaa nykyään ilman historiallista taakkaa, miksi tabulaattori-, näppäinlukko- ja shift-näppäimiä päätettäisiin kasvattaa eri pituisiksi siten, että loput kirjaimet joutuvat kuin väistämään toisiaan. -Viistous ei sinänsä ole välttämättä epäergonomista, -mutta esimerkiksi kaukana kotirivistä olevien numeronäppäinten löytäminen voi olla hankalaa, -kun vaikkapa numero 5 on etusormen yläpuolella, -vaikka sarakkeiden suoraan mennessä siinä pitäisi olla nelonen.</p> - -<p>Markkinoilla on näppäimistöjä, jotka ratkaisevat kaikki nämä ongelmat. -Esimerkiksi Ergodox Ez [12] ja Voyager [13] ovat suosittuja vaihtoehtoja. -Ne vain maksavat halvimmillaan runsaat kolmesataa euroa parilta, -mahdollisia kuljetuskuluja ja tulleja huomioimatta, -ja olen köyhä opiskelija, joten en aio hankkia sellaisia ainakaan vielä.</p> - -<p>Olisin kuitenkin paljon halunnut kyseisenlaisen näppäimistön. -Runsas vuosi sitten yritin lievittää pulmaani tilaamalla -Perixx Periboard-524B-näppäimistön. -Näppäimistö on toiminut kiitettävästi, -mutta sen sarakkeet eivät mene suoraan. -Lisäksi näppäimistöllä ei ole mekaanisen näppäimistön hyötyjä. -Muutoin näkemykseni siitä ei ole juurikaan muuttunut sen jälkeen, -kun kirjoitin siitä geminikapselissani [14].</p> - -<p>Epäonnekseni tuhlasin rahaa – pian näppäimistön ostamisen jälkeen julkaistiin parempi vaihtoehto, jonka hankkiminen maksaa suunnilleen saman verran. -Onnekseni voin hankkia sen paremman vaihtoehdon nyt, kun huomasin asian. -Noin 10 kuukautta sitten -eräs suomalainen tietotekniikan opiskelija julkaisi netissä ohjeet juuri tarpeeni täyttävän näppäimistön kokoamiseen. -Näppäimistö on vieläpä suunniteltu juuri budjettiystävällisyys ja kokoamisen helppous mielessä. -Näppäimistön nimi on Silakka54, ja sen kokoamisohjeet löytyvät GitHubista [15]. -Voit nähdä näppäimistön <a href="#fig3">Kuvassa 3</a>. -Oletuksena näppäimistössä ei ole kallistavaa telinettä, -mutta olen jo 3D-tulostanut sellaisen. -Näppäimistöjä on saatavilla valmiiksi koottuina AliExpressistä, -tai näppäimistön voi koota tilaamillaan osilla, -kuten itse aion tehdä aidon vapaan lähdekoodin hengen mukaisesti.</p> - -<figure id="fig3"> - <img src="/img/silakka54.png" alt="Kuva Silakka54-näppäimistöstä"> - <figcaption>Kuva 3. Silakka54-näppäimistö. Kuva on <a href="https://github.com/Squalius-cephalus">Juho ”Squalius-cephalus” T.:n</a> ja se on lisensoitu <a href="/static/silakka54-license.txt">MIT-lisenssillä</a>.</figcaption> -</figure> - -<p>Paremman asettelun lisäksi Silakka54:n hyötyjä ovat helppo muokattavuus, -mekaanisten näppäinkytkinten tuoma tuntuma sekä QMK:n (tai Vialin) avulla muokattava firmware. -Näppäimistöä voi muokata esimerkiksi sisältämään lisää kerroksia -(vrt. AltGr:n pohjassa pitäminen, -mutta eri näppäimen pohjassa pitäminen avaa pääsyn niihin merkkeihin, -joita itse useimmiten tarvitsee), -ja tavallisia näppäimiä voi asettaa toimimaan eri näppäiminä pohjaan painaessa -– esimerkiksi välilyönnistä voi tehdä myös Ctrl-näppäimen.</p> - -<p>Koska näppäimistöasettelu määritellään firmware-tasolla, -voi oman asettelunsa myös ottaa mukaan kaikkialle, -minne näppäimistönsä saa mukaan. -Itse aion hyödyntää tätä esimerkiksi sähköisessä EXAM-tenttijärjestelmässä, -mikäli sallittua, -sillä kyseinen järjestelmä pohjautuu ainoalle yleiselle käyttöjärjestelmälle, -joka ei tarjoa Colemak-näppäimistöasettelua.</p> - - -<p>Lopuksi maininnan ansainnee Thumb-Key, -jota käytän näppäimistönä puhelimellani. -Siinä näppäimet ovat suuremmat (ne ovat 4x4-ruudukossa), -joten niihin on helpompi osua. -Toki kääntöpuolena kaikki kirjaimet eivät mahdu näppäimille, -mutta loput merkit saa kirjoitettua vetämällä oikeasta näppäimestä oikeaan suuntaan. -Pidän isommista näppäimistä, muita perusteluja kyseiselle näppäimistölle en anna.</p> - - -<p>En varmasti ole vielä valmis työskentelytapojeni optimoinnin kanssa. -Tämä antoi kuitenkin katsauksen nykyään käyttämiini olennaisimpiin tekstinsyöttööni vaikuttaviin ratkaisuihin, -niin ohjelmistojen kuin näppäimistöjen osalta. -Ratkaisut ovat kaikki helposti kokeiltavissa, paitsi mahdollisesti Silakka54 – fyysisiä esineitä kun on hankala kokeilla heti netissä. -Kokeilemalla ei menetä mitään ja kärsivällisellä harjoittelulla kokeilu voi olla sekä hyödyllinen että hauska.</p> - - -<h2>Linkkejä ja lähteitä</h2> - -<p> -[1] Vimin dokumentaatio. Vim-ohjelmassa saatavilla komennolla ":help", verkossa <a href="https://vimhelp.org/">vimhelp.org</a><br> -[2] Ks. esim. <a href="https://vimawesome.com/">vimawesome.com</a><br> -[3] Neovimin dokumentaation LSP-serverien konfiguroinnista: <a href="https://neovim.io/doc/user/lsp.html">neovim.io/doc/user/lsp.html</a><br> -[4] <a href="https://distantwriting.co.uk/instruments.html">distantwriting.co.uk/instruments.html</a>, kuva 23<br> -[5] W. A. Burt. Patentti laitteelle Typographer. 1829. United states patent and trademark office. Saatavilla <a href="https://ppubs.uspto.gov/api/pdf/downloadPdf/X005581?requestToken=eyJzdWIiOiJlYTExNzhhMy0xNTExLTQ1YTktOWJjMy0yMzdlYTNkYTM4NzgiLCJ2ZXIiOiIwODRjMTAzOC01ZGVjLTQwNjItOWUwNC05M2VjNzlmZWU1ZjUiLCJleHAiOjB9">ppubs.uspto.gov/api/pdf/downloadPdf/[...]</a>.<br> -[6] Wikipedia: Printing telegraph. <a href="https://en.wikipedia.org/wiki/Printing_telegraph">en.wikipedia.org/wiki/Printing_telegraph</a><br> -[7] Wikipedia, kirjainten esiintyvyys. <a href="https://en.wikipedia.org/w/index.php?title=Letter_frequency&oldid=1295211904">en.wikipedia.org/wiki/Letter_frequency</a><br> -[8] Colemakin verkkosivut: <a href="https://colemak.com/">colemak.com</a><br> -[9] Wikipedia-artikkeli Colemakista: <a href="https://en.wikipedia.org/wiki/Colemak">en.wikipedia.org/wiki/Colemak</a><br> -[10] Colemakin suunnitteluprosessista: <a href="https://colemak.com/Design">colemak.com/Design</a><br> -[11] Colemakin ergonomiset tekijät: <a href="https://colemak.com/Ergonomic">colemak.com/Ergonomic</a><br> -[12] Ergodox Ez: <a href="https://ergodox-ez.com">ergodox-ez.com</a><br> -[13] Voyager: <a href="https://zsa.io/voyager">zsa.io/voyager</a><br> -[14] Geminilokini: ”Perixx budget split keyboard – first impression” <a href="gemini://cron4.fi/gemlog/periboard.gmi">gemini://cron4.fi/gemlog/periboard.gmi</a>, Verkkoportaalin kautta <a href="https://portal.mozz.us/gemini/cron4.fi/gemlog/periboard.gmi">portal.mozz.us/[...]</a><br> -[15] Silakka54 <a href="https://squalius-cephalus.github.io/silakka54">squalius-cephalus.github.io/silakka54</a><br> -</p> - -<br> - -<p> -*MinGW ei tietenkään ole Linux, mutta sen kautta sain ensikosketuksen GNU:n komentoriviohjelmiin.<br> -**Oikeastaan teksti päätyy vain tekstikenttään, josta se sitten usein tallennetaan (kirjoitetaan) tiedostoon. -Usein tekstikentän sisältö myös vastaa kyseisen tiedoston sisältöä välitallennuksia vaille. -Kuitenkaan tekstiä ei suoraan kirjoiteta tiedostoon -kuten ei käytännössä missään tekstinmuokkausohjelmassa. -Tosiasiassa tekstikentän ei tarvitse kuvata mitään tiedostoa, -eikä sen sisältöjä tarvitse kirjoittaa mihinkään tiedostoon.<br> -***Neovim sovelluksena vie vähemmän tilaa kuin Vim.<br> -****Todellisuudessa käytin Svdvorakia, Dvorakin ruotsin kirjoittamiseen tarkoitettua versiota, koska oletus-dvorakista ei löydy ääkkösiäkään, toisin kuin oletus-colemakista.<br> -</p> - </main> - </body> -</html> diff --git a/generated/blog/yksinkertaisesti-monipuolinen.txt b/generated/blog/yksinkertaisesti-monipuolinen.txt deleted file mode 100644 index 8295fd7..0000000 --- a/generated/blog/yksinkertaisesti-monipuolinen.txt +++ /dev/null @@ -1,226 +0,0 @@ - - yksinkertaisesti-monipuolinen.txt - ================================= - -Jos tämä virke ei mahdu 2 riville puhelimesi näytöllä, käännä laitetta, niin lukeminen on helpompaa. - -Tietokoneiden alkuaikoina ihmisen ja tietokoneen -välinen kommunikaatio tapahtui pääosin tekstin -välityksellä. Komentokehotteeseen kirjoitettiin -tekstikomento ja suoritettu ohjelma tulosti käyt- -täjälle yhtä lailla tekstipohjaisen vastauksen. -Kun internet saapui, kommunikoivat ihmiset myös -toistensa kanssa tekstin välityksellä: esimerkik- -si sähköpostit olivat aluksi raakatekstiä. - -Nykyään pelkkään tekstiin (raakateksti, “plain -text”) törmää harvoin ja sitä kavahdetaan. En pie- -nempänä ymmärtänyt edes, mistä raakatekstissä on -kyse. Tietokoneet esittäytyivät minulle word-doku- -menttien, verkkosivustojen ja pdf-tiedostojen -kautta. En tajunnut, että tietokoneissa taustalla -toimii raaempaa tekstiä. Suurin osa muista ikäi- -sistäni ovat varmasti lähteneet samasta käsityk- -sestä, vaikka ovatkin ehkä löytäneet raakateks- -tinkin varttuessaan. - -Teksti on monissa dokumenteissa pääsisältö, mutta -raakatekstin ja verkkosivujen tai pdf-dokumenttien -ero on siinä, että jälkimmäisissä dokumentin suun- -nittelija on vastuussa myös dokumentin ulkoasusta -ja voi lisätä siihen multimediaa. Verkko-ohjel- -moija suunnittelee verkkosivun ulkoasun ja lisää -sille videoita, ja word-dokumentin kirjoittaja -muuttaa dokumentin fonttia ja lisää siihen kuvia. - -Raakatekstissä mikään tästä ei ole mahdollista. -Raakatekstiä on se, mitä Windows-käyttäjä kirjoit- -taa Notepadiin. Raakatekstistä koostuu myös tämä -blogipostaus. - -Ohjelmistotasolla raakateksti koostuu tavuista, -joista jokainen vastaa tiettyä merkkiä. Nykyään -käytännössä kaikki raakateksti noudattaa UTF-8 --standardia, joka määrittelee tavujen ja merkkien -vastaavuudet. 01000001 vastaa isoa A:ta, 01000010 -isoa B:tä, 0011 1111 kysymysmerkkiä ja niin edel- -leen. Jotkin merkit koostuvat useammasta tavusta, -koska kahdeksan nollaa tai ykköstä ei riitä esit- -tämään kaikkia merkkejä — näin jopa emojeille löy- -tyy tuki UTF-8 -tekstistä, mikäli fontti sallii🥳 - -Käyttöön raakateksti pääsee nykyään harvoin — jopa -yksinkertaiset muistiinpanot kirjoitetaan esimer- -kiksi Google Docsiin. Se on harmillista, koska -raakatekstillä on ominaisuuksia, jotka tekevät -siitä monissa tapauksissa käyttökelpoisempaa kuin -mistään muusta datan muodosta. - -Raakatekstin kaksi suurinta hyötyä ovat sen yksin- -kertaisuus ja kaikkialla toimivuus. Tekstin for- -maatista vallitsee suurempi yksimielisyys kuin -muiden formaattien osalta ja se on yksikäsittei- -sempää. - -Edellä mainittujen ominaisuuksiensa ansiosta -raakateksti toimii mainiosti tietokoneohjelmien -kanssa kommunikointiin ja niiden välillä tapahtu- -vaan tiedonvaihtoon. On helppoa kirjoittaa -ohjelma, joka lukee tekstiä. Ohjelma tietää mitä -se lukee, koska teksti on hyvin standardisoitua. -Lisäksi se saa datan puhtaana — sen ei tarvitse -eritellä sille olennaista informaatiota ympäröi- -västä ihmissilmälle tarkoitetusta esitystapaa kos- -kevasta informaatiosta kuten tekstin sijainnista -tai fontista. - -Tämä mahdollistaa tekstipohjaisten ohjelmien käy- -tön tehokkaaseen tiedon muokkaamiseen, “skriptaa- -miseen”. Otetaan esimerkiksi aloitus- ja lopetus- -puheiden koostaminen. Miksaan välillä Lohjan seu- -rakunnan messuja ja lähetän ne radioon. Lähetysten -alkuun ja loppuun lausutaan lyhyet ns. spiikit, -jotka koostan aluksi tekstinä. Tykkään kerätä -spiikkien muuttuvat tiedot edellisen päivän iltana -puhelimeeni tekstitiedostoon, ja kun tulen aamulla -kirkolle, kirjoitan vain tietokoneella: - - $ nc -l 1234 >> Desktop/Spiikit/2020-01-01.txt - -ja puhelimellani - - $ nc 10.10.16.231 1234 < infot.txt - -ja olen näin saanut liitettyä tarpeelliset tiedot -puhelimeltani oikeaan tiedostoon seurakunnan -tietokoneella. Mikään tästä ei toimisi — ainakaan -läheskään yhtä hyvin — jos käyttäisin raakatekstin -sijaan vaikkapa `.docx`-dokumentteja. Erilaisia -tekstipohjaisia ohjelmia voi yhdistellä vielä -käyttökelpoisemmin ja monipuolisemmin: Wikipedi- -asta löytyy hyvä esimerkki [1] (linkki dokumentin -lopussa). - -Pelkän tekstin mukana ei myöskään tule turhaa tie- -toa, kuten fonttia, tekstin väriä, videoita tai — -raakatekstiin keskittyvien protokollien yhtey- -dessä — evästeitä. Lukijan ei siis tarvitse odot- -taa, kun verkkosivu lataa kymmenien megatavujen -kokoista videota hipstereistä hyppimässä kännyköi- -densä kanssa (ks. `https://agt.fi`) ja miettiä, -mistä hän saisi paremman nettiliittymän tai kirota -esimerkiksi VPN:n tai Tor-verkon hitautta. Sen -sijaan hän pääsee lähes välittömästi muutaman -(kymmenen) kilotavun kokoisen, hänen kannaltaan -olennaisen tekstisisällön pariin. Resursseja -säästyy ja joidenkin mielestä tiedonsaanti on näin -myös mukavampaa. - -Raakateksti on tehokasta tietojenkäsittelyssä, -mutta mitä tapahtuu, kun päättää tietoisesti käyt- -tää sitä osuvamman formaatin sijaan? Mitä käy esi- -merkiksi, kun kirjoittaa blogipostauksen pelkällä -tekstillä verkkosivuilla tavallisesti käytetyn -HTML-merkintäkielen sijaan? - -HTML:n käyttäminen tarjoasi mahdollisuuden lisätä -tekstiin linkkejä ja kuvia. Lisäksi se tarjoaa -tavan viestittää dokumentin eri osia — koodissa -lukee, mikä osio on tarkoitettu valikoksi, mistä -löytyy pääsisältö ja mikä sen sisällä on otsikko -ja mikä taas alaotsikko. - -Kuten rajoitteiden kanssa yleensä käy, pakottaa -pelkän tekstin käyttäminen kirjoittajan ylittämään -formaatin asettamat rajoitukset ja kannustaa näin -luovuuteen. Jos tekstidokumenttiin tahtoo lisätä -linkin, täytyy se kirjoittaa auki. Voin esimer- -kiksi kertoa, että HTML:n standardi löytyy osoit- -teesta `https://www.rfc-editor.org/rfc/rfc2854`. -Linkin auki kirjoittamisesta on yllättävää -hyötyä: lukija näkee välittömästi minne se vie. -Lisäksi se toimii, vaikka dokumentin tulostaisi -paperille. - -Kuvien välittäminen tekstin kautta taas on luonut -kokonaisen taiteen alan, nimittäin ASCII-taiteen. -Siinä kuva esitetään raakatekstin tarjoamien merk- -kien puitteissa. Yksinkertaisia kaaviokuvia on -tietyissä tapauksissa varsin helppokin piirtää: - ________________________________ - | | - | H H H CH3 | - | | | | \ | - | H - C - C - C - OH C = O | - | | | | | | - | H H H OH | - |________________________________| - Propanoli ja etaanihappo - _____________________ - | _ | - | v | - | ---------> | - | | - | ^ _ | - | | N | - | | | - | | | - | ___|___ | - | | | | - | _ <--| | | - | Fµ | | | | - | _____|___|___|_____ | - | | _ | - | | G | - | v | - |_____________________| - Liukuva kappale - - (huom. kuvien näkemiseksi selaimesi on käytettävä - tiedoston näyttämiseen tasavälistä fonttia) - -Kaaviokuvien lisäksi on myös ASCII-taidetta, jossa -paino on nimenomaan sanalla 'taide'. Netistä löy- -tyy paljon ASCII-taiteen kokoelmia, esimerkiksi -osoitteesta `https://www.asciiart.eu` ja -`https://ascii.mozz.us:7070`. - -Tekstin arvaamattoman kauneuden, sen tehokkuuden -ja vähän turhan informaation vuoksi internetissä -on syntynyt uusia yhteisöjä ja protokollia raaka- -tekstin ympärille. Ylläpidän itse esimerkiksi -geminikapselia osoitteessa -“gemini://gemini.jorl.fi”. Geminin kuvauksen -ensimmäinen lause on vapaasti suomennettuna: -“Gemini on uusi, yhteenlinkitettyjä tekstidoku- -mentteja tukeva internet-teknologia.” [2] Muitakin -protokollia ja yhteisöjä on, joista hyvän otoksen -saa esimerkiksi Michael Lazarin kotisivujen etusi- -vulta `https://mozz.us`. - -Lopulta on myös huomioitava, että käytännössä -kaikki tietokoneohjelmat kirjoitetaan raakateks- -tinä. Projektieni tiedostot ovat luettavissa -netissä tekstinä. [3] (Ja kuka kirjoittaisi tieto- -koneohjelmia Wordilla? Siitä on olemassa jopa -satiirinen Youtube-video! [4]) Suuri osa tiedonvä- -litysprotokollista on määritelty raakateksti -lähtökohtana. Raakateksti siis muodostaa tietoko- -neiden ja laskennan selkärangan. - -Jos tahdomme oppia käyttämään tietokoneita tehok- -kaammin ja sulavammin, tulisi raakatestistä ja -sen käsittelystä siis tehdä normi eikä pelottavien -hakkerien tapa. Näin myös ymmärtäisimme paremmin -tietokoneita — ja ehkä löytäisimme osan tekstin -kadotettua kauneutta. - - - Viitteet - -------- - -[1] https://en.wikipedia.org/w/index.php?title=Pipeline_(Unix)&oldid=1219096916#Example -[2] https://geminiprotocol.net - gemini://geminiprotocol.net -[3] Esim. https://jorl.fi/git/stdu/Makefile -[4] https://www.youtube.com/watch?v=X34ZmkeZDos |
