lauantai 14. helmikuuta 2009

µTorrentin niksit

Päätin kirjoittaa oppaan torrentti-järjestelmästä (yhteyskäytännön nimi on BitTorrent) ja erityisesti yhdestä ohjelmasta. Useimmat fansubbaajat käyttävät torrentteja pääasiallisena jakelukanavanaan (muitakin on käytössä). Torrentit ovat muutenkin nykyään erittäin suosittuja ja järjestelmä on minusta muutenkin hyvä. µTorrent (aka uTorrent, lausunta vaihtelee) on siitä hieno ohjelma, että aloittelijakin oppii käyttämään sitä nopeasti. Yksinkertaisen ulkokuoren alta löytyy kuitenkin joitain hyödyllisiä ominaisuuksia, jotka nyt esittelen. En laadi tätä ohjetta ihan aloittelijoille, mutta yritän olla ymmärrettävissä.

Miksi juuri µTorrent? Onhan näitä muitakin ohjelmia, kuten Vuze (aiemmin Azureus), BitTorrent ja BitComet Windowsille sekä Deluge, KTorrent ja Transmission Linuxille (clienttejä voi vertailla täällä). Ehkä niistä löytyy omat hyvät puolensa, mutta en ole kokenut tarvetta vaihtaa ohjelmaa. µTorrent edustaa minulle yksinkertaisuuden ja monipuolisuuden harvinaisen onnistunutta liittoa. Ohjelma ei oikeastaan edes tarvitse laajennuksia tai eri versioita. Olen avoimen lähdekoodin kannattaja, mutta jostain syystä tämän ohjelman suljettu koodi ei häiritse minua. µTorrentin arvioidaan olevan tällä hetkellä maailman suosituin BitTorrent-ohjelma, joten ehkä se on liian valtavirtaa joillekin... Uusin versio tällä hetkellä on 1.8.2 ja ohjelman voi ladata täältä.

Peruskäsitteet
Torrentti-järjestelmään liittyy paljon käsitteitä, jotka aiheuttavat aloittelijoille päänvaivaa. Tärkeimpiä käsitteitä ovat torrentti, trakkeri (= seurantapalvelin), P2P (= peer-to-peer) clientti (= asiakasohjelma), seeder (= jakaja), leecher (= lataaja, saanut negatiivisen merkityksen), peer (= toinen lataava asiakasohjelma), swarm (= parvi, kaikki tunnetut käyttäjät), ratio (= jakosuhde), hash (= tiedostosta laskettu "tunniste"), osa (tiedostot koostuvat osista), announce (= clientti antaa ja saa tietoja trakkerilta) ja scrape (= pikapäivitys palvelimelta). Selitän keskeisimmät käsitteet nyt tarkemmin.

Torrentti: Pieni tiedosto, joka sisältää kaiken varsinaisiin tiedostoihin liittyvän informaation (ns. metadata) sekä trakkerien osoitteet. Jokaisesta tiedostosta on tallennettu nimi, koko ja jokaisen osan tarkistussummat. Tarkistussummien avulla voidaan varmistua, että tiedosto saadaan siirrettyä virheettömästi. Onnistuneesti siirretty tiedosto on siis täysin korruptoitumaton. Puheessa termillä viitataan usein varsinaisiin tiedostoihin.

Trakkeri: Suomeksi seurantapalvelin. Sekoitetaan toistuvasti torrenttien hakusivuihin ja listoihin, mutta on hieman eri asia. Monet hakusivut toimivat kylläkin myös trakkereina. Trakkeri pitää kirjaa torrentteja lataavista ja jakavista käyttäjistä. Erityisen tärkeässä asemassa trakkerit ovat latausta aloitettaessa. Hyvin toimiva trakkeri pitää asiakaslistaansa ajan tasalla ja on aina päällä. Harmittavan suuri osa trakkereista toimii kuitenkin huonosti, mistä syystä on kehitetty mm. DHT ja PEX (käyttäjen vaihto). DHT mahdollistaa trakkerittoman käyttäjien etsinnän ja on nykyään tärkeässä asemassa. Trakkerit voivat olla myös yksityisiä (private), jolloin käyttäjän on rekisteröidyttävä niitä käyttääkseen. Näillä trakkereilla/sivustoilla on useimmiten uusimmat tiedostot ja parhaat nopeudet.

Siinä tuli monelle varmasti paljon vaikeita termejä. Lisäksi on hyvä tietää jotain peruskäsitteitä verkoista, kuten IP-osoite, portti, reititin, NAT, enkryptaus, paketti ja protokolla. Lisätietoja voi katsoa vaikka Wikipediasta tai µTorrentin mukana tulleesta (englanninkielisestä) ohjeesta. Siirrytään nyt itse ohjelmaan.

