16
May

Nytt design og API-lek

Så, det er nå blitt godt over et halvt år siden jeg har oppdatert noe på hjemmeside (red.anm: hjemmeside høres ut som noe fra 1900-tallet, fra nå av blir det websiden). Siden jeg uansett jobber mye med Wordpress for tiden, fant jeg ut at det var på tide å gjøre en liten facelift. I gamle dager ™, var hjemmesiden et sted hvor man publiserte kontaktinformasjon og potensielt litt om sine interesser og lenker til andre venner. I løpet av dette ti-året utviklet det seg videre til å bli et sted hvor man blogget. Det var hvor websiden min var før jeg startet i dag. En enkel blogg med innlegg, noen lenker og noen sider, sortert i kategorier og datoer. Forresten en liten funfact, NRK bruker Wordpress til sine nyere sider inkludert NRK P3 og NRK Beta.

Nettet utvikler seg med stor hastighet (red.anm: klisjevarsel,), og selv om det på den tiden jeg la ut mitt forrige design allerede var en sosial web, er nettet i dag sosialt på en helt ny måte. Når jeg legger ut en melding på twitter (twitrer) fra det trådløse nettet i byen på min lille Acer Aspire One, går denne meldingen videre til Facebook og FriendFeed. Når jeg blipper en sang på Blip.fm kan denne gå gjennom samme systemet. I stedet for å lage et blogginnlegg hver uke, lager man i dag mange små mikroinnlegg gjennom statusoppdateringer og tweets.

Jeg ønsket at et nytt design skulle kunne representere det nye nettet (red anm: siste kliskevarsel, neste gang er det rett ut). Derfor skal ikke websiden min lenger være en hjemmeside eller en blogg, den skal være mer. Det skal være en hub hvor informasjon fra alle disse tjenestene automatisk skal publiseres. Når jeg legger til en lenke i del.icio.us, kommenterer alt og ingenting i twitter eller facebook, hører en sang på Blip.fm, skal det altså komme på siden. Alt dette får man til ved hjelp av API fra friendfeed, embeded player fra Blip.fm og diverse wordpress-plugins. Jeg er nok ikke helt ferdig med utviklingen av siden min enda, men alt i alt er den nå mer enn en blogg, og det var målet.

Forhåpentligvis kommer det fortsatt til å bli en plass for blogger og lengre innlegg enn 140 tegn på nettet, så jeg kommer til å fortsette å blogge nå og da. Dessuten skal jeg også fornye Talgø Software sin side, forhåpentligvis i en noe annen stil enn den man finner her.

30
Jun

Personlig Word-cloud

Tagging, word clouds og folksonomy er web 2.0-begreper som virkelig har tatt var de siste årene. Det handler om å gi merkelapper til sider, filmer og elementer av sider. Tagging kjenner vi f. eks. fra flickr, hvor du bruker enkle stikkord for å beskrive bildene, og fra del.icio.us for å beskrive lenker og gi bokmerkene dine større slagkraft enn ved bruk av kategorier. Folksonomy er å kobinere tags fra mange folk som tilsammen gir en god beskrivelse av en ressurs.

For å lage en personlig ord-sky eller word cloud, kan du bruke Wordle, hvor du mater inn en URL eller ditt del.icio.us-brukernavn, og får se hva din personlige word cloud er. Du kan lage din egen på Wordle sin side. Min bokmerkeprofil finner du nedenfor:

15
Jan

Master: Web 3.0?

Da var mastergradskontrakt levert, utdanningsplanen komplett og jeg føler for første gang på noen måneder i rute igjen. Jeg har virkelig hatt avgjørelsesvegring denne gangen, og hoppet mellom mange forskjellige områder og avdelinger på en oppgave som jeg i ettertid kan si meg fornøyd med. Forhåpentligvis har jeg funnet dette i den semantiske weben.

