Ota pikakomennot ja näppäimistö haltuun AutoHotkeyn avulla

Windowsissa asiat voidaan tehdä joko helposti tai vaikeasti ja valitettavan usein turhankin vaikeasti. Windows itsessään ei tarjoa mahdollisuuksia pikakomentojen määrittämiseen käyttäjän haluamalla tavalla, vaan tätä varten tarvitaan kolmannen osapuolen ohjelmistoja. Yksi pikakomentoja ja näppäimistön hallintaa toteuttava ohjelmisto on avoimen lähdekoodin AutoHotkey, joka tarjoaa monipuoliset ominaisuudet erilaisten komentojen toteuttamiseksi.

Windows XP:ssä on vakiona tarjolla lukuisia käteviä pikakomentoja, mutta yksi jää uupumaan: ikkunan pienentäminen alapalkkiin. Se toki onnistuu Alt+välilyönti+n -yhdistelmällä, mutta on hieman liian monimutkaista. Tähän pieneen ongelmaa tarvitaan ratkaisuksi siis ohjelmaa, joka antaa käyttäjän määrittää omat pikakomentonsa.

AutoHotkey on käteväntuntuinen ohjelma, mutta valitettavasti sen käyttäminen ei ole ”klikkaa ja valitse” -tyylistä komentojen määrittämistä, vaan toiminnot määritellään erilliseen skripti-tiedostoon. Ohjelman käyttöön on kuitenkin saatavilla hyvät ohjeet ja malliskriptit, joten haluamansa pikakomennon määrittäminen onnistuu kohtalaisen helposti. Hieman hankalampaa kuin maksullisten ohjelmistojen kanssa, mutta ilmainen on aina ilmainen.

Yksinkertaiset skriptit ovat kohtalaisen helppoja määritellä ja esimerkiksi aktiivisen ikkunan pienentäminen alapalkkiin Win+h -yhdistelmällä onnistuu määrittelemällä seuraava komento ohjelman skripti-tiedostoon:

#h::WinMinimize,A

Saatavilla on myös skripti, jolla ikkunan voi pienentää tehtäväpalkkiin, ja kätevä skripti äänenvoimakkuuden säätöön OSD:n kera.

AutoHotkey tarjoaa monipuoliset ominaisuudet erilaisten komentosarjojen määrittelyyn, mutta ohjelman käytettävyys jättää hieman toivomisen varaa. Kätevä ohjelma kuitenkin, kunhan löytää oikeat komennot ja kasaa niistä haluamansa toiminnot tai etsii valmiit skriptit. Ehkä hieman liioittelua käyttää erillistä ohjelmaa vain ikkunoiden pienentämiseen, mutta eiköhän listalle löydy muitakin tarpeellisia komentosarjoja.

Ohjelmointi kuin urheiluharrastus, harjoittelulla parempiin tuloksiin

Joulun kiireiden keskellä on hyvä pysähtyä ja irtautua arkielämän hössötyksistä ja syventyä hyvän kirjallisuuden ääreen tai tietoteknisten harrastusten pariin. Vaihtoehtoja ajanvietteeksi on monia ja Codeulate-blogi tarjoaa vaihtoehdoksi harjoittelua: ohjelmoinnin harjoittelua. Vaikka ohjelmointitaidot olisivatkin jo hallussa valitsemallasi ohjelmointikielellä, on hyvä silti panostaa harjoitteluun. Ohjelmointia voi käsitellä kuin mitä tahansa urheilu- tai musiikkiharrastusta; paremmaksi kehitytään vain harjoittelemalla.

Ohjelmointia voi harjoitella erilaisilla tavoilla ja Internetissä on tarjolla erilaisia sivustoja, jotka tarjoavat älynystöreille harjoitteita. Project Euler lähestyy aihetta matemaattisten ongelmien kautta ja ratkaisut eivät vaadi tutkintoa matematiikasta. Python Challenge vastaa tarjoamalla 33-tasoisen haasteen. Molemmilla sivustoilla on ongelmien lisäksi tarjolla ratkaisut ja keskustelufoorumi muiden ohjelmoijien ratkaisujen tutkimiseen. Vastaavasti 99 Prolog -ongelmaa keskittyy loogiseen ongelmanratkontaa ja tarjoaa ratkaisut Prologilla toteuttuna. Ongelmia voi tietenkin ratkoa haluamallaan ohjelmointikielellä.

