Aihearkisto: Tietotekniikka

Re-engineering

Toisinaan tulee tilanteita, jolloin täytyy muuttaa toimiva tuote takaisin suunnittelumalliksi. Ne ovat yleensä tilanteita, joita ei ole alunperin suunniteltu, vaan suunnitelijan täytyy uudelleen suunnitelma ohjelma.

Video. 39-Year-Old Pac-Man Bug
Puck Man -spoiler
Video. Pack Man
[collapse]

Decomplite

Toimiva ja kääntyvä ohjelma on mahdollista kääntää takaisin lähdekoodiksi. Sitä sanotaan nimellä decompliaatio eli käännökseksi takaisinpäin alkuperäiseen muotoonsa kohti korkeamman tason ohjelmointikieltä. [1]

Tietysti decomplilaatio aiheuttaa sen, että ohjelma ei voi sisältää kaikkea sitä, jonka alkuperäinen lähdekoodi on sisältänyt. Tyypillisesti ohjelma ensin optimoidaan ja poistetaan turha tieto, josta käännös tehdään. Niiden palauttaminen alkuperäiseksi on mahdotonta.

Esimerkiksi muuttujien nimet ja kommentit eivät tule alkuperäiseksi, vaan ne täytyy keksiä uudestaan. Tämä on ihmisen osa, tietokone muuttaa ohjelman vain loogisesti alkuperäiseksi lähdekoodiksi.

McDonald´s-spoiler
Video. McDonald´s strory
[collapse]

REFERENSSIT

[1] RedGate: .NET decompiler

Basictulkki

Toteutin työn alla olleen projektini eli BASIC-tulkin. Teetätin sille oman piirilevyn. Tämä on jatkoa aiemmille sulautettujen harrasteprojekteilleni [3].

Projekti

Jos haluat tehdä saman projektin kuin minä olen tehnyt, niin tätä varten voit tilata minun suunnittelmani piirilevyn. Piirilevy teetettäny sisältää useimmat tärkeimmät komponentit, mutta ei välttämättä kaikkia. Tarvitset myös mm. PS/2-näppäimistön ja VGA-näytön. [1]

Piirilevyn lisäksi tarvitse myös kaksi Arduino Nanoa, joista ensimmäiseen tulee laittaa Tiny Basic. Toiseen Arduinoon tarvitset ohjelmistopohjaisen VGA-näytönohjaimen. [2]

PS/2

PS/2 on vanheneva standardi, jolla on toteutettu näppäimistön ja hiiren rajapinta tietokoneelle. Standardilla on kuitenkin yhä paikkansa harrasteprojekteissa. On hyvä tietää, että nykyajan Plug ’n Play-näppäimistö ei toimi USB-PS/2 -muuntimella PS/2-standardin mukaisesti. [4]

PS/2 spoiler
So how does a PS/2 keyboard interface work?
[collapse]

BASIC

BASIC on ohjelmointikieli, joka on alkujaan kehitetty opetuskäyttöön. Syntaksissa on pyritty selkeyteen ja helppoon kirjoitettavuuteen.

BASIC poikkeaa esimerkiksi Pascalin syntaksista siltä osin, että BASIC ei käytä puolipisteitä eli ’;’-merkkiä. Itse Delphillä eli olio-ohjelmointia tukevassa Pascalissa ohjelmoidessa aluksi jouduin ihmettelemään tätä ominaisuutta. Kyseisellä merkillä, tai oikeammin sen pois jättämisellä saattoi olla iso vaikutus esimerkiksi ehtolauseiden suorittamiseen. Pascalin syntaksi mahdollisti ehtolauseiden hyppäämiseen yli, mikä ei ole mahdollista esimerkiksi C-kielellä. Kyseinen ominaisuuden välttämättömyyteen en itse huomannut.

BASIC saavutti yksinkertaisuutensa ansiosta vahvan aseman harrastajapiireissä mikrotietokoneiden alkuaikoina. BASIC-tulkista on lukuisia eri versioita, joita on kehittäneet mm. yliopistojen opiskelijat. Bill Gates sai nerokkaan bisnesidean tehdä bisnestä omalla versiollaan, millä idealla teki ainakin miljoonia ellei miljardeja – kirjaimellisesti. Ilman tätä hänestä ei olisi koskaan tullut maailman rikkainta ihmistä. [7]

Kuva. Gatesin kirje harrastajille.

Harrastepiireissä Gatesin edellä julkaisema viesti ei välttämättä saavuttanut sitä arvoa, jonka se myöhemmin ansaitsee. Gatesin isä on oikeusoppinut, joten tämän ansiosta hän hyvin oli selvillä immateriaalisista oikeuksista sekä niiden puutteista 1970-luvulla.

BASIC spoiler
Video. Retro Programming – Creating sprites on the C64
Video. Retro Programming on the Commodore 64 – Episode 1 – Getting Started
video. Commodore64 C64 SPRITE SCROLLER IN BORDER
[collapse]

MITS tai joku muu taho olisi voinut estää halutessaan Gatesin aikoinaan, mutta useimmat eivät osanneet ennustaa tähän aikaan ohjelmistoalan potentiaalia. Gates käytti armeijalle suunnattua huoneen kokoista IBM:n mainframea kaupallisiin tarkoituksiinsa.

kuva. All wrongs reserved. [8]

Vielä nykyäänkin on jakoa näkemyksissä sen suhteen, että tulisi ohjelmistojen olla kaupallisia vai vapaata ja avointa lähdekoodia. Kylmänsodan aikana Yhdysvalloissa oli varmasti monien vanhojen jäärien mielestä erittäin perusteltua, että kriittinen osa tietokoneen suorittavaa ydintä pysyy yhdellä taholla.

Windows XP sisälsi vuodesta 2001 eli julkaisustaan koko ylläpidon ajan takaportin, jonka kautta kenen tahansa tietokone oli mahdollista lukita verkon yli [10]. Yhdysvallat on sabotoinut ainakin Iraniin ydinaseohjelmaa haittaohjelmien avulla.

Muuta

Ohjelmistoalalla on iso etu ekosysteemistä. Tämä siis tarkoittaa kehittäjäyhteisöä, joka tekee yhteistyötä. Käyttöjärjestelmä on tämän kokonaisuuden kulmakivi, joka tarjoaa rajapinnat laitteistolle. Sillä on valtava vaikutus ohjelmistokehitykseen. Esimerkiksi Commadoressa BASIC-tulkki toimii eräänlaisena käyttöjärjestelmänä.

Video. C64 The Ocean Loader 🌊

Bill Gatesin merkittävin saavutus ei mielestäni ole ohjelmoinnissa itsessään. Enemmänkin kyse on hänen hyvästä kyvystään organisoida ja johtaa tavalla, joka tuo kaikille osapuolille hyötyä.

Kyse ei siis todellakaan ole siitä, että Microsoftin BASIC olisi ollut niin täydellinen. Enemmänkin kyse oli siitä, että tämä mahdollisti ohjelmistoalan kaupallisen kehittymisen yhdessä laitekehittäjien kanssa.

Assembler spoiler
Video. Commodore 64 Assembly Language Programming With Turbo Macro Pro
Video. 39-Year-Old Pac-Man Bug (Partly?) Fixed: Commodore 64
[collapse]

Uskoisin, että BASIC on vain ns. Debug-työkalu laitekehittäjille, jolla he voivat testata helposti esimerkiksi äänipiirin toimintaa. Jos sen saa toimimaan Mikkisoftan BASIC:llä, niin silloin sen voi todetat toimivaksi. Laitevalmistajia ei välttämättä itseään kiinnosta kehittää ohjelmistoja omille laitteilleen, vaan riittää kun heidän kehittämänsä piirilevyt ja mikropiirit toimivat. Tämä Debug-työkalu on lopulta jätetty tietokoneeseen mukaan, koska ei ole keksitty mitään muutakaan parempaa ohjelmaa tietokoneelle käytettäväksi. [7]

Video. The Epic Commodore C64 SID Collection – 11 hours of C64 Music

1980-luvun tietokoneet olivat saavuttaneet tason, jossa niillä voitiin tehdä musiikkia. Hyvin tunnettu on C64, jonka SID eli 6581-piirillä on tehty erityisen paljon musiikkia. Tämä piiri on eräänlainen kolme kanavainen syntetisaattori, jota voi ohjata ohjelmallisesti.

Musiikki. Grazie

Ohjelmistoalasta on tullut valtava bisnes, eikä loppu näy. Saattaa olla, että ohjelmistoala on vasta alkukuopissaan. Paljon on tapahtunut kehistystä lyhyessä ajassa. Toisaalta välttämättä pitkällä aikavälillä ei kuitenkaan ole tapahtunut mitään erityisen mullistavaa. Vieläkin ohjelmointi on hyvin samanlaista iffittelyä kuin vuosikymmeniä sitten.

Venäjän Sota
Video. Fennovoiman toimitusjohtaja saa puhelun Työ- ja elinkeinoministeriöstä. [11, 12, 13]
Kuva. Venäjän hyökkäys. [13]
Kuva. Huolto satojamiljoonien watin teholla säteilevien ydinsauvojen päällä, sekä vastaava reaktori Neuvostoliiton jälkeiseltä ajalta. [14]

