BFU vyzva: Zkuste setrit cas svuj i druhych
0Vcera jsem se nehorazne nasral vytocil a vyustilo to v potrebu odpovedet na vsechny mejlove adresy uvedene v dotycnem mejlu a budu to delat znovu a znovu, dokud mi neco bude chodit. Text tohoto mejlu prikladm nize, treba to nekoho inspiruje. Jako takovou maturitu pro pokrocilejsi muzu jeste doporucit deset bodu – 10 Rules to Reverse the Email Spiral.
Dobry den,
jmenuji se Vaclav Balak a vubec Vas neznam. Proc Vam pisu? Protoze mi davate kontaktni informace na Vas, prestoze jsem si je vubec nevyzadal a nemam o ne zajem. Ale klidne o Vas muzou mit zajem moji klienti, kterym Vase kontaktni udaje velmi rad prodam!! A proto pisu - NAUCTE SE CHRANIT SOUKROMI SVYCH KONTAKTU!!! Kdyz uz mate potrebu preposilat mejly nadepsane „Fwd: FW: FWD:……Tohle musis videt!!!!“, zkuste udelat tu malickost a SMAZAT OBSAH ZPRAVY, nebo jej aspon upravit, at nepredavate adresy lidi, kterym to prislo pred Vami dal a dal a dal a dal, dokud je nekdo nezneuzije!! A vubec – jeden znamy na toto tema napsal pekny clanek, zkuste se na nej podivat: BFU výzva: Rádi e-mailujete? Má to však své zásady!
A proc pisu jeste? Reaguju na mejl samotny – na clanek o Kosteleckych Uzeninach. Za clanek dekuji, byl velmi zajimavy, jeste zajimavejsi vsak byla forma, v jake jsem clanek obdrzel – dokument Wordu! Proc? Pokud odmyslim fakt, ze nekdo tento program vubec nema (tudiz tento dokument ani neotevre a neprecte si jej), nemuzu pochopit, proc kopirujete clanek volne pristupny na internetu dovnitr nejakeho dokumentu? Dochazi ke ztrate informace – k puvodnimu clanku pribyl odkaz na video, pribyly k nemu nove informace… O tohle vsechno ctenari tohoto .doc dokumentu prisli! Posudte nasledujici dva zpusoby poslani informace:
Zpusob jedna:
1) Prectu si clanek, ktery se mi libi
2) zkopiruju adresu na tu stranku a
3) vlozim ji do noveho mejlu a odesluZpusob dva:
1) Prectu si clanek, ktery se mi libi
2) zkopiruju cely clanek a
3) otevru word a protoze neumim vytvorit novy dokument, tak
4) otevru nejaky jiny dokument
5) dam ulozit jako a ulozim ho
6) smazu obsah toho dokumentu a (postupne oznacim vse mysi samozrejme)
7) pro jistotu ho ulozim
8 ) vlozim do tohoto prazdneho dokumentu obsah toho clanku
9) ulozim a dlouho hledam na disku, kam jsem ten dokument vubec ulozil
10) prilozim tento dokument k mejlu a odesluProc proboha volite zpusob dva? Nehlede na to, ze v 90% pripadu to stejne zkopirujete blbe, takze tam polovina informaci vubec neni, nejsou tam obrazky, nejsou tam nova zjisteni, ktere autor publikoval po odeslani zmineneho souboru mejlem, ma to rozhazene formatovani… a predevsim – NENI TAM DISKUZE, kde jsou mnohdy podstatnejsi informace, nez v clanku samotnem (pokud to teda neni kopie z novinky.cz, kde se nadava na ods, nebo z idnes.cz, kde se nadava na komunisty) a navic se teda nemuzete do teto diskuze zapojit s vlastnim nazorem!!
Zkuste se nad tim prosim aspon zamyslet a pripadne tento mejl predat dal svym znamym – ovsem na zaklade vyse zminenych informaci – nemam zajem, aby moje emailova adresa kolovala svetem az do 21.12.2012.
Dekuji za cas a preji pekny den
Vaclav BalakPS. puvodni adresa onoho clanku je
http://www.bizwiz.cz/2012/02/11/kostelecke-uzeniny-tvurce- hororovych-zazitku/
Invoking scripts in Alfresco programatically
1I’m working on universal CRON runner, which runs scripts saved somewhere in repository (more on this next time). Running webscripts isn’t so easy, as I thought, there is no scriptService.runScriptWithThisDescription(path) method, so I did some research and got some results, which I’d like to share.
It’s possible to run java backed actions from js-webscripts. Everything you need is just a bean extending ActionExecuterAbstractBase with definition parent=“action-executer“ and it’s possible to access that bean from webscript like actions.create(„that_bean_id“). But not in reverse, at least not so simple.
First think I found was post on forum and advice to look at unit tests of webscripts, but everything I found were invocations through http. So I went deeper and figured out that Alfresco uses Rhino JavaScript implementation for scripts. At Rhino pages are good examples, so I had first working script soon. At following codelist I firstly load content of node (script body) from repository and then invocate script itself.
NodeRef nodeRef = new NodeRef("workspace://SpacesStore/4a96aaaa-bb80-eeee-aaaa-800a43fcddb8");
ContentReader contentReader = contentService.getReader(nodeRef, ContentModel.PROP_CONTENT);
InputStreamReader isr = new InputStreamReader(contentReader.getContentInputStream());
BufferedReader reader = new BufferedReader(isr);
Context cx = Context.enter();
try {
Scriptable scope = cx.initStandardObjects();
Object result = cx.evaluateReader(scope, reader, "scriptInvocation", 1, null);
} finally {
Context.exit();
}
But I wanted something more – some model in and out and something simplier. So I found ScriptService. Now all those long lines can be ommited, because there is executeScript method!
Map<String, Object> model = new HashMap<String, Object>();
model.put("foo", "bar");
Object result = scriptService.executeScript(scriptRef, model);
Template rendering (I’m using FreeMarker’s ftls) is done the same way, but through TemplateService and processTemplate(nodeRef, model) method, which accepts the same model (altered by script running).
The most beautiful thing is ability of script (and also template) to call java methods, which classes are „injected“ through model, let’s see an example.
Map<String, Object> model = new HashMap<String, Object>();
model.put("something", new Something());
model.put("bar", "foo");
Object result = scriptService.executeScript(scriptRef, model);
String templateResult = templateService.processTemplate("workspace://SpacesStore/noderef", model);
. . .
public class Something {
public String text = "aaa";
public String getText() {
return "bbb";
}
}
Now it’s possible to use script / template:
(** script **)
bar = something.text;
(** template **)
${something.text} ?=? ${bar}
What is output? Is in templateResult „aaa ?=? aaa“? Nope! Script accesses class attributes directly, on the other side template accesses methods. So output is „bbb ?=? aaa“!!!
One more important thing: this JavaScript implementation is just a stub, so every alfresco service needs to be „injected“ through model, so for example it’s impossible to run stuff like this without modifications:
var connector = remote.connect("http");
var result = connector.call("http://www.google.com/");
Remote object has to be injected (this script is from Share/Surf), more on this in this blogpost. You have to add ScriptRemote to model and create spring-webscripts-config-custom.xml with endpoints defined, see that post. Also another services needs to be injected – to get access to repository, search service… good starting point is Alfresco Wiki.
Edit: Native Java API Access described in wiki is wrong, IT IS POSSIBLE to access maps in JavaScript like this:
var value = javaMap.key;
BrMo poprvé
0Včera jsem se zúčastnil BrMa (dle srazů „prvního neformálního pokecu na téma točící se kolem mobilních zařízení a jejich platforem“) a dojem z této akce byl více, než kladný. Původně jsem na akci šel čistě ze zvědavosti s představou, že to bude zase nějaká tuctovka ve stylu študáků lepících na koleně „ty webovky v PéHáPé protože to je teďka in a dělám to na tom…é…nette, protože v tom dělají všichni“, ale opak byl pravdou! Převažovali opravdoví vývojáři, jimž kódování je denním chlebem. A vývojáři ne tak ledajací – opět to nebylo 90% Android a 10% iOS, ale byly tu zastoupeny i další platformy – Symbian, Windows a dokonce i Bada v několika exemplářích (a aby se u RedHatů a další podobně proNokiácky smíšlející havěti nezlobili, musím zmínit i „kjůt“ přívržence Meega).
Ale pojďme od začátku. Hned po příchodu jsem vyfasoval pěknou visačku a šáhnul si do krabice pro marcipánového maskota své oblíbené platformy – zeleného mužíčka. Večeři mi to sice nenahradilo, ale bylo to fajn! Ještě bylo možné si vzít jablko, ale protože bylo nakousnuté, tak jsem se k němu nějak neměl. Na srazech bylo přihlášeno okolo dvaceti lidí a mám dojem, že všichni opravdu dorazili a k tomu ještě někteří navíc, takže se Karel Souček za pořadatele (firma Trinerdis) chopil slova a celou akci uvedl. Z jeho slov bylo vidět zapálení pro celou věc a bylo cítit, že si to opravdu užívá a „myslí to upřímně“, velký dík!
Z celkového průběhu akce (jak bylo uvedeno výše – jednalo se o neformální pokec) si odnáším dva zásadní poznatky:
- Nikdy nechci dělat pro Badu – je to systém tak příšerný, nedotažený a s chováním SDK velmi podivným, až mě nesmírná hrůza jímala.
- Nokie stále neví, co chce (ale tak nějak tuším, že se chce soustředit na business sféru, jen je otázka, se kterou platformou a jak dlouho).
Čas utekl jako voda a když jsem prchal na vlak tak jsem při loučení zjistil, že výše zmíněný Karel Souček bude zřejmě ten Karel Souček, se kterým jsme v páté třídě v biologickém kroužku trhali mouchám nožičky, koukali mikroskopem na cibuli a šikanovali učitelku; a další člověk z Trinerdisu – Pavel Žák – se mnou sdílel navštěvování páté třídy základní školy. Svět je malej a rok na jedno BrMo moc dlouhej!
Pozadí ubytovníčku
1Všichni chtějí přijít s nápadem, který změní svět, který vydělá miliony a já nevím, co ještě. Většina těchto nápadů končí rozčarováním, protože nejsou realizovatelé, nebo nejsou realizovatelné v podobě, jak si je dotyčný budoucí milionář představuje. To je v pořádku. Protože jsem už pár nápadů zkusil realizovat a neuspěl, zkusím v tomto miniseriálu představit kroky, které jsem se naučil a které doufám, že v případě Ubytovníčku povedou k dokončení a úspěšné realizaci tohoto nápadu.
Když jsem přišel s úplně prvním nápadem, okamžitě jsem koupil doménu a pak teprve začal přemýšlet, jak to vlastně udělat, co tam bude… Postupem času (dlouhého času) jsem pivotoval a pivotoval a vždycky se dostal k začátku realizace, ale tam jsem skončil. Proč? Nápad nebyl dopracovaný, nevěděl jsem, na koho budu cílit, co z toho bude dotyčný mít, co z toho budu mít já… Teď už vím víc: pokud dostanu nápad, chvíli nad ním přemýšlím a pak se ho snažím zapomenout. Pokud se další den ráno probudím a ten nápad tam je pořád a hlodá, pokračuju k další fázi – a tou je třídění myšlenek spojených s tímto nápadem.
Co mám: chuť něco dělat
Co by mělo být výstupem fáze: nápady = množství trojic problém, řešení, zákazníkCo bude výstupem fáze: nápady, o kterých si myslím, že jsou dobré
Co budu dělat: brainstormovat
Co pro to použiju: mindmapper
Pro prvotní utřídění myšlenek používám myšlenkové mapy. Konkrétně jsem si zvyknul na nástroj mindmeister, který funguje jako online aplikace i jako aplikace pro Android, takže můžu přidávat myšlenky kdykoliv a kdekoliv. Používám dva postupy: „blití všeho“ a „brainstormovací mód“.
Mindmeister @ Android
Blití všeho používám především na začátku a je to takové prvotní nakopnutí, kdy ze sebe hrnu naprosto všechno, co mě napadá, a sázím to bez ladu a skladu (víceméně) do mapy, je to takové základní vytvoření budoucích uzlů celé mapy. K této fázi se už později moc vracet nedá, protože by tento přístup narušil započatou strukturu, takže je vhodné zauvažovat o vytvoření nové mapy a potom je nějak spojit. Ale popravdě – do této fáze se v udoucnu už nevracím, protože ji dobře pokryje fáze následující.
A to je fáze brainstormovací. Začnu v kořenu celého stromu a postupně procházím k listům, kdykoliv mě kdekoliv cokoliv napadne, okamžitě to přidám. Nedělám smyčky, postupuju systematicky dál a dál. Dost často skončím na listu a najednou se roztrhne pytel s nápadama a tak se chrlí.
Potom nastupuje třídicí mód, který je vhodné provádět způsobem „ráno moudřejší večera“, ale mnohdy se to ráno zvrhne v další chrlení
. Jde to to, že se musí vyházet spousta nesmyslů (tohle je ovšem první fáze, větší odstraňování bude následovat příště), kterých je tam zákonitě velké množství, odstranit duplicity a trochu přeskládat strukturu. Ideální je, když je na projekt více lidí a tuto část udělá někdo jiný, nebo je při tomto čištění a uspořádávání přítomen. Člověk, který tyto nápady vychrlil může být slepý k některým nelogičnostem a nesmyslům a kontrola dalším člověkem tato místa odhalí a odstraní, případně poupraví. Pravdou ale je, že než hledat kompromis, lepší je danou věc úplně odstranit. Pokud bude potřeba, vyplyne tento fakt v budoucnu a může se zpětně zapracovat – méně je více.
Tato prvotní část se dá shrnout do celku „nápad“. Jde o to si uvědomit, že nápad není nápad sám, ale jeho rozpracování a zaznamenání do nějaké takovéto podoby, aby si člověk (a to především někdo druhý) mohl prohlédnout všechny souvislosti, náležitosti… Ještě pořád není vhodný čas na nákup domény, následuje další část – část ověření myšlenek a jejich ořezání, ale o tom zase až příště.
(Repost z blogu Ubytovníčku.)
Jak vysvitlo slunce
0Byl jsem dneska odpoledne se psem na procházce a cestou sumarizoval, co jsem stihl a nestihl udělat v rámci skoro týdenní dovolené, kterou jsem si vzal, abych se mohl věnovat dalším projektům. Popravdě – myslel jsem, že se objeví jiskra stejně, jako se objevila v zimě mezi svátky, ale nebylo to tak žhavé. Moc jsem tomu nedal a neměl jsem z toho dobrý pocit. Potom jsem si ale vzpomněl na jistý příběh a najednou mi bylo hrozně fajn
.
Ten příběh zní:
Dva mniši se vydali do světa a po roce se vrátili zpět k mistrovi. Ten se jich hned ptá: „Nuže, co jste dělali celý rok?“ První žák: „Mistře, já celou dobu studoval, meditoval a pomáhal lidem.“ Mistr pokývá hlavou a říká: „Výborně, nepromarnil jsi svůj čas!“ a obrátí se k druhému, který také odpovídá: „Já jsem dobře jedl a dobře spal!“ Mistr se usměje a povídá: „Vidím, že ani ty jsi nezahálel!“
Mimochodem – kvetou podléšťky!!




Nejnovější komentáře