Ohjelmoinnin harjoittelemisessa ei kuitenkaan ole kiire ja teokset, jotka mainostavat ”Opi ohjelmointikieli X 21 päivässä” -otsikolla pitäisikin itseasiassa otsikoida ”Opettele ohjelmoimaan 10 vuodessa”. 3 päivässä, viikossa tai kuukaudessa saa vain pintapuolisen käsityksen jostakin ohjelmointikielestä ja todellinen hallitseminen ja käsittäminen tapahtuu pidemmällä aikajänteellä. Tutkimusten mukaan jonkin tietyn aiheen oppiminen ja hallitseminen vie 10 vuotta, oli se sitten shakin peluu, musisointi, maalaaminen, tennis tai ohjelmointi.

Oikotietä parempiin suorituksiin ei ole ja kuten monissa muissakin harrasteissa ja taidoissa, myös ohjelmoinnissa kehitytään paremmaksi vain harjoittelemalla ja mahdollisesti harjoittelemalla laaja-alaisesti. Yhtäläisyyksiä löytyy myös siinä, että toiset vain ovat parempia kuin toiset ja vain lahjattomat treenaavat.

Gimpin käyttöliittymään luvassa parannusta

Gimp on kelvollinen ellei jopa mainio avoimen lähdekoodin kuvankäsittelyohjelma, mutta käyttöliittymässä on hieman parantamisen varaa. Viime viikolla julkaistu Gimp 2.4 ei tuo vielä suuria uudistuksia, vaan pieniä parannuksia työkalujen toimintaan, nopeuteen, valikkorakenteeseen ja ulkoasuun uusien ikonien kera. Red Hat Magazine esittelee uudet ominaisuudet ja muun muassa valinta-, rajaus-, teksti- ja väripoimintatyökalut ovat saaneet parempaa käytettävyyttä. Myös Gimpin www-sivut ovat saaneet modernimman ulkoasun.

Luvassa on kuitenkin isompiakin uudistuksia, sillä Gimpin seuraavaa versiota varten on meneillään aivoriihi Gimpin käyttöliittymästä. Aivoriihen ideana on kerätä ideoita käyttäjien lähettämistä hahmotelmista, joita GIMPin käyttöliittymän kehittämisestä vastaava tiimi blogimuotoisesti listaa ja arvioi. Vuorovaikutus- ja käytettävyys asiantuntijoista koostuva tiimi suunnitteli Gimp 2.4:een esimerkiksi parannellut valinta- ja rajaustyökalut.

Parempaa kuvankäsittelyohjelmaa odottaessa, voi Gimpin toimintaa hienosäätää Linuxissa KDE-työpöydän asetuksista. Linux.com -sivusto ohjeistaa kesyttämään Gimpin muun muassa asettamalla sille ikkunakohtaisia määrityksiä ja määrittämällä valikoiden käyttäytymistä. Muutokset Gimpin toimintaan eivät ole suuret, mutta hieman parempaan päin.

Gimp ei ole Photoshop eikä koskaan tule olemaankaan, vaikka moni sitä toivoisikin. Gimp on kuitenkin ilmainen, useilla alustoilla toimiva ja useimmille riittävät ominaisuudet omaava kuvankäsittelyohjelma. Jos uuden opettelu on vaikeaa, on Photoshopin käyttöön tottuneille saatavilla Gimpshop, jossa valikot on järjestetty kuten Photoshopissa.

Paremmaksi ohjelmoijaksi

Coding Horror kirjoittaa, kuinka tulla paremmaksi ohjelmoijaksi ohjelmoimatta ja esittelee ajatuksen, että keskinkertainen ohjelmoija ei kokemuksen lisääntyessä muunnu taianomaisesti hyväksi ohjelmoijaksi. Hyvät ohjelmoijat tuntuvat omaavan luonnollisen kyvyn ohjelmointiin jo alusta alkaen. Asia ei tietenkään ole aivan näin yksiselitteistä ja esimerkiksi harjoittelemalla päästään parempiin tuloksiin.

Tiedetään, että on leveä kuilu ohjelmointia osaavien ja sitä osaamattomien välillä, mutta sama pätee myös ihmisiin, jotka osaavat ohjelmoida; hyvien ja keskinkertaisen ohjelmistokehittäjien välillä on suuri ero.