µTorrentin ominaisuuksia
  • Kevyt - Pienikokoinen ja toimii vanhemmillakin alustoilla.
  • Suomenkielinen - Kielipaketti tulee mukana.
  • Suorituskykyinen - Toimii (useimmiten) tehokkaasti.
  • Paketoitavissa - Saa laitettua vaikka muistitikulle.
  • RSS-lataaja - Uudet julkaisut suoraan lataukseen.
  • DHT - Peerien haku ilman trakkeria.
  • Sulautettu trakkeri - Korkeintaan satunnaiseen käyttöön.
  • Cache - Välimuisti tehostaa tiedostojen käsittelyä.
  • Valittavat tiedostot - Ei tarvitse ladata kaikkea välittömästi.
  • Tilanvaraus - Varaa suoraan tiedoston vaatiman tilan (ei pirstaloitumista).
Muitakin ominaisuuksia löytyy, kuten: PEX (käyttäjien vaihto), PE (protokollan salaus), LPD (paikallinen käyttäjien haku), UPnP (reitittimen porttien aukomiseen), NAT-PMP (suunnilleen sama kuin edellä), HTTPS-trakkerit, UDP-trakkerit, Web-lähteet (palvelimella olevan tiedoston voi ladata protokollan avulla), Initial seeding (silloin kun on vain yksi jakaja ja useampi lataaja), Proxy-tuki, Unicode, labelit (eli nimikkeet), nopeusrajat, priorisointi, ajastin, hakupalkki, skinit, torrenttien luontivelho, torrentin avaus URL:sta, IP-bannit (erilliseen tiedostoon), Magnet-osoitteet, WebUI (etähallintaan), automaattinen päivitys ja piilotettu tetris ('t'-näppäin Tietoa-ikkunassa). Keskityn alla muutamaan hyödylliseen toimintoon. Tämä opas paisuu liiaksi, jos yritän kaiken selittää.

Asetukset kuntoon
Harkitsin kirjoittavani yksityiskohtaisemman oppaan asetusten säädöstä, mutta totesin sellaisen turhaksi. Ohjelma toimii varsin hyvin myös oletusasetuksilla. Mainitsen nyt asiat, joiden säätämisestä voi olla hyötyä. Automaattisen käynnistymisen ja käyttöliittymän toiminnan voi asettaa omien mieltymysten mukaiseksi. Torrent-tiedostoille voi olla paikallaan asettaa jokin järkevämpi tallennuspaikka, jotta ne löytää tarvittaessa. Lataukset voi pistää automaattisesti tallentumaan johonkin kansioon (tallennuspaikkaa kannattaa oikeasti miettiä). Latausnopeuksia ja yhteyksien enimmäismääriä kannattaa säätää tilanteen ja kaistannopeuden mukaan. Sama pätee myös aktiivisten torrenttien määrään. En näe järkeä tukkia koko kaistaa, jos sitä on tarkoitus käyttää muuhunkin. Nopeuden säätämisessä voi auttaa myös ajastin. Liikenne ei ole oletuksena salattua, mutta vainoharhaiset voivat laittaa pakotetun salauksen päälle (eipähän urkkijat saa selvää liikenteestä). WebUI on selaimen kautta käytettävä käyttöliittymä. Se on kätevä, jos haluaa hallita latauksia jostain toiselta koneelta. Ei vaadi muuta kuin asetukset kohdilleen ja sitten selaimella osoitteeseen http://[koneen ip]:[portti]/gui/. Ohjelmaan voi määrittää omia hakukoneita. Turhia ominaisuuksia voi kytkeä pois päältä kaistaa kuluttamasta (LPD, UPnP...). Säätämisestä pitäville löytyy sitten lisää kaikenlaista kivaa, mutta eiköhän noilla pärjää jo aika pitkälle.

Käyttöliittymän muokkaus
Selostan lyhyesti käyttöliittymän käyttöä omien kokemuksieni kautta. Olen havainnut nimikkeet erittäin käteviksi suurten torrenttimäärien (>100) ryhmittelyssä. Torrentit tulee useimmiten ryhmiteltyä niiden tilan mukaan (useamman ryhmittelyehdon valinta vaihtonäppäin pohjassa). Omasta mielestä turhat kentät kannattanee poistaa näkyvistä. Punaiset kuvakkeet tarkoittavat yleensä sitä, ettei trakkeriin saada syystä tai toisesta yhteyttä. Ponnahdusvalikosta löytyviä pakotettua aloitusta, pakotettua uudelleentarkistusta ja latauskansion asetusta tulee käytettyä aika usein. Joskus voi tulla tarve poistaa ylimääräisiä torrentteja, mutta on aika turha poistaa valmistuneita. Alaikkunasta välilehdeltä Yleiset näkee hyödyllisiä lisätietoja. Palvelimet-välilehdellä näkee käyttäjähakujen tilan. Käyttäjät-välilehdellä näkee mm. muiden käyttäjien IP:t ja tiedot heidän edistymisestään. IP-osoitteiden bloggaaminen vaatii erillisen tiedoston (ipfilter.dat) luontia ohjelman kansioon. Tiedostot-välilehdellä voi aukoa tiedostoja suoraan, mikä on hyvin kätevää. Muut välilehdet eivät ole kovinkaan kiinnostavia. Alapalkki sen sijaan on hyvinkin kätevä, kuten myös ilmoitusalueella oleva kuvake. Ohjelmassa on myös läjä näppäinkomentoja, joita voi halutessaan opetella. Ajan mittaan käyttöliittymää ja ominaisuuksia oppii käyttämään tehokkaammin.

