<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-8967647</id><updated>2012-02-16T13:12:24.390+01:00</updated><title type='text'>Emperor of Niedakhburg</title><subtitle type='html'>Niedakhburg is a virtual city of thought. Welcome to the rousing place where monuments remember times of human greatness and ruins always remind of hardest falls.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://djurban.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8967647/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://djurban.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>djurban</name><uri>http://www.blogger.com/profile/15767322635106262771</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>15</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-8967647.post-8365046430200257452</id><published>2006-11-12T00:17:00.000+01:00</published><updated>2006-11-12T00:18:22.624+01:00</updated><title type='text'>Qt and trees</title><content type='html'>I am looking for a class for storing and presenting trees with C++, at best I'd like it to be a Qt thing. But I need anything really. Great thanks for any hints.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8967647-8365046430200257452?l=djurban.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://djurban.blogspot.com/feeds/8365046430200257452/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8967647&amp;postID=8365046430200257452' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8967647/posts/default/8365046430200257452'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8967647/posts/default/8365046430200257452'/><link rel='alternate' type='text/html' href='http://djurban.blogspot.com/2006/11/i-am-looking-for-class-for-storing-and.html' title='Qt and trees'/><author><name>djurban</name><uri>http://www.blogger.com/profile/15767322635106262771</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8967647.post-115134195839081685</id><published>2006-06-26T19:08:00.000+02:00</published><updated>2006-11-09T22:00:45.085+01:00</updated><title type='text'>Help Flash 9 on Linux !</title><content type='html'>&lt;p&gt;Using a webcam in the crazy non-standardised world of linux ? Share the details of what mechanisms does it use with the Flash 9 linux developer on &lt;a href="http://blogs.adobe.com/penguin.swf/2006/06/penguin_eyes_1.html"&gt;Penguin.SWF camera question&lt;/a&gt;&lt;br /&gt;There are a bit of other questions, like which IME should be supported etc. Go check the &lt;a href="http://blogs.adobe.com/penguin.swf"&gt;Penguin.SWF blog&lt;/a&gt; out.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8967647-115134195839081685?l=djurban.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://djurban.blogspot.com/feeds/115134195839081685/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8967647&amp;postID=115134195839081685' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8967647/posts/default/115134195839081685'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8967647/posts/default/115134195839081685'/><link rel='alternate' type='text/html' href='http://djurban.blogspot.com/2006/06/help-flash-9-on-linux.html' title='Help Flash 9 on Linux !'/><author><name>djurban</name><uri>http://www.blogger.com/profile/15767322635106262771</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8967647.post-114557209005634008</id><published>2006-04-21T00:07:00.000+02:00</published><updated>2006-11-09T22:00:44.898+01:00</updated><title type='text'>I wish Qt was LGPL</title><content type='html'>&lt;p&gt;Or at least more free. There have been several buisness initiatives recently in which I acted as software design advisor. I was not involved in writing code, but my task was to make sure the software is good enough designed and that its creation process will not take more resources then needed. &lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;All of them were about commercial applications, directed at companies, multi-platform, GUI, network transmission, different stuff usually B2B. Applications were not in fact what was the center of the product, they were just a way to transfer content effectively to clients. The protocol of the transfer was the biggest Intellectual Property behind them and the content was what companies later paid for. In fact the apps were going to be at least a sale good enough to bring back the investment. I was and I am even sure that in one year those apps will be a big hit in Poland among medium-sized and bigger companies. &lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;So what does it have to do with Qt? All those applications were designed by students finishing the Universities, realising their ideas, etc, in short - they had a good idea, they are now going to turn into profit with help from a professional manager (not a student). The problem is, they do not have the money they are going to earn, at the moment they start writing code.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;To write it shorter: to start a company, get an office, buy computers with macos,win,linux, hire developers etc is to pay a lot of money students usually get from a bank credit. Those credits are not enormous, usually they are enough to cover the beginning with a 200$ margin. &lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Qt was ideal for all of those projects and believe me those projects would be able to pay for Qt lets say after a year (year is a good period becuase statistically companies that cant handle the market, die in around a year, also note that usually its after a year when company starts turning profit that can be used). But Qt will not be used. No project could afford buying Qt Commercial Licence at the starting moment. We sticked to wxWidgets and GTK2. &lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;Now here is something I do not get, why the hell won't Trolltech build some kind of a program for small, starting companies, that would give them commercial licence for their project free of charge for the first year. It is not stupid! A project developed with Qt that would prove a success and bring profit would mean that after a year Trolltech gets their money when the company buys a commercial licence for the next year (seeing as the application is already written in Qt, rewriting it just not to buy the licence would be stupid and no company would do that, really). &lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Trolltech would gain a client a happy one too! And a happy client is not only a client that will continue to buy the product but also a good marketing tool. &lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;On the other hand a company might not bring revenue after a year and bancrupt, well Trolltech would not loose that much in this situation right? It still does not get paid if the company does not use Qt.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Who knows maybe someone from Trolltech reads this and next time I am asked for advisory I can tell the company: hey, Trolltech's got Qt, best toolkit there is and they are giving you a hand at starters!&lt;br /&gt;  &lt;br /&gt;&lt;br /&gt;  &lt;br /&gt;&lt;br /&gt;  &lt;br /&gt;&lt;br /&gt;  &lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8967647-114557209005634008?l=djurban.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://djurban.blogspot.com/feeds/114557209005634008/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8967647&amp;postID=114557209005634008' title='14 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8967647/posts/default/114557209005634008'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8967647/posts/default/114557209005634008'/><link rel='alternate' type='text/html' href='http://djurban.blogspot.com/2006/04/i-wish-qt-was-lgpl.html' title='I wish Qt was LGPL'/><author><name>djurban</name><uri>http://www.blogger.com/profile/15767322635106262771</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>14</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8967647.post-113969762327885714</id><published>2006-02-11T23:32:00.000+01:00</published><updated>2006-11-09T22:00:44.839+01:00</updated><title type='text'>gocr, optical recognition and oKular</title><content type='html'>&lt;p&gt;So i sat down this evening and investigated the possibility to use gocr as a fallback for getting the text layer of a document in oKular (for example if the backend does not support generating text layer information). To let things be clear - gocr is not ready, to say the least. Personally I'd even say the effect of trying to OCR a page is so crappy it is not even worth installing the gocr engine (seems like the total rewrite in 0.40 did not help much). And I am talking about an ascii black text on a white page, without other elements. Gocr seems to go all the way down here - error in 98% of recognized characters, randomly added spaces, etc. For example: &lt;i&gt;content&lt;/i&gt; is &lt;i&gt;C unrir&lt;/i&gt; in gocr, sounds like drunken elvish to me.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;So at least for now, it is not worth it, no OCR in oKular - opensource does not have good, working OCR software yet.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;UPDATE: I also tried ocrad, which is advertised as good for latin1 only bitmaps. 3 out of 2400 characters in the probe were correctly matched, &lt;i&gt;content&lt;/i&gt; here is &lt;i&gt;C_ll_ICll_&lt;/i&gt; - sounds like a totally drunken elf wih heroine injections.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8967647-113969762327885714?l=djurban.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://djurban.blogspot.com/feeds/113969762327885714/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8967647&amp;postID=113969762327885714' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8967647/posts/default/113969762327885714'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8967647/posts/default/113969762327885714'/><link rel='alternate' type='text/html' href='http://djurban.blogspot.com/2006/02/gocr-optical-recognition-and-okular.html' title='gocr, optical recognition and oKular'/><author><name>djurban</name><uri>http://www.blogger.com/profile/15767322635106262771</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8967647.post-113829666492637614</id><published>2006-01-26T18:21:00.000+01:00</published><updated>2006-11-09T22:00:44.782+01:00</updated><title type='text'>New feature ideas</title><content type='html'>&lt;h4&gt;Ever used Acrobat Reader and felt it missed something badly?&lt;/h4&gt;&lt;br /&gt;&lt;h4&gt;Ever wanted to be able to do something with a document and your viewer didnt allow it?&lt;/h4&gt;&lt;br /&gt;&lt;h4&gt;Have an idea for a feature the KDE 4 document viewer should have?&lt;/h4&gt;&lt;br /&gt;&lt;h3&gt;&lt;a href="mailto:niedakh@gmail.com?subject='oKular feature idea'"&gt;Tell me about it!&lt;/a&gt; The sooner you tell me the bigger the chance you'll see it in KDE4 are.&lt;/h3&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8967647-113829666492637614?l=djurban.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://djurban.blogspot.com/feeds/113829666492637614/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8967647&amp;postID=113829666492637614' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8967647/posts/default/113829666492637614'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8967647/posts/default/113829666492637614'/><link rel='alternate' type='text/html' href='http://djurban.blogspot.com/2006/01/new-feature-ideas.html' title='New feature ideas'/><author><name>djurban</name><uri>http://www.blogger.com/profile/15767322635106262771</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8967647.post-113811804284819374</id><published>2006-01-24T16:29:00.001+01:00</published><updated>2006-11-09T22:00:44.716+01:00</updated><title type='text'>Hot New Features!</title><content type='html'>Having completed most of classes this semester I had some time to hack oKular. I am developing new features mostly alone - Eros is offline since his laptop burnt in August and Albert is helping porting kdelibs to Qt4 and in spare time backports bugfixes to oKular from kpdf 3.5 - therefore the ratio of new features per month is not as high as I would love it to be. It is not low though.&lt;br /&gt;&lt;br /&gt;oKular got three new features:&lt;br /&gt;&lt;br /&gt;&lt;dl&gt;&lt;br /&gt;&lt;dt&gt;Overview mode&lt;/dt&gt;&lt;br /&gt;&lt;dd&gt;Another viewing mode - you can specify how many rows and columns the Page View can have. Plus you can have a continous and a non-continous one. Useful for looking through the whole pdf in a hasty manner or just checking whether all pages of a print are ok.&lt;/dd&gt;&lt;br /&gt;&lt;dt&gt;Editor-like text selection&lt;/dt&gt;&lt;br /&gt;&lt;dd&gt;Ever bothered the select tool was just too big for what you wanted to select? Editor-like text selection is the thing for you. It feels like kate ;) Plus in the future i'm going to add selection of images too and later Richtext copying to clipboard :) Yay oKular!&lt;/dd&gt;&lt;br /&gt;&lt;br /&gt;&lt;dt&gt;Hardware blending!&lt;/dt&gt;&lt;br /&gt;&lt;dd&gt;Yes, since KDE4 is for now a bit far away, oKular uses XRender directly to create the alpha-blended selection rectangles. Now selection is faster then ever. Thanks go to fredrikh for giving me an idea on how to implement it. oKular could damn use Qt4, but I will blog about it later today.&lt;/dd&gt;&lt;br /&gt;&lt;br /&gt;&lt;dt&gt;Postscript support is back&lt;/dt&gt;&lt;br /&gt;&lt;dd&gt;Well not a new feature as it already existed, but now with libqgs separated and cleaned up (and released), it is faster then ever! Sometimes even faster then pdfs.&lt;/dd&gt;&lt;br /&gt;&lt;br /&gt;&lt;/dl&gt;&lt;br /&gt;&lt;br /&gt;Here is a &lt;a href="http://team.pld-linux.org/~djurban/oKular/selectionAndOverview.png" title="oKular with editor-like text selection and overvie mode"&gt;sample&lt;/a&gt; of what all the features together look like.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8967647-113811804284819374?l=djurban.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://djurban.blogspot.com/feeds/113811804284819374/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8967647&amp;postID=113811804284819374' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8967647/posts/default/113811804284819374'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8967647/posts/default/113811804284819374'/><link rel='alternate' type='text/html' href='http://djurban.blogspot.com/2006/01/hot-new-features.html' title='Hot New Features!'/><author><name>djurban</name><uri>http://www.blogger.com/profile/15767322635106262771</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8967647.post-112398034906479648</id><published>2005-08-14T02:41:00.000+02:00</published><updated>2006-11-09T22:00:44.535+01:00</updated><title type='text'>oKular beta1 'monoKle'</title><content type='html'>&lt;h2&gt;API work&lt;/h2&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;While working on oKular I faced or was asked to consider a list of things the file format handling generator/backend might need.  First problem was search, kpdf when branched did not have a page abstraction class, it did not handle searches between the lines too, it could only search for words on the same line.  &lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Page abstraction&lt;/h3&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;So the first thing I wrote was the page abstraction class, which holds a vector of text entities and implements the search functions. Text entities are a character or a set of them with a rectangle box describing a normalized ([0;1] coordinates) position on the screen. The text entity class has also information about whether new line follows this entity (used for getting the text for given coordinates) and the standard rotation and baseline data.  The search algorithm is quite fast and includes a simplifying function when returning a result.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;The result is a regular area, which is a finite set of normalized rectangles that describe positions of the found words. The great thing about it is being a template which can be used for virtually anyobject, or even for regular areas if we need regular areas of different shapes! Don't you just love object oriented coding ?&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Information pushing&lt;/h3&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;How should the file format backend inform the program about an error? Or maybe it would want to display a message or a warning. It is a simple as emitting a signal now! The user can configure whether he wants the messages displayed using kpdf's supreme popups in the page view or a standard KDE message/error/warning box (the latter not included in beta1).&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Settings&lt;/h3&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Support for generator settings is easy when you think about allowing to set settings only when the generator is loaded with the document, but what about allowing to configure all backends at all time? The solution was simpler then I thought but at a cost. All the generators that have settings support are loaded if user chooses to configure them, later if the user opens a filetype and a generator for it is already loaded, its not loaded again - just reused. Who would have thought it would be that easy.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Adding pages to the configuration dialog is done by the generator in Generator::addPage(KConfigDialog *).&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Intercepting the event of the page and adding components to the GUI&lt;/h3&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;The need for a possibility to intercept the events, such as a right mouse click, in the page view was reported by Wilfred Huss of kviewshell. To be generous, I am allowing the generator to intercept nearly all events page view receives, just reimplement the bool Generator::handleEvent(QEvent *) function! Return true if the page view should parse the event itself after your function finishes.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Adding components to the GUI was another important aspect, the most important GUI items in kpdf are the QToolBox in the navigation pane and the menu. You can specify an XML menu layout that is to be merged with the standard menu by subclassing the newly added getXMLFile function, while the QToolBox and KActionCollection objects are available to the generator in setupGUI (QToolbox*,KActionCollection *). &lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;The Ghostscript generator for Postscript&lt;/h2&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;The next deliverable I pointed in the SoC proposition for Google was a backend using Ghostscript. I admit taiming Ghostscript library (libgs) was hell. A partially documented API along side with some typos (like sending void** instead of void*) and the library having a C object API made it really no fun. But with help of ghostscript developers (great thanks to ghostgum of #ghostscript, the author of the API) I managed to understand how it works and wrote a perfectly good wrapping class. The road was harsh though, as ghostgum lives in Australia and I live in Poland, so it usually ment to me no sleep at night if I needed to talk to him.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Asynchronous renderer&lt;/h3&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;The asynchronous renderer based on ghostscript is the first fully synchronous generator in kpdf. libgs was not thread aware and did not allow more then one instance in the generator, reusing the synchronous renderer was too slow for me to accept so I wrote a helper application that uses the wrapper class to generate a pixmap and uses X11 functions so do an ultra fast transmission of the QPixmap. The asynchronous renderer is a masterpiece, the wrapper around it includes even asynchronous killing of the no longer used instances of helper apps. I'm proud of it.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Finally one night i managed to overcome the problems.&lt;/p&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://ep09.pld-linux.org/~djurban/kpdf_nearly_rendering_postscript.png"&gt;18:27 30th of July&lt;/a&gt; - The libgs wrapper works, does not receive the pixmap properly from Ghostscript&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://ep09.pld-linux.org/~djurban/kpdf_nearly_rendering_postscript2.png"&gt;03:27 31st of July&lt;/a&gt; - Broken receiving after enabling alpha channel, disabling it.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://ep09.pld-linux.org/~djurban/kpdf_nearly_rendering_postscript3.png"&gt;05:00 31st of July&lt;/a&gt; - First close attempt after understanding the format of the pixmap.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://ep09.pld-linux.org/~djurban/kpdf_nearly_rendering_postscript4.png"&gt;31st of July&lt;/a&gt; - Second attempt with the alpha channel being broken.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://ep09.pld-linux.org/~djurban/kpdf_nearly_rendering_postscript5.png"&gt;14:00 31st of July&lt;/a&gt; - First correct attempt, third times the charm.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://ep09.pld-linux.org/~djurban/kpdf_rendering_postscript.png"&gt;18:00 31st of July&lt;/a&gt; - Working synchronous generator without antialiasing.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://ep09.pld-linux.org/~djurban/kpdf_rendering_postscript1.png"&gt;19:00 31st of July&lt;/a&gt; - Working synchronous generator without antialiasing.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://ep09.pld-linux.org/~djurban/kpdf_rendering_postscript2.png"&gt;19:00 13th of July&lt;/a&gt; - A screenshot of a fully working asynchronous and sychronous generators with antialiasing and Ghostscript message window. &lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Replacing kghostview&lt;/h3&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;oKular is now a full replacement of kghostview without support for PDF files, which is easy enough to implement later. The replacement in KDE4 will close 90% of kghostview bugs, which kpdf implemented earlier like review support or better navigation panel.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;No text search support&lt;/h3&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Unfortunately there is no currently available solution for postscript searching, pstotext handles only some PostScript files and does not work with anything other then latin1. Also note there is no such thing as encoding in PostScript, it uses a set of glyphs and when more are needed the unneeded ones are removed and new ones are added, locally on page, so the encoding migh change several times inside a document. Currently there is no sane possibility to work this out.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Ghostscript library&lt;/h3&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;To use the Ghostscript generator you need a Ghostscript compiled with shared library. To do it manually, take the sources and after configuring do: &lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;blockquote&gt;&lt;code&gt;make so&lt;/code&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;and to install&lt;br /&gt;&lt;blockquote&gt;&lt;code&gt;make soinstall&lt;/code&gt;&lt;/blockquote&gt;&lt;br /&gt;A list of RPMS with libgs can be found &lt;a href="http://www.rpmfind.net/linux/rpm2html/search.php?query=libgs.so"&gt;here&lt;/a&gt;. Debian does not currently provide any package with libgs.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Make sure you have it in your library path because using the --with-gs-library switch does not work yet (no idea how to add it to the list of directories checked by KDE_CHECK_LIB).&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;oKular Beta 1 &amp;quot;monoKle&amp;quot;&lt;/h2&gt;&lt;br /&gt;&lt;p&gt;I am releasing oKular SVN revision as beta 1. It should work correctly with PostScript, Image and PDF files. For now my working version includes CHM support I did not put in this beta, due to some pagesize calculation problems. The CHM support is based on the chmlib wrapping code from kchmpart (three files actually), I did a few changes to make it usable in oKular, wrote the code that uses khtml to render the compressed html pages myself. Beta 2 is planned for mid October, when I have most of the kviewshell plugins ported to oKular. So get: &lt;a href="http://ep09.pld-linux.org/~djurban/oKular-beta1.tar.bz2"&gt;the tarball for oKular beta1 'monoKle'&lt;/a&gt; Do not report this to slashdot. If the server gets slashdotted, there will be no betas and you'll have to wait until KDE4.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8967647-112398034906479648?l=djurban.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://djurban.blogspot.com/feeds/112398034906479648/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8967647&amp;postID=112398034906479648' title='42 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8967647/posts/default/112398034906479648'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8967647/posts/default/112398034906479648'/><link rel='alternate' type='text/html' href='http://djurban.blogspot.com/2005/08/okular-beta1-monokle.html' title='oKular beta1 &apos;monoKle&apos;'/><author><name>djurban</name><uri>http://www.blogger.com/profile/15767322635106262771</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>42</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8967647.post-112231891701934192</id><published>2005-07-25T20:23:00.000+02:00</published><updated>2006-11-09T22:00:44.470+01:00</updated><title type='text'>Bad PR?</title><content type='html'>&lt;p&gt;Well. One of the polish translators of Firefox published an unofficial build of Firefox (codename deerpark). &lt;strike&gt;It is a great way to humiliate the Qt/KDE community. While being mildy unfair, making fun of the gecko Qt port is easy. Wrong. It is just a nasty way to do bad PR for Qt/KDE.&lt;/strike&gt; Another UPDATE, seems it was just a matter of sense of humor I didn't get. Apologies to marcoos (the polish translator), for not understanding this.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;strike&gt;He &lt;a href="http://marcoos.jogger.pl/comment.php?eid=135455"&gt;writes in one of the comments&lt;/a&gt; (my translation):&lt;br /&gt;&lt;blockquote&gt;The qt/mozilla project works like this&lt;br /&gt;1. Someone says GTK is ugly (bullshit, but hey) &lt;br /&gt;2. Somoene starts a qt port&lt;br /&gt;3. Three months pass&lt;br /&gt;4. A port appearts, it even compiles, still it remains unusable. &lt;br /&gt;4. A year passes.&lt;br /&gt;5. Port doesnt even compile now, because its been unmaintained for over 6 months &lt;br /&gt;6. Someone removes the port, which at this point is out of sync, from the official mozilla branch&lt;br /&gt;7. 10 months pass&lt;br /&gt;8. GOTO 1.&lt;/blockquote&gt;&lt;/strike&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;UPDATE: &lt;strike&gt;Well at first I thought this was he has a damn point and although on one hand it is unfair to make fun of this, on the second couldn't Zack, or anyone, just finish it during the whole year? Many projects that get started in KDE are not finished. Its normal, but they mostly do not go outside the KDE repository. Those which do, could at least get finished and maintaned, for PR sake.&lt;/strike&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Well now that I talked a little more to other KDE developers, I am posting better remarks about this:&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;&lt;li&gt;Mozilla Foundation is not making it easier to maintain and develop this port, a sufficient argument is &lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=297788"&gt;the time for Dirk Mueller to get SuperReview&lt;/a&gt;. I bet every project would welcome such a skilled and experienced developer like Dirk, without making all those troubles. Well, Mozilla is not an AOL/Netscape offspring for nothing, right?&lt;/li&gt;&lt;br /&gt;&lt;li&gt;I would like to apologize to Dirk, for the earlier version of this post. The Mozilla/Qt and the Gecko/Konqueror integration are maintained and will be a subject of presentation at the KDE Akademy 2005.&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8967647-112231891701934192?l=djurban.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://djurban.blogspot.com/feeds/112231891701934192/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8967647&amp;postID=112231891701934192' title='11 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8967647/posts/default/112231891701934192'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8967647/posts/default/112231891701934192'/><link rel='alternate' type='text/html' href='http://djurban.blogspot.com/2005/07/bad-pr.html' title='Bad PR?'/><author><name>djurban</name><uri>http://www.blogger.com/profile/15767322635106262771</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>11</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8967647.post-112025998401057190</id><published>2005-07-02T01:18:00.000+02:00</published><updated>2006-11-09T22:00:44.410+01:00</updated><title type='text'>Localization, now!</title><content type='html'>&lt;p&gt;Localization, what an important domain of commercial project development it is. Unfortunately its often forgoten in the OpenSource world. This seems reasonable, since the OpenSource software does not aim to conquer national markets, vendors hardly ever do local marketing. It is important to distinguish localization from translation. The latter takes care of translating the user interface and documentation to the desired language, while localization is responsible for making sure that programs have the same functionality in different languages.&lt;br /&gt;&lt;br /&gt;How important is localization? Imagine buying a ferrari only to learn that you can not speed greater than 60km/h with it outside Italy...&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;h2&gt;Websites providing content&lt;/h2&gt;&lt;br /&gt;This is about applications that use external websites to serve additional content. Two examples, both from amarok.&lt;br /&gt;&lt;p&gt;The information tab that uses Wikipedia to display information about the artist of currently played song. The information is searched in English Wikipedia, even if running with a Polish locale, amarok still chooses to search the English Wikipedia by default. Most of Polish artists are not available there. The user is informed that no page was found. While it is very probable that such a page exists in Polish Wikipedia (Pudelsi is an example band name). Absolute l10n no-go.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;A much bigger failure in localization is the lyrics tab. Searching for most of Polish lyrics there is just a mistake. This desperately needs localization. Even the encoding of the artist name is broken by the search engine used on the Lyrics tab backend. This is of course much harder to localize, since this process would need coding skills. Still it remains a huge bug, I doubt a commercial vendor would release this feature on a non-English market with its current state.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Amarok is the first application that is using website providing contents to such extent and therefore it is only natural that the amarok team made those mistakes. I love amarok and I am full of respect for what the amarok folks wrote, please treat this article as a hint and not as a depreciation of amarok.&lt;/p&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;h2&gt;Speech synthesis&lt;/h2&gt;&lt;br /&gt;The speech synthesis via festival localization was beautifully done by the kttsd developers. One Polish voice (male) is present on the voices list. It seems there is one more Polish voice (female) for mbrola, but I can not check if it works with festival. Still kttsd has two issues. First when I checked the voices file, there was no non-European/USA voice listed. I could bet there were Arabic voices for festival. Quite an localization issue in a big part of the world. Second one is no predefined command plug-in synthesizers. In Polish there is one free synthesizer for linux - powiedz, command line tool. It could be supported by default too. &lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;h2&gt;Translation service&lt;/h2&gt;&lt;br /&gt;Half of KDE applications use the famous babelfish and google translation services. From konqueror's addons, through kopete's translator plug-in to kbabel. For years no one noticed that translation services exist even for languages different than the several ones supported by those two translation engines. An example is: &lt;a href="http://translantica.pwn.pl"&gt;translantica&lt;/a&gt; - English&lt;-&gt;Polish translation engine created by the academic workers from Polish Academy of Sciences. I am sure there exist similar languages for the Arabic languages. Even if there are no Spanish&lt;-&gt;Polish or Japanese&lt;-&gt;Polish services, one can still try doing Spanish&lt;-&gt;English via babelfish or google and English&lt;-&gt;Polish via translantica. It can be done for any language with bidirectional English translation engine. No localization whatsoever here. &lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;h2&gt;Search providers&lt;/h2&gt;&lt;br /&gt;I have set the polish locale but I am using the English language. Now I want to google in Konqueror. Guess which google version does Konqueror load when using a search provider? Yes, the English one. It is impossible to describe how annoying this situation is. But wait there are more services like that (ex. wikipedia). Ofcourse this flaw is only partial, since with KDE with Polish translation should at least choose the Query[pl] URL over the Query one. Still what about the polish search providers? I have made collection of them for the &lt;a href="http://www.pld-linux.org"&gt;PLD Linux&lt;/a&gt; I am working on and I will commit them once my todo for them is complete. Still I am completely astonished by the fact that no one else from the community did not submit such data. Two localization issue here then.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;h2&gt;Thesauruses and dictionaries&lt;/h2&gt;&lt;br /&gt;The last localization aspect but how much underrated in the KDE community now. How many koffice thesauruses can you count? I have yet to see an non-European thesaurus for koffice. But the same goes for dictionaries, looking at the quality of Microsoft's dictionaries in the latest Office Suite, one will notice that there is no Polish dictionary with the support for punctuation and other advanced language rules around, even in commercial OpenOffice suites. But there is an open thesaurus project in Poland which provides koffice the thesaurus also in koffice format. Still what about non-European languages?&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;h2&gt;Conclusions&lt;/h2&gt;&lt;br /&gt;The situation is not perfect and while most Western European languages are not lacking good localization, the need for localization in the other languages is vast. There are two things to be done by two sides of KDE.&lt;br /&gt;&lt;p&gt;&lt;h3&gt;Developers&lt;/h3&gt;&lt;br /&gt;The developers need to create the localization possibility. Much of it already exists like thesauruses and kspell framework. But still there are things missing: a possibility to add translation engines and specify local equivalents of content-providing websites. One could dream about providing those possibilities without requiring the localization team to have programming skills.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;h3&gt;Users&lt;/h3&gt;&lt;br /&gt;Well it is up to users to generate localization teams, developers cannot know about every aspect of localizations. Hey, go for it!&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8967647-112025998401057190?l=djurban.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://djurban.blogspot.com/feeds/112025998401057190/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8967647&amp;postID=112025998401057190' title='13 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8967647/posts/default/112025998401057190'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8967647/posts/default/112025998401057190'/><link rel='alternate' type='text/html' href='http://djurban.blogspot.com/2005/07/localization-now.html' title='Localization, now!'/><author><name>djurban</name><uri>http://www.blogger.com/profile/15767322635106262771</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>13</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8967647.post-111974411405377474</id><published>2005-06-26T01:19:00.000+02:00</published><updated>2006-11-09T22:00:44.268+01:00</updated><title type='text'>Summer of code</title><content type='html'>&lt;p&gt;Well. I'm in. Google accepted the proposal i sent, although not sure what to do now (check taxes in poland, read strange pdf's google sent), I'm really happy about it. I started the project on sourceforge already.  So what's the idea? I'll take the proposal I sent to google and try to specify several development milestones. I would like to say a special Thank You to Albert Astals Cid, who agreed to mentor this project from the KDE side :) It is not the first project I'm doing for KDE, but it's the first one which consists of so much code :) I am really happy about working with you Albert :)&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;h2&gt;oKular - taking kpdf beyond just pdf's&lt;/h2&gt;&lt;br /&gt;The goal is to make a unified viewer that would use the kpdf shell and have all the superb features it provides, while supporting as many formats as possible (while the formats are rationally chosen, no use to have support for video files in kpdf).&lt;br /&gt;&lt;br /&gt;What does KDE get? A viewer for many formats with:&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;&lt;li&gt;One unified look and feel&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Possibility for third party vendors to provide plugins for their format usign the public API&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Fast viewer for lots of formats that is easily embeddable in other apps like file browsers, mail readers or any other application that deals with files of different types. (thanks to recently released kpart plugin for Firefox, Firefox users finally get a decent plugin for several formats too)&lt;/li&gt;&lt;br /&gt;&lt;li&gt;All the features of kpdf but for many more formats (including the annotation support)&lt;/li&gt;&lt;br /&gt;&lt;li&gt;With the kword plugin ready, one will not have to wait for kword to start just to preview a document.&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;&lt;br&gt;First milestones:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;have a fairly well designed API for the plugin structure, Stefan Kebekus asked me to check if I could use the (much incomplete) kviewshell API as a basis.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;port kpdf xpdf backend to the new plugin api&lt;/li&gt;&lt;br /&gt;&lt;li&gt;write ghostview backend&lt;/li&gt;&lt;br /&gt;&lt;li&gt;write chm backend&lt;/li&gt;&lt;br /&gt;&lt;li&gt;write kword backend (and support converting formats we have kword filters internally)&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;/p&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;I will start to code all the stuff somewhere on Wednesday, before I want to:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;publish an article about localisations in KDE, localisations not translations, about where do they suck and where are they done as properly as the non-english speaking KDE users deserve&lt;/li&gt;&lt;br /&gt;&lt;li&gt;publish an article on one of the biggest opensource portals in Poland - &lt;a href="http://7thguard.net"&gt;7thguard.net&lt;/a&gt; - about the KDE/Wikimedia cooperation and how can it be used to improve user experience&lt;/li&gt;&lt;br /&gt;&lt;li&gt;reopen my &lt;a href="http://djurban.jogger.pl"&gt;polish blog&lt;/a&gt; :)&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8967647-111974411405377474?l=djurban.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://djurban.blogspot.com/feeds/111974411405377474/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8967647&amp;postID=111974411405377474' title='11 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8967647/posts/default/111974411405377474'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8967647/posts/default/111974411405377474'/><link rel='alternate' type='text/html' href='http://djurban.blogspot.com/2005/06/summer-of-code.html' title='Summer of code'/><author><name>djurban</name><uri>http://www.blogger.com/profile/15767322635106262771</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>11</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8967647.post-111205338547662612</id><published>2005-03-28T23:48:00.000+02:00</published><updated>2006-11-09T22:00:44.210+01:00</updated><title type='text'>No text in kontact's icons pane</title><content type='html'>&lt;p&gt;My friend from &lt;a href="http://www.pld-linux.org" title="PLD Linux Distribution Homepage"&gt;PLD&lt;/a&gt; asked me for a patch to allow hiding text in kontact's icons pane. It just took a little too much space. Here's the result:&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;table cellspacing="10" cellpadding="5"&gt;&lt;br /&gt;&lt;caption&gt;Large icons&lt;/caption&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;th&gt;With Text&lt;/th&gt;&lt;br /&gt;&lt;th&gt;Without Text&lt;/th&gt;&lt;br /&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td&gt;&lt;img src="http://ep09.pld-linux.org/~djurban/iconsideshowtext/kontact_largeIconText.png" alt="Large icons with text" class="showonplanet" /&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;img src="http://ep09.pld-linux.org/~djurban/iconsideshowtext/kontact_largeIconNoText.png" alt="Large icons without text" class="showonplanet" /&gt;&lt;/td&gt;&lt;br /&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;table cellspacing="10" cellpadding="5"&gt;&lt;br /&gt;&lt;caption&gt;Normal icons&lt;/caption&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;th&gt;With Text&lt;/th&gt;&lt;br /&gt;&lt;th&gt;Without Text&lt;/th&gt;&lt;br /&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td&gt;&lt;img src="http://ep09.pld-linux.org/~djurban/iconsideshowtext/kontact_normalIconText.png" alt="Normal icons with text" class="showonplanet" /&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;img src="http://ep09.pld-linux.org/~djurban/iconsideshowtext/kontact_normalIconNoText.png" alt="Normal icons without text" class="showonplanet" /&gt;&lt;/td&gt;&lt;br /&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;table cellspacing="10" cellpadding="5"&gt;&lt;br /&gt;&lt;caption&gt;Small icons&lt;/caption&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;th&gt;With Text&lt;/th&gt;&lt;br /&gt;&lt;th&gt;Without Text&lt;/th&gt;&lt;br /&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td&gt;&lt;img src="http://ep09.pld-linux.org/~djurban/iconsideshowtext/kontact_smallIconText.png" alt="Small icons with text" class="showonplanet" /&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;img src="http://ep09.pld-linux.org/~djurban/iconsideshowtext/kontact_smallIconNoText.png" alt="Small icons without text" class="showonplanet" /&gt;&lt;/td&gt;&lt;br /&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;table cellspacing="10" cellpadding="5"&gt;&lt;br /&gt;&lt;caption&gt;No icons&lt;/caption&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;th&gt;With Text&lt;/th&gt;&lt;br /&gt;&lt;th&gt;Without Text&lt;/th&gt;&lt;br /&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td&gt;&lt;img src="http://ep09.pld-linux.org/~djurban/iconsideshowtext/kontact_noIconText.png" alt="No icons with text" class="showonplanet" /&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;img src="http://ep09.pld-linux.org/~djurban/iconsideshowtext/kontact_noIconNoText.png" alt="No icons without text" class="showonplanet" /&gt;&lt;/td&gt;&lt;br /&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;table cellspacing="10" cellpadding="5"&gt;&lt;br /&gt;&lt;caption&gt;RMB&lt;/caption&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;th&gt;When showing only text&lt;/th&gt;&lt;br /&gt;&lt;th&gt;When showing icons and text is hidden&lt;/th&gt;&lt;br /&gt;&lt;th&gt;When showing icons text is shown&lt;/th&gt;&lt;br /&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td&gt;&lt;img src="http://ep09.pld-linux.org/~djurban/iconsideshowtext/kontact_menuNoIcons.png" alt="When showing only text" class="showonplanet" /&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;img src="http://ep09.pld-linux.org/~djurban/iconsideshowtext/kontact_menuIconsNoText.png" alt="When showing icons and text is hidden" class="showonplanet" /&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;img src="http://ep09.pld-linux.org/~djurban/iconsideshowtext/kontact_menuIconsText.png" alt="When showing icons and text is shown" class="showonplanet" /&gt;&lt;/td&gt;&lt;br /&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;This patch also prevents the user from setting both Only Text and Hide Text, this way we always have some indicators on the icons pane. The drawback of this patch is that it depends on which is the highest IconSize value, because i was unable to make the KPopupMenu take negative values properly. Instead of -3 it took some weird -700sth. And there was no point in making a submenu for it. If anyone knows how to do it with negative numbers or without relying on the IconSize value, please let me know.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Patch &lt;a href="http://ep09.pld-linux.org/~djurban/iconsideshowtext/kdepim-iconsidepane-showtext.diff" title="Patch allowing text hiding in kontact's icon pane - version 1.3"&gt;version: 1.3&lt;/a&gt; and its &lt;a href="http://cvs.pld-linux.org/SOURCES/kdepim-iconsidepane-showtext.diff" title="Patch allowing text hiding in kontact's icon pane - webcvs page"&gt;webcvs page&lt;/a&gt;. Apply it in your kdepim's checkout's root directory with &lt;blockquote&gt;&lt;code&gt;patch -p1 &amp;lt; kdepim-iconsidepane-showtext.diff&lt;/code&gt;&lt;/blockquote&gt; &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8967647-111205338547662612?l=djurban.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://djurban.blogspot.com/feeds/111205338547662612/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8967647&amp;postID=111205338547662612' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8967647/posts/default/111205338547662612'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8967647/posts/default/111205338547662612'/><link rel='alternate' type='text/html' href='http://djurban.blogspot.com/2005/03/no-text-in-kontacts-icons-pane.html' title='No text in kontact&apos;s icons pane'/><author><name>djurban</name><uri>http://www.blogger.com/profile/15767322635106262771</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8967647.post-110779305296405613</id><published>2005-02-07T15:43:00.000+01:00</published><updated>2006-11-09T22:00:44.140+01:00</updated><title type='text'>Linux and fonts don't mix well</title><content type='html'>&lt;p&gt;I did not blog for awhile but for a good reason. With october i got accepted into the 2nd best mathematics and computer science  faculty in Poland - Faculty of Fundamental Problems of Technology at the Wroclaw University of Technology, i did expect it to be hard, but not that hard though. During the semester i nearly quit working on any project including PLD.  At the end of the year I got badly sick and stopped learning too, I only remember waking up at 6 am going to the lectures, getting back home and sleeping. I'm feeling well since a week now, at least I passed all the exams.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;Yes, fonts.&lt;br /&gt;&lt;br /&gt;I am an amateur typographer, I like designing stuff, especially websites, but I have a dream of designing a newspaper one day, actually the idea of starting a newspaper was bugging me for a long time and that was the main reason I went into typography, anyway I need to have my fonts.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Widely available tools on linux apparently do not support the idea of having many fonts and organising them in a reasonable manner. I do not use many fonts at one time. At the moment I have 900 fonts loaded in X11 (820 TTF, 15 OTF, 65 Type1)  which is enough to make using them very uncomfortable. The font dialogs in Qt and in GIMP are one big mistake.  How the hell do you &lt;b&gt;comfortably&lt;/b&gt; select a font from 900 others in those dialogs? What about comparing fonts? Grouping them? Annotating them for heavens sake!&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;What if I wanted to choose from all the 2000 TTFs, 4742 Type1 and 150 OTFs I have on the HDD? Maybe I would need only 5 from them, I'd have to restart X11 several times to be able to preselect some of them and then (having limited the search to ca 50 fonts) I'd still have a hard time comparing between them with the tools that are widely available at the present time.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Not discouraged yet? We have a bonus especially for you sir, yes you! Take a look at your OTF font,  how is it displayed in your linux box? Let us take an example: Antykwa Toruńska (Torunian Antiqua). &lt;small&gt;A typeface designed by Zygfryd Gardzielewski - one of the most famous polish typographers - and cast in 1960 in Warsaw, usually used for printing accidenses, poetry and titularities. It was digitalised in 1996 by Polish Tex Users Group and is being maintained by Janusz Nowacki who is also the author of the OTF version. It is an extremely interesting free font, since it includes properly encoded latin, greek, vietnameese and cyryllic fonts as well as both nautic and normal numbers to mathematical symbols and other characters a professionaly designed font should have.&lt;/small&gt; It is available in PLD-linux as a package called fonts-OTF-AntykwaTorunska or for download &lt;a href="http://www.janusz.nowacki.strefa.pl/pliki/AntykwaTorunska-otf-2_02.zip"&gt; OTF version 2.01 zip&lt;/a&gt;. It is GPL'd, you can &lt;a href="http://www.janusz.nowacki.strefa.pl/torunska.html"&gt;see screenshots here&lt;/a&gt;.&lt;br /&gt;&lt;br/&gt;With TTF fonts you only get to see the name of the font on the font list right and you can choose the bold/regular/condensed/etc variants in a separate field right? Well with OTF fonts you don't. I call it uncomfortable, imagine having 150 OTF fonts with 5-10 variants of each of them and browsing them with the currently available dialogs.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;There are two other bugs. First and most annoying is the slowness of rendering asian characters on linux. Konqueror freezes for at least a minute while it waits for freetype to render them (check &lt;a href="http://sourceforge.jp"&gt;sf.jp&lt;/a&gt;, I have never tried Lycoris (they use Bistreams renderer instead of freetype) though, anyway its renderer is not freely available. Another thing with fonts under linux is fontconfig and matching the following screenshots will demonstrate everything:&lt;br /&gt;&lt;table&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;&lt;img src="http://gnu.univ.gda.pl/~djurban/verdana11.png" alt="Verdana 11pt"&gt;&lt;/td&gt;&lt;td&gt;&lt;img src="http://gnu.univ.gda.pl/~djurban/verdana12.png" alt="Verdana 12pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt; &lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;I had high hopes for Qt4 at some point, I really thought it would address the font problem, but apparently i was in error. Anyway good things about Qt4 - it is going to be GPL'd on Win32! This saves me a lot of work. Current TODO is simple for now: finish an evil project i signed an NDA about, finish and release opensource my CMS and make sure the Qt application for managing its content works on windows (mega thank you goes to the trolls for not making me rewrite the app on gtk) and now a new item - the font browser, maybe ill start working on it in Q4 2005.&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8967647-110779305296405613?l=djurban.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://djurban.blogspot.com/feeds/110779305296405613/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8967647&amp;postID=110779305296405613' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8967647/posts/default/110779305296405613'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8967647/posts/default/110779305296405613'/><link rel='alternate' type='text/html' href='http://djurban.blogspot.com/2005/02/linux-and-fonts-dont-mix-well.html' title='Linux and fonts don&apos;t mix well'/><author><name>djurban</name><uri>http://www.blogger.com/profile/15767322635106262771</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8967647.post-110147257039012180</id><published>2004-11-26T13:33:00.000+01:00</published><updated>2006-11-09T22:00:44.070+01:00</updated><title type='text'>A ROTFL is worth its day</title><content type='html'>13:25 &lt; George&gt; so who's responsible for fucking up my entire desktop?&lt;br /&gt;13:25 &lt; cartman&gt; Dirk Mueller whose karma outfucks you :P&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8967647-110147257039012180?l=djurban.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://djurban.blogspot.com/feeds/110147257039012180/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8967647&amp;postID=110147257039012180' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8967647/posts/default/110147257039012180'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8967647/posts/default/110147257039012180'/><link rel='alternate' type='text/html' href='http://djurban.blogspot.com/2004/11/rotfl-is-worth-its-day.html' title='A ROTFL is worth its day'/><author><name>djurban</name><uri>http://www.blogger.com/profile/15767322635106262771</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8967647.post-109935274664111792</id><published>2004-11-01T23:31:00.000+01:00</published><updated>2006-11-09T22:00:44.010+01:00</updated><title type='text'>Packaging thoughts</title><content type='html'>&lt;span style="font-weight: bold;"&gt;kde/koffice-i18n&lt;br /&gt;&lt;/span&gt;Packaging translations of KDE has always been a pain. In idea we can package the translations sorting them by language (which is relatively easy now) and by application.  KDE does not provide per application (ie. konquero-i18n, kdm-i18n) or even per module (kdelibs-i18n,kdebase-i18n) tarballs.&lt;br /&gt;To make the image worse, KDE-i18n is one big mess.  60% of build time is sensless directory changing due to the ac/am design of kde-i18n.  Add to that the fact that .pot files removed from templates dont imply removing .po files from translations, what results in 25-30 obsolete files per branch and +5 new obsolete ones every version. &lt;br /&gt;Migration to SVN and/or KDE4 should be a good moment to actually redesign kde-i18n.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;debian&lt;/span&gt;&lt;br /&gt;The debian subfolder in KDE CVS  is quite a nice feature, includes lists of installed files during&lt;span style="font-family: courier new;"&gt;&lt;span style="font-family: georgia;"&gt; make install, descriptions of installed applications, manpages for executables and stuff. I just do not understand why was it up to debian to make such info, actually KDE should have done it itself, anyways a big thank you to debian folks for that directory.&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8967647-109935274664111792?l=djurban.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://djurban.blogspot.com/feeds/109935274664111792/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8967647&amp;postID=109935274664111792' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8967647/posts/default/109935274664111792'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8967647/posts/default/109935274664111792'/><link rel='alternate' type='text/html' href='http://djurban.blogspot.com/2004/11/packaging-thoughts.html' title='Packaging thoughts'/><author><name>djurban</name><uri>http://www.blogger.com/profile/15767322635106262771</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8967647.post-109934290203688048</id><published>2004-11-01T22:58:00.000+01:00</published><updated>2006-11-09T22:00:43.857+01:00</updated><title type='text'>Introduction</title><content type='html'>This journal will be an English continuation of  my &lt;a href="http://djurban.jogger.pl"&gt;polish journal&lt;/a&gt;.  Maybe I will even move the polish version here.&lt;span class="" style="display: block;" id="formatbar_CreateLink" title="Link" onmouseover="ButtonHoverOn(this);" onmouseout="ButtonHoverOff(this);" onmousedown="CheckFormatting(event);FormatbarButton('richeditorframe', this, 8);ButtonMouseDown(this);"&gt;&lt;/span&gt;&lt;span class="down" style="display: block;" id="formatbar_CreateLink" title="Link" onmouseover="ButtonHoverOn(this);" onmouseout="ButtonHoverOff(this);" onmousedown="CheckFormatting(event);FormatbarButton('richeditorframe', this, 8);ButtonMouseDown(this);"&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8967647-109934290203688048?l=djurban.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://djurban.blogspot.com/feeds/109934290203688048/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8967647&amp;postID=109934290203688048' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8967647/posts/default/109934290203688048'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8967647/posts/default/109934290203688048'/><link rel='alternate' type='text/html' href='http://djurban.blogspot.com/2004/11/introduction.html' title='Introduction'/><author><name>djurban</name><uri>http://www.blogger.com/profile/15767322635106262771</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
