tekemiset

KotvaWrite Stories (2019)

Paranneltu versio..

Visuaalinen esittely: http://webapp.hoito.org/kotvawritestories/view.jsp?solutionid=228

Sisäänkirjautuminen: http://webapp.hoito.org/kotvawritestories/

Demo-tuotoksia: http://webapp.hoito.org/kotvawritestories/user.jsp?loginname=sm...

Landing-sivu: http://sovelluksien.hoito.org/kotvawrite/

KotvaWrite Stories (2018)

Käyttäjän näkökulmasta eräs mielekkäimmistä ominaisuuksista verkkopalvelussa, jossa tuotetaan sisältöä, joka jää palveluun talteen, on se, että kaiken aineiston voi ottaa helposti itselleen talteen ja tarvittaessa palauttaa sisältö yhtä helposti. Tietynlainen sutjakkuuden idea sekä käyttäjän hyväksi, että ohjelmistokehityksen näkökulmasta, on ohjannut viimeisintä KotvaWriten iteraatiota. Yksittäiset projektit saa kaikkine liitännäisineen zip-pakettiin, jonka voi säilöä itsellään kuten parhaaksi näkee ja jos pelkät kirjoituksien tekstiosuudet riittävät, ne saa talteen ja palautettua JSON-muotoisena. Drag'n'drop -tuki soveltuvissa kohdin, visuaaliset vihjeet ja kaikenlaisten hidasteiden, sekä turhien ominaisuusrajoitteiden poistaminen tekevät palvelun käyttämisen rennommaksi ja luovuuden virtaa avittavaksi. Mahdollisuus asettaa kirjoituksille ja vähän kaikelle muullekin attribuutteja, joiden avulla juuri tietynlaista aineistoa olisi nopeampi löytää, oli pysynyt pitkään mukana, mutta tämänkaltainen on jotain, jota moni on yrittänyt, eikä siitä koskaan ole saatu kauttaaltaan kelpoisaa ja helppoa käyttää, joten se ominaisuus on häivytetty pois. Jako kahteen eri sovellukseen osoittautui epämukavaa muistikuormitusta aiheuttavaksi ohjelmistoteknisessä mielessä, vaikka se ohjelmistoarkkitehtuurisesti olikin ollut jotain fiiniä ja hienoa, joten pelkkä KotvaWrite Stories on se, mitä jatkossa kehitetään. Uusina ominaisuuksina ovat mm. käyttäjäkohtaiset profiilisivut, joiden kautta lukijat voivat silmäillä, minkälaisia julkaisuja käyttäjältä on tarjolla ja minkälainen henkilö on kyseessä, sekä kaikenlaista pientä hyödyllistä kuten kirjoituksien valmiusasteen merkkaaminen. Viimeisimmät ruutukaappaukset saatavilla myöhemmin.

KotvaWrite Stories ja KotvaWrite Explanations (2017)

Olennaisin tavoite KotvaWritessa on ollut se, että lukuisia kirjallisten teosten asettelukokeiluja ja säätöjä pystyisi tekemään useita siinä määrin lyhyessä ajassa, että odottavan aika ei tuntuisi pitkältä ja että mielekkäisiin vaihtoehtoisiin päädyttäisiin vaivattoman tuntuisesti. Käytetty kolmannen osapuolen ladontojärjestelmä ei kuitenkaan pysy mukana niin nopeassa tahdissa, mikä ohjasi merkittävästi tuotekehitystä sillä tapaa, että päädyttiin jakautumaan kahteen eri tuotelinjaan, joista toinen (KotvaWrite Stories) tuottaa HTML-pohjaisia teoksia monipuolisemmin tyylikeinoin ja toinen (KotvaWrite Explanations) tuottaa sekä PDF-, että HTML-pohjaisia teoksia, mutta aiempaa hieman rajatummin asettelu- ja säätökeinoin. Uutena ominaisuutena mm. hakutoiminto. Näille ei vielä ole omaa esittelysivustoa, mutta näyttökaappauksista saa alustavaa tuntumaa näiden kahden tuotteen eroista.

JDK 1.8, JPA, REST, EclipseLink, Eclipse, Visual Paradigm for UML, Foundation, Backgrid, Backbone, Underscore.js, SASS, jQuery, HTML5, CSS 2.1/3, MySQL, MariaDB, MongoDB, JavaScript, NoSQL, JNDI, Tomcat 8, Digital Ocean, Putty, Linux command line tools, TeX, LaTeX, XeLaTeX, Loadster, NeoLoad, New Relic, Datadog, Nginx, HAProxy, Parse API, UML, GIT, JUnit, Photoshop, MySQL Workbench

KotvaWrite 2

Edelleen kyse verkkopalvelusta, joka jämäköittää kirjamaisien, verkossa luettavien teoksien tuotantoprosessia. Palvelu koostuu neljästä osiosta, joissa voi ajatella tehtävän seuraavia asioita:

