<?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-8686346</id><updated>2011-04-22T04:54:15.503+02:00</updated><title type='text'>Shyru's World</title><subtitle type='html'>This is my very own blog, where i will let you take a look into my life, and how i see the world.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://shyru.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8686346/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://shyru.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Shyru</name><uri>http://www.blogger.com/profile/00951184424622653396</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>29</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-8686346.post-117644823485316087</id><published>2007-04-13T09:06:00.000+02:00</published><updated>2007-04-13T18:34:50.453+02:00</updated><title type='text'>A blog for a journey to Peru</title><content type='html'>My wife and I are visiting Peru in may. Therefore I created a new blog (in german) to blog about the days in Peru. We'll also try to put up some photos during the journey to let  you stay entertained. :-)&lt;br /&gt;&lt;br /&gt;Here is the link:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.backtoperu.de"&gt;www.backtoperu.de&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8686346-117644823485316087?l=shyru.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shyru.blogspot.com/feeds/117644823485316087/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8686346&amp;postID=117644823485316087' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8686346/posts/default/117644823485316087'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8686346/posts/default/117644823485316087'/><link rel='alternate' type='text/html' href='http://shyru.blogspot.com/2007/04/blog-for-journey-to-peru.html' title='A blog for a journey to Peru'/><author><name>Shyru</name><uri>http://www.blogger.com/profile/00951184424622653396</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-8686346.post-115939678509424699</id><published>2006-09-28T00:36:00.000+02:00</published><updated>2006-09-28T00:57:23.853+02:00</updated><title type='text'>aKademy 2006: Plasma - The video</title><content type='html'>With one day delay, I'm now able to make the video of Aaron's talk available for everyone to download. Here is the link: &lt;a href="http://www.file-factory.de/downloads/aKademy2006-Plasma.avi"&gt;aKademy2006-Plasma.avi&lt;/a&gt;. Its a 136 MB download, 504x288 resolution, XviD encoded. Enjoy!&lt;br /&gt;&lt;img src="http://kb24.dnsalias.org/~daniel/blog/counter.php?page=plasmavideo" style="border:none"/&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8686346-115939678509424699?l=shyru.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shyru.blogspot.com/feeds/115939678509424699/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8686346&amp;postID=115939678509424699' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8686346/posts/default/115939678509424699'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8686346/posts/default/115939678509424699'/><link rel='alternate' type='text/html' href='http://shyru.blogspot.com/2006/09/akademy-2006-plasma-video.html' title='aKademy 2006: Plasma - The video'/><author><name>Shyru</name><uri>http://www.blogger.com/profile/00951184424622653396</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-8686346.post-115919318296036589</id><published>2006-09-25T16:02:00.000+02:00</published><updated>2006-09-25T16:06:22.960+02:00</updated><title type='text'>Goodbye Dublin!</title><content type='html'>So now my time in Dublin is over. Unfortunatly i had no time to finish yet another transcript, so you will have to wait until I'm back home. Perhaps i may prepare the next transcript at the airport, so i could publish it faster, but who knows...&lt;br /&gt;Having found my bus connection to the airport i have to say goodbye and walk to the central bus station. Hope that this time checking in will be not so problematic as in Frankfurt... :-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8686346-115919318296036589?l=shyru.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shyru.blogspot.com/feeds/115919318296036589/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8686346&amp;postID=115919318296036589' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8686346/posts/default/115919318296036589'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8686346/posts/default/115919318296036589'/><link rel='alternate' type='text/html' href='http://shyru.blogspot.com/2006/09/goodbye-dublin.html' title='Goodbye Dublin!'/><author><name>Shyru</name><uri>http://www.blogger.com/profile/00951184424622653396</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-8686346.post-115918517511905277</id><published>2006-09-25T13:50:00.000+02:00</published><updated>2006-09-25T15:58:39.876+02:00</updated><title type='text'>Time to eat something</title><content type='html'>We will make a photo shooting at 2pm, and i want to eat something beforehand. So i will now make a small break and get something to eat. I still have some transcripts on my disk: KDevelop, KickOff and the C# bindings talk. - Stay tuned!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8686346-115918517511905277?l=shyru.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shyru.blogspot.com/feeds/115918517511905277/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8686346&amp;postID=115918517511905277' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8686346/posts/default/115918517511905277'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8686346/posts/default/115918517511905277'/><link rel='alternate' type='text/html' href='http://shyru.blogspot.com/2006/09/time-to-eat-something.html' title='Time to eat something'/><author><name>Shyru</name><uri>http://www.blogger.com/profile/00951184424622653396</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-8686346.post-115918455358010409</id><published>2006-09-25T13:14:00.000+02:00</published><updated>2006-09-25T13:49:30.466+02:00</updated><title type='text'>aKademy 2006: Performance techniques</title><content type='html'>This talk was held by our optimizer, Lubos Lunak.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;KDE Performance&lt;/b&gt;&lt;ul&gt;&lt;li&gt;Is not that good&lt;/li&gt;&lt;li&gt;Windows 95 is so much faster&lt;/li&gt;&lt;li&gt;and dont let me get started on &lt;a href="http://en.wikipedia.org/wiki/Jetpac"&gt;JetPac&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;As you see we have to compare us with something of our power:&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Is not that bad either&lt;/b&gt;&lt;ul&gt;&lt;li&gt;we are not noiceable worse thatn comparable competition&lt;/li&gt;&lt;li&gt;in fact, we are even often better&lt;/li&gt;&lt;li&gt;theres incomparable competition&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;So, no need to be very nervous, but we can still improve&lt;br /&gt;&lt;br /&gt;&lt;b&gt;KDE's performance is bad because:&lt;/b&gt;&lt;ul&gt;&lt;li&gt;Some libraries we use are bad&lt;/li&gt;&lt;li&gt;dynamic linker (shared libs) is bad (prelinking does not help much)&lt;/li&gt;&lt;li&gt;I/O performance is bad&lt;/li&gt;&lt;li&gt;really stupid mistakes are bad (e.g. he noticed that kicker would easily use 16 MB of memory, then he found out that the pager which could show the background in the pager cashed all background images in the original size, not the scaled down size)&lt;/li&gt;&lt;li&gt;many small things add up&lt;/li&gt;&lt;li&gt;nice things are sometimes not fast (kconfig is nice, but it is rather slow to parse all the text-files)&lt;/li&gt;&lt;li&gt;unneeded things are done (sometime ago kate created the find and replace dialog on startup)&lt;/li&gt;&lt;li&gt;initial resource usage is large because our framework is large (libraries, but that pays off when you start more applications)&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;What to do&lt;/b&gt;&lt;ul&gt;&lt;li&gt;find the problem&lt;/li&gt;&lt;li&gt;analyze the problem&lt;/li&gt;&lt;li&gt;do NOT guess&lt;/li&gt;&lt;li&gt;measure&lt;/li&gt;&lt;li&gt;verify assumptions&lt;/li&gt;&lt;li&gt;speed: cachegrind, sysprof&lt;/li&gt;&lt;li&gt;memory: exmap, xrestop, kmtrace&lt;/li&gt;&lt;li&gt;fix the problem&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;On-demand initializtion&lt;/b&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/4487/601/1600/resized_performance_initialization.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/4487/601/320/resized_performance_initialization.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br clear="all"/&gt;&lt;br /&gt;&lt;b&gt;Caching&lt;/b&gt;&lt;br /&gt;Don't do the same ting over and over again. Save the result somewhere, check that the input hasnt changed. (e.g ksycoca)&lt;br /&gt;We do many things during startup of every kde application:&lt;br /&gt;kconfig, qsettings are rather inefficient, some things are repeated by every application.&lt;br /&gt;Bottom line: We need to make more use of caching!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;I/O performance #1&lt;/b&gt;&lt;br /&gt;Time for this years quiz:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/4487/601/1600/resized_performance_io.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/4487/601/320/resized_performance_io.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Which is faster?&lt;br /&gt;&lt;br /&gt;=&gt; Disk seeks are very slow (~10ms for every seek)&lt;br /&gt;&lt;br clear="all"/&gt;&lt;br /&gt;&lt;b&gt;I/O performance #2&lt;/b&gt;&lt;ul&gt;&lt;li&gt;Try to avoid many small files&lt;/li&gt;&lt;li&gt;create single cache file at build time&lt;/li&gt;&lt;li&gt;create a single cache file at runtime&lt;/li&gt;&lt;li&gt;dont forget watching for changes&lt;/li&gt;&lt;li&gt;on demand loading (konsole is loading all color-schemes on startup, although that would not be neccessary)&lt;/li&gt;&lt;li&gt;kernel could(?) help&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;Other tips: Cheat! - Seriously :) Show progress (use a splashscreen, show messages or whatever), provide early feedback, optimize the common case, optimize big bottlenecks.&lt;br /&gt;&lt;br /&gt;Many small things add up, we are large and complex.&lt;br /&gt;&lt;blockquote&gt;Hundred times nothing tormented the donkey to death&lt;/blockquote&gt; "slovak proverb"&lt;br /&gt;Time goes on,this kde wil never rund on 16 MB RAM.&lt;br /&gt;We need to compare with comparable competition (We are never a match for xedit or WindowMaker)&lt;br /&gt;We have to live with that. There is a limit that cannot reasonably be reached without significantly reducing features. We could cut the things that slow us down, but would have to sacrifice many features.&lt;br /&gt;&lt;span style="font-style:italic;"&gt;Would that be still KDE?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Some question which where raised afterwards:&lt;br /&gt;Question: When we switch to SVG-icons, how can we make sure that the performance stays ok?&lt;br /&gt;Answer: We need to cache the generated pngs and probably put them into one big file, to improve the "many small files" situation. (Gnome already does that).&lt;br /&gt;Someone talks about using the Qt Resource system to load arbitrary data (like icons etc.) into one library and then have the kde4 application link to that and get the whole data faster, because it should already be in memory. Lubus Lunak did not like that idea that much because of the overhead of a library. He prefers to create specialized cache files, and that should be even faster.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Personal comment: This was very interesting, and i hope that KDE4 can do something in the "many small files"-area, and create cache files containing all icons of the current icon set, or caching the configuration of the user into one big file, etc.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8686346-115918455358010409?l=shyru.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shyru.blogspot.com/feeds/115918455358010409/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8686346&amp;postID=115918455358010409' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8686346/posts/default/115918455358010409'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8686346/posts/default/115918455358010409'/><link rel='alternate' type='text/html' href='http://shyru.blogspot.com/2006/09/akademy-2006-performance-techniques.html' title='aKademy 2006: Performance techniques'/><author><name>Shyru</name><uri>http://www.blogger.com/profile/00951184424622653396</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-8686346.post-115918267564937846</id><published>2006-09-25T12:23:00.000+02:00</published><updated>2006-09-25T13:11:15.663+02:00</updated><title type='text'>aKademy 2006: State of KHTML</title><content type='html'>This talk was held by George Staikos.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;The history of KHTML&lt;/b&gt;&lt;br /&gt;&lt;img style="display:block; margin:0px auto 10px;" src="http://photos1.blogger.com/blogger/4487/601/320/khtml_history.jpg" border="0" alt="" /&gt;&lt;br /&gt;&lt;br /&gt;The Safari fork was very popular (as you see on the forks)&lt;br /&gt;Merging back into KHTMLr2 was not very good (big patches dumped from them)&lt;br /&gt;&lt;br /&gt;Unity was the experiment to bring WebKit back to KDE&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Why KHTML is important&lt;/b&gt;&lt;br /&gt;KHTML is _critical_ to the success of KDE!&lt;ul&gt;&lt;li&gt;Provides a fast, light web browser and&lt;/li&gt;&lt;li&gt;component that tightly integrates with KDE&lt;/li&gt;&lt;li&gt;Gives us higher visibility as a procject: "the web" is much larger than linux&lt;/li&gt;&lt;li&gt;great test environment&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;What we have:&lt;/b&gt; (He shows a slide with all the standards KHTML implements and says:)&lt;br /&gt;&lt;blockquote&gt;The web in general&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;What we dont have&lt;/b&gt;&lt;ul&gt;&lt;li&gt;internal SVG support&lt;/li&gt;&lt;li&gt;Latest NSPlugin API support&lt;/li&gt;&lt;li&gt; XBL&lt;/li&gt;&lt;li&gt;Content Editable&lt;/li&gt;&lt;li&gt;DOM bindings to non-C++/non-JS&lt;/li&gt;&lt;li&gt;Opacity (Qt4 should help)&lt;/li&gt;&lt;li&gt;Lightweight widgets (lots of widgets on a page can really slow down KHTML)&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;KHTML - From the industry&lt;/b&gt;&lt;br /&gt;Great alternative to Cecko and Opera - small, fast, easy to understand, standards compliant. In use in many embedded platforms as well as dekstop browsers, Safari, Nokia, Omni. But: Forking is a problem.&lt;br /&gt;Currently gaining respect from tother browser vendors, could become a major player with enough "unity" &gt;= 10% market share.&lt;br /&gt;KHTMl is also gaining industry respect (Microsoft regularly contacting KHTML developers, also Firefox developers, Google etc.)&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Can we complete the "merge"?&lt;/b&gt;&lt;ul&gt;&lt;li&gt;"Merging" is not really feasible at this point&lt;/li&gt;&lt;li&gt;Unity - a port of WebKit to Qt4:&lt;ul&gt;&lt;li&gt;Kpart, KIO development is underway&lt;/li&gt;&lt;li&gt;Can co-exist with KHTML from KDE&lt;/li&gt;&lt;li&gt;Works "now"&lt;/li&gt;&lt;li&gt;Abstraction layer in WebKit makes it relativley easy to port&lt;/li&gt;&lt;li&gt;Open questions: How do we avaoid re-forking? How do we merge our own work?&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;If we go Unity, What do we gain?&lt;/b&gt;&lt;ul&gt;&lt;li&gt;Support for many of the functions we lack as described earlier - XBL content editable, etc&lt;/li&gt;&lt;li&gt;Bub for bug compatibility with many major browsers (This is important for industry acceptance, because they do not want to test their applications for gazillions of different browsers)&lt;/li&gt;&lt;li&gt;More developer resources&lt;/li&gt;&lt;li&gt;larger user base for testing and bug reporting (they have some great people which just create test cases for all forms of bugs)&lt;/li&gt;&lt;li&gt;easier embedding in Qt-only apps&lt;/li&gt;&lt;li&gt;Portability - the best win32 port?&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;What do we lose?&lt;/b&gt;&lt;ul&gt;&lt;li&gt;Some possible trade offs in bug fixes and performance (work recently done by Maksim, Germain, Allan)&lt;/li&gt;&lt;li&gt;Some flexibility in development model (we need to work as a team with nokia, apple, etc)&lt;/li&gt;&lt;li&gt;Complete authority over the codebase&lt;/li&gt;&lt;li&gt;Some functionality needs rewrite (form widgets, java applets, nsplugins, wallet, KDE integration)&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;He also wants to embrace us working more with the working groups:&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Working with working groups&lt;/b&gt;&lt;ul&gt;&lt;li&gt;W3C-Security (George has taken part of it)&lt;/li&gt;&lt;li&gt;The W3C is constantyl approaching him and want that we be more part of it&lt;/li&gt;&lt;li&gt;WhatWG - HTML5 (this is really great and we should be activly taking part of it!)&lt;/li&gt;&lt;li&gt;KHTML/WebKit meetings (he takes part there all 3-4 months)&lt;/li&gt;&lt;li&gt;Plugin Features (new plugin API, very important, George has no time for it)&lt;/li&gt;&lt;li&gt;SVG&lt;/li&gt;&lt;li&gt;Browser testing organization (Mozilla is forming this right now, we could participate, we would benefit from it greatly)&lt;/li&gt;&lt;li&gt;JavaScript as standard programming language (is more and more used in MacOSX, we have KJSEmbed and are also embracing it, Plasma will use it as standard language for plasmoids for example)&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Discussion&lt;/b&gt;&lt;ul&gt;&lt;li&gt;Do we want to pursue WebKit/Unity? (if so, how do we approach it? what will the impact be on our community?)&lt;/li&gt;&lt;li&gt;How do we avoid losing our own work&lt;/li&gt;&lt;li&gt;How do we ensure that we are equal players in a joint effort with Apple, Nokai and others?&lt;/li&gt;&lt;li&gt;How can we grow developer-interest without cannibalizing our existing developer base?&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;Question: What was it with the performance patches done? (which are not in WebKit/Unity)&lt;br /&gt;Answer: CSS optimizations by Allen, New caching done by maxim&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Personal comment: I think Unity is a great idea and i think we would all benefit from going this route in the long run, although we would loose some features of the current KHTML.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8686346-115918267564937846?l=shyru.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shyru.blogspot.com/feeds/115918267564937846/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8686346&amp;postID=115918267564937846' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8686346/posts/default/115918267564937846'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8686346/posts/default/115918267564937846'/><link rel='alternate' type='text/html' href='http://shyru.blogspot.com/2006/09/akademy-2006-state-of-khtml.html' title='aKademy 2006: State of KHTML'/><author><name>Shyru</name><uri>http://www.blogger.com/profile/00951184424622653396</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-8686346.post-115917980724665667</id><published>2006-09-25T12:11:00.000+02:00</published><updated>2006-09-25T12:23:27.263+02:00</updated><title type='text'>aKademy 2006: Decibel - You are not alone</title><content type='html'>This talk was held by Tobias Hunger from &lt;a href="http://www.basyskom.com"&gt;basysKom&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;First he explained shortly that Decibel will be a real time communications framework.&lt;br /&gt;&lt;br /&gt;What is real time communication?&lt;ul&gt;&lt;li&gt;Instant messageing&lt;/li&gt;&lt;li&gt;voIP/Video conferencing&lt;/li&gt;Computer Telephone Integration (CTI) (Using software to autodial the telephone for example)&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;Why a framework?&lt;ul&gt;&lt;li&gt;communications is one of the fundamental uses casess of computers&lt;/li&gt;&lt;li&gt;integrated communication is a prerequisite of collaboration&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Which technologies exist?&lt;br /&gt;Telepathy is an RT communications infrastructure: Defines DBus interfaces to access RT communication services (desktop independant, low level API, hosted at freedestkop.org)&lt;br /&gt;Implementation of jabber protocol available, used in existing products. - Gnome is heading in this direction.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Connection Manager&lt;/b&gt; (implements protocols)&lt;br /&gt;Connections are created by the connection manager (represents one connection to a server/service)&lt;br /&gt;In such a connection you have one or more channels of data which may be transported over the connection (for example presence, and chat in IM)&lt;br /&gt;&lt;br /&gt;Tapioca used to be an infrastructure competing with Telepathy. Today the implement the Telepathy spec.&lt;ul&gt;&lt;li&gt;Qt Binding for telepathy with raw DBus bindings&lt;/li&gt;&lt;li&gt;convienience wrapper QTapioca&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;The question that remains: What will decibel add to this on top?&lt;br /&gt;&lt;br /&gt;One of Decibel central parts is &lt;b&gt;Housten:&lt;/b&gt;&lt;ul&gt;&lt;li&gt;Provides desktop independent DBus interfaces to high level RT communication features&lt;/li&gt;&lt;li&gt;Persistently stores user data (accounts, preferences etc)&lt;/li&gt;&lt;li&gt;starts/stops connectionMAnagers as required&lt;/li&gt;&lt;li&gt;starts/stops dekstop dependent components as required (image)&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Houston consists of 3 parts:&lt;ul&gt;&lt;li&gt;AccountManager (stores users account data in central place (connectivity, visibility information, privacy information)&lt;/li&gt;&lt;li&gt;ProtocolManager (holds a list of connectionmanagers installed with supported protocols, selects connection manger to use for a protocol, stores preferred connectionmanagers)&lt;/li&gt;&lt;li&gt;ComponentManager (is registry of components, stores the users preferences on which component is supposed to handle which kind of channel, is notified on new channel events, deicdes what to do with a new channel by deciding on which component to use to handle it)&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Desktop Components&lt;/b&gt; are specialized applications started by houston&lt;ul&gt;&lt;li&gt;desktop specific&lt;/li&gt;&lt;li&gt;handle one specific task well&lt;/li&gt;&lt;li&gt;work in concert with housten and other components&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Status:&lt;/b&gt; (Or where is the code?)&lt;br /&gt;He says "We are behind schedule". :-(&lt;br /&gt;&lt;br /&gt;But we got some things done already:&lt;ul&gt;&lt;li&gt;Qt bindings to Telepathy were missing (done)&lt;/li&gt;&lt;li&gt;QtTapioca was launched to make wrinting applications like Houste easier (in progress)&lt;/li&gt;&lt;li&gt;Housten implementation (started)&lt;/li&gt;&lt;li&gt;KDE specific components (todo)&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;There will be a Bof-Session with the Telepathy/Decibel/Kopete people to further bring this along.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Personal comment: Well this sounds really interesting but i hope that the kopete developers can agree on this and that they somehow can reuse most of the code they have written over the time for kopete.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8686346-115917980724665667?l=shyru.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shyru.blogspot.com/feeds/115917980724665667/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8686346&amp;postID=115917980724665667' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8686346/posts/default/115917980724665667'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8686346/posts/default/115917980724665667'/><link rel='alternate' type='text/html' href='http://shyru.blogspot.com/2006/09/akademy-2006-decibel-you-are-not-alone.html' title='aKademy 2006: Decibel - You are not alone'/><author><name>Shyru</name><uri>http://www.blogger.com/profile/00951184424622653396</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-8686346.post-115912065177857669</id><published>2006-09-24T19:56:00.000+02:00</published><updated>2006-09-24T20:12:51.093+02:00</updated><title type='text'>aKademy 2006: Akonadi - The KDE4 PIM Framework</title><content type='html'>This talk was held by Tobias Koenig.&lt;br /&gt;&lt;br /&gt;He started with the following:&lt;br /&gt;The 3 biggest mistakes made in human computer history:&lt;ul&gt;&lt;li&gt;There will not be more then 10 computers in the world&lt;/li&gt;&lt;li&gt;Nobody will need more than 640k of RAM&lt;/li&gt;&lt;li&gt;Nobody will save more than 100 contacts in an adress book. (This one was made by me, 3 years ago)&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;In summary he explained the following points:&lt;br /&gt;Why a new PIM Framework?&lt;br /&gt;Akonadi (History, Concepts, Curent State, The Future)&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Problems with old framework:&lt;/b&gt;&lt;br /&gt;Bad Performance. (All data was loaded into memory. Thats good for local files, but when accessing groupware servers this takes the application down)&lt;br /&gt;Synchronous Access. (Again, no problem for local files because this is fast anyway, but problematic for remote data)&lt;br /&gt;Memory Consumption.&lt;br /&gt;Missing Notifications. (The other applications did not know about changes in resources other than file resources)&lt;br /&gt;Missing locking. (Very problematic when you want to synchronize data, because other processes could change the data while you where synchronizing)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Akonadi:&lt;/b&gt;&lt;br /&gt;A general storage for PIM data that aims to solve the problems of kabc/kcal with a modular design for robustness and easy integration.&lt;br /&gt;&lt;br /&gt;The first ideas of a PIM daemon came up at Osnabrück meeting 2005. Sample code for address book daemon was created, but was not welcomed very good by developers. But one year later: General agreement for PIM service at Osnabrück meeting 2006. - "Akonadi" was born&lt;br /&gt;&lt;br /&gt;Akonadi is a service compromised of two processes:&lt;br /&gt;The storage (interfaced with IMAP) and the Control process with a DBus interface&lt;br /&gt;&lt;br /&gt;libakonadi wraps the service and imap connection and provides an easy to use interface. Ontop of that, some small wrapper libraries like libkabc and libkcal exist. The applications will use this&lt;br /&gt;libraries directly.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;The storage:&lt;/b&gt;&lt;ul&gt;&lt;li&gt;Accessible via extended IMAP =&gt; high performance on data delivery (IMAP was invented for that, but until now only used for mail)&lt;/li&gt;&lt;li&gt;Caches all PIM items of the resources (depending on policy, eg. groupware data is cached, local files likely not)&lt;/li&gt;&lt;li&gt;Informs the control-process about changes&lt;/li&gt;&lt;li&gt;Provides basic search features (IMAP)&lt;/li&gt;&lt;li&gt;delegates extended search requests to SearchProviders&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;The resources:&lt;/b&gt;&lt;ul&gt;&lt;li&gt;Applications wich synchronize data between the storage and an external data source (eg. groupware server or file) (This improves stability because a crashing resource does not take the whole system down)&lt;/li&gt;&lt;li&gt;Asyncronous communication&lt;/li&gt;&lt;li&gt;Profiles for grouping resources together (allows different views for normal viewing and synchronization)&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;The control-process&lt;/b&gt;&lt;ul&gt;&lt;li&gt;Starts and monitors the Storage and resource process (resource processes are automatically restarted on crashes)&lt;/li&gt;&lt;li&gt;Provides D-Bus API for managing resources and profiles&lt;/li&gt;&lt;li&gt;Another library proxies this DBus-API into a library for application's use&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;The SearchProivders&lt;/b&gt;&lt;ul&gt;&lt;li&gt;External applications which process more complex search queries&lt;/li&gt;&lt;li&gt;One SearchProvider for every PIM item type&lt;/li&gt;&lt;li&gt;Store search results in collections inside the Storage&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Collections&lt;/b&gt;&lt;ul&gt;&lt;li&gt;Virtual containers inside the Storage&lt;/li&gt;&lt;li&gt;Contain PIM items/references&lt;/li&gt;&lt;li&gt;Root collection "/"&lt;/li&gt;&lt;li&gt;Every Resource provides at least one collection&lt;/li&gt;&lt;li&gt;Easy to realize virtual folders&lt;/li&gt;&lt;li&gt;/resource1&lt;br /&gt;/resource1/calendar&lt;br /&gt;/resource1/addressbook&lt;br /&gt;/resource2&lt;br /&gt;/search&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Current State&lt;/b&gt;&lt;ul&gt;&lt;li&gt;Storage (provides all needed IMAP commands), stores items in collections&lt;/li&gt;&lt;li&gt;Control (lifetime managment for storage and resources already working, DBus API nearly completed)&lt;/li&gt;&lt;li&gt;Resources (Simple iCaldenar file, dummy resource "Knut")&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;[Demo]&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Todo&lt;/b&gt;&lt;ul&gt;&lt;li&gt;Implementing SearchProviders&lt;/li&gt;&lt;li&gt;Defining asynchronous client library (libakonady nearly done)&lt;/li&gt;&lt;li&gt;Implementing full featured resources (remote and local file)&lt;/li&gt;&lt;li&gt;Writing documentation&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;The future:&lt;/b&gt;&lt;br /&gt;Goal: Components based PIM library where you create new applications just by gluing together components. Components meant as standalone views and editors of PIM data. Plasma applets for calendar and address book are also possible.&lt;br /&gt;&lt;br /&gt;After that a little bit heated debate arose with the general question: Why not reuse existing technologies like LDAP or something else. Also concers where raised that the SearchProviders are seperate processes, and that would hinder performance.&lt;br /&gt;&lt;br /&gt;Personal opinion: To say it the hard way: I was a little bit disapointed of this talk, and I'm also disappointed about akonadi. Don't misunderstand me: Its still a good concept, but i think some bits are missing still and they should consider to redesign some parts of it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8686346-115912065177857669?l=shyru.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shyru.blogspot.com/feeds/115912065177857669/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8686346&amp;postID=115912065177857669' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8686346/posts/default/115912065177857669'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8686346/posts/default/115912065177857669'/><link rel='alternate' type='text/html' href='http://shyru.blogspot.com/2006/09/akademy-2006-akonadi-kde4-pim.html' title='aKademy 2006: Akonadi - The KDE4 PIM Framework'/><author><name>Shyru</name><uri>http://www.blogger.com/profile/00951184424622653396</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-8686346.post-115911997670622795</id><published>2006-09-24T19:40:00.000+02:00</published><updated>2006-09-24T19:52:05.603+02:00</updated><title type='text'>aKademy 2006: Multi-Head RandR</title><content type='html'>This talk was held by our all time X-hero Keith Packard.&lt;br /&gt;He titled it "Hotpluggy Sweetness". Basically, they want Monitors and input devices to be fully pluggable.&lt;br /&gt;&lt;br /&gt;First he showed the history of x and screen and how this all involved:&lt;br /&gt;&lt;br /&gt;Core-X does support multiple screens.&lt;br /&gt;When the x-server starts it detects the monitors (through DDC) and then starts all up. - After that it does not change. -Ever.&lt;br /&gt;&lt;br /&gt;Screen info is passed at X startup. (static arrays allocated in Xlib)&lt;br /&gt;Adding screens is really hard. Many resources are per-screen (Windows, Pixmaps, etc)&lt;br /&gt;(Long ago screens had different capabilities (color depth etc,) but today we do not have that anymore, so much of the assumptions made earlier, dont make sense anymore)&lt;br /&gt;&lt;br /&gt;Xinerama:&lt;br /&gt;Merge monitors into one "screen". Allows applications to move from one monitor to the other.&lt;br /&gt;But: Screen configuration fixed at startup. That is suitable for fixed multi-head environments, but not for todays requirements with notebooks etc.&lt;br /&gt;Also: The Initial implementation was very inefficient (all applications are replicated on all graphic cards, sucks many memory).&lt;br /&gt;&lt;br /&gt;Changing Modes&lt;br /&gt;Xfree86-VidModeExtension.&lt;br /&gt;Change monitor on the fly, also exposes gamma correction&lt;br /&gt;But: screen-size still fixed at startup because of static configuration files, set of possible modes fixed at startup&lt;br /&gt;&lt;br /&gt;Changing Screen Size&lt;br /&gt;RandR: Resize and Rotate extension.&lt;br /&gt;Allows run-time changes to screen size (fixed set of sizes and monitor modes as present in the configuration files). A mode is expressed as size and refresh only. This was the first extension to break existing applications because of the changing the screen size.&lt;br /&gt;&lt;br /&gt;Now on for the real: Hotpluggy Sweetness&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Add/remove monitors dynamically&lt;/li&gt;&lt;li&gt;Extend desktop across new monitor&lt;/li&gt;&lt;li&gt;Expose full system capabilites to applications&lt;/li&gt;&lt;li&gt;Blend Xinerama, Xfree86-VidModeExtension and RandR&lt;/li&gt;&lt;li&gt;World Domination :-)&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;This new thing is based on three "things:&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Screen - Core X screen&lt;/b&gt; (Accept static screen count, there need be only one)&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Crtc - CRT Controller&lt;/b&gt; (Scan-out portion of X screen, Contains one mode [All todays graphic cards support more than one monitor, but only one mode!] )&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Outputs&lt;/b&gt; (Drive monitors, Connected to CRTC)&lt;br /&gt;&lt;br /&gt;Then he went on showed the commandline tool randr12 which allowed to view the current state and also change the above three things on the fly. It worked really well and looked sweet.&lt;br /&gt;&lt;br /&gt;When beeing asked when this could be in X.Org, he said probably X.Org 7.3&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Personal comment: This is really great stuff and i cant wait for X.Org 7.3 to appear!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8686346-115911997670622795?l=shyru.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shyru.blogspot.com/feeds/115911997670622795/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8686346&amp;postID=115911997670622795' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8686346/posts/default/115911997670622795'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8686346/posts/default/115911997670622795'/><link rel='alternate' type='text/html' href='http://shyru.blogspot.com/2006/09/akademy-2006-multi-head-randr.html' title='aKademy 2006: Multi-Head RandR'/><author><name>Shyru</name><uri>http://www.blogger.com/profile/00951184424622653396</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-8686346.post-115911944575366553</id><published>2006-09-24T19:19:00.000+02:00</published><updated>2006-09-24T19:38:48.066+02:00</updated><title type='text'>aKademy 2006: Phonons in Solids</title><content type='html'>Note: I cannot get fish:// working correctly through this network (connection breaks everytime i try to upload something) so i could not upload the images mentioned in the text. So you have to live without those images. - Sorry.&lt;br /&gt;&lt;br /&gt;This talk was held by Matthias Kretz (phonon) and Kevin Ottens (solid).&lt;br /&gt;&lt;br /&gt;First the explained the common architecture which they both use. After that the explained solid and phonon further.&lt;br /&gt;&lt;br /&gt;&lt;h4&gt;Common Achitecture Pattern&lt;/h4&gt;&lt;br /&gt;Requirements:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Cross-project collaboration ("multimedia is not our business")&lt;/li&gt;&lt;li&gt;Release cycles and Binary compatiblity (other projects work for fun to, dont want to force our own cycles and rules)&lt;/li&gt;&lt;li&gt;Flexilibilty: provide choice to users and distrubuors, switch subsystems on the fly&lt;/li&gt;&lt;li&gt;Portability: new porting concerns (non-free platform hint hint windows) allow to do it&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;Solution: Frontend/Backend split (Loose coupling with other projects. Gain portability, flexibility and binary compatibility)&lt;br /&gt;&lt;br /&gt;General Pattern: (see image)&lt;br /&gt; &lt;br /&gt;Allows binary compatible frontend classes&lt;br /&gt;&lt;br /&gt;Even live backend switching will be possible: frontend is signaled to switch, frontend tells all frontend objects to save state and delete their backend object, then load the new backend and reload the state with the state objects.&lt;br /&gt;&lt;br /&gt;The question that remains is: How should this all be impelemented?&lt;br /&gt;&lt;br /&gt;&lt;h5&gt;Interface Based Approach&lt;/h5&gt;Pros: Enforce compile time checking, easy to document, fast method calls&lt;br /&gt;Cons: BC concerns on the backend side, multiple inheritance, several pointers to the backend class, you cant have a qwidget in the inheritance tree&lt;br /&gt;&lt;br /&gt;&lt;h5&gt;Introspection based Approach&lt;/h5&gt;Pros: No BC concnerns, no need to maintain two sets of classes (frontend &amp; interfaces), free to partially implement a backend class&lt;br /&gt;Cons: no compile time checking, requires more work for explaining backend writing (no interface classes to document with doxygen, slower method calls (invokeMethod() has overhead with string parsing/comparision)&lt;br /&gt;&lt;br /&gt;&lt;h5&gt;Qt to the Rescue&lt;/h5&gt;(image)&lt;br /&gt;Declaring and Implementing Q_INTERFACES&lt;br /&gt;Uses the Q_DECLARE_INTERFACE makro.&lt;br /&gt;&lt;br /&gt;The frontend class has a QObject * member m_iface pointing to the backend object. (image?)&lt;br /&gt;&lt;br /&gt;&lt;h4&gt;Solid&lt;/h4&gt;Why?&lt;br /&gt;To fix the current situation. In KDE3 we have:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;different hardware discovery (media manager, medianotifier)&lt;/li&gt;&lt;li&gt;network managment (knetworkmanager, kwifimanager)&lt;/li&gt;&lt;li&gt;power management (kpowersave, klaptop, sebas' powermanager...)&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;This sucks becaue it is so diverse.&lt;br /&gt;New use cases are now. bluetooth is already here, hardware is much more modular(pluggable) (usb/pcmcia,hotswap, etc.)&lt;br /&gt;&lt;br /&gt;Solid will have several domains: hardware discovery, power &amp; network managment.&lt;br /&gt;And then solid has policy agents: knetworkmanager mediamanger already there. They are resoponsible to interact with the user and provide a library to access the hardware.&lt;br /&gt;&lt;br /&gt;From solid's Point of View:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Report as many hardware facts as possible&lt;/li&gt;&lt;li&gt;no device interaction&lt;/li&gt;&lt;li&gt;storage is the only exception&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Domain specific interaction should be done in domain specifi code (playing music &gt; phonon, printer &gt; kdeprint, etc)&lt;br /&gt;&lt;br /&gt;Hardware discovery (image)&lt;br /&gt;&lt;br /&gt;Following some examples how easy it is to use it. &lt;br /&gt;&lt;br /&gt;Powermanagement has one central class: PowerManager this takes care of all things related to powermanagment. (Throttle the CPU, darken the display, spin down the harddisk, etc)&lt;br /&gt;It has useful signals signaling when the batterystate changed or something else&lt;br /&gt;&lt;br /&gt;Hardware Discovery works in three levels:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;First: DeviceManager, subsystem, device listing, creates Device&lt;/li&gt;&lt;li&gt;Second: Device: Parent /Child relationship, basic informations, is factory for Capabilites&lt;/li&gt;&lt;li&gt;Third. Capabalities, provide specific informations about the capabilities of a device&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;Current state:&lt;br /&gt;Hardware discovery and network management is almost done, a few features for system statistics, need more applications using it.&lt;br /&gt;Policy agents: porting medianotifier, knetworkmanager and friends (target for the coding marathon)&lt;br /&gt;Backend: everything required for linux like systems is done, more backends need to be written for other systems&lt;br /&gt;&lt;br /&gt;&lt;h4&gt;Phonon&lt;/h4&gt;Motivation: (the users perspective)&lt;br /&gt;&lt;ul&gt;&lt;li&gt;A user should be able to play back media without any configuration&lt;/li&gt;&lt;li&gt;"Power users" want great flexibility&lt;/li&gt;&lt;li&gt;additional multimedia hardware (think usb-headset) should be available to all applications without any further steps&lt;/li&gt;&lt;li&gt;Users need to decide what device use for what purpose/program&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;(the developers perspective)&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Qt/KDE style api&lt;/li&gt;&lt;li&gt;developers need APIs that are straight forward and easy to use&lt;/li&gt;&lt;li&gt;applications need multimedia API which also works on completly different platforms (think MacOsX, Windows)&lt;/li&gt;&lt;li&gt;ABI/API changes in multimedia framworks should not hinder KDE to use the newest mediaframework&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Core classes (image)&lt;br /&gt;&lt;br /&gt;Phonon Audio player: A very easy to use class called AudioPlayer, that provides enough features to be used by Juk. It provides methods to play() a KURL or prelod a file and then play it back later with smaller latency. Pause() Stop() and Seek() methods provide all that is needed for basic audio playing support in applications.&lt;br /&gt;Example: (image 2228)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The VideoPlayer class functions nearly the same, the only difference is, that it is a QWidget and you can embed it everywhere you like.&lt;br /&gt;Example: (image 2229)&lt;br /&gt;&lt;br /&gt;But modern audo players want more. (gapless playback, crossfades, equalizer, brightness controls, audio visualizations, etc).&lt;br /&gt;For this use cases, the PhononMediaQueue comes into play. It allows to preload the next file (for crossfades) and use the Effects API to do other things.&lt;br /&gt;&lt;br /&gt;Currently there are 3 and a half backend implementations: NMM, Xine, avKode and Fake. &lt;br /&gt;NMM is the one which is likely to be most feature complete, because it is the only to provide recording for the AvCapture part of phonon. I also has already support to stream data over KIO so any valid KUrl may be used for media playback.&lt;br /&gt;Xine is the one which gets out results really quickly, but will never be as complete since recording is missing completely. avKode was a Sommer of Code project and is based on ffmpeg and mencode(?)&lt;br /&gt;&lt;br /&gt;In the following Matthias explained how the xine backend is implemented (as it is him who implements it) and shows the challenges he faced.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Todo list: (existing backends can only do simple playback, no more)&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Implement Xine::ByteStream for KIO Urls&lt;/li&gt;&lt;li&gt;Xine video breaks because it wants XThreads&lt;/li&gt;&lt;li&gt;NMM nees a VideoWidget implementation&lt;/li&gt;&lt;li&gt;AvCapture API needs to be finished implemented&lt;/li&gt;&lt;li&gt;Effects (EQ, Fader, Compressor, etc)&lt;/li&gt;&lt;li&gt;Phonon-Gstreamer anyone?&lt;/li&gt;&lt;li&gt;KIO Seeking in MediaObject&lt;/li&gt;&lt;li&gt;(good) user interface for phonon configuration&lt;/li&gt;&lt;li&gt;Network API: VoIP&lt;/li&gt;&lt;li&gt;DVD/TV support, chapters&lt;/li&gt;&lt;li&gt;OSD (video overlay)&lt;/li&gt;&lt;li&gt;device listing (how to get alsa device list?)&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;As you see, there is still lots of things to do, so please consider joining the efforts! &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Personal Comment: I really appreciate the work the two guys do, and I am full of hope that for KDE4 the "plug and play" for hardware and audio will "just work", and provide a convienient, unified and straigth forward interface to the user.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8686346-115911944575366553?l=shyru.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shyru.blogspot.com/feeds/115911944575366553/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8686346&amp;postID=115911944575366553' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8686346/posts/default/115911944575366553'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8686346/posts/default/115911944575366553'/><link rel='alternate' type='text/html' href='http://shyru.blogspot.com/2006/09/akademy-2006-phonons-in-solids.html' title='aKademy 2006: Phonons in Solids'/><author><name>Shyru</name><uri>http://www.blogger.com/profile/00951184424622653396</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-8686346.post-115910786819690553</id><published>2006-09-24T16:22:00.000+02:00</published><updated>2006-09-24T16:24:28.203+02:00</updated><title type='text'>aKademy 2006: Plasma - what the bleep is it?</title><content type='html'>Unfortunatly i have no transcript of this talk. - Instead of writing on the notebook, i filmed the whole talk. I hope to make the video available on tuesday evening for everyone to download.&lt;br /&gt;(I know there will also be "official" videos, but perhaps i will be a little bit faster :-) )&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8686346-115910786819690553?l=shyru.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shyru.blogspot.com/feeds/115910786819690553/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8686346&amp;postID=115910786819690553' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8686346/posts/default/115910786819690553'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8686346/posts/default/115910786819690553'/><link rel='alternate' type='text/html' href='http://shyru.blogspot.com/2006/09/akademy-2006-plasma-what-bleep-is-it.html' title='aKademy 2006: Plasma - what the bleep is it?'/><author><name>Shyru</name><uri>http://www.blogger.com/profile/00951184424622653396</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-8686346.post-115909261608131996</id><published>2006-09-24T11:54:00.000+02:00</published><updated>2006-09-24T16:26:40.013+02:00</updated><title type='text'>aKademy 2006: QtDBus and interoperability</title><content type='html'>After the Keynote from Aaron to start the day, the first talk i attended was the talk from Thiago Maciera. He works at Trolltech and brought us the QtDBus bindings in Qt 4.2.&lt;br /&gt;(unfortunatly i forgot to take some photos...)&lt;br /&gt;The subtitle of the talk was: "How You Can Use D-Bus to Achieve Interoperability"&lt;br /&gt;Here is what i wrote down while he talked:&lt;br /&gt;&lt;br /&gt;He talks about what interoperability is: Two different sofwares working together&lt;br /&gt;This talk is mainly about inter-process interoperability.&lt;br /&gt;&lt;br /&gt;D-Bus is an Inter-Process Comunication / Remote Procedure (IPC/RPC) system defined by freedesktop.org&lt;br /&gt;&lt;blockquote&gt;"D-Bus is a message bus system, a simple way for application to talk to one another"&lt;/blockquote&gt; (citation from freedesktop.org)&lt;br /&gt;D-Bus works like a star formation with one deamon in the middle connecting the different applications together.&lt;br /&gt;&lt;br /&gt;He explains what interoperability is good for: another method to access your technology. This brings: broader user-base, less resource usage on the system because of reuse, good PR because you are the nice guy :-)&lt;br /&gt;&lt;br /&gt;But even if your application has no distinctive features, then interoperability provides you the ability to access other applications features etc.!&lt;br /&gt;&lt;br /&gt;Interoperability example:&lt;br /&gt;The Desktop API (DAPI)&lt;br /&gt;Allows to access desktop functionality like sending email, turning on/off screensavers, opening urls etc.&lt;br /&gt;DAPI consists of two components: A daemon and a library that links to the application.&lt;br /&gt;&lt;br /&gt;To use this (interoperability) you have to define an API, and define a format for the information exchange.&lt;br /&gt;&lt;br /&gt;&lt;h4&gt;First solution: write a library&lt;/h4&gt;Has positive (fast, little modification) and negative (if you use c++ you are tight to it, if you use Qt and KDE the other have to use it also, scripting languages have problems using the library) aspects.&lt;br /&gt;&lt;br /&gt;&lt;h4&gt;Second solution: write an external application&lt;/h4&gt;(Like xdg-utils)&lt;br /&gt;No problem with linking, easy access from any language or shell&lt;br /&gt;Requires re-parsing of data, performance penalty of starting new processes every time&lt;br /&gt;&lt;br /&gt;&lt;h4&gt;Third solution: socket, pipe or another raw IPC system&lt;/h4&gt;Solves the problem with linking, no penaltiy with process starting, easy to access from any language.&lt;br /&gt;But: requires establishing and testing the new protocol, requires the protocol to be established on each participant, difficult to add improvements, difficult to access from shell scripts.&lt;br /&gt;&lt;br /&gt;&lt;h4&gt;Fourth solution: other IPC/RPC systems&lt;/h4&gt;Instead of defining own IPC/RPC system, use existing solutions like DCOP&lt;br /&gt;No problem with linking, no penalty with process starting, easy to connect from any language, command-line access tool is possible.&lt;br /&gt;But: access from any language is limited by the availabliity of implementations, DCOP suffers form forward compatibility and is hard to extend.&lt;br /&gt;&lt;br /&gt;&lt;h4&gt;Final solution: D-Bus&lt;/h4&gt;Has been modelled after DCOP and so has all of its benifits.&lt;br /&gt;In addition:&lt;ul&gt;&lt;li&gt;It has been designed with forward compatibility with future extensions in mind&lt;/li&gt;&lt;li&gt;Many bindings already available: glib, Mono, Python, Perl, Java&lt;/li&gt;&lt;li&gt;Works on all platforms KDE supports (work on Windows ongoing)&lt;/li&gt;&lt;li&gt;Best of all: it is nativiely supported by Qt and KDE&lt;/li&gt;&lt;ul&gt; &lt;li&gt;its the IPC/RPC system that we chose to replace DCOP&lt;/li&gt; &lt;li&gt;its beend designed to replace DCOP (concepts are very similar)&lt;/li&gt; &lt;li&gt;it integrates nicely with the Qt Meta Object and Meta Type Systems&lt;/li&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;To use it, you have not much to do. The KDE buildsystem (CMake) can output the code for you, needed to use it.&lt;br /&gt;&lt;br /&gt;To export functionality:&lt;ul&gt;&lt;li&gt;exporting from QObject derived classes is easy, allowing any slot to be called on it&lt;/li&gt;&lt;li&gt;better ist to use a class derived from QDBusAbstractAdaptor which just exports the functionality you want to export&lt;/li&gt;&lt;li&gt;process XML definition of an interface into a C++ class derived from QDBusAbstractAdaptor (this way you can easily implement an interface from third parties)&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8686346-115909261608131996?l=shyru.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shyru.blogspot.com/feeds/115909261608131996/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8686346&amp;postID=115909261608131996' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8686346/posts/default/115909261608131996'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8686346/posts/default/115909261608131996'/><link rel='alternate' type='text/html' href='http://shyru.blogspot.com/2006/09/akademy-2006-qtdbus-and.html' title='aKademy 2006: QtDBus and interoperability'/><author><name>Shyru</name><uri>http://www.blogger.com/profile/00951184424622653396</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-8686346.post-115903397474880986</id><published>2006-09-23T19:45:00.001+02:00</published><updated>2006-09-24T16:25:32.473+02:00</updated><title type='text'>aKademy 06: Finally internet!</title><content type='html'>Obviously i lost the whole post when clicking on "Preview" in Konqueror! :-( Bah!&lt;br /&gt;Time to fetch a pizza now, i will have internet again tomorrow and will post some transcripts and photos of talks...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8686346-115903397474880986?l=shyru.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shyru.blogspot.com/feeds/115903397474880986/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8686346&amp;postID=115903397474880986' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8686346/posts/default/115903397474880986'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8686346/posts/default/115903397474880986'/><link rel='alternate' type='text/html' href='http://shyru.blogspot.com/2006/09/akademy-06-finally-internet_23.html' title='aKademy 06: Finally internet!'/><author><name>Shyru</name><uri>http://www.blogger.com/profile/00951184424622653396</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-8686346.post-115903378418459826</id><published>2006-09-23T19:45:00.000+02:00</published><updated>2006-09-24T16:25:23.176+02:00</updated><title type='text'>aKademy 06: Finally internet!</title><content type='html'>&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8686346-115903378418459826?l=shyru.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shyru.blogspot.com/feeds/115903378418459826/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8686346&amp;postID=115903378418459826' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8686346/posts/default/115903378418459826'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8686346/posts/default/115903378418459826'/><link rel='alternate' type='text/html' href='http://shyru.blogspot.com/2006/09/akademy-06-finally-internet.html' title='aKademy 06: Finally internet!'/><author><name>Shyru</name><uri>http://www.blogger.com/profile/00951184424622653396</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-8686346.post-115882850523806421</id><published>2006-09-21T10:23:00.000+02:00</published><updated>2006-09-21T10:58:25.713+02:00</updated><title type='text'>Im going to Akademy 2006!</title><content type='html'>Yes, this year its the first time where I will attend &lt;a href="http://conference2006.kde.org/"&gt;Akademy&lt;/a&gt;, the anual &lt;a href="http://www.kde.org"&gt;KDE&lt;/a&gt; Conference.&lt;br /&gt;This year it will be held in Dublin, Irland. My flight will be tomorrow at 16:20 from Frankfurt.&lt;br /&gt;Im very happy to take part in this event, and I hope that this will be the start of me hacking on KDE... - I already have some Ideas in mind on how to contribute to a great KDE4. :-)&lt;br /&gt;Im also eager awaiting the &lt;a href="http://akademy.kde.org/conference/program.php"&gt;cool talks&lt;/a&gt; this year, and i hope to take some photos and create some transcripts of the talks i attend.&lt;br /&gt;&lt;br /&gt;Here is a preliminary list of talks i plan to attend:&lt;br /&gt;&lt;br /&gt;Saturday:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://akademy.kde.org/conference/talks/27.php"&gt;QtDBus and interoperability&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://akademy.kde.org/conference/talks/17.php"&gt;Plasma: What the bleep is it?&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://akademy.kde.org/conference/talks/32.php"&gt;Phonons in Solids - Internals and Usage Explained&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://akademy.kde.org/conference/talks/10.php"&gt;Competition And Cooperation - An Honest Look At The Dynamics Between The KDE And GNOME Communities&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://akademy.kde.org/conference/talks/47.php"&gt;Multi-Head RandR&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://akademy.kde.org/conference/talks/9.php"&gt;Akonadi - The KDE 4.0 PIM Framework&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://akademy.kde.org/conference/talks/44.php"&gt;Decibel - You Are Not Alone!&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://akademy.kde.org/conference/talks/30.php"&gt;State of KHTML&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;Sunday:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://akademy.kde.org/conference/talks/11.php"&gt;KDE 4 Development Setup&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://akademy.kde.org/conference/talks/25.php"&gt;Performance techniques&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://akademy.kde.org/conference/talks/13.php"&gt;An Introduction to CMake, CTest and Dart&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://akademy.kde.org/conference/talks/46.php"&gt;iQyoto/Kimono C# bindings&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://akademy.kde.org/conference/talks/33.php"&gt;Kickoff - Start Menu Research&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://akademy.kde.org/conference/talks/15.php"&gt;Accomplishments And Challenges Of The KDevelop Team&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;I hope to be able to give some brief transcripts of all this talks, so if you are interested in any of them and cannot attend, stay tuned!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8686346-115882850523806421?l=shyru.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shyru.blogspot.com/feeds/115882850523806421/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8686346&amp;postID=115882850523806421' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8686346/posts/default/115882850523806421'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8686346/posts/default/115882850523806421'/><link rel='alternate' type='text/html' href='http://shyru.blogspot.com/2006/09/im-going-to-akademy-2006.html' title='Im going to Akademy 2006!'/><author><name>Shyru</name><uri>http://www.blogger.com/profile/00951184424622653396</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-8686346.post-114320238081710104</id><published>2006-03-24T12:51:00.000+01:00</published><updated>2006-03-24T13:13:00.830+01:00</updated><title type='text'>Solving the CSS problem</title><content type='html'>So suppose you create a sophisticated PHP-Library to create webinterfaces.&lt;br /&gt;You create classes to generate HTML-code. For example one class to create a tabbed interface in your webinterface. At this point your PHP-Library must include some css code to style the tabs.&lt;br /&gt;Now you build a webinterface based on your library. And since you develop the webinterface for a certain customer, you have to modify the look of the interface. This means you have to change one of the CSS-files of your library. So you copy the CSS-file to you local webinterface and change colors and background-images to your liking. At this point you have a problem: If the library changes, and the original CSS-file of the tabbar implementation changes also, you have to manually correct your copied version of that file. I don't have to tell any developer hat this is kind of ugly... :-)&lt;br /&gt;&lt;br /&gt;So here comes my solution:&lt;br /&gt;You keep the CSS-files of your library in the directory of your library-installation. If you as a user of the library want to change some of the CSS, you create a new CSS-file and place in it your definitions you want to overwrite from the original file. Then you create a php script which loads your css files. It takes the original CSS-file and your modified version and appends it to one big file. This file is then processed with &lt;a href="http://csstidy.sourceforge.net"&gt;CSSTidy&lt;/a&gt; and the changes are merged in to single definitions and then sent to the browser. Need an example? Here you go:&lt;br /&gt;&lt;br /&gt;Suppose you have the following CSS-file which is part of your library:&lt;br /&gt;&lt;pre style="background-color:rgb(248,248,248); border: 1px solid rgb(198,198,198); padding:10px;"&gt;div.tab&lt;br /&gt;{&lt;br /&gt;  background-image:url('images/tabbackground.png');&lt;br /&gt;  width:120px;&lt;br /&gt;  height:16px;&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Now you want to customize that. You have your own image which has a different width, but the same height.&lt;br /&gt;You create your own file containing the following:&lt;br /&gt;&lt;pre style="background-color:rgb(248,248,248); border: 1px solid rgb(198,198,198); padding:10px;"&gt;div.tab&lt;br /&gt;{&lt;br /&gt;  background-image:url('images/mytabbackground.png');&lt;br /&gt;  width:98px;&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Normally you would now send the concatenated content to the browser and let the browser handle the overwritten properties. The problem is, this costs you bandwidth and processing power on the client side. With my solution and CSSTidy the resulting CSS-code looks like this:&lt;br /&gt;&lt;br /&gt;&lt;pre style="background-color:rgb(248,248,248); border: 1px solid rgb(198,198,198); padding:10px;"&gt;div.tab&lt;br /&gt;{&lt;br /&gt;  background-image:url('images/mytabbackground.png');&lt;br /&gt;  width:98px;&lt;br /&gt;  height:16px;&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;So you only overwrite the changes you need. If the original css changes, and for example adds a border statement, it gets automatically propagated through to the browser. This way you may update your library as you wish, the changes get automatically visible in your webinterfaces that use the library.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8686346-114320238081710104?l=shyru.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shyru.blogspot.com/feeds/114320238081710104/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8686346&amp;postID=114320238081710104' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8686346/posts/default/114320238081710104'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8686346/posts/default/114320238081710104'/><link rel='alternate' type='text/html' href='http://shyru.blogspot.com/2006/03/solving-css-problem.html' title='Solving the CSS problem'/><author><name>Shyru</name><uri>http://www.blogger.com/profile/00951184424622653396</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-8686346.post-111411792394603440</id><published>2005-04-21T21:48:00.000+02:00</published><updated>2005-04-21T23:12:03.946+02:00</updated><title type='text'>Legal drugs</title><content type='html'>Since my &lt;a href="http://www.staysicbaby.de/"&gt;brother&lt;/a&gt; is in Vietnam for holidays, he lent me his Playstation 2.&lt;br /&gt;Coupled with my projector, it gives a really nice playing experience. In order to play something i went to our local video store and borrowed &lt;a href="http://burnout3.ea.com"&gt;Burnout 3&lt;/a&gt;. I was in the mood to play a racing game, and this one looked nice.&lt;br /&gt;&lt;div align="center"&gt;&lt;br /&gt;&lt;img src="http://kb24.dnsalias.org/~daniel/blog/burnout-small.jpg" align="center" alt="Burnout 3"/&gt;&lt;/div&gt;&lt;br/&gt;&lt;br /&gt;Now i have my new drug. Driving with over 300 km/h through the oncoming traffic and using the "burner" to drive even faster is just breathtaking. The screen is bluring on the sides (see screenshot) and all is so damn fast that you havn't much time to realize what is coming ahead of you. After 30 minutes of driving like this you get somewhat 'high' and you hands start jittering. :-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8686346-111411792394603440?l=shyru.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shyru.blogspot.com/feeds/111411792394603440/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8686346&amp;postID=111411792394603440' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8686346/posts/default/111411792394603440'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8686346/posts/default/111411792394603440'/><link rel='alternate' type='text/html' href='http://shyru.blogspot.com/2005/04/legal-drugs.html' title='Legal drugs'/><author><name>Shyru</name><uri>http://www.blogger.com/profile/00951184424622653396</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-8686346.post-111391970063839590</id><published>2005-04-19T15:22:00.000+02:00</published><updated>2005-04-19T16:36:10.263+02:00</updated><title type='text'>Webdevelopers times change</title><content type='html'>When i started developing webpages 5 years ago the available browsers where totally different to what is available today. At that time Internet Explorer 5.5 was out and &lt;span style="font-style:italic;"&gt;the&lt;/span&gt; top notch browser. Web-pages where developed for IE 5.5 with some compatibily-hacks for Netscape 4.7. Netscape 4.7 was the limiting factor. Most of the Features of IE 5.5 where not usable because Netscape 4.7 would not understand them.&lt;br /&gt;&lt;br /&gt;Then in 2001 when i did the webpage for the &lt;a href="http://www.eudig.de"&gt;company&lt;/a&gt; i work at, we decided to not support Netscape 4.7 on our website. - What a relief. With a brandnew &lt;a href="http://www.mozilla.org"&gt;Mozilla&lt;/a&gt; 1.0 and IE 6.0 developing webpages started to make fun.&lt;br /&gt;&lt;br /&gt;In theory this situation did not change since then. But something different changed since then: My knowledge of HTML/XHTML and CSS. Discovering the cool &lt;a href="http://www.w3.org/TR/REC-CSS2"&gt;CSS 2.0&lt;/a&gt; &lt;a href="http://www.w3.org/TR/REC-CSS2/selector.html"&gt;selectors&lt;/a&gt; had a real impact on how i did webpages. Using :hover on arbitrary tags eliminated a lot of javascript and produced cleaner pages. And that was only the beginning. The advanced selectors openend even more possibilities.&lt;br /&gt;&lt;br /&gt;But the disillusion came fast. Even IE 6.0 did not support this CSS features. *bummer* So now the times changed again. Suddenly IE got the limiting factor and you have to build quirks to work around it's lacking standards support.&lt;br /&gt;At this time i started to work on a next-generation webinterface to our &lt;a href="http://www.eudig.de/apps/showpage.php?pagename=eudigims"&gt;windows-based software&lt;/a&gt;. And it is no fun to develop a next-gen webinterface if you cannot use CSS 2.0. In the middle of this situation some people of Micro$oft &lt;a href="http://www.microsoft-watch.com/article2/0,1995,1776290,00.asp"&gt;announced&lt;/a&gt; that they work on IE 7. *hooray* - Finally light at the end of the tunnel.&lt;br /&gt;But the big surprise came yesterday. I discovered &lt;a href="http://dean.edwards.name/IE7/"&gt;IE7&lt;/a&gt;. This is not IE 7 from Micro$oft but a javascript-library which brings next-gen features to IE 6! *woOOow* - With IE7 you just have to include one javascript file on your page, and IE 6 is instantly a more standards-compliant CSS 2.0 browser! &lt;br /&gt;Did i say :hover? - They work on every element!&lt;br /&gt;Advanced CSS2 selectors? - They work!&lt;br /&gt;Transparent png's? - Of course they work!&lt;br /&gt;&lt;br /&gt;This is a really great and useful piece of javascript code. The downsides? - Well it's kinda slow on my Athlon 1000, but it's usable. Thanks to &lt;a href="http://dean.edwards.name"&gt;Dean Edwards&lt;/a&gt; I'm able to build a next-gen webinterface! Great!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8686346-111391970063839590?l=shyru.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shyru.blogspot.com/feeds/111391970063839590/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8686346&amp;postID=111391970063839590' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8686346/posts/default/111391970063839590'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8686346/posts/default/111391970063839590'/><link rel='alternate' type='text/html' href='http://shyru.blogspot.com/2005/04/webdevelopers-times-change.html' title='Webdevelopers times change'/><author><name>Shyru</name><uri>http://www.blogger.com/profile/00951184424622653396</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-8686346.post-110267866737087509</id><published>2004-12-10T11:38:00.000+01:00</published><updated>2004-12-10T12:53:31.823+01:00</updated><title type='text'>Movie Opinion: The Incredibles</title><content type='html'>As announced, yesterday I saw "The Incredibles".&lt;br /&gt;The Incredibles is yet another solid movie from &lt;a href="http://www.pixar.com"&gt;Pixar&lt;/a&gt;.&lt;br /&gt;The first 10 minutes of the movie are just ridiculous and realistic at the same time. Hero's beeing accused of helping people is ridiculous and at the same time I had no problems to imagine that in our world. This world where everybody only thinks about his own merit, and fails to see the big picture. This is the situation at the beginning of the movie. What follows is a time where all heroes need to get a new identity and have to stay undercover. But heroes often tend to have a come back...&lt;br /&gt;The Incredibles is definitly not only targeted at children, which makes it also very interesting for older people which still feel young. The topics discussed range from matrimony problems, over children in the teen-age to "the purpose of life". That mixed up with strong characters, great renderings, some real-life problems and a lot of fun results in a great movie.&lt;br /&gt;I recommend it to everyone who likes to have a funny evening.&lt;br /&gt;&lt;br /&gt;Shyru's opinion:&lt;br /&gt;&lt;img src="http://kb24.dnsalias.org/~daniel/blog/star-f.png" style="border: 0px; padding: 1px;" alt=""/&gt;&lt;img src="http://kb24.dnsalias.org/~daniel/blog/star-f.png" style="border: 0px; padding: 1px;" alt=""/&gt;&lt;img src="http://kb24.dnsalias.org/~daniel/blog/star-f.png" style="border: 0px; padding: 1px;" alt=""/&gt;&lt;img src="http://kb24.dnsalias.org/~daniel/blog/star-f.png" style="border: 0px; padding: 1px;" alt=""/&gt;&lt;img src="http://kb24.dnsalias.org/~daniel/blog/star-f.png" style="border: 0px; padding: 1px;" alt=""/&gt;&lt;img src="http://kb24.dnsalias.org/~daniel/blog/star-f.png" style="border: 0px; padding: 1px;" alt=""/&gt;&lt;img src="http://kb24.dnsalias.org/~daniel/blog/star-f.png" style="border: 0px; padding: 1px;" alt=""/&gt;&lt;img src="http://kb24.dnsalias.org/~daniel/blog/star-f.png" style="border: 0px; padding: 1px;" alt=""/&gt;&lt;img src="http://kb24.dnsalias.org/~daniel/blog/star-f.png" style="border: 0px; padding: 1px;" alt=""/&gt;&lt;img src="http://kb24.dnsalias.org/~daniel/blog/star-e.png" style="border: 0px; padding: 1px;" alt=""/&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8686346-110267866737087509?l=shyru.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shyru.blogspot.com/feeds/110267866737087509/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8686346&amp;postID=110267866737087509' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8686346/posts/default/110267866737087509'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8686346/posts/default/110267866737087509'/><link rel='alternate' type='text/html' href='http://shyru.blogspot.com/2004/12/movie-opinion-incredibles.html' title='Movie Opinion: The Incredibles'/><author><name>Shyru</name><uri>http://www.blogger.com/profile/00951184424622653396</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-8686346.post-110260394490388504</id><published>2004-12-09T15:37:00.000+01:00</published><updated>2004-12-09T15:52:24.903+01:00</updated><title type='text'>Incredible!</title><content type='html'>Today i got my holidays between christmas and new year affirmed! Hooray! Actually the company where i work wanted to move in this period, but things did not come out so well, so the move will be delayed to sometime in january. So I'm happy to have real holidays between christmas and new year. :-)&lt;br /&gt;&lt;br /&gt;At the evening I will be watching "The Incredibles" at the cinema. I'm really looking forward to this, as it promises to be a really good movie. We are a group of 10 people, so guess we will have quite some fun. :-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8686346-110260394490388504?l=shyru.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shyru.blogspot.com/feeds/110260394490388504/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8686346&amp;postID=110260394490388504' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8686346/posts/default/110260394490388504'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8686346/posts/default/110260394490388504'/><link rel='alternate' type='text/html' href='http://shyru.blogspot.com/2004/12/incredible.html' title='Incredible!'/><author><name>Shyru</name><uri>http://www.blogger.com/profile/00951184424622653396</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-8686346.post-110251261594596028</id><published>2004-12-08T14:03:00.000+01:00</published><updated>2004-12-08T14:30:15.946+01:00</updated><title type='text'>Do you like debug messages?</title><content type='html'>I do. - Well thats not entirely correct. I _love_ debug messages! :-)&lt;br /&gt;What kept annoying me all the time, was that it is not easily possible to output debug messages when creating a website with PHP. Either you spit out the messages right into the resulting html - not that nice, or you save them to a file and keep tail -f'ing that file. - Not that nice either.&lt;br /&gt;While developing a Webinterface in the company i work, i finally found an IMHO nice solution to this problem:&lt;br /&gt;A floatable debug window. - Well, not a real browser window, but a movable div-tag with the debug messages in it. Together with a helper function in PHP and javascript i am now able to send debug messages to that window at any time. - Either while generating the page, using the PHP function, or while running javascript, using the javascript function. And if the window gets into my way, i simply move it away or close it completly. - Very nice. &lt;br /&gt;Wanna see a &lt;a href="http://kb24.dnsalias.org/~daniel/blog/debug.png"&gt;screenshot&lt;/a&gt;? &lt;br /&gt;&lt;br /&gt;Not so nice news are, that my brother had a car accident yesterday. He drove drunk, but didn't hurt himself or any other. - Thank god! But nevertheless the car is a wreck, and he had to release his driving license. Strange to say that he never drove drunk befor, rather getting home with friends or staying over night. Hope it's a lesson for him. We are all thankful that he is still well and alive.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8686346-110251261594596028?l=shyru.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shyru.blogspot.com/feeds/110251261594596028/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8686346&amp;postID=110251261594596028' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8686346/posts/default/110251261594596028'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8686346/posts/default/110251261594596028'/><link rel='alternate' type='text/html' href='http://shyru.blogspot.com/2004/12/do-you-like-debug-messages.html' title='Do you like debug messages?'/><author><name>Shyru</name><uri>http://www.blogger.com/profile/00951184424622653396</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-8686346.post-109998725668632623</id><published>2004-11-09T08:50:00.000+01:00</published><updated>2004-11-09T09:00:56.686+01:00</updated><title type='text'></title><content type='html'>Sorry for not posting this long, but... :-)&lt;br /&gt;&lt;br /&gt;My Fritz Card DSL SL is now working, but it took me more than a week to get it running! The version of the drivers available in Gentoo where not loading correctly. After 3 days of trial and error, i tried the most recent drivers for SuSE 9.2, and voila, with driver revision 0.2.1 (instead of 0.2.0) it works. The tool 'drdsl' from avm still segfaults while trying to get my card parameters, but since i live in germany, the default settings work. So, I'm proud to announce: I'm back online, with a 3072/512 ADSL Line... :-)&lt;br /&gt;&lt;br /&gt;At work I'm quite busy, and it looks like our company will move between christmas and new year to a new building. This sucks.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8686346-109998725668632623?l=shyru.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shyru.blogspot.com/feeds/109998725668632623/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8686346&amp;postID=109998725668632623' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8686346/posts/default/109998725668632623'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8686346/posts/default/109998725668632623'/><link rel='alternate' type='text/html' href='http://shyru.blogspot.com/2004/11/sorry-for-not-posting-this-long-but.html' title=''/><author><name>Shyru</name><uri>http://www.blogger.com/profile/00951184424622653396</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-8686346.post-109812250370382366</id><published>2004-10-18T19:55:00.000+02:00</published><updated>2004-10-18T20:01:43.703+02:00</updated><title type='text'>Fighting against my Fritz Card DSL SL</title><content type='html'>So today i tried to get my Fritz Card DSL SL to run...&lt;br /&gt;After 3 hours of hard work I'm at a point where I found no solution to my problem. The tool "drdsl" exits with a segmentation fault before spitting out the right VCC options.  I found two other people having the same problem, but they had no solution either... :-(&lt;br /&gt;Perhaps i simply have to upgrade the kernel...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8686346-109812250370382366?l=shyru.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shyru.blogspot.com/feeds/109812250370382366/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8686346&amp;postID=109812250370382366' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8686346/posts/default/109812250370382366'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8686346/posts/default/109812250370382366'/><link rel='alternate' type='text/html' href='http://shyru.blogspot.com/2004/10/fighting-against-my-fritz-card-dsl-sl.html' title='Fighting against my Fritz Card DSL SL'/><author><name>Shyru</name><uri>http://www.blogger.com/profile/00951184424622653396</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-8686346.post-109810362952995779</id><published>2004-10-17T14:47:00.000+02:00</published><updated>2004-10-18T14:48:14.110+02:00</updated><title type='text'>Testing mobile2email2blog!</title><content type='html'>Well this more a test if sending messages from my mobile to the blog really works.&lt;br /&gt;Our recreation is now nearly over, and we had a really good time. I'm really happy about it. &lt;br /&gt;When i come home later i'll try to get my Fritz card DSL to work. Well i hope so... :-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8686346-109810362952995779?l=shyru.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shyru.blogspot.com/feeds/109810362952995779/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8686346&amp;postID=109810362952995779' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8686346/posts/default/109810362952995779'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8686346/posts/default/109810362952995779'/><link rel='alternate' type='text/html' href='http://shyru.blogspot.com/2004/10/testing-mobile2email2blog.html' title='Testing mobile2email2blog!'/><author><name>Shyru</name><uri>http://www.blogger.com/profile/00951184424622653396</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-8686346.post-109776031837567176</id><published>2004-10-14T15:11:00.000+02:00</published><updated>2004-10-14T16:48:16.890+02:00</updated><title type='text'>Antialiasing with PHP</title><content type='html'>Today i updated the website of our company. And i also managed to fix one thing that bothered my since it existed: Smooth, antialiased rounded edges in HTML. Well, i had rounded edges quite some time now. I did it with a special PHP image generator which generated rounded-edge images on the fly in the colors you needed. That worked quite well, but unfortunatly the rounded edges where not antialiased.&lt;br /&gt;So today i looked at that matter again, and tried to use the ImageAntialias() function of PHP. Of course did that not work with ImageFilledEllipse() that i used. So i thought about a better solution to get an antialiased round edge. Suddenly the technique used in todays graphicscards came to my mind: Supersampling.&lt;br /&gt;So now I have images with 10xAA. That was the trick: I "rendered" the image in a resolution 10 times higher than needed and then downsampled the image to the requested size using ImageCopyResampled(). It's a bit slow but since the images are cached anyway its not a big matter. And it works quite nice. If you want to take a look at it visit to &lt;a href="http://www.eudig.com/apps/custom/onlinecontact.php"&gt;www.eudig.com - Contact page&lt;/a&gt;&lt;br /&gt;If you are interested in that feel free to contact me.&lt;br /&gt;&lt;br /&gt;Away from work I'm also rather busy. Coming weekend I'll be away for a recreational with my youth group. Since I'm member of the staff I have quite some things to prepare.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8686346-109776031837567176?l=shyru.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shyru.blogspot.com/feeds/109776031837567176/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8686346&amp;postID=109776031837567176' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8686346/posts/default/109776031837567176'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8686346/posts/default/109776031837567176'/><link rel='alternate' type='text/html' href='http://shyru.blogspot.com/2004/10/antialiasing-with-php.html' title='Antialiasing with PHP'/><author><name>Shyru</name><uri>http://www.blogger.com/profile/00951184424622653396</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-8686346.post-109759826182409308</id><published>2004-10-12T18:20:00.000+02:00</published><updated>2004-10-12T18:28:56.956+02:00</updated><title type='text'>My new Home</title><content type='html'>My Mum just sent me this photo of the city I'm livin' in. Just thought to share where my new home is. Given that photo, i think Dillenburg is not that bad at all... :-)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="http://haas.dnsalias.org/%7Edaniel/blogimages/kirchberg24.jpg" width="450"&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8686346-109759826182409308?l=shyru.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shyru.blogspot.com/feeds/109759826182409308/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8686346&amp;postID=109759826182409308' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8686346/posts/default/109759826182409308'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8686346/posts/default/109759826182409308'/><link rel='alternate' type='text/html' href='http://shyru.blogspot.com/2004/10/my-new-home.html' title='My new Home'/><author><name>Shyru</name><uri>http://www.blogger.com/profile/00951184424622653396</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-8686346.post-109758635107620064</id><published>2004-10-12T14:55:00.000+02:00</published><updated>2004-10-12T15:05:51.076+02:00</updated><title type='text'>Victory over VPN's</title><content type='html'>This is how it turned out:&lt;br /&gt;The ethernet adapter which was connected to the DSL modem had an IP address in the same subnet as the vpn'ed network. This resulted in the ping packets being sendt through the normal ethernet adapter. Changing the subnet to something else corrected the problem. And seeing it now its clear that it couldn't work before. Well, you live and learn.&lt;br /&gt;&lt;br /&gt;In other news i finally got my DSL connection at home ordered. They say it will work from 18.10.2004 on. I'm curious if the Fritz DSL SL card works as expected. - I installed the drivers with the fcdsl ebuild for gentoo. Let's hope all is okay, and i can simply plug in the card and go online. - But something whispers "It won't work!" into my ear...&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8686346-109758635107620064?l=shyru.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shyru.blogspot.com/feeds/109758635107620064/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8686346&amp;postID=109758635107620064' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8686346/posts/default/109758635107620064'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8686346/posts/default/109758635107620064'/><link rel='alternate' type='text/html' href='http://shyru.blogspot.com/2004/10/victory-over-vpns.html' title='Victory over VPN&apos;s'/><author><name>Shyru</name><uri>http://www.blogger.com/profile/00951184424622653396</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-8686346.post-109758342593226460</id><published>2004-10-12T14:02:00.000+02:00</published><updated>2004-10-12T14:37:05.176+02:00</updated><title type='text'>Fighting VPNs</title><content type='html'>At work I'm again fighting with our VPN's. Since I'm responsible for the firewall in our company, it is my task to get the VPN connections up and running for our employees which have to access services in our network from home.&lt;br /&gt;First problem is: You need to install KB818043 in order to use the new NAT-T features of Windows/IPsec. Ever tried to get that update? - Well its PITA. Here's a &lt;a href="http://kb.indiana.edu/data/aoxa.help?cust=831316.98966.30"&gt;good resource&lt;/a&gt; about it, may save you some hours...&lt;br /&gt;After installing SP2 for Windows XP and testing the connection with the computer here, all went okay. I was happy. But...&lt;br /&gt;At home it did not work, the tunnel eventually came up, but pinging was not possible. It seems that NAT-T does still not work as expected. Bummer.&lt;br /&gt;Trying to connect directly through the DSL modem resulted in a RAS Error 769: Unable to find address. So now we are reinstalling the ISP's Software (Arcor) and trying to get at least a online again. Lets see how this turns out...&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8686346-109758342593226460?l=shyru.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shyru.blogspot.com/feeds/109758342593226460/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8686346&amp;postID=109758342593226460' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8686346/posts/default/109758342593226460'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8686346/posts/default/109758342593226460'/><link rel='alternate' type='text/html' href='http://shyru.blogspot.com/2004/10/fighting-vpns.html' title='Fighting VPNs'/><author><name>Shyru</name><uri>http://www.blogger.com/profile/00951184424622653396</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-8686346.post-109757043307107315</id><published>2004-10-12T10:39:00.000+02:00</published><updated>2004-10-12T10:40:33.070+02:00</updated><title type='text'>Welcome to Shyru's World</title><content type='html'>Well, welcome to my blog, this is my very first post. :-)&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8686346-109757043307107315?l=shyru.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shyru.blogspot.com/feeds/109757043307107315/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8686346&amp;postID=109757043307107315' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8686346/posts/default/109757043307107315'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8686346/posts/default/109757043307107315'/><link rel='alternate' type='text/html' href='http://shyru.blogspot.com/2004/10/welcome-to-shyrus-world.html' title='Welcome to Shyru&apos;s World'/><author><name>Shyru</name><uri>http://www.blogger.com/profile/00951184424622653396</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>