Lisäohjeita

RSS-lataus
Tämän ominaisuuden avulla voi laittaa uudet torrent-julkaisut latautumaan automaattisesti. Myös manuaalinen lataaminen on mahdollista ja se onkin oletuksena päällä. Otetaan esimerkiksi BRF:n julkaisujen automaattinen lataus. Lisätään BRF:n nykyisen trakkerin syötevirta µTorrenttiin ja mennään lomakkeelle nimeltä "RSS-lataaja" (vaikka Ctrl+R). Jos ei halua ladata kaikkia tiedostoja, voi laittaa päälle suodattimia. Esimerkiksi, jos haluaa pelkkiä Chi's Sweet Homeja voi laittaa "Hae"-kohtaan vaikkapa *Chi* (tähti tarkoittaa mitä tahansa merkkijonoa - jopa tyhjää). Kaikki tiedostot ladataan siis laittamalla pelkkä tähti. Voidaan määrittää myös enemmän ehtoja laittamalla palkki | ehtojen väliin. Asetetaan vielä latauskansio ja muut asetukset sopiviksi niin ollaankin valmiita. Nyt pitäisi ohjelman osata hakea ehtojen mukaiset julkaisut automaattisesti, kun sellaisia ilmestyy.

Seedaus
Tämä tuntuu olevan aivan liian vaikeaa monille. Kaikki eivät ole sisäistäneet torrentti-järjestelmän elinehtoa: pitää jakaa vähintään niin paljon kuin lataa. Se ei ole vaikeaa. Tarvitsee yleensä vain jättää ohjelma päälle ja tiedostot samaan kansioon. Jos tiedostot pitää siirtää välttämättä jonnekin muualle, kopioikaa ne mieluummin. Olen havainnut, että edistyneemmät käyttäjät noudattavat jako-ohjetta paremmin kuin muut. Edistyneimmät käyttäjät käyttävät enimmäkseen privaattitrakkereita, joissa onkin jo lähes pakko jakaa paljon. Hyvästä jakosuhteesta saa itselleen hyvän mielen ja muiden lataajien kiitollisuuden. "Liiskaajia" (= huonosti jakavia) halveksutaan monissa piireissä. Vaikka enemmistö käyttäytyisi hölmösti, voi itse olla se hyvä tyyppi joka pitää torrentit hengissä (inhoan ylipäätään massan mukana kulkemista). Kaikkia torrentteja ei tarvitse välttämättä jakaa saman verran. Itse tulee jotkut tapettua ennen yhden ratiota, kun taas joissain toisissa jakosuhde on toistakymmentä. Kokonaisrationi on nykyään lähes kaksi (huomatkaa, että minulla on tavallinen hidas nettiyhteys). Voi vaikkapa valita muutamia omasta mielestä seedausta tarvitsevia torrentteja ja jakaa sitten niitä.

µTorrent sisältää paljon jakamista helpottavia ominaisuuksia. Ohjelma ei pakota käyttäjää jakamaan, vaan jakamisesta päättäminen on käyttäjän vastuulla. Jokaiselle torrentille voi asettaa saman lataussuhteen ja laittaa torrentin pysähtymään sen saavutettuaan. Myös jakoaikaa voi käyttää kriteerinä tai asettaa jokaiselle torrentille omat tavoitearvonsa. Näistä ehdoista on lähinnä se hyöty, että näkee jäljellä olevan ajan. Ei niistä tarvitse välittää, jos ei halua. Ohjelmalla on kohtuullisen helppo jakaa muualta ladattuja tiedostoja. Tarvitsee vain laittaa tiedostot oikeaan paikkaan ja joissain tilanteissa pakottaa uudellentarkistus. Väärin nimetyt tiedostotkaan eivät haittaa paljoa, koska ohjelmalle voi kertoa uuden nimen. Aktiiviselle seedaajalle löytyy myös muita hyödyllisiä ominaisuuksia ja säädettäviä asioita, mutta en nyt käy kaikkia läpi.

