Easier and nicer JMS

JMS seems like a hostile ground. It has all it's quirks and strange behaviours. A couple of defining standards plus esoteric brokers, queues and topics. At work, we mainly use open source Jms solutions, namely Apache ActiveMQ. This one is usually bundled with Apache Servicemix, as a message broker for this particular ESB. As there are some minor caveats in this scennerio, I'd like to describe here some guidelines for getting to running JMS queues. ...

December 8, 2010 · 2 min · Marcin Cylke

Schematron to the rescue!

In an ideal world all the standards fit well into their places. It is sufficient to use just one serious standard, because all the problems can be solved with it - the standardization processes is there for some reason. But that happens only in ideal world, which we're not living in. In ideal world, when dealing with XML instances you'd be more than fulfilled using XML Schema, or RelaxNG, or any other simple xml formal definition language to declare your data structure. With that you get rigid rules as to how XML documents should look like. There doesn't seem to be much space to deviate from specs. Well, in fact there is. ...

October 21, 2010 · 5 min · Marcin Cylke

Complex flows with Apache Camel

At work, we're mainly integrating services and systems, and since we're on a constant lookout for new, better technologies, ways to do things easier, make them more sustainable, we're trying to Usually we use Apache Camel for this task, which is a Swiss-knife for integration engineer. What's more, this tools corresponds well with our approach to integration solutions: try to operate on XML messages, so you get the advantage of XPaths, XSL and other benefits, don't convert XML into Java classes back and forth and be worried with problems like XML conversion, try to get a simple flow of the process. However, at first sight Apache Camel seems to have some drawbacks mainly in the area of practical solutions ;-). It's very handy tool if you need to use it as a pipeline with some marginal processing of the data that passes through it. It gets a lot harder to wrap your head around if you consider some branching and intermediate calls to external services. This may be tricky to write properly in Camel's DSL. ...

August 26, 2010 · 5 min · Marcin Cylke

Generic Enum converter for iBatis

My goal was to create a simple, extensible Enum converter that would work with iBatis. This seems like a trivial problem, but took me a while to find a proper solution. There were some additional preconditions: all given Enums are jaxb generated objects - but any standard Java Enum should work conversion was 1-to-1, no special conditions and processing The example Enum for this problem looks like this one (copy&paste from jaxb generated source): ...

June 28, 2010 · 2 min · Marcin Cylke

Readability powala!

Już dziś możecie skorzystać z "umilacza" czytania artykułów. Od zawsze denerwowało mnie rozpraszające badziewie na stronach z artykułami. Teraz z tym koniec. Odkąd odkryłem Readability -- strona bookmarkletu,. Wszelkie instrukcje na temat korzystania są dostępne na stronie projektu, tak więc warto sprawdzić. Comments Marcin Zgodnie z niektórymi źródłami, to jednak jest tam część kodu Readability. Polecam ten link: http://www.downloadsquad.com/2010/06/08/think-safari-reader-looks-familiar-thats-because-apple-used-op/ Dominik Porada > Z tego co gdzieś tam czytałem, to nawet Apple wykorzystał kawałki kodu JS z tej strony w Safari nowym. Wątpię, aczkolwiek Reader na pewno powstał dzięki inspiracji Readability. ...

June 28, 2010 · 1 min · Marcin Cylke

osnews.com - hobby projects

Kilka dni temu na portalu OSNews pojawiła się notatka o skromym tytule: What Are You Working On?. Takie proste pytanie spowodowało lawinę komentarzy. Mnóstwo projektów, których ludzie się "dopuszczają" w czasie wolnym. Wszystkie można przeczytać tutaj: komentarze. Jest tam wiele do przeczytania, ale jeden komentarz naprawdę "zrobił mój dzień" :) Come on people, you can do better than that. - trying to improve a tube theremin I built last year to get more linear response. - putting a webcam in the eye of a HAL9000 replica finished a while ago so it can stream fisheye video ;) - part of a team which put a 4m high black monolith in the pedestrian area of my home town :-D - working on a hardware/software solution so my iTunes can display the current track on the cheap LED display i got off eBay - organizing a visit from Tesla Coil Orchestra to play on their tesla coils ...and all that wile running a museum of old computers. I think I may be overstretching myself a bit, but it feels good. Comments Marcin Słuszna uwaga - zmienię może :) ...

June 10, 2010 · 1 min · Marcin Cylke

Eclipse ecosystem

