<?xml version="1.0" encoding="utf-8" ?>

<rss version="2.0" 
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:admin="http://webns.net/mvcb/"
   xmlns:dc="http://purl.org/dc/elements/1.1/"
   xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
   xmlns:wfw="http://wellformedweb.org/CommentAPI/"
   xmlns:content="http://purl.org/rss/1.0/modules/content/"
   >
<channel>
    
    <title>Emil Sedgh's personal blog</title>
    <link>http://emilsedgh.info/blog/</link>
    <description></description>
    <dc:language>en</dc:language>
    <generator>Serendipity 1.5.5 - http://www.s9y.org/</generator>
    <pubDate>Mon, 12 Sep 2011 05:55:45 GMT</pubDate>

    <image>
        <url>http://emilsedgh.info/blog/templates/default/img/s9y_banner_small.png</url>
        <title>RSS: Emil Sedgh's personal blog - </title>
        <link>http://emilsedgh.info/blog/</link>
        <width>100</width>
        <height>21</height>
    </image>

<item>
    <title>SOCKS proxy on KDE</title>
    <link>http://emilsedgh.info/blog/index.php?/archives/14-SOCKS-proxy-on-KDE.html</link>
    
    <comments>http://emilsedgh.info/blog/index.php?/archives/14-SOCKS-proxy-on-KDE.html#comments</comments>
    <wfw:comment>http://emilsedgh.info/blog/wfwcomment.php?cid=14</wfw:comment>

    <slash:comments>4</slash:comments>
    <wfw:commentRss>http://emilsedgh.info/blog/rss.php?version=2.0&amp;type=comments&amp;cid=14</wfw:commentRss>
    

    <author>nospam@example.com (Emil Sedgh)</author>
    <content:encoded>
    &lt;h4&gt;kdelibs &amp;lt; 4.7:&lt;/h4&gt; 
&lt;p&gt;its not supported. to make it work, you have to install an http server (like polipo) and point kde to it.&lt;/p&gt; 
&lt;h4&gt;kdelibs == 4.7:&lt;/h4&gt; 
&lt;p&gt; Good news is, socks proxy &#039;is&#039; supported. Bad news is, there&#039;s no UI to configure it.&lt;/p&gt; 
&lt;p&gt;To configure it, add the following line to ~/.kde/share/config/kioslaverc file:&lt;/p&gt; 
&lt;p&gt; socksProxy=socks://HOST:PORT&lt;/p&gt; 
&lt;p&gt;Then, go to System Settings-&amp;gt;Network Settings-&amp;gt;Proxy and make sure the &#039;Manually specify the proxy settings&#039; option is marked. (But dont click the &#039;Setup&#039; button)&lt;br /&gt;&lt;/p&gt; 
&lt;p&gt;&lt;br /&gt;&lt;/p&gt; 
    </content:encoded>

    <pubDate>Thu, 08 Sep 2011 04:11:44 +0400</pubDate>
    <guid isPermaLink="false">http://emilsedgh.info/blog/index.php?/archives/14-guid.html</guid>
    
</item>
<item>
    <title>The sad state of our websites.</title>
    <link>http://emilsedgh.info/blog/index.php?/archives/13-The-sad-state-of-our-websites..html</link>
    
    <comments>http://emilsedgh.info/blog/index.php?/archives/13-The-sad-state-of-our-websites..html#comments</comments>
    <wfw:comment>http://emilsedgh.info/blog/wfwcomment.php?cid=13</wfw:comment>

    <slash:comments>21</slash:comments>
    <wfw:commentRss>http://emilsedgh.info/blog/rss.php?version=2.0&amp;type=comments&amp;cid=13</wfw:commentRss>
    

    <author>nospam@example.com (Emil Sedgh)</author>
    <content:encoded>
    &lt;div&gt;As you might know, kde&#039;s webteam is working on a complete rewrite of KDE.org.&lt;/div&gt; 
&lt;div&gt;One of main objectives is very serious attention to our applications. We have world-class applications but they have very unfancy webpages. Our objective is to fix it.&lt;/div&gt; 
&lt;div&gt;&lt;br /&gt;&lt;/div&gt; 
&lt;div&gt;So i wanted to look around and see how other web pages are doing. I opened homepages of all free (as in free speech) applications i could. then browsed them one by one and picked the best ones.&lt;/div&gt; 
&lt;div&gt;Results?&lt;/div&gt; 
&lt;div&gt;&lt;br /&gt;&lt;/div&gt; 
&lt;div&gt; 
&lt;ul&gt; 
&lt;li&gt;Free Software&#039;s barely have good websites.&lt;/li&gt; 
&lt;li&gt;&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=utf-8&quot; /&gt;The ones that do, mostly have financial support. (Sunbird, Aptana, Firefox, Songbird).&lt;/li&gt; 
&lt;/ul&gt; 
&lt;/div&gt; 
&lt;div&gt;This slideshow contains screenshots of the best Free Software websites I could find:&lt;/div&gt; 
&lt;div&gt;&lt;img src=&quot;http://emilsedgh.info/blog/uploads/SadStateOfOurWebsites/Free.gif&quot; /&gt;&lt;br /&gt;&lt;/div&gt; 
&lt;div&gt;&lt;br /&gt;&lt;/div&gt; 
&lt;div&gt;So i wanted to see the situation in propertiary world. I looked for mac applications and opened up their web pages.&lt;/div&gt; 
&lt;div&gt;&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=utf-8&quot; /&gt;The following slideshow contains best mac application pages i found:&lt;/div&gt; 
&lt;div&gt;&lt;img src=&quot;http://emilsedgh.info/blog/uploads/SadStateOfOurWebsites/Propertiary.gif&quot; /&gt;&lt;br /&gt;&lt;/div&gt; 
&lt;div&gt; 
&lt;p&gt;This is mostly sad. Our applications are not lacking quality wise. Its just that website is considered a &#039;promo&#039; feature and hackers usually dont have the motivation and/or skills to improve it.&amp;#160;&lt;/p&gt; 
&lt;p&gt;Now, looking at most good looking pages, you can simply find a pattern. Specially on the Propertiary side.&lt;/p&gt; 
&lt;/div&gt; 
&lt;div&gt; 
&lt;ul&gt; 
&lt;li&gt;They honor their icons. In most of them, their icon gets the most attention. As a matter of fact, the icon is the main branding feature. Thanks to Oxygen guru&#039;s, we have outstanding icons for our applications. Just take a look at Konqueror&#039;s icon. Or Digikams. I can stare at them for 5 minutes.






&lt;table style=&quot;width: 100%; &quot; border=&quot;1&quot; cellspacing=&quot;1&quot; cellpadding=&quot;1&quot;&gt; 
&lt;tbody&gt; 
&lt;tr&gt; 
&lt;td style=&quot;text-align: center; &quot;&gt; &lt;img src=&quot;http://emilsedgh.info/blog/uploads/SadStateOfOurWebsites/Icons/Konqueror.png&quot; /&gt;&lt;/td&gt; 
&lt;td style=&quot;text-align: center; &quot;&gt; &lt;img src=&quot;http://emilsedgh.info/blog/uploads/SadStateOfOurWebsites/Icons/K3B.png&quot; /&gt;&lt;/td&gt; 
&lt;td style=&quot;text-align: center; &quot;&gt;&lt;img src=&quot;http://emilsedgh.info/blog/uploads/SadStateOfOurWebsites/Icons/KDevelop.png&quot; /&gt; &lt;/td&gt; 
&lt;/tr&gt; 
&lt;tr&gt; 
&lt;td style=&quot;text-align: center; &quot;&gt; &lt;img src=&quot;http://emilsedgh.info/blog/uploads/SadStateOfOurWebsites/Icons/Plasma.png&quot; /&gt;&lt;/td&gt; 
&lt;td style=&quot;text-align: center; &quot;&gt;&lt;img src=&quot;http://emilsedgh.info/blog/uploads/SadStateOfOurWebsites/Icons/Kontact.png&quot; /&gt; &lt;/td&gt; 
&lt;td style=&quot;text-align: center; &quot;&gt;&lt;img src=&quot;http://emilsedgh.info/blog/uploads/SadStateOfOurWebsites/Icons/KTorrent.png&quot; /&gt; &lt;/td&gt; 
&lt;/tr&gt; 
&lt;tr&gt; 
&lt;td style=&quot;text-align: center; &quot;&gt; &lt;img src=&quot;http://emilsedgh.info/blog/uploads/SadStateOfOurWebsites/Icons/Digikam.png&quot; /&gt;&lt;/td&gt; 
&lt;td style=&quot;text-align: center; &quot;&gt;&lt;img src=&quot;http://emilsedgh.info/blog/uploads/SadStateOfOurWebsites/Icons/Nepomuk.png&quot; /&gt; &lt;/td&gt; 
&lt;td&gt; &lt;/td&gt; 
&lt;/tr&gt; 
&lt;/tbody&gt; 
&lt;/table&gt; 
&lt;/li&gt; 
&lt;li&gt;&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=utf-8&quot; /&gt;They avoid text. Visitors dont read paragraphs. They only read headlines. Thats a fact. Deal with it. Dont fsck the page describing your features.&lt;/li&gt; 
&lt;li&gt;&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=utf-8&quot; /&gt;They dont teach history. It doesnt matter whats the philosophy of your project. It doesnt matter if its a fork on another project. It doesnt matter if its a KDE project or a Gnome project. It doesnt matter &#039;who&#039; developed it. At least, none of them are priorities for your front page.&lt;/li&gt; 
&lt;li&gt;&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=utf-8&quot; /&gt;They barely have news. And, as a matter of fact, news will probably make your website look bad and outdated. Because you cant keep them all updated. Gnome-Do&#039;s webpage looks good and it has a news section. Guess what! Last news is for 2009. Is Gnome-Do dead or deprecated? I dunno. Their last news item is 2 years old.&lt;/li&gt; 
&lt;li&gt;&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=utf-8&quot; /&gt;Screenshot rulez! You will never buy a car without knowing how it looks. Visitors wont install your application if they dont know how it looks.&lt;/li&gt; 
&lt;li&gt;&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=utf-8&quot; /&gt;Forget about other pages. For casual users, you mostly have a single chance of convincing her to install your app. Thats called front page. If she hits a big geeky wall of text, she wont go any further. She&#039;ll close the tab.&lt;/li&gt; 
&lt;li&gt;&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=utf-8&quot; /&gt;They all have a big Download/Buy button. Of course. But we dont. We cannot have that. Because we dont know user&#039;s distribution. Or whats the package name of eg Okular on that specific distro.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;div&gt;&lt;br /&gt;&lt;/div&gt; 
&lt;/div&gt; 
&lt;div&gt;(Update: For some unknown reason, slideshows dont show up in KHTML.)&lt;/div&gt; 
    </content:encoded>

    <pubDate>Sat, 02 Jul 2011 12:01:23 +0400</pubDate>
    <guid isPermaLink="false">http://emilsedgh.info/blog/index.php?/archives/13-guid.html</guid>
    
