Saturday, December 18, 2010

Irlandia: Ostatnie odliczanie

Rozpoczynam ostatnie odliczanie... Najbliższy poniedziałek będzie ostatnim dniem w dotychczasowej pracy w Polsce, potem kilka dni urlopu, a 2 stycznia 2011 wylatujemy do Dublina i zaczynamy przygodę z Irlandią. Lot zabookowany, tymczasowe mieszkanie na pierwszy miesiąc już jest, więc pozostanie pakowanie walizek. Tymczasem - fotki rewelacyjnej (i praktycznej) antyramy, którą sprezentowali mi na pożegnanie przyjaciele z firmy: rękawice "na zmywak", bilet powrotny i podręczny zestaw przydatnych zwrotów :)

Thursday, December 16, 2010

Work on QComicBook 0.8.0

The work on new "big" (i.e. middle version number change) QComicBook release
has started. You can track this work in the dev/0.8.0merge branch of the git repo; this branch will get merged back to master branch once ready.

One of the most important internal changes to be included in the upcoming release is switching from using widgets to Graphics View Framework provided by Qt. This switch made it possible for an easy and nice implementation of Zoom Lens, so QComicBook 0.8.0 will finally see this much welcome addition! Long-term, the switch Graphics Framework may result in improved QComicBook performance and make it possible to use e.g. OpenGL backend to speed up scaling etc.

The new 0.8.0 release will also bring PDF reading support (as I already indicated  earlier) via Poppler library, which is a new dependency starting from this release.

I'd like to push the new release out by end of this year if possible, but the scope of changes related to new graphics framework is substantial and there are still some rendering-related bugs, so it may slip to early 2011.

Wednesday, December 1, 2010

TOMOYO Linux - 5 tips to streamline your experience

