Gå til hovedindhold
Version2 it for professionelle
Forsiden

Hovedmenu

  • It-nyheder
  • Blogs
  • It-job
  • It-firmaer
  • Whitepapers
  • Opret bruger
  • Log ind
Du kan logge ind med din e-mail-adresse
Der er forskel på store og små bogstaver i adgangskoden.
Glemt adgangskode?
Se kommentarer (4)
Emner

AcmeCal: Selvgjort er velgjort

Af Peter Makholm 21. februar 2008 kl. 09:20

Jeg har længe savnet et kalenderprogram der var designet til at opfylde mine behov. I går aftes fik jeg så et par timer til overs, så hvorfor ikke skrive sit eget? Det kunne måske være interessant at dele lidt ud af nogle få, spredte tanker jeg har gjort mig:

Brugergrænseflade: Mine to foretrukne brugergænseflader er Unix' komandolinje og min teksteditor. Så selvfølgelig skal de udgøre brugergrænsefladen til mit kalendersystem. En håndfuld enkle småprogrammer der løser én opgave og starter min foretrukne teksteditor når jeg skal redigere ting.

Informationsmængde: Less is more. Det er sjældent at jeg bruger mere end et mødetidspunkt og en overskrift. Eventuelt har jeg brug for et sluttidspunkt og en længere beskrivelse. Gentagende møder er for kompliceret, så det gider jeg ikke lave.

Dataformat: Skal vi redigere ting i en teksteditor skal vi selvfølgelig bruge et menneskevenligt dataformat. Hører jeg nogen sige XML? Nej, det er ikke til at redigere i hånden. Et meget bedre valg er YAML. En bonus er så at beskrivelsesfeltet kan indehold alt den struktur man måtte ønske ved at bruge YAML.

Id-strenge: Hvert møde skal selvfølgelig have en (næsten-)unik identifikation. Hverken titlen eller tidspunktet går, da de begge skal kunen redigeres. Jeg vil genre kunne merge forskellige kalendre, så fortløbende id-numre går ikke og UUID'er er ikke brugervenlige. I øjeblikket bruger jeg bare et timestamp med centisekund-opløsning. Det er hverken garanteret unikt eller specielt brugervenligt. Det sidste løser vi ved at konvertere tallet til et vrøvleord med perl modulet String::Koremutake.

Med 400 linjer perlkode og absolut ingen dokumentation er jeg klar til at præsentere AcmeCal 0.1. Men selvfølgelig skal du hellere skrive dit eget system.

Send Tweet
Udskriv
Billede af Peter MakholmOm Peter MakholmFollow @pmakholm

Kommentarer (4)

Opret en konto eller log ind for at følge indhold på Version2 - og bliv opdateret via e-mail eller rss

Følg kommentarer
michael rasmussen 22. feb. 2008 - 01.06
 
Bygning fra source

Måske en notits om at din pakke skal bygges med det mindre udbredte Module::Build, der findes i pakken libmodule-build-perl på Debian.

  • Stem op 0
  • Stem ned 0
  • Log ind eller opret en konto for at skrive kommentarer
Martin Kofoed 22. feb. 2008 - 08.16
 
Gør-det-selv

Det er naturligvis sjovt at gøre det selv, men nogle gange er det også fedt at kunne stå på skuldrene af andre.

Hvis du på noget tidspunkt skal lege med datoer i JavaScript, kan jeg anbefale at tage et kig på det her: http://www.datejs.com/

Det er lidt vildt. Og ville nok tage en smule tid at hacke sammen selv.

  • Stem op 0
  • Stem ned 0
  • Log ind eller opret en konto for at skrive kommentarer
Peter Makholms billede
Peter Makholm 22. feb. 2008 - 09.17
 
Re: Gør-det-selv

Man skal selvfølgelig altid overveje hvornår noget er sjovt at lave og hvornår andre har lavet det bedre i forvejen. Det er lidt for sjov at lave AcmeCal og jeg mene at det opfylder mit behov bedre end hvad jeg har set på af alternativer.

