måndag, april 09, 2007

LOST - Lowly Old School Transfers

A simplified, old-fart-stupid-web-0.9-compliant-dumbed-down-rest-file-transfer-protocol

I publish this in English since my frustration is to be heard all over the world.

After having developed at least three clean, nice, and neat RESTful file and application servers in PHP (for plain vanilla Apache installations), when deploying it at my web hotels' (servers outside my control), I discovered a lot of problems:

First: the authorization headers. Stupid safe-mode schmafe-schmode that restricts my scripts from reading those headers.

Then: the firewall only let GET and POST through!

Gnash gnash!

RESTfulness is beautiful, but since the world doesn't understand the economic value of protocol beauty, we have to go ugly.

My former take on the problem, the BOX server, was competent but a bit too complex.

Need to restate the problem: never mind the full functionality, here's the BAG (Bare-bones All Good) server, implementing Lowly Old School Transfers.

Workings

The URL space of LOSTful servers only references one type of resource: the folder. LOSTfulness is about storing and getting chunks of octets in folders. Folders are named using a path. Octet chunks are named using a file name.

Only two HTTP verbs are used, the plain old comrades GET and POST.

The folder itself understands more verbs.

GET

LOSTfulness in its most primitive form only recognize GET to the folders.

GET /foo/bar?name=my_file.txt

...returns the octet chunk that has its name property called "my_file.txt".

This ensures the RESTfulness of LOST: GET is still a safe operation.

POST

POSTs are not safe (they change stuff on the server), but should be idempotent (POSTing the same message twice should not mean something else than POSTing it once or trice).

For putting octet chunks at the server, we use the file-upload mechanism (POSTing "multipart/form-data").

For other verbs, we have to resort to command message postings.

Delete: cmd=del&name=my_file.txt

Removes the my_file.txt at the folder.

Security: user=foo&pass=qwerty

Basic authentication is used.

For legacy support, POSTing or GETting user/pass pairs will result in a session id header.

The security domain is a folder and all its subfolders.

onsdag, april 04, 2007

Tailer i ny version!

Nu kan man dra och släppa filer på antingen adressfältet eller det stora fältet.

Vidare finns där en knapp för att bläddra i filsystemet. Pause/Play-knapp med symboler för att pausa det aktiva bevakandet av filer.

Återstår: Copy (från cut-copy-paste) samt möjlighet att öppna flera fönster. Det sistnämnda är kanske inte så viktigt, det är ju bara att öppna fler Tailers.

http://fundament.se/tailer.jnlp