Haluaisitko seedata, mutta se ei jostain syystä onnistu? Tämä on melko yleinen ongelma. Jos ohjelman alapalkissa näkyy vihreä kuvake, ei ongelmia pitäisi olla, mutta muussa tapauksessa kaikki ei toimi. Ongelma on siinä, etteivät muut käyttäjät voi ottaa yhteyttä koneeseen verkon ulkopuolelta eikä mm. DHT oikein toimi. Syy on yleensä lähiverkossa käytettävässä NAT:ssa tai koneen palomuurin asetuksissa. Jos verkossa on reititin, on siihen määritettävä portinohjaukset kuntoon. En nyt kirjoita itse yksityiskohtaisia ohjeita, mutta esim. µTorrentin ohjetiedostossa on loistava opas tähän (nimellä Port forwarding). Reitittimien konfigurointia voi tutkia vaikka täällä. Ihmisillä on tapana ummistaa silmänsä tälle ongelmalle, koska he pystyvät lataamaan tiedostoja edes jotenkin (pystyvät siis ottamaan yhteyttä muihin käyttäjiin). Korjaaminen kuitenkin kannattaa, eikä se loppupeleissä ole edes hirveän vaikeaa.

Paketointi
Kokeneemmatkaan käyttäjät eivät ehkä ole tietoisia tästä hyödyllisestä "ominaisuudesta". Asentajat varmaan huomasivat, miten kivuttomasti µTorrent asentui. Ohjelma tarvitsee hyvin vähän ulkopuolisia tiedostoja eikä edes kirjoita mitään tärkeää rekisteriin, minkä ansiosta se on helpohkoa asentaa esim. Linuxiin tai muistitikulle. Ohjelman tiedostot sijaitsevat kahdessa paikassa: Ohjelmat-kansiossa ja käyttäjäkohtaisessa kansiossa %AppData%\uTorrent. Ensimmäisessä on yleensä vain suoritettava .exe-tiedosto ja jälkimmäisessä mm. asetustiedostot, opas ja torrentit (jos niille ei ole muuta paikkaa määritetty). Nämä kaikki voi länttäistä samaan kansioon ja siinä se käyttövalmis paketti sitten jo onkin. Voi olla kätevä monessa tilanteessa. Tämän avulla voi esim. aukaista toisen ohjelmaikkunan parametrilla /RECOVER. Periaatteessa voisin laatia valmiiksi konffatun version ohjelmasta, jos joku ilmoittaa haluavansa sellaisen.

Siinä olivatkin mielestäni tärkeimmät asiat ohjelmasta. Täällä näyttäisi olevan hieman hyödyllistä lisätietoa. P2P:hen liittyy paljon muitakin asioita, joten saataan kirjoittaa samasta aihepiiristä myöhemminkin. Kysykää, jos haluatte lisätietoja jostain. Tarkoituksella kirjoitin tämän hieman pintapuolisesti, koska muuten olisi tullut aivan liian pitkä teksti. En ole vielä päättänyt, mistä seuraavaksi kirjoitan. Jokohan naputtaisin jotain Japanista vai jatkanko opas-linjalla? Toiveita saa aina esittää.

maanantai 9. helmikuuta 2009

Merkistöt

Hymiöviestini jälkeen aloin miettiä tarkemmin erikoismerkkien käyttöä. Aika vähän on tullut itse käytettyä muita kuin suoraan näppäimistöstä löytyviä merkkejä. Erikoisemmat merkit, joita olen tarvinnut, olen poiminut käyttöjärjestelmien ja tekstinkäsittelyohjelmien mukana tulevista merkkilistoista tai muualta. Useat merkit on kuitenkin helpompi ja nopeampi kirjoittaa käsin. Käyn nyt ensin läpi hieman länsimaisia ja japanilaisia merkistöjä. Sitten kerron hieman syventäviä ohjeita erikoismerkeistä. Varoitus: osa tekstistä voi mennä yli hilseen.

Kuivaa teoriaa
Vielä nykyäänkin on runsaasti käytössä "8-bittinen ASCII", jolla voidaan esittää 256 eri "merkkiä" (kaikki eivät ole tulostuvia - ns. kontrollimerkit). Oikeastaan yhtenäistä standardia ei ole olemassakaan, vaan merkkiasettelusta käytetään eri variaatioita (mm. ISO 8859-1 aka Latin-1). Windowsin vanhempia merkistöjä kutsuttiin nimellä "ANSI-koodisivut" ja tunnetuin oli (ei-standardi) Windows-1252, joka on pääosin yhteensopiva standardin ISO 8859-1 kanssa. Huomionarvoista on että Windows-version merkit 128-159 ovat tulostuvia, kun ne standardissa ovat kontrollimerkkejä. Uudistettu versio standardista on ISO 8859-15 (aka Latin-9), joka lisäsi muun muassa tuen €-merkille. Yhteistä näille kaikille merkistöille on, että 127 ensimmäistä merkkiä ovat samoja (standardi 7-bittinen ASCII). Noihin ensimmäisiin merkkeihin eivät sisälly mm. meidän ääkkösemme, mistä syystä ne aiheuttavat ongelmia monessa tilanteessa.