B52-pommikoneet pääsevät lopulta alkuperäiseen tarkoitukseensa: kuljettamaan ydinkärjellä varustettu risteilyohjus pääkallopaikalle. Tämä tietysti vaatii sen, että Venäjä antaa tähän mahdollisuuden. Tämä on mitä mainoin tapa kohottaa kyseisen pommikoneen mainetta.

Video. Vietnam War – Part 1 [Real Footage]
Video. DOS Game: Ganja Farmer.
Video. Homeless Vietnam veteran in NYC uses his military training to survive homelessness.
Video. Boeing B-52 Re-engine: The Right Choice for the Air Force.
Video. Boeing B-52H – Showcase #154 – Mods & Addons for Microsoft Flight Simulator 2020 4K.
Video. The United States sent four strategic bombers carrying nuclear weapons to the Russian borders.

Command ’n Conquer Red Alert on mainio peli, jossa kuvastetaan vaihtoehtoista historiaa. Pelissä Einstein menee aikakoneellaan historiaan, jossa poistaa Hitlerin 1900-luvun alussa.

Mielenkiintoinen asia on, että pelissä neuvostoliitolla on käytössä Natsi-Saksassa kehityettyjä asetyypejä, kuten V2-raketti, Landkreuzer P. 1000 Ratte -tankki, 1500 tonnin monsteritankki, suihkuhävittäjä ja myös mm. sukellusveneet. [15]

Video. Red Alert Remastered – Allies Mission 14 (final mission) – No Remorse [Hard]
Video. Red Alert Remastered – Allies Mission 1 – In the Thick of It [Hard]
[collapse]

LÄHTEET

[1] OSHWLAB: VGA PS/2 Basic
[2] Instructables: Arduino Basic PC With VGA Output
[3] Tuppu.fi: ATX-virtalähteen käynnistäminen Arduinolla
[4] HackADay: Decoding PS/2 keyboard
[5] GitHub: VGAX
[6] GitHub: Tuppu
[7] Tuppu.fi: QWERTY
[8] Wiki: Tiny BASIC
[9] Tuppu.fi: Big Blue
[10] NinjaGambleyen: The NSA’s backdoor in Microsoft Windows
[11] Tuppu.fi: Työelämä paskaa, mutta elämän sisältö
[12] YLE: Osakkaat huolestuivat Fennovoiman ydinvoimahankkeesta
[13] Liveuamap: Venäjän hyökkäys
[14] Tuppu.fi: Ukrainan miehitys
[15] Gentleman’s Military Interest Club: Landkreuzer P.1000 ”Ratte” and P.1500 ”Monster”
[16] The Red Alert Units

Big Blue

IBM eli Big Blue on yksi tietotekniikan merkittävimmistä yrityksistä ellei kaikista merkittävin. IBM:n historia alkaa aivan tietotekniikan alusta, mutta IBM:n on yhä yksi suurimmista alan yrityksistä. IBM:n asema oli heikoimmillaan mikrotietokoneiden alkuaikoina, mutta muuten se on aina ollut merkittävä, onnistunut ja hyvämainen yritys.

COBOL

IBM on kehittänyt valtavasti erittäin merkittäviä tietotekniikan teknologioita, joista iso osa on pitänyt asemansa näihin päiviin asti. Yhtään ei voi väheksyä sellaisia asioita kuin SQL, joka on yhä kaikista merkittävin tietokantojen ohjelmointikieli.

IBM kehitti korkeantason ohjelmointikieli COBOL:in, jonka ideana oli olla mahdollisimman ihmisläheinen ohjelmointikieli. Se siis poikkeaa suunnitteluperustaltaan valtavasti sellaisesta ohjelmointikielestä kuin C-kieli, joka on mahdollisimman laiteläheinen ohjelmointikieli [4]. Näiden välissä on FORTRAN, jonka vaikutteita voi huomata COBOL:sta. COBOL itsessään on kehitetty FLOW-MATIC -ohjelmointikielen pohjalta, kun taas FORTAN pohjautuu Speedcoding-ohjelmointikieleen, joka on ensimmäinen korkean tason ohjelmointikieli.

Kuva. COBOL.

COBOL:in maine on ollut erittäin surkea viimeisten vuosikymmenien aikana. Oikeastaan vasta viimeisien vuosien aikaan COBOL on saavuttanut uutta kehitystä. Nykyään ymmärretään, että COBOL on yhä merkittävä ohjelmointikieli. [2]

Video. Introduction to COBOL programming language.

Mitä edellisestä videosta parhaiten jää esille. Mielestäni merkittävää on se, että COBOL yhä pyörittää maailman merkittävimpiä luottokorttijärjestelmiä. COBOL on erittäin luotettava ohjelmointikieli, jonka päällä järjestelmät toimivat vakaasti. IBM on aloittanut COBOL-ohjelmoinnin opettamisen uudelleen vuonna 2020 [1].

spoiler

Perinteinen kysymys on, että mikä ohjelmointikieli on paras. Ainakin seuraava video osoittaa, että kymmenen suosituimman ohjelmointikielen asema vaihtelee hyvin paljon ajan suhteen. Joskus Suomipelit.com -foorumilla kuulin, että joku oli työkseen ohjelmoinut kymmentä eri ohjelmointikieltä. Se oli vuosituhannen vaihteen vastaus, kun joku kysyin, että mitä ohjelmoinintikieltä kannattaa opetella ensimmäiseksi ohjelmointikieleksi. Ensimmäinen opeteltava ohjelmointikieli on vaikein, sen jälkeen niitä oppii helpommin.

Video. Suosituimmat ohjelmointikielet 1965-2019.

Itse näkisin, että ohjelmointikielen syntaksi itsessään on melko turha asia vertailla. Paljon enemmän merkitsee, että mitä kirjastoja ja muuta vastaava ohjelmointikielessä on. Käytännössä tarkoitan, että mitä asioita ohjelmointikieli tukee. Joskus voi olla hyvä, että ohjelmointikieli on matalan tason ohjelmointikieli, jossa on mahdollisimman vähän ylimääräistä. Kuten edellisestä videosta voi huomata, niin Internet on muuttanut hyvin paljon käytettyjen ohjelmointikielten asemaa.

[collapse]

Mainframe

IBM on uudistanut isoajokoneensa eli Mainframet uudella Z-sarjalla. Yhteen isoajokoneeseen sopii 2 miljoonaa konttia, joissa jokaisessa voidaan ajaa omaa mikroserviceä eli ohjelmaansa. [3]

Video. IBM Mainframe.

Seuraavassa videossa voi nähdä, että minkälaisia ovat olleet aiemmat Main Frame -tietokoneet. Nämä ovat huoneen kokoisia tietokoneita, jotka ovat aivan erilaisia kuin vuosituhanteen vaihteessa olleiden vuosien mikrotietokoneiden kultakaudella.

Video. IBM 1401 Mainframe runs ”Edith”
Minitietokone spoiler

Minitietokone on tietokone, joka on huomattavasti pienempi kuin huoneen kokoinen IBM:n Mainframe-tietokone. PDP-8 oli ensimmäinen tietokone, jota on kutsuttu minitietokoneeksi. Minitietokone on käytännössä jääkaapin kokoinen tietokone, kun taas ”täysikokoinen/normaali” tietokone on huoneen kokoinen. Nämä käsitteet ovat nykyään jo vanhentuneita, mutta vanhoista tietokoneista puhuttaessa ne ovat yhä valideja. PDP-8 on Digital Equipment Corporation -yrityksen valmistama tietokone.

”And if I transported you back to 1966 and showed you how to write and edit PDP-8 code by punching paper tape on a 10 character per second teletype, you might need 24 hours to recover from the disappointment. But then you would be able to write the code. The code just hasn’t changed that much.” [5]

[collapse]
Video. IBM 360 Mainframe

IBM on yhä vakuuttunut, että huoneen kokoiset tietokoneet ovat tulevaisuutta. IBM ei voi luottaa siihen että mikrototokoneet olisivat tulevaisuuden juttu.

Video. IBM Mainframe Games

Minulla on tällä hetkellä nykyisessä työpaikassani DL Softwarella työkaverina Jorma, joka on toiminut pitkään COBOL-ohjelmoijana. Me työskentelemme tällä hetkellä yhdessä Delphi-kehityksessä. Jorma sanoi, että COBOL on legacya ei Delphi (”Object Pascal”).

1930 Teletype using as Linux Terminal spoiler
Video. Using a 1930 Teletype as a Linux Terminal
[collapse]

REFERENSSIT

[1] IBM: COBOL cource
[2] Tuppu.fi: osaajapula COBOL-koodareista
[3] IBM: Z
[4] Tuppu.fi: C-kielen ihanuus
[5] Tuppu.fi: Rakkaudesta koodiin

QWERTY

Disclaimer spoiler

Artikkeli saattaa sisältää hieman kirjoitusvihreitä, mutta se kuuluu asiaan.