Hunds semantikkFor å forklare hva dette er, må jeg først forklare litt mer om hvorden nettet er i dag. Websider er skrevet i HTML, som blir tolket og presentert av nettleseren. Nettsidene er bygd opp av paragrafer, titler, overskrifter, bilder, tabeller og så videre. Alt dette er syntaxrelatert og beskriver hvordan nettsiden skal se ut, ikke hva innholdet på siden er. Nettleseren som viser denne siden aner ikke om dette er en webbutikk og blogg, altså den aner ikke noe om innholdet på siden, den forstår ikke semantikken.

Når du søker på google, er det egentlig ikke informasjonssøk du gjør, men datasøk. Om du skal ut og reise og søker på google, kan du ikke spørre google om å finne den billigste reisemåten fra Trondheim til New York. Du må selv søke på reiseoperatører, sjekke tider og priser og sammenligne. Den semantiske weben (jeg sier ikke semantiske nettet, da dette er noe annet i kunstig intelligens) vil derimot uttrykke informasjonen på reiseoperatørenes sider på en måte som datamaskiner kan forstå, da trolig i et XML-basert system, som OWL er et eksempel på. Dette gir deg mulighet til å gi en agent beskjed om å finne reisemuligheter basert på attributter som pris, tidspunkter, sikkerhet og lengde uten at du selv må oppsøke sidene. Vi gir datamaskinene mulighet til å forstå informasjonen som blir lagt ut.

En annen viktig del av den semantiske weben, og antageligvis hva jeg skal konsentrere meg om er ontologier. Ontologier er beskrivelser av et domene, altså entitetene i domenet, og for å få den semantiske weben til å fungere er man avhengig av et godt ontologisystem. For et enkelt eksempel, tenk på en hund. Vi vet at en hund må være enten hankjønn eller hunkjønn, og at den normalt har fire føtter. Alt dette er en del av ontologien, og er nødvendig for at datamaskiner skal kunne ha semantikken i orden. Semantisk Web er i grenseområdet mellom informasjonsforvaltning og kunstig intelligens, og dette ser vi om vi utvider beskrivelsen over til å også ha med mennesker. Vi vet at også mennesker er enten hankjønn eller hunkjønn, og har normalt to føtter. Direkte kan maskinen da se at mennesker og hunder er nærmere relatert til hverandre enn f.eks. hunder og en torsk, da en torsk ikke har noen føtter.

Jeg kommer antagelig til å opprette en egen semantisk web-blogg etter hvert som jeg kommer mer i gang. Selv om jeg ikke har en presis oppgavetittel så langt, vil det trolig omhandle det å gjøre resonnering og inferens i systemer som består av flere forskjellige ontologier som ikke gir noen direkte mapping, la oss si at f.eks. en bruker hund som en klasse i ontologien, mens en annen bruker hundedyr som også inkluderer ulv. En semantisk web vil trolig innholde mange ontologier som kan være i konflikt med hverandre og konflikter mellom disse må ses på. Så da er det bare å begynne å dykke ned i materien i form av artikler og bøker.

10
Nov

1. Make a Facebook – 2. ??? – 3. Profit

Facebook har eksplodert det siste året, og blitt umåtelig populært i blant annet Norge. Det har også åpnet blogging, nettet og social networking til grupper som før ikke har brukt nettet i stor grad. Når du signer opp på facebook må du godkjenne en “Terms of Use”-avtale, som de fleste bare trykker villig “accept” til for å få komme inn. Dette gjør at du i praksis lar facebook bruke alt du poster slik de selv vil, f.eks. finnes dette avsnittet:

Facebook“By posting User Content to any part of the Site, you automatically grant, and you represent and warrant that you have the right to grant, to the Company an irrevocable, perpetual, non-exclusive, transferable, fully paid, worldwide license (with the right to sublicense) to use, copy, publicly perform, publicly display, reformat, translate, excerpt (in whole or in part) and distribute such User Content for any purpose on or in connection with the Site or the promotion thereof, to prepare derivative works of, or incorporate into other works, such User Content, and to grant and authorize sublicenses of the foregoing.”