I've already blogged about TOMOYO Linux, a nice MAC implementation before. This time I'd like to share a few tips that I worked out using TOMOYO. Most (or all) of them may be apparent for long-time TOMOYO users, but hopefully will be helpful for newcomers.
These tips are based on the tomoyo-tools v2.x (for mainlined version, i.e. included in the vanilla kernel and using LSM).  Use ccs-patternize, ccs-loadpolicy etc. for 1.x series.
  1. Use initialize_domain
    Tomoyo creates separate domains for all execution paths. If you execute, say, Firefox web browser from a bash shell running in gnome-terminal, then from gnome menu and finally from gnome “run” dialog, you’ll end up with three distinct domains (and the number is possibly infinite, since you can start any application in many ways). Since you probably want to use same policy rules for all Firefox domains, no matter how Firefox was started, use initialize_domain rule in the exception policy, e.g.

    initialize_domain /usr/bin/firefox
    This way only one domain, /usr/bin/firefox” will be created in the system.
  2. Use keep_domain
    Many applications spawn child processes and execute helper programs - for instance, /usr/bin/firefox is just a shell script, that runs /usr/lib/firefox-x.y.z/, which in turn starts firefox-bin; the latter runs plugin-container and so on. Since you’re probably interested in confining an application as a whole, you may consider keeping all child processes in the same domain as the parent. Put

    keep_domain /usr/bin/firefox"

    in the exception policy and all execution paths created by /usr/bin/firefox domain will use same policy rules. Be aware however, that this loosens security and violates the rule of minimum privileges a bit. For example, plugin-container is responsible for running macromedia flash content plugin (among other plugins) and running it in the same domain as /usr/bin/firefox means it gets all the privileges granted to Firefox itself.

  3. Use tomoyo-patternize combo
    You probably already know and use tomoyo-patternize, but the trick is to pipe it with tomoyo-savepolicy and tomoyo-loadpolicy combo for fast and efficient policy updates and tweaking. The “-” parameter of tomoyo-savepolicy / tomoyo-loadpolicy dumps policy rules to  standard output or reads rules from standard input respectively. Chain it with tomoyo-patternize like this:

    tomoyo-savepolicy -d | tomoyo-patternize ‘pattern1’ ‘pattern2’ … | tomoyo-loadpolicy -df

    And you can apply patterns immediately. This combo is so useful, that you may consider putting it in a wrapper script, e.g:

    tomoyo-savepolicy -d | tomoyo-patternize $@ | tomoyo-loadpolicy -df

    Don’t forget that changes are made to the policy rules currently loaded in the kernel (no changes are made to the /etc/tomoyo/domain_policy.conf file), so don’t forget to execute tomoyo-savepolicy before shutdown....

  4. Use recursive dir matching
    The recursive directory matching operator /\{dir\}/ matches one or more repetitions of 'dir/'. Use it with “\*” as a directory argument to match all subdirectories (and their subdirectories etc.) of given directory, regardless of depth. This is useful if you don’t know directory structure in advance or don’t need to grant specific permissions for subdirectories. For instance, Firefox extensions tend to mess a lot with their files in ~/.mozilla/firefox/\*/extensions directory and it subdirectories, so you may want to grant read, write, create, truncate, link, unlink rights to ~/.mozilla/firefox/\*/extensions/\* (for files/dirs in extensions directory) and ~/.mozilla/firefox/\*/extensions/\{\*\}/\* (for files in subdirectories of extensions directory, arbitrary depth).

  5. Use path_group for common paths
    There is a lot of common paths that applications are accessing, for instance all GUI apps will read font files and fontconfig related files, all GNOME apps will read GTK configuration files, icons, themes etc. Create path_group definitions for common stuff, e.g.
    path_group FONTS /etc/fonts/\*
    path_group FONTS /etc/fonts/\{\*\}/\*
    path_group FONTS /var/cache/fontconfig/\*
    path_group FONTS /home/\*/.fontconfig/\*
    path_group FONTS /etc/fontconfig/\{\*\}/\*
    path_group FONTS /usr/share/fonts/\{\*\}/\*
    path_group FONTS /usr/share/fonts/\*
    path_group FONTS /usr/share/fonts/\{\*\}/\*

    And then simplify your domain policy rules like this:
    allow_read @FONTS

    Do this for other common files, e.g. ICONSTHEMES, ALSACONF, SOUNDDEV etc.

Tuesday, November 16, 2010

QComicBook 0.7.0 released!

QComicBook 0.7.0 has been released! From the ChangeLog:
  • added hints (warning, information) to System information dialog; display warning if free unrar is used.
  • added 'Cleanup list' option to Recently opened files menu.
  • added Dutch, Korean, Russian and Simplified Chinese translations.
  • added 'About donations' and 'About Qt' help menu items.
  • added experimental 'Frame View' mode for frame-by-frame reading.
  • added preliminary support for printing.
  • fixed bug with 'Open Next' disabled on first comic book archive in the directory
  • Qt >= 4.5.0 is now required.
Grab the new release here.

Sunday, November 7, 2010

QComicBook 0.7.0 is close, feature plan for next releases