Do you use Eclipse? Or perhaps you use other IDE but would like to try "the big E"? Well, that's OK, and completely understandable, because Eclipse is actually a great, versatile tool. But Eclipse is not just an IDE, in fact it is a comp let, extensible platform. What's even more important, there are tones of valuable Eclipse-related projects gathered around the platform. Yes, there are lots. Some are good, some are bad, but the usual, stock ones, signed by Eclipse, are worth taking a closer look. They're not a mere innovation to the way we write code with an IDE. Those tools provide new ways to _create_ our code. ...

May 7, 2010 · 4 min · Marcin Cylke

Dmesg z Openbsd/sgi

Wracając do starego tematu OpenBSD na moim SGI O2, postanowiłem lekko odświeżyć tą maszynę. Dostałą uaktualnienie małe. Przysiedziałem również nad dostosowaniem systemu do swoich potrzeb, instalacji potrzebnego softu itp. Na początek dmesg z działąjącego systemu: [ using 433608 bytes of bsd ELF symbol table ] Copyright (c) 1982, 1986, 1989, 1991, 1993 The Regents of the University of California. All rights reserved. Copyright (c) 1995-2009 OpenBSD. All rights reserved. http://www.OpenBSD.org OpenBSD 4.6-current (GENERIC-IP32) #49: Fri Jul 31 05:07:50 MDT 2009 deraadt@sgi.openbsd.org:/usr/src/sys/arch/sgi/compile/GENERIC-IP32 real mem = 67108864 (64MB) rsvd mem = 7020544 (6MB) avail mem = 40771584 (38MB) mainbus0 at root cpu0 at mainbus0: MIPS R5000 CPU rev 2.1 180 MHz with R5000 based FPC rev 1.0 cpu0: cache L1-I 32KB D 32KB 2 way, L2 512KB direct clock0 at mainbus0: ticker on int5 using count register macebus0 at mainbus0: crime rev 10.1 macepcibr0 at macebus0: mace rev 1, host system O2 pci0 at macepcibr0 bus 0 ahc0 at pci0 dev 1 function 0 "Adaptec AIC-7880" rev 0x00: irq 9 ahc0: Host Adapter Bios disabled. Using default SCSI device parameters scsibus0 at ahc0: 16 targets, initiator 7 sd0 at scsibus0 targ 1 lun 0: SCSI2 0/direct fixed sd0: 4340MB, 512 bytes/sec, 8888543 sec total cd0 at scsibus0 targ 4 lun 0: SCSI2 5/cdrom removable ahc1 at pci0 dev 2 function 0 "Adaptec AIC-7880" rev 0x00: irq 10 ahc1: Host Adapter Bios disabled. Using default SCSI device parameters scsibus1 at ahc1: 16 targets, initiator 7 dsrtc0 at macebus0: DS1687 com0 at macebus0 base 0x00390000 irq 5: ns16550a, 16 byte fifo com1 at macebus0 base 0x00398000 irq 5: ns16550a, 16 byte fifo mec0 at macebus0 base 0x00280000 irq 4: MAC-110 rev 1, address 08:00:69:0c:98:fb nsphy0 at mec0 phy 11: DP83840 10/100 PHY, rev. 0 mavb0 at macebus0 base 0x00300000 irq 7: AD1843 rev 1 audio0 at mavb0 mkbc0 at macebus0 base 0x00320000 irq 6 pckbd0 at mkbc0 (kbd slot) wskbd0 at pckbd0: console keyboard power0 at macebus0 irq 6 gbe0 at mainbus0: rev 1, 8MB, 1280x1024 at 8 bits wsdisplay0 at gbe0 mux 1: console (std, vt100 emulation), using wskbd0 wsdisplay0: screen 1 added (std, vt100 emulation) softraid0 at root ahc0: target 1 using 16bit transfers ahc0: target 1 synchronous at 20.0MHz, offset = 0x8 boot device: sd0 root on sd0a swap on sd0b dump on sd0b Niby działa dobrze, z kilkoma wyjątkami: ...

April 25, 2010 · 3 min · Marcin Cylke

Unicode w Pythonie

Szlag by to trafił! Czemu tak ciężko jest obsługiwać unicode w pythonie? No niby wszystko jest ładnie konwertowane wewnętrznie na odpowiednie reprezentacje, ale jeśli przychodzi co do czego, i chcemy wypisać sobie taki ciąg znaków na ekran, to już jest ciężej. Weźmy prosty przykład. Wczytywałem plik z polskimi znaczkami, o taki: Roger Macdonald;Człowiek w żelaznej masce;25 a potem w kodzie pythonowym robiłem sobie tak: for line in open(sys.argv[1],'r').readlines(): print line.decode('utf-8') (.... tu wysłanie do jakiegoś tam Web Service'u) ...

April 21, 2010 · 3 min · Marcin Cylke

Nokia bez certyfikatów :)