Edelliseen versioon nähden merkittävin uudistus on tapahtunut käyttöliittymätasolla, joka on laitettu kokonaan uusiksi. Internet Explorerin kohdalla tuki alkaa versiosta 9. Palvelun suunnittelussa on hyödynnetty mukautuvaa verkkosuunnittelua (eng. responsive design) sen parantaessa olennaisesti käyttökokemusta. Sittemmin mukaan on tullut jonkin verran lisäominaisuuksia (mm. automatisoidusti generoituva PDF-tiedosto ja HTML-version tulostusversiota on hienosäädetty).

Java EE 6, JPA, REST, EclipseLink, Eclipse, Oxygen XML, Visual Paradigm for UML, Foundation, Backgrid, Backbone, SASS, jQuery, HTML5, CSS 2.1, MySQL, OrientDB, XML, iText, JavaScript, NoSQL, JNDI, Tomcat 7, AppFog, UML, Mylyn, GIT, JUnit, Photoshop, MySQL Workbench

KotvaWrite v1.0

KotvaWrite on hyödyllinen verkkopalvelu sellaisen tekstipohjaisen aineksen luomiseen ja editoimiseen, joka voi ottaa kirjamaisen rakenteen (käytännössä useita kirjoituksia sijoitettuna kokoelmiin, jotka voidaan yhdistää isommaksi kokonaisuudeksi) ja jonka voi halutessaan exportata PDF-tiedostoksi tai sen antaa olla muiden luettavissa HTML-muotoisena. Tekstin joukkoon on mahdollista sijoittaa kuvia, kuvituksia, piirroksia ja tiettyjä muunlaisia "liitteitä", joita on usein nähtävissä blogiviesteissä.

Java EE 6, JPA, REST, EclipseLink, Eclipse, Oxygen XML, Visual Paradigm for UML, Dojo, jQuery, HTML5, CSS 2.1, MySQL, OrientDB, XML, JavaScript, NoSQL, JNDI, Tomcat 7, AppFog, UML, Mylyn, GIT, JUnit, Photoshop, MySQL Workbench

Esittelyvideo (demovideo 2) Vimeossa: https://vimeo.com/68721442

Ancoaarmade (KotvaWriten edeltäjä)

Tarkoituksena ollut kehittää verkkopalvelu, joka palvelisi sen käyttäjiä mm. seuraavissa tarpeissa: havaintojen ylöskirjaaminen, itseoppiminen, tiedon järjestely ja julkaiseminen, tiedon tuottaminen, ajatusten jäsentely ja asioiden muistaminen. Lopputuotteena ovat haluttaessa julkiseksi(kin) asetettavat kirjoitukset, jotka voivat koostua erilaisista kerätyistä tai generoiduista aineksista kuten videoleikkeistä, kaavioista, kuvista, piirroksista yms. havainnollistavasta materiaalista. Työn alla olevaa teosta voi tarkastella useista eri "perspektiiveistä". Teoksiin sisällytettäväksi voi tuoda ulkoisista tietolähteistä tai omia päätelaitteita (ei pelkästään tavanomaisia mobiililaitteita) käyttäen dataa erilaisissa muodoissaan, jota voi prosessoida eri tavoin, sen lopulta muuttuessa "asioiksi" ja "tietyiksi" (eng. things ja particulars).

Java EE 6, JAXB, JPA, EclipseLink, Eclipse, Oxygen XML, Visual Paradigm for UML, Dojo, jQuery, HTML5, CSS 2.1, MySQL, OrientDB, XML, JavaScript, NoSQL, JNDI, Tomcat 7, CloudBees, Amazon AWS, Jasmine, DOH Robot, UML, Microsoft Project, JIRA, Mylyn, GIT, PureTest, CodePro Analytix, PMD, JUnit, Photoshop, Fireworks, SHA1, PayPal API, Chrome extension, Firefox Add-on, Mockingbird, Adobe AIR, MySQL Workbench, Jenkins, continuous integration, REST, async servlets + filters, refactoring, design patterns, naming conventions

Samalla sisäänkirjautumisella KotvaWrite Stories -verkkopalveluun saa käyttöönsä myös 2+n muuta palvelua, jotka ovat tarkoitettu teosten tuotannon siihen vaiheeseen, jossa vasta keräillään ja säilötään lähdemateriaalia, sekä pikaiseen jonkin aiheen mieleenpalauttamiseen.

Passenger857:ään voi lähettää aineistoa (kuvia, videoita, PDF-tiedostoja, PowerPoint-tiedostoja ym.) esim. mobiilisovelluksilta, tietokoneen työpöydältä, selainten lisäosilta ja sen omilla lomakkeilla.