As QComicBook 0.7.0 is nearing (just waiting for a few translations to be updated), I've started planning new features for  next releases. Here is the list of "big" features planned for QComicBook 0.8.0 / 0.9.0 to wet you appetite:

  • Support for PDF file format - this is actually almost ready and already available in the dev/pdf branch of QComicBook repository. Thanks to the great Poppler library and good, modular design of QComicBook (of course! :)) this feature took me literally a few hours to implement. There are still some rough edges, but it works and will for sure be a part of QComicBook 0.8.0. By the way, I think that comic books distributed as PDF files esentially do suck (as there is no benefit from keeping a bunch of images in a pdf file), but well, apparently some people have different opinion on this, so QComicBook will support them so that you can read pdfs and use all QComicBook's goodies (like bookmarks for example).
  • Comicbook library management - a tool to manage and browse your comicbooks collection. This feature still has a lot of question marks: how to organize the library and UI, make it user-friendly and useful etc. I will definately make and publish some mockups first. If you have any nice ideas about how this feature should look like, please drop me an email!
  • CBR archive editing / creation - make it possible to rearrange order of the pages, remove pages and create a new CBR archive out of existing one.
  • Fancy frame-by-frame reading - QComicBook 0.7.0 will introduce a new "Frame View" reading mode which displays single comic book frame, with shortucts for advancing to the next / previous frames. The idea is to implement a more "fancy" mode which displays an entire page and scroolls and zooms it in/out frame-by-frame.
  • Editable keyboard shortucts - this has been a problem for a long time in QComicBook. I've received already too many complaints about keyboard bindings, so with this feature one will be able to redefine keybord to his/her liking.
  • Simplified user interface - a way to switch between standard and clutter-free UI with a minimum set of buttons / menu options. Of course, all "hidden" options would still be available via keyboard shortucts.
That's it. I'm planning the next 0.8.0 release to be available by the end of this year and throw one or two of the above features in it. In the meantime, get ready for 0.7.0!

Saturday, October 23, 2010

Arch Linux defaults to Python 3 now

A major update has recently been pushed with Arch Linux updates: Python 3 is now the default one, installed as /usr/bin/python. The old python interpreter is installed as /usr/bin/python2.  This change resulted in a bunch of updates to other python-dependant packages.  Python 3 breaks compatibility with Python 2.x series, so this is a bold move but hey, Arch Linux rocks :-), doesn't it? Using Python 3 as the default in the stable branch puts Arch Linux at the forefront of Linux distros. The list of new features and changes in Python 3.x series are listed here.

Friday, October 22, 2010

Dziedzictwo popiołów. Historia CIA.

Kończę czytać książkę T. Weiner'a poświęconą historii CIA. Powiem krótko: rewelacyjna pozycja. Cel, jaki przyświecał autorowi to ukazanie nadużyć, błędów i niepowodzeń, jakie miały miejsce od czasu powstania Agencji w latach 40. do dziś. Nie brak w książce przykładów akcji zakończonych sukcesem, ale ogólny obraz CIA, jaki kreśli autor dość mocno otwiera oczy jeśli chodzi o rozumienie polityki prowadzonej przez USA w ciągu ostatnich dziesięcioleci... Tajne operacje prowadzone bez wiedzy i aprobaty Kongresu, wspieranie morderstw politycznych, dyktatorów i różnego rodzaju watażków za pomocą milionów dolarów, broni itp. Książkę czyta się jednym tchem i mogła by ona z powodzeniem zapewnić metariał do scenariuszy co najmniej kilku thrillerów polityczno-szpiegowskich. Co istotne, całość poparta jest obszernymi przypisami i odwołaniami do wywiadów lub steogramów przesłuchań zaangażowanych osób, więc ciężko mówić o jakimś naginaniu faktów.

A oto opis jednej z ciekawszych akcji (w tym przypadku - zakończonej sukcesem USA):

"W lipcu 1981 roku Mitterand odciągnął Regana na bok podczas szczytu ekonomicznego w Ottawie. Tłumacze, którzy byli zarazem wywiadowcami, przekazali informację: wywiad francuski prowadzi dezertera z KGB, pułkownika Władimira Wietrowa, a Mitterand uważa, że Stany Zjednoczone powinny przyjrzeć się jego działalności. Teczka Wietrowa (...) została przekazana wiceprezydentowi Bushowi (...). Dopiero po sześciu miesiącach do Rady Bezpieczeństwa Narodowego i CIA dotarło, ile jest warta. Do tego czasu Wietrow stracił rozum i zamordował kolegę oficera z KGB. Został aresztowany, przesłuchany i rozstrzelany.  

