Arkiv
Et bedre utviklingsmiljø for Rails
Den siste uken har jeg snublet over og/eller kommet igang med opp til flere småting som har gjort arbeidsmiljøet mitt for Rails-applikasjoner langt mer behagelig. Sjekk tipsene.
Twibot: Et mikrorammeverk for Twitter-bots i Ruby
Idag slapp jeg Ruby-gemen Twibot. Twibot er et mikrorammeverk for å lage Twitter-boter, med et sexy DSL ala Sinatras. Sjekk ut gjennomgangen.
Full article Twibot: Et mikrorammeverk for Twitter-bots i Ruby.
Ruby Wednesday!
I morgen møtes 16+ engasjerte Rubyprogrammerere i Oslo for å prate om Ruby 1.9 og for å kollektivt hacke 1.9-støtte inn i en gem. Er du på østlandet og interesserer deg for Ruby, bli med!
Juicer - pakkeverktøy for CSS og JavaScript
Etter mye somling og litt koding er jeg endelig klar med første versjon av Juicer, mitt kommandolinjeverktøy for å kombinere og minifisere CSS og JavaScript-filer. En slags "kompilator" om du vil - med syntakskontroll for JavaScript, og en del URL-verktøy for CSS-filer. Frontend-ytelse har nettopp blitt enklere! For en grundig gjennomgang av funksjonaliteten refererer jeg til gjennomgang på den engelske delen av bloggen.
Expires-headeren under Apache
Expires-headeren kan brukes til å øke ytelsen på webapplikasjoner drastisk, ved at statiske ressurser (CSS, JavaScript, bilder) caches hos brukeren. Her er en gjennomgang av oppsett under Apache, og noen tips til hvordan du kan tvinge gjennom nytt innhold når innholdet er cachet hos brukeren. Les hele det engelske innlegget.
JavaScript-lesestoff
Med litt flaks så har min julekalender dedikert til JavaScripts magiske verden trigget interessen såppass hos noen av dere er sugne på mer grundig stoff om temaet. Her er noen gode bøker og online-ressurser.
JavaScript-organisering, del 2
Igår så vi på noen utfordringer JavaScript-utviklere møter når de føler behovet for å strukturere koden sin på en oversiktelig måte. Idag presenterer jeg noen forslag til løsning på disse utfordringene.
Å organisere større JavaScript-prosjekter
Når mengden JavaScript stadig øker blir det hele tiden viktigere å organisere koden på et vis. Gjennom to artikler skal vi se hvordan vi kan oppnå kode som både er lettere å vedlikeholde og å jobbe flere sammen på.
Debugging og profilering av JavaScript
Firebug er et uvurderlig verktøy for JavaScript-utvikling (og mer). Her ser vi på noen av de nyttigste verktøyene Firebug stiller opp med: debugging, profilering og inspeksjon.
Mixins og multippel arv i JavaScript
Fordi metoder er helt vanlige egenskaper på objekter er det fullt mulig å dele metoder fritt mellom objekter. På denne måten støtter JavaScript indirekte multippel arv fordi ett objekt kan "arve" oppførsel fra flere enn ett annet objekt.
En nyttigere document.createElement
Å opprette nye elementer med nettlesernes DOM-APIer er tungvindt og "verbost". Idag bygger vi en hjelpemetode som lager nye elementer på en langt mer kompakt måte.
Metodekjeder i JavaScript
Å kjede sammen metodekall kan resultere i kompakt kode med relativt høy leselighet. jQuery har tatt dette til det ekstreme. Vi ser litt på hvordan dette fungerer, og noen praktiske eksempler.
Hjelperen $()
De fleste rammeverkene tilbyr en "magisk" "dollarfunksjon". Vi ser litt på hva den ofte gjør, og hvordan den kan realiseres.
Testing av ytelse
Idag skal vi se på hvordan vi kan legge inn krav til ytelse som en del av testcasene våre.
Memoisering av funksjoner
Noen ganger trenger vi kode som forgreiner seg basert på objekters tilstand, nettleserens ferdigheter eller andre omstendigheter - omstendigheter som kan være krevende ytelsesmessig. Memoisering kan i slike tilfeller ofte by på forenkling av logikk og/eller bedre ytelse.
Objektorientering via closures
Som en praktisk applikasjon av closures ser vi på hvordan vi med hjelp av closures kan gi objektene våre en ekstra dimensjon.
Navnerom
Fordi all JavaScript i utgangspunktet kjører i det globale skopet er det skremmende stor sjanse for kollisjoner mellom script (særlig om de er fra forskjellige kilder). Ved å bruke objekter som navnerom kan vi minimere scriptenes globale fotspor samtidig som vi kan beholde et rikt spekter av funksjonalitet.
Prototyper og JavaScripts innebygde typer
Ved hjelp av JavaScripts prototype-kjeder kan vi bygge funksjonalitet inn i objekter vi ikke selv har laget - så også JavaScripts innebygde objekter. Vi ser på hvordan dette gjøres og noen nyttige applikasjoner.
(function() {})();
JavaScripts kanskje mest kryptiske konstruksjon er et hendig hjelpemiddel for å beskytte det globale skopet. Vi ser på hva dette er og hvordan vi kan bruke det.
Closures
Et svært nyttig - og kraftig - konsept er såkalte closures. Å forstå hva en closure er og hvordan du kan nyttegjøre deg av dem er essensielt for å ta full glede av JavaScript.