IRC-Galleria

Bro

Bro

ei ole enää Galtsun ylläpitäjä, http://irc-galleria.net/feedback auttaa ongelmissa. :)

Pakastin + limutölkki == failTiistai 31.03.2009 14:37

Opetusmateriaali kunnossaMaanantai 23.03.2009 11:33

AJAX-kutsujen edelleenohjausTiistai 17.03.2009 17:42

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/

SipsirieskaMaanantai 16.03.2009 14:35

Näitä tuli pienenä vedettyä yhtenään.

Vapaa miesTiistai 10.03.2009 10:27

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...

+++ Watchmen ---Lauantai 07.03.2009 00:09

+ Rules ohjaus ja kuvaus
+ Hyvät hahmot ja henkilöiden kuvaus
+ Dr. Manhattanin mahtavat filosofis-aika-avaruudelliset pohdinnat

- Turhan pitkähköt tappelukohtaukset
- Ajoittainen goremättöväkivalta
- Pituus

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 - WTFMaanantai 23.02.2009 21:31

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.

Ugly ducklingSunnuntai 15.02.2009 18:22

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. ^_^

+++ Operaatio Valkyrie ---Sunnuntai 01.02.2009 20:00

+ Tom Cruise ja silmälappu
+ Natsi-teema
+ Kokonaisuus, kuvaus, ohjaus, musat

- Ajoittaiset Kauniit ja rohkeat -tyyliset close-upit liian läheltä ja liian pitkään
- Perheeseen liittyvä sivujuoni oli niin irtonainen ettei se missään vaiheessa oikein koskettanut
- Lopputulos =(

Hieno leffa, pitkästä aikaa jännäri, jonka aikana oikeesti rupes jännittämään, vaikka lopputuloskin oli tiedossa. Kantsii käydä kattoon.

http://www.imdb.com/title/tt0985699/