Koska vanhemmat merkistöt eivät olleet useinkaan yhteensopivia eikä niillä voitu esittää kaikkia merkkejä, kehitettiin standardi nimeltä Unicode. Unicode määrittää jokaiselle merkille yksiselitteisen tunnisteen muotoa U+[heksadesimaaliluku kuten 20AC]. Nykyään suositellaan käytettäväksi Unicodea aina kuin mahdollista ja useimmat ohjelmat sekä käyttöjärjestelmät sitä tukevatkin.

Tunnetuimmat Unicoden merkistökoodaukset ovat UTF-8 ja UTF-16. UTF-8:ssa parasta on, että se on täysin yhteensopiva perinteisen ASCII:n kanssa. Tarvittava tavumäärä vaihtelee merkin mukaan. Merkit 128-255 on kopioitu ISO 8859-1:stä ja tarvitsevat kaksi tavua, kun 8-bittisissä järjestelmissä riittää yksi. Tämä aiheuttaa ongelmia, jos koodaustapa ei ole ohjelman tiedossa (esim. ääkköset näyttävät kummilta). UTF-8 on onneksi helppo tunnistaa toisin kuin vanhemmat koodaukset. Muista koodauksista merkittäviä ovat UTF-16 ja sen edeltäjä UCS-2, jotka käyttävät vähintään kaksi tavua jokaisen merkin esittämiseen. Unicodeen liittyy usein myös termit BOM sekä little/big endian, jotka tarkoittavat tavujärjestystä (hieman hankala selittää eikä sillä tiedolla yleensä tee mitään). Nykyisessä Unicoden versiossa 5.1 on jo yli 100 000 merkkiä.

Japanilainen merkistö
Oli tarkoitus naputtaa erillinen blogikirjoitus japanin kirjoitusjärjestelmästä, mutta voin saman tien laittaa asiat lyhyesti (muutenhan tämä blogiviesti menee ihan aihepiirin ohi). Itse en edelleenkään osaa japania enempää kuin on päähän ponnistelematta tarttunut.

Monet varmaan tietävätkin jo, että japanissa on käytössä neljä kirjoitusmerkistöä: katakana, hiragana, kanjit ja neljäntenä latinalaiset kirjaimet (kutsuvat nimellä rōmaji). Hiragana ja katakana ovat tavumerkistöjä, joissa molemmissa on 46 erilaista merkkiä. Kiinasta aikoinaan varastettuja kanjeja puolestaan on laskettu olevan japanin kielessä noin 50 000 (tosin parilla tuhannella pärjää). Japanilaiset merkit voidaan romanisoida esim. Hepburn-järjestelmällä (tässä suomalainen transkriptio). Enemmän tietoa japanin kirjoitusjärjestelmästä löytää vaikkapa täältä ja täältä.

Japanissa käytettävistä koodauksista minulla ei ollut etukäteen paljoakaan tietoa. Tutkin asiaa ja vaikuttaisi tuo UTF-8 olevan nykyään laajasti käytössä sielläkin, vaikka alkuun sitä vastustettiinkin. Kanjit on Unicodessa ainakin osittain yhdistetty kiinalaisiin merkkeihin, mikä on ollut ongelmallista. Aiemmin käytössä oli mm. JIS-standardit, EUC-JP, ISO-2022-JP ja erityisesti Shift JIS. En ota oikein selkoa niiden eroista ja toiminnasta, joten ei enempää niistä.

Monissa käyttöjärjestelmissä, kuten Windows XP, eivät japanilaiset merkit näy oletuksena. Se johtuu siitä, ettei mukana tulevissa fonteissa ole kuvia merkeille. Tuolla on ohjeet laajennettujen fonttien asennukseen. Japanilainen näppäimistö näyttää yleensä tältä. Japanilaisia merkkejä voidaan kirjoittaa myös tavallisella näppäimistöllä. Osoitteesta KanjiKaveri.net löytyy selkeä ohje tähän. Tekstiä kirjoitetaan Hepburn-järjestelmän mukaan ja se sitten muuttuu kanoiksi ja IME:n (Input Method Editor) avulla saadaan aikaan kanjeja – helppoa ja hauskaa. Alkoi itseänikin taas kiinnostaa japanin opiskelun aloittaminen.