Od kilku dni walczyłem z wyłączeniem sprawdzania certyfikatów w Nokii E51. Okazało się, że to trywialna sprawa. Wystarczy: Tools -> App mgr -> Options -> Settings. Zmienić "software installation" z "Signed Only" na "All" i "Onlline certificate check" na "Off" :D Dzięki temu mogłem sobie zainstalować prostego i funkcjonalnego playera http://symbianoggplay.sourceforge.net/ i jest on o niebo lepszy niż ten domyślny dostarczany przez Nokie. Comments Marcin Cylke U mnie akurat zadziałąło :) a wszelkie próby korzystania z chińskich "rozwiązań" do odblokowywania Nokii poległy. Także jestem całkiem zadowolony. Oczywiście w świetle tego co napisałem, może się okazać, że to przez te szacher-machery z chińszczyzną dało się to łatwo odblokować w opisany przeze mnie sposób. ...

April 18, 2010 · 1 min · Marcin Cylke

Recenzja - Drools JBoss Rules 5.0 Developer's Guide

Kilka dni temu skończyłem czytać niezbyt grubą - jak na standardy branżowej literatury - książeczkę o Droolsach. A co to jest Drools? Ot taki silnik reguł od JBossa, stronę ma o tu: http://jboss.org/drools. Umożliwia on wydzielenie reguł biznesowych do oddzielnego komponentu przez co możemy zyskać na przejrzystości naszego kodu oraz odseparować potencjalnie podatny na zmiany fragment - logikę biznesową właśnie :) Oczywiście można przy pomocy Droolsów zrobić dużo więcej fajnych rzeczy, ale jest to dalekie od podstawowych informacji. ...

April 14, 2010 · 2 min · Marcin Cylke

Inteligentny mock w SoapUI

Któż z nas nie testował WebService'ów, a któż z nas nie używał do tego SoapUI :) Ok, z rzeczami oczywistymi dyskutować nie będę, ale przy okazji jednego projekciku okazało się, że fajnie by było gdyby mój mock potrafił zrobić coś więcej niż tylko odpowiedzieć na nadesłany komunikat. Oczywiście sam SoapUI posiada dosyć spory wachlarz możliwości, bo może wysłać losowy request spośród wprowadzonych, lub wysyłać wedle sekwencji, itp. Problem w tym, że moim wysublimowanym życzeniem było aby korelować komunikaty określonego typu na podstawie jednego pola z XMLa - nazwijmy je polem "X". Jeśli w polu X przyszła wartość, której do tej pory nie widzieliśmy - odpowiedz jednym komunikatem, jeśli ta wartość już została przez nas odebrana (ostatnio :) ), to prześlij trochę inną odpowiedź. ...

November 18, 2009 · 2 min · Marcin Cylke

Czyżby BPEL wreszcie stał się bardziej użyteczny?

Nieee... to po prostu udało mi się uruchomić BPEL Designera - plugin do Eclipse'a. Co prawda wymagało to grzebnięcia w źródłach, które nie były aktualizowane już od dłuższego czasu. Zmiany polegały głównie na poprawie zależności. Niemniej, plugin z wersją 3.5 Eclipse'a działa sprawnie. W poprzednich wersjach miał tendencje do zacinania się, a przyczyny tego nie udało mi się namierzyć. A co to jest BPEL? ...

November 15, 2009 · 2 min · Marcin Cylke

Solaris w TR

