smaul.ee

17/11/2024 - Ilmatieteenlaitoksen avoin data / FMI API

Mun piti alunperin hakea tällä säätiedot suomen ilmatieteenlaitoksen avoimesta datasta. Ja teinkin niin, mutta oli kyllä tämmöselle asiaan yhtään perehtymättömälle kaverille tehty aivan liian hankalaksi ja monimutkaiseksi operaatioksi ei saatana. ... Lue lisää..

11/11/2024 - Vaporwave maniat jatkuu

En tiedä mitä on oikein tapahtunut. Ihan jotenkin mystisesti ollut virtaa ja mielenkiintoa naputella näitä paskasivuja. Eihän tässä siis mitään mullistavaa tai ainutlaatuista ole tehty, mutta ihan fiiliksissä oon esimerkiksi noita homer skenaarioita duunaillu. Tällä hetkellä niitä on k... Lue lisää..

19/10/2024 - sieni.us taas pystyssä

Tein silleen tyhmästi että päivitin sieni.us tälle vuosikymmenelle. Viimeisestä "kunnon" päivityksestä olikin melkein 12 vuotta ja silloinkin päivitin vain infoboksin ja laitoin sivuille js-ohjaimet nuolinäppäimille. Sekin päivitys odotteli viisi vuotta, joten voidaan ehkä tulla siihen ... Lue lisää..

14/10/2024 - etusivu uusiksi!

sudo fail2ban-client status sshd