Akta (...) zawierały cztery tysiące stron dokumentów opisujących dziesięcioletnią pracę pewnego zespołu należącego do pionu naukowo-technicznego KGB. Grupa ta nazywała się Linia X. Współpracowała ze wszystkimi ważniejszymi wywiadami Europy Wschodniej. Wykradała amerykańską wiedzę specjalistyczną - szczególnie z dziedziny oprogramowania, w czym Stany Zjednoczone wyprzedzały Związek Radziecki o dziesięć lat. KGB kradł technologie, gdzie tylko i kiedy mógł, od najnudniejszych międzynarodowych targów po dramatyczne połączenie na orbicie Apolla i Sojuza w 1975 roku (...). [Dokumenty] identyfikowały wielu oficerów radzieckiego wywiadu wykradających osiągnięcia amerykańskiej techniki w Stanach Zjednoczonych i Europie Zachodniej.

Ameryka odbiła piłeczkę (...).  Zaczęliśmy z marszu karmić Sowietów złymi technologiami: komputerowymi, wydobywania ropy. Karmiliśmy ich obficie, pozwalaliśmy kraść rzeczy, z których byli bardzo zadowoleni (...). Układy scalone do systemów uzbrojenia, plany promów kosmicznych, projekty zakładów chemicznych i supernowoczesnych  turbin zawierały bomby z opóźnionym zapłonem.

Sowieci budowali rurociąg mający przesyłać gaz z Syberii do Europy Wschodniej. Potrzebowali komputerów kontrolujących manometry i zawory. Szukali oprogramowania na wolnym rynku w Stanach Zjednoczonych, lecz Waszyngton odrzucił prośbę. Subtelnie jednak wskazał pewną kanadyjską kompanię, która mogła mieć to, czego potrzebowała Moskwa. Sowieci wysłali oficera Linii X, żeby ukradł oprogramowanie. CIA i Kanadyjczycy dogadali się i pozwolili mu je ukraść.  Przez kilka miesięcy program działał sprawnie. Potem powoli zaczął zwiększać ciśnienie w rurociągu. Wybuch na syberyjskich pustkowiach kosztował Moskwę miliony (...)."

Jak dla mnie ta akcja to mistrzostwo świata; co ciekawe, wzmianka o niej znajduje się w wikipedii. Szczerze polecam całą książkę.

Wednesday, October 13, 2010

QComicBook: Flattr donations available!

From now on you can support QComicBook development with donations via Flattr social micro-payment system. I develop QComicBook in my spare time and give it away free of charge. Moreover, hosting its web site costs me some money. Keeping all that in mind, please consider a small donation -- follow the Flattr button on QComicBook project web site!

Saturday, October 9, 2010

QComicBook web site updates: RSS, screenshots

There are two notable updates to QComicBook web site. First: RSS feed is finally available, so from now on you can subscribe to QComicBook news. Second: the Screenshots section finally got some love and flexibility, meaning I've finally implemented the missing 'gallery' handling code. I've uploaded the screenshots I got from you, but still need more of them! Don't hesitate, send me your screenshots and earn good karma!

Monday, October 4, 2010

Why do I love Arch Linux

This is what I got by issuing 'pacman -Syu' (update of all packages to the latest version from the repos) this morning... For all the oblivious: this is mostly GNOME 2.32 stuff released a few days ago :). Sweeet.

Saturday, October 2, 2010

Soft reboot. Relocating to Ireland

OK, it's official now... I've finally decided to move abroad and take the software engineer role in a big company in Dublin. Me and my family are going to relocate from Poland to Ireland end of this year / beginning of 2011 - the start date of my new job is January 4th. There are still three months left to go, but there is a lot of stuff to arrange and take care of.  I'm pretty excited  and scared at the same time about these changes, but also very optimistic about new life in Ireland. Any tips about life in Dublin are welcome!

Sunday, September 26, 2010

Tonight is the night

The waiting is over! The premiere of 5th season of  Dexter series is tonight. Yummie....

Wednesday, August 18, 2010