[collapse]

QWERTY-näppäimistö on asia, jonka varmasti useimmat ovat elämänsä aikana kohdanneet. Kyseessä on standardi, jonka jokainen opettelee jossain vaiheessa elämäänsä. Iso osa elämästä kuluu tämän standardin parissa, minä kirjoitan tällä hetkellä tämän standarin avulla blogiini artikkelia.

Sukupolvien takainen virhe

On hyvä mennä asioiden alkulähteille, jotta voi ymmärtää nykyistä tilannetta. QWERTY:n tapauksessa tämä on erittäin hyvä tapa miettiä, että miksi me kaikki elämme tämän standardin parissa.

Historia ulottuu vähintään seuraavan kuvan mukaiseen patenttiin, joka on vuodelta 1878. Kirjoituskoneen näppäimistössä ei ollut numeroita 1 ja 2, koska ne voitiin korvata näppäimillä I ja O. M-kirjain on nyttemmin alemmalla rivillä kuin patentissa olevassa näppäinasettelussa. Muuten näppäimistö on hyvin samanlainen kuin nykyisessä QWERTY-näppäimistössä. Näin kaikki välttämättömät merkit saatiin toimimaan koneistossa, jolloin QWERTY-kirjoituskone saatiin tuotantoon.

Kuva 1. QWERTY-näppäimistön patentti vuodelta 1878.

Näppäimistöä on ajan myötä kehitetty. On esimerkiksi Shift-näppäin, joka siirtää iskureiden ja näppäinten välisiä mekanismeja näppäimistössä. Se mahdollistaa isojen ja pienien kirjainten käyttämisen samalla näppäimistöllä. Paljon muutakin kehitystä on tullut, kuten esimerkiksi eri kielialueille sopivat näppäimet. Näppäimistössä voidaan nähdä tietynlaista tiedollista kerrostumaa, joka perityy laaja-alaisesti koko tietotekniikaan.

Huonoin mahdollinen standardi

QWERTY-näppäimistö on yksi huonoimmista mahdollisista näppäinasetteluista, joka oli mahdollista valita. Tämän takia tätä näppäinasettelua on tutkittu erittäin paljon. Tästä on tullut jopa kouluesimerkki standardista, joka on surkeaudestaan huolimatta tullut standardiksi. Jopa itse valmistaja yritti hävittää tämän asetelman paremmalla näppäinasettelulla, mutta ei itse siihen kyennyt [13].

Video. Kirjoitusmtari.

Ihmiset ovat oppinete käyttämään tätä standardia, joten he eivät mistään hinnasta suostu vaihtamaan parempaan standardiin. Kyse ei missään nimessä ole tekninen ongelma, näppäimet voidaan aivan hyvin asettaa toiseen järjestykseen. Tähän on ollut monesti erittäin hyvä mahdollisuus, esimekiksi kotitietokoneiden yhteydessä. Silti tämä äärimmäisen surkea standardi on opettu käyttöön.

Kaikki asiantuntijat ovat hyvin yksimielisiä siitä, että QWERTY on aivan surkea standardi. Silti kaikki haluavat käyttää tätä yhtä maailman huonointa standardia, jopa minä itse. Jollain toisella standardilla minä olisin selvinnyt valtavasti vähemmillä kirjoitusvirheillä. Etenkin kymmensormijärjestelmän oppiminen johtaa hirveään määrää kirjoitusvirheitä, tätä kirjoitustapaa ei ole keksitty silloin kuin QWERTY (lausutaan: ngggkhhver´thyy) tuli markkinoille.

Miksi näin?

Standardin taustalla on tilanne, jossa kukaan ei todennäköisesti ole tajunnut, että miten kauaskantoinen päätös on tehty. Ihmiset vain kuvittelevat, että mystisessä QWERTY:ssä voisi olla jotain hyvää. Näin ei vain ole, ABC-asettelu olisi paljon järkevämpi. Se olisi valtavasti helpompi oppia, sopisi erilaisille kielille yhtäläisesti. QWERTY tavallaan syjäytti vuosituhansia vanhan aakkosten järjestyksen. QWERTY voi jopa muomata ihmiskunnan evoluutiota, kun ihmisten täytyy sopetutua standardin säähnötihin [11].

Todennäköisimpänä syynä tälle näppäimistölle pidetään sitä, että luotettava kirjoituskone oli mahdollista toteuttaa sijoittamalla napit mahdollisimman epäloogiseen järjestyksessä. Näppäimet ladottiin siihen järjestykseen, että surkealaatuinen kone saatiin toimaan [12, 19]. Rinnakkain monen napin painamiseta johtuvasta koneiston jumittumisen takia näppäimistöstä piti tehdä mahdollisimman hidas kirjoittaa, etenkin tekniikan rajoitteisiin tottumattomalle. Suunnitteluperuste on siis täysin vastoin myöhemmän ajan tarvetta. Tämän seurauksena tämä standardi olisi tullut; se oli kaikessa surkeudessaan riittävän toimiva konsepti.

”… and THERE WERE NOTES IN ALL THE MARGINS. ON EVERY PAGE OF THE SPEC. HE HAD READ THE WHOLE GODDAMNED THING AND WRITTEN NOTES IN THE MARGINS.” -Joel [7, 12, 17, 18, 19, 20]

”Later I had it explained to me. “Bill doesn’t really want to review your spec, he just wants to make sure you’ve got it under control. His standard M.O. is to ask harder and harder questions until you admit that you don’t know, and then he can yell at you for being unprepared.” -Joel [12, 19]

Lotus avoided thousands functions: ”“Lotus had to fit in 640K. That’s not a lot of memory. If you ignore 1900, you can figure out if a given year is a leap year just by looking to see if the rightmost two bits are zero.”” [12, 19]

4K BASIC spoiler

”Is Basic going to have the same functions? Will they all work the same way?”” [12]

Kuva. 4K Basicin lähdekoodit, Gatesin Billi koodaillut
4k Basic
[collapse]
Kuva. Pieni askel ihmiselle, suuri askel ihmiskunnalle.

Myös epäillään, että teksti TYPEWRITE on helppo kirjoittaa osaamattoman kirjoittajan käsissä. Standardi on siis ollut markkinallisessa mielessä valtava menestys. Esimerkiksi Mikkisoftan entinen toimitusjohtaja ja perustaja Bill Gates kertoo tästä standardista kirjassaan Valtatie Tulevaisuuteen [14]. Samassa kirjassaan hän kertoo myös GIF-standadrdista, joka on varsin rajoittunut ja äärimmäisen heikkolaatuinen ja tehoton merkkijonojen toistuvuuteen perustuva videokuvan pakkausstandardi [2, 5].

GIF-pakattu video. [2]

5. Marraskuuta 1999 päätettiin, että kaikki GIF-tiedotot taltidoiaan hsitorlliseen arkistoon. Kuten edellinen video osoittaa, niin GIF on yhä meidän keskuudessamme. [2]

Ihmiskunnan tuska

Kaiken tämän jälkeen sukupolvi toisensa jälkeen on joutunut opettelemaan kirjoittamaan tällä hirveällä kirjoitusjärjestelmällä. Valtava määrä mielipahaa on seurannut siitä, että kaikkien täytyy kärsiä tämän standardin kanssa.

Tämä kaiken jäljeen ei voi kuin hämmästellä, että miten kaikki asiat ovat voineet mennä näin huonosti. Toivo ihmisyydestä on kadonnut. Maailma on sairas paikka elää. Toiset tekevät toinen toistaan huonompia teknisä stanradia ja järjestelmiä maan päälle jäävien ihmisten kiusaksi. Toinen toistaan surkeampia ihmistiä tuskailemaan näiden järkyttävän surkeiden standardien ja systeemien keskelle.

Postal Dude spoiler
Video. Postal Brain Damaged
Video. Postal 4

[15]

[collapse]

Läheskään aina ei oikea ja paras ole se asia, joka voittaa. Todella usein historia on todistanut, että asia on aivan päinvastoin. Maailmaa hallitsevat psykopaattiset jräjestelmät ja ihmiset. Miksi näin on, miksi ihmiset haluvat tällaista? Haluaako ihmiset näin otdistaa omaa paremmuuttaan, vai haluaako ihmiset vain leipää ja sirkushuveja? [10]

Yhtenvetspoiler

Toivottavasti surkea standardi teki tehtävänsä. Toivottavasti teksti oli ymmärrettävää. Jos ei ollut, niin toivottavasti vika ei ole tekninen. Jos oli, niin voi kokeilla lukea uudestaan hittamin ajatuseksella läpi. Elämä ei ole mikään lukikilailu, kuten Hitler luuli.

[collapse]

LÄHTEET