Erikoismerkit
Nyt osaamme jo kirjoittaa japaniakin, vaikka alkuperäinen ajatukseni oli tutkailla hieman länsimaisia erikoismerkkejä. Useimmat osaavat varmasti kirjoittaa näppäimistössään näkyvät merkit. Esimerkiksi tilde ~ kirjoitetaan painamalla AltGr+[enterin vieressä oleva näppäin] ja sitten välilyöntiä (AltGr ylhäällä). Samalla tavalla osan merkeistä saa helposti laitettua toisten merkkien päälle: óòöôõ. Näitä kutsutaan tarkkeiksi. Jokaisella merkillä on oma tunnistekoodinsa. Miksi sitten käyttää koodeja, kun voi kopioida taulukosta tarvitsemansa merkit? Mainitsin jo alussa, että koodien käyttö on nopeampaa ja helpompaa. Voi vaikka opetella joidenkin hyödyllisten merkkien koodit ulkoa, jolloin ne on nopea kirjoittaa tarvittaessa.

Näppäimistössä ei näy läheskään kaikki merkit. Esimerkiksi ISO-8859-1 sisältää myös muita mielenkiintoisia merkkejä. Windows-järjestelmissä on helppo tapa kirjoittaa nämä merkit: painetaan Alt pohjaan ja näppäillään erillisestä numeronäppäimistöstä luvun desimaalikoodi. Nyt joudutaan valitettavasti tarkemmin tekemisiin "koodisivujen" kanssa. Kokeilkaa itse: näppäilkää Alt+169 ja Alt+0169. Tässä tuli ® ja ©. Miksi ei tullut samat merkit? Nollan lisääminen eteen kertoo noita merkkejä kääntävälle ohjelmalle, että nyt käytetään Windowsin ANSI-koodisivua (yleensä 1252) ja ilman nollaa käytetään jotain muuta koodisivua (yleensä 850). Huomatkaa, että Windows-1252 sisältää ISO-8859-1:een kuulumattomia merkkejä välillä 128-159. Se aiheuttaa hieman yllättäviäkin ongelmia joskus, mutta yleensä nämäkin toimivat oikein.

Linux-puolella tuo Alt-kikka ei yleensä toimi, mutta siellä saattaa toimia parempi vaihtoehto: Ctrl+Shift+U ja sitten heksakoodi+välilyönti. Toimii jokaisessa Ubuntussa testaamassani ohjelmassa (en tiedä tuesta muilla alustoilla). Mac-koneista ei ole omaa kokemusta jaettavaksi. Huomatkaa, että Unicode-koodit kirjoitetaan yleensä heksadesimaalimuodossa, mutta joskus myös kymmenjärjestelmässä (muunteluun kelpaa vaikka tämä). Unicode-taulukko löytyy esim. täältä tai voi käyttää käyttöjärjestelmän mukana tullutta (Ubuntussa selkeämpi kuin Windowsissa).

Joissain ohjelmissakin on tuki Unicode-merkkien käsinkirjoitukseen. Esimerkiksi Windowsin WordPad:ssa ja MS Word:ssa voidaan kirjoittaa merkkikoodi (siis heksaosa) ja sen jälkeen painaa Alt+x, jolloin se muuttaa koodin merkiksi. Näissä toimii myös Alt + numeronäppäimistöstä Unicoden desimaaliarvo (ei toimi oikein muualla). Vim-editorissa Unicode-merkit kirjoitetaan Ctrl-v u ja heksadesimaalikoodi. Kaikki laajempia tekstinkäsittelyohjelmia (MS Word, OOo...) käyttäneet ovat varmaan huomanneet, että ne muuntelevat automaattisesti ja komennettuna joitain merkkejä. Tämäkin on ihan kätevää joskus, ja näitä muutoksia voi itsekin määrittää.

Tällä hetkellä eletään kiintoisia aikoja, koska uusi suomalainen näppäimistöasettelu on aivan nurkan takana. Se on laajennus nykyiseen näppäimistöasetteluun ja tuo paljon "uusia" merkkejä helposti saataville. Asettelua on päässyt kokeilemaan jo muutaman vuoden, mutta vasta nyt se on valmis ja varmaan lähiaikoina tulossa uusiin näppäimistöihin. Tästä kuvasta näkee sen tuomat uudistukset. Tarkkeita tulee lisää 12 ja lisäksi mm. astemerkki ja sitova välilyönti. Mielestäni merkittävin uudistus on ehkä ajatusviivan helpompi kirjoitus (AltGr+[viivanäppäin] riittää jatkossa).