QComicBook can detect comic frames now!

'Frame view' option.
The latest QComicBook code available in the git repository (dev/framedect branch) brings support for comic book frames detection - the new 'Frame View' mode allows for reading comic book frame-by-frame! I'm pretty excited about this new feature because this is something I dreamed about and started investigating several months ago. Comic frames extraction requires very smart image processing algorithms and some CPU power; a few articles are available on this subject on the internet. The most interesting ideas come from Japanese (e.g. 'Layout Analysis of Tree-Structured Scene Frames in Comic Images' article by Takamasa Tanaka, Kenji Shoji, Fubito Toyama and Juichi Miyamichi; 'Automatic E-Comic Content Adaptation' by Kohei Arai and Herman Tolle) as comic frame extraction solutions have already been implemented by online comic-book providers in Japan.
'Frame view' mode displaying single comic book frame.
The solution implemented in QComicBook is based on the 'Automatic E-Comic Content Adaptation' article and it's core is a contour-tracing algorithm described in 'A Linear-Time Component-Labeling Algorithm Using Contour Tracing Technique' article by Fu Chang, Chun-Jen Chen and Chi-Jen Lu from Taiwan. The main idea of this algorithm is to analyze a binarized image (black-white pixels only, with threshold applied) and find image frames (blobs) using contour-tracing. The algorithm is very fast and accurate (over 90% success rate). The accuracy of frame extraction implemented in QComicBook depends on the complexity of comic book images; it works best for pages with solid background (e.g. white or black), rectangular comic frames and simple frame layouts.  When it comes to performance, current implementation allows for comfortable comic book reading with a 2GHz Core2 Duo CPU. As frames for next page are extracted in advance for next page in a separate thread, it should also work nicely on slower CPUs.
Nothing is perfect, though. As already noted, the accuracy depends on the complexity of comic book page layout. Other than that, current implementation doesn't detect overlapping frames (e.g. a comic baloon spanning two frames), as described in the 'Automatic E-Comic...' article; overlapping frames are detected as a single frame. I'm going to implement this later.
Having said that, current implementation of comic frames extraction in QComicBook is already in good shape and  I'm happy that QComicBook is the first open-source comic book viewer to bring such feature :). Thanks to the aforementioned guys whose articles provided invaluable help when implementing this feature!
Frame view detection will soon be added to the master branch of the QComicBook source code repository, and then will be made available in the upcoming version 0.7.0 (to be released in a few weeks).
Stay tuned!

Saturday, July 24, 2010

QComicBook 0.6.0 released!

QComicBook 0.6.0 has been released! It doesn't bring all the goodies I planned for this release, but it finally got translations support with 7 languages for starters (Brazilian Portuguese, Finnish, French, Italian, Polish, Spanish and Ukrainian). See ChangeLog for the list of minor enhancements and fixes in this version. Thanks to all the translators and contributors who made this release possible! Enjoy!

Tuesday, July 13, 2010

Don't forget to pay your bills...

...otherwise you may face an unwelcome surprise... I forgot to pay the web hosting bill on time, and they temporarily blocked my account. My QComicBook and home web sites were not available for a few days. Dammit.

Monday, July 5, 2010

QComicBook website ported to Django

My new QComicBook website created on January was initially created with Ruby on Rails, but I've recently decided to try out and convert it to Django framework. The main motivation behind this is that Django is Python-based (I still prefer Python over Ruby even though Ruby's syntax is cleaner and better than Python's) and offers a nice administration panel for your website. The fun of learning Django and being able to choose between the two frameworks was also tempting.

Rewriting the website for Django and learning it at the same time took me several hours, but it was worth the effort and I'm very happy with it. The documentation of Django is simply great. Django's philosophy and the approach they take (e.g. when it comes to filters and tags) is very appealing and leads to better separation between model and view. The administration panel fits my needs perfectly and greatly simplifies QComicBook web site updates (this is something the RoR version of the website was lacking; I had a simple "prototype" of the administration page that was a real pain to use). Both frameworks are very good, have similar capabilities and are really friendly and easy to learn (in the basic aspects at least) if you know the associated programming language (Python or Ruby). For now however  I prefer Django!