[1] Forbes: Why Was The QWERTY Keyboard Layout Invented?
[2] Popular Mechanics: THE GIF IS DEAD. LONG LIVE THE GIF.
[5] LZW and GIF explained
[6] GeekNack: Bill Gates — Leadership Style & Principles
[7] CQ: Young Bill Gates Was an Angry Office Bully
[10] Tuppu.fi: Panem et Circenses
[11] Genetic Cars HTML5
[12] Joel on Software: My First BillG Review
[13] Geeks for geeks: QWERTY – Best or Worst Keyboard Layout
[14] Tuppu.fi: Hengilöesitettelyssä Bill Gates
[15] Africa Guide
[16] Wiki: Format War
[17] Wiki: Epoch
[18] Wiki: List of non-standard dates
[19] Wiki: Bug Compatibility
[20] Bill & Melinda Gates Foundation

Backup II

Olin jo täysin varma, että minun OVH-palvelimeni on mennyt lopullisesti. Yllättäen sain seuraavan viestin OVH:n kautta. He ovat sittenkin saaneet palautettua minun virtuaalisen palvelimeni. Tämä oli varsin iloinen uutinen, aiemman palvelimen menettäminen pysyvästi olisi ollut ikävä asia. [1]

Kuva 1. Palvelemeni on sittenkin saatu palautettua.

En tiedä, että mistä he ovat varmuuskopion kaivaneet. Hieno juttu, että heillä on ollut kuitenkin mahdollisuus palauttaa sivuni täydellisesti palaneesta palvelimesta. Varmuuskopiointi ei kuulunut palveluun oletuksena, joten sinällään tämä oli tietynlainen ekstrapalvelu. Veloitus on lopetettu kaikkien palvelinkeskuksessa olevien palveluiden osalta.

PORTFOLIO

Itse olin erityisen surullinen siitä, että oma portfolioni olisi kadonnut ikuisiksi ajoiksi. Vaikka siinä ei sinällään mitään hirveän merkittävää ole, niin itselleni se on tärkeä sivusto. Siellä on minun tekemiäni pelejä jne. [2]

Oli hirveää oivaltaa, että minulla ei ollut yhtäkään varmuuskopiota portfoliostani. Kopioita on ollut, mutta ajan saatossa ne ovat menneet menojaan. Olen formatoinut kiintolevyjä, vaihtanut USB-tikkuja ja vaihtanut tietokoneita.

Olen kuvitellut, että pilvipalvelut olisivat varma tapa varmuuskopioida tietoja. Tämä luulo ei kuitenkaan pidä paikkaansa, vaan myös pilvipalveluista voi tieto kadota. Ei ole mikään itsestään selvyys, että pilvipalveluihin laitettu tieto säilyisi ikuisesti tallessa.

Tilasin ulkomailta kiintolevyjen lukemiseen sopivan laitteen [4]. Muistelin, että olen epäonnistuneesti yrittänyt yhdistää kaksi levyosiota, jolla kadonneita tietoja voisi olla. Tietyillä työkaluilla voi hakea tiedostoja, vaikka levyjärjestelmä on rikki tai kiintolevy on formatoitu [3].

Yritin myös palauttaa sivustoa WebArchiven kautta, kuten erittäin hyvä kaverini Masi Kajander suosittelisi [5]. Itse yritin myös Googlen kautta, mutta Googlen välimuistista sivut ehtivät katoamaan.

LÄHTEET

[1] Tuppu.fi: backup
[2] Tuomasliikala.fi: Portfolio
[3] CleverFiles: 3 steps to Recover Hard Disk
[4] eBay: SATA/IDE Drive to USB 2.0 Adapter Cable
[5] WebArchive: Portfolio | Tuomas Liikala

ATX-virtalähteen käynnistäminen Arduinolla

Olen innostunut harrastamaan elektroniikkaa ja sulautettujen ohjelmointia Hacklabissa. Koen sen hyvänä lisänä omalle osaamiselleni, joka on ohjelmoinnin puolesta jo hyvällä mallilla. On oman koulutuksen takia hyvä kuitenkin tuntea tietokoneen toiminta rautatasolla, lähtien virtalähteen toiminnasta.

Arduinon erityinen vahvuus on matala hinta (kopiot alkaen 3€), jolloin se on järkevä valinta korvaamaan muuten hyvin monimutkaisia analogisia ohjausjärjestelmiä. Arduinossa on 32 kB flash-muistia ohjelmalle ja 4 kB RAM muistia muuttujille, arvojen vastaen Voyager luotaimen ohjainta. Arduinon 16 MHz nopeus on samaa luokkaa kuin 1990-luvun alun PC-tietokoneissa. 32 bitin väyläleveys ja käskykanta on jopa parempi kuin vastaavan nopeuksissa pöytätietokoneissa.

Jones spoiler

Itselleni elektroniikasta tulee mieleen Jones in the Fast Lane -peli. Kyseisessä pelissä voi opiskella korkeateknillisessä yliopistossa mm. elektroniikkaa. Pelin on julkaissut Sierra vuonna 1990. [2]

Kuva Jones in the Fast Lane. [2]

Itse olen joitain opettavaisia pelejä pelaillut [4]. Mielestäni Jones (suom. Kukko Pärssinen [10]) on niistä yksi parhaimpia. Peli antaa lapsille erittäin hyvän käsityksen työelämän tarpeista osana muuta elämää. Nämä ovat asioita, joita ei välttämättä opi edes peruskoulussa.

Video. Jones in the Fast Lane.

”Kukko opiskelee tietysti SÄHKÖLLÄ koska kukon mukaan siellä liikutaan RAUDAN ALAPUOLELLA!!!!” [10]

Itse olen hieman elektroniikkaa harrastanut, olen tehnyt Kemon sarjoja. Se on saksalaisen yhtiön tekemä opettavainen elektroniikkasarja lapsille nuorille 1980-luvulla. Se ei ole vieläkään menettänyt merkitystään. Aivan hiljattain tinasin loppuun oman lämpötermostaattisarjan. Iloa riitti, kun sitä pääsi testaamaan, omat aiemmat tinaukset toimivat osana uusia tinauksiani yli kymmenen vuoden jälkeen. [5]

[collapse]

ATX Virtalähde

Nykyaikaisissa tietokoneissa on ATX (Advanced Technology Extended) -virtalähde, joka on jatkoa aiemmalle AT (Advanced Technology) virtalähteelle vuoden 1995 lopussa. Tässä artikkelissa keskityn ATX-virtalähteeseen.

ATX on nykyaikaisten käyttöjärjestelmien tarpeita paremmin palveleva standardi, sallien mm. tietokoneen sammuttamisen ohjelmallisesti [3]. Windows osaa sammuttaa tietokoneen ATX-virtalähteellä, mutta AT-virtalähteen yhteydessä tietokoneissa käyttäjän piti itse sammuttaa tietokone.

AT spoiler

Vanhoissa Windows 95 tietokoneissa tuli ohjelmallisen sammuttamisen jälkeen käyttäjälle ilmoitus, että on turvallista sammuttaa tietokone fyysisesti. Käytännössä se tarkoittaa virtanapin painamista. Tämä ei ollut käyttöjärjestelmän vika, vaan sen ajan virtalähteet eivät tukeneet tietokoneen ohjelmallista sammuttamista.

Video. All Microsoft Windows ”It is now safe to turn off the computer” screens (AWBS Sequel)
[collapse]

Tietokoneen virtalähteen on erittäin hyvä virtalähde myös muun elektroniikan tarpeisiin. Se antaa useita satoja wattia tehoa, joka riittävästi useimpiin elektroniikkaharrastuksen laitteisiin. Johtimia on paljon, joten yleisesti pienessä elektroniikassa tarvittavia 12, 3.3 ja 5 voltin johtimia riittää. Jännite on myös erittäin tasalaatuista.

ATX pinnit

ATX virtalähteen emolevylle tulevassa kaapelissa on 24 pinniä. Näistä erityisen kiinnostavia ovat vihreä ja purppura johdin. Niiden avulla on mahdollista käynnistää virtalähde käyttäen Arduinoa. Myös mustaa johdinta tarvitaan ohjelmointikortin maadoitukseen.

Kun vihreän ja mustan johdon yhdistää, niin silloin virtalähde on käynnissä. Käytännössä se siis tarkoittaa sitä, että PS-On johdin on kytkettynä maahan. Tätä varten saa hieman virtaa viiden voltin Standby-johtimesta eli purppurasta johtimesta. Purppura johdin toimii tietokonevalmistaja Dellin vastauksen mukaan mm. valmiustilan LED-vilkun virranlähteenä. [1]

Kuva ATX 2.0 specifikaatio. [1]

Kun virtalähde antaa purppurasta +5 volttia, niin silloin Dellin vastauksen mukaan ”klassisen” specifikaation perusteella pitäisi kaikkien johtimien jännitteiden olla kunnossa. Jos purppuran johtimen jännite on enemmän tai vähemmän, niin silloin emolevyn tai käyttöjärjestelmän vastuulla on reagoida tilanteeseen. Aluksi emolevy odottaa, että jännite nousee viiteen volttiin käynnistyksessä. [1]

Virtalähteen käynnistäminen johtimilla

Aivan samoin kuin autoja sai käyntiin suoraa johtimista aikoinaan, niin onneksi sama on mahdollista vielä nykyajan ATX-virtalähteiden yhteydessä. Se tapahtuu yksinkertaisimmillaan kytkemällä vihreä johdin mustaan johtimeen, kuten seuraavassa kuvassa on havainnollistettuna. [6]