Sihteeriopiston olennaiset termit ovat englanniksi adequate, adequate set ja items. Itemsit ovat kerättyjä aineistoja, jotka ovat jäsenneltynä kokoelmiinsa (adequates) ja jotka taasen ovat jäsenneltyinä niitä säilöviin kokoelmiin (sets).

Kokeiluja erilaisiksi avustaviksi toiminnoiksi ja välineiksi on monenlaisia kuten aineiston esikatselu Chromecast-välitteisesti erillisellä näyttöruudulla, missä ohjaimena toimii Bluetooth-pohjainen pienoisohjain.

Visuaalinen esittely: http://webapp.hoito.org/kotvawritestories/view.jsp?solutionid=235

Java, JDK 1.8, JPA, REST, EclipseLink, Eclipse, Foundation, Backbone, Underscore.js, jQuery, HTML, CSS, MySQL, JavaScript, Tomcat 8, Apache PDFbox, Apache POI, Extended Java WordNet Library, Clarifai, Aylien, MySQL Workbench, dbForge Studio for MySQL, Android Studio, Android, Chromecast, NFC, Web Socket, Bluetooth

Datasta puheen ollen (2013)

Blogi, jossa tulee julkaistuksi henkilökohtaisesti vähintään tunnin tai parin ajan tutustuttuja laitteita, palveluja ym. usean erilaisen käyttäjäryhmän kannalta (loppukäyttäjät, yritykset, kehittäjät, ym.). Luettavissa: http://sovelluksien.hoito.org/datastapuheenollen/

Symbet ja tekoneuronit (proof of concept, 2014)

Symbet-simulaatio ilmentää sitä, kuinka yhden signaalin saapuessa noodiin, mahdollisimman monta signaalia päätyy eteenpäin. Tekoneuronit-simulaatio ilmentää sitä, kuinka riittävän monen signaalin saapuessa yksi uusi signaali päätyy eteenpäin.

Javascript, HTML, jQuery, SVG, CSS

SuddenSummation (2011)

Kakuro-tyyppinen loogista päättelyä vaativa peli. Saatavilla Google Playstä: https://play.google.com/store/apps/details?id=org.hoito.android...

Java, Android, XML, UML

Java-pohjainen sovellus generoi .tex-tiedoston, josta se tuottaa xelatex.exeä tai pdflatex.exeä käyttäen .pdf-tiedoston, jonka sisältöön ja rakenteeseen vaikuttavat web-käyttöliittymässä tehdyt säädöt, annettu teksti ja melko harkitsemattomiin kohtiin sijoitetut kuvat. XeTex-ladontajärjestelmä laskee mahtuvuudet, sekä latoo tekstit ja kuvat. Apache PDFBox tuottaa yksittäisistä sivuista esikatselukuvat web-käyttöliittymässä tarkastelua varten.

Java, JavaScript, TeX, Foundation, Backbone.js, PDFBox

Helpdesk (2010)

Opinnäytetyönä tehtynä selvitys Java-pohjaisen SmartGWT-sovelluskehyksen soveltuvuudesta ja vaikutuksesta tietojärjestelmän kehitystyöhön.

Java, SmartGWT, Google Web Toolkit, SQL, JDBC, JavaScript, HTML, CSS, SHA1, UML, Eclipse, Tomcat, RPC, 3-tasorakenne, Linux, Windows, Subversion

Necessa (2013, 2014, 2015)

Necessa on "aikomuksia tehtäväksi"-sovellus, jota käyttäessä voi niin valitessaan hyödyntää myös NFC-tageja kätevöittämään aikomuksiensa merkitsemistä senhetkisiksi tarpeiksi. Tunnistettuaan itsessään yksittäisen tarpeen siinä määrin tarkkaan, että pystyy määrittelemään, missä tämän tarpeen voi käsitellä, voi sen merkitä Necessa -sovellukseen, mistä se on sitten seuraavilla kerroilla helppo nostaa uudelleen senhetkisten tarpeiden listalle. Tarvittaessa tarpeen määritelmän voi jättää laveamminkin määritellyksi, mutta saattaa osoittautua hyödylliseksi hakea hiukan ilmaisuvoimaisempaa määritelmää kuin esim. "jotain hyvää"

Android, Java, Bluetooth, NFC, SQLite, Google Maps, apit ym.

Esittelysivusto: http://sovelluksien.hoito.org/necessa/

Asennettava Android-sovellus: https://play.google.com/store/apps/details?id=org.hoito.mobile....

Kahdesta sivusta, joiden välillä sovelluksessa enimmäkseen siirrytään, jos Asetukset-sivu jätetään tässä kohdin vähemmälle huomiolle, välilehdet-sivu on se, jossa on nähtävillä niitä tarpeellisia, joita käyttäjä on merkinnyt käsiteltäväksi. Käsitellyksi merkitsemisen jälkeen käsitelty asia siirtyy arkistoon (voidaan tallentaa myös raportiksi). Ideat ovat lyhyitä ylöskirjaamuksia, joista voidaan muodostaa uusia harkittavia. Harkittava ja tutkiskeltava ovat sovelluksen olennaisia avainsanoja, tutkisteltavien ollessa niitä, jotka on valikoitu etsimisen kautta löytyneiden paikkojen joukosta tai jotka on itse sijoittanut johonkin kohtaan karttaa. Paikkoja voi hakea joko sijainnilla (GPS, WiFi) tai manuaalisesti osoittamalla.

