iCal export implementation for Alfresco

For my vcf planning calendar, which is partially described in my Bachelor's thesis, I made function, which does export to iCal calendar format. I used Jav-backed WebScript at Alfresco side and iCal4j library for implementation of RFC 2445 standard – iCalendar.

For my vcf planning calendar, which is partially described in my Bachelor's thesis, I made function, which does export to iCal calendar format. I used Jav-backed WebScript at Alfresco side and iCal4j library for implementation of RFC 2445 standard – iCalendar.

The aim was to create service with parameter of node with planned sessions (ArchivaceSummary aspect) which exports iCal file with all sessions (ArchivaceSession aspect) in it. Simple data model scheme of aspects is at following picture. Those aspects are just flags of type of nodes, only ArchivaceSession aspect associates some properties – a date of begin and end of action. More informations are in my Bachelor's thesis.

Image Hosted by ImageShack.us

Due to use iCal4j library I needed to use Java-backed web script, because i can't see a simple way to create iCal file just with Freemarker, which is used as a rendering machine in "normal" web scripts. Java-backed web scripts are clearly described at Alfresco wiki pages, but when you try to write your own you discover that there is no library in SDK. This problem is reported as a bug, but there is still no solution. It's needed to download library (and source) alfresco-web-framework and include it to project, then it's all ok and it's possible to build Java-backed web scripts.

So, every webscript needs a description file, i put this one into WEB-INF/classes/alfresco/templates/webscripts/org/alfresco/archivace/ical.get.desc.xml

<webscript>
    <shortname>iCal Export</shortname>
    <description>Export kalendare z Archivacniho prostoru</description>
    <url>/archivace/ical?nodeRef={noderef}</url>
    <authentication>user</authentication>
    <transaction>required</transaction>
</webscript>

You can see from its name (ical.get.desc.xml) that this webscript implements get http method. You also need to specify that fact in bean identificator – as a postix, as you can see on next listing of part of web-scripts-application-context.xml.

 <bean id="webscript.org.alfresco.archivace.ical.get"
    class="cz.shmoula.webscripts.ICal"
    parent="webscript">
  </bean>

This postfix is picked up by the Web Script engine, also 'webscript.' prefix is picked up. Webscript prefix identifies that bean you are specifying is a webscript implementation.  Notice that url parameter in desc.xml and suffix of bean identificator  are corresponding: alfresco.archivace.ical.get   —  /archivace/ical.Second parameter, class, specifies class with implementation. My class implementation is based on AbstractWebScript class, which provides simplier development of WebScripts. Main method of this class is method public void execute(WebScriptRequest req, WebScriptResponse res), which is described on next listing.

public void execute(WebScriptRequest req, WebScriptResponse res)
            throws IOException {
        // getting request data
        HttpServletRequest httpReq = req.getHttpServletRequest();
        // opening specified node
        Node noda = new Node(NodeRef(httpReq.getParameter("noderef")));
        // creating new calendar object
        net.fortuna.ical4j.model.Calendar calendar = new net.fortuna.ical4j.model.Calendar();

        // cycling through node and reading data
        for (Iterator i = noda.getChildAssociations().values().iterator(); i
                .hasNext();) {
            . . .
            if (n.hasAspect(ArchivaceModel.archSession)) {
                // if type of child is what I want, just create data from provided info and add to calendar
                this.addEvent(n.getProperties());
            }
            . . .
        }
        // setting response and printing out a calendar
        res.setContentType("text/calendar");
        res.getWriter().write(this.calendar.toString());
    }

Pressty simple, huh? And the last task – calling this webscript. Either by specifying an url with required parameter (node reference), or in code. I'm using an ActionLink from Alfresco Tag Library called this way:

 <a:actionLink value="iCal export"
    image="/images/icons/calendar-16.gif"
    href="/service/archivace/ical?noderef=#{NavigationBean.currentNode.nodeRefAsString}"
/>

And that is it. I have a calendar export button on my page as you can see on following image.

Image and video hosting by TinyPic

 

3 stupne drsnosti

Tak jsem v jednom klubiki narazil na link na test 3 stupne drsnosti a prej jsem "Master of outdoors", blizsi info prikladam dale.

Tak jsem v jednom klubiki narazil na link na test 3 stupne drsnosti a prej jsem „Master of outdoors„, blizsi info prikladam dale.