Kuva. Virtalähde käynnitettynä johtimella. [6]

Tätä käynnistystapaa edistyneempi kytkentä on laittaa vipukytkin, jolla virtalähteen saa päälle ja pois. Tällöin johdinta ei tarvitse irrottaa fyysisesti irti kaapelista, jolloin virtalähteen käyttäminen on helpompaa. [6]

Käynnistäminen sähköpiirillä

Jos erityistä kiinnostusta on, niin silloin voi rakentaa oman piirilevy, jolla voi elektronisesti ohjata virtalähteen käynnistymistä. Tällaisesta kytkennästä on seuraavassa kuvassa esimerkki.

Kuva. On/Off-kytkintäpiirin piirikaavio. [7]

Innokas elektroniikan harrastaja voi kokeilla tätä piirilevy kytkentää esimerkiksi seuraavanlaisella  bread boardilla. Minusta on erittäin arvostettavaa ja hienoa, että näin hyvä kytkentä on saatu tehtyä. Olen itsekin miettinyt vastaavan rakentamista.

Video. ON/OFF kytkentä. [7]

Tämä kuitenkin vaatii paljon komponentteja, joiden tilaaminen vie oman aikansa. En myöskään itse täysin vakuuttunut tämän kytkennän täydellisyyteen, vaikka hienosti näyttää toimivan. Digitaalisella ohjauksella saavutetaan etuja, joita ei voida helposti luoda elektronisilla kytkennöillä.

Kytkennät Arduinoon

Seuraavassa kuvassa on hyvin esimerkillinen kytkennät, jolla tavalla on suositeltavaa kytkeä ATX-virtalähde kiinni Arduinon ohjelmointikorttiin. Kyseisessä kytkennässä on käytettynä Transistoria, jota ohjataan digitaalisella 12. Kun pinniin 12 tulee +5V:n jännite tilassa 1, niin silloin ATX Ground ja ATX Power On yhdistyvät. Ylimääräistä virrankulutusta rajoitetaan 1k ohmin vastuksilla. [8]

Kuva. ATX virtalähde kykettynä Arduinoon. [8]

Itse teen kytkennän ilman ylimääräisiä transistoreita. Tällöin laitan ATX Power On -johtimen suoraan digitaaliseen ulostuloon. Laitan ohjelmallisesti pinnin tilaan 0 eli maahan, jolloin se vastaa 0 voltin jännitettä. Näin kytkentöjen tekemisestä tulee hieman yksinkertaisempia.

Virrat Arduinolle tulevat virtalähteen lepovirran kautta. Lisäksi tätä varten tulee olla painonappi ja merkkiLED. Siihen tarkoitukseen sopivat erinomaisesti tietokoneen kotelon omat käynnistysnappi ja merkkiLEDit. Aluksi testailuissa itse käytän tyypillisiä elektroniikassa käytettyjä piirilevyyn laitettavia LEDejä ja kytkintä.

Seuraavan kuvan mukainen kytkentä on suositeltu tapa tehdä painonapin kytkentä piirilevyllä. Kuvassa on kytketty toinen puoli kytkimestä jännitteensyöttöön ja toinen maahan. Maadoituksen puolella kytkennässä on 10k ohmin vastus. Sen tulee olla näin suuri, koska sen tarkoitus on estää johdinta toimimasta antennina. 16 MHz taajuudella johtimissa esiintyy häiriöitä, jos johdin jää ”roikkumaan ilmaan”.

Kuva. Painonapin kytkeminen Arduinoon. [8]

Pull-Down -vastuksen laittaminen ei kuitenkaan ole välttämätöntä, koska Arduinossa on sisäänrakennetut vastukset tätä tarkoitusta varten. Se tarkoittaa sitä, että riittää kun vain asettaa ohjelmallisesti halutun pinnin sisääntuloksi ja tilaan 1.

Näiden lisäksi LEDillä tulee käyttää etuvastusta. 220 ohmia on hyvä vastus antamaan sopivasti virtaa LEDille 5 voltin ulostulosta. LEDin oma vastus on erittäin matala, joten ilman vastusta se ylikuumenee hetkessä. LED on diodi, joten se johtaa virtaa vain toiseen suuntaan. Täten LED tulee muistaa laittaa oikein päin. Vaihtoehtoisesti voi laittaa kytkentään kaksi LEDiä rinnakkain, jolloin jompi kumpi LED on päällä riippuen virran suunnasta.

LÄHTEET

[1] Dell: ATX Dell PSU to Offical ATX 2.0 spec pinout
[2] Tuppu.fi: Työelämä
[3] Geeks for geeks: Difference between AT and ATX Power supply
[4] Tuppu.fi: Opettavaiset tietokonepelit
[5] Bebek: rakennussarjat
[6] OverClockersClub: How To Turn On An ATX Power Supply Without A Motherboard
[7] CircuitDigest: Soft Latch Switch Circuit
[8] Arduino Forum: ATX power supply
[9] Github: Arduino Buttons
[10] Kukko Pärssinen

Kotipalvelin – iteraatio 2

JOHDANTO

En sittenkään ole vielä lopettanut oman palvelimeni kehittämistä.

TYÖNKUVAUS

Jatkan tämän verkkojärjestelmäni kehittämistä, vaikka en ole investoinut mihinkään kalliiseen reitittimeen. Nyt toimii onneksi jo sillatun modeemin kautta sekä oma verkkoliikenne että palvelimen liikenne. En ole mikään verkkoguru, niin ollut hieman ylimääräistä ongelmaa ymmärtää, että mistä postista minnekin ne paketit liikkuvat. Olen jo esinuorena oppinut koodaamaan niin, että yksinkertaisesti yrityksen ja erehdyksen kautta brute forcella paukuttelin C-kääntäjään erilaisia yhdistelmiä. Se on minun tapani oppia; selvittää ja poissulkea ei-toimivat tavat tehdä jotain.

Lopusta tarkoitin Photoshop 3. eli ensimmäinen versio, jossa on layerit eli eriytetyt kerroksittaiset piirtopinnat yhden bitmapin sijaan.

TULOKSET

Kun en tiennyt asioista vielä, niin suhtauduin kriittisesti tähän kaapelimodeemiin, joka nyt nolottaa itsetunnon takia. Mutta nyt kun tietää signaalin tulevan samaa johdinta kuin television signaali, sekä miten kauniissa synkronissa valot vilkuttaa pöydällä, niin nyt sitä osaa arvostaa erittäin paljon. Livenä tuike on paljon näyttävämpää kuin videolla, jossa on luultavasti joitain optimointeja vähentämään kuvassa esiintyvää vilkuntaa. Ilmeisesti ledipiiri on jostain joulutuikusta, koska vilkkuminen on ihan samanlaista jopa tietokone ollessa sammuksissa, kunhan vain tietokoneen virtajohto on kiinni.

Jostain syystä isäntäkoneella pitää olla Apache aktiivisena käynnistäessä, jotta virtuaalikoneiden DHCP-toimii oikein. Toisaalta Apache pitää sammuttaa ennen kuin liikenne toimii virtuaalikoneille. Ilmeisesti myös kaapelimodeemi virtakytkimen kliksuttelu on oleellinen osa tätä rituaalia.

musiikkispoileri
[collapse]

Virtuaalipalvelimille määrää voisi kasvattaa todella helposti, kun on valmiit imaget, joista voisi vain ottaa niitä käyttöön. Siinä kymmenen neitseellisen virtuaalikoneen jälkeen tämä 6 watin lämpötehoinen halpa kahdella ytimellä varustetun prosessorin resurssit ovat hyvin käytössä.

Olen hieman miettinyt, että miten tämä kaikki liikenne menee tässä omassa palvelinkeskuksessani. Tuntuu hieman siltä, että tämä kaapelimodeeemin kaapelista tuleva signaali tulee varsin dumppina siltauksena ulos tästä pöntöstä. Osoite on kuitenkin varsin staattinen, ehkä palvelin pyytää uutta osoitetta vasta edellisen muuttuessa ei-toimivaksi.

Kuvan 1. mukaisesti taas yrittää porukka kräkkeröidä palvelintani Kiinan kautta. Osoite on jo monta kertaa merkitty tunnetuksi kräkkeriksi [1]. Toivottavasti käyttämäni öökkeset-salasanassa edes hieman suojaa. root-käyttäjää Otin myös uutena asiana Debianin UFW-palomuurin käyttöön, joka blokkasi tosi hyvin suurimman osan porttien koputtelijoista.

Kuva 1. Hieman palomuuriin conffausta, ettei palvelin kaadu levytilan loppuessa kesken.

Vähemmän näitä verkkojuttuja on tullut tehtyä, niin voisi olla mielenkiintoista kokeilla, että voisiko sitä IP-osoittetta asettaa staattisesti haluamakseen. Ehkä tämä Arris vain muuntaa kaapelin signaalin signaalin taajuuksien kaista-alueet suoraan IP-osoitteeksi, en tiedä. Ihan sama.


