Tapaaminen.net uudistui

Oma projektini Tapaaminen.net sai uutta väriä pintaan. Uudistuipa se käytännössä kokonaan myös koodiltaankin. Tapaaminen.net on nyt Laravelin päälle rakennettu ja avointa lähdekoodia.

Lähdekoodi on tosiaan avoimesti saatavilla Githubista ja sitä kehitetään jatkuvasti eteenpäin – tällä hetkellä lähinnä omin voimin.

Uudistuksia on kasa päin jo itsessään tuolla taustalla. Näkyvin uudistus on nimenomaan ulkoasu, mutta isona ominaisuutena on myös käyttäjätilit saapuneet. Sivustoa voi käyttää ilman käyttäjätiliä kuten aina ennenkin.

Vanhat tapaamisen linkit menee vanha.tapaaminen.net sivustolle, joten nekin toimii aivan kuten ennenkin.

Taustalla tapahtuu paljonkin. Ensinnäkin virheistä tulee suoraan ilmoituksia Bugsnagin kautta minulle ja siitä issue Githubiin – näppärää. Uusi sähköposti tukea varten on avattu: apua@tapaaminen.net. Samoin sivulla on tukea varten myös livechat.

Uusia ominaisuuksia tehdään lähipäivinä vielä lisää. Ihan kaikki vanhan järjestelmän ominaisuudet ei vielä ole tulleet, mutta ne tulevat lähiaikoina.

Suunnitelmissa on myös tuoda kauan kaivattu aikojen määrän valinta sekä aikojen lisäys ja poisto jälkikäteen. Samoin koodia tullaan siistimään ja optimoimaan sekä testejä kirjoittelemaan.

Kommentit ovat aina tervetulleita ja kysymyksiä saa esittää.

Liikennetieto botin tekeminen

Ajattelin aukaista teille hieman tekniikkaa ja koodia tuon @Liikennetieto botin takaa. Tässä postauksessa on siis aimo annos nörtti-puhetta.

Käytetyt tekniikat

Liikennetieto botin takana on paljon muutakin, kuin pelkkä Twitter-tili johon ilmestyy automaattisesti päivityksiä. Kerron tässä kappaleessa seikkaperäisesti eri tekniikoista ja miten niitä käytetään tämän botin kanssa.

TwitterOAuth on PHP-kirjasto, jonka avulla voidaan käyttää Twitterin APIa suhteellisen helposti. Tämän kirjaston avulla saadaan Twitteriin uusi päivitys.

Cronilla taas saadaan koodinpätkä katsomaan 5 minuutin välein onko tullut uusia liikennetiedotteita ja päivittämään ne Twitteriin ja tietokantaan automaattisesti.

Google Maps APIlla toteutin kartan botin kotisivuille ja sitä on muutenkin käytetty hyödyksi esim. staattisissa karttakuvissa, 24h kartassa sekä liikennetiedotteen infoissa.

Bootstrap sai tälläkin kertaa toimia ulkoasun frameworkkinä. Suosittelen lämpimästi tätä täysin ilmaista ”koodikasaa”.

Fancyboxilla saatiin aikaan se kiva efekti, jossa kuva pomppaa nokkasi eteen.

Htaccess -tiedostolla saatiin aikaan ”siistit” urlit tuonne sivuille. Tällöin esimerkiksi osoite http://liikenne.kaartinen.eu/arkisto/kunta/Kuopio onkin muotoa http://liikenne.kaartinen.eu/index.php?p=arkisto&do=kunta&kunta=Kuopio – ei liene vaikeaa päätellä kumpi on luettavampi muoto?

GIT on erittäin pätevä versionhallintaohjelmisto, jota itse käytän työssäni päivittäin ja käytän sitä myös omissa koodausprojekteissani. Tässä projektissa sille muodostui kuitenkin omanlainen rooli sillä sen avulla päivitän myös tuotannon. Ohjelmoin ensin muutokset ja korjaukset localhostiin ja sen jälkeen pushaan ne GIT repositoryyn. Tämän jälkeen pullaan muutokset tuotannossa ja tadaa – muutokset ovat toiminnassa.

Käytetyt ohjelmointikielet

PHP on se kieli mitä itse tulee käytettyä lähes päivittäin, teen tällä kielellä työkseni sovelluksia joten valinta oli itselleni luonteva.