Wczoraj byłem w TR (http://www.trwarszawa.pl/). Na wejściówki, po taniości. Obejrzałem spektakl Solaris, bo to Lem, bo znam, bo jako jedną z niewielu rzeczy Lema czytałem. Powody były. Wrażenia? Bardzo fajnie się oglądało. Problem jedynie w tym, że z wydawałoby się dosyć prostej fabularnie książki zrobiono spektakl, którego nie da się w całości zrozumieć z powodu niedopowiedzeń. Czy to jest domena nowoczesnych interpretacji teatralnych?? Comments Marcin @Biały, tak, faktycznie. Ale ostatecznie na prawdę nie wyszło to tak źle. Akurat te aspekty, które wspomniałeś były ciekawie przedstawione. ...

November 13, 2009 · 2 min · Marcin Cylke

Ludzie! Porzućcie F-Spot!

Dziś usiadłem do porządkowania zdjęć z wyjazdu wakacyjnego. Postanowiłem użyć do tego właśnie programu F-Spot. Wydawał się on odpowiedni. Zaimportował fotki, posortował według informacji EXIF. Schody zaczęły się w momencie edycji całej kolekcji. Ze zdjęciami było trochę problemów, którymi chciałem się zająć: część trzeba było obrócić połowa była zrobiona na Nikonie, który nie miał ustawionej daty, tak więc ficzer sortowania po dacie z nagłówka EXIF wziął w łeb Tak więc chciałem poobracać fotki i uporządkować wedle czasu. Pierwsza czynność poszła w miarę łatwo. Druga była już lekko upierdliwa - np. Można zaznaczyć wszystkie fotki i otworzyć je w okienku do zmiany czasu, ale wtedy zapisywane są zmiany dopiero po wciśnięciu OK. Niby byłoby to fajne, ale, gdy ustawimy czas dla jednej fotki, to mamy taki oto wybór: ...

September 20, 2009 · 4 min · Marcin Cylke

Open Suse jest upośledzone!

Zarządzanie pakietami to droga przez mękę. Czemu? Proszę bardzo: marcin@byakshee:~> sudo zypper install f-spot Reading installed packages... 'f-spot' is already installed. Nothing to do. ale już jakbym chciał upgrade paczki zrobić, to inna rozmowa: marcin@byakshee:~> sudo zypper update f-spot Reading installed packages... Package 'f-spot' is not installed. Nothing to do. Wniosek z tego taki, że jak raz zetkniesz się z apt-getem, to już nic nie będzie później odpowiednie :D A OpenSuse oczywiście odradzam. ...

September 20, 2009 · 2 min · Marcin Cylke

Przydatne programy zdjęciowe

Od dawna używam hugina, który doskonale nadaje się do sklejania wielu zdjęć w panoramę. Robi to doskonale, wygładza, koryguje, dopasowuje. Wystarczy wrzucić sekwencję zdjęć w odpowiedniej kolejności, a program załatwi wszystko za mnie. Miód! Dziś znalazłem natomiast programik o dziwnej conieco nazwie tintii. On z koleii służy do przerabiana zdjęc na czarnobiałe, zostawiając pewien obszar w kolorze. Robienie podobnej rzeczy w Gimpie nigdy nie wychodziło mi łatwo. Dzięki temu narzędziu wszystko idzie łatwo i przyjemnie! ...

September 20, 2009 · 1 min · Marcin Cylke

Sycylijski IBM?

Ostatnio było tu ciszej, a to ze względu na wakacyjny wypad na Sycylię. Ładnie, pięknie, wino, kobiety, owoce morza. No, to tyle z relacji. Ja chciałem o czymś trochę innym. A mianowicie właśnie na Sycylii, konkretniej w Palermo zobaczyłem taką oto old-skulową reklamę IBM: Urzekła mnie! Że to jeszcze tam wisi, że jest takie pikselowe. I totalnie od czapy, reklama była umieszczona w okolicach Teatro Maximo. ...

September 16, 2009 · 1 min · Marcin Cylke

Własny player audio?

Od jakiegoś czasu męczy mnie nędza wśród odtwarzaczy audio dostępnych na różne unixy. Niby są, ale jakieś takie wybrakowane, zupełnie nie przystające do moich potrzeb. Niby robią dużo, ale ja nie potrzebuję kombajnu do muzyki. Oczywiście, są różne takie jak: Rhythmbox Amarok xmms i xmms2 musicpd bmpx cmus No i wszystko fajnie, nie mam zamiaru negować ich użycia. Mi one po prostu nie do końca pasują. Rhythmbox, bo jest duży, ma za dużo featerów, niby umie dużo ale jak co do czego przyjdzie to bywają problemy. Amarok, część KDE, a ja używam GNOME, albo tylko jakiegoś WM - a do tego jest przerośniętą kobyłą. xmms to staroć, a xmms2 nie używałem. Nie zachęcił mnie swoją architekturą klient-serwer. bmpx - fajny, ale mało stabilny. musicpd, przyjemny, ma prawie to co bym chciał - to znaczy jego klienty to mają, no ale znów ta nieszczęsna architektura klient-serwer. Po co to w odtwarzaczu muzyki?? cmus jest fajny, ale nie graficzny. ...

August 29, 2009 · 5 min · Marcin Cylke

SGI O2 - upragiony

Od dawna marzyła mi się właśnie ta maszyna. Przez rodzinę i bliskich ochszczony został "odkurzaczem". Nic to. Mi się podoba. Jest naprawdę ujmujący. Zapytace czemu? Proste! nie jest to zwykły pc przy wejściu do "biosu" mamy tryb graficzny, obsługę myszy oraz dźwięki wydawane przez wbudowaną kartę muzyczną Można by pomyśleć, że nie jest to warte uwagi, ale przecież standardowe PC nadal nie mają takich miłych ficzerów! A to jest sprzęt z 1996 roku. ...

August 23, 2009 · 2 min · Marcin Cylke