Sovelluksen suunnittelullisiksi lähtökohdiksi on asetettu, että sen käyttäjä voi asettaa kerryttämänsä tiedot sellaisten muiden sovellusten käytettäväksi, jotka ovat varta vasten tarkoitettu käytettäväksi Necessan kanssa. Necessan ja näiden muiden sovellusten välillä on riippuvuussuussuhde, missä näiden muiden hyödynnettävyys nousee korkeimmalle tasolle vain yhdessä Necessan kanssa käytettäessä. Nämä muut sovellukset voivat kerätä oman informaationsa monista eri lähteistä kuten sensoreilta, älykelloilta, erilaisissa tiloissa olevilta intrumenteilta, sekä verkkopalveluista ja tietokannoista. Jos käyttäjä niin valitsee, voi hän rajoittaa itse kerryttämiensä tietojen näkyvyyttä muille sovelluksille. Necessa ei tallenna mitään käyttäjän tietoja verkkoon, vaan kaikki tietoo säilyy käyttäjän mobiililaitteessa. Tarvittaessa käyttäjä voi kopioida muodostuvan tietokannan laitteelta toiselle tai tallentaa tietonsa tiedostoon, jonka voi itse siirtää talteen toisaanne.

Darenci (2015)

Darenci on Necessan kumppanisovellus, jolla voi laatia välitavoitteista koostuvia suunnitelmia, missä välitavoitteiden kesken voi olla riippuvaisuuksia, jotka määräävät missä järjestyksessä välitavoitteet on käsiteltävä. Yksittäinen välitavoite on tarve/aikomus, joka on joko johdettu Necessaan talletetusta harkittavasta, jolla on yhteys johonkin tiettyyn käsittelypaikkaan tai sitten se on johdettu erillisestä harkittavasta, joka on kuvailevan tekstinsä osalta vapaamuotoinen.

Android, Java, Bluetooth, NFC, SQLite, Google Maps, apit ym.

Esittelysivusto: http://sovelluksien.hoito.org/darenci/

Casual PubMed (2011, 2012, 2013)

Viimeisintä Casual-sarjan tuoterunkoa käyttämään päivitetty mobiili käyttöliittymä PubMedin sisältämien metatietojen selailuun ja kokotekstien saavuttamiseen. Kaksikielinen. Saatavilla Google Playstä. Privaattikäytössä mahdollisuus kerätä tietueita palvelimelle myöhempää, selaimella tapahtuvaa, tarkastelua varten.

Asennettavissa: https://play.google.com/store/apps/details?id=org.hoito.mobile....

Java, Android, fragments, XML, REST, Git, UML, kosketuseleet, monikielisyys, JPA, EclipseLink, JSP, MySQL Event Scheduler, Red Hat's OpenShift

modulepubmed (2011)