Onko tämä kaapeli sitten jotenkin huoneistokohtainen, vai spämmiikö tämä nyt sitten sillatussa tilassa näitä paketteja kummallekin fyysiselle verkkoadapterille. Pitäisi ehkä hieman kokeilla staattiseksi puukotetuilla IP-soitteilla, että mitä tuo Arris oikein lähettää ja minne. Ihan kiva tietysti myös, jos voi aina vaihtaa staattisesti oman IP.-osoitteen toiseksi osoiteavaruudesta, luo tietoturvaa itselleni verkko selatessa. Hyvä lisä salatun VPN:n ja Tor-selaimen lisäksi, että jopa lähtöosoitteen liikenteelle voi vaihtaa itse manuaalisesti.

Kuva 2. pientä domainien konffailua palvelimelleni.


Voisi olla hyvä minun jatkossa hieman sivistää itseäni, ehkäpä suurin heikkous itselläni on tämä verkkoliikenne. C-kielellä ohjelmakoodin pyörittely sujuu ja muuta vastaavaa. Samoin Front-End -ohjelmoinnisssa olen jo oppinut hieman kaikenlaista, ettei ainakaan selaimeen voi luottaa yhtäään, että mitä se sattuu lä’hettämään palvelimelle. PHP-kieltä nyt osaa kaikki, itse jopa aika hyvä siinä mm. tietoturvan ymmärryksen osalta.


Hyvä kaverini Def on jo saanut tehtyä itse oman DNS-palvelimen, joka lähettää halutunlaisia asioita. Ilmeisesti C-kielellä koodattu vastaamaan normaalia DNS-palvelinta. Hän myös löydysi Linuxin HTTPS-sertifikaatin tarkistuksesta puutteita. Välivaiheet tallennettiin 8 tavun charreina välivaiheissa prosessorin rekisteriin. josta niiden lukeminen oli mahdollista ja salaus pystyttiin purkamaan konekielellä. Korjaus hyväksyttiin hiljattain Linuxiin otettavaksi käyttöön.

FURTHERIA

Minulla on jo pidemmän aikaa ollut tavoitteena päästä muuttamaan ulkomaille töihin. Tämän johdosta olen visioinut uuden sivuston taikka blogin kirjoittamista englanniksi, jolloin kehittyisin siinä valtavasti. Aivan samoin kuin on tämä kotipalvelimen toteutus, niin samoin englannin kieli ei ole minun kaikista vahvin osaamisalueeni, vaan kirjoitettu englanti vaatii harjoitusta. [1]

En odota mitään parempaa elämää ulkomailta, mutta ehkä hieman erilaista ja vaihtelua. Kaikilta puolin en ole ollut tai ole tyytyväinen siihen kohtaloon, joka Suomella on minulle tarjota. En myöskään ihan usko, että kaikki kykyni tulisi ihan täysin 100% käyttöasteella yhteiskunnan hyödyksi. Prioriteetissa kyse ei siis edes ole yksinomaan tai ensisijaisesti rahasta tai materiaalisesta elintasosta, vaikka silläkin on aina oma merkittävä painoarvonsa. [1]

Olen myös harkinnut Suomea ja tämän maan päätöksiä kritisoivaa sivustoa. En kuitenkaan tällä hetkellä halua sellaista kirjoittaa, kun asun tässä maassa. Ei Suomi ole aivan Kiina, mutta kuitenkin ns. sivistysmaista ehkä kaikista lähinnä sitä. Enempää en ota nyt kantaa tämän maan päätöksentekoon. [1]

REFERENSSIT

[1] AbuseIPDB: 193.201.224.218
[2] Wikionary: -leptic
[3] Pastebin: Visionaring
[4] Pastebin: Pohdinta
[5] MyMainIP

Oman palvelimeni implementointi

Nyt olen päässyt tilanteeseen, jossa olen saanut toteutettua ja testattua ensimmäisen iteraation kotipalvelimeni toteuttamisesta. Paljon ilmeni uutta, mutta paljon myös onnistui vähintään tavoitteiden mukaisesti. Jopa osa asioista ylitti odotukset. Kokonaisuutena omalle kotipalvelimelleni ei ole järkiperusteita.

Johdanto

Olen siirtämässä omia palvelimia kohti uusia systeemeitä. Tässä osaltaan on oman osaamisen kehittymisen kohti alemman tason vahvempaa ymmärrystä. Toisaalta kyse on myös tietoturvasta, kohti paremmin suojattuun verkkoliikenteeseen verkkopalveluiden käyttäjien ja ehkä myös minun itsenikin suojaamiseksi.

musiikkispoileri
[collapse]

Oman sähköpostini siirsin jo luotettavalta vaikuttavalle hostaajalle, jossa toimitusjohtaja on jopa laittanut oman kuvansa osaksi vakuuttelua. En edes harkinnut hieman pidemmän suunnittelun ja asiaan perehtymisen jälkeen oman sähköpostipalvelimen ylläpitoa toistaiseksi. Ehkä sekin aika tulee, mutta nyt maksan 60 dollaria vuodessa hyvästä tilini ylläpidosta. Toivottavasti nyt ei sähköpostiviestini katoa, kuten kävi edellisen hostaajan aikana. [1]

Tulokset

Olen saanut nyt kaksi erillistä virtuaalikonetta toimimaan omassa kodissani. Kummassakin toimii oma erillinen sivustonsa. Sivujen tekeminen ei itselleni ole ongelma, verkkoliikenteen saaminen toimintaa sen sijaan oli. Eikä se vieläkään ihan täydellisesti toimi, vaan joitain isompia tai pienempiä muutoksia voinee tulla.

reititys

C:\WINDOWS\system32>tracert neurolepti.fi

Tracing route to neurolepti.fi [104.31.80.112]
over a maximum of 30 hops:

1 124 ms 81 ms 78 ms ams-a63.ipvanish.com [81.171.98.202]
2 64 ms 70 ms 68 ms 151.139.80.20
3 61 ms 67 ms 58 ms 151.139.80.3
4 98 ms 98 ms 98 ms be5435.rcr21.b038092-0.ams03.atlas.cogentco.com [149.29.2.81]
5 63 ms 63 ms 72 ms be2413.ccr42.ams03.atlas.cogentco.com [154.54.37.241]
6 69 ms 74 ms 62 ms be2447.rcr21.b021535-1.ams03.atlas.cogentco.com [130.117.50.250]
7 70 ms 69 ms 68 ms 149.14.83.58
8 141 ms 64 ms 137 ms 104.31.80.112

Trace complete.

C:\WINDOWS\system32>tracert neuroleptit.info

Tracing route to neuroleptit.info [104.24.112.105]
over a maximum of 30 hops:

1 407 ms 587 ms 319 ms ams-a63.ipvanish.com [81.171.98.202]
2 330 ms 459 ms 502 ms 151.139.80.20
3 77 ms 55 ms 58 ms 151.139.80.3
4 96 ms 80 ms 72 ms be5435.rcr21.b038092-0.ams03.atlas.cogentco.com [149.29.2.81]
5 61 ms 80 ms 67 ms be2412.ccr41.ams03.atlas.cogentco.com [154.54.37.97]
6 65 ms 69 ms 83 ms be2322.rcr21.b021535-1.ams03.atlas.cogentco.com [130.117.50.82]
7 68 ms 83 ms 82 ms 149.14.83.58
8 290 ms 328 ms 358 ms 104.24.112.105

Trace complete.

[collapse]

Kuvan 1. mukaisesti verkkosivut näyttävät tulevan erillisestä kanavasta ulkomailta eli Alankomaiden Amsterdamista VPN-yhteydellä täysin oikein ja turvallisesti, joskin suojaamattomana paljaana http-viestintänä näiden kahden verkko-osoitteen välillä.

Suojattu eli https-yhteys vaatii salaussertifikaatin lisäämistä palvelimelleni, jolloin palvelimeni salaisella avaimella ja julkisen sertifikaatin avaimella voisi varmistaa, että salattu verkkosivu on todellakin oikeasta palvelimestani.

Salauksella ei sinällään ole juurikaan käyttäjille merkitystä, kun he eivät syötä omia salasanojaan tai henkilötietojaan sivustolle. Blogini kirjoituksissa ei ole mitään salattavaa, kerran ovat muutenkin julkisesti kaikkien luettavissa. Salaus ei suojaa liikennettä vaan viestin sisällön, hieman vastaava suoja kuin kirjesalaisuus Suomen perustuslaissa. Jos haluaa salata viestiliikenteen, niin käytännössä ainut tunnettu tekniikka siihen on Tor-selain vuonna 2019 [4].

Torspoileri

[collapse]

Tämä toivottavasti todistaa, että palvelimeni ja domainit näkyvät Internetissä, eikä vain minun omassa sisäverkossani. Itselleni se riittää, täten ei ole tarvetta pitää palvelimia verkossa. Vasta kun saan järkevää sisältöä, niin jätän ne ylös Internetiin.

Kuva 1. näkymä selaimessa.

