<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-3680269432729818126</id><updated>2019-08-02T11:05:16.628+03:00</updated><category term="TYPO3"/><category term="Personal"/><category term="Tools"/><category term="Mac"/><category term="Security"/><category term="Apple"/><category term="Productivity"/><category term="SEO"/><category term="OS X"/><category term="Performance"/><category term="Programming"/><category term="UX"/><category term="Buzz"/><category term="Git"/><category term="Shell tricks"/><category term="Clean coding"/><category term="Spam"/><category term="Analytics"/><category term="Business"/><category term="Copyright"/><category term="ExtJS"/><category term="Linux"/><category term="PHP"/><category term="Review"/><category term="Subversion"/><category term="Automation"/><category term="Backup"/><category term="Dell"/><category term="Extbase"/><category term="Fluid"/><category term="Magento"/><category term="Mobile web"/><category term="MySQL"/><category term="Photography"/><category term="Photoshop"/><category term="Putin"/><category term="Safari"/><category term="iOS"/><title type='text'>Dmitry Dulepov</title><subtitle type='html'>Yet another geek.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://www.dmitry-dulepov.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3680269432729818126/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://www.dmitry-dulepov.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/3680269432729818126/posts/default?start-index=26&amp;max-results=25&amp;redirect=false'/><author><name>Dmitry Dulepov</name><uri>http://www.blogger.com/profile/00090275219571853930</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/-oL7X096xpu0/VLfZwIk1ccI/AAAAAAAAAhk/u9xtJQM2jmA/s1600/*'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>248</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-3680269432729818126.post-3396840483425517383</id><published>2018-12-04T16:15:00.002+03:00</published><updated>2018-12-04T16:15:50.550+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Clean coding"/><title type='text'>Various approached to problem fixing</title><content type='html'>I worked with many programmers in my life. I saw two types of solutions for the same problem: &lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Using X hours and writing 300 lines of code without any comments and zero maintainability&lt;/li&gt;&lt;li&gt;Using 3*X hours and writing 50 lines of self-explaining, fully maintainable code&lt;/li&gt;&lt;/ol&gt;&lt;div&gt;I always prefer the second approach. It costs more at development time but it always pays back in the long term and have nearly zero costs after deployment. But this approach is very rare unfortunately.&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.dmitry-dulepov.com/feeds/3396840483425517383/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.dmitry-dulepov.com/2018/12/various-approached-to-problem-fixing.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3680269432729818126/posts/default/3396840483425517383'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3680269432729818126/posts/default/3396840483425517383'/><link rel='alternate' type='text/html' href='http://www.dmitry-dulepov.com/2018/12/various-approached-to-problem-fixing.html' title='Various approached to problem fixing'/><author><name>Dmitry Dulepov</name><uri>http://www.blogger.com/profile/00090275219571853930</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/-oL7X096xpu0/VLfZwIk1ccI/AAAAAAAAAhk/u9xtJQM2jmA/s1600/*'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3680269432729818126.post-822392757867974431</id><published>2017-05-13T16:09:00.000+03:00</published><updated>2017-05-13T16:09:54.547+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Spam"/><title type='text'>How stupid those spammers can be...</title><content type='html'>How stupid do they have to be to make so many errors in one mail and hope that I believe it is a legitimate PayPal message?  &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://4.bp.blogspot.com/-1EQFb00AN2E/WRcEqLEJqwI/AAAAAAAAAnE/OqDDeV4DJqgrCF9VUIOkL3QkN8MsDY1rwCLcB/s1600/PaYpal.png&quot; style=&quot;border: 1px solid black; max-width: 600px;&quot; /&gt;&lt;/div&gt;&lt;br /&gt;So, what do we see here?&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Wrong style (PayPal messages do not look like this)&lt;/li&gt;&lt;li&gt;Wrong &quot;From&quot; name and email&lt;/li&gt;&lt;li&gt;Spaces before commas&lt;/li&gt;&lt;li&gt;Missing spaces&lt;/li&gt;&lt;li&gt;Wrong spelling of the name (WFT is “PaYpal”?)&lt;/li&gt;&lt;li&gt;Comma in places, where it should not be&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;Really, how stupid is this?&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.dmitry-dulepov.com/feeds/822392757867974431/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.dmitry-dulepov.com/2017/05/how-stupid-those-spammers-can-be.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3680269432729818126/posts/default/822392757867974431'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3680269432729818126/posts/default/822392757867974431'/><link rel='alternate' type='text/html' href='http://www.dmitry-dulepov.com/2017/05/how-stupid-those-spammers-can-be.html' title='How stupid those spammers can be...'/><author><name>Dmitry Dulepov</name><uri>http://www.blogger.com/profile/00090275219571853930</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/-oL7X096xpu0/VLfZwIk1ccI/AAAAAAAAAhk/u9xtJQM2jmA/s1600/*'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://4.bp.blogspot.com/-1EQFb00AN2E/WRcEqLEJqwI/AAAAAAAAAnE/OqDDeV4DJqgrCF9VUIOkL3QkN8MsDY1rwCLcB/s72-c/PaYpal.png" height="72" width="72"/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3680269432729818126.post-8221887033886470325</id><published>2016-08-12T12:25:00.001+03:00</published><updated>2016-08-12T17:19:09.590+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Apple"/><category scheme="http://www.blogger.com/atom/ns#" term="Dell"/><category scheme="http://www.blogger.com/atom/ns#" term="Linux"/><title type='text'>Thoughts about notebooks</title><content type='html'>Since 2008 I use Apple Mybook Pro for all my activities. I migrated from Windows to OS X because of better quality of the screen, higher resolution, better fonts and colors. If you have to spend 50 hours near the computer weekly, you should have a really good one.&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;My last Macbook Pro was late 2011 model. I was really reluctant to change it because it was a HiRes model (not Retina though) with a matte screen. I hate glossy screens. But time goes on and after five years I had to buy a new one. The old one stays as a backup and it is now being services by Apple authorised service center.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Meanwhile I thought about criteria that I would use to select a computer. I started to think about it because I saw a very good deal on Dell E7450 ultrabook. I am not going to run Windows on it but a certain kind of Linux. So here is what I got as my criteria and how the current Macbook 2015 matches to E7450:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;table border=&quot;1&quot; cellpadding=&quot;5&quot; cellspacing=&quot;0&quot; style=&quot;width: 100%;&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;th width=&quot;30%&quot;&gt;Criteria&lt;/th&gt;&lt;th width=&quot;35%&quot;&gt;Macbook Pro 2015&lt;/th&gt;&lt;th&gt;Dell E7450&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;CPU power&lt;br /&gt;Need highest possible&lt;/td&gt;&lt;td&gt;&lt;span style=&quot;color: green;&quot;&gt;2.8GHz, 4 cores&lt;/span&gt;&lt;/td&gt;&lt;td&gt;2.3GHz, 2 cores&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;RAM&lt;br /&gt;16GB at least&lt;/td&gt;&lt;td&gt;16GB, 1600MHz&lt;/td&gt;&lt;td&gt;16GB, 1600MHz (upgraded from 8GB)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Storage&lt;br /&gt;The more the better&lt;/td&gt;&lt;td&gt;&lt;span style=&quot;color: green;&quot;&gt;1TB USD&lt;/span&gt;&lt;/td&gt;&lt;td&gt;256GB SSD (upgraded from 128GB)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Video&lt;br /&gt;Only need good quality screen&lt;/td&gt;&lt;td&gt;Retina looks great &lt;span style=&quot;color: red;&quot;&gt;&lt;b&gt;but&lt;/b&gt; screen flickers when switching from integrated to discrete graphics and there are artefacts on the screen sometimes when using discrete graphics&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style=&quot;color: green;&quot;&gt;Screen is excellent!&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Screen size&lt;/td&gt;&lt;td&gt;15&quot;&lt;/td&gt;&lt;td&gt;14&quot;&lt;br /&gt;Not really noticeable difference comparing to Macbook Pro&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Non-glossy screen&lt;/td&gt;&lt;td&gt;&lt;span style=&quot;color: red;&quot;&gt;Not available&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style=&quot;color: green;&quot;&gt;Non-glossy&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Touchpad with multitouch&lt;/td&gt;&lt;td&gt;+&lt;/td&gt;&lt;td&gt;+&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;WWAN connectivity&lt;/td&gt;&lt;td&gt;&lt;span style=&quot;color: red;&quot;&gt;No&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style=&quot;color: green;&quot;&gt;Yes, with Dell WD5809e card (GPRS/EDGE/3G/LTE)&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Real battery life&lt;br /&gt;Maximum possible&lt;/td&gt;&lt;td&gt;About 6 hours&lt;/td&gt;&lt;td&gt;&lt;span style=&quot;color: green;&quot;&gt;About 6.5 hours&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Weight&lt;/td&gt;&lt;td&gt;2.04 kg&lt;/td&gt;&lt;td&gt;&lt;span style=&quot;color: green;&quot;&gt;1.54 kg&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Upgrades possible&lt;/td&gt;&lt;td&gt;&lt;span style=&quot;color: red;&quot;&gt;No&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style=&quot;color: green;&quot;&gt;Yes&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;General stability&lt;/td&gt;&lt;td&gt;Excellent&lt;/td&gt;&lt;td&gt;Excellent&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Price&lt;/td&gt;&lt;td&gt;3200€&lt;/td&gt;&lt;td&gt;&lt;span style=&quot;color: green;&quot;&gt;990€+320€ for upgrades&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div&gt;&lt;br /&gt;&lt;div&gt;&lt;div&gt;As you see, suddenly Dell beats Macbook Pro in overall comparison. Also given all kind of issues with video, privacy and upgradability, Dell becomes much better choice than a Macbook Pro. I also found that using Linux on Dell is a very good experience.&lt;br /&gt;&lt;br /&gt;Probably, I will use more and more Linux on Dell Ultrabook and less and less Apple notebook. It still remains my main work computer but for side research and private activities I would prefer Dell &amp;amp; Linux.&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.dmitry-dulepov.com/feeds/8221887033886470325/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.dmitry-dulepov.com/2016/08/thoughts-about-notebooks.html#comment-form' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3680269432729818126/posts/default/8221887033886470325'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3680269432729818126/posts/default/8221887033886470325'/><link rel='alternate' type='text/html' href='http://www.dmitry-dulepov.com/2016/08/thoughts-about-notebooks.html' title='Thoughts about notebooks'/><author><name>Dmitry Dulepov</name><uri>http://www.blogger.com/profile/00090275219571853930</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/-oL7X096xpu0/VLfZwIk1ccI/AAAAAAAAAhk/u9xtJQM2jmA/s1600/*'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3680269432729818126.post-6550764513001164678</id><published>2016-03-03T15:49:00.000+03:00</published><updated>2016-03-03T16:04:51.479+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="TYPO3"/><title type='text'>RealURL 2.0</title><content type='html'>&lt;img border=&quot;1&quot; src=&quot;https://2.bp.blogspot.com/-TGtlGrWnunc/VtgzWpA4yVI/AAAAAAAAAlU/4x4JcKKpJhM/s1600/realurl2.png&quot; /&gt;&lt;br/&gt;&lt;br/&gt;RealURL 2.0 is finally in TER. &lt;br/&gt;&lt;br/&gt;Now I can relax for a couple of days... &lt;br/&gt;&lt;br/&gt;Thanks to everybody, who helped: &lt;ul&gt;&lt;li&gt;My employer, &lt;a href=&quot;https://snowflake.ch&quot;&gt;snowflake productions gmbh&lt;/a&gt;, who donated many hours to this work and personally Patrick Aubert de la Rüe for his support&lt;/li&gt;&lt;li&gt;René Bigler, who was one the first to try it and submitted a big piece of code for integration&lt;/li&gt;&lt;li&gt;Benjamin Serfhos&lt;/li&gt;&lt;li&gt;Mathias Brodala&lt;/li&gt;&lt;li&gt;Artus Kolanowski&lt;/li&gt;&lt;li&gt;Robert Vock&lt;/li&gt;&lt;li&gt;François Suter&lt;/li&gt;&lt;li&gt;All those, who dared to install a pre-release version&lt;/li&gt;&lt;/ul&gt;&lt;br/&gt;You can help to develop the extension further: &lt;form action=&quot;https://www.paypal.com/cgi-bin/webscr&quot; method=&quot;post&quot; target=&quot;_top&quot;&gt;&lt;input type=&quot;hidden&quot; name=&quot;cmd&quot; value=&quot;_s-xclick&quot;&gt;&lt;input type=&quot;hidden&quot; name=&quot;hosted_button_id&quot; value=&quot;36C6SKAQEMF8L&quot;&gt;&lt;input type=&quot;image&quot; src=&quot;https://www.paypalobjects.com/en_US/i/btn/btn_donate_LG.gif&quot; border=&quot;0&quot; name=&quot;submit&quot; alt=&quot;PayPal - The safer, easier way to pay online!&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;https://www.paypalobjects.com/en_US/i/scr/pixel.gif&quot; width=&quot;1&quot; height=&quot;1&quot;&gt;&lt;/form&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.dmitry-dulepov.com/feeds/6550764513001164678/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.dmitry-dulepov.com/2016/03/realurl-20.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3680269432729818126/posts/default/6550764513001164678'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3680269432729818126/posts/default/6550764513001164678'/><link rel='alternate' type='text/html' href='http://www.dmitry-dulepov.com/2016/03/realurl-20.html' title='RealURL 2.0'/><author><name>Dmitry Dulepov</name><uri>http://www.blogger.com/profile/00090275219571853930</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/-oL7X096xpu0/VLfZwIk1ccI/AAAAAAAAAhk/u9xtJQM2jmA/s1600/*'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://2.bp.blogspot.com/-TGtlGrWnunc/VtgzWpA4yVI/AAAAAAAAAlU/4x4JcKKpJhM/s72-c/realurl2.png" height="72" width="72"/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3680269432729818126.post-5789885495155962852</id><published>2015-10-14T13:14:00.001+03:00</published><updated>2015-10-14T13:14:10.405+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Git"/><title type='text'>Removing merged git banches</title><content type='html'>If you work in a team, create many git branches and push them to the server, you may end up with many local branches that were merged and removed on the server. The following simple command will clean up your repository from local branches that track missing remote branches:&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;git fetch --all -p&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.dmitry-dulepov.com/feeds/5789885495155962852/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.dmitry-dulepov.com/2015/10/removing-merged-git-banches.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3680269432729818126/posts/default/5789885495155962852'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3680269432729818126/posts/default/5789885495155962852'/><link rel='alternate' type='text/html' href='http://www.dmitry-dulepov.com/2015/10/removing-merged-git-banches.html' title='Removing merged git banches'/><author><name>Dmitry Dulepov</name><uri>http://www.blogger.com/profile/00090275219571853930</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/-oL7X096xpu0/VLfZwIk1ccI/AAAAAAAAAhk/u9xtJQM2jmA/s1600/*'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3680269432729818126.post-1986988855877108534</id><published>2015-10-12T18:45:00.002+03:00</published><updated>2015-10-12T18:45:23.799+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Automation"/><category scheme="http://www.blogger.com/atom/ns#" term="Shell tricks"/><title type='text'>Set environment variable when &quot;cd&quot;ing to the directory</title><content type='html'>I love automation! It saves a lot of time and helps to avoid mistakes.&lt;br /&gt;&lt;br /&gt;When I work on projects, I sometimes need to set environment variables in the shell when I &lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;cd&lt;/span&gt; into a directory in the terminal. I ended up with a shell function that replaces the standard &lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;cd&lt;/span&gt; command. It checks if there is a &lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;.env&lt;/span&gt; file in the current directory and executes it on entering. When you leave the directory, if checks if the file &lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;.env_off&lt;/span&gt; exists and calls that. That file can contain normal shell commands, not just environment variables.&lt;br /&gt;&lt;br /&gt;Do not forget to export variables in the &lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;.env&lt;/span&gt; file!&lt;br /&gt;&lt;br /&gt;The script is &lt;a href=&quot;https://gist.github.com/dmitryd/a364f09545c6eda0ed48&quot; target=&quot;_blank&quot;&gt;here&lt;/a&gt;.</content><link rel='replies' type='application/atom+xml' href='http://www.dmitry-dulepov.com/feeds/1986988855877108534/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.dmitry-dulepov.com/2015/10/set-environment-variable-when-cding-to.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3680269432729818126/posts/default/1986988855877108534'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3680269432729818126/posts/default/1986988855877108534'/><link rel='alternate' type='text/html' href='http://www.dmitry-dulepov.com/2015/10/set-environment-variable-when-cding-to.html' title='Set environment variable when &quot;cd&quot;ing to the directory'/><author><name>Dmitry Dulepov</name><uri>http://www.blogger.com/profile/00090275219571853930</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/-oL7X096xpu0/VLfZwIk1ccI/AAAAAAAAAhk/u9xtJQM2jmA/s1600/*'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3680269432729818126.post-4373753404508996335</id><published>2015-07-15T18:42:00.004+03:00</published><updated>2015-07-15T18:42:56.184+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Productivity"/><title type='text'>Evernote plugin for browsers</title><content type='html'>Just discovered a nice feature of Evernote plugin for Safari: if you search in Google it can show related results in your notes:&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;http://2.bp.blogspot.com/-7WxjAHxVjs4/VaZ_Ua5sHwI/AAAAAAAAAkk/YJqXajcVXKc/s1600/evernote.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;1&quot; height=&quot;244&quot; src=&quot;http://2.bp.blogspot.com/-7WxjAHxVjs4/VaZ_Ua5sHwI/AAAAAAAAAkk/YJqXajcVXKc/s640/evernote.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.dmitry-dulepov.com/feeds/4373753404508996335/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.dmitry-dulepov.com/2015/07/evernote-plugin-for-browsers.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3680269432729818126/posts/default/4373753404508996335'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3680269432729818126/posts/default/4373753404508996335'/><link rel='alternate' type='text/html' href='http://www.dmitry-dulepov.com/2015/07/evernote-plugin-for-browsers.html' title='Evernote plugin for browsers'/><author><name>Dmitry Dulepov</name><uri>http://www.blogger.com/profile/00090275219571853930</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/-oL7X096xpu0/VLfZwIk1ccI/AAAAAAAAAhk/u9xtJQM2jmA/s1600/*'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-7WxjAHxVjs4/VaZ_Ua5sHwI/AAAAAAAAAkk/YJqXajcVXKc/s72-c/evernote.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3680269432729818126.post-8682904200286140788</id><published>2015-06-14T18:52:00.001+03:00</published><updated>2015-06-14T18:52:20.291+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Security"/><title type='text'>Chinese IP camera user name and password</title><content type='html'>I forgot what was the default user name and password to access one no none IP camera. However I found those settings &quot;encrypted&quot; in the configuration file:&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;acID=61656F6A6A&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;acPW=313131373131&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;After a couple of minutes the solution came with the help of phpsh:&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;php&amp;gt; $arr = array(0x61,0x65,0x6F,0x6A,0x6A);for ($i = 0; $i &amp;lt; count($arr); $i++) echo chr($arr[$i] ^ $i);&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;admin&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;php&amp;gt; $arr = array(0x31,0x33,0x31,0x37,0x31,0x33);for ($i = 0; $i &amp;lt; count($arr); $i++) echo chr($arr[$i] ^ $i);&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;123456&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Yeah, really &quot;strong&quot; encryption...</content><link rel='replies' type='application/atom+xml' href='http://www.dmitry-dulepov.com/feeds/8682904200286140788/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.dmitry-dulepov.com/2015/06/chinese-ip-camera-user-name-and-password.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3680269432729818126/posts/default/8682904200286140788'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3680269432729818126/posts/default/8682904200286140788'/><link rel='alternate' type='text/html' href='http://www.dmitry-dulepov.com/2015/06/chinese-ip-camera-user-name-and-password.html' title='Chinese IP camera user name and password'/><author><name>Dmitry Dulepov</name><uri>http://www.blogger.com/profile/00090275219571853930</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/-oL7X096xpu0/VLfZwIk1ccI/AAAAAAAAAhk/u9xtJQM2jmA/s1600/*'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3680269432729818126.post-6443018832931184634</id><published>2015-04-03T12:22:00.001+03:00</published><updated>2015-04-03T12:22:49.839+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Security"/><title type='text'>Why scam emails fail</title><content type='html'>&lt;img border=&quot;1&quot; src=&quot;http://1.bp.blogspot.com/-NaTY8Ws6ekU/VR5a8RuQCTI/AAAAAAAAAkI/9alOpfOZKyo/s1600/spam.png&quot; height=&quot;21&quot; width=&quot;640&quot; /&gt;&lt;br /&gt;&lt;br /&gt;Dear scammers!&lt;br /&gt;&lt;br /&gt;PayPal is spelled like &quot;PayPal&quot;, not like &quot;paypal&quot;.&lt;br /&gt;&lt;br /&gt;There should be no space after the punctuation mark.&lt;br /&gt;&lt;br /&gt;And, please, &lt;i&gt;improw yor Ingiz&lt;/i&gt; before you write those emails, ok?&lt;br /&gt;&lt;br /&gt;I am bored to get this in my mailbox. You can do better than this!</content><link rel='replies' type='application/atom+xml' href='http://www.dmitry-dulepov.com/feeds/6443018832931184634/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.dmitry-dulepov.com/2015/04/why-scam-emails-fail.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3680269432729818126/posts/default/6443018832931184634'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3680269432729818126/posts/default/6443018832931184634'/><link rel='alternate' type='text/html' href='http://www.dmitry-dulepov.com/2015/04/why-scam-emails-fail.html' title='Why scam emails fail'/><author><name>Dmitry Dulepov</name><uri>http://www.blogger.com/profile/00090275219571853930</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/-oL7X096xpu0/VLfZwIk1ccI/AAAAAAAAAhk/u9xtJQM2jmA/s1600/*'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/-NaTY8Ws6ekU/VR5a8RuQCTI/AAAAAAAAAkI/9alOpfOZKyo/s72-c/spam.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3680269432729818126.post-6174574513795788471</id><published>2015-03-15T15:08:00.001+03:00</published><updated>2015-03-15T15:08:34.522+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="TYPO3"/><title type='text'>realurl and dd_googlesitemap are released for TYPO3 7.0</title><content type='html'>realurl still supports 4.5 LTS while dd_googlesitemap requires 6.x or newer now. Also in preparation to support the newer news extension, former news sitemap is renamed to tt_news.&lt;br /&gt;&lt;br /&gt;I think realurl and dd_googlesitemap can be used with TYPO3 7.1 too but I did not test that version yet. O hope to make it soon.&lt;br /&gt;&lt;br /&gt;If you wonder why this happens slowly, the answer is simple: there is daily work and family, which takes priority over free work. As to 7.0, my employer is interested in getting these extension work with TYPO3 7.0, so they sponsored it with certain amount of time. This is how I could get these extensions out.</content><link rel='replies' type='application/atom+xml' href='http://www.dmitry-dulepov.com/feeds/6174574513795788471/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.dmitry-dulepov.com/2015/03/realurl-and-ddgooglesitemap-are.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3680269432729818126/posts/default/6174574513795788471'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3680269432729818126/posts/default/6174574513795788471'/><link rel='alternate' type='text/html' href='http://www.dmitry-dulepov.com/2015/03/realurl-and-ddgooglesitemap-are.html' title='realurl and dd_googlesitemap are released for TYPO3 7.0'/><author><name>Dmitry Dulepov</name><uri>http://www.blogger.com/profile/00090275219571853930</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/-oL7X096xpu0/VLfZwIk1ccI/AAAAAAAAAhk/u9xtJQM2jmA/s1600/*'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3680269432729818126.post-4084411179868451285</id><published>2015-03-10T11:23:00.004+03:00</published><updated>2015-03-10T11:24:33.281+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Apple"/><category scheme="http://www.blogger.com/atom/ns#" term="Mac"/><category scheme="http://www.blogger.com/atom/ns#" term="Personal"/><title type='text'>Apple is over</title><content type='html'>Does anybody else think that it is a complete lack of style or it is only me so conservative?&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;http://1.bp.blogspot.com/-RkDPlSGIrAQ/VP6oC-2abdI/AAAAAAAAAjw/BXPHOoxfpLM/s1600/gold-macbook.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://1.bp.blogspot.com/-RkDPlSGIrAQ/VP6oC-2abdI/AAAAAAAAAjw/BXPHOoxfpLM/s1600/gold-macbook.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;I am getting really disappointed by Apple recently:&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;Killing Aperture - the &quot;best quality&quot; RAW processing program!&lt;/li&gt;&lt;li&gt;All those stability and Wi-Fi issues in &lt;b&gt;all&lt;/b&gt;&amp;nbsp;recent hardware&lt;/li&gt;&lt;li&gt;Maps flop&lt;/li&gt;&lt;li&gt;Abnormal prices when everything else goes cheaper&lt;/li&gt;&lt;li&gt;Annoying &quot;continuity&quot; forced in Yosemite&lt;/li&gt;&lt;li&gt;Inability to make something as convenient as DropBox but creating iCloud Drive, which nobody wants to use&lt;/li&gt;&lt;li&gt;Trying to block Spotify instead of doing something similar&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;I start thinking about alternatives. Not because of the price but because it seems that Apple has finally lost its main key thing: usability.&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;I am still using iPhone 4s because all newer devices were not worth the money. And I am still on Macbook Pro 2011 with HiRes matte screen and Mavericks because it is the best working environment available now.&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;What will I do if my iPhone 4s or Macbook Pro breaks? What should I get next? Definitely not Samsung or Lenovo or Acer. But what? What notebook has the same great matte display with good resolution and colors suitable for photo manipulation? What phone works nicely with decent battery life?&lt;/div&gt;&lt;a href=&quot;http://www.pinterest.com/pin/create/extension/?url=https%3A%2F%2Fwww.blogger.com%2Fblogger.g%3FblogID%3D3680269432729818126%23editor&amp;amp;media=https%3A%2F%2Fimages-blogger-opensocial.googleusercontent.com%2Fgadgets%2Fproxy%3Furl%3Dhttp%253A%252F%252F1.bp.blogspot.com%252F-RkDPlSGIrAQ%252FVP6oC-2abdI%252FAAAAAAAAAjw%252FBXPHOoxfpLM%252Fs1600%252Fgold-macbook.png%26container%3Dblogger%26gadget%3Da%26rewriteMime%3Dimage%252F*&amp;amp;xm=h&amp;amp;xv=sa1.35&amp;amp;description=&quot; style=&quot;background-color: transparent; background-image: url(data:image/png; border: none; cursor: pointer; display: none; height: 20px; left: 95px; opacity: 0.85; position: absolute; top: 54px; width: 40px; z-index: 8675309;&quot;&gt;&lt;/a&gt;&lt;a href=&quot;http://www.pinterest.com/pin/create/extension/?url=https%3A%2F%2Fwww.blogger.com%2Fblogger.g%3FblogID%3D3680269432729818126%23editor&amp;amp;media=https%3A%2F%2Fimages-blogger-opensocial.googleusercontent.com%2Fgadgets%2Fproxy%3Furl%3Dhttp%253A%252F%252F1.bp.blogspot.com%252F-RkDPlSGIrAQ%252FVP6oC-2abdI%252FAAAAAAAAAjw%252FBXPHOoxfpLM%252Fs1600%252Fgold-macbook.png%26container%3Dblogger%26gadget%3Da%26rewriteMime%3Dimage%252F*&amp;amp;xm=h&amp;amp;xv=sa1.35&amp;amp;description=&quot; style=&quot;background-color: transparent; background-image: url(data:image/png; border: none; cursor: pointer; display: none; height: 20px; left: 95px; opacity: 0.85; position: absolute; top: 54px; width: 40px; z-index: 8675309;&quot;&gt;&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.dmitry-dulepov.com/feeds/4084411179868451285/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.dmitry-dulepov.com/2015/03/apple-is-over.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3680269432729818126/posts/default/4084411179868451285'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3680269432729818126/posts/default/4084411179868451285'/><link rel='alternate' type='text/html' href='http://www.dmitry-dulepov.com/2015/03/apple-is-over.html' title='Apple is over'/><author><name>Dmitry Dulepov</name><uri>http://www.blogger.com/profile/00090275219571853930</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/-oL7X096xpu0/VLfZwIk1ccI/AAAAAAAAAhk/u9xtJQM2jmA/s1600/*'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/-RkDPlSGIrAQ/VP6oC-2abdI/AAAAAAAAAjw/BXPHOoxfpLM/s72-c/gold-macbook.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3680269432729818126.post-3960224117962586016</id><published>2015-03-03T11:21:00.004+03:00</published><updated>2015-03-03T11:21:51.253+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="TYPO3"/><title type='text'>Status update about RealURL</title><content type='html'>There are two things I want to tell today:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;RealURL 2.x is still in the work and it will take time until it will become ready &amp;amp; public&lt;/li&gt;&lt;li&gt;A new release of RealURL 1.x will be out this or next week and it will be compatible with TYPO3 from 4.5.40 to 7.1.999 (without core compatibility layer). The same extension for all supported TYPO3 versions. 1.x releases will come out until 2.x is available and if there are bug fixes to publish.&lt;/li&gt;&lt;/ul&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.dmitry-dulepov.com/feeds/3960224117962586016/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.dmitry-dulepov.com/2015/03/status-update-about-realurl.html#comment-form' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3680269432729818126/posts/default/3960224117962586016'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3680269432729818126/posts/default/3960224117962586016'/><link rel='alternate' type='text/html' href='http://www.dmitry-dulepov.com/2015/03/status-update-about-realurl.html' title='Status update about RealURL'/><author><name>Dmitry Dulepov</name><uri>http://www.blogger.com/profile/00090275219571853930</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/-oL7X096xpu0/VLfZwIk1ccI/AAAAAAAAAhk/u9xtJQM2jmA/s1600/*'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3680269432729818126.post-4766620061186521845</id><published>2015-02-18T12:45:00.002+03:00</published><updated>2015-02-18T12:45:21.437+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="OS X"/><category scheme="http://www.blogger.com/atom/ns#" term="Shell tricks"/><title type='text'>Getting OS X keychain password from terminal</title><content type='html'>Sometimes I have to run curl queries in the terminal for hosts that have password protection. If I do not remember a [usually random] password or forget that the site is protected, I get a 401 response:&lt;br&gt;&lt;br&gt;&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;Atlas:~/Projects/**** [development] $ curl  -I &amp;#39;http://host.example.com/&amp;#39;&lt;/span&gt;&lt;br&gt;&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;HTTP/1.1 401 Authorization Required&lt;/span&gt;&lt;br&gt;&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;Date: Wed, 18 Feb 2015 09:41:18 GMT&lt;/span&gt;&lt;br&gt;&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;Server: Apache&lt;/span&gt;&lt;br&gt;&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;WWW-Authenticate: Basic realm=&amp;quot;Preview&amp;quot;&lt;/span&gt;&lt;br&gt;&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;Vary: Accept-Encoding&lt;/span&gt;&lt;br&gt;&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;Content-Type: text/html; charset=iso-8859-1&lt;/span&gt;&lt;br&gt;&lt;br&gt;Than I have to go to my keychain to look up the password. Thanks to &lt;a href=&quot;http://www.alfredapp.com/&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;Alfred&lt;/a&gt;, it is easy to invoke the keychain but it means switching applications and entering the password for the keychain. I looked for the way to do this from terminal.&lt;br&gt;&lt;br&gt;Here is the command:&lt;br&gt;&lt;a href=&quot;http://www.dmitry-dulepov.com/2015/02/getting-os-x-keychain-password-from.html#more&quot;&gt;Read more »&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.dmitry-dulepov.com/feeds/4766620061186521845/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.dmitry-dulepov.com/2015/02/getting-os-x-keychain-password-from.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3680269432729818126/posts/default/4766620061186521845'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3680269432729818126/posts/default/4766620061186521845'/><link rel='alternate' type='text/html' href='http://www.dmitry-dulepov.com/2015/02/getting-os-x-keychain-password-from.html' title='Getting OS X keychain password from terminal'/><author><name>Dmitry Dulepov</name><uri>http://www.blogger.com/profile/00090275219571853930</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/-oL7X096xpu0/VLfZwIk1ccI/AAAAAAAAAhk/u9xtJQM2jmA/s1600/*'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3680269432729818126.post-7653878105882660254</id><published>2015-02-18T10:45:00.001+03:00</published><updated>2015-02-18T10:45:29.440+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Backup"/><title type='text'>rsnapshot, anyone?</title><content type='html'>Recently I came across &lt;a href=&quot;http://www.rsnapshot.org/&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;rsnapshot&lt;/a&gt; as a backup solution that can do hourly, daily and monthly backups. I am interested in any experience but it is hard to find except for &lt;a href=&quot;https://rayed.com/wordpress/?tag=rsnapshot&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;this&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Does anybody have experience with it?</content><link rel='replies' type='application/atom+xml' href='http://www.dmitry-dulepov.com/feeds/7653878105882660254/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.dmitry-dulepov.com/2015/02/rsnapshot-anyone.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3680269432729818126/posts/default/7653878105882660254'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3680269432729818126/posts/default/7653878105882660254'/><link rel='alternate' type='text/html' href='http://www.dmitry-dulepov.com/2015/02/rsnapshot-anyone.html' title='rsnapshot, anyone?'/><author><name>Dmitry Dulepov</name><uri>http://www.blogger.com/profile/00090275219571853930</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/-oL7X096xpu0/VLfZwIk1ccI/AAAAAAAAAhk/u9xtJQM2jmA/s1600/*'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3680269432729818126.post-3970188323338090196</id><published>2015-02-13T12:01:00.001+03:00</published><updated>2015-02-13T12:01:43.609+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Shell tricks"/><title type='text'>bash completions for my &quot;Projects&quot; directory</title><content type='html'>Linux bash shell has a nice feature called “completions”. You type a command and you press a &lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;TAB&lt;/span&gt; key. This will bring you a list of options that the command supports for completions. You type the first letter of any option and press &lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;TAB&lt;/span&gt; again. Now the list is reduced only to options starting from that letter. And so on.&lt;br&gt;&lt;br&gt;I use terminal quite a lot. All projects for my work are located under ~/Projects/Snowflake (I work for snowflake productions gmbh). To quickly go to that projects from terminal I added the following to my &lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;~/.bash_profile&lt;/span&gt;:&lt;br&gt;&lt;br&gt;&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;alias &amp;quot;cds=cd ~/Projects/Snowflake; cd &amp;quot;&lt;/span&gt;&lt;br&gt;&lt;br&gt;Now I can just type &lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;cds projectname&lt;/span&gt; and get to &lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;~/Projects/Snowflake/projectname&lt;/span&gt;. But I have to remember project names. Many of them are German and it is hard to remember for me. Why not use autocompletion for that? So I made a new file in &lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;/opt/local/bash_completion.d&lt;/span&gt;:&lt;br&gt;&lt;a href=&quot;http://www.dmitry-dulepov.com/2015/02/bash-completions-for-my-projects.html#more&quot;&gt;Read more »&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.dmitry-dulepov.com/feeds/3970188323338090196/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.dmitry-dulepov.com/2015/02/bash-completions-for-my-projects.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3680269432729818126/posts/default/3970188323338090196'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3680269432729818126/posts/default/3970188323338090196'/><link rel='alternate' type='text/html' href='http://www.dmitry-dulepov.com/2015/02/bash-completions-for-my-projects.html' title='bash completions for my &quot;Projects&quot; directory'/><author><name>Dmitry Dulepov</name><uri>http://www.blogger.com/profile/00090275219571853930</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/-oL7X096xpu0/VLfZwIk1ccI/AAAAAAAAAhk/u9xtJQM2jmA/s1600/*'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3680269432729818126.post-624759215446974989</id><published>2015-02-12T15:32:00.008+03:00</published><updated>2015-02-12T15:32:57.580+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Git"/><title type='text'>GIT: show log since the branch was created</title><content type='html'>Quite often I have to use a &lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;git log&lt;/span&gt; command to show what was made in the branch:&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;git log development...feature/add-solr-news-search&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;One thing that I&#39;d like to know is about using short notations. If I am on &lt;span style=&quot;background-color: #eeeeee; font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;feature/add-solr-news-search&lt;/span&gt;, than I can use this:&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;git log development...&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Git will be smart enough to figure out that it is about the current branch. Sadly it is not smart enough for this:&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;git log ...&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I hoped it will figure out that I want a log from the parent branch to the current branch...</content><link rel='replies' type='application/atom+xml' href='http://www.dmitry-dulepov.com/feeds/624759215446974989/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.dmitry-dulepov.com/2015/02/git-show-log-since-branch-was-created.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3680269432729818126/posts/default/624759215446974989'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3680269432729818126/posts/default/624759215446974989'/><link rel='alternate' type='text/html' href='http://www.dmitry-dulepov.com/2015/02/git-show-log-since-branch-was-created.html' title='GIT: show log since the branch was created'/><author><name>Dmitry Dulepov</name><uri>http://www.blogger.com/profile/00090275219571853930</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/-oL7X096xpu0/VLfZwIk1ccI/AAAAAAAAAhk/u9xtJQM2jmA/s1600/*'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3680269432729818126.post-8190934316274315340</id><published>2015-02-12T09:00:00.000+03:00</published><updated>2015-02-12T09:00:01.592+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Git"/><title type='text'>How good are you at Git?</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;http://4.bp.blogspot.com/-3e0lWlsU5Bc/VNp96k6NM_I/AAAAAAAAAjA/K9pNHMdwE_g/s1600/Screen%2BShot%2B2015-02-11%2Bat%2B00.52.43.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://4.bp.blogspot.com/-3e0lWlsU5Bc/VNp96k6NM_I/AAAAAAAAAjA/K9pNHMdwE_g/s1600/Screen%2BShot%2B2015-02-11%2Bat%2B00.52.43.png&quot; height=&quot;433&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Find out using &lt;a href=&quot;https://github.com/hgarc014/git-game&quot; target=&quot;_blank&quot;&gt;Git Game&lt;/a&gt;! You need to clone the repository and look at README.md for the next clue. Ten levels, getting more difficult with each level.&lt;br /&gt;&lt;br /&gt;Can you pass?</content><link rel='replies' type='application/atom+xml' href='http://www.dmitry-dulepov.com/feeds/8190934316274315340/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.dmitry-dulepov.com/2015/02/how-good-are-you-at-git.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3680269432729818126/posts/default/8190934316274315340'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3680269432729818126/posts/default/8190934316274315340'/><link rel='alternate' type='text/html' href='http://www.dmitry-dulepov.com/2015/02/how-good-are-you-at-git.html' title='How good are you at Git?'/><author><name>Dmitry Dulepov</name><uri>http://www.blogger.com/profile/00090275219571853930</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/-oL7X096xpu0/VLfZwIk1ccI/AAAAAAAAAhk/u9xtJQM2jmA/s1600/*'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-3e0lWlsU5Bc/VNp96k6NM_I/AAAAAAAAAjA/K9pNHMdwE_g/s72-c/Screen%2BShot%2B2015-02-11%2Bat%2B00.52.43.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3680269432729818126.post-9019970922361715437</id><published>2015-02-11T00:41:00.001+03:00</published><updated>2015-02-11T00:47:49.213+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Clean coding"/><category scheme="http://www.blogger.com/atom/ns#" term="TYPO3"/><title type='text'>Quality is no compromise</title><content type='html'>When it comes to the code quality, there are no compromises. You either write good code or bad code. There is nothing in the middle.&lt;br&gt;&lt;br&gt;Many years ago I read an excellent book about code quality named “&lt;a href=&quot;http://www.amazon.com/Clean-Code-Handbook-Software-Craftsmanship/dp/0132350882/&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;Clean Code&lt;/a&gt;”. That book goes to extreme and not all recipes are acceptable but I read and re-read, thought again and again until I set my own rules to writing code.&lt;br&gt;&lt;br&gt;I think I have a certain advantage over people, who start using PHP as their first programming language. I started with Pascal and used assembler in parallel during my first five years of programming. Neither allows compromises. Pascal is very strict and assembler is just a razor sharp to errors: one minor error and your head is off. Next I used C++, which was more relaxed but than coded in Java for a couple of years, which was also very strict programming.&lt;br&gt;&lt;br&gt;PHP is very relaxed when it comes to quality standards. You can assign a string to a variable and compare it to the number or to virtually anything else. You can assign any type to any variable, return anything from the function or do not return anything at all. If the programmer did not have good practice with other languages, he may start writing code, which is not that good. It is not necessarily true but it happens.&lt;br&gt;&lt;br&gt;These things came to me today when I tried to use my TYPO3 extension named &lt;a href=&quot;http://github.com/dmitryd/typo3-sentry&quot; target=&quot;_blank&quot;&gt;sentry&lt;/a&gt;. This extension automatically catches all kind of PHP warnings and exceptions (that you do not normally see) into a centralised repository when warnings and exceptions for various projects can be viewed, analysed and processed:&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;http://1.bp.blogspot.com/-J1jmQsg-HbI/VNp6pAlVKgI/AAAAAAAAAi0/QjbZi48c2mE/s1600/sentry0.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://1.bp.blogspot.com/-J1jmQsg-HbI/VNp6pAlVKgI/AAAAAAAAAi0/QjbZi48c2mE/s1600/sentry0.png&quot;&gt;&lt;/a&gt;&lt;/div&gt;&lt;br&gt;&lt;br&gt;Details screen for the first warning looks like:&lt;br&gt;&lt;a href=&quot;http://www.dmitry-dulepov.com/2015/02/quality-is-no-compromise.html#more&quot;&gt;Read more »&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.dmitry-dulepov.com/feeds/9019970922361715437/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.dmitry-dulepov.com/2015/02/quality-is-no-compromise.html#comment-form' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3680269432729818126/posts/default/9019970922361715437'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3680269432729818126/posts/default/9019970922361715437'/><link rel='alternate' type='text/html' href='http://www.dmitry-dulepov.com/2015/02/quality-is-no-compromise.html' title='Quality is no compromise'/><author><name>Dmitry Dulepov</name><uri>http://www.blogger.com/profile/00090275219571853930</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/-oL7X096xpu0/VLfZwIk1ccI/AAAAAAAAAhk/u9xtJQM2jmA/s1600/*'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/-J1jmQsg-HbI/VNp6pAlVKgI/AAAAAAAAAi0/QjbZi48c2mE/s72-c/sentry0.png" height="72" width="72"/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3680269432729818126.post-2681532114118162517</id><published>2015-02-10T18:00:00.001+03:00</published><updated>2015-02-10T18:00:25.063+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Subversion"/><title type='text'>SVN one-liner</title><content type='html'>Using SVN command on the old host to find modified files:&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;svn st | grep &#39;[^MAD\?]&#39;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Looks mad? ;)</content><link rel='replies' type='application/atom+xml' href='http://www.dmitry-dulepov.com/feeds/2681532114118162517/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.dmitry-dulepov.com/2015/02/svn-one-liner.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3680269432729818126/posts/default/2681532114118162517'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3680269432729818126/posts/default/2681532114118162517'/><link rel='alternate' type='text/html' href='http://www.dmitry-dulepov.com/2015/02/svn-one-liner.html' title='SVN one-liner'/><author><name>Dmitry Dulepov</name><uri>http://www.blogger.com/profile/00090275219571853930</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/-oL7X096xpu0/VLfZwIk1ccI/AAAAAAAAAhk/u9xtJQM2jmA/s1600/*'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3680269432729818126.post-8635061738125680763</id><published>2015-01-27T00:26:00.002+03:00</published><updated>2015-01-27T00:26:49.409+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Programming"/><title type='text'>When it fails...</title><content type='html'>Failures happen all the time in every aspect of our life. While I am going to discuss failures of software developers, methods to handle those failures can be also applicable to other situations, even for families and friends.&lt;br&gt;&lt;br&gt;When something fails, we all are unhappy about it. When developers screw up an important launch, when hotfixes break the system even more, when the site does not go online in sync with related sites, it is a failure. Failures has to be handled.&lt;br&gt;&lt;br&gt;How do people handle failures? There are different ways. One of the most dangerous and bad ways to handle failures is to start looking for the responsible person and blaming him for errors.&lt;br&gt;&lt;br&gt;Why is it bad?&lt;br&gt;&lt;a href=&quot;http://www.dmitry-dulepov.com/2015/01/when-it-fails.html#more&quot;&gt;Read more »&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.dmitry-dulepov.com/feeds/8635061738125680763/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.dmitry-dulepov.com/2015/01/when-it-fails.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3680269432729818126/posts/default/8635061738125680763'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3680269432729818126/posts/default/8635061738125680763'/><link rel='alternate' type='text/html' href='http://www.dmitry-dulepov.com/2015/01/when-it-fails.html' title='When it fails...'/><author><name>Dmitry Dulepov</name><uri>http://www.blogger.com/profile/00090275219571853930</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/-oL7X096xpu0/VLfZwIk1ccI/AAAAAAAAAhk/u9xtJQM2jmA/s1600/*'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3680269432729818126.post-1650382792178679131</id><published>2015-01-24T19:20:00.004+03:00</published><updated>2015-01-24T19:20:43.918+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="OS X"/><category scheme="http://www.blogger.com/atom/ns#" term="Photoshop"/><title type='text'>Opening images directly in Photoshop on Mac</title><content type='html'>I work with &lt;b&gt;Adobe Photoshop CC 2014&lt;/b&gt; quite a lot. Often I have to open JPEG images there from Finder. By default, JPEG images are opened in Preview. To open them in Photoshop I have to right-click on the image, scroll down to &lt;b&gt;Open With...&lt;/b&gt;, wait until the pop up menu appears (or click it to open faster), find Adobe Photoshop CC 2014 there and click it. Too long.&lt;br&gt;&lt;br&gt;Can this be simplified? Oh, yes!&lt;br&gt;&lt;a href=&quot;http://www.dmitry-dulepov.com/2015/01/opening-images-directly-in-photoshop-on.html#more&quot;&gt;Read more »&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.dmitry-dulepov.com/feeds/1650382792178679131/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.dmitry-dulepov.com/2015/01/opening-images-directly-in-photoshop-on.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3680269432729818126/posts/default/1650382792178679131'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3680269432729818126/posts/default/1650382792178679131'/><link rel='alternate' type='text/html' href='http://www.dmitry-dulepov.com/2015/01/opening-images-directly-in-photoshop-on.html' title='Opening images directly in Photoshop on Mac'/><author><name>Dmitry Dulepov</name><uri>http://www.blogger.com/profile/00090275219571853930</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/-oL7X096xpu0/VLfZwIk1ccI/AAAAAAAAAhk/u9xtJQM2jmA/s1600/*'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-VLNjfhbBWcc/VMO-bFfQ2AI/AAAAAAAAAiU/AR6jUS-OSGI/s72-c/KwthDXb.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3680269432729818126.post-5776131848588905848</id><published>2015-01-16T09:30:00.003+03:00</published><updated>2015-01-16T14:17:47.592+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Extbase"/><category scheme="http://www.blogger.com/atom/ns#" term="TYPO3"/><title type='text'>Strange localisation code in the Extbase persistence layer</title><content type='html'>Quite often I see that people do mistakes when they work with localisation in TYPO3. This topic is quite complex and often misunderstood.&lt;br&gt;&lt;br&gt;TYPO3 localisation is defined by the &lt;a href=&quot;http://docs.typo3.org/typo3cms/FrontendLocalizationGuide/&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;Frontend Localisation Guide&lt;/a&gt; document, which was written by Kasper. I was one of the early reviewers of the document before it was published. While screenshots there are old, the document is still accurate. Let&amp;#39;s have a quick look how localisation of records is handled in TYPO3.&lt;br&gt;&lt;br&gt;&lt;h3&gt;Record localisation in TYPO3&lt;/h3&gt;Note that we are talking about records here, not pages. Pages are localised slightly differently.&lt;br&gt;&lt;br&gt;All localisable records can be logically divided into the records in the main language and in other languages. This is an important distinction. Main language in TYPO3 always had id equals to zero. Other languages are defined on the tree top level and have id values starting from one.&lt;br&gt;&lt;br&gt;The record in the main language is very important because it contains all fields. Records in other languages may either contain all fields or only some fields that depend on the localisation. For example, a record like Event can have the following fields:&lt;br&gt;&lt;a href=&quot;http://www.dmitry-dulepov.com/2015/01/strange-code-in-extbase-persistance.html#more&quot;&gt;Read more »&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.dmitry-dulepov.com/feeds/5776131848588905848/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.dmitry-dulepov.com/2015/01/strange-code-in-extbase-persistance.html#comment-form' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3680269432729818126/posts/default/5776131848588905848'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3680269432729818126/posts/default/5776131848588905848'/><link rel='alternate' type='text/html' href='http://www.dmitry-dulepov.com/2015/01/strange-code-in-extbase-persistance.html' title='Strange localisation code in the Extbase persistence layer'/><author><name>Dmitry Dulepov</name><uri>http://www.blogger.com/profile/00090275219571853930</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/-oL7X096xpu0/VLfZwIk1ccI/AAAAAAAAAhk/u9xtJQM2jmA/s1600/*'/></author><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3680269432729818126.post-2543833913273842552</id><published>2014-12-05T10:24:00.004+03:00</published><updated>2014-12-05T10:24:57.013+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="TYPO3"/><title type='text'>TYPO3 7.0 and RealURL</title><content type='html'>RealURL is &lt;b&gt;not&lt;/b&gt;&amp;nbsp;compatible with TYPO3 7.0 because old compatibility classes were removed in TYPO3 7.0 but RealURL must be compatible with TYPO3 4.5.&lt;br /&gt;&lt;br /&gt;I plan to release a new version of RealURL somewhere in March 2015. It will compatible with TYPO3 6.2 and newer TYPO3 versions (not with TYPO3 4.5). That new version will use different principles for building URLs: faster and more reliable. This will be completely new code. Configuration will be compatible with existing version with the exception of redirects: they will not be included into new RealURL because I strongly believe it is not a RealURL functionality and &lt;a href=&quot;http://www.dmitry-dulepov.com/2009/03/redirects-typo3-and-realurl-vs.html&quot; target=&quot;_blank&quot;&gt;redirects should be done in a different way&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;That&#39;s all news for now.</content><link rel='replies' type='application/atom+xml' href='http://www.dmitry-dulepov.com/feeds/2543833913273842552/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.dmitry-dulepov.com/2014/12/typo3-70-and-realurl.html#comment-form' title='19 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3680269432729818126/posts/default/2543833913273842552'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3680269432729818126/posts/default/2543833913273842552'/><link rel='alternate' type='text/html' href='http://www.dmitry-dulepov.com/2014/12/typo3-70-and-realurl.html' title='TYPO3 7.0 and RealURL'/><author><name>Dmitry Dulepov</name><uri>http://www.blogger.com/profile/00090275219571853930</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/-oL7X096xpu0/VLfZwIk1ccI/AAAAAAAAAhk/u9xtJQM2jmA/s1600/*'/></author><thr:total>19</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3680269432729818126.post-6596725941033975190</id><published>2014-11-24T16:45:00.000+03:00</published><updated>2014-11-24T16:46:50.634+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="PHP"/><title type='text'>Zend Certification Study Guide</title><content type='html'>I understand why they give 50% discount to it. Not worth the money at all.&lt;br /&gt;&lt;br /&gt;It costs $15 at Zend web site and it is absolutely useless. If you can read headings of PHP manual at php.net and 2-3 sentences of each section, this is what this $15 guide gives you: heading at a couple of [worthless] sentences.&lt;br /&gt;&lt;br /&gt;Lost money, total crap. Don&#39;t buy.</content><link rel='replies' type='application/atom+xml' href='http://www.dmitry-dulepov.com/feeds/6596725941033975190/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.dmitry-dulepov.com/2014/11/zend-certification-study-guide.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3680269432729818126/posts/default/6596725941033975190'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3680269432729818126/posts/default/6596725941033975190'/><link rel='alternate' type='text/html' href='http://www.dmitry-dulepov.com/2014/11/zend-certification-study-guide.html' title='Zend Certification Study Guide'/><author><name>Dmitry Dulepov</name><uri>http://www.blogger.com/profile/00090275219571853930</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/-oL7X096xpu0/VLfZwIk1ccI/AAAAAAAAAhk/u9xtJQM2jmA/s1600/*'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3680269432729818126.post-6330349356064283690</id><published>2014-11-23T13:42:00.001+03:00</published><updated>2014-11-23T13:42:39.559+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Apple"/><category scheme="http://www.blogger.com/atom/ns#" term="iOS"/><category scheme="http://www.blogger.com/atom/ns#" term="OS X"/><title type='text'>Why I wouldn&#39;t upgrade to Yosemite, iOS 8.1, etc.</title><content type='html'>Usually when Apple makes updates I upgrade fast. For regular users (non-developers) such updates are easy and bring new cool features. For developers it is a certain amount of pain because developers have to reinstall all kind of tools they use (java, macports, Xcode, and so on). It takes some time but still it is usually worth upgrading.&lt;br /&gt;&lt;br /&gt;This time when Apple released Yosemite and iOS 8.x I decided not to upgrade. Why? Because it causes more problems than it is worth. See yourself:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Apple &lt;a href=&quot;http://www.cindori.org/trim-enabler-and-yosemite/&quot; target=&quot;_blank&quot;&gt;broke&lt;/a&gt; TRIM for 3rd party SSDs. It is pretty bad not to provide TRIM by default for all drives but to complicate TRIM enabling is even worse. Yes, this can be overruled but the cost is lowering security of the OS. Bad.&lt;/li&gt;&lt;li&gt;Continuity. Sorry, no. I do not wish to pick up phone calls on my Mac or iPad. I do not want all my devices to ring at the same time, especially when I am on a call with my boss over Skype. Yes, it can be switched off. But I do not want to go and switch it off everywhere somewhere deep inside settings. I want either a question at installation or this feature to be off by default to preserve compatibility.&lt;/li&gt;&lt;li&gt;Stability issues. OS X should not come with wi-fi connectivity issues.&lt;/li&gt;&lt;li&gt;Performance issues. Nether iOS, not OS X should be that much terribly slower because some head at Apple decided that transparency is cool and windows now should be transparent. Yes, can be turned off but why the system comes with non-optimal settings?&lt;/li&gt;&lt;li&gt;Why does it enforces iCloud on me? I do not want to use your iCloud, Apple!&lt;/li&gt;&lt;/ul&gt;Apple devices and OS are still the best combination to work with. Nobody made even anything remotely close to the convenience of Apple production for the same price. So I stick with Apple for now but I am looking for something else. Not Windows. May be some Linux, which is optimized for humans (no, not Ubuntu). And good hardware that works smoothly, with multitouch touchpad and proper keyboard work. 404, not found so far.</content><link rel='replies' type='application/atom+xml' href='http://www.dmitry-dulepov.com/feeds/6330349356064283690/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.dmitry-dulepov.com/2014/11/why-i-wouldnt-upgrade-to-yosemite-ios.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3680269432729818126/posts/default/6330349356064283690'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3680269432729818126/posts/default/6330349356064283690'/><link rel='alternate' type='text/html' href='http://www.dmitry-dulepov.com/2014/11/why-i-wouldnt-upgrade-to-yosemite-ios.html' title='Why I wouldn&#39;t upgrade to Yosemite, iOS 8.1, etc.'/><author><name>Dmitry Dulepov</name><uri>http://www.blogger.com/profile/00090275219571853930</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/-oL7X096xpu0/VLfZwIk1ccI/AAAAAAAAAhk/u9xtJQM2jmA/s1600/*'/></author><thr:total>1</thr:total></entry></feed>