</item>
<item>
    <title>Goodies for Join the Game members</title>
    <link>http://emilsedgh.info/blog/index.php?/archives/12-Goodies-for-Join-the-Game-members.html</link>
    
    <comments>http://emilsedgh.info/blog/index.php?/archives/12-Goodies-for-Join-the-Game-members.html#comments</comments>
    <wfw:comment>http://emilsedgh.info/blog/wfwcomment.php?cid=12</wfw:comment>

    <slash:comments>2</slash:comments>
    <wfw:commentRss>http://emilsedgh.info/blog/rss.php?version=2.0&amp;type=comments&amp;cid=12</wfw:commentRss>
    

    <author>nospam@example.com (Emil Sedgh)</author>
    <content:encoded>
    There are now some goodies available for Join the Game members.







&lt;div&gt; 
&lt;p&gt;You can embedd banners like these in your blogs and home pages, and help KDE even more!&lt;/p&gt; 
&lt;p&gt;&amp;#160;Please &lt;a href=&quot;http://jointhegame.kde.org/index.php/member/login&quot;&gt;login&lt;/a&gt; to Join The Game&#039;s webpage and click on &#039;Widgets&#039; link on menubar.&lt;/p&gt; &lt;a href=&quot;http://jointhegame.kde.org&quot;&gt;&lt;img width=&quot;468&quot; height=&quot;60&quot; src=&quot;http://jointhegame.kde.org/index.php/member/widget?widget=FullBanner&amp;amp;member=211&quot; /&gt;&lt;/a&gt; &lt;br /&gt; &lt;a href=&quot;http://jointhegame.kde.org&quot;&gt;&lt;img width=&quot;180&quot; height=&quot;150&quot; src=&quot;http://jointhegame.kde.org/index.php/member/widget?widget=RectangleBanner&amp;amp;member=211&quot; /&gt;&lt;/a&gt; &lt;br /&gt; &lt;a href=&quot;http://jointhegame.kde.org&quot;&gt;&lt;img width=&quot;350&quot; height=&quot;20&quot; src=&quot;http://jointhegame.kde.org/index.php/member/widget?widget=SignatureBanner&amp;amp;member=211&quot; /&gt;&lt;/a&gt; 
&lt;/div&gt; 
&lt;div&gt; 
&lt;p&gt;Currently we only have the above sizes available. If you want different sizes, tell me.&lt;/p&gt; 
&lt;/div&gt; 
&lt;p&gt; &lt;/p&gt; 
&lt;div&gt; 
&lt;p&gt;Non-members: We&#039;ve also got automatic payments (paypal). You can start your membership in only a few minutes.&lt;/p&gt; 
&lt;p&gt;KDE e.v will use your help to make sure KDE&#039;s infastructure continues to scale. Also, sprints and conferences are possible with your donations.&amp;#160;&lt;/p&gt; 
&lt;/div&gt; 
    </content:encoded>

    <pubDate>Wed, 22 Jun 2011 19:36:58 +0400</pubDate>
    <guid isPermaLink="false">http://emilsedgh.info/blog/index.php?/archives/12-guid.html</guid>
    
</item>
<item>
    <title>Recent developments on kde pages</title>
    <link>http://emilsedgh.info/blog/index.php?/archives/11-Recent-developments-on-kde-pages.html</link>
    
    <comments>http://emilsedgh.info/blog/index.php?/archives/11-Recent-developments-on-kde-pages.html#comments</comments>
    <wfw:comment>http://emilsedgh.info/blog/wfwcomment.php?cid=11</wfw:comment>

    <slash:comments>1</slash:comments>
    <wfw:commentRss>http://emilsedgh.info/blog/rss.php?version=2.0&amp;type=comments&amp;cid=11</wfw:commentRss>
    

    <author>nospam@example.com (Emil Sedgh)</author>
    <content:encoded>
    &lt;span style=&quot;float: right; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #666666; border-right-color: #666666; border-bottom-color: #666666; border-left-color: #666666; text-align: center; &quot;&gt; &lt;img src=&quot;http://emilsedgh.info/blog/uploads/webworld-580.png&quot; /&gt;&lt;br /&gt;New KDE-WWW logo.&lt;/span&gt; 
&lt;ul&gt; 
&lt;li&gt;New&amp;#160;&lt;a href=&quot;http://jointhegame.kde.org&quot;&gt;JoinTheGame&lt;/a&gt; website launched. Design by &lt;a href=&quot;http://pinheiro-kde.blogspot.com/&quot;&gt;Nuno&lt;/a&gt;. It looks awesome.&lt;/li&gt; 
&lt;li&gt;&lt;a href=&quot;http://konqueror.kde.org&quot;&gt;Konqueror&#039;s webpage&lt;/a&gt; &lt;a href=&quot;http://emilsedgh.info/blog/index.php?/archives/10-Konquerors-new-webpage.html&quot;&gt;had an overhaul&lt;/a&gt;. It looks much better as well.&lt;/li&gt; 
&lt;li&gt;&lt;a href=&quot;http://my.opera.com/it-s/blog/2011/06/06/www-sprint-a-brief-recap-of&quot;&gt;First KDE-WWW&lt;/a&gt; sprint held in Essen, Germany. I missed it, but followed it very closely.&lt;/li&gt; 
&lt;li&gt;&lt;a href=&quot;http://neverendingo.blogspot.com/2011/06/webworld-2011-day-1.html&quot;&gt;Some rules&lt;/a&gt; set for kde subdomains. Hopefully they will prevent outdated and useless subdomains. They make kde look very bad.&lt;/li&gt; 
&lt;li&gt;We got a new logo! Designed by Eugene Trounev (it-s)
&lt;/li&gt; 
&lt;li&gt;Many outdated and useless subdomains were removed.&lt;/li&gt; 
&lt;li&gt;New plans in place for kde.org and related websites. More on that will follow soon. VERY exciting.&lt;/li&gt; 
&lt;li&gt;KDE Sysadmins provided webstats for many kde webpages. We can now see which pages are in use.&lt;/li&gt; 
&lt;li&gt;&lt;a href=&quot;http://userbase.kde.org&quot;&gt;Userbase&lt;/a&gt; received many improvements, specially its translation system. Userbase guys and gals are doing an incredible job over there.&lt;/li&gt; 
&lt;li&gt;&lt;a href=&quot;http://userbase.kde.org&quot;&gt;Userbase&lt;/a&gt; also got a new logo, again by Eugene.
&lt;br /&gt; &lt;a href=&quot;http://userbase.kde.org&quot;&gt;&lt;img src=&quot;http://emilsedgh.info/blog/uploads/kdelogo.png&quot; alt=&quot;Userbase logo&quot; title=&quot;Userbase logo&quot; /&gt;&lt;/a&gt; &lt;/li&gt; 
&lt;li&gt;&lt;a href=&quot;http://edu.kde.org&quot;&gt;KDE Edu&lt;/a&gt; &lt;a href=&quot;http://dot.kde.org/2011/04/30/new-look-kde-edu&quot;&gt;got a new logo and webpage.&lt;/a&gt;&amp;#160;Its also translated into 4 languages.&lt;/li&gt; 
&lt;li&gt;&lt;a href=&quot;http://blogs.kde.org&quot;&gt;KDE&#039;s blogging platform (aka kdevelopers.org)&lt;/a&gt; got a facelift. Looks much better now.&lt;/li&gt; 
&lt;/ul&gt;