Lige netop håndtering af tidsangivelser vil jeg meget gerne finde nogle skuldre at stå på og jeg har lidt kik på [url=http://search.cpan.org/perldoc?Time::ParseDate]Time::ParseDate[/url]. Der er bare lige to men'er: Jeg skal være helt sikker på at den foretrækker ethvert muligt alternativ til den us-amerikanske middle-endian datoangivelse og jeg skal have mulighed for at vælge om en dato uden klokkeslet skal angive begyndelsen eller slutningen af dagen. Hvis jeg laver en søgning på { from => today, to => tomorrow } skal den selvfølgelig finde events fra begyndelsen af idag til slutningen af tomorrow.

Det kunne være indlysende at bruge [url=http://search.cpan.org/perldoc?Class::Accessor]Class::Accessor[/url] istedet for at skrive mine egne. Men her vurdere jeg at det at introducerer en afhængighed for så lidt ekstra funktionalitet er for dyrt. Det kan være at jeg laver den beslutning om senere.

Derudover betragter jeg klart brugen af YAML og $EDITOR som at stå på de rigtige skuldre. Det modul til import af iCalendar-filer jeg er igang med at pudse af gør også god brug af et eksisterende iCalendar-modul.

  • Stem op 0
  • Stem ned 0
  • Log ind eller opret en konto for at skrive kommentarer
Peter Makholms billede
Peter Makholm 22. feb. 2008 - 09.19
 
Re: Gør-det-selv

Ok, det kunne man ikke...

De to links til perl-moduler skulle have været til

Time::ParseDate der findes på http://search.cpan.org/perldoc?Time::ParseDate

Class::Accessor der findes på http://search.cpan.org/perldoc?Class::Accessor

  • Stem op 0
  • Stem ned 0
  • Log ind eller opret en konto for at skrive kommentarer

Tilføj kommentar

Opret en konto eller log ind for at følge indhold på Version2 - og bliv opdateret via e-mail eller rss

Følg kommentarer
Log ind herunder eller opret en bruger for at skrive kommentarer
Du kan logge ind med din e-mail-adresse
Der er forskel på store og små bogstaver i adgangskoden.
Glemt adgangskode?

Seneste nyt

Danske HP-ansatte er fyringstruede: Indkaldt til stormøde

Udgivet 24. maj 10.37Opdateret 24. maj 11.00

HP fyrer 27.000 ansatte

Udgivet 24. maj 10.10Opdateret 24. maj 10.10

Kinect til Windows klar på dansk til juni

Udgivet 24. maj 9.24Opdateret 24. maj 9.24

GOTO Copenhagen dag 3 i billeder: Sådan kaprer udstillerne kunder i biksen

Udgivet 24. maj 8.49Opdateret 24. maj 8.49

Jysk hospital bygger eget socialt netværk på Drupal

Udgivet 24. maj 8.07Opdateret 24. maj 10.02

Flere it-nyheder »

Tilmeld dig Version2's it-nyhedsbrev og vind den nye iPad.

Seneste debat

  1. GOTO - programming with the stars (F#)

    1 comment.
    Last update 3 minutter 14 sekunder
    Skrevet af Torben Mogensen
  2. EMC: Derfor skal du undgå både public og privat cloud

    2 comments.
    Last update 4 minutter 17 sekunder
    Skrevet af Jesper Grønbæk
  3. Kynisk it-guru: »Internettet er basalt set noget lort«

    3 comments.
    Last update 4 minutter 37 sekunder
    Skrevet af Poul-Henning Kamp
  4. Oracle tabte, vandt Google Java ?

    6 comments.
    Last update 6 minutter 55 sekunder
    Skrevet af Poul-Henning Kamp
  5. Sådan formaterer du tekst i debatten på Version2

    33 comments.
    Last update 16 minutter 18 sekunder
    Skrevet af Casper Thomsen
  6. Meego-afløseren Tizen klar til at tage kampen op med Android

    8 comments.
    Last update 39 minutter 33 sekunder
    Skrevet af Jacob Sparre Andersen
  7. Yahoo fyrer topchefen efter 4 måneder

    1 comment.
    Last update 46 minutter 51 sekunder
    Skrevet af Mark Thorsen
  8. Dart: Dynamisk Statisk Programmering

    24 comments.
    Last update 48 minutter 39 sekunder
    Skrevet af Baldur Norddahl

Mere debat »

Information

  • Kontakt redaktionen
  • Job- og annoncesalg
  • Teknisk support
  • Om Version2
  • Brugerbetingelser
  • Privatlivspolitik

Aktuelle emner

  • Agil udvikling
  • Android
  • Bruttolønsordning
  • Business Intelligence
  • Cloud computing
  • Download Windows 8
  • HTML5
  • Harddisk-priser
  • IE9
  • Intranet
  • It-sikkerhed
  • Kindle Fire
  • Multimedieskat
  • NemID
  • OS X Mountain Lion
  • Open source CMS
  • Projektledelse
  • Scrum
  • Sharepoint intranet
  • Storage
  • Ubuntu 11.10
  • Virtualisering
  • Windows 8
  • Windows Phone 7
  • iOS 5
  • iPhone 4S

Tjenester

  • Android-app
  • iPhone-app
  • RSS-feeds
Følg @version2dk
Tilmeld dig Version2's it-nyhedsbrev og vind den nye iPad.

Version2 udgives af

  • Mediehuset Ingeniøren A/S work Skelbækgade 4 1717 København V
  • Tlf. work 33265300