(http://fundament.se/tailer.jnlp, http://fundament.se/scrap.jnlp, http://fundament.se/sock.jnlp)

tisdag, mars 27, 2007

Liten idé

Idé som jag kanske kommer att implementera någon dag, eller också inte:

För att lösa brandväggsproblemet med instant messaging brukar man ibland låta meddelandena läggas på en server som man sedan pollar. Detsamma gäller P2P-applikationer.

Nå, inte ska väl en så enkel operation behöva olika implementationer? Visst är det där bara en instans av fall där en REST-filserver skulle göra susen. Tjipp-tjopp-skriv till URL. Tjipp-tjopp-hämta data vid URL.

HTTP for the win.

söndag, mars 25, 2007

Vi har spelat in musik

Jag och min vän Paul har, som vissa av er vet, en liten duo där vi spelar lite musik och sjunger ihop. Nu har vi gett oss till att spela in lite (tack vår musikaliska klippa P för all hjälp och begåvat dobro-spel):

Lyssna på! No Admittance har Paul skrivit, Hurt har jag skrivit, och One by One har vi skrivit tillsammans.

Update

Kanske ska byta namn på bandet. "EK" är tydligen även mexikansk dödsmetall (tack Tomas för påpekandet): EK.

torsdag, mars 15, 2007

Fundament Tailer ute!

Det tog en kväll att svänga ihop en första Tailer-implementation.

http://fundament.se/tailer.jnlp

Peka ut den fil du vill "taila" (skriv sökvägen i fältet). Pausa om du tycker att den behöver lugna sig.

Ska försöka få till ett multifönster också där man kan taila flera filer samtidigt, och som kommer ihåg vilka filer man tailade... En "Bläddra"-knapp bredvid fältet, bokmärken, refresh-knapp, symboler för "Paused" och "Running"... listan kan göras lång.

Men först måste jag försöka få ut RedNote.

EDIT: En vän saknade även möjligheten att dra och släppa filer på textarean/adressfältet. En god idé.

onsdag, mars 14, 2007

Mina två populäraste inlägg

Det mest efterfrågade på denna blogg, om man ser till statistiken, är mina två hurmangör-dokument om Apache 2.2 på Windows, samt PHP till densamma.

Nu fick jag reda på igår att det är lite svårt att söka fram dessa två, alltså repriserar jag deras URL:er här.

Varsågoda, Installera Apache 2.2 och PHP 5 på Windows:

PDF Scrap, trädräddaren i nöden.

Heh... Jag ska hålla en kurs i IBMs Message Broker. Kursen är skriven av IBM själva och innehåller en lärarhandledning på ...780 sidor !!!!

Mitt inre öga ser hur skogen mals ner och massafabrikerna tjänar multum.

Nå, mitt yttre öga är ganska gott och klarar att läsa liten text. Därför utökade jag Scrap PDF igårkväll med "Arrange 2x2".

  1. Se till att din infil är stående A4, genom att skala till det (drag och släpp den på "Scale to A4").
  2. Drag och släpp din fil på "Arrange 2x2". Sidorna arrangeras 4 och 4 på stora ark.
  3. Skala ner till stående A4 igen (drag och släpp).

Sådär, nu är sidorna förminskade fyra gånger och monterade fyra och fyra på A4 ark. Sparar skog, sparar bläck.

http://fundament.se/scrap.jnlp

tisdag, mars 13, 2007

jsolutions.se

Har dessutom en text på G om REST. Fast den får komma upp på firmabloggen istället.

Lite nya ideer och progressrapporter...

För det första saknar jag tail så att jag kan dö. Tail tillhör definitivt ett av de fundamentala verktygen, och sålunda bör fundament ha en implementation. Jag funderar på att göra den url-baserad dock, det är ju ändå 2000-tal. Men det kan bli lite lurigt, eftersom tail bygger på att läsa filer bakifrån, medan url:er handlar om att suga i sig resurser framifrån.

Jag drömmer fortfarande om det goda databasverktyget. En vacker dag kommer det, jag lovar.

Min gamla ide om en texteditor som minns allting tidsmässigt börjar så smått bli färdig. Den heter RedNote och funkar som ett superviktigt anteckningsblock.

Kommer förmodligen efter Tailer. Och Zap. Zap är en komprimerare/dekomprimerare. Drag och släpp mappar på komprimeringsikonerna, och det blir en komprimerad fil. Drag och släpp en komprimerad fil, och den kommer att bli en avkomprimerad mapp. Alltid mapp. Man ska aldrig behöva tveka om filerna packas upp hej vilt, eller om de packas upp i en snygg mapp.

Födda: Fundament Scrap

Nuså. Undertecknad proudly presents PDF-mojängen från garaget: Fundament Scrap. Gör så här:
  1. Se till att du har Java 6 installerat på din burk.
  2. Klicka på länken http://fundament.se/scrap.jnlp
  3. Drag och släpp dina PDF:er på någon av ikonerna. En ny PDF skapas i samma mapp som den gamla.
Jag gjorde den här för att jag gillar hemgjorda häften. Gör så här:
  1. se till att originalet är en PDF med jämnt antal A4-sidor (vid behov: skala till A4).
  2. Skapa häfte (Create PDF Folder).
  3. Skala till liggande A4 (A4 Landscape).
Nu har du fått en PDF som är sådan att om du skriver ut den dubbelsidigt, så är det bara att vika och häfta i ryggen (som en serietidning). Och jo: du måste lita på mig. Jag tänker inte skaffa ett certifikat, för allvarligt talat, om jag skaffar ett certifikat, hurpass mycket säkrare blir du då egentligen?

lördag, mars 03, 2007

Aforism

Himlen och helvetet är samma plats för systemutvecklare, en plats där man i evighet tvingas använda de system man själv utvecklat.

lördag, januari 27, 2007

Virtuella kontanter

En idé till: virtuella kontanter.

Tanken är inte ny, men har aldrig riktigt lyft. Här är mitt förslag:

Var och en kan ge ut sin egen valuta. Det som krävs är en hemlis. Genom att ange min egen hemlis, så kan jag ge ut min egen valuta.

Låt oss säga att jag skapar en egen peng: 100 Flunk. Pengen har ett sedelnummer som är skapat av min hemlis.

Nu ger jag pengen till min vän. För att pengen ska få sitt värde även för vännen, så måste vännen växla in pengen till en ny peng på 100 Flunk. Då invalideras min gamla peng, så att jag inte kan använda den flera gånger.

fredag, januari 19, 2007

Men överraska mig då!

Marknadsfolk. Lyssna nu riktigt riktigt grisnoga:

Hemligheten är inte att ge folk vad de vill ha. Hemligheten är att ge dem vad de till sin överraskning upptäcker att de vill ha!

Jag är professionell datanörd. Jag surfar på många nördsidor. Därför är jag tydligen dömd att nås av nördreklam. Prenumeration på internetworld, osv osv.

Dessa reklamskript som försöker ge oss annonser som liknar de siter vi redan besöker, de missar en viktig sak: folk vill bredda sig!

Alltså: tror ni inte att jag inte redan har läst senaste internet world? Finns det i era hjärnor att jag surfar för att försöka hitta sånt jag inte redan känner till?

Internet är till för att bredda vyerna, inte för att snäva till dem ytterligare.

Dumskallar.

fredag, januari 12, 2007

Två ideer till

För det första: en liten krypterad fil, för folks alla lösenord och hemlisar. Man kan välja att ha den på fundament-servern, eller i hemkatalogen, eller på den lilla USB-pinnen.

För det andra: en liten synkkatalog på den lokala datorn och servern. Enkel upp/nedladdning, som väljer den senaste versionen av alla filer, som ser till att inget körs över.

En bra bok

En bra bok: läs.

söndag, januari 07, 2007

Skapa PDF från blogginlägg

Jag har ju slutat bry mig om att vara förtegen med alla mina idéer. Istället gäller mitt nyårslöfte: kommunicera dem!

Min senaste idé jag jobbar med är en PDF-generator från blogginlägg. Jupps. Givet ett blogginlägg (eller vilken RSS/Atom-post som helst), så skapas en PDF.

Kan vara käckt. Vissa människor är ju så hopplöst utskriftsdokumentiga. Lättdistribuerat bland kostymnissarna.

Salut!

Songs.xsl, för gitarrnörden

Idag har jag suttit och tagit ut One med U2 på gitarren.

Resultatet kan beskådas här: www.fundament.se/songs/one.xml

Lägg märke till att låten är en XML-fil. Självklart är det XSL som står för presentationen! XSL-filen finns här: http://www.fundament.se/songs/songs.xsl

Leve XML! Leve U2! Leve nörderiet!