KDE provides high-quality software. Our job is to represent it to the world (via web). Join us and make sure we make kde webpages as good as itself.
&lt;br /&gt;
As your first contribution you can update Kopete&#039;s webpage. Apperantly its getting a lot of hits, but its very very outdated. 
    </content:encoded>

    <pubDate>Thu, 16 Jun 2011 19:40:04 +0400</pubDate>
    <guid isPermaLink="false">http://emilsedgh.info/blog/index.php?/archives/11-guid.html</guid>
    
</item>
<item>
    <title>Konqueror's new webpage</title>
    <link>http://emilsedgh.info/blog/index.php?/archives/10-Konquerors-new-webpage.html</link>
    
    <comments>http://emilsedgh.info/blog/index.php?/archives/10-Konquerors-new-webpage.html#comments</comments>
    <wfw:comment>http://emilsedgh.info/blog/wfwcomment.php?cid=10</wfw:comment>

    <slash:comments>10</slash:comments>
    <wfw:commentRss>http://emilsedgh.info/blog/rss.php?version=2.0&amp;type=comments&amp;cid=10</wfw:commentRss>
    

    <author>nospam@example.com (Emil Sedgh)</author>
    <content:encoded>
    &lt;div&gt;One thing I learned after observing planet kde through last 3/4 years is: &#039;blogging brings enthusiasm&#039;.&lt;/div&gt; 
&lt;div&gt;Thats why I started blogging about little work I do on kde&#039;s webpages and it worked.&amp;#160;After my blog post about &lt;a href=&quot;http://emilsedgh.info/blog/index.php?/archives/7-Future-of-kdes-web-presence.html&quot;&gt;future of kde&#039;s web presence&lt;/a&gt;, Martin Nuber (mjn) contacted us on #kde-www channel to see how he could get involved. And now:&lt;/div&gt; 
&lt;div&gt;&lt;br /&gt;&lt;/div&gt; 
&lt;div&gt;&lt;a href=&quot;http://konqueror.kde.org&quot; title=&quot;Konqeuror&quot;&gt;Konqeuror has a new website.&lt;/a&gt;&lt;/div&gt; 
&lt;div&gt;&lt;br /&gt;&lt;/div&gt; 
&lt;div&gt;&lt;a href=&quot;http://emilsedgh.info/blog/uploads/Konquerorsnewwebpage/image3063.png&quot; title=&quot;New website vs. old website&quot;&gt;&lt;img src=&quot;http://emilsedgh.info/blog/uploads/Konquerorsnewwebpage/image3063.png&quot; width=&quot;1000&quot; height=&quot;450&quot; alt=&quot;Konqueror&#039;s new webpage vs. the old one&quot; align=&quot;middle&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt; 
&lt;div&gt;&lt;br /&gt;&lt;/div&gt; 
&lt;div&gt;Thanks to Martin for working on it.&lt;/div&gt; 
&lt;div&gt;&lt;br /&gt;&lt;/div&gt; 
&lt;div&gt;And, please remember: If you have a minimal html/php knowledge, you can take care of one of many many outdated kde websites.&lt;/div&gt; 
&lt;div&gt; 
&lt;ul&gt; 
&lt;li&gt;Its very easy. Its almost plain html.&lt;/li&gt; 
&lt;li&gt;Each website, usually takes a few days to be completely refreshed (Martin spent ~3 days working on it)&lt;/li&gt; 
&lt;/ul&gt; 
&lt;/div&gt; 
&lt;div&gt;&lt;br /&gt;&lt;/div&gt; 
&lt;div&gt;I&#039;d say &lt;a href=&quot;http://kopete.kde.org&quot; title=&quot;Kopete&quot;&gt;Kopete&lt;/a&gt;&amp;#160;or&amp;#160;&lt;a href=&quot;http://events.kde.org&quot; title=&quot;KDE Events&quot;&gt;KDE Events&lt;/a&gt;&amp;#160;webpages are both good candidates for having a new look and updated content. What do you think?&lt;/div&gt; 
    </content:encoded>

    <pubDate>Sat, 07 May 2011 17:53:43 +0400</pubDate>
    <guid isPermaLink="false">http://emilsedgh.info/blog/index.php?/archives/10-guid.html</guid>
    
</item>
<item>
    <title>Sprint management</title>
    <link>http://emilsedgh.info/blog/index.php?/archives/8-Sprint-management.html</link>
    
    <comments>http://emilsedgh.info/blog/index.php?/archives/8-Sprint-management.html#comments</comments>
    <wfw:comment>http://emilsedgh.info/blog/wfwcomment.php?cid=8</wfw:comment>

    <slash:comments>2</slash:comments>
    <wfw:commentRss>http://emilsedgh.info/blog/rss.php?version=2.0&amp;type=comments&amp;cid=8</wfw:commentRss>
    

    <author>nospam@example.com (Emil Sedgh)</author>
    <content:encoded>
    &lt;div&gt;A few months back, &lt;a href=&quot;http://aseigo.blogspot.com/2010/11/kde-and-web-developers.html&quot;&gt;Aaron mentioned on his blog&lt;/a&gt; that kde needs a little web application for managing sprints, as apperantly it takes a lot of manual effort to coordinate one, at the moment.&lt;/div&gt; 
&lt;div&gt;Two months ago, while i was doing some other kde-www project (more on that later), i told him that im interested in creating it and 3 weeks ago, recieved an email from &lt;a href=&quot;http://blogs.fsfe.org/mario/&quot;&gt;Mario Fux (unormal)&lt;/a&gt; that he is planning a sprint (Randa 2011) and he would use this tool.&lt;/div&gt; 
&lt;div&gt;&lt;br /&gt;&lt;/div&gt; 
&lt;div&gt;&lt;a href=&quot;http://sprints.kde.org&quot;&gt;I started developing it&lt;/a&gt;, and it has been used for &lt;a href=&quot;http://sprints.kde.org/sprint/10&quot;&gt;Randa 2011&#039;s page&lt;/a&gt;. Some of the features are:&lt;/div&gt; 
&lt;div&gt; 
&lt;div&gt;1) Chihuahua look (kde.org&#039;s theme)&lt;/div&gt; 
&lt;div&gt;2) Identity.kde.org intergration&lt;/div&gt; 
&lt;div&gt;3) Location/Sprint manager&lt;/div&gt; 
&lt;div&gt;4) Ability to send email to participants&lt;/div&gt; 
&lt;div&gt;5) Participant registration&lt;/div&gt; 
&lt;div&gt;6) CSV export tool (other formats could be easily added, if you need)&lt;/div&gt; 
&lt;div&gt;7) Smart widgets (give a url to participant, it will automatically change to &#039;Im going to&#039;/&#039;Im at&#039;/&#039;I attended&#039; depending on the date&lt;/div&gt; 
&lt;div&gt;8 ) Sponsorship management&lt;/div&gt; 
&lt;div&gt;&lt;br /&gt;&lt;/div&gt; 
&lt;div&gt; 
&lt;p&gt;If you are planning to host/coordinate a sprint, using this tool helps you a bit. Just poke me (im emilsedgh on freenode, or emilsedgh on gmail) and i&#039;ll setup a new one and will give you the access rights to manage it.&lt;/p&gt; 
&lt;p&gt; &lt;/p&gt; 
&lt;/div&gt; 
&lt;div&gt;If you used this tool to register on Randa sprint, i would like to know your comments and recieve some feedback.&lt;/div&gt; 
&lt;div&gt;&lt;br /&gt;&lt;/div&gt; 
&lt;div&gt;Also, i would like to thanks Ben Cooksley and Tom Albers. They helped me A LOT. and they did it very fast, every time i bothered them. Thanks guys.&lt;/div&gt; 
&lt;/div&gt; 
    </content:encoded>

    <pubDate>Mon, 04 Apr 2011 22:43:30 +0400</pubDate>
    <guid isPermaLink="false">http://emilsedgh.info/blog/index.php?/archives/8-guid.html</guid>
    
</item>
<item>
    <title>Future of kde's web presence</title>
    <link>http://emilsedgh.info/blog/index.php?/archives/7-Future-of-kdes-web-presence.html</link>
    
    <comments>http://emilsedgh.info/blog/index.php?/archives/7-Future-of-kdes-web-presence.html#comments</comments>
    <wfw:comment>http://emilsedgh.info/blog/wfwcomment.php?cid=7</wfw:comment>

    <slash:comments>29</slash:comments>
    <wfw:commentRss>http://emilsedgh.info/blog/rss.php?version=2.0&amp;type=comments&amp;cid=7</wfw:commentRss>
    

    <author>nospam@example.com (Emil Sedgh)</author>
    <content:encoded>
    &lt;div&gt;Hello everyone.&lt;/div&gt; 