Druhy stupen drsnosti. Clovek je dosti oslehan a uz vi, co a jak. V batohu s sebou vozi jen veci nezbytne nutne, spacak si dava sit na zakazku. V desti je schopen postavit prístresek za dve minuty, v zime spi na snehu. Krcmy mijí s opovrzlivym usklebkem, presne vi, kdy jede vlak a vi take, ze do te doby stihne prejit cele pohorí. Alespon v Rumunsku uz byl nekolikrat, Karpatske hry zná zpaměti a zkousel se tam pohybovat v jejich duchu. O boty pecuje a presne mu sednou, dovede hodiny debatovat o tom, je-li mezi nozi lepsi Victorinox nebo Leatherman. Na vlka si zvykl, moc ho neomezuje, protože má kalhoty prosite tak, aby vetral. Chodí v přírodních barvách, pod nimiz ma vrstvu modernich hi-tech materialu.

Ovsem paclitovou vetrovku mam, jen nema takove ty okate barvy, ale vetsinou si vystacim s hightech oblecenim ukrytym pod maskacema, na power stretch v zime nedam dopustit :-D.

Interrail Eurotrip 2008

Už nějakou dobu pořád dokola omílám připravovanou cestu skrze západní Evropu a defakto ještě nemám ani pořádně hotovej itinerář, či ani nemám hotovou nějakou prezentaci, kterou bych mohl nabídnout případným zájemcům o přidání se. Timto blogpostem se to teda pokusím napravit a budu se snažit jej udržovat updatovaný, dle aktuální situace.

Už nějakou dobu pořád dokola omílám připravovanou cestu skrze západní Evropu a defakto ještě nemám ani pořádně hotovej itinerář, či ani nemám hotovou nějakou prezentaci, kterou bych mohl nabídnout případným zájemcům o přidání se. Timto blogpostem se to teda pokusím napravit a budu se snažit jej udržovat updatovaný, dle aktuální situace.

Takže pro začátek stručně a jasně o co jde: jde o pořízení Interrail jízdenky, kterážto platí určitou dobu (a dle toho se odvíjí i její cena) ve všech vlacích po celé Evropě jako permanentka, některé expresy a rychlíky je samozřejmě nutné doplatit menším příplatkem. Prvotní plán je přeletět do Frankfurtu nad Mohanem Birminghamu za pomocí řekněme RyanAir, což ušetří nějaký den ve vlaku a nějaké peníze ;-). Odtud se pojede pouze vlakem, vždy mezi velkými uzly v daném státě; tyto transfery budou plánované tak, aby se dalo ve vlaku přespat (ideálně); a odtud potom pomocí místních linek projetí (a samozřejmě i projítí či prolezení) zajímavých věcí poblíž. Spaní samozřejmě nejen ve vlaku, ale třeba i pod mostem či na pláži, takže romantička zaručena ;-). Samozřejmě je možné i v kempu či ho(s)telu, ale má to být nízkonákladovka.

Aktuální stav

  • Počet lidí:3 2
  • Věk (pohlaví): 20(male), 25(male)
  • Předpokládaná cena (se vším všudy): 10 – 15k Kč
  • Termín: 21. srpna – ??. září
  • Délka trvání: cca 30 dní
  • Není nutno samozřejmě absolvovat celou trasu, RyanAirem se dá prchnout kdykoliv, navíc za pár šupů…

Destinace dle zemí

Cesta samotná vypadá jako taková šestka opsaná přes celou Evropu (možná někdy v budoucnu bude i devítka ;-)). Její naznačení je na interaktivní mapě samozřejmě dostupné zde, budu se snažit updatovat taktéž.

United Kingdom

  • Birmingham – přílet, přesednutí do vlaku, plán zatím žádný
  • London – zewl
  • Dover – Calais – presun a prespani asi v hale, rano do TGV a smer Bruxelles, Frankfurt a Bonn

 

Německo

BeNeLux

  • Amsterdam – asi dáme brčko, bo tak něco…
  • Rotterdam – vyfotíme pár lodí
  • Bruxelles – nějaký menší pozdvižení před parlamentem
  • Luxembourg – zatím žádné nápady

Francie

  • Paříž – standardní obchůzka, mrknem třeba do Versailles
  • Caen – poblíž zatáčí golfský proud, takže tu bude teplé koupání (no a především je poblíž místo vylodění spojenců)
  • Bordeaux – možná vínko?
  • Marseille – cestou ze Španěl
  • Lyon – cestou ze Švýcar, aneb chci se svézt v TGV až doPaříže

Španělsko

  • San Sebastián – poslední možnost koupačky v oceánu
  • Madrid
  • Cordoba
  • Valencia
  • Barcelona

Monaco

  • Monte Carlo – jen tak 🙂

Itálie

  • Milano – přestupní stanice
  • Trasquera – nebo spíš radši na druhé straně, moment…

Švýcarsko

  • Brig – aneb druhá strana a výjezd pod Matterhorn
  • Bern – směrem k návratu do Lyonu či druhý směr – domů
  • Zurich, Innsbruck

Rakousko

  • Salzburg
  • Graz
  • Wien

 

