Miksi intiaani haluaa juuri tyttöhevosen luo?
Pakastin + limutölkki == fail
Opetusmateriaali kunnossa
Aika ajoin tulee tarve edelleenohjata ajaxilla tehtyjä kutsuja jonnekin muualle. Esimerkiksi, kun käyttäjä lähettää kommentin ajaxilla ja käyttäjän sessio on päässyt kuolemaan, tai tapahtuu jotain muuta odottamatonta, niin käyttäjä ohjataan etusivulle.
Ongelmana aiemmin on ollut se, että ajax-kutsu tapahtuu taustalla eikä sen varsinaisen http-kutsun redirraaminen toiseen paikkaan auta mitään, kun käyttäjän selaimessa oleva sivu säilyy paikallaan. Vielä ongelmallisempi tilanne on Ajax.Updater -kutsujen kanssa, kun saattaa käydä vaikka niin, että kommenttilaatikon tilalle ilmestyy etusivu.
Tutkailin tuossa hetken aikaa prototypen ajax-toteutusta, ja löysin sieltä Ajax.Responders-olion, jonka avulla sai helpon ratkaisun ongelmaan. Nyt käytössä onkin tällainen patchays:
Ajax.Responders.register({
onComplete: function(request, json) {
if (json && json.headerJSON && json.headerJSON.redir) {
document.location.href = json.headerJSON.redir;
}
}
});
Eli PHP:n puolella voidaan nyt redirrailla käyttäjä ajax-kutsuistakin vaikka sinne etusivulle:
function redir($to) {
if ($_SERVER == 'XMLHttpRequest') {
// Use JSON for ajax redirs
header('X-JSON: ' . json_encode(array('redir' => $to));
} else {
header('Location: ' . $to);
}
exit;
}
Win \o/

Näitä tuli pienenä vedettyä yhtenään.
Jälleen koitti palkkapäivä ja siitä historiallinen tapaus, että nyt, kun maksoin VISA-laskun nollille, oon ensimmäistä kertaa velaton sitten vuoden 2000, kun aloin nostamaan opintotukea. \o/
Nyt voi sitten vaikka paeta vuorille asumaan metsässä ja syödä pieniä kiviä, jos siltä tuntuu. Oikeesti pitäs varmaan alkaa miettimään, että haluunkohan kasvaa niin isoksi, että ostaisin oman kämpän, ja jos, niin mistä päin Helsinkiä ja mimmonen kämppä. Decisions, decisions…
Plussat
Miinukset
Aivan superrulesmahtava leffa kaikin puolin, kantsii kattoa ehdottomasti! Välissä alko vaan hymyillä ja hymähdellä mahtaville kohtauksille ja koko juonen kuljetus ja hahmot ja kaikki vaan toimi - ei mikään Spiderman, vaikka supersankarileffa onkin. Maailmanparannusteematkaan ei olleet rasittavasti tehtyjä ja supersankarit oli vedetty tarkoituksella vähän kornisti yli, kun taas muu maailma oli pidetty realistisena niin siitä tuli tosi hyvin toimiva kontrasti. =)
http://www.imdb.com/title/tt0409459/
PHP tarjoaa toisinaan viihdettä enemmänkin kuin rahan edestä. Tänään koodaillessa törmäsin kummalliseen ongelmaan, jonka syyksi osoittautui vielä kummallisempi ongelma. Vastaan tuli nimittäin jokseenkin tällainen koodinpätkä:
$type = $this->classes[0];
switch ($type) {
case 'eka':
// ...
break;
case 'toka':
// ...
break;
default:
// ...
break;
}
Eli olion classes-arraysta napattiin ensimmäisen solun sisältö ja sen perusteella switchailtiin, että mitä tehdään. Jostain syystä yhden olion kanssa päädyttiin kaiken järjen mukaan aina tuohon ensimmäiseen caseen. Tutkin asiaa hieman tarkemmin ja huomasin, että kyseisessä oliossa tuo classes-array oli tyhjä ja siten $type sai arvokseen null.
Jostain syystä tuo null ei kuitenkaan käyttäytynyt niin kuin nullin pitäisi käyttäytyä. Kun kokeilin var_dumpata tuon muuttujan, paljastui että sen arvo on null ja se on tyyppiä NULL, gettype($type) antoi saman tuloksen ja is_null($type) palautti true.
Jostain tyystä tuo null käyttäytyi kuitenkin vertailuissa oudosti. Esimerkiksi ($type == 'foo') palautti true ja heti perään ($type == 'bar') palautti myös true. Samalla tavalla tuossa switchissa $type matchas aina siihen caseen, joka sattui olemaan ekana. Sama ongelma toistui, jos jätin kokonaan pois tuon $type-muuttujan alustamisen kyseisessä funktiossa.
En löytänyt asiaan mitään ratkaisua muuten kuin kiertämällä sen enkä myöskään saanut toistettua sitä toisessa paikassa, kun yritin replikoida samanlaisen luokkarakenteen. Ratkaisuksi auttoi esimerkiksi tämä:
if (is_null($type)) {
$type = null;
}
Hämmentävä bugi.

Auringon innoittamana pääsin kerrankin ulos sunnuntaina ja kävellä käpöttelin Töölönlahden ympäri. Porukka oli uskaltautunu luisteleen ja kävelemään jäälle, mutta tuolla Kallion puoleisessa nurkassa oli tommonen sula lätäkkö, missä oli miljoona sorsaa ja niiden keskellä sulassa sovussa yks joutsen! Piristävä reissu. ^_^
Plussat
Miinukset
Hieno leffa, pitkästä aikaa jännäri, jonka aikana oikeesti rupes jännittämään, vaikka lopputuloskin oli tiedossa. Kantsii käydä kattoon.