&lt;div&gt;&lt;br /&gt;&lt;/div&gt; 
&lt;div&gt;You might know that we are starting to think about &#039;Capacity 2.0&#039;, aka &#039;the&lt;/div&gt; 
&lt;div&gt;future of kde websites&#039;.&lt;/div&gt; 
&lt;div&gt;&lt;br /&gt;&lt;/div&gt; 
&lt;div&gt;Here is what we have in mind. This is pure brainstorming, although i think&lt;/div&gt; 
&lt;div&gt;many of us share the same vision.&lt;/div&gt; 
&lt;div&gt;&lt;br /&gt;&lt;/div&gt; 
&lt;div&gt;1) Content/Logic seperation.&lt;/div&gt; 
&lt;div&gt;Currently, Capacity has no seperation between anything. Its spaghetti php&lt;/div&gt; 
&lt;div&gt;code mixed with html which containts logic, view AND data.&lt;/div&gt; 
&lt;div&gt;&lt;br /&gt;&lt;/div&gt; 
&lt;div&gt;With Capacity 2.0, we want to have a properly written CMS which stores data in&lt;/div&gt; 
&lt;div&gt;a database. We also want an MVC approach to ease and organize development.&lt;/div&gt; 
&lt;div&gt;&lt;br /&gt;&lt;/div&gt; 
&lt;div&gt;2) No more seperate instances for each application.&lt;/div&gt; 
&lt;div&gt;&lt;br /&gt;&lt;/div&gt; 
&lt;div&gt;Currently, if you want a website for your application, you have to ask&lt;/div&gt; 
&lt;div&gt;sysadmins for a kde.org subdomain. You should also &#039;commit&#039; your websites files&lt;/div&gt; 
&lt;div&gt;(as mentioned in 1st issue, content, view and logic are in simple php files) to&lt;/div&gt; 
&lt;div&gt;svn/git.&lt;/div&gt; 
&lt;div&gt;&lt;br /&gt;&lt;/div&gt; 
&lt;div&gt;This approach has a BIG flaw:&lt;/div&gt; 
&lt;div&gt;Its HARD. Setting it up is hard. Updating it is hard. Changing it is hard.&lt;/div&gt; 
&lt;div&gt;&lt;br /&gt;&lt;/div&gt; 
&lt;div&gt;Thats why there are so many outdated kde.org subdomains. Of course, some&lt;/div&gt; 
&lt;div&gt;people have an awesome attitude. For example Okular people have their website&lt;/div&gt; 
&lt;div&gt;updated, but Pino and Albert are exceptions. Most capacity based kde.org&lt;/div&gt; 
&lt;div&gt;subdomains are outdated (specially those which belong to an application)&lt;/div&gt; 
&lt;div&gt;&lt;br /&gt;&lt;/div&gt; 
&lt;div&gt;Most KDE developers do not even have a LAMP stack installed. They checkout their&lt;/div&gt; 
&lt;div&gt;website&#039;s source, change some dirty html and commit. Then they refresh the&lt;/div&gt; 
&lt;div&gt;webpage to see what has changed.&lt;/div&gt; 
&lt;div&gt;&lt;br /&gt;&lt;/div&gt; 
&lt;div&gt;We are going to create a single webapp which contains all data: One site to&lt;/div&gt; 
&lt;div&gt;rule them all.&lt;/div&gt; 
&lt;div&gt;&lt;br /&gt;&lt;/div&gt; 
&lt;div&gt;3) Dedicated to applications.&lt;/div&gt; 
&lt;div&gt;&lt;br /&gt;&lt;/div&gt; 
&lt;div&gt;As we said, we are going to create a single website which contains all data.&lt;/div&gt; 
&lt;div&gt;But you probably dont want your application to be &#039;just another page&#039; of&lt;/div&gt; 
&lt;div&gt;kde.org, right? You want your (sub)domain to be dedicated to your application.&lt;/div&gt; 
&lt;div&gt;Dedicated to your application.&lt;/div&gt; 
&lt;div&gt;&lt;br /&gt;&lt;/div&gt; 
&lt;div&gt;We are going to handle this. We want your application&#039;s page to be dedicated&lt;/div&gt; 
&lt;div&gt;to your application, while being a part of kde.org. we will also have&lt;/div&gt; 
&lt;div&gt;&amp;lt;appname&amp;gt;.kde.org stuff handled as well.&lt;/div&gt; 
&lt;div&gt;&lt;br /&gt;&lt;/div&gt; 
&lt;div&gt;4) Flexibility.&lt;/div&gt; 
&lt;div&gt;Of course there is one bad thing about using a cms or something like that: You&lt;/div&gt; 
&lt;div&gt;lose flexibility. With current capacity, you can just commit your html stuff.&lt;/div&gt; 
&lt;div&gt;With new approach, you couldnt.&lt;/div&gt; 
&lt;div&gt;So, the cms will HAVE to be very much flexible to satisfy your needs.&lt;/div&gt; 
&lt;div&gt;&lt;br /&gt;&lt;/div&gt; 
&lt;div&gt;5) Revisions.&lt;/div&gt; 
&lt;div&gt;Good thing about current setup? We can blame you. We can see what you commited&lt;/div&gt; 
&lt;div&gt;and we can YELL at you.&lt;/div&gt; 
&lt;div&gt;We dont want to lose this feature. CMS will have to track whatever, whoever,&lt;/div&gt; 
&lt;div&gt;whenever does it. And will have to be able to revert easily.&lt;/div&gt; 
&lt;div&gt;&lt;br /&gt;&lt;/div&gt; 
&lt;div&gt;6) Multilingual. It has to be. Do i have to explain?&lt;/div&gt; 
&lt;div&gt;&lt;br /&gt;&lt;/div&gt; 
&lt;div&gt;7) ACL&#039;s. Another good thing about using svn to manage websites is that we&lt;/div&gt; 
&lt;div&gt;have acl&#039;s to know who has access to which website. Now that we are going to&lt;/div&gt; 
&lt;div&gt;have a single site to rule them all, we need advanced ACL&#039;s.&lt;/div&gt; 
&lt;div&gt;&lt;br /&gt;&lt;/div&gt; 
&lt;div&gt;8 ) Integration. It needs to interact with identity.kde.org for authentication&lt;/div&gt; 
&lt;div&gt;and user data, projects.kde.org to understand project&#039;s, repositories,&lt;/div&gt; 
&lt;div&gt;managers and other info. OCS and KNewStuff intergration could all be done.&lt;/div&gt; 
&lt;div&gt;&lt;br /&gt;&lt;/div&gt; 
&lt;div&gt;Those are the core points. If you have others to add, please feel free to reply and make it happen.&lt;/div&gt; 
&lt;div&gt;Note, a rewrite is seriously needed for the ease of maintenance, so this is not necessarily about keeping the current way or not.&lt;/div&gt; 
&lt;div&gt; 
&lt;p&gt;It is about improving the whole kde web experience.&lt;/p&gt; 
&lt;p&gt; &lt;/p&gt; 
&lt;p&gt;This post is written with collaboration of &lt;a href=&quot;http://neverendingo.blogspot.com/&quot;&gt;Ingo Malchow&lt;/a&gt;&amp;#160;and &lt;a href=&quot;http://www.sayakbanerjee.com/&quot;&gt;Sayak Banerjee&lt;/a&gt;. Special thanks to both.&lt;/p&gt; 
&lt;/div&gt; 
    </content:encoded>

    <pubDate>Thu, 31 Mar 2011 13:39:18 +0400</pubDate>
    <guid isPermaLink="false">http://emilsedgh.info/blog/index.php?/archives/7-guid.html</guid>
    
</item>
<item>
    <title>SVG manipulation using php and xpath</title>
    <link>http://emilsedgh.info/blog/index.php?/archives/1-SVG-manipulation-using-php-and-xpath.html</link>
    
    <comments>http://emilsedgh.info/blog/index.php?/archives/1-SVG-manipulation-using-php-and-xpath.html#comments</comments>
    <wfw:comment>http://emilsedgh.info/blog/wfwcomment.php?cid=1</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://emilsedgh.info/blog/rss.php?version=2.0&amp;type=comments&amp;cid=1</wfw:commentRss>
    

    <author>nospam@example.com (Emil Sedgh)</author>
    <content:encoded>
    (This is not a KDE related post)&lt;br /&gt;