De kan i praksis gjøre hva de vil med bilder, informasjon, anmeldelser, lenker og ligende som du legger ut. De fleste gründere på nettet har lyst til å tjene penger på tjenesten sin, og facebook er helt klar ikke noe unntak. Vi har allerede sett såkalte Facebook Flyers på venstre side når vi logger inn, men nettbrukere i dag begynner å bli flinke til å filtrere ut annonser. I tillegg har vi fått en overflod av Facebook Apps, og i det siste har også disse begynt å bli mer businessfokuserte ved å integrere annonser.

Nå ser det ut til at det går videre, ved at Facebook har lansert sine Business Solutions. Det er mulighet til å bruke personlig informasjon om deg eller dine venner til å generere spesifikke annonser for deg, som kommer i nyhets-feeden din, det er mulighet for å lage profiler som fungerer som reklamesider og fremstår på samme måte som en personlig profil og det er mulighet for spesialisert statistikk over brukerne av en profil eller lignende.

Det at facebook har så detaljert kunnskap om medlemmene, alt fra festbilder, navn, fødelsdato, bosted, jobbinformasjon, studieinformasjon, hvem man kjenner, politisk og religiøst standpunkt og interesser gjør det til en utrolig plattform for reklame, og spesialisert reklame. I tillegg har facebook store rettigheter til å bruke all denne informasjonen til stort sett hva de vil. Jeg sier ikke at du bør fly og slette alt på facebook, men ikke legg ut informasjon på facebook som du ikke kunne lagt ut på en åpen nettside med ditt navn på, og ikke føl deg trygg om du har privacy-settings som gjør at kun dine venner kan se informasjonen. Kommersialiseringen er i full gang. Facebook er Big Brother i denne sammenhengen, og kan se alt du gjør… på facebook vel å merke.

01
Nov

Microsoft-teknologi og NTNU

Å gå rundt med en MSDN-bag og sitte å programmere i C# eller Asp.NET på Gløshaugen blir noen ganger som å kle seg naken i kirka og springe rundt og knuse ruter, samtidig som man banner. Her er det C++, Java, C, Lisp, Scheme, Prolog, JSP, Python, Oz og så videre som gjelder. Dette har jeg jo dratt litt nytte av, med tanke på at jeg hovedsaklig starta uten å kunne så mange andre språk enn noe C++ og PHP. Alikevel er det spennende teknologier man ikke lærer noe av uten å utforske det selv. Dette inkluderer Microsoft sin plattform .NET, og alle språk som hører under denne (av andre kan jeg nevne f.eks. Ruby og JavaScript (Ajax anyone?)).

Selvsagt er det bakdeler med .NET, som dårlig støtte under Apples systemer og Linux-dristribusjoner, og Sun’s Solaris. Ja, generelt alt som ikke Microsoft selv selger og tjener gode penger på. Alikevel er det et apropos at en teknologi som er såpass utbredt i industrien blir totalt ignorert. En av mine favorittpodcaster, Boagworld, snakker litt om et lignende tema i sin jubileumssending (100), og legger vekt på at universitetene ikke klarer å henge med i den teknologiske utviklingen. Derfor bør man som student fokusere på å lære tankegang, algoritmer, arkitektur, arbeidsmåter, planlegging, struktur og lignende. Vel og bra, men når skal man lære teknologien? Det må du gjøre selv, og derfor vil jeg gi litt tips om hvordan man kommer igang med programmering på .Net-plattformen.

De fleste utviklingsverktøyene man trenger for å komme igang er gratis, og kalles Express-versjoner, f.eks. Visual C# Express. Den har begrensinger, men for å komme igang holder det i massevis. Senere er selvsagt Visual Studio nyttig å ha.