Tož to je asi tak prozatím vše, snad se teda zadaří (sehnat ještě někoho) a úspěšně to celé absolvovat. Dotazy a připomínky prosím do komentářů, či je směrovat přímo na mou osobu buď mejlem nebo jabberem na jid shmoula (at) gmail (dot) com nebo možno využít plugoo – napsat a počkat, většinou jsem online furt ;-).

Linky pro radost

http://www.hostelworld.com/hostels.php

Hostelling International: Hostels Worldwide

http://www.hostelbookers.com/

http://www.hostelsclub.com/

http://www.bugeurope.com/essentials/hostels.html

Linky pro jeste vetsi radost

http://www.interrail.net/

http://plannerint.b-rail.be/bin/query.exe/en?L=profi&

Home

http://www.thebathroomdiaries.com/

http://www.mcclean.ch/html/index.html

http://www.backpackeurope.com/links/

A par kempu, aby se nereklo

http://www.camping.de/

http://www.suncampholidays.co.uk

http://www.eurocampings.co.uk/en/

Moderní webové aplikace

Dovoluji si prilozit k nahlednuti mou bakalarku. Anotace je uvedena dale, prace je ke stazeni ve formatu PDF, mirne oklestena od smlouvy…

 

Dovoluji si prilozit k nahlednuti mou bakalarku. Anotace je uvedena dale, prace je ke stazeni ve formatu PDF, mirne oklestena od smlouvy…

 

Anotace

Tato práce se zabývá analýzou dostupných systémů pro správu dokumentů a obsahu, výběrem vhodného systému a realizací základní funkčnosti portálu pro správu multimediálních dat. V úvodní části se zabývá využívanými technologiemi a druhy systémů pro správu obsahu, v další části je provedeno srovnání používaných systémů a výběr vhodného kandidáta pro realizaci portálu pro uchování multimediálních dat, v závěrečné fázi části je popsána realizace základní funkčnosti komponent tohoto systému. Jedná se o součást Projektu MPO ČR evid. č. FT-TA3/121 „Výzkum a ověření systému pro záznam a dlouhodobou archivaci multimediálních dat s inteligentním vyhledáváním“.

Klíčová slova

CMS, DMS, Java, JSF, Alfresco, Portal, Multimedia

Abstract

The objectives of this project are to analyse systems for content or data managing, and to find suitable systém for realisation base functions of multimedia content portal. The project contains comparison of systems in use, selection of suitable candidate and parts of realization of this project – multimedia content portal. This portal is a part of Ministry of Industry and Trade of the Czech Republic project evid. nr. FT-TA3/121 „Research and verification system for record and longtime archiving multimedia data with intelligent searching“.

Keywords

CMS, DMS, Java, JSF, Alfresco, Portal, Multimedia

PDF ke stazeni

Canon PowerShot S5 IS

Konečně je to tu! Od Vánoc pořád odkládám pořízení nějakýho novýho foťáčku namísto mé dosavadní krabičky co udělá "cvak" a od Vánoc uchcávám nad Canonem PowerShot S5 IS.Takže jsem se rozhodl, že si prostě musím nadělit dáreček za dokončení studia, navíc už se tento přístroj propadl cenově tak dolů, že jsem dostal strach, že už nebude k dostání.

Edit: Makro v automatickém režimu je nepoužitelné, automat nedokáže správně zaostřit, takže makro od 0cm se nekoná, s ručním ostřením jsem zatím nezkoušel.

Konečně je to tu! Od Vánoc pořád odkládám pořízení nějakýho novýho foťáčku namísto mé dosavadní krabičky co udělá „cvak“ a od Vánoc uchcávám nad Canonem PowerShot S5 IS.Takže jsem se rozhodl, že si prostě musím nadělit dáreček za dokončení studia, navíc už se tento přístroj propadl cenově tak dolů, že jsem dostal strach, že už nebude k dostání.

Edit: Makro v automatickém režimu je nepoužitelné, automat nedokáže správně zaostřit, takže makro od 0cm se nekoná, s ručním ostřením jsem zatím nezkoušel.

Popisovat tu jeho vlastnosti… mi nepřipadá košer, protože se neřadím ani mezi amatéry, takže to přenechám některým z mnoha odbornějších stránek. Já bych rád jen vložil nějaký fotečky, který si nemůžu nechat pro sebe, navíc potřebuju zaplácnout místo nějakým blogpostem, protože je tu nějaká „okurková sezóna“ :-).

Snad jen bych mohl vysvětlit, proč zrovna tento? Proč ne něco lepšího v této kategorii? Protože je na tužkový AA články, to bylo jedno z hlavních kritérií výběru.

Tak a teď už slíbená várka Danečka a dalších chujovin…jó a PS: všechny jsou trochu doupraveny pičníkem, než se pořádně fotit naučím :-).

Rest between fields

Poppy games

IMG_0119

Brno