I&#039;ve had very little experiences with SVG manipulation on server side. So i thought i&#039;d better share it.&lt;br /&gt;
Following is a very little guide about creating a dynamic frame for your pictures. And its just supposed to show how cool stuff could be done using SVG, XPath, PHP and a SVG rendering tool, like rsvg.&lt;br /&gt;
You upload your family picture, it places it inside a very cool frame. Thats it.&lt;br /&gt;
Good thing about SVG is, you can do some real WYSIWYG. So, open your favourite svg editor, and create a cool frame.&lt;br /&gt;
&lt;img src=&quot;http://emilsedgh.info/blog/uploads/snapshot1.png&quot; /&gt;&lt;br /&gt;
(I suck at artistic stuff, so I borrowed the frame from &lt;a href=&quot;http://www.clker.com/clipart-flower-frame.html&quot;&gt;this&lt;/a&gt; page.&lt;br /&gt;
Then, You should import an example picture which is supposed to be a placeholder for uploaded family photos.&lt;br /&gt;
&lt;img src=&quot;http://emilsedgh.info/blog/uploads/snapshot2.png&quot; /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;http://emilsedgh.info/blog/uploads/snapshot3.png&quot; /&gt;&lt;br /&gt;
To add a cool effect, i duplicated the image and stretched it a bit:&lt;br /&gt;
&lt;img src=&quot;http://emilsedgh.info/blog/uploads/snapshot4.png&quot; /&gt;&lt;br /&gt;
Then i added the blur effect to make it look cool and fancy.&lt;br /&gt;
&lt;img src=&quot;http://emilsedgh.info/blog/uploads/snapshot5.png&quot; /&gt;&lt;br /&gt;
SVG features a group feature, by which you can group a few elements togheter. We do it because later, it will allow us to transform the image painlessly.&lt;br /&gt;
&lt;img src=&quot;http://emilsedgh.info/blog/uploads/snapshot6.png&quot; /&gt;&lt;br /&gt;
There are many group&#039;s on the document. Later, we have to be able to find the one we want. So we use inkscape&#039;s XML editor feature and give our group (&amp;lt;g&amp;gt;) element the &#039;frame&#039; id.&lt;br /&gt;
&lt;img src=&quot;http://emilsedgh.info/blog/uploads/snapshot6.5.png&quot; /&gt;&lt;br /&gt;
&lt;img src=&quot;http://emilsedgh.info/blog/uploads/snapshot6.6.png&quot; /&gt;&lt;br /&gt;
We should also fit our page to the whole frame. So we use inkscape&#039;s feature. Select the whole frame, then use the &#039;Fit page to selection&#039; button inside the &#039;Document properties&#039; dialog.&lt;br /&gt;
&lt;img src=&quot;http://emilsedgh.info/blog/uploads/snapshot7.png&quot; /&gt;&lt;br /&gt;
&lt;img src=&quot;http://emilsedgh.info/blog/uploads/snapshot8.png&quot; /&gt;&lt;br /&gt;
&lt;img src=&quot;http://emilsedgh.info/blog/uploads/snapshot9.png&quot; /&gt;&lt;br /&gt;
And, last, save your SVG file. Make sure you save it as plain SVG, not an inkscape SVG or any other modified SVG file.&lt;br /&gt;
&lt;img src=&quot;http://emilsedgh.info/blog/uploads/snapshot10.png&quot; /&gt;&lt;br /&gt;
Now save the following into an html file.&lt;br /&gt;&lt;br /&gt;
&lt;div class=&quot;geshifilter&quot;&gt;
&lt;pre style=&quot;font-family: monospace;&quot; class=&quot;text geshifilter-text&quot;&gt;&amp;lt;html&amp;gt;
	&amp;lt;head&amp;gt;
		&amp;lt;title&amp;gt;SVG photo-frame&amp;lt;/title&amp;gt;
	&amp;lt;/head&amp;gt;
	&amp;lt;body&amp;gt;
		&amp;lt;form action=&quot;show.php&quot; enctype=&quot;multipart/form-data&quot; method=&quot;post&quot;&amp;gt;
			Photo:
			&amp;lt;br /&amp;gt;
			&amp;lt;input type=&quot;file&quot; name=&quot;photo&quot; /&amp;gt;
			&amp;lt;br /&amp;gt;
			&amp;lt;br /&amp;gt;
&amp;#160;
			Rotate:
			&amp;lt;br /&amp;gt;
			&amp;lt;input type=&quot;text&quot; name=&quot;rotate&quot; value=&quot;0&quot; /&amp;gt;
			&amp;lt;br /&amp;gt;
			&amp;lt;br /&amp;gt;
&amp;#160;
			Size:
			&amp;lt;br /&amp;gt;
			&amp;lt;input type=&quot;text&quot; name=&quot;size&quot; value=&quot;100&quot; /&amp;gt; %
			&amp;lt;br /&amp;gt;
			&amp;lt;br /&amp;gt;
&amp;#160;
			&amp;lt;input type=&quot;submit&quot; value=&quot;Daa it Co0l!&quot;/&amp;gt;
		&amp;lt;/form&amp;gt;
	&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&lt;/pre&gt;
&lt;/div&gt;
&amp;#160;&lt;br /&gt;
and here is show.php file. I explain it step by step.&lt;br /&gt;
&amp;#160;&lt;br /&gt;
&lt;div class=&quot;geshifilter&quot;&gt;
&lt;pre style=&quot;font-family: monospace;&quot; class=&quot;php geshifilter-php&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-weight: bold;&quot;&gt;&amp;lt;?php&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 136);&quot;&gt;$document&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 153, 51);&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-weight: bold;&quot;&gt;new&lt;/span&gt; DomDocument&lt;span style=&quot;color: rgb(51, 153, 51);&quot;&gt;;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 136);&quot;&gt;$document&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 153, 51);&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 64, 0);&quot;&gt;loadXML&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 153, 0);&quot;&gt;(&lt;/span&gt;&lt;a href=&quot;http://www.php.net/file_get_contents&quot;&gt;&lt;span style=&quot;color: rgb(153, 0, 0);&quot;&gt;file_get_contents&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;color: rgb(0, 153, 0);&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 255);&quot;&gt;&#039;/path/to/your/svg/frame&#039;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 153, 0);&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 153, 0);&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 153, 51);&quot;&gt;;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&amp;#160;&lt;br /&gt;
DOMDocument, is a php class for accessing DOM objects. first, we create a DOMDocument. Then, in the second line, we load our SVG file onto it.&lt;br /&gt;
Now, we have to replace the placeholder (in our case, Griffin&#039;s family) with the uploaded one.&lt;br /&gt;
First, we save the uploaded one as a temporary file:&lt;br /&gt;&lt;br /&gt;
&lt;div class=&quot;geshifilter&quot;&gt;
&lt;pre style=&quot;font-family: monospace;&quot; class=&quot;php geshifilter-php&quot;&gt;&lt;a href=&quot;http://www.php.net/copy&quot;&gt;&lt;span style=&quot;color: rgb(153, 0, 0);&quot;&gt;copy&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;color: rgb(0, 153, 0);&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 136);&quot;&gt;$_FILES&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 153, 0);&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 255);&quot;&gt;&#039;photo&#039;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 153, 0);&quot;&gt;]&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 153, 0);&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 255);&quot;&gt;&#039;tmp_name&#039;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 153, 0);&quot;&gt;]&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 153, 51);&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 255);&quot;&gt;&#039;temp.png&#039;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 153, 0);&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 153, 51);&quot;&gt;;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&amp;#160;&lt;br /&gt;
Remember some html? to embedd an image, we had to do the following:&lt;br /&gt;&lt;br /&gt;
&lt;div class=&quot;geshifilter&quot;&gt;
&lt;pre style=&quot;font-family: monospace;&quot; class=&quot;php geshifilter-php&quot;&gt;&lt;span style=&quot;color: rgb(51, 153, 51);&quot;&gt;&amp;lt;&lt;/span&gt;img src&lt;span style=&quot;color: rgb(51, 153, 51);&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 255);&quot;&gt;&quot;/path/to/image.png&quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 153, 51);&quot;&gt;...&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&amp;#160;&lt;br /&gt;
in SVG, it has to be done this way:&lt;br /&gt;&lt;br /&gt;
&lt;div class=&quot;geshifilter&quot;&gt;
&lt;pre style=&quot;font-family: monospace;&quot; class=&quot;php geshifilter-php&quot;&gt;&lt;span style=&quot;color: rgb(51, 153, 51);&quot;&gt;&amp;lt;&lt;/span&gt;image xlink&lt;span style=&quot;color: rgb(51, 153, 51);&quot;&gt;:&lt;/span&gt;href&lt;span style=&quot;color: rgb(51, 153, 51);&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 255);&quot;&gt;&quot;/path/to/image.png&quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 153, 51);&quot;&gt;...&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&amp;#160;&lt;br /&gt;
We currently have two placeholder &amp;lt;image&amp;gt;&#039;s there. the main one and the blurred one.&lt;br /&gt;
So we have two of the following in our page:&lt;br /&gt;
&amp;#160;&lt;br /&gt;
&lt;div class=&quot;geshifilter&quot;&gt;
&lt;pre style=&quot;font-family: monospace;&quot; class=&quot;php geshifilter-php&quot;&gt;&lt;span style=&quot;color: rgb(51, 153, 51);&quot;&gt;&amp;lt;&lt;/span&gt;image xlink&lt;span style=&quot;color: rgb(51, 153, 51);&quot;&gt;:&lt;/span&gt;href&lt;span style=&quot;color: rgb(51, 153, 51);&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 255);&quot;&gt;&quot;/path/to/image/we/imported/in/our/svg/editor.jpg&quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 153, 51);&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&amp;#160;&lt;br /&gt;
We should find &amp;lt;image&amp;gt; elements. Thats where XPath comes in.&lt;br /&gt;
&amp;#160;&lt;br /&gt;
&lt;div class=&quot;geshifilter&quot;&gt;
&lt;pre style=&quot;font-family: monospace;&quot; class=&quot;php geshifilter-php&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 136);&quot;&gt;$xpath&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 153, 51);&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-weight: bold;&quot;&gt;new&lt;/span&gt; DOMXpath&lt;span style=&quot;color: rgb(0, 153, 0);&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 136);&quot;&gt;$document&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 153, 0);&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 153, 51);&quot;&gt;;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 136);&quot;&gt;$images&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 153, 51);&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 136);&quot;&gt;$xpath&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 153, 51);&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 64, 0);&quot;&gt;query&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 153, 0);&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 255);&quot;&gt;&#039;//image&#039;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 153, 0);&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 153, 51);&quot;&gt;;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&amp;#160;&lt;br /&gt;
First, we create an XPath object from our DOMDocument.&lt;br /&gt;
Then, in the second line, we look for all &amp;lt;image&amp;gt; tags inside the whole document.&lt;br /&gt;
XPath object searches through provided DOMDocument and the query results are DOMElement&#039;s, which are inside the DOMDocument. So by altering the results of XPath query, we are actually manipulating our $document:&lt;br /&gt;
&amp;#160;&lt;br /&gt;
&lt;div class=&quot;geshifilter&quot;&gt;
&lt;pre style=&quot;font-family: monospace;&quot; class=&quot;php geshifilter-php&quot;&gt;&lt;span style=&quot;color: rgb(177, 177, 0);&quot;&gt;foreach&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 153, 0);&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 136);&quot;&gt;$images&lt;/span&gt;&lt;span style=&quot;color: rgb(177, 177, 0);&quot;&gt;as&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 136);&quot;&gt;$image&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 153, 0);&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 153, 0);&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color: rgb(102, 102, 102); font-style: italic;&quot;&gt;// Each $image is represents one &amp;lt;image&amp;gt; element.&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 136);&quot;&gt;$image&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 153, 51);&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 64, 0);&quot;&gt;setAttribute&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 153, 0);&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 255);&quot;&gt;&#039;xlink:href&#039;&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 153, 51);&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 255);&quot;&gt;&#039;temp.png&#039;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 153, 0);&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 153, 51);&quot;&gt;;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 153, 0);&quot;&gt;}&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&amp;#160;&lt;br /&gt;
we altered $document which now contains &amp;lt;image&amp;gt; elements whom link to uploaded image, not the placeholder.&lt;br /&gt;
Now images are replaced. We also got some Size and Rotate stuff on input. SVG, means Scalable Vector Graphics. We should be able to resize the image as much as we want.&lt;br /&gt;
to resize the image, we have to use some SVG features. Remember that we grouped our frame?&lt;br /&gt;
A group, in SVG file, is represented by a &amp;lt;g&amp;gt; element. Our &amp;lt;g&amp;gt; has the id=&#039;frame&#039; so we could find it easily.&lt;br /&gt;
&lt;div class=&quot;geshifilter&quot;&gt;
&lt;pre style=&quot;font-family: monospace;&quot; class=&quot;php geshifilter-php&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 136);&quot;&gt;$group&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 153, 51);&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 136);&quot;&gt;$xpath&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 153, 51);&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 64, 0);&quot;&gt;query&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 153, 0);&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 255);&quot;&gt;&quot;//group[@id=&#039;frame&#039;]/0&quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 153, 0);&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 153, 51);&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 64, 0);&quot;&gt;item&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 153, 0);&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: rgb(204, 102, 204);&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 153, 0);&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 153, 51);&quot;&gt;;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&amp;#160;&lt;br /&gt;
Now, $group, represents our &amp;lt;g&amp;gt; element.&lt;br /&gt;&amp;lt;g&amp;gt; element in svg accepts a very cool attribute named transform. we can use the transform attribute to resize the whole group, or rotate it.&lt;br /&gt;
Like this:&lt;br /&gt;&lt;br /&gt;
&lt;div class=&quot;geshifilter&quot;&gt;
&lt;pre style=&quot;font-family: monospace;&quot; class=&quot;php geshifilter-php&quot;&gt;&lt;span style=&quot;color: rgb(51, 153, 51);&quot;&gt;&amp;lt;&lt;/span&gt;g id&lt;span style=&quot;color: rgb(51, 153, 51);&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 255);&quot;&gt;&quot;foo&quot;&lt;/span&gt; transform&lt;span style=&quot;color: rgb(51, 153, 51);&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 255);&quot;&gt;&quot;scale(2) rotate(30)&quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 153, 51);&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&amp;#160;&lt;br /&gt;
This will scale up the group by 2 times and rotate it 30 degrees. (notice that there is no ; between transform functions)&lt;br /&gt;
So we should apply user&#039;s input to our &amp;lt;g&amp;gt;.&lt;br /&gt;
&amp;#160;&lt;br /&gt;
&lt;div class=&quot;geshifilter&quot;&gt;
&lt;pre style=&quot;font-family: monospace;&quot; class=&quot;php geshifilter-php&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 136);&quot;&gt;$group&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 153, 51);&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 64, 0);&quot;&gt;setAttribute&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 153, 0);&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 255);&quot;&gt;&#039;transform&#039;&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 153, 51);&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 255);&quot;&gt;&quot;scale(&quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 153, 51);&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 136);&quot;&gt;$_POST&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 153, 0);&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 255);&quot;&gt;&#039;size&#039;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 153, 0);&quot;&gt;]&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 153, 51);&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(204, 102, 204);&quot;&gt;100&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 153, 51);&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 255);&quot;&gt;&quot;) rotate(&quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 153, 51);&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 136);&quot;&gt;$_POST&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 153, 0);&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 255);&quot;&gt;&#039;rotate&#039;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 153, 0);&quot;&gt;]&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 153, 51);&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 255);&quot;&gt;&quot;)&quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 153, 0);&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 153, 51);&quot;&gt;;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&amp;#160;&lt;br /&gt;
(Notice that scale should be between 0 and 1 where 1 means 100%)&lt;br /&gt;
But its not enough. Without doing any change, our document size fits our &amp;lt;g&amp;gt;&#039;s size.&lt;br /&gt;
But when we changed our &amp;lt;g&amp;gt;&#039;s size, they dont fit anymore. And we have to fix it.&lt;br /&gt;
&amp;#160;&lt;br /&gt;
&lt;div class=&quot;geshifilter&quot;&gt;
&lt;pre style=&quot;font-family: monospace;&quot; class=&quot;php geshifilter-php&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 136);&quot;&gt;$svg&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 153, 51);&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 136);&quot;&gt;$xpath&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 153, 51);&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 64, 0);&quot;&gt;query&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 153, 0);&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 255);&quot;&gt;&#039;/svg&#039;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 153, 0);&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 153, 51);&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 64, 0);&quot;&gt;item&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 153, 0);&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: rgb(204, 102, 204);&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 153, 0);&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 153, 51);&quot;&gt;;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 136);&quot;&gt;$width&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 153, 51);&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 153, 0);&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 136);&quot;&gt;$_POST&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 153, 0);&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 255);&quot;&gt;&#039;size&#039;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 153, 0);&quot;&gt;]&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 153, 51);&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(204, 102, 204);&quot;&gt;100&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 153, 0);&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 153, 51);&quot;&gt;*&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 136);&quot;&gt;$svg&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 153, 51);&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 64, 0);&quot;&gt;getAttribute&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 153, 0);&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 255);&quot;&gt;&#039;width&#039;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 153, 0);&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 153, 51);&quot;&gt;;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 136);&quot;&gt;$height&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 153, 51);&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 153, 0);&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 136);&quot;&gt;$_POST&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 153, 0);&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 255);&quot;&gt;&#039;size&#039;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 153, 0);&quot;&gt;]&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 153, 51);&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(204, 102, 204);&quot;&gt;100&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 153, 0);&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 153, 51);&quot;&gt;*&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 136);&quot;&gt;$svg&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 153, 51);&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 64, 0);&quot;&gt;getAttribute&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 153, 0);&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 255);&quot;&gt;&#039;height&#039;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 153, 0);&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 153, 51);&quot;&gt;;&lt;/span&gt;&amp;#160;
&lt;span style=&quot;color: rgb(0, 0, 136);&quot;&gt;$svg&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 153, 51);&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 64, 0);&quot;&gt;setAttribute&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 153, 0);&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 255);&quot;&gt;&#039;width&#039;&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 153, 51);&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 136);&quot;&gt;$width&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 153, 0);&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 153, 51);&quot;&gt;;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 136);&quot;&gt;$svg&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 153, 51);&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 64, 0);&quot;&gt;setAttribute&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 153, 0);&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 255);&quot;&gt;&#039;height&#039;&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 153, 51);&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 136);&quot;&gt;$height&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 153, 0);&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 153, 51);&quot;&gt;;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&amp;#160;&lt;br /&gt;
SVG&#039;s root element in &lt;svg&gt; and has width and height attributes.&lt;/svg&gt;&lt;br /&gt;
Thats it. now we have to generate a png from our svg file.&lt;br /&gt;
I use the rsvg command to generate it.&lt;br /&gt;
usage is simple: rsvg input.svg output.png&lt;br /&gt;
as you see, it gets an input. so we have to save our manipulated svg file first:&lt;br /&gt;
&amp;#160;&lt;br /&gt;
&lt;div class=&quot;geshifilter&quot;&gt;
&lt;pre style=&quot;font-family: monospace;&quot; class=&quot;php geshifilter-php&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 136);&quot;&gt;$temp&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 153, 51);&quot;&gt;=&lt;/span&gt;&lt;a href=&quot;http://www.php.net/fopen&quot;&gt;&lt;span style=&quot;color: rgb(153, 0, 0);&quot;&gt;fopen&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;color: rgb(0, 153, 0);&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 255);&quot;&gt;&#039;temp.svg&#039;&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 153, 51);&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 255);&quot;&gt;&#039;w+&#039;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 153, 0);&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 153, 51);&quot;&gt;;&lt;/span&gt;&lt;a href=&quot;http://www.php.net/fwrite&quot;&gt;&lt;span style=&quot;color: rgb(153, 0, 0);&quot;&gt;fwrite&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;color: rgb(0, 153, 0);&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 136);&quot;&gt;$temp&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 153, 51);&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 136);&quot;&gt;$document&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 153, 51);&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 64, 0);&quot;&gt;saveXML&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 153, 0);&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 153, 0);&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 153, 0);&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 153, 51);&quot;&gt;;&lt;/span&gt;&lt;a href=&quot;http://www.php.net/fclose&quot;&gt;&lt;span style=&quot;color: rgb(153, 0, 0);&quot;&gt;fclose&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;color: rgb(0, 153, 0);&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 136);&quot;&gt;$temp&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 153, 0);&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 153, 51);&quot;&gt;;&lt;/span&gt;&amp;#160;
&lt;a href=&quot;http://www.php.net/exec&quot;&gt;&lt;span style=&quot;color: rgb(153, 0, 0);&quot;&gt;exec&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;color: rgb(0, 153, 0);&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 255);&quot;&gt;&#039;rsvg temp.svg out.png&#039;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 153, 0);&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 153, 51);&quot;&gt;;&lt;/span&gt;&lt;a href=&quot;http://www.php.net/unlink&quot;&gt;&lt;span style=&quot;color: rgb(153, 0, 0);&quot;&gt;unlink&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;color: rgb(0, 153, 0);&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 255);&quot;&gt;&#039;temp.png&#039;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 153, 0);&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 153, 51);&quot;&gt;;&lt;/span&gt;&lt;a href=&quot;http://www.php.net/unlink&quot;&gt;&lt;span style=&quot;color: rgb(153, 0, 0);&quot;&gt;unlink&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;color: rgb(0, 153, 0);&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 255);&quot;&gt;&#039;temp.svg&#039;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 153, 0);&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 153, 51);&quot;&gt;;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-weight: bold;&quot;&gt;?&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 153, 51);&quot;&gt;&amp;lt;&lt;/span&gt;img src&lt;span style=&quot;color: rgb(51, 153, 51);&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 255);&quot;&gt;&quot;out.png&quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 153, 51);&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;&lt;br /&gt;
we save our svg file as temp.svg, then run the rsvg command to generate png file and then remove temporary files. at last, we show it.
&amp;#160;&lt;br /&gt;
This was just a demo. A lot more could be done using the techniques mentioned above.&lt;br /&gt;
And, &lt;a href=&quot;/svg_frame/index.html&quot;&gt;this&lt;/a&gt; is the live working copy.&lt;br /&gt; 
    </content:encoded>

    <pubDate>Sat, 25 Sep 2010 01:17:08 +0400</pubDate>
    <guid isPermaLink="false">http://emilsedgh.info/blog/index.php?/archives/1-guid.html</guid>
    