|- Filter | |- Currently failed: 1 | |- Total failed: 44571 | `- Journal matches: _SYSTEMD_UNIT=sshd.service + _COMM=sshd `- Actions |- Currently banned: 1 |- Total banned: 9787 `- Bann... Lue lisää..

01/09/2024 - kiinalaiset kävi kylässä

Jäänyt nyt kyllä vähän suunniteltua vähemmälle tän kanssa touhuuminen. Ei sillä että tätä kukaan muu kuin minä itse lukisin, mutta pitkään oli semmoiset fiilikset että tänne tulee ihan vaan tylsyyteen raaputeltua kaikenlaista. Kirjauduin kuitenkin eilen shelliin ku piti akuutit irk... Lue lisää..

21/06/2024 - pajuprojekti

Kemijärvellä kynittyjen pajujen muistolle. Kempassa tuli tuhottua pajuja sen verta, että ihan jäin ihmettelemään kuinka hienosti tuo ylisuuri rikkaruoho oikein leviää ja juurtuu. Nyt keravalle palattuani päätin tosta pihan läheltä käydä napsia paria pistokasta ja katson juurtuuko lasi... Lue lisää..

21/05/2024 - kemijärvellä

Se aika vuodesta on taas täällä! – Ja ei, en suinkaan puhu joulusta, vaan suomen kesästä. Siitä ajasta jolloin aurinko paistaa niin julmetusti, että omalla pihalla on aina viisi celsius astetta lämpimämpää kuin naapurilla. Linnut laulavat, juopot heräävät talviuniltaan ja einesosasto... Lue lisää..

04/05/2024 - magneettikalastus

Noniin, nyt on jälleen maailmankirjat sen verta sekaisin, että päätin lähteä kokeilemaan magneettikalastusta toiseen kertaan. Viime kerralla mulla oli matkassa marketin vahvin magneetti ja se jäi ensimmäisellä heitolla kiinni johonkin helvetin raskaaseen esineeseen enkä saanut magneettia e... Lue lisää..

03/05/2024 - läpimurto!

Muutama sananen sivuston mekaniikasta. Pitkän ja verisen taistelun jälkeen jouduin tyytymään kompromisseihin tämän sivun suhteen. Alunperin sivuston ideana olisi ollut, että kaikki sisältö latautuu tälle samaiselle sivulle ilman että osoiterivi vie minnekään muualle (ammattitermi lienee SPA, single page app). Javascriptillä tuo olisi onnistunut, mutten tahtonut käyttää sitä. Noin viikon taistelun jälkeen onnistuin saamaan pelkällä PHP:llä sellaisen viritelmän, minkä toimintaperiaate oli kyllä hyvin lähellä sitä mitä hainkin. Siinä käyttäjä (tai serveri) latasi aivan koko sivuston sisällön kerralla kaikkineen kirjoituksineen, eikä se suinkaan olisi ollut kovinkaan _järkevä_ ratkaisu. Tuossa se nyt kuitenkin on esillä toistaiseksi, ehkä vielä joskus teen vastaavanlaisen kaikilla hienoilla ajax ominaisuuksilla, ehkä. Kompromissien myötä myös päädyin tekemään index.php:n lisäksi erillisen kirjoitus.php:n, tämä siltä varalta jos joskus tulevaisuudessa haluan tehdä erillisen etusivun pitäen kuitenkin mielessä, etten enkä todennäköisesti silloin enää tajua vittuakaan mistään. Vaikka palvelimella on MySQL tuki ja minulla olisi mahdollisuus pitää tietokantoja, niin ei vain yksinkertaisesti riittänyt mielenkiintoa lähteä perehtymään siihen. Ei niinku pätkän vitun vertaa, tämä nykyinen systeemi missä leikin tekstitiedostoilla on itselleni tarpeeksi selkeä, joskaan ei viisain ratkaisu. Olen kuitenkin aivan helvetin tyytyväinen itseeni, että yli kymmenen vuoden tauon jälkeen onnistuin vielä jotain näin vammasta paskaa tekemään päästen vielä jopa sellaiseen lopputulemaan, että olen tyytyväinen sivuston toiminnallisuuteen. :D Tällä hetkellä "tein itse ja säästin ™" koodini lukee kirjoitusten sisällöt suoraan kansiosta jossa on tekstitiedostoja. Tiedoston nimestä koodi hakee päivämäärän ja muuttaa sen muotoon DD/MM/YYYY, joka toimii myös kirjoituksen ?=atribuuttina. Tämän jälkeen se hakee itse samaisesta tiedostosta kirjoituksen sisällön ja otsikon. Kaiken tämän lisäksi koodi järjestää tiedostot päivämääräjärjestykseen otsikon mukaan ! :D Ja koska jollain ihmeen tempulla kun sain koodin toimimaan, niin jouduin tekemään aivan älyttömältä tuntuvan ratkaisun jotta saan myös sivuston <title>:n päivittymään sitä mukaan, mitä kirjoitusta käyttäjä lukee. Tästä syystä ainakin tällä hetkellä kun katsoo lähdekoodeja, <title> sijaitsee koodin loppuosassa, eikä suinkaan <head> tagin sisällä. Tämä on pieni askel ihmiskunnalle, mutta varsinainen läpimurto meikäläiselle. Kuvassa ilmeeni. Läpimurto!

function lueSisalto($tiedosto) { if (file_exists($tiedosto)) { $sisalto = file_get_contents($tiedosto); $rivit = explode("\n", $sisalto); array_shift($rivit); return implode("\n", $rivit); } else { return "Tiedostoa ei löydy"; } }

Eli aluksi loin ihan vaan funktion tiedoston lukemiselle ja tein tarkistukset onko tiedosto edes olemassa. En tiedä miksi näin täytyy edes tehdä, joskus kun sieni.us sivuston kanssa väkersin joku sanoi että näin sen pitää olla ja sillä tiedolla mennään. Ensimmäisen rivin jätän lukematta, koska siinä sijaitsee kirjoituksen otsikko (joka luetaan myöhemmin). Varmasti tämänkin saisi hoidettua kerralla tekemällä esimerkiksi array, jossa tiedot laitetaan talteen heti ensi kättelyssä. Tämän jälkeen asetan muuttujia, taulukoita ja atribuutteja. Ja estän ../ käyttämisen. Sekavaa.

$hakemisto = "tekstit/"; $date = isset($_GET['date']) ? $_GET['date'] : null; if(strstr($date, "../")){ die(":I"); } $otsikko = ""; $otsikot = array(); $avoin_summary = null; $avoin_otsikko = ""; $tiedostot = glob($hakemisto . "*.txt");

Päätin nimetä tiedostot muotoon "DDMMYYY - jotain tekstiä.txt" helpottaakseni manuaalista ylläpitoa. Tässä koodi siivoaa tiedostonimen poistamalla ylimääräisyydet (tiedostopäätteen ja otsikon joka helpottaa tiedostojen manuaalista selaamista). Tämän jälkeen se muuttaa päivämäärän muotoon DD/MM/YYYY ja järjestää ne valmiiksi oikeaan järjestykseen (tiedostonimessä kun ei voi olla kauttaviivoja) myöhempää käyttöä varten

usort($tiedostot, function($a, $b) { $paivamaaraA = substr(basename($a, '.txt'), 4, 4) . substr(basename($a, '.txt'), 2, 2) . substr(basename($a, '.txt'), 0, 2); $paivamaaraB = substr(basename($b, '.txt'), 4, 4) . substr(basename($b, '.txt'), 2, 2) . substr(basename($b, '.txt'), 0, 2); return strtotime($paivamaaraB) - strtotime($paivamaaraA); });

Lopulta kun meillä on vaadittavat tiedot ja asetukset tallessa, tehdään niistä sivusto. Mikäli kirjoitus natsaa date atribuutin kanssa, näytetään se avonaisena, muussa tapauksessa tulostetaan vain tiivistelmät. Tässä samalla myös hoidetaan otsikon tallentaminen taulukkoon jotta saadaan se myöhemmin laitettua ‹title›:n sisään. Päivämäärä haetaan tiedostonimestä, pääsisin varmasti helpommalla jos se haettaisiin otsikon kanssa tiedoston sisältä, mutta jos myöhemmin haluan vaihtaa päivämäärää syystä tai toisesta, onnistuu se näin helpommin. Logiikka? Ei ole. Näin sen haluan menevän ja autismin kirjoni on valtava.

foreach ($tiedostot as $tiedosto) { $tiedostonimi = basename($tiedosto, '.txt'); $paivamaara = substr($tiedostonimi, 0, 2) . '/' . substr($tiedostonimi, 2, 2) . '/' . substr($tiedostonimi, 4, 4); if ($date && strpos($tiedostonimi, $date) !== false) { $otsikko = fgets(fopen($tiedosto, 'r')); $otsikot[$paivamaara] = $otsikko; $avoin_summary = $paivamaara; $avoin_otsikko = $otsikko; echo "‹details open›\n"; echo "‹summary›$paivamaara - $otsikko‹/summary›\n"; echo "‹p›" . lueSisalto($tiedosto) . "‹/p›\n"; echo "‹/details›\n"; } else { $otsikko = fgets(fopen($tiedosto, 'r')); $tiivistelma = substr(lueSisalto($tiedosto), 0, 300); $cleanDate = substr($tiedostonimi, 0, 8); $otsikot[$paivamaara] = $otsikko; echo "‹details›\n"; echo "‹summary›$paivamaara - $otsikko‹/summary›\n"; echo "‹p›$tiivistelma... ‹a href='kirjoitus.php?date=$cleanDate'›Lue lisää..‹/a›‹/p›\n"; echo "‹/details›\n"; } }

Lopulta otsikko. En saanut tätä toimimaan mitenkään muuten :D Yritin kyllä.

if (!empty($avoin_otsikko)) { echo "‹title›$paivamaara - $avoin_otsikko‹/title›"; } else { echo "‹title›smaul.ee - internet on pilalla‹/title›"; }

21/04/2024 - #php/html/css

Nyt on melko pahat tilanteet päällä, oon meinaan jostain syystä lähiaikoina pyöritellyt mun hyvin rajallisella vapaa-ajalla joitain rivejä PHP:tä, CSS:ää ja HTML:ää. Viime kerrasta on jo kuitenkin jokunen tovi vierähtäny (puhutaan varmaan jo kymmenestä vuodesta), joten pientä hakemis... Lue lisää..

17/04/2024 - mukavaa keskiviikkoa kaikille

Oikein mukavaa keskiviikkoa kaikille ja koittakaa jaksaa ja. Eiköhän se siitä sitten taas mukavasti mee kun keksitte, keksitte hyvää tekemistä nii eiköhän sillä sillä sitten mee mukavasti tämäkin keskiviikko. Mutta, nyt. Näihin kuviin ja näihin tunnelmiin. Pidä lippu korkeella ja tank... Lue lisää..

01/04/2024 - kallio

Annan nyt viimeisen avautumisen Helsingin Kalliosta ennen kuin muutan viikon päästä pois tästä perslävestä. En vastaa tunnistuskysymyksiin. En vastaa itseasiassa enää mihinkään koska en halua enää käsitellä asiaa. Oon tosiaan asnutu ympäri ämpäri kantakaupinkia aina 1980 luvun alus... Lue lisää..

03/05/2024 - läpimurto!