Jeff Atwood, Coding Horror -blogin kirjoittaja, lainaa Programmers at Work -teosta, jossa haastatellaan kuuluisia ohjelmoijia vuoden 1986 tienoilla.

Does accumulating experience through the years necessarily make programming easier?

Bill Gates: No. I think after the first three or four years, it’s pretty cast in concrete whether you’re a good programmer or not. After a few more years, you may know more about managing large projects and personalities, but after three or four years, it’s clear what you’re going to be. There’s no one at Microsoft who was just kind of mediocre for a couple of years, and then just out of the blue started optimizing everything in sight. I can talk to somebody about a program that he’s written and know right away whether he’s really a good programmer.

Jeff Atwood puoltaa Bill Gatesin ajatuksia ohjelmointitaitojen kehittymisestä ja on itsekin todennut, että hyvä ohjelmointitaito joko omataan, tai sitten sitä ei ole. Mikä sitten tekee ohjelmoijasta paremman ohjelmoijan, jos ei kokemus? Onko taitojen kehittäminen mahdotonta?

Coding Horror -blogin kirjoituksen mukaan paremmaksi ohjelmoijaksi kehitytään omaamalla ja kehittämällä intohimo kaikkeen muuhun ohjelmoinnin ympärillä. Et voi kehittyä paremmaksi ohjelmoijaksi vain pelkästään ohjelmoimalla, vaan voit vain täydentää ja parantaa jo olemassa olevaa ohjelmointitaitoasi laajentamalla sitä. Paremmaksi ohjelmoijaksi kehittymiseen tarvitaan oppimista ja kiinnostusta käyttäjistä, alasta ja bisneksestä. Mitä enemmän olet kiinnostunut eri asioista, sitä parempaa tulee työsi olemaan.

You’ve been haacked -blogi vastaa Coding Horrorin kirjoitukseen otsikolla ”Paremmaksi ohjelmoijaksi ohjelmoimalla paremmin”. Blogin kirjoittaja Phil Haack on samaa mieltä Jeff Atwoodin kanssa, että suurten kuvioiden ymmärtäminen on tärkeää etenemisessä hyväksi ohjelmistokehittäjäksi, etenkin jos olet ohjelmointitaidoissa 99 prosentin tasolla. Kuitenkaan useimmat ohjelmistokehittäjät eivät ole 99% tai edes 90% tasolla ja täten pystyvät kehittämään ohjelmointitaitojaan edellä mainittujen tärkeiden taitojen lisäksi.

Phil Haack ei tosin ole vakuuttunut, että ohjelmointitaitojen kanssa synnytään, sillä väitteen tueksi ei ole empiirisiä todisteita. Voiko ohjelmoija siis nousta 50% tasolta 90% tasolle? Haack kirjoittaakin, että viimeaikaisten tutkimusten mukaan uskomus ”synnynnäisiin lahjoihin” on vailla kovia todisteita väitteen tukemiseksi. Scientific American artikkeli ”The Expert Mind” toisaalta puoltaa Atwoodin ajatusta, että henkilön kokemus ei vaikuta suorituskykyyn, mutta lisää yhtälöön suunnitelmallisen opiskelun ja harjoittelemisen.

Suunnitelmallisella opiskelulla ja harjoittelulla ohjelmoija voi nostaa itsensä keskinkertaisuudesta hyväksi ohjelmoijaksi. Kehittymisessä ei ole kyse ohjelmoinnin määrästä, vaan ohjelmoimisesta paremmin. Mitä enemmän ja paremmin, sen parempi. Useimmilla ohjelmoijilla on vielä tilaa kehittää ohjelmointikykyjään ja ohjelmointiin liittyviä taitojaan. Ohjelmoijan osaamat oheistaidot erottavat hänet toisista ohjelmoijista ja lisäävät ohjelmoijan arvoa enemmän, kuin kehitys ohjelmointitaidoissa. Ohjelmointitaidot eivät rakennu pelkästään syntaksin, kontrollirakenteiden tai muiden teknisten ominaisuuksien osaamisesta.