</item>
<item>
    <title>Tehran's 4.4 release party</title>
    <link>http://emilsedgh.info/blog/index.php?/archives/2-Tehrans-4.4-release-party.html</link>
    
    <comments>http://emilsedgh.info/blog/index.php?/archives/2-Tehrans-4.4-release-party.html#comments</comments>
    <wfw:comment>http://emilsedgh.info/blog/wfwcomment.php?cid=2</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://emilsedgh.info/blog/rss.php?version=2.0&amp;type=comments&amp;cid=2</wfw:commentRss>
    

    <author>nospam@example.com (Emil Sedgh)</author>
    <content:encoded>
    On Feburary 18th, &lt;a href=&quot;http://tehlug.org&quot;&gt;Tehran Linux Users Group&lt;/a&gt; gathered in Cafe Prague (a nice cafe in Tehran) to celebrate KDE SC 4.4&#039;s release.&lt;br /&gt; 
We had so little time to arrange everything and there were shortcomings, but it wasnt bad after all.&lt;br /&gt; 
We gave a piece of [KDE] cake to everyone present at cafe,  with a paper describing what FOSS is. Too bad we hadnt time to burn live discs so they can really try it immediately.&lt;br /&gt; 
Also, at the end, we created a very little KDE domino. Not that we are good at it or something, it was just fun. It was our first time and it didnt collapse as beautiful as what we saw on TV. Maybe a bigger and better one next time &lt;img src=&quot;http://emilsedgh.info/blog/templates/default/img/emoticons/wink.png&quot; alt=&quot;;-)&quot; style=&quot;display: inline; vertical-align: bottom;&quot; class=&quot;emoticon&quot; /&gt;&lt;br /&gt; 
I would thank Behnam, for helping me out with all stuff and Abbas, who was my partner on domino project &lt;img src=&quot;http://emilsedgh.info/blog/templates/default/img/emoticons/wink.png&quot; alt=&quot;;-)&quot; style=&quot;display: inline; vertical-align: bottom;&quot; class=&quot;emoticon&quot; /&gt;&lt;br /&gt; 
&lt;table&gt; 
&lt;tbody&gt; 
&lt;tr&gt; 
&lt;td&gt;&lt;img src=&quot;http://emilsedgh.info/blog/uploads/20100218_002_1.jpeg&quot; width=&quot;500&quot; height=&quot;375&quot; /&gt;&lt;/td&gt; 
&lt;td&gt;&lt;img src=&quot;http://emilsedgh.info/blog/uploads/20100218_007.jpeg&quot; width=&quot;500&quot; height=&quot;375&quot; /&gt;&lt;/td&gt; 
&lt;/tr&gt; 
&lt;tr&gt; 
&lt;td&gt;&lt;img src=&quot;http://emilsedgh.info/blog/uploads/20100218_004.jpeg&quot; width=&quot;500&quot; height=&quot;375&quot; /&gt;&lt;/td&gt; 
&lt;td&gt;&lt;img src=&quot;http://emilsedgh.info/blog/uploads/20100218_005.jpeg&quot; width=&quot;500&quot; height=&quot;375&quot; /&gt;&lt;/td&gt; 
&lt;/tr&gt; 
&lt;tr&gt; 
&lt;td&gt;&lt;img src=&quot;http://emilsedgh.info/blog/uploads/20100218_009.jpeg&quot; width=&quot;500&quot; height=&quot;375&quot; /&gt;&lt;/td&gt; 
&lt;td&gt;&lt;img src=&quot;http://emilsedgh.info/blog/uploads/45.jpeg&quot; width=&quot;500&quot; height=&quot;375&quot; /&gt;&lt;/td&gt; 
&lt;/tr&gt; 
&lt;tr&gt; 
&lt;td&gt;&lt;img src=&quot;http://emilsedgh.info/blog/uploads/20100218_017.jpeg&quot; width=&quot;375&quot; height=&quot;500&quot; /&gt;&lt;/td&gt; 
&lt;td&gt; &lt;/td&gt; 
&lt;/tr&gt; 
&lt;/tbody&gt; 
&lt;/table&gt; 
    </content:encoded>

    <pubDate>Mon, 08 Mar 2010 10:20:38 +0300</pubDate>
    <guid isPermaLink="false">http://emilsedgh.info/blog/index.php?/archives/2-guid.html</guid>
    