Javascript ja jQuery kulkee itsellä nykyään käsikädessä ja aika monessa tekemässäni sovelluksessa on mukana näitä kieliä jollain tapaa.

Yleistä

Tämän botin koodaaminen oli sinällään erittäin hauska haaste, sillä en ole Twitterin APIn kanssa puljannut ja sitä kautta kun löysi tuon TwitterOAuth kirjaston niin homma vaan helpottui. Tämän myötä kynnys tehdä Twitter yhteensopivia koodinpätkiä madaltui ja voin luottavaisin mielin sanoa pystyväni tekemään Twitter botin joka toimii!

Botti on nyt ollut toiminnassa noin 10 päivää ja en ole huomannut sen toiminnassa mitään ongelmia. Jokusen bugin olen liiskannut verkkosivun puolelta ja siellä taitaa joitain vielä lymytä. Tulen myös kehittämään tuota verkkosivun puolta mm. tilastoilla ja päiväkohtaisella arkistolla. Tietty te voitte ehdottaa jos haluatte jotain lisäominaisuuksia tuohon!

@Liikennetieto botti

Eilen innostuin koodailemaan ja testaamaan miten saisin tehtyä pätevän botin Twitteriin. Koska työkseni koodaan PHP:tä niin kielen valinta oli luonnollinen ja lähdin rakentamaan sillä bottia joka parsii liikennedataa.

Selitän tuon @Liikennetieto botin toimintaa seuraavaksi ja kerron hieman miten se tekee sen ja mitä ominaisuuksia siinä käytännössä on.

Joka viides minuutti skripti tarkastaan onko tullut uusia liikennetiedotteita TieInfon Apista. Mikäli on tullut uusia niin lisätään se kantaan ja tviitataan uusi tiedote. Tviitissä on myös linkki sivustolle liikenne.kaartinen.eu, jonne tallentuu kaikki tviitatut tiedotteet ja sieltä näkee myös tiedotteen tarkemman kuvauksen, sijainnin kartalla sekä kelikameroita lähistöltä (mikäli niitä löytyy). Yksinkertaisuudessaan homma on siinä, koodia itse bottiin ei tarvittu paljoa. Sivuston teko ja datan parsiminen tuotti eniten koodirivejä.

Tulen kehittämään tuota bottia tarpeen mukaan ja lisäämään ainakin joitain säätietoja lähistöltä tai jotain muuta vastaavaa. Te voitte ehdottaa minulle mitä tuohon voisi lisätä, tuo on aika toimiva paketti noinkin (vaikka itse sen sanonkin).

Esimerkki botin tviitistä:

Jekyll

Menemme aiheissa taas niihin erittäin nörtteihin. Oikeastaan pitäisi kategorisoida tämä blogi seuraavasti: nörttiä, erittäin nörttiä, super nörttiä ja muuta. Tällä kertaa aiheena on Jekyll.

Jekyll on eräänlainen verkkosivugeneraattori. Osa varmaan innostui tästä, mutta ei kyse ole ihan niin simppelistä asiasta kuin voisi luulla. Jekyll generoi nimittäin staattisia verkkosivuja sen mukaan mitä sinne olet syöttänyt. Blogipostauksen kirjoittaminen onnistuu siis eräänlaisen markupin kautta, eli kirjoitat tietyllä syntaksilla sisällön ja ajat sen Jekyllin läpi ja se generoi sinulle staattisen verkkosivun kaikkine rensseleinaan.

Itsellä on tällä hetkellä tehtynä simppeli setuppi, jossa Jekyll generoi sisältöä ja siirrän sen sitten vielä toiseen kansioon, jotta muutokset on julkaistu. Tämä siksi, koska haluan testata sisällön (eli esikatsella) ennen kuin julkaisen sen. Tulen jossain välissä lisäämään tähän vielä Gitin, joka tuo pienen versionhallinnan ja tallentaa historiaa.

Suosittelen nörttejä kokeilemaan tuota Jekyll hässäkkää, se toimii Rubyn päällä, mutta älkää antako sen pelottaa. Sen kun asennat niin homma pelittää hyvin kivuttomasti.

Kiitokset vielä Laurille vinkeistä!