Kuvassa 2. Verkkosivut esitettynä sellaisessa muodossa kuin ne ovat palvelimessa näkyvissä. Omien taustojeni takia käytän rautatason palvelimessani graafista käyttöliittymää, kun olen itse tottunut siihen. Tietysti virtuaalisissa palvelimissa olen jättänyt graafisen käyttöliittymän asentamatta.

Kuva 2. Näkymä palvelimen graafisessa tilassa.

Sammutin palvelimeni, niin näemmä bootatessa ei ihan suoraan sivut lähteneet toimimaan virtuaalikoneiden käynnistymisen jälkeen. Isäntäkoneen HTTP- ja SSH-yhteys piti sammuttaa, jotta porttien verkkoliikenne siltautuu oikein. Asiat korjautuivat Kuvan 2 näköisessä näkymässä kyseisen säädön jälkeen.

Kuva 3. Rebootin jälkinen konffaus palvelimien saamiseksi toimimaan manuaalisesti.

Vahingossa siis olin saanut virtuaalikoneet toimimaan siltä osin, minulle sattui hyvä tuuri. Vastaisuudessa pitää tehdä tämä konffi johonkin bash-scriptiin virtuaalikoneiden käynnistämisen automatisoinnin oheen, jotta virtakatkojen yhteydessä sivut nousisivat automaagisesti ylös. Nykyisellään palvelin on enemmänkin alhaalla kuin ylhäällä, kun siellä ei ole tärkeää sisältöä.

Yhteenveto

Pidän tätä saavutuksena, koska verkkoliikenne on asia, joka on omassa osaamisessani ollut erittäin suuri heikkous. Nyt en ole kuitenkaan niin heikko, vaan olen oppinut. Tekemällä oppii, se tuli taas itselleen osoitettua.

Ehkä oma ymmärrykseni on vielä heikolla tasolla, mutta olen saavuttanut jonkinlaista ymmärrystä. Mitä enemmän oppii, niin sitä enemmän Internetistä ymmärtää, että miten vähän Internetin toiminnasta tietää.

Visoin palvelimeni saamista 3G-verkkoon, koska minulla on edullinen multi-SIM. Laitoin pyynnön julkisesta IP-osoitteesta Elisalle, mutta kuulemma se ei ole mahdollista multi-SIM -liittymässä.

Jotain pitäisi tehdä, että saisin myös oman henkilökohtaisen kotikoneeni verkkoliikenteen toimimaan tämän rakentamani systeemin läpi, koska en saanut NUC:n hot spotia toimimaan. Ehkä vielä ajurit on jotenkin korjattavissa. Ehkä jollain palikalla saan reititettyä kotikoneeni liikenteen samaan verkkoon. Ehkä tietoturvan kannalta näin ei edes kannata tehdä, ärsyttää vain maksaa törkeän kovaa hintaa erillisestä kiinteästä verkkoyhteydestä.

Loppujen lopuksi tämä nykyinen virtuaalipalvelimeni on järkevin vaihtoehto jatkossa. Oma nykyinen virtuaalipalvelimeni maksaa 4,95 euroa kuukaudessa, mutta resurssit ovat hyvin rajalliset, joskin blogien ja yksinkertaisten sivujen ylläpitoon riittävä. 10 gigan SSD riittää oikein hyvin, blogini koko on pian lähes yksi gigatavua. [5]

Kuva 5. Poikkeuksellisen korkea yhden prosessoriytimen kuormitustilanne virtuaalipalvelimellani.

2 gigan keskusmuisti riittää myös hyvin, suurin osa siitä on vain prosessoriaikaa ja verkkoliikenteen kuormitusta vähentävää, sekä vasteaikaa lyhentävää välimuistia, joka sisältää mm. tämän sivuston blogiartikkeleita. Keskusmuistin loppuessa käyttöjärjestelmä käyttää sivutusta eli virtuaalimuistia, jolloin käyttöjärjestelmä tallentaa keskusmuistista ajoittamattomia eli ei-scheduloituina olevien prosessien sisältöä SSD:lle eli massamuistille vasteajan kustannuksella. Siutus on monelle tuttu ilmiö, kun esimerkiksi
20 välilehtinen selainta on ollut alapalkissa pitkän aikaa, samalla kun on käyttänyt Wordiä keskeytyksettä monta tuntia.

retrospoileri
[collapse]

Jotta oma palvelin olisi edes suorilta kuluiltaan edullisempi vaihtoehto kuin kilpailijat, niin se vaatisi oman arvioni mukaan kymmenen tai vähintään monen hengen yhteisesti jakamaa palvelinta. Samoin, jos itsellä olisi tarvetta koko palvelimen resursseille, niin tällöin harrastusmielessä oma palvelin olisi mahdollisesti joillain kriteereillä arvioiden järkevä päätös.

REFRENSSIT

[1] StartMail: privacy
[2] IP WHOIS Lookup
[3] IP Vanish
[4] Tor Browser
[5] OVH: VPS
[6] Kukko Pärssinen: C-kieli

Oman palvelimeni suunnittelu

Olen saapunut tilanteeseen, jossa suunnittelen oman fyysisen palvelimen ottamista käyttöön. Paljon on jo rautaa hankittuna valmiiksi, mutta paljon on myös opeteltavaa ja tehtävää. Oman palvelimen ylläpitäminen on ehkä hieman haastavaa, mutta samalla myös opettavaista ja mukavaa. Se on kiinnostavuudeltaan hieman verrattavissa chilien tai muiden vastaavien kasvien sisäkasvatukseen.

CloudFlare

Sivustot elävät ja ovat jatkuvassa muutoksessa. Omakin blogini elää ja vaihtelee osoitteita, joissa se toimii. Tämän ei kannata antaa häiritä. Toisinaan sivusto on alhaalla, eikä itselläni ole tavoitteenakaan päästä 99.95 % saavutettavuuteen. Pyrin kuitenkin pitämään blogini pystyssä, koska kuvan 2 mukaisesti päivittäin blogissani on kävijöitä usein ainakin 300 eri IP-osoitteesta, joista n. 10 – 20 % on Suomesta.

Kuva 2. kävjämäärät CloudFlaren tilastojen mukaan 23.2.2019.

Ihan harrastusmielessä sivustoa ylläpidän, oman osaamisen kartuttamiseksi. Työkseni teen tällä hetkellä Front End -ohjelmointia. Kuitenkin yleisen alan tuntemuksen takia on tärkeää, että hallitsee myös palvelinten ylläpidon edes välttävällä tasolla. Kaikki ohjelmistokehityksen ”tasoja” työstävää ohjelmoijaa kutsutaan Full Stack -ohjelmoijaksi, etenkin kun kyse on vähintään keskisuuresta ohjelmistosta.

Joskus on käynyt niin, että ei ole saanut omaan palvelimeeni yhteyttä moneen tuntiin. Lopulta onkin paljastunut, että virtuaalipalvelin on itsessään ollut jostain syystä pimeänä. Jos kotiin omat palvelimet saan, niin saavutettavuuden ei voi ainakaan odottaa parantuvan nykyisestä, vaikka OVH-hostingin toimintavarmuus ei oikein vakuuta itseäni. Lupaus 99.95 % saavutettavuudesta meni kerralla, kun palvelin yksinkertaisesti pimeni moneksi tunniksi SSH-avaimen käyttöönoton jälkeen ilman omaa syytä. Oli varsin pelottavaa siinä tilassa, asiakaspalvelu ei tietysti tiennyt mitään, eikä mukamas mitään tietoa ollut palvelinten toimintaongelmista heidän tiedossaan. Se herätti entistä enemmän epäilyksi OVH-hostingin laadusta, kun eivät itsekään olleet tietoisia, että palvelin oli kaatuneena/pimeänä monta tuntia ilman, että firma itse olisi mitenkään tietoinen asiakkaalle aivan selvästi ilmenneestä todella pitkästä blackoutista, jossa suora yhteys palvelimen IP-osoitteeseen ei vastannut mitään ja PuTTY aikakatkaisee yhteyspyynnöt. OVH-hostingilla oli vieläpä pokkaa väittää; ettei niin olisi käynyt, vaan vika olisi ollut asiakkaan osaamattomuudessa.

Riskienhallinta

Todennäköisesti tulevassa palvelimessani ei ole minkäänlaista varavirtaa, ja saattaa johtoja tökkii robotti-imuri viikoittain. Itse joskus saatan repiä jatkoroikkia omiin tarkoituksiini, kaataa olutlasin (kerran melkein kävi jo näin -Admin) taikka oksennan raudan päälle tai kusen sen päälle baarista tullessani, todennäköisesti imuroin täyhdellä kaistalla pornoa levyn täyteen, saatan heitellä palvelinlaitteistoa PCP-meta -kombopsykoosissa, kännissä tai muussa vastaavassa tilassa konffaan tai rekursiivisesti deletoin jotain vääriä tiedostoja kunnes pääsen ulos hullujenhuoneelta, poliisit takavarikoivat palvelimen kuulusteluita varten pariksi viikoksi minun ollessa samalla pidätettynä sellissä epäiltynä, jonka jälkeen tulen muuttamaan eri asuntoon odottamaan verkkoliittymää. 3G verkko ruuhkautuu niin pahoin, että yhteys käytännössä katkeaa etenkin Supon ja muiden minua vihaavien tahojen palvelunestohyökkäyksen aikana. Positiivisena puolena todennäköisesti ainakin osa palvelimen sähköistä voi olla jopa vikavirtasuojatun jakorasian päässä, ellei sitä satu tarvitsemaan johonkin muuhun käyttöön, jolloin palvelin voi olla ilman sähköjä, jos esim. pitää kolvata piirilevyä. Olen siis akateemisesti koulutettuna tietotekniikan DI;nä miettinyt riskienhallintaa ja riskien ehkäisyä hyvin tarkasti, etenkin todennäköisesti toteutuvat riskit palvelimen saavutettavuuden menettämiseen kirjasin ylös, osittain myös arvioin riskin toteutumista seuraavan keston palvelimen saavutettavuuden menetykselle.