</item>
<item>
    <title>Im sorry world</title>
    <link>http://emilsedgh.info/blog/index.php?/archives/3-Im-sorry-world.html</link>
    
    <comments>http://emilsedgh.info/blog/index.php?/archives/3-Im-sorry-world.html#comments</comments>
    <wfw:comment>http://emilsedgh.info/blog/wfwcomment.php?cid=3</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://emilsedgh.info/blog/rss.php?version=2.0&amp;type=comments&amp;cid=3</wfw:commentRss>
    

    <author>nospam@example.com (Emil Sedgh)</author>
    <content:encoded>
    &lt;p&gt;Today was the 30&#039;th anniversary of &lt;a href=&quot;http://en.wikipedia.org/wiki/Iran_hostage_crisis&quot;&gt;Iran hostage crisis&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;The Islamic Republic, as usual, prepared a rally against the former building of U.S Embassy to tell Americans how much Iranians hate them. Thats just wrong.&lt;/p&gt;&lt;p&gt;Despite (several) official threats by the goverment in the past week, real people came to streets. They closed underground-trains so people couldnt reach the rally points.  Internet was extremely slow so that we couldnt post the videos of the violence of goverment. Security forces hit us, throw us tear gas (this thing really sucks!) captured some people. Again, our television reported none of this. &lt;/p&gt;&lt;p&gt;The real people came to the streets to tell the world that we are in peace. Our goverment may burn your flag, may shout &#039;Down with America/Israel/Britain&#039; but we, Iranian people, are in peace with you and I am personally sorry for what our ancestors did 30 years ago.&lt;/p&gt;&lt;p&gt;I am truly sorry for what our goverment has done in the past 30 years. Fighting with world, hating the world and thinking about (literal) world domination is what my goverment has done so far.&lt;/p&gt;&lt;p&gt;However, the events in the past four months made me feel so good. Why? Because I felt whole world cares about me. We have seen people around the world wearing green, throwing green stuff out of their windows or wearing green wrist-wraps. Cities around the world turned green at some times.&lt;/p&gt;&lt;p&gt;This means A LOT to me, personally. Not that it makes the damn extremists/dictators go away. Of course they are not leaving that easy. But it just made me feel that people care.&lt;/p&gt; 
    </content:encoded>

    <pubDate>Wed, 04 Nov 2009 23:40:50 +0300</pubDate>
    <guid isPermaLink="false">http://emilsedgh.info/blog/index.php?/archives/3-guid.html</guid>
    