Itse asiassa joissain käyttöjärjestelmissä on aiemminkin voitu ottaa käyttöön "compose-näppäin", jonka avulla voidaan yhdistää erikoismerkkejä näppäinyhdistelmiin. Vanhemmassa Ubuntussa (7.10) vaikuttaisi olevan sellainen oletuksena päällä, kun huomasin AltGr:n avulla saavani aikaan paljon erikoismerkkejä. Löysin tällaisen kuvan, joka vastaa suunnilleen tulosta. Tämä asettelu on jossain määrin yhteensopiva uuden kotimaisen kanssa, mutta vielä kattavampi. Testasin vielä uusimmalla versiolla (8.10) ja siinä vaikuttaisi oletuksena olla päällä tuon uuden kotimaisen mukainen asettelu. Linux on selvästi edelläkävijä merkistöasioissa.

On selitettävä vielä muutama käsite ja lähestymistapa, jotta hengentuotteeni on täydellinen. Yleensä ottaen rakenteisissa dokumenteissa (XML, HTML...) voidaan kirjoittaa erikoismerkit koodien tai niiden nimien avulla (jossain käytetään nimitystä entiteetti). HTML:ssä (ilman välejä kirjoitetut) merkinnät & # 165; & # xa5; ja & yen; tuottavat saman ¥-merkin. Heksadesimaalimuoto ilmoitetaan x:llä ja voidaan kirjoittaa myös vaikka & # x00A5;. Muista järjestelmistä esim. LaTeX on loistava erityisesti hankalampien matemaattisten kaavojen kirjoitukseen. Siinä kirjoitetaan erikoismerkit kauttaviivan \ avulla, kuten joissain ohjelmointikielissäkin. Esimerkiksi merkkijono x^{2} \geq 0 : \forall x\in\mathbf{R} tuottaa tulokseksi x² ≥ 0 : ∀ x ∈ ℜ (HTML:llä kirjoitettuna).

Alla on vielä joidenkin valitsemieni erikoismerkkien koodit ja nimet. Huomatkaa hakasulkeet, jotka kertovat ettei kyseessä ole standardin mukainen koodi (mutta sitä voi käyttää Alt-näppäimen kanssa). Listojen välit ovat kymmenkantajärjestelmässä, koska se on helpompi hahmottaa.

MerkkiDesi/heksaNimi
[128]/U+20ACEuro
[133]/U+2026Ellipsi
[134]/U+2020Risti
[149]/U+2022Luetelmapallo
[150]/U+2013Lyhyt ajatusviiva
¢162/U+00A2Sentti
¥165/U+00A5Jeni
©169/U+00A9Copyright
¬172/U+00ACNegaatio
°176/U+00B0Aste
±177/U+00B1Plus-miinus
²178/U+00B2Potenssi
·183/U+00B7Rivinkeskinen piste
×215/U+00D7Kertomerkki
÷247/U+00F7Jakomerkki
Д1044/U+0414Kyrillinen "de"
8594/U+2192Nuoli oikealle
9001/U+2329Vasen kulmasulje (oikea 〉 9002)

Symboleita (väli 9728-9906):
♥ ☺ ♪ ♀ ♂ ☼ ★ ☠ ☢ ☯ ☣ ☮ ☯
Matemaattisia merkkejä (väli 8704-8959):
∀ ∂ ∃ ∇ ∈ ∑ √ ∞ ∠ ∫ ∧ ∴ ≈ ≠ ≤ ⊂ ⋃ ⋯
Kreikkalaisia kirjaimia (väli 913-974):
Δ Π Φ Ω α β γ ε θ λ ξ ψ ω

Jos ette saa jotain merkkiä näkyviin, syy on yleensä valitsemassanne fontissa tai sitten merkistökoodaus on väärä. Testailkaa merkkien näkyvyyttä vaikka tämän sivun avulla. Erikoismerkkejä ja niiden entiteettejä löytyy hieman enemmän täältä. Jukka Korpela on muutenkin kirjoittanut aiheesta hyviä oppaita, joita tässäkin hyödynsin.

Selitän lopuksi suosikki-ilmeeni (°Д°) kirjoittamisen. Windowsin WordPad:ssa naputetaan esim. ( Alt+0176 414+Alt+x Alt+0176 ). Ubuntussa taasen esim. ( Ctrl+Shift+U 00B0 C+S+U 414 C+S+U 00B0 ). Uuden näppäimistöasettelun asentaneet voivat kirjoittaa asteen AltGr+Shift+0. Vaihtoehtona tietysti kopioida tuo ilme suoraan jostain, mutta osaattepahan nyt kirjoittaakin sen.

...tulipas nörtähtävä teksti kirjoitettua. IT-alalla on lähes välttämätöntä tietää näistä asioista jotain ja opin itse paljon lisää tätä naputtaessani. Olin ajatellut aiemminkin selvittää näitä asioita itselleni, mutta vasta nyt löytyi tarpeeksi motivaatiota. Ei tällaisia tekstejä jaksa ihan jatkuvasti kirjoittaa, joten seuraavat tekstit ovat varmaan kevyempiä. Tässä on muutama muukin teksti ollut tuloillaan, mutta katsoo nyt, milloin nekin saan valmiiksi.