BTW, the only difference between the old and new QComicBook website that you can spot is the "Powered by Django" phrase at the bottom :)

Tuesday, June 15, 2010

Tuesday, May 11, 2010

QComicBook gets i18n support. Call for translations!

The latest development version of QComicBook available from the official git repository has finally got internationalisation support! I'm looking for translators, so if you want to support QComicBook development and translate it to a language of your choice, please contact me! The translations will debut in version 0.5.1 of QComicBook.
As of now, QComicBook has been translated to Brazilian Portuguese, Finnish, Ukrainian and Polish. Thanks to all the contributors!

UPDATE:  Italian and French translations have been added.

Saturday, April 24, 2010

II Wojna Światowa. Backlog książek rośnie.

W EMPIKu, w związku ze Światowym Dniem Książki, do dzisiaj włącznie trwa promocja "3 książki w cenie 2". Trafiłem tam przypadkiem wczoraj i korzystając z okazji, bez większego zastanowienia łyknąłem trzy książki Reynolds'a, poświęcone działaniom dywizji SS na wybranych frontach II Wojny Światowej. Niestety tym samym mój backlog książek do przeczytania wzrósł dwukrotnie ;). W kolejce na półce czeka już kilka innych pozycji, a na horyzoncie zbliża się 'D-Day. Bitwa o Normandię'  Beevor'a (premiera za ok. dwa tygodnie; od momenu zapowiedzi ta pozycja ma zarezerwowane 1 miejsce w mojej kolejce)...

Ech... czy wspominałem już, że doba jest zbyt krótka?

Wednesday, April 14, 2010

Arch Linux & AppAarmor

I've just recently started to work on bringing the boon of AppArmor to Arch Linux world. PKGBUILDs for AppArmor-patched kernel and userland tools will soon be published via AUR, just some things need to be polished and finished.  Preparing kernel package went smooth.  The major effort was to prepare PKGBUILD for AppArmor tools: they should be punished for what they did to its Makefiles. Hardcoded paths to some crucial utiilities (like pod2man), hardcoded dependency/use of rpm, default target that generates not only the binary, but also pdf documentation (and for that you need latex)... Just nightmare... The PKGBUILDs are mostly ready, I just need to put some more effort and create an /etc/rc.d startup script for AppArmor's aa-eventd.  Stay tuned for AppArmor packages for Arch Linux!

Sunday, March 28, 2010

Feature request: enable stack smashing protector for Arch Linux packages

I've just created a feature request in Arch Linux Bugtracker to enable stack-smashing protector for Arch Linux packages. Stack smashing protector (SSP for short, aka ProPolice) is a GCC extension for protecting applications from stack-smashing attacks. It is available in stock GCC via -fstack-protector and -fstack-protector-all compile flags.

If you care about Arch Linux security, plase speak up and vote for this feature request!

Saturday, March 27, 2010

Backing filesystems up with FSArchiver

If you are going to backup your filesystem and looking for a simple yet powerful backup solution, then you may want to take a look at FSArchiver. This is a tool I've discovered just recently and despite its youth (first version released on November 2008) it did the job just perfectly. If you want more details, read on...

You probably already know tar or partimage: they are good, but have some limitations. Tar does the good job when comes to backups, but is not very convinient or easy to use for big filesystems (you need to be careful about passing it proper options to preserve file attributes, you need to take care of splitting resulting archives into smaller ones by yourself etc.). Partimage makes copies of entire partitions (and does it fast and well, copying only portions which are really used), taking a lot of burden from you, but you can only restore such images on partitions of same or larger size. Other than that, it still doesn't support ext4.