C# er mitt favoritt-språk på .Net-plattformen, og jeg bruker det både for små kodesnutter (algoritmer) og mitt favorittområde, spillprogrammering. For å komme igang anbefaler jeg å se på Coding4Fun-webcastene, som er videotutorialer som går grundig gjennom utvikling av 2D og 3D-spill. Et enda mer aktuelt område er nok XNA (XNA’s Not Acronymed) som er spesialisert for å la deg utvikle språk både for Windows og Xbox 360. Selv liker jeg å ha mer frihet enn XNA gir (så langt som jeg kom på å utforske det), så C# kan også absolutt anbefales.

Web-utvikling i Asp.NET var jeg på MSDN Live-konferanse for å lære, og det var både lærerikt og spennende å se. Alikevel har jeg ikke brukt det i noe særlig grad etter det. Grunnen er nok den samme som for XNA, nemlig at jeg får litt WYSIWYG-feeling av å bruke det, og jeg ønsker mer kontroll. Dessuten er koden fæl å se på. :)

Silverlight er en spennende teknologi å følge, og er Microsoft sin Flash-utfordrer. Flash er blitt allemannseie etter Youtubes inntreden, og vi ser mer og mer sider på nettet som også er bygd i Flash. Jeg har aldri vært fascinert av Flash, selv om jeg må innse at Web 2.0-utvikling krever mer og mer utvikling som kan gjøres langt enklere i Flash enn med PHP og Ajax. Dette har vel noe med at jeg er codemonkey, og ikke designer.

Mitt tips er altså å sette seg ned noen kvelder, gå gjennom noen C#-webcasts, og lage noen spennende spill eller en widget gadget for Vista. Teknologi er ditt ansvar å lære seg, universitetet tar seg av algoritmene og arkitekturen.

07
Jul

Effektiv utvikling med cakePHP

De siste ukene har jeg sittet og programmert PHP når jeg har hatt tid, og har tatt i bruk rammeverket CakePHP. CakePHP er bygd opp rundt model-view-controller arkitekturpattern, og lar meg meget effektivt utvikle sider som har en oppbygning som jeg lett kan uttrykke i den objektorienterte verden.

Snooze betaFor å prøve å forklare det enkelt, så tar modellen for seg lagring av informasjonen i SQL, view er nettsidene som vises og bruker HTML, JS og PHP og controlleren er en PHP-klasse som tar for seg brukerresponser, lagrer og henter informasjon som trengs.

Siden jeg bygger er snooze.no, som skal inneholder spill, filmer og annen tidtrøyte. Jeg er ferdig med grunnlaget nå, og optimaliserer nå for administrasjon, brukere, caching av informasjon og brukergrensesnitt. Forhåpentlig blir en betaversjon klar snart, og da blir det lagt ut. Merk at det jeg har gjort så langt ikke er lagt ut enda. En release candidate følger noen uker etterpå, og lanseringen håper jeg å få gjort i løpet av august eller starten av september, da med nok innhold til at det skal være verdt i være der.

Men tilbake til cakePHP. For å forklare litt hvordan det fungerer, så kopierer man filene til serveren sin (selv bruker jeg xampp for utvikling, anbefales), konfigurerer en SQL-database og legger inn tabeller for alle modeller man ønsker. Deretter lager man en kontroller for hver modell, og legger inn funksjoner for hver egenskap brukerne har til å se på modellen. Til slutt trenger man en view for hver av disse funksjonene.

En veldig fin introduksjon til cakePHP finner man i manualen, der man lærer det grunnleggende systemet ved å lage en blogg. Deretter kan man utvide denne siden til å tillate kommentering og brukerautorisering. En annen fin egenskap er at du finner mye ferdige tillegg til cakePHP. Blant de jeg har brukt så langt er WYSIWYG-editor og bildeuploading. I tillegg skal jeg se på AJAX-hjelperen som også følger med før jeg blir ferdig. CakePHP kan absolutt anbefales på det varmeste for å utvikle og prototype nettsider.

Neste side »