Projekti Euler haastaa laskennallisilla pähkinöillä

Työskentelen päivisin pääasiassa Java EE -sovelluskehittäjänä, mutta koska 7,5 tuntia päivässä sovelluskehitystä ei aina ole riittävästi, päätin jatkaa vuosia sitten kesken jäänyttä taivaltani Projekti Eulerin parissa. Eli ratkaista erilaisia laskennallisia ongelmia vapaasti valittavalla ohjelmointikielellä. Tarkoituksenani on samalla opetella myös eri ohjelmointikieliä ja ohessa harjaantuvat myös matemaattiset ja algoritmilliset taidot. Kymmenen ensimmäistä ongelmaa ratkesi Pythonilla suhteellisen […]

Eclipse 3.7 Indigo on askel parempaan

Kesäisin juhannuksen ja kesälomien ohella on yksi asia, jota etenkin sovelluskehittäjät odottavat: Eclipsen uuden version julkaisu. Tänä vuonna Eclipse -kehitysympäristöstä julkaistiin 3.7 -versio, joka on koodinimetty Indigoksi. Eclipse Foundation koordinoimaan vuosittaiseen julkaisuun osallistui 62:n Eclipse -projektia, joista kehitysympäristön ekosysteemi rakentuu. Indigon suurimpia uudistuksia Java-kehittäjän näkökulmasta ovat muun muassa: Egit 1.0: Git-versionhallinnan integroiminen WindowBuilder: Graafisten SWT […]

Eclipse 3.6 Helioksen myötä kehitysympäristö on taas parempi

Eclipsestä julkaistiin jokin aika sitten 3.6-versio eli tällä kertaa tuttavallisemmin Helios, joka jälleen tekee kehitysympäristöstä asteen paremman. Suuria muutoksia ei hyväksi havaittuun kaavaan ole tehty, vaan uudistuksina löytyy pieniä, mutta hyödyllisiä lisäominaisuuksia. Tarkemman listauksen uusista ominaisuuksista löytää Helioksen About-sivulta What’s New -osiosta (ja netistä: JDT ja platform), mutta tässä muutamia poimintoja. Lisäosien asennus Eclipse Marketplacesta: […]

Pitäisikö Web-sovelluksilla olla yhtenäinen tyyli ja logiikka?

Nykyään suuri osa sovelluksista toimii Web-selaimissa ja sovellusten osalta on havaittavissa siirtymää työpöydältä Web-sovelluksiksi, jolloin aikaisemmin suhteellisen samanlailla toimivat ja näyttävät käyttöliittymät muuttuvat monimuotoisiksi. Web-maailmassa ei ole yhtenäistä tapaa toteuttaa asioita, vaan jokainen suunnittelija tekee kuten parhaimmakseen näkee ja sovellusten ulkoasut vaihtelevat suuresti. Perinteisten työpöytäsovellusten osalta eri sovellukset toimivat suurin piirtein samoilla periaatteilla ja toimintopainikkeet […]

Kumiankka-metodi debuggauksessa

Ohjelmoinnissa koodin kirjoittamisen lisäksi on tärkeää osata debugata koodia, eli selvittää mistä ilmennyt ongelma johtuu ja miten se ratkaistaan. Ongelmanselvitykseen on olemassa erilaisia välineitä, mutta yksinkertaisimmillaan se voi olla esimerkiksi kumiankka, kuten Canterbury Linux User’s Groupin postituslistalla asia ilmaistiin. Kumiankka-metodi debuggauksessa menee seuraavasti: Kerjää, lainaa, varasta, osta, valmista tai muuten hanki kumiankka (amme-tyyppiä) Aseta kumiankka pöydälle ja kerro, että […]

Vaadin tarjoaa Swingiä Web-sovellusten kehitykseen

Web-sovellusten kehitys Javalla on täynnä erilaisten frameworkkien kuten Strutsin, Springin ja JSF:n hyödyntämistä, joista jokaisessa on hyvät ja huonot puolensa ja varsinainen toteutus on usein sekoitus HTML-merkkausta ja koodia. Java EE -sovelluskehitystä voi kuitenkin katsella myös hieman erilaisesta näkökulmasta: Suomalainen IT Mill on rakentanut kokonaisuuden nimeltä Vaadin, joka tuo Javan Swing -maailman Web-sovelluksiin. Lopputuloksena on […]

Mac OS X ja dynaamisten kirjastojen käyttäminen

Olen viime viikkojen aikana yrittänyt saada Firefoxin mozvoikko-lisäosaa toimimaan asiallisesti Mac OS X:ssä ja teoriassa lisäosa toimiikin. Ainoana negatiivisena puolena on, että se vaatii kirjastojen sijoittamisen hakemistoon, jonne ne kääntäessä asennettiin, eli esimerkiksi /usr/local/lib -hakemistoon. Linuxissa ja Windowsissa lisäosa toimii, kunhan vaadittavat kirjastot löytyvät lisäosan sisään leivottuina. Mac OS X:ssä dynaamiset kirjastot toimivat hieman eri […]

Joustavat sisennykset selkeyttävät koodin lukemista

Ohjelmoijat ovat usein erittäin pikkutarkkoja siitä, miten he kirjoittamansa koodin jäsentelevät: käytetäänkö sisennyksessä tabulaattoria vai välilyöntejä, miten asiat rivitetään, tuleeko sulkeiden jälkeen väli vai ei ja niin edelleen. Teoreettisesti koodi on samaa, jäsenteli sen miten halusi, mutta käytännössä koodin lukeminen on huomattavasti helpompaa, jos se on rakenteeltaan selkeää ja yhdenmukaista. Koodin jäsentelyyn liittyvien sisennysten toimintaan […]

Java-kehitys ja OS X: JAR-paketin leipominen

JAR-paketin voi luoda Mac OS X:ssä joko perinteisesti tai helposti. Helpolla tavalla edettäessä saadaan määriteltyä muutamia OS X -spesifisiä ominaisuuksia, kun JAR-paketista luodaan niin sanottu app-sovellus. App:n rakentaminen onnistuu Xcode Developer Toolsin mukana tulevalla Jar Bundlerilla (/Developer/Applications/Utilities/), josta vain klikataan sopivat vaihtoehdot. Sovelluksen otsikon saaminen OS X:n menupalkkiin onnistuu antamalla Properties-välilehdeltä Bundle Nameksi haluttu teksti. […]

Versionhallinnan parhaat käytännöt koodaajalle

Versionhallinnasta ja siihen liittyvistä asioita on kirjoitettu paljon, mutta useissa kirjoituksissa on keskitytty lähinnä teknisiin asioihin ja eri versionhallintajärjestelmien mahdollistamiin asioihin. Harvat kirjoitukset keskittyvät käytännön asioihin ja niin sanottuihin parhaisiin käytäntöihin, joita soveltamalla versionhallinnan käytöstä saa paljon enemmän irti. Muutamia käteväksi todettuja ja omasta mielestäni ”parhaita käytäntöjä” koodaajan näkökulmasta ovat muun muassa: Työn kulku Vie […]