FSArchiver combines best features of tar and partimage: it works at the file level and creates a backup copy of entire filesystem, that can be then restored to a partition of any size (as long as it has enough space to hold the data, of course). When restoring the backup, it recreates target filesystems by issuing mkfs with proper flags and label. It supports many popular filesystems, including ext3, ext4, xfs, reiserfs and ntfs). FSArchiver can take advantage of dual/quad core CPUs (just pass it -jX flag, where X stands for the number of compression threads to run) and it does its job really FAST.I was really amazed that it took me just around 3-4 hours to backup and then recreate two filestystems (around 70GB worth of data in total) and the size of backup archives was only 25GB! So, to me, FSArchiver is a real winner. Sure, partimage may be faster, but if you need to rearrange your partitions with different sizes (this is what I had to do - and yes, I know about parted and gparted, but didn't want to use them), then FSArchiver is the tool you need.

Be warned though... FSArchiver developers claim it shouldn't be used on production environments yet, however it is well tested and has proven the ability to correctly save and restore filesystems on various Linux distributions. You choose.

Monday, March 1, 2010

Playstation 3: February 29 bug

Well... this is actually a bit funny... excluding all the people affected by this problem (well, this includes me ;)) and SONY... We all remember Y2K/Millenkum bug, some may be also aware of 2038 year problem in UNIX systems... But would you ever expect a leap year bug? This is what hit PS3 systems today: the hardware clock of PS3 (which you cannot set/reset) assumes it's February 29th, but the OS rejects this date as incorrect. The consequences are disastrous:
  • some files, e.g. saved games, may get corrupted.
  • trophy information may not be synchronized correctly and new trophies may get lost.
  • most (all?) games cannot be started at all; it doesn't matter whether these are online or single-player (offline) games.
  • PSN cannot be accessed.
Most old ("fat") PS3 systems are affected by this bug and for now the only solution is to not use PS3 today (until the internal clock advances to March 2nd).

From software engineer's perspective I can only say: WOW, that's a nasty BUG. It's amazing what consequences such subtle bug can cause, but on the other hand it's kind of terrifying if you think of other hardware that could suffer from that kind of programming errors, such as planes...

Thursday, January 7, 2010

QComicBook turns 5!

QComicBook was first released 5 years ago, on Jan 7th 2005. It took me just 2 or 3 weeks (around Christmas & New Year's Eve time in 2005) to complete the initial implementation, dubbed 0.1.0. The program soon became quite popular as it was probably the first comic book reader available for Linux. It had very good reception and I got a lot of positive feedback at that time. It was later packaged for many popular Linux distributions.

The program was usable from the very first release, of course with a limited set of features. More features were gradually added with new releases. With version 0.3.4 the set of features was kind of "stabilized";  this was November 2006.  Version 0.3.4 marks a stagnation period for QComicBook development: the next version (0.4.0) bringing the important Qt4 port was released one year later, on November 2007. But then nothing was happening again for almost two years - till August 2009 & version 0.4.1.  In 2009  QComicBook got my full attention again with four bugfix releases (0.4.1 - 0.4.4) and one "major"
release (0.5.0) which brought some new features. I'm now working on new exciting features, one of them being a ....let's keep it secret for a while ;) as it's still in early stages; keep an eye on this blog as I'll soon reveal some details...

Thanks to all of you who support QComicBook by using it, packaging it for your distro, sending me some good words, bug reports, fixes etc. QComicBook would not be here without your help! Cheers!

Tuesday, January 5, 2010

Moved to new web hosting

After a few weeks of downtime my website is finally back online with new address and design. After some searching for free web hosting I've eventually decided to buy a domain and use a paid web hosting which provides all the necessary tools (e.g. Ruby on Rails) to play with.

From now on my website URL is and QComicBook website is Neat, isn't it? ;)

Both websites are still under construction, may contain some broken links or may experience occasional downtime
but are already usable.