</item>
<item>
    <title>This isnt how its supposed to be</title>
    <link>http://emilsedgh.info/blog/index.php?/archives/4-This-isnt-how-its-supposed-to-be.html</link>
    
    <comments>http://emilsedgh.info/blog/index.php?/archives/4-This-isnt-how-its-supposed-to-be.html#comments</comments>
    <wfw:comment>http://emilsedgh.info/blog/wfwcomment.php?cid=4</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://emilsedgh.info/blog/rss.php?version=2.0&amp;type=comments&amp;cid=4</wfw:commentRss>
    

    <author>nospam@example.com (Emil Sedgh)</author>
    <content:encoded>
    &lt;p&gt;It seems that the khtml topic is up again.Here is my $0.02:&lt;br /&gt;
As a web developer, i use konqueror all the time.Its open at least 8 hours a day for me and i do a lot of javascript development on it.I debug my scripts, create advanced layouts and such.Of course I do have a Firefox as an alternative, but Im really happy with konqeuror.It hasnt as many extensions as firefox does, maybe Konqueror isnt even comparable to Firefox when it comes to features, but blaming khtml is not fair.&lt;/p&gt;&lt;p&gt;When people say khtml must be deprecated/killed/etc, they seem to forgot a few points:&lt;/p&gt;&lt;p&gt;1) khtml is already doing 90-05% of the job it should do.Its compatible with all major js libraries, it does css very well.there are bugs, of course, but webkit (and not webkit part) is just a few percents better than khtml.Killing khtml in favour of those few percentages is not the right thing to do.&lt;/p&gt;&lt;p&gt;2) khtml SHOULD LIVE until KDE 5.0, so KDE has to maintain it.&lt;/p&gt;&lt;p&gt;3) webkit part is not getting pushed *enough*.Instead, everyone just rants about how bad khtml is.This hurts khtmls development i believe.&lt;br /&gt;
Let me remind you the pre 4.0 discussion on Okular and Ligature.They had the very same purpose.Okular got maintained, it lived, it entered KDE and was one of the best kde apps so far.Ligature stayed unmaintained.&lt;/p&gt;&lt;p&gt;Now, khtml is maintained, webkit part is not (enough).Still everyone hates khtml? come on guys, this is FOSS.You forgot how it works? khtml developers are volunteers!&lt;/p&gt;&lt;p&gt;4) The way of making software better is not by posting murdurer blog posts (like lets kill khtml).Its by developing it.If you want khtml dead, please dont hurt khtml.Instead, develop a better alternative.&lt;/p&gt;&lt;p&gt;5) Results of acid3 and such tests are cool, but they have nothing to do with real world.IE6 is still having a huge percentage of market share and none of those tests are not going to do anything on real web pages.So if you are going to use another browser because it does better in these tests, you are doing the wrong thing.At least i think so.&lt;/p&gt;&lt;p&gt;Sorry for my bad English.&lt;/p&gt;&lt;p&gt;Update: I didnt try to be offensive, if it felt like that, that was probably my fault and im sorry for that.Also i dont hate webkit or webkit part and i hope that webkit part would be good enough soon that unhappy users get happy again.I just wanted to ask people not to hurt khtml.&lt;/p&gt; 
    </content:encoded>

    <pubDate>Fri, 24 Apr 2009 23:41:26 +0400</pubDate>
    <guid isPermaLink="false">http://emilsedgh.info/blog/index.php?/archives/4-guid.html</guid>
    
</item>
<item>
    <title>4.2 Counter</title>
    <link>http://emilsedgh.info/blog/index.php?/archives/5-4.2-Counter.html</link>
    
    <comments>http://emilsedgh.info/blog/index.php?/archives/5-4.2-Counter.html#comments</comments>
    <wfw:comment>http://emilsedgh.info/blog/wfwcomment.php?cid=5</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://emilsedgh.info/blog/rss.php?version=2.0&amp;type=comments&amp;cid=5</wfw:commentRss>
    

    <author>nospam@example.com (Emil Sedgh)</author>
    <content:encoded>
    &lt;p&gt;For the KDE 4.0 release Eugene &quot;it-s&quot; Trounev and I created a release counter that was used in many blogs and websites.We missed the 4.1 release, but here is the KDE 4.2 Release Counter:&lt;br /&gt;&lt;/p&gt;&lt;script type=&quot;text/javascript&quot; src=&quot;http://games.kde.org/counters/4.2/4.2.php&quot;&gt;&lt;/script&gt;&lt;p&gt;The 4.0 counter was an image but this one is created using some html + javascript help.To embedd it into your webpage paste the following code:&lt;br /&gt;&amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;http://games.kde.org/counters/4.2/4.2.php&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
We can add as many slogans there and they will be shown in random order.So send me the words you think expresses the 4.2 feeling.&lt;br /&gt;
(This is my first post to planet KDE.Im Emil Sedgh with very limited contributions to KDE.I just maintain the games.kde.org website and create stuff like this counter.Im trying to be more involved though)&lt;br /&gt;
(Update: Since its javascript based its not getting published on planet.To see it you need to view my weblog directly)&lt;br /&gt;&amp;lt;!--break--&gt;&lt;/p&gt; 
    </content:encoded>

    <pubDate>Fri, 05 Dec 2008 10:27:53 +0300</pubDate>
    <guid isPermaLink="false">http://emilsedgh.info/blog/index.php?/archives/5-guid.html</guid>
    
</item>
<item>
    <title>Prototype Tooltips</title>
    <link>http://emilsedgh.info/blog/index.php?/archives/6-Prototype-Tooltips.html</link>
    
    <comments>http://emilsedgh.info/blog/index.php?/archives/6-Prototype-Tooltips.html#comments</comments>
    <wfw:comment>http://emilsedgh.info/blog/wfwcomment.php?cid=6</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://emilsedgh.info/blog/rss.php?version=2.0&amp;type=comments&amp;cid=6</wfw:commentRss>
    

    <author>nospam@example.com (Emil Sedgh)</author>
    <content:encoded>
    &lt;p&gt;I had no reason to write a weblog until today that I wrote a Tooltip creator and i wanted to publish it.&lt;br /&gt;
Its too small to have a homepage or something like that, so I thought best place for such thing is a weblog.&lt;/p&gt;&lt;p&gt;My Javascript skills are so limited.So probably you could find many &lt;a href=&#039;http://www.thedailywtf.com&#039;&gt;&#039;WTF&#039;s&lt;/a&gt; in it.&lt;/p&gt;&lt;p&gt;Using it is rather easy:&lt;/p&gt;&lt;p&gt;T = new Tooltip( &#039;ActivatorId&#039;, &#039;TooltipId&#039; );&lt;br /&gt;
T.Register();&lt;/p&gt;&lt;p&gt;Activator is the element that Tooltip will show up when its hovered.&lt;/p&gt;&lt;p&gt;this Tooltip is customizable and has many other options:&lt;/p&gt;&lt;p&gt;T = new Tooltip( &#039;Activator&#039;, &#039;Tooltip&#039; );&lt;br /&gt;
T.ShowEvent = &#039;mouseover&#039;;&lt;br /&gt;
T.ShowEffect = Effect.Grow;&lt;br /&gt;
T.HideEvent = &#039;click&#039;;&lt;br /&gt;
T.HideEffect = Effect.Puff;&lt;br /&gt;
T.AutoHide = 7; //Autohides tooltip after 7 seconds&lt;br /&gt;
T.HideOthers = true; //If its true, each time this tooltip opens, other ones will be closed&lt;br /&gt;
T.HideOnClick = true;&lt;br /&gt;
T.FollowMouse = true; //Open where the cursor is&lt;br /&gt;
T.StickToMouse = false; //always follows the mouse&lt;br /&gt;
T.AjaxUrl = false; //Change it to your Ajax requests url to load contents dynamically&lt;br /&gt;
T.Register();&lt;/p&gt;&lt;p&gt;Its released under GPL 2 (or any newer version released by FSF).&lt;br /&gt;
I tested it on Konqueror and Firefox 2.0.&lt;br /&gt;
Its based on Prototype.if you have Scriptaculous, Effect.Grow and Effect.Puff will be used for Showing/Hiding it ( Sure you can change this using ShowEffect and HideEffect )&lt;br /&gt;
It fires the following events:&lt;br /&gt;
Tooltip:Opened&lt;br /&gt;
Tooltip:Closed&lt;br /&gt;
Tooltip:AjaxRequestCreated&lt;br /&gt;
Tooltip:AjaxRequestCompleted&lt;/p&gt;&lt;p&gt;My English sucks.Sorry if there is any mistake.&lt;/p&gt; 
    </content:encoded>

    <pubDate>Wed, 21 May 2008 16:12:27 +0400</pubDate>
    <guid isPermaLink="false">http://emilsedgh.info/blog/index.php?/archives/6-guid.html</guid>
    
</item>

</channel>
</rss>
