Hacking Alfresco

There are many wiki pages at Alfresco dev sites, but no working simple excercises at all. At these days i'm playing with this CMS/DMS, so i'll try to collect some remarks about actions i'm doing, maybe it'll be helpful for someone. So, i'm experimenting with Content Metadata Extracters with intention to create some kind of Video Extracter (to save bitrate, resolution, codec… to metadata with that object).

There are many wiki pages at Alfresco dev sites, but no working simple excercises at all. At these days i'm playing with this CMS/DMS, so i'll try to collect some remarks about actions i'm doing, maybe it'll be helpful for someone. So, i'm experimenting with Content Metadata Extracters with intention to create some kind of Video Extracter (to save bitrate, resolution, codec… to metadata with that object).

There is a simple wiki page describing that problem, so if you want to know some background, you have to start there. If you dont (or if you prefer very simple way), let's continue. So, what Content Metadata Extracters (CME) are? Imagine following simple situation: you have repository with some multimedia document, let's say mp3 files. Every mp3 file has a header with some informations (id3), for example artist, album, music style, etc. And you want to your document system to create all needed metadata automaticaly, when user uploads his mp3 file. This is work of CME. In my following example I'm not going to extract data from anywhere to keep things simple, but there is also a source of MP3 Metadata Extracter and many more, all inside of the Alfresco SDK.

I'm going to try to "how this stuff works part by part", so i'm going to create an "empty extractor" which just creates some metadata. So, first thing to do is to add my own bean to content-services-context.xml. In Wiki there is a way through editing a custom-metadata-extrators-context.xml controller, but this way doesn't work for me, so i added my definition right into content-services-context.xml:

<bean id="extracter.ASD" class="cz.shmoula.ASDMetadataExtracter" parent="baseMetadataExtracter" />

So, id is identificator of created bean and class is my class in my package extending AbstractMappingMetadataExtracter. I chose name of ASDMetadataExtracter due to retaining of name convention of *MetadataExtrater and ASD due to my personaly liked phrase "asdfghj…" :-). And parent will automaticaly register this bean with metadataExtracterRegistry to handle mimetypes declared in my "Extractor".

Then i have to create some properties file with defined namespace prefixes and mappings on them. Alfresco for content model uses a namespace http://www.alfresco.org/model/content/1.0 and for lucidity there is a prefix cm binded with that. So my own ASDMetadataExtracter.properties file looks like this:

namespace.prefix.cm=http://www.alfresco.org/model/content/1.0

namespace.prefix.shm=http://www.shmoula.cz/model/content/asd

description=cm:description

pokus=shm:pokus

And last thing to do is to create a class, which fills in those metadata. I uploaded whole code to pastebin, so you can browse it online, its really simple, it has just 45 lines of code!!! But some snipets:

private static final String KEY_POKUS = "pokus"; // definitions of metadata names, binded with properties

… MimetypeMap.MIMETYPE_TEXT_PLAIN … // i'm using this "transformer" for text/plain mime

putRawValue(KEY_POKUS, Long.toString(size), rawProperties); // assigning of value to metadata

// TempFileProvider routines are provided just for testing purposes 😉

// Files uploaded (opened) with these routines are temporary saved in <tomcat>tempAlfresco*

So, that's all, folks :-). And what does it do? After upload of document of type text/plain it fills metadata binded. Now i'm going to solve how to view them, modify them and make a sorts based on them.

Image Hosted by ImageShack.us

Content type needs to correspond with predefined values in Extractor

 

Image Hosted by ImageShack.us

In column "popis" there is value defined through "putRawValue(KEY_DESCRIPTION,…"

 

 

Hommies v ČR a jinde

Každý zná fleky, na kterých postávají zewli, ať se jedná o Sherwood v Praze, či okolí hlaváku v Brně, speciálně věčně opilá sebranka před malým Tescem. Zajímalo by mě, jestli hommies procházejí taky vývojem, nebo je jejich chování zakořeněni ve smýšlení?

Každý zná fleky, na kterých postávají zewli, ať se jedná o Sherwood v Praze, či okolí hlaváku v Brně, speciálně věčně opilá sebranka před malým Tescem. Zajímalo by mě, jestli hommies procházejí taky vývojem, nebo je jejich chování zakořeněni ve smýšlení?

Není možné tuto skupinu nijak generalizovat, když vezmu jen to, co vidím v Brně cestou z vlaku do práce a zpět. Hráči na kytaru (jeden z nich sedí na svým místě odjakživa, co pamatuju, a má pořád stejný repertoár), teď přes zimu se tam objevil jeden nový, ale ten to ještě tak neumí ;-). Občas studenti s flétnou, stará paní se psem a smutným pohledem, prodavači Nového prostoru, jehovisti, nabízeči tarifů pro mobily, ale to už sem nepatří. No a především opilá banda, kterou tvoří zdravé jádro nějakých punks, podivných dětiček kdo ví odkud. Tohle je hnusná sebranka – perou se, dělají bordel a bohužel často, posilněni alkoholem, obstupují hráče na kytaru, krákají s nima a dělají bordel kolem.

Bezejmenné osoby, desítky příběhů. Náhodou jsem narazil na jednoho trampa z Bostonu, který je trochu slavnější, ostatně proto tohle píšu. Má záznam na wikipedii, pár fotek na flickru, bohužel už je po smrti, proto o něm byla i zmínka v místním deníku Metro, Mr. Butch.

Ovšem jsou tu i další, další bostonský, který nepije, stará se o psa a kočku a dá se s ním debatovat o filozofii… Pročtěte diskuzi pod fotkou.

