Ongelmia välimuistin kanssa? Microsoftilta löytyy ratkaisu

Internet Explorerissa on sellainen kiva ”ominaisuus”, että se joskus tallentaa webbisivuja välimuistiinsa, vaikka sivun otsikkotiedoissa nimenomaisesti se kielletään. Asetuksen voi tehdä laittamalla sivun head-osaan tagin <meta http-equiv="pragma" content="no-cache">.

IE ei kuitenkaan aina tottele meta-tagia, vaan laittaa sivun välimuistiin joka tapauksessa. Onneksi Microsoftilta löytyy ratkaisu ongelmaan: laitat vain sivun loppuun toisen head-osan!

(Täytyy huomauttaa, että dokumentti on vanha ja viittaa IE:n kolmos- ja nelosversioihin. Samat välimuistiongelmat kuitenkin jatkuvat yhä IE7:n kanssa.)

Mainokset

Joe Hewitt kertoo Firebugista

Firebug on yksi hienoimmista webkehitystyökaluista, joita viime aikoina julkaistu. Se on Firefox-selaimen laajennus, joka lisää selaimeen muun muassa kunnolliset välineet HTML:n, DOM:n ja CSS:n tutkimiseen ja editoimiseen, JavaScript-debuggerin ja verkkoliikenteen monitoroinnin. Firebug on välttämätön työkalu varsinkin kaikille ajax-kehittäjille.

Yahoo! User Interface Blog on julkaissut videon, jossa Firebugin kehittäjä Joe Hewitt kertoo lisää sen ominaisuuksista. Video on melko pitkä, noin 48 minuuttia, mutta se on täyttä asiaa.

PHP-koodin etädebuggausta

Debugger-sovelluksen käyttäminen on olennainen osa ohjelmistovirheiden etsintää. Debuggerin avulla ohjelman suorittaminen voidaan keskeyttää halutussa kohdassa (eli kohdassa johon on laitettu breakpoint), tutkia ohjelman sen hetkistä tilaa ja edetä koodissa askel kerrallaan. Mutta kun kyseessä on websovellus, jota käytetään erillisellä ohjelmalla eli www-selaimella, debuggaus on hankalampaa. Usein virheitä etsitään vain laittamalla koodiin komentoja, jotka printtaavat tietoja sovelluksen tilasta joko sivulle tai erilliseen lokiin. Etädebuggauksen (remote debugging) ansiosta myös websovelluksen voi keskeyttää ja käyttää hyväkseen debuggerin ominaisuuksia virheen etsinnässä.

Töissä olen kehittämässä Java-pohjaista websovellusta ja kehitysympäristönä on Eclipse. Ajan sovellusta lokaalisti omalla koneella Jetty-palvelimella, joka JettyLauncherin avulla nivoutuu osaksi Eclipseä. Sovelluksen voi käynnistää debug-tilassa suoraan Eclipsestä ja kun sivua ladatessa tulee vastaan breakpoint, Eclipse hyppää automaattisesti esiin ja näyttää koodirivin, johon pysähdyttiin.

Harrastusprojekteissa olen käyttänyt PHP:tä ja koodannut BBEditillä. Varsinkin isompien PHP-sovellusten kanssa BBEdit on alkanut tuntua liian köykäiseltä, koska siinä ei ole koodin ennakointia, debuggerista puhumattakaan. Lisäksi laajan koodimäärän hallinointi BBEditillä on vaikeaa, koska ainoa tapa löytää tiedosto, jossa jokin funktio on määritelty on tehdä haku kansion tiedostojen sisällöstä.

PHP:n kehityksestä osittain vastaava yritys Zend teki maaliskuussa yhteistyösopimuksen Eclipsen kanssa. Zend on mukana kehittämässä Eclipseen PDT-laajennusta (PHP Development Tool). Zend tarjoaa paketissa myös omaa Zend Debuggeria, mutta tietääkseni se ei tue etädebuggausta vaan ainoastaan PHP-skriptien ajamisen debug-tilassa Eclipsen sisällä. Se varmastikin riittää joissakin tilanteissa, mutta minä ainakin heti törmäsin ongelmiin MySQL-yhteyksien kanssa.

Onneksi vaihtoehtona on Xdebug, joka asennetaan laajennukseksi PHP:hen. John VanDykin ohjeilla Xdebugin asentaminen Intel-Maciin kävi helposti. Ohjeissa neuvotaan myös, kuinka Xdebug otetaan käyttöön Komodo-ohjelmointiympäristössä. Kokeilin Komodoa, mutta Eclipsestä poiketen se on maksullinen ja jostain kumman syystä se laittaa automaattisesti breakpointin jokaisen sivun alkuun. Komodon valmistajan blogissa kyseltiin miten ominaisuuden saa pois päältä, mutta kukaan ei ollut muutaman kuukauden aikana vastannut. Samoilla ohjeilla saa kuitenkin asennettua Xdebugin myös Eclipseä varten.

Eclipse ja PDT eivät virallisesti tue Xdebugia, mutta Dave Kelsey IBM:ltä on tehnyt PDT:tä varten tarvittavat muutokset ja laittanut tiedostot jakoon Eclipsen bugiraportointijärjestelmään. Vaikka koodi on tehty Windowsille, se tuntui pikatestauksella toimivan mainiosti myös Macilla.

Yritän kirjoittaa aiheesta lisää, kun olen käyttänyt Xdebugia ja PDT:tä vähän enemmän.

Safarin testiversioon kätevä mittaustoiminto

Apple jakaa Safari-selaimensa ytimenä olevan WebKitin päivittäistä (yöttäistä?) testiviersiota kaikille kiinnostuneille. Koska kyseessä on koodin viimeisin versio, ei kaikki aina toimi yhtä hyvin kuin julkaistussa Safari-versiossa. Siksi normaaliin päivittäiskäyttöön WebKitistä ei oikein ole.

WebKitissä tulee kuitenkin mukana ominaisuus, joka ehkä tulee joskus Safarin normaaliversioonkin. Web Inspector on työkalu, jolla voi tutkia www-sivun muodostavan html-koodin rakennetta. Web Inspector on ollut mukana jo jonkin aikaa, mutta nyt siihen on lisätty sivuelementtien mittaustoiminto. Sillä näkee jokaisen sivun elementin leveyden ja korkeuden sekä sisä- ja ulkomarginaalin koon (padding ja margin) ja kehysviivan (border) koon. [via Ajaxian]

Taustakuvageneraattori Softysille

Tehtiin eilen Nikon kanssa taustakuvageneraattori Softys-projektin maaliskuun julkaisua varten. Lopputuloksesta tuli aika hieno vaikka itse sanonkin. Tässä yksi esimerkki generaattorin tuotoksista:

Flickr: Desktop picture by the Softys wallpaper generator, take 4

Tässä MacBook Prolla taustakuvan generoi sekunnissa, mutta Softysin vanhalla serverillä generointi on ikävä kyllä huomattavasti hitaampaa, mikä hieman laskee käyttömukavuutta. Linkki generaattoriin löytyy Softysin maaliskuun julkaisun sivulta.