maanantai 2. helmikuuta 2009

Japanilaiset hymiöt

Totesin vähän aikaa sitten, etten käytä teksteissäni kuin tavallisimpia länsimaisia hymiöitä. Eihän sellainen peli vedellyt! Aloin siis äsken keräämään listaa erikoisemmista hymiöistä ja muista ascii-kuvista. Laitan tähän nyt vain japanilaisia hymiöitä, vaikka löytyy niitä kaikenlaisia muitakin kivoja. Japanilainen hymiöhän poikkeaa länsimaisesta siten, että se on yleensä pystysuorassa ja silmät korostuvat. Selasin läpi mm. tämän ja tämän. Täältä löytyy hieman japanilaisiakin merkkejä sisältäviä hymiöitä (niiden pastettelu ei aina toimi). Jotkut hymiöt voivat olla hieman vaikesti tulkittavissa, mutta en jaksa laittaa kaikkiin selityksiä. Joillain voi olla myös monta merkitystä.

Perushymy:
^^, ^_^, (^_^), (^.^), (^,^), (^v^), (^~^), (^!^)
[^_^], <^_^>, ( ^^) (sivuttain)

Itku:
(T_T), TT_TT (vaatii sopivan fontin), (;_;), ;;

Ihmetys:
(?_?), (^_^?), o_O, O_o, (o.O), (O_O), O.O, oO
(o )(o ), <(O)> (silmä)

Hikoilua sisältävät:
(-_-;), <(^_^;) (käsi niskan takana), (^_^,), (O.O;), (°°;)

Väsy:
(=_=), (g_g), -_-, (-_-)
(-.-)Zzz, [(-.-)]ZZzzz... (nukkuu sängyssä)


Muita ilmeitä:
><, >.<, (>_<), ( `´), ('' ), ('_'), ('-')
(^_~) (*wink*), (^_-), (^o^) (nauru)
(òÓ ), (Ò_ó), (ó_ò), (ô_ô), (@o@) (tainnoksissa)
(x_+) (hakattu), (-"-;) (otsa rypyssä)
( ..) (katsoo alas/tutkailee), (._.)
X_x (kuollut), (x_x), ~@@~ (rillit)
(^3^) (törröhuulet), *3*

Vaikeampia tulkita (eli eivät itselleni heti auenneet):
(-_-#), ('-'*), (+_+), (n_n), n.n
('!'), (>.>), (*_*), (~_~)
(õ_õ), ô¿ô, @_O, (@_@) (tuijottanut liikaa näyttöä?)

Pieni pää ja kädet:
<o (tervehdys), <.o. (harteikas), \o, \\o, \o/, o//
/o\ (voi ei), <o> (niskan takana), \:D/ (variaatio)

Kädet mukana:
(^.^)/ (moi)
\(^o^\)(/^.^)/ (jee)
\(^_^)/ (hurraa)
o(^o^)o, v(^_^)v (voitto)
d(^_^)b (peukut), d(-_^)
<(^_^)> (rento)
(;_;)/~ (vilkuttaa hyvästit)
(_ _,)/~~ (hävisin, valkoinen lippu)
\(>o<)/ (paniikki)
<(-.-<), (>'.'<) (en osaa selittää näitä)
(-.-)y-~~~ (polttaa tupakkaa)
(;^^)===C<T_T) (nipistys)
(^o^)/~~~~~~~~~(((;^^) (odota!)
(>_<)o---(^o^)o (mottaisu), @( '.')=@Q('.' Q) (tapellaan)
(>n_n)><(n_n<) (hali)
<('.')> (saanko halin?), (>'.')><('.'<) (joo, halitaan)
(òÓ )__\,,/ (pirunsarvet)
m(_ _)m (syvä kumarrus)

Liikkuvat:
(;_; )( ;_;) (ei, en tahdo), (>_< )( >_<)
o(^-^o)(o^-^)o o(^-^o)(o^-^)o (tanssi)
('' )( '') (vilkuilee ympärilleen)
((((;^_^) (hiippailee pois)

Muita:
( ^_^)(^_^ ) (kaverukset)
( ^3(^-^) (pusu)
( ") (dango)
Orz/OTZ (surun musertama hahmo)
(=^_^=) (kissa), =^.^=, =^..^=, ^._.^
[ o ] (Japani), [+-] (Suomi)

Ja eikun heti vaan söpöilemään! Käytelkää näitä vapaasti.

Ei kannata sitten olla huolissaan blogin julkaisutahdista. Kirjoittelen inspiraation mukaan, mutta yritän ainakin yhden viestin saada laitettua viikossa. Tässä on yksi opas lähestulkoon valmis, joten laitan sen varmaan piakkoin.