Kategori: programmering

En titt på Google App Engine

Google kom tidligere i år med noe de kaller Google App Engine (GAE), en tjeneste som lar utviklere lage applikasjoner i Python som kan hostes hos Google. I motsetning til vanlige webhotell er det en del begrensninger som man ikke er vant til fra tidligere hva angår biblioteker.

Google App Engine

Google App Engine

GAE tilbyr ikke en vanlig relasjonsdatabase (som MySQL, MS SQL osv) men noe som kalles Datastore, denne er i tillegg begrenset til å ikke hente ut mer enn maks 1000 poster fra en “tabell”. Biblioteket som Google stiller med støtter heller ikke sesjoner (sessions), men man kan bygge dette ut ved å legge ved egne biblioteker. En annen artig begresning er at koden ikke kan lese eller skrive til disk. Når dette er sagt stiller man med Memcache, noe som kan sammenlignes med delt minne tilgjengelig fra alle instansene som kjører (for Google kan finne på å kjøre opp applikasjonen på mange for å skallere).

Jeg oppdaget GAE gjennom en artikkel i Python Magazine, og fant det utrolig interessant, men av mangel på applikasjoner å utvikle ble det lagt litt på hylla helt til for noen dager siden når jeg kom over en video på YouTube som viste ting i praksis, og da måtte det bare testes.

For å vise litt av mulighetene i GAE skal jeg utvikle en liten applikasjon som viser et tilfeldig sitat fra datastore, og som lar Google sine brukere logge på for å legge inn nye sitater. Det skal også være en link til hvert sitat.

Read the rest of this entry »

Beta av NTNU Timeplan

For kort tid siden la jeg ut en beta-versjon av NTNU Timeplan. Det er lite nytt, men i stedet for å være et proof-of-concept, er det denne gangen lagt til rette for å bygge ut med ny funksjonalitet, noe som allerede blir testet i utviklingsversjonen. Om kort tid regner jeg med at hovedutgaven blir byttet ut også.

Av ting som er nytt, kan man finne:

  • Mulighet for å legge inn eksamener i fag som ikke har undervisning
  • Mulighet for å legge inn fag for flere semester, i denne omgang også neste semester
  • Jeg har tatt i bruk Prototype for å skrive mindre JavaScript

I stedet for å utvikle i PHP, har jeg denne gangen valgt å benytte Python og rammeverket Pylons. Pylons har valgt en MVC-tilnærming, og kan i likhet med mange andre rammeverk minne om Ruby On Rails.

NTNU Timeplan er oppdatert

Etter noen påminnelser fra min kjære har jeg endelig tatt meg tid til å gjøre NTNU Timeplan klar for et nytt semester. Jeg har siden jul sett på en del ting som skulle vært gjort annerledes eller lagt til på løsningen, men har dessverre ikke kommet i mål. Jeg håper at jeg skal finne tid til å gjennomføre en ordentlig oppdatering før semesteret eller i løpet av begynnelsen av semesteret.

For de som ikke går på NTNU men som likevell har lyst til å teste den kan man finne oversikt over fag og timeplaner på den offisielle siden for timeplaner ved NTNU.

Test av namespace i PHP

PHP 5.3 skal komme med støtte for namespace, og under lesing om namespace i PHP 5.3 oppdaget jeg fålgende setning:

Same namespace name can be used in multiple files.

For å teste dette hentet jeg ned snapshot av PHP 6.0 og kompilerte den direkte på ene maskinen (ups…). Deretter laget jeg noen filer.

index.php:

<?php
function __autoload($class) {
require_once("bar.php");
}

require_once("foo.php");

test::foo::test();
test::bar::test();
?>

foo.php:

<?php
namespace test;

class foo {
public static function test() {
echo "foo";
}
}
?>

bar.php:

<?php
namespace test;

class bar {
public static function test() {
echo "bar";
}
}
?>

Resultatet av kjøringen ble “foobar”, så da kan man altså “fylle opp” et namespace ved behov.

Nå gjenstår det bare å få tak i PHP 5.3 som ferdige pakker til Ubuntu.