Ei liene yllätys kenellekään, että harjoittelulla ja suunnitelmallisuudella kehitytään paremmaksi halutussa taidossa. Oli kyse sitten hyvää fyysistä kuntoa vaativista urheilulajeista, älykkyyttä vaativista peleistä, loogista päättelyä sisältävistä tehtävistä tai tässä tapauksessa ohjelmoinnista. Sisäinen lahjakkuus tai taipumus tiettyihin ominaisuuksiin auttaa tietylle tasolle pääsemistä, eikä kaikki välttämättä saavuta harjoittelemallakaan korkeaa tasoa, kuten urheilija suomen- tai maailmanmestaruutta. Hyväksi kehitytään kuitenkin vain harjoittelemalla, oli lahjakkuutta tai ei.

Toisaalta Atwoodin ja Haackin kirjoitusten kommenteissa heräteltiin kysymystä, miten määritellä hyvä ohjelmoija ja mikä tekee toisista ohjelmoijista parempia kuin toiset. Miten mitata koodia ja mihin verrata lopputulosta? Koodi ei ole samalla tavalla fyysinen saavutus, kuten urheilutulokset, joita voisi helposti vertailla. Tietenkin on erilaisia mittareita ja keinoja, joita koodeihin voi soveltaa.

On kuitenkin selvää, että jos ohjelmoimme enemmän, paremmin ja omaamme intohimon ohjelmointiin liittyviin asioihin, kehitymme kohti parempaa ohjelmoijaa.

Bash -shellin pikakomennot

All About Linux -blogissa on listattuna Bash-shellin pikakomentoja. Toinen komentorivin käyttämistä helpottava ominaisuus on Bashin täydennys -ominaisuus, esimerkiksi kirjoittamalla grep — ja painamalla kahdesti Tabia, saa listan mahdollisista parametreistä.

Konqueror-vinkki

Joskus on tarpeen käyttää ikkunointijärjestelmän ”ulkopuolista” tiedostonhallintaa. Yleensähän Gnomessa käytetään Nautilusta, KDE:ssä Konqueroria ja Xfce:ssä xffm:ää.

Konqueror avaa kuitenkin peruskomennolla ”konqueror” pelkän normaalin ikkunan, eikä tiedostonhallinta tule suoraan esille. Tekemällä pikakuvakkeen vaikka Xfce:n paneeliin sisältäen komennon ”kfmclient openProfile filemanagement $HOME” avautuu oma kotihakemisto suoraan kuvaketta klikkaamalla.

Dave’s Desktop -sivustolta voi lukea lisää Konqueroriin liittyviä vinkkejä, kuten peruskäyttöön liittyvät vinkit Conquering the Konqueror ja Saving Profiles Under Konqueror.

Finder ja piilotetut tiedostot

Applen OS X on tunnettu helppokäyttöisyydestään, mutta helppokäyttöisyydellä on myös negatiiviset puolensta. Kokeneena tietokoneen käyttäjänä muutamat Mac OS X:n ominaisuudet tuntuvat hieman omituisilta. Vaikka tarkoituksena on piilottaa käyttöjärjestelmän monimutkaisuudet loppukäyttäjältä, voisi silti edistyneille käyttäjille tarjota mahdollisuus laajempaan käyttöliittymään.

Linuxissa on usein asetustiedostot (kuten .bashrc, .torsmorc jne.) piiloitettu ”.” -etuliitteen alle, jotka ovat vakiona piilossa ja näkyvät tiedostonhallinnasta ne erikseen sallimalla (”show hidden files”). Myös OS X:ssä on piiloitettuja tiedostoja, mutta Finder ei tarjoa helppoa vaihtoehtoa niiden näyttämiseen. Toki aina voi käyttää konsolia, mutta Finder on jossain tapauksissa näppärämpi.

Onneksi OS X:lle on tarjolla paljon vinkkejä ja hyviä sivustoja, joilta etsiä tietoa ongelmaa. Ei tarvinnut montaa linkkiä Googlessa selata, kun eteen tuli OS X FAQ:n päivän vinkki: The Finder II – Show Hidden Files.

Ratkaisu oli lyhykäisyydessään seuraava: avaa spotlightillä etsien ”com.apple.finder”-tiedosto, vaihda kohdassa ”AppleShowAllFiles NO” arvoksi TRUE ja käynnistä Finder uudestaan (alt+omena+esc ja relaunch finder).

Piilotettujen tiedostojen piilottaminen on tehty ihan syyllä, sillä harvoin normaali käyttäjä tarvitsee niitä näkyvillä (jos laisinkaan). Itse kyllä kaipaisin Finderiin arvoa, josta piilotetut tiedostot voisi laittaa näkymään hieman helpommin.