Javalla tehty versiointi Pubmed slicerista (sekä web-, että Android-käyttöliittymät). Palvelusta on katseltavissa videoesittely Vimeossa (http://vimeo.com/32319721).

Java, JSF2, JSTL, RichFaces, JIRA, Facelets, JUnit, DAO, JPA, JTA, JDBC, Managed Bean, JNDI, Tomcat, PostgreSQL, Bitronix Transaction Manager, CSS, jQuery, HTML, JavaScript

Casual Publication Explorer (2013)

Casual-sarjan tuoterunkoa käyttämään päivitetty mobiili käyttöliittymä suomalaisiin DSpace-pohjaisiin julkaisurekistereihin (sisältävät mm. opinnäytetöitä, pro graduja, artikkeleita ja tutkimusraportteja), joista voi sovelluksen kautta ladata itselleen myös mahdollinen kokoteksti PDF-muodossa. Kaksikielinen. Saatavilla Google Playstä. Privaattikäytössä mahdollisuus kerätä tietueita palvelimelle myöhempää, selaimella tapahtuvaa tarkastelua varten.

Asennettavissa: https://play.google.com/store/apps/details?id=org.hoito.mobile....

Java, Android, fragments, XML, REST, Git, UML, kosketuseleet, monikielisyys, JPA, EclipseLink, JSP, MySQL Event Scheduler, OpenShift

Taittajana Etelä-Karjalan museolla (2009)

Museoviesti-lehden yhden numeron taittaminen tiiminä artikkelikirjoittajien, valokuvaajien ja päätoimittajien kanssa. Remix-versio luettavissa Issuussa (http://issuu.com/persilj/docs/museoviesti2009remix).

Taittajana Etelä-Karjalan museolla (2009)

Taittotyötä InDesignillä, valmiina tai puolivalmiina saadun materiaalin (tekstit ja kuvat) asettelua, kuvankäsittelyä Photoshopilla, filmiskannausta, valokuvausta, yms.

--

Microsoftin Photosynth-tekniikan kokeilua Lappeenrannan kaupungintalon sisätiloissa otettuja kuvia käyttäen. Videoversio katseltavissa Vimeossa (http://vimeo.com/3991797).

Derivaattaharjoitus (2010)

Pienehkö interaktiivinen kokeilu, jossa kooltaan skaalattavaan ikkunaan/koordinaatistoon piirtyy tangenttisuora sen mukaan, missä kohdin hiiren osoitin kulloinkin sijaitsee. Funktion kuvaaja voi vaihdella muodoltaan/kaavaltaan. Katseltavissa Vimeossa (http://vimeo.com/8454104).

Java, Swing, Netbeans, matematiikka

Kuiskohal (2014)

Kuiskohal on Android-mobiilisovelluksen ja NFC-tagien avulla pelattava peli, joka voidaan valmistella käytettäväksi esim. johonkin esinekokoelmaan tutustujien iloksi. Pelissä voidaan nähdä kaksi toisiinsa limittyvää vaihetta, joista ensimmäisessä löydetään skannattavia NFC-tageja, joiden skannaamisen jälkeen käyttäjä saa mobiilisovellukseen näkyviin yhden maksimissaan kymmenestä kuvasta, jotka hänen pitää saamiensa vihjeiden avulla laittaa oikeaan järjestykseen. Pelin kuvien ja vihjeiden hallinnoijan huolehdittavaksi jää pelin viihdyttävyyden hienosäätö kuvien valitsemisen ja määrittelemilleen loppukäyttäjille soveltuvien vihjeiden kirjoittamisen muodossa. Ratkaisu koostuu kolmesta osatekijästä: mobiilisovellus loppukäyttäjälle, verkkopalvelu kokoelmien hallintaan, tuottamiseen ja muokkaamiseen, sekä mobiilisovellus NFC-tagien kirjoittamiseen. Kuvien nopea latautuminen käyttäjien päätelaitteisiin on varmistettu käyttämällä Content Delivery Network -palvelua

Java, Java EE, Android, Content Delivery Network, OpenShift, Tomcat, pilvipalvelut, ym.

Leap Motion -laitetesti (2015)

Kokeiluja Leap Motion -laitteen kanssa siten, että verkkosivu tunnistaa laitteen läsnäolon, minkä jälkeen pystyy sormieleillä saamaan ruudulla jotain mielenkiintoista aikaan kuten elementtien siirtelyä paikasta toiseen. Testejä (vaativat Windowsilla Leap Motion -ohjelmiston legacy-version v2.3, uudemmasta poistettu tiettyjä ohjelmistorajapintoja): Testisivu 1 (http://sovelluksien.hoito.org/leapmotionkokeilu/), Testisivu 2 (http://sovelluksien.hoito.org/leapmotionkokeilu/kokeilu2/)

Moneinas (2015)

Moneinas on aikeidenhallintasovellus Necessaa rennompi asioiden suorittamiseen innostava mobiilisovellus (http://sovelluksien.hoito.org/moneinas/), avainsanoina ollen suunnilleen ja jotakuinkin. Se sopii parhaiten sellaiselle, joka haluaisi jakaa aikaansa usealle eri kiinnostuksenkohteelle, mutta sopivan järjestelmällisyyden puutteessa huomio on tavannut jakaantua ylenmäärin tietyille muutamille asioille, muiden kiinnostuksenkohteiden odotellessa vuoroaan jopa kuukausia.

Asennettavissa: https://play.google.com/store/apps/details?id=org.hoito.mobile....

Android, Java, SQLite, Excel

Feed rinser (2007)

Uutisaggregaattori valikoitavissa olleiden sivustojen RSS-virtojen seuraamiseen.

PHP, JavaScript, RSS, HTML, CSS, XML, XSL

Casual DigitalNZ (2011)

Vaihtoehtoinen käyttöliittymä museon tarjoamaan ohjelmointirajapintaan.

Java, Android, Digital NZ -API

Green minute (2005)

Pienimuotoinen ajanvarausjärjestelmä.

PHP, JavaScript, SQL, HTML, CSS

Query composer (2007, 2008)

Palvelu, joka luo suoria hakulinkkejä lukuisiin erilaisiin hakukoneisiin, joita voivat olla niin kuvahakuihin kuin tieteellisen tiedon hakemiseen tarkoitetut, että myös monet muut.

PHP, HTML, jQuery, CSS

Terveystietotaltio: Ryydyiksnä (2011)

Tietojärjestelmä, jonka syötetietona toimivista potilastiedoista, tutkimustuloksista, hoitokokeiluista, ruokavalioista, ym. muodostetaan tietyn prosessin kautta semanttisen tiedon verkko, johon kertynyttä tietoa ja yhteyksiä käytetään käyttäjän tarkasteltavaksi generoitavien tietokorttien sisältönä. Sisältää isoruutuisille näytöille tarkoitetun verkkokäyttöliittymän ja toiminnoiltaan rajoitetun käyttöliittymän Android-sovelluksena. Palvelusta on katseltavissa myös Vimeossa oleva videoesittely (http://vimeo.com/32317376).

PaaS, Java, Grails, Groovy, GORM, JDBC, Sesame, PostgreSQL, Linux, Tomcat, RDF, XHTML, CSS, JavaScript, JavaScript InfoVis Toolkit, jQuery, Android, XML, Oxygen XML, XML authoring, XLST, XSD

Casual Blip ja Casual Flickr (2012)

Casual-sarjan tuoterungon kustomointia kahta eri ohjelmointirajapintaa varten: Blip ja Flickr

Java, Android, dom4j, XPath, MP4, XML, REST, UML, Apache HTTPComponents

Rentotieto (2012)

Mobiili, interaktiivinen selailukäyttöliittymä Tilastokeskuksen StatFin-tilastopalvelusta valikoituun tilastoaineistoon.

PC-Axis, Excel, SQL, Android, tablet, Java, Git, SQlite, UML, HTML5, jqPlot, Google Maps, diagrammit, JavaScript, SQL, HTML, CSS, XML, XSL, REST

Tietofarmi (2010)

Mielenkiintoisten artikkeleiden, blogiviestien, tutkimustulosten, pressijulkaisujen ja videoklippien julkaisupalvelu, joka sisälsi neljä erilaista näkökulmaa kertyneen tiedon tarkastelemiseksi. Palvelusta on katseltavissa videoesittely Vimeossa (http://vimeo.com/32315647).

PHP, JavaScript, Mootools, SQL, XHTML, CSS, XML, XSL, RSS, Firebug, Oauth

Kimmellys (2014)

Kimmellys on eräänlainen sensoreiden, älylaitteiden ja tietynlaisten muiden sovellusten yhteinen hallintapaneeli Android-mobiilisovelluksena, jonka kautta voi suorittaa valittavissa olevia ohjaustoimintoja. Jokainen täten hallintaan asetettava laite, väline tai sovellus vaatii erillisen Kimmellys-yhteensopivan sovelluksen asentamisen. Ne voivat hyödyntää monia erilaisia langattomia tekniikoita kuten ANT+, WIFI ja Bluetooth LE, sekä ne voivat tarvittaessa hakea lisädataa verkosta tai saattaa jonkin asian prosessoinnin etäkäyttöisen ja ohjelmointirajapinnan tarjoavan tietojärjestelmän suoritettavaksi.

Java, Android, Eclipse, ym.

”Kuinka määrittelisit punaisen?” (ideointi, 2009)

Suunnitelma kohteiden ja niiden sijainnin kuvailemiseksi predikaatti+adjektivi -parien avulla, visualisoituna Google Mapsin päällä, täydennettynä tietolähteillä. Luettavissa SlideSharessa (http://www.slideshare.net/persilj/miten-mrittelisit-punaisen-v105).

RDF, semantiikka, Java, RDFQuery, Javascript, XML, XSD, XSL, XHTML, CSS, SPARQL, SQL, UML, jQuery

Transhumanity (2003)

Sisällönhallintajärjestelmän käyttöönottaja, ulkoasun kehittäjä, koodaaja ja tekninen tuki.

Seaworkmen Oy (1999)

Seaworkmenin keikka toi mahdollisuuden tehdä verkkosivut uusiksi myös heidän kumppaninaan toimineelle yritykselle.

Sukellus-Kotka Oy (1999)

Tämä oli aika laaja ja kokonaisuutena työteliäs sivusto, varsinkin jos ottaa huomioon, että näinä vuosina vasta aloittelin opettelemaan HTML:llää, enkä edes tiennyt mistä tulee lyhenne CMS. Yksittäisiä sivuja oli noin sata.

Rakennuskorjaus Raunio Oy (1999)

Seaworkmen Oy:n sivujen teon yhteydessä (Rakennuskorjaus Raunio Oy:n tytäryhtiö) minua pyydettiin kehittelemään jotain pientä myös Rakennuskorjaus Rainio Oy:lle.

Viherrakennus Karteam Oy (2002)

Päivitin ulkoasullisesti yrityksen verkkosivut.

Lappeenrannan Palloilukeskus Oy (1999)

Sisällön uudelleenjärjestelyä ja ulkoasu kokonaan uusiksi.

Kanssaylläpitäjänä, bloggaajien, artikkelituottajien ja kuvittajien "esimiehenä", handymanina, puuhapetenä, teknisenä tukena yms. Foorumiosio ehti melkein saavuttaa miljoonan viestin rajan (ennen radikaalia downgreidausta). Videoesittely katseltavissa Vimeossa (http://vimeo.com/10379347).




Jotta voitaisiin yleensä keskustella tai kertoa tietojärjestelmistä (eng. information systems), on ensin määriteltävä vähintään suuntaa antavasti mistä on kyse, muutoin voidaan tulla tuottaneeksi virheellinen käsitys, joka kopioituu sellaisenaan tai hieman muuntuneena ihmismielestä toiseen. Tällaista satunnaisuutta ei voitaisi sallia tietojärjestelmässä.

Tietojärjestelmän tarkoituksena, eräänä niistä, on toimia periaatteella "samoilla lähtötiedoilla ja informaatiosisällöllä saadaan aina sama vastaus". Toisaalta, tuo määritelmä kattaa myös systemaattisen virheen mahdollisuuden eli virheellisillä tiedoilla saadaan aina täsmälleen sama virhe aikaiseksi.

Ihmisen jotain tavoitetta tai tarkoitusta palvelemaan suunnitteleman järjestelmän rajapinta tuntuu helpommalta määritellä siinä vaiheessa, kun järjestelmää suunnitellaan, mutta kun järjestelmä on ollut käytössä jo pidempään, on järjestelmän ja ympäristön, jonka osana järjestelmä on, rajoja huomattavasti vaikeampi osoittaa.
Vaikka jokin tietojärjestelmä olisi toiminnassa pelkästään jossain yksittäisessä rakennuksessa tai tehtaassa, joka kattaa maa-alaltaan jonkin pinta-alan, tietojärjestelmän ydinosan sijaitessa fyysisesti jonkin yksittäisen tehtaan tietotekniikkalaitteille varatussa lasisessa kaapissa palvelinlaitteen kiintolevyllä, olisi se silti yhteydessä tietoverkkokaapaleiden ja langattomien yhteyksien kautta kyseisen tehtaan muihin laitteistoihin, työntekijöihin heidän käyttöliittymiensä kautta, kyseisen tehtaan liiketoimintaprosesseihin, sekä olisi osana johdon liiketoimintasuunnitelmaa. Liiketoimintasuunnitelma taasen pohjautuu johonkin mitä on tapahtunut, on tapahtumaisillaan tai tulee tapahtumaan ympäristössä. Ympäristöksi voidaan käsittää lähitienoiden lisäksi koko maapallo (jopa koko universumi).

Tietojärjestelmille ei ole ollenkaan leimallisesta se, että ne pysyisivät toteutuksensa jälkeen muuttumattomina. Tämä on tapauskohtaista. Jotkin tietojärjestelmät kuten maapallon laajuisesti toimivat pankit ovat niin laajalti hajautettuja ja valtavan monista osista koostuvia, että jo sellaisen tietojärjestelmän suunnittelemiseen kuluu aikaa joka lasketaan vuosissa, ei kuukausissa tai viikoissa. Tietojärjestelmien fyysinen perusarkkitehtuuri ei yleensä muutu kovinkaan ripeätahtisesti; ainakaan toistaiseksi ne eivät reagoi ympäristössä tapahtuviin muutoksiin itseorganisoidusti katkaisemalla itsestään yhtä lonkeroa ja kasvattamalla toisaalle kaksi uutta.

Pienempimuotoisemmissa tietojärjestelmissä, joiden ominaisuuksia voidaan muuttaa ripeämmin sitä mukaa, kun käyttäjiltä/asiakkailta ehdotuksia tai vaatimuksia ilmaantuu, muutokset voidaan toteuttaa ketterämmin. Tietynlaisia ohjelmiston kehittymismenetelmiä itseasiassa kutsutaankin ketteriksi menetelmiksi, sillä ne (menetelmät) on alunpitäenkin suunniteltu sellaiseksi, että laadun tarkkailu on jatkuvaa, muutoksia voidaan toteuttaa nopealla aikataululla ja uusia ominaisuuksia voidaan toteuttaa vaikka yksitellen. Tässä yhteydessä on myös sopivaa retorisesti kysyä, olisiko näitä menetelmiä voitu kehittää ilman joitain tiettyjä tietojärjestelmiä, joiden kehittämiseksi olisi ensin pitänyt tulla kehitetyksi joitain muita tietojärjestelmiä?

Tietojärjestelmien toteuttamisien yhteisinä tarkoituksina on helpottaa tai tehostaa jotain toimintaa, tai yleensäkin tehdä tuo jokin mahdolliseksi tiedon käsittelemisen kautta. Tietojärjestelmät eivät ihmismielen tapaan väsy ja unohtele asioita, vaan ne vain yksinkertaisesti toimivat. Tietenkin sillä oletuksella, että tietojärjestelmän fyysiset komponentit ja osatekijät pidetään kunnossa ja huollettuina. Tosin, ylikuormittuminen liiasta informaatiosta on mahdollista myös tietojärjestelmille.

Tieto käsitteenä voi arkijärjellä ajatellen tuntua harhaanjohtavan helpolta käsittää, mutta kun tietoa tallennetaan tietojärjestelmään, luetaan sieltä ja käsitellään siellä, on määritellyn asian oltava yksilöitävissä uniikilla tavalla. On helppoa osoittaa sormella kadulla ja sanoa: "katso, miten söpö pikku kissa..", mutta tietojärjestelmässä, jonka kehittämisen tarkoituksena on ollut tarjota ihmisten käyttöön tietokannan ja käyttöliittymän sisältävä tietojärjestelmä, joka mahdollistaa erilaisten kissojen yms. selailun ja haun, on nuo kaikki kissat oltava eroteltavissa toisistaan jollakin tapaa. Helpoin tapa erotella asioita on asettaa niille yksilöivä numerokoodi, mutta tiedonhaun kannalta pelkästään se olisi kovin epäkäytännöllistä; haettaessa "kissoja" saisi vastaukseksi miljoona kissaa; haettaessa sokkona numerokoodilla, saataisiin vastaukseksi jotain satunnaista.

Jos tietojärjestelmän avulla lähinnä ylläpidetään muuttumatonta tietokannan sisältöä, joka pyrkii jäsentelemään maailmaa, ylläpitäjä joutuu ottamaan kantaa todellisuuden rakenteeseen, kategorisoimaan asioita ja attribuoimaan (määrittämään ominaisuuksia). Näillä menetelmin voidaan saavuttaa melko stabiilina pysyvä uskomus siitä, että näin asiat ovat, mutta kuten antikvariaattienkin pitäjät tietävät, luokittelu on usein luokatonta. Liian suuri attribuuttimäärä muuntuu herkästi ongelmaksi ihmisille, koska ihminen ei pysty käsittämään/käsittelemään suurta tietomäärää kerralla. Tietojärjestelmät ovatkin olemassa senkin vuoksi, että ne suorittavat raakatiedon esiprosessoinnin ja joko annostelevat prosessoituneen tiedon käyttäjille valmisannoksina tai asettelevat esille valikoiman prosessoitunutta tietoa käyttäjän itsensä jatkomietittäväksi ja muualta saatuun tietoon yhdisteltäväksi – edelleen jossain toisaalla prosessoitavaksi.

Platonin klassisen määritelmän mukaan tieto on "hyvin perusteltu tosi uskomus", mutta onko informaatio sama asia kuin tieto? Englanniksihan tietojärjestelmä on siis information system, mutta toisaalta eikö tieto ole englanniksi knowledge? Lisäksi käytännölliseksi termiksi tulee myös data, jonka itse tässä määrittelen "joksikin, jotka esittävät jonkin asian laadullisia tai määrällisiä ominaisuuksia ja joille ei vielä ole annettu yksilöivää merkitystä suhteessa johonkin". Yleisemmin data tavataan ajatella alimmaksi abstraktion tasoksi, josta informaatio ja tieto johdetaan. Esimerkkinä mittausdata. Jos informaatiota ajattelisi "datana, jolle on annettu merkitys", voisi tiedon ajatella olevan informaation avulla perusteltu tulkinta, johon uskomuksensa voi perustaa. Mutta miksi sitten tietokanta on englanniksi database?

Kirjailijana Lewis Carroll oli hyvin selvillä siitä, että sanojen sekoilu sopivina annoksina voi olla hauskaa. Siviiliammatissaan hän oli kuitenkin matemaatikko ja loogikko Charles Dodgson, joka ymmärsi, että käsitteellisen selkeyden ja täsmällisyyden vaatimus ei ole vain määrittelyintoilijoiden niuhotusta. Tyyris Tyllerön kielipolitiikka johtaa tilanteeseen, jossa keskustelijat eivät ymmärrä toisiaan ja lopulta eivät edes itseään. Informaation ja tiedon käsitteiden analyysiä tarvitaan, jotta yhteiskuntamme ei muutu Liisan ihmemaaksi – "postmoderniksi" maailmaksi, jossa sanat ja ovat menettäneet merkityksensä. (Ilkka Niiniluoto kirjassaan Informaatio, tieto ja yhteiskunta, 1996)

Image Engineer -nettimyyntiä

Kuvankäsittelyohjelman nettimyynti (tekijänoikeudet saatu lahjoituksena).

Visual Engineeringin valmistusta ja nettimyyntiä

Kuvankäsittelyprosesseja ohjaavien skriptien ja käyttöliittymien kehittelyä Image Engineer, ImageFX ja Personal Paint -ohjelmille.