Projektina Node.js

Tänään innostuin Node.js:tä ja aloin opettelemaan sitä. Latasin nodeschool.ion kautta learnyounoden, ja aloin käymään läpi tehtäviä. Vaikuttaa todella toimivalta alustalta! JavaScript tuntuu sopeutuvan myös palvelinpuolelle, ja ajattelinkin rakentaa API:n koulun ruokalistoille, ja ehkä myöhemmin sitten frontendin, josta pystyy selaamaan ruokalistoja, lisäämään suosikkiruokia, arvostelemaan eri ruokalajeja yms… Katsotaan mitä tästä kehkeytyy!

Ps. Aloitin kuuntelemaan podcasteja Tyyppimuunnoksen innoittamana, ja ainakin myös Hanselminutes vaikuttaa erittäin laadukkaalta, suosittelen! Sujuu koulumatkatkin entistä mukavammin.

Joitain työkaluja

Ajattelin listata tähän vähän, minkälaisia ohjelmia tavallisesti käytän ja miksi.

Tärkein työkalu on tietysti tekstieditori, tai ehkä paremminkin koodieditori, ja Windows-alustalle en parempaa tiedä kuin Notepad++. Se on hyvin vakaa, kevyt ja monipuolinen editori, joka tukee niin muokattavia syntaksin korostuksia, kuin lisäosia. Lisäosavalikoima on myös hyvin kattava, joten jos jokin olennainen osa tuntuu puuttuvan, se löytyy varmasti lisäosavalikoimasta.

Logo by Mozilla CC BY-SA 3.0

No joo, ehkä kuitenkin tärkein työkalu, ainakin käytetyin on selain. Selaimena suosin avointa ja vakaata Firefoxia. Se on osoittautunut ominaisuuksiltaan ja käytettävyydeltään ylivoimaiseksi (tästä voidaan väitellä, mutta mm. Chromella on onglemansa mm. suorituskyvyn, muistinhallinnan ja akunkeston kanssa). Firefoxiin löytyy myös erinomaisia lisäosia, joista päivittäin käytän mm. Firebugia, Greasemonkey:a ja NoScript:ia.

Sähköposteja luen saman valmistajan, Mozillan Thunderbirdillä. Sillä on helppo hallita suuriakin määriä viestejä lajittelemalla ne automaattisesti eri alikansioihin.

Palvelinten ylläpidossa tärkeitä ohjelmia ovat SSH-ohjelma ja tiedonsiirto-ohjelma. Tässä käytän Putty:a ja FileZillaa. Molemmat ovat avointa lähdekoodia, kuten kaikki muutkin ohjelmat tähän mennessä. FileZilla on tehokas työkalu tiedonsiirtoon, niin FTP:n, kuin SFTP:nkin yli.

JavaScriptin ja HTML:n kanssa vääntäessä aina välilla apuun tulee JsBeautifier, jolla saa korjattua sisennykset varsin mallikkaasti.

GitHub:in oma sovellus Windowsille on varsin toimiva, mutta apuna on myös Windowsin PowerShell, johon saa näkyviin gitin statuksen, joka helpottaa kärryillä pysymistä.

Muutama näppärä työkalu kannettavan hallintaan ovat ThrottleStop ja NoteBookFanControl, jotka auttavat virrankulutuksen hallintaan ja tuulettimien hallintaan. ThrottleStop osaa rajoittaa suorittimen tehoa, jolloin virrankulutusta saa pienennettyä. NoteBookFanControl taasen nimensä mukaisesti osaa säätää kannettavan tuulettimen nopeutta, joka on tässä Asuksen Zenbookissa välillä ollut ongelma.

Varmuuskopiointiin olen käyttänyt Allway Sync -ohjelmaa, joka osaa synkronoida kansioita keskenään, esim. kun toisella puolella on tapahtunut muutoksia. Joskus suuria tiedostomääriä kopioidessa käytän Windowsin RoboCopy -ohjelmaa, joka osaa tehokkaasti kopioida kansiorakenteen ja tiedostot kaikkine ominaisuuksineen. Käyttämäni komento on

robocopy <SOURCE> <TARGET> /E /B /J /XJ /COPYALL /SL /R:1 /W:1

Tällöin kopioituu koko kansiorakenne, tiedostojen ominaisuudet, symboliset linkit, mutta Windowsin Junction -pisteet jätetään pois, jolloin kopiointi ei jää loputtomaan silmukkaan (näinkin on käynyt). Komentokehotetta (cmd.exe) voi joutua ajamaan järjestelmänvalvojan oikeuksilla, että robocopy toimii.

Webbipalvelin-projekti

Olen jo pitempään miettinyt virekunnas.fi -domainin hankkimista, ja nyt lopulta siihen päädyin. Suurimpana hyötynä oli heikki@virekunnas.fi -sähköpostiosoitteen saaminen, onhan se nyt hieno, kun saa näin minimalistisen osoitteen, helppo muistaa ja niin edelleen.

Taustalla pyörii OVH:n halvin virtuaalipalvelin, jossa Ubuntu käyttöjärjestelmänä. Aiempaa kokemusta konffauksesta löytyi riittämiin, että pikaisesti oli jo nginx tarjoilemassa webbisivuja ja postfix/dovecot/roundcube -stackki sähköposteja kertomassa. Omat jipponsa sähköpostipalvelimen rakentamisessa kyllä on, se tuli huomattua. Googlettamalla pääsee pitkälle kun osaa vähän yhdistellä tietoja eri lähteistä.

Rosehostinging blogista kyllä löytyi hyvät ohjeet, ja erityisesti tästä ohjeesta löytyi ratkaisu usean käyttäjän helppoon hallinnointiin. Ehkä sitä joku päivä sitten vielä rakentaa MySQL -pohjaisen käyttäjänhallinnan…

Ei kai tässä sen kummempia, katotaan, josko tästä kirjoittelusta vielä jotain tulisi.