Verkon osoitekin vaihtelee dynaamisesti, joiden muuttuessa reititin lähettelee DNS:n muutospyynnön CloudFlarelle, josta se sitten korjaantuu luultavasti tunnin sisällä eri DNS-palveluihin. Sertit on jo nyt sekaisin, kun ei kiinnosta maksaa viittä euroa kuukaudessa päivitettävistä serteistä. Kiintolevyille, virranlähteille ja millekään muullekaan komponentille ei ole minkäänlaista varmennusta, korkeintaan varmuuskopioin sivustoa kerran vuorokaudessa, parhaimmillaan kuukausittain tulisi virtuaalikoneista varmuuskopiot, mahdollisesti kovan kryptauksen jälkeen siirrän varmuuskopiot muutaman kertaa vuodessa pilvipalveluun suojaa erilliseen tilaan, jos vaikka joku pesäpallomailla riehuva rosvo murtautuu ja hakkaa/varastaa palvelimeni ja kaikki varmuuskopiot, niin kyseisen hirveän katastrofin ja sairaalan teho-osastolta poistumisen jälkeen saan vielä palautettua järjestelmät viimeisenä oljenkortena äärimmäisen hyvin suojatun ja paperiin kirjatun salausavaimen avulla, samalla kun muu omaisuus ja elämä on muuten täydellisesti tuhottu materiaalisesti ja henkisesti. Jos esim. levyasema hajoaa tai muuta pientä, niin aivan hyvin voi tulla viikon käyttökatko palvelun palaamiseksi uudestaan linjalle, jos nopeasti korjaan laitteiston kuntoon eli tilaan heti Suomesta uutta rautaa rikkinäisen tilalle, jonka jälkeen kaikki onnistuu täydellisesti ja asiat menee kerralla nappiin kuin elokuvissa, kunhan harjoittelen sitä muutaman kertaa valmiiksi.

Viikon käyttökatko tarkoittaa vuodessa 98 % saavutettavuutta, jos ei huomioi muita katkoksia. 99 % pidetään yleensä tyydyttävänä tasona, 95 % eli puolen kuukauden off-line vuoden aikana on välttävä minimitaso, jonka alittamista pidetään rajana surkealle palvelinten toimintavarmuudelle. 99.9 % eli 8 tuntia 45 minuuttia on hyvä, 99.99 % eli 52 minuuttia 35 sekunttia erittäin hyvä, 99.999 % eli 5 minuuttia 15 sekuntia on erinomainen ja 99.9999 eli 31 sekuntia on jatkuva on-line. Jotkin pilvipalvelut lupaavat jopa 99.99995 % saavuttavuutta eli palvelin voi olla saavuttamattomissa vuoden aikana korkeintaan 15 sekuntia, Joskus Facebookin palvelimet olivat 5 -15 minuuttiin alhaalla eli kerran kymmenessä vuodessa poikkeuksellisesti 99.99 % – 99.999 % matalassa saavutettavuudessa, josta tuli jopa heti juttua moniin lehtiin [3, 4]. Kyse oli luultavasti kriittisestä (epäonnistuneesta?) päivityksestä sivuston palvelimiin, joiden jatkuvan yhtäjaksoisen toiminnan aikana työntekijämäärä oli kasvanut 10 000 kertaiseksi ja käyttäjämäärä 1 000 000 kertaiseksi edellisen huoltokatkon jälkeen.

Rautaa

Itse olen oman kuvan 1 mukaisen mini-itx -kokoisen NUC-koneen ostanut. Aiemmin ollut toinen Intel Atomilla varustettu mini-itx, mutta päätin sittenkin ostaa ihan uuden reilun 100 puntaa maksavan eli halvimman Celeronilla varustetun tietokoneen palvelinharjoitteluun [2]. Aiemman koneen kotelo oli varsin heikosti hengittävä.

Kuva 1. Itse ostin tällaista rautaa palvelinkäyttöön, harjoitusmielessä. [2]

On yllättävää huomata, että energispihejä mini-itx -koneita on jopa palvelinkäytössä nykyään [1]. Kuitenkin esim. blogit kuormittavat todella vähän palvelinta, selaimen päässä tapahtuva kuormitus on valtavasti suurempaa. Täten nykyajan palvelimissa usein riittää aivan hyvin kännykän prosessorin tasoinen suorituskyky vähintäänkin riittävästi. Useimmiten suuri osa palvelimista on lähes tyhjällä kuormalla, jos niitä käytetään vain pelkkien blogien tai yksinkertaisten verkkosivujen näyttämiseen jopa suurella kävijämäärällä.

Kuva 2.Räkki-mallin mini-ITX-palvelin. [5]

Haluan antaa erityisen kunniamaininnan tekstini oikolukemisesta Oikofix-sivustolle. Kyseinen sivusto on ehkäpä para suomen kielen oikolukija. Itse todennäköisesti oikoluen vastaisuudella sillä blogiartikkelini. [6]

REFERENSSIT

[1] Mini-itx.com: Servers
[2] Mini-itx.com: Intel NUC5CPYH
[3] YLE: Facebook ei toimi – vikaa selvitetään
[4] IL: Facebook ja Instagram kaatuivat ympäri maailmaa – alhaalla myös Suomessa: ”Jokin meni vikaan”
[5] Mini-itx.com: R1U200 – 20W Short Depth 1U Rackmount Servers with Low Power Consumption Celeron N2930 and 1 or 5 Intel LAN
[6] Oikofix – oikoluen tekstisi

Tietoturva parantuu

Nyt vaikuttaa aika hyvin keittyvän nämä tietoturvaominaisuudet Nokian puhelimessa. Ilmeisesti ottavat aika tosissaan sen, että Googlen osoitetietopalvelimen varmenteet feilaa puhelimella suoraa ositteella sivua hakiessa. [0]

Kuvassa 1. puhelimeni meni SAFE-tilaan, ennen kuin asensin 1.1.1.1 osoitteeseen domainpalvelimelle ohjaavan ohjelman. [1]

Kuva . Nyt on hyvö softa.
Piti antaa palautetta Googlelle. Sanoin, että onhan tuo aika leet. Voisin kehystää seinälle tauluksi muistokseni

Kuvassa 3. on tosi hyvä ohjelma, nyt voi blokata kaiken muun turhan verkkosivunimiä ylläpitävät oletusjutut. Eihän sellaisia voisi olla, vaan tietysti verkkodomainit sijatisevat muistettavasti 1.1.1.1 IP-osoitteessa. Google vähä innostunut nyt liikaa, kun käyttänyt omaa 8.8.8.8 osoitetta, vaikka asetti manuaalisesti toisen, eikä sitäkään edes IP:n perusteella.

Kuva 2. Todella hyvä ohjelma, jota olenkin kaivannut.

Kaikilla ei ehkä ole aivan niin, että on VPN:n yhteys ja verkkosivun tiedot salattuna suoraa osoitteeseen 1.1.1.1 osoitteeseen Internetissä?

Kuva 3. mun tuppu.fi -osoitteni DNS-kyselyt krytataan.

Ehkä en turhaan tätä Blogiani pari vuotta sitten aloittanut? Kiva kun säätää vähän vaan kaikkea, niin Internetin säätyläiset saavat sydärin ja tulee ties mitä updatea ja kyselyä. Mitäpä sitä ohjelmoija muuten tekisi, työhaastattelijatkin arvostaa harrastuneisuutta. Puhelin synkkaa ihan sikana jotain ties mitä, eikä mikään ohjelma toimi.

Kaverilla on omat DNS-palvelinten C-kieliset toteutukset vielä itsellä oppimatta. Kaikkea mielenkiintoista on jo kuitenkin oppinut ohjelmistoalasta ja ohjelmoinnista. Ehkä sitä kehittyy, tämä verkkopuoli on oma heikkouteni vielä.

Ovat tosi kilttejä; kaikkea kivaa softaa ehotuksina, raudan anaylsointia, tor-selainta ja vaikka mitä kivaa softaa. Ihan pihalla kaikesta kun yrittää jotain palvelinjuttua säätää. No joo, mutta sellasta elämä on, ihan hyvin kai nyt sitten, ei kai tässä valittamista. :/