A tohle je, kam mířím: zajímalo by mě, jestli u nás existuje nějaký takový hobo, který není věčně opilej nebo nastřelenej a pořád dokola nevykládá svůj (byť) smutnej příběh, nebo lépe řečeno, jestli tu existuje nějakej hommie, kterej odešel do bezdomoví dobrovolně s nějakým cílem, nějaký „bóddhisatva nového věku“?

Picnik’s Gone Free!

Je to tak! Pičník je gratis!! Možná je to jenom nějakej chytrej reklamní trik, jak se probojovat skrze top 100 web2.0 apps, ale co, tenhle nástroj na to má!!

Je to tak! Pičník je gratis!! Možná je to jenom nějakej chytrej reklamní trik, jak se probojovat skrze top 100 web2.0 apps, ale co, tenhle nástroj na to má!! Asi jsem tu o tom nic neblognul, ale už nějakou dobu je možný používat picnik (mimo jiné) v rámci flickru, kde s ním taky už chvíli válčím a nemůžu si tuto jednoduchou utilitku vynachválit. Geniální extrémně jednoduchý fotoeditor, doporučuju! Zmenšit? Oříznout? Doexponovat? Poladit barvy? Doostřit? No problemo, check out FAQ!

Stavím sociální síť 2

Nedávno jsem tu hulákal o tom, že obesílám image-hostingové služby. Nuže, nadešel čas nějakého shrnutí odezvy, protože času už uplynulo docela dost. Odezva nějaká byla; jaká, popíšu dále.

Nedávno jsem tu hulákal o tom, že obesílám image-hostingové služby. Nuže, nadešel čas nějakého shrnutí odezvy, protože času už uplynulo docela dost. Odezva nějaká byla; jaká, popíšu dále.

Z minule uvedených a obepsaných adeptů se nakonec zpátky ozvali . V pořadí dle odezvy to byli imageshack.us, la.gg a imageby.us, těm ostatním jsem zřejmě nestál ani za odepsání, že to nejde.

Imageshack.us

Napsali mi, že v tom nevidí sebemenší problém a že dostatečným zadostiučiněním pro ně bude, když někam loupnu link o tom, že stránky jsou hostovány jejich službou, nebo budu obrázky watermarkovat. První člověk od nich mi poslal odkaz na různé jejich bannery a druhý potom odkaz na získání přístupového klíče na využití imageshack.us API.

la.gg

Odpověděli mi stručně, ale věcně a moc krásně: „it’s free, you can use it however you wish inside the law. :]“. Mno, ale jak teď tak koukám, tak se nějak nemůžu doklikat k žádnýmu popisu API :-(.

imageby.us

Chlapáci pořád mermomocí chtěli vidět moje stránky a nedokázali pochopit, že jsou zatím ve fázi plánování :-). Takže tady zřejmě taky nic, zkusím jim ještě napsat, pokud se někdy dostanu do nějaké akčnější fáze.

Toť tedy vše. Myslím, že mám vybráno. Nehledě na to, že imageshack.us nabízí balík PHP kódu pro jejich XML API, takže jej asi stáhnu a pořádně se do něj zamotám, těch pár informací, které mají na stránkách, vypadá poměrně jednoduše, mělo by to jít rychle ovládnout.

Břeclav

Dlouho jsem nebyl nikde keškařit, ani na žádným výletě, proto jsem to včera napravil a vyrazil do Břeclavi.

Dlouho jsem nebyl nikde keškařit, ani na žádným výletě, proto jsem to včera napravil a vyrazil do Břeclavi.

Asi bych se měl omluvit Českým drahám za nedávné nadávání, protože tentokrát mě velmi mile překvapily, protože mi nabídly lístek Brno-Břeclav a zpět pro dvě osoby (jakožto Sone jízdenku – celodenní permanentku) za příjemných 130 Kč, namísto původním 240 Kč za normální jízdenku a lístek pro psa za 20 Kč, taky celodenní permici. Nakonec ale Dan zůstal doma, protože hrozily deště a větry, tak jsem chtěl mít otevřená zadní vrátka pro nějakou hospodu.

V Břeclavi panovalo poměrně pěkné počasí, tak i nálada byla skvělá.

Screamers

Ovšem záhy se ukázalo, že počasí bude dneska pánem. Přišla bouře nevídaná, která lámala stromy, ploty, sloupy, odnášela střechy a dokonce i GPSka mi začala nějak stávkovat, takže z původních plánovaných 8 keší mám jenom 3.

DSC09597

Ale aspoň něco, lepší, než kdybych se spláchnul po Dyji někam do Rakous, v těch vodních přívalech.

DSC09607

A protože jsem neuplaval, mohl jsem se pokochat zbytky Čs opevnění, pohřebištěm, základy kostelíku i bizarní krajinou, která směrem k soutoku se rozkládá.

DSC09615

No a protože v drátech nebyla žádná elektřina, ani na nás nikdo nestřílel, pěkně jsem si je zblízka vyfotil a na druhé straně uvařil k obědu fazole :-).

Pamatka po rudosich

Takže spokojenost, už se těším na příště (jen tu pitku poté ve vlaku už si asi nebudu chtít zopakovat). Jen doufám, že na nádraží nebude tolik najetejch cigánů, jako jich tam bylo teď. Mno a asi největší zážitek je ten, že mezi dveřma do nádraží (mimochodem docela pěknýho a docela plnýho lidí) jsem narazil do cigoša, kterej byl totalně sjetej toluenem a v jedné ruce držel poloprázdnou plechovku s touto voňavkou, takže tak.