<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;DE8HQ3g-fyp7ImA9WhRXGE4.&quot;"><id>tag:blogger.com,1999:blog-7664472768379327993</id><updated>2011-12-25T20:13:52.657+02:00</updated><category term="Python" /><category term="KDE" /><category term="MySQL" /><category term="sysadmin" /><category term="search engines" /><category term="Javascript" /><category term="HowTo" /><category term="bash" /><category term="general" /><category term="PERL" /><category term="Google" /><category term="wordpress" /><category term="PHP" /><category term="jquery" /><category term="Firefox" /><category term="SEO" /><category term="Linux" /><category term="browser" /><category term="GIMP" /><category term="HTML" /><category term="optimization" /><category term="Apache" /><category term="review" /><category term="Facebook" /><category term="rant" /><title>The light of the LAMP...</title><subtitle type="html">Notes and adventures of a LAMP (Linux/Apache/MySQL/PHP|PERL|Python) developer/maintainer</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://lightoflamp.blogspot.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://lightoflamp.blogspot.com/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/7664472768379327993/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>Apostolos Tsompanopoulos</name><uri>https://profiles.google.com/116830033229579059545</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh6.googleusercontent.com/-uPD85_TaBPk/AAAAAAAAAAI/AAAAAAAABkQ/-CPE5ulnaos/s512-c/photo.jpg" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>58</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/LightOfLamp" /><feedburner:info uri="lightoflamp" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:emailServiceId>LightOfLamp</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><entry gd:etag="W/&quot;A0MNSHg4cCp7ImA9WhRRFUk.&quot;"><id>tag:blogger.com,1999:blog-7664472768379327993.post-1883527293142156622</id><published>2011-11-29T08:51:00.000+02:00</published><updated>2011-11-29T08:51:39.638+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-29T08:51:39.638+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="sysadmin" /><category scheme="http://www.blogger.com/atom/ns#" term="general" /><title>Think like a virus!</title><content type="html">Not related to L.A.M.P. technologies, but a useful quote to remember if you are a net admin:&lt;br /&gt;
&lt;blockquote class="tr_bq"&gt;
As a network administrator, you have to think like a virus.&lt;br /&gt;
How can I get into a network?&lt;br /&gt;
Which points are the most vulnerable?&lt;br /&gt;
Once in, what's the easiest path to destruction?&lt;/blockquote&gt;
&lt;cite&gt;From the "Windows sources" magazine, July 1997 issue, page 158, "NT admin&amp;gt; Stop network attacks" by David Chernicoff&lt;/cite&gt;&lt;div class="blogger-post-footer"&gt;&lt;hr /&gt; Visit &lt;a href="http://lightoflamp.blogspot.com"&gt;The Light of the LAMP&lt;/a&gt; blog for more...&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7664472768379327993-1883527293142156622?l=lightoflamp.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/UrsG71tlFvQjqhOv-D2XyMuocCI/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/UrsG71tlFvQjqhOv-D2XyMuocCI/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/UrsG71tlFvQjqhOv-D2XyMuocCI/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/UrsG71tlFvQjqhOv-D2XyMuocCI/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=aojstuVQUKE:-xtYxheK1OA:VYtfdMxc7SE"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?i=aojstuVQUKE:-xtYxheK1OA:VYtfdMxc7SE" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=aojstuVQUKE:-xtYxheK1OA:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=aojstuVQUKE:-xtYxheK1OA:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=aojstuVQUKE:-xtYxheK1OA:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?i=aojstuVQUKE:-xtYxheK1OA:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=aojstuVQUKE:-xtYxheK1OA:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?i=aojstuVQUKE:-xtYxheK1OA:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=aojstuVQUKE:-xtYxheK1OA:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=aojstuVQUKE:-xtYxheK1OA:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?i=aojstuVQUKE:-xtYxheK1OA:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=aojstuVQUKE:-xtYxheK1OA:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/LightOfLamp/~4/aojstuVQUKE" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://lightoflamp.blogspot.com/feeds/1883527293142156622/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7664472768379327993&amp;postID=1883527293142156622&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7664472768379327993/posts/default/1883527293142156622?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7664472768379327993/posts/default/1883527293142156622?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/LightOfLamp/~3/aojstuVQUKE/think-like-virus.html" title="Think like a virus!" /><author><name>Apostolos P. Tsompanopoulos</name><uri>http://www.blogger.com/profile/10128218517633851014</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://1.bp.blogspot.com/_R14v4a5RaAw/Sc6je9IFwmI/AAAAAAAAABU/gvSkLwfw6TA/S220/apt4.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://lightoflamp.blogspot.com/2011/11/think-like-virus.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkAEQnkycCp7ImA9WhRTEU4.&quot;"><id>tag:blogger.com,1999:blog-7664472768379327993.post-7945496524260669226</id><published>2011-11-01T09:21:00.000+02:00</published><updated>2011-11-01T11:11:43.798+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-01T11:11:43.798+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="HowTo" /><category scheme="http://www.blogger.com/atom/ns#" term="Google" /><category scheme="http://www.blogger.com/atom/ns#" term="Firefox" /><title>How to hide "Mark all as read" in new Google Reader</title><content type="html">With the new redesign of Google Reader (the Google+ look-alike), I've noticed a new annoying behavior today.&lt;br /&gt;
The "Mark all as read" in now a button that takes &lt;b&gt;and keeps&lt;/b&gt; focus. This means that if you press it once with your mouse and, then, go to another group of posts and press &lt;i&gt;space&lt;/i&gt; to view the next page, you 'll end to mark all posts in that group as read!!! [because the "Mark all as read" button has got the focus]&lt;br /&gt;
The easier work-around solution I've found is to hide that button and use &lt;strike&gt;Ctrl-A&lt;/strike&gt; Shift-A [edited] whenever I want to use the [main] functionality. I know that by hiding all options I miss the option to mark all older than a date as read, but I can live with this instead of marking as read all posts by mistake.&lt;br /&gt;
&lt;br /&gt;
Since I work with &lt;b&gt;Firefox&lt;/b&gt; and use &lt;b&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/stylish/"&gt;Stylish&lt;/a&gt;&lt;/b&gt;, this hiding is easy. Just add a new recipe, name it something like "hide mark all in GReader" and insert the following in it:&lt;br /&gt;
&lt;blockquote class="tr_bq"&gt;
&lt;code&gt;
@-moz-document url-prefix(http://www.google.com/reader), url-prefix(https://www.google.com/reader), url-prefix(http://google.com/reader), url-prefix(https://google.com/reader) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; span#mark-all-as-read-split-button { display: none !important; }&lt;br /&gt;}&lt;/code&gt;&lt;/blockquote&gt;
and enable the Stylish recipe when you want to feel safe.&lt;div class="blogger-post-footer"&gt;&lt;hr /&gt; Visit &lt;a href="http://lightoflamp.blogspot.com"&gt;The Light of the LAMP&lt;/a&gt; blog for more...&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7664472768379327993-7945496524260669226?l=lightoflamp.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/i8RUa27iTF9JUtDoxwPBkYpNdIU/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/i8RUa27iTF9JUtDoxwPBkYpNdIU/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/i8RUa27iTF9JUtDoxwPBkYpNdIU/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/i8RUa27iTF9JUtDoxwPBkYpNdIU/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=xcNygL1LGhI:gsOHd8fPH_c:VYtfdMxc7SE"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?i=xcNygL1LGhI:gsOHd8fPH_c:VYtfdMxc7SE" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=xcNygL1LGhI:gsOHd8fPH_c:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=xcNygL1LGhI:gsOHd8fPH_c:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=xcNygL1LGhI:gsOHd8fPH_c:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?i=xcNygL1LGhI:gsOHd8fPH_c:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=xcNygL1LGhI:gsOHd8fPH_c:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?i=xcNygL1LGhI:gsOHd8fPH_c:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=xcNygL1LGhI:gsOHd8fPH_c:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=xcNygL1LGhI:gsOHd8fPH_c:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?i=xcNygL1LGhI:gsOHd8fPH_c:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=xcNygL1LGhI:gsOHd8fPH_c:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/LightOfLamp/~4/xcNygL1LGhI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://lightoflamp.blogspot.com/feeds/7945496524260669226/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7664472768379327993&amp;postID=7945496524260669226&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7664472768379327993/posts/default/7945496524260669226?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7664472768379327993/posts/default/7945496524260669226?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/LightOfLamp/~3/xcNygL1LGhI/how-to-hide-mark-all-as-read-in-new.html" title="How to hide &quot;Mark all as read&quot; in new Google Reader" /><author><name>Apostolos Tsompanopoulos</name><uri>https://profiles.google.com/116830033229579059545</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh6.googleusercontent.com/-uPD85_TaBPk/AAAAAAAAAAI/AAAAAAAABkQ/-CPE5ulnaos/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://lightoflamp.blogspot.com/2011/11/how-to-hide-mark-all-as-read-in-new.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0ENQ3w4cSp7ImA9WhdVFkk.&quot;"><id>tag:blogger.com,1999:blog-7664472768379327993.post-2985294229398485789</id><published>2011-09-22T00:48:00.000+03:00</published><updated>2011-09-22T00:48:12.239+03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-09-22T00:48:12.239+03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="HowTo" /><category scheme="http://www.blogger.com/atom/ns#" term="Facebook" /><category scheme="http://www.blogger.com/atom/ns#" term="Firefox" /><title>How to hide the new Facebook news feed</title><content type="html">In case you are using Firefox and you want to hide the new Facebook right-column news feed, here is a quick hack.&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;At first, you need to install &lt;a href="https://addons.mozilla.org/el/firefox/addon/stylish/"&gt;Stylish&lt;/a&gt;, if you don't have it already.&lt;/li&gt;
&lt;li&gt;Add a new blank style with the following lines in it and give it whatever name you want.&lt;/li&gt;
&lt;li&gt;Energize! ;-)&lt;/li&gt;
&lt;/ul&gt;
&amp;nbsp;The code:&lt;br /&gt;
&lt;blockquote&gt;
&lt;code&gt;@namespace url(http://www.w3.org/1999/xhtml);&lt;br /&gt;&lt;br /&gt;@-moz-document domain("facebook.com") {&lt;br /&gt;&amp;nbsp; .fbFeedTickerStory { display: none !important; }&lt;br /&gt;}&lt;/code&gt;&lt;/blockquote&gt;
&lt;div class="blogger-post-footer"&gt;&lt;hr /&gt; Visit &lt;a href="http://lightoflamp.blogspot.com"&gt;The Light of the LAMP&lt;/a&gt; blog for more...&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7664472768379327993-2985294229398485789?l=lightoflamp.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/f1PAGixcxuZaho-gZ9Ohfh7ykis/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/f1PAGixcxuZaho-gZ9Ohfh7ykis/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/f1PAGixcxuZaho-gZ9Ohfh7ykis/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/f1PAGixcxuZaho-gZ9Ohfh7ykis/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=wnmVWEKkCHA:dE8qldY2Ryg:VYtfdMxc7SE"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?i=wnmVWEKkCHA:dE8qldY2Ryg:VYtfdMxc7SE" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=wnmVWEKkCHA:dE8qldY2Ryg:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=wnmVWEKkCHA:dE8qldY2Ryg:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=wnmVWEKkCHA:dE8qldY2Ryg:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?i=wnmVWEKkCHA:dE8qldY2Ryg:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=wnmVWEKkCHA:dE8qldY2Ryg:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?i=wnmVWEKkCHA:dE8qldY2Ryg:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=wnmVWEKkCHA:dE8qldY2Ryg:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=wnmVWEKkCHA:dE8qldY2Ryg:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?i=wnmVWEKkCHA:dE8qldY2Ryg:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=wnmVWEKkCHA:dE8qldY2Ryg:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/LightOfLamp/~4/wnmVWEKkCHA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://lightoflamp.blogspot.com/feeds/2985294229398485789/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7664472768379327993&amp;postID=2985294229398485789&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7664472768379327993/posts/default/2985294229398485789?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7664472768379327993/posts/default/2985294229398485789?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/LightOfLamp/~3/wnmVWEKkCHA/how-to-hide-new-facebook-news-feed.html" title="How to hide the new Facebook news feed" /><author><name>Apostolos Tsompanopoulos</name><uri>https://profiles.google.com/116830033229579059545</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh6.googleusercontent.com/-uPD85_TaBPk/AAAAAAAAAAI/AAAAAAAABkQ/-CPE5ulnaos/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://lightoflamp.blogspot.com/2011/09/how-to-hide-new-facebook-news-feed.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEcNRXw9fip7ImA9WhRTEU4.&quot;"><id>tag:blogger.com,1999:blog-7664472768379327993.post-8351855286409255381</id><published>2011-09-18T13:08:00.002+03:00</published><updated>2011-11-01T09:21:34.266+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-01T09:21:34.266+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="HowTo" /><category scheme="http://www.blogger.com/atom/ns#" term="Google" /><title>How to forward a Google+ post to your email inbox</title><content type="html">While we 're still waiting for the full &lt;a href="http://googlecode.blogspot.com/2011/09/getting-started-on-google-api.html"&gt;Google+ API&lt;/a&gt; to be available in public, I recently asked in twitter for "&lt;a href="http://twitter.com/aptlogs/statuses/114635411116130304"&gt;an easy way to save GooglePlus posts for later reading or archiving&lt;/a&gt;" and this is the solution I found since then:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Go to Google+ and create a new circle.&lt;/li&gt;
&lt;li&gt;Add in this circle one of your email addresses, that &lt;b&gt;has NOT&lt;/b&gt; a Google+ account; just the email. In case you don't have a second email address, either create one or use the plus-enhanced mode of the one you already have (if your provider accepts this mode), i.e. something like username&lt;b&gt;+gplus&lt;/b&gt;@email.provider.tld (given that your email is username@email.provider.tld, you should add "+gplus" (or something similar) just before the "@" sign -- replace "username", "email.provider.tld" as appropriate).&lt;/li&gt;
&lt;li&gt;From now on, when you find something interesting, you have to &lt;b&gt;share&lt;/b&gt; it with this new circle and, since the one member of the circle has no Google+ profile, the interesting post will land into your email box.&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;b&gt;Update&lt;/b&gt; [2011/09/21]: this technique comes handy also when you want a copy of &lt;b&gt;your&lt;/b&gt; posts into your email box. You just have to include the "&lt;b&gt;me&lt;/b&gt;" circle as a recipient of your posts, along with the other circles or people.&lt;br /&gt;
&lt;br /&gt;
With this trick you don't need an RSS feed for your posts [although I think that Google must implement this as a feature, IMHO]&lt;br /&gt;
&lt;ul&gt;
&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;hr /&gt; Visit &lt;a href="http://lightoflamp.blogspot.com"&gt;The Light of the LAMP&lt;/a&gt; blog for more...&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7664472768379327993-8351855286409255381?l=lightoflamp.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/942qbTHQMm0gjNPNsmHwJYcOgXc/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/942qbTHQMm0gjNPNsmHwJYcOgXc/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/942qbTHQMm0gjNPNsmHwJYcOgXc/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/942qbTHQMm0gjNPNsmHwJYcOgXc/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=yDxXvjxKLFE:jh96HHxtn0c:VYtfdMxc7SE"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?i=yDxXvjxKLFE:jh96HHxtn0c:VYtfdMxc7SE" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=yDxXvjxKLFE:jh96HHxtn0c:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=yDxXvjxKLFE:jh96HHxtn0c:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=yDxXvjxKLFE:jh96HHxtn0c:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?i=yDxXvjxKLFE:jh96HHxtn0c:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=yDxXvjxKLFE:jh96HHxtn0c:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?i=yDxXvjxKLFE:jh96HHxtn0c:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=yDxXvjxKLFE:jh96HHxtn0c:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=yDxXvjxKLFE:jh96HHxtn0c:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?i=yDxXvjxKLFE:jh96HHxtn0c:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=yDxXvjxKLFE:jh96HHxtn0c:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/LightOfLamp/~4/yDxXvjxKLFE" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://lightoflamp.blogspot.com/feeds/8351855286409255381/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7664472768379327993&amp;postID=8351855286409255381&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7664472768379327993/posts/default/8351855286409255381?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7664472768379327993/posts/default/8351855286409255381?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/LightOfLamp/~3/yDxXvjxKLFE/how-to-forward-google-post-to-your.html" title="How to forward a Google+ post to your email inbox" /><author><name>Apostolos Tsompanopoulos</name><uri>https://profiles.google.com/116830033229579059545</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh6.googleusercontent.com/-uPD85_TaBPk/AAAAAAAAAAI/AAAAAAAABkQ/-CPE5ulnaos/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://lightoflamp.blogspot.com/2011/09/how-to-forward-google-post-to-your.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkIDQng7fip7ImA9WhdREU8.&quot;"><id>tag:blogger.com,1999:blog-7664472768379327993.post-4723135959527484723</id><published>2011-07-31T19:09:00.000+03:00</published><updated>2011-07-31T19:09:33.606+03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-07-31T19:09:33.606+03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Google" /><category scheme="http://www.blogger.com/atom/ns#" term="Firefox" /><title>Re-enabling Google FriendConnect gadgets</title><content type="html">In case you see blank boxes in your Firefox, instead of &lt;a href="http://www.google.com/friendconnect/"&gt;Google FriendConnect&lt;/a&gt; (GFC) gadgets, you can try searching the configuration window of the &lt;a href="https://www.eff.org/https-everywhere"&gt;HTTPS Everywhere&lt;/a&gt; add-on. For me, it was the &lt;b&gt;GoogleServices&lt;/b&gt; option, which I had to deactivate in order to re-enable the GFC gadgets.&lt;br /&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-m2-BMPfnG6Y/TjV8vH73UJI/AAAAAAAABfg/Hhu4PBBdz_0/s1600/https-everywhere.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-m2-BMPfnG6Y/TjV8vH73UJI/AAAAAAAABfg/Hhu4PBBdz_0/s1600/https-everywhere.png" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;HTTPS Everywhere Preferences window&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
It took me some time and several deactivations and reactivations of my add-ons while trying to find the culprit and I found it.&lt;div class="blogger-post-footer"&gt;&lt;hr /&gt; Visit &lt;a href="http://lightoflamp.blogspot.com"&gt;The Light of the LAMP&lt;/a&gt; blog for more...&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7664472768379327993-4723135959527484723?l=lightoflamp.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/nA3kFRVVesewPASHUZyVatmBj0M/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/nA3kFRVVesewPASHUZyVatmBj0M/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/nA3kFRVVesewPASHUZyVatmBj0M/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/nA3kFRVVesewPASHUZyVatmBj0M/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=vtx1NE7v2TM:NfIaFuRcmM4:VYtfdMxc7SE"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?i=vtx1NE7v2TM:NfIaFuRcmM4:VYtfdMxc7SE" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=vtx1NE7v2TM:NfIaFuRcmM4:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=vtx1NE7v2TM:NfIaFuRcmM4:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=vtx1NE7v2TM:NfIaFuRcmM4:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?i=vtx1NE7v2TM:NfIaFuRcmM4:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=vtx1NE7v2TM:NfIaFuRcmM4:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?i=vtx1NE7v2TM:NfIaFuRcmM4:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=vtx1NE7v2TM:NfIaFuRcmM4:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=vtx1NE7v2TM:NfIaFuRcmM4:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?i=vtx1NE7v2TM:NfIaFuRcmM4:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=vtx1NE7v2TM:NfIaFuRcmM4:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/LightOfLamp/~4/vtx1NE7v2TM" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://lightoflamp.blogspot.com/feeds/4723135959527484723/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7664472768379327993&amp;postID=4723135959527484723&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7664472768379327993/posts/default/4723135959527484723?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7664472768379327993/posts/default/4723135959527484723?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/LightOfLamp/~3/vtx1NE7v2TM/re-enabling-google-friendconnect.html" title="Re-enabling Google FriendConnect gadgets" /><author><name>Apostolos P. Tsompanopoulos</name><uri>http://www.blogger.com/profile/10128218517633851014</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://1.bp.blogspot.com/_R14v4a5RaAw/Sc6je9IFwmI/AAAAAAAAABU/gvSkLwfw6TA/S220/apt4.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/-m2-BMPfnG6Y/TjV8vH73UJI/AAAAAAAABfg/Hhu4PBBdz_0/s72-c/https-everywhere.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://lightoflamp.blogspot.com/2011/07/re-enabling-google-friendconnect.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEMARnc8eyp7ImA9WhRXEEg.&quot;"><id>tag:blogger.com,1999:blog-7664472768379327993.post-8169525589025616484</id><published>2011-07-27T20:26:00.004+03:00</published><updated>2011-12-16T18:20:47.973+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-16T18:20:47.973+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="MySQL" /><category scheme="http://www.blogger.com/atom/ns#" term="wordpress" /><category scheme="http://www.blogger.com/atom/ns#" term="PHP" /><title>Show all my active WordPress plugins</title><content type="html">Recently, I needed to get a list of every plugin that I've activated on all of my WordPress local-hosted blogs.&lt;br /&gt;
So, instead of going to every blog's dashboard and noting down the list of every active plugin, I decided to write a quick (and dirty, i.e. not optimized) script.&lt;br /&gt;
&lt;blockquote&gt;
&lt;code&gt;
&lt;br /&gt;&lt;code&gt;
&amp;lt;?php&lt;/code&gt;&lt;br /&gt;&lt;code&gt;
// initialize variables [you have to change them to their proper values]&lt;/code&gt;&lt;br /&gt;&lt;code&gt;
$dbhost = "localhost";&lt;/code&gt;&lt;br /&gt;&lt;code&gt;
$dbuser = "dbuser";&lt;/code&gt;&lt;br /&gt;&lt;code&gt;
$dbpass = "dbpassword";&lt;/code&gt;&lt;br /&gt;&lt;code&gt;
&lt;/code&gt;&lt;br /&gt;&lt;code&gt;
// connect to MySQL and get all database names&lt;/code&gt;&lt;br /&gt;&lt;code&gt;
$db = mysql_connect( $dbhost, $dbuser, $dbpass)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; or die( "MySQL connection problem: " . mysql_error());&lt;/code&gt;&lt;br /&gt;&lt;code&gt;
mysql_set_charset( "utf8");&lt;/code&gt;&lt;br /&gt;&lt;code&gt;
mysql_select_db( "information_schema", $db) or die( mysql_error());&lt;/code&gt;&lt;br /&gt;&lt;code&gt;
$sql = "SELECT SCHEMA_NAME FROM SCHEMATA";&lt;/code&gt;&lt;br /&gt;&lt;code&gt;
$u0 = mysql_query( $sql, $db) or die( mysql_error());&lt;/code&gt;&lt;br /&gt;&lt;code&gt;
$alldb = array();&lt;/code&gt;&lt;br /&gt;&lt;code&gt;
while ($u1 = mysql_fetch_row( $u0)) { $alldb[] = $u1[ 0]; }&lt;/code&gt;&lt;br /&gt;&lt;code&gt;
&lt;/code&gt;&lt;br /&gt;&lt;code&gt;
// select each database found and check for active plugins&lt;/code&gt;&lt;br /&gt;&lt;code&gt;
foreach( $alldb as $adb) {&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;
 $conn = mysql_select_db( $adb, $db);&lt;/code&gt;&lt;br /&gt;&lt;code&gt;
&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // get *_options table name&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code&gt;$sql = "SHOW TABLES FROM $adb LIKE '%_options'";&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code&gt;
 $u0 = mysql_query( $sql, $db); // or continue;&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code&gt;
 while ($u1 = mysql_fetch_row( $u0)) {&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code&gt;
  if ($opt = $u1[0]) {&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code&gt;
   // get active plugins list&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code&gt;
   $sql = "SELECT * FROM $opt WHERE option_name='active_plugins'";&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code&gt;
   $u00 = mysql_query( $sql, $db);&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code&gt;
   if ($u01 = mysql_fetch_array( $u00)) {&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code&gt;
    $apj = $u01[ 'option_value'];&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code&gt;
    if ($apj) {&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code&gt;
     $ap = unserialize( $apj);&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code&gt;
     foreach( $ap as $apv)&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code&gt;
      echo "Database: $adb &amp;gt;&amp;gt;&amp;gt; $apv\n";&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code&gt;
    }&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code&gt;
   }&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code&gt;
  }&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code&gt;
 }&lt;/code&gt;&lt;br /&gt;&lt;code&gt;
}&lt;/code&gt;&lt;br /&gt;&lt;code&gt;
&lt;/code&gt;&lt;br /&gt;&lt;code&gt;
mysql_close( $db);&lt;/code&gt;&lt;br /&gt;&lt;code&gt;
?&amp;gt;&lt;/code&gt;&lt;/code&gt;&lt;/blockquote&gt;
&lt;code&gt;The output of this script is a list of all active plugins, one for each line, so it can be used in a shell script, for example one can find out how many of them are active:&lt;/code&gt;&lt;br /&gt;
&lt;blockquote&gt;
&lt;code&gt;php show_all_active_plugins.php | wc -l&lt;/code&gt;&lt;/blockquote&gt;
&lt;code&gt;or find out which blogs are using a certain plugin:&lt;/code&gt;&lt;br /&gt;
&lt;blockquote&gt;
&lt;code&gt; php show_all_active_plugins.php | grep akismet&lt;plugin name=""&gt;&lt;br /&gt;&lt;/plugin&gt;&lt;/code&gt;&lt;/blockquote&gt;
&lt;br /&gt;
&lt;code&gt;Disclaimer: as usual, this script works for my setup and, for this reason, I'm sharing it here for everyone interested. I hope it will work for anyone else who tries it, but I cannot guarantee it for every possible situation.&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;hr /&gt; Visit &lt;a href="http://lightoflamp.blogspot.com"&gt;The Light of the LAMP&lt;/a&gt; blog for more...&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7664472768379327993-8169525589025616484?l=lightoflamp.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/_QH_F3S1L7pcM93UQ4SUbJqZ8TI/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/_QH_F3S1L7pcM93UQ4SUbJqZ8TI/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/_QH_F3S1L7pcM93UQ4SUbJqZ8TI/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/_QH_F3S1L7pcM93UQ4SUbJqZ8TI/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=ByxpN0HzK_M:DEjHPYtaYVE:VYtfdMxc7SE"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?i=ByxpN0HzK_M:DEjHPYtaYVE:VYtfdMxc7SE" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=ByxpN0HzK_M:DEjHPYtaYVE:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=ByxpN0HzK_M:DEjHPYtaYVE:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=ByxpN0HzK_M:DEjHPYtaYVE:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?i=ByxpN0HzK_M:DEjHPYtaYVE:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=ByxpN0HzK_M:DEjHPYtaYVE:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?i=ByxpN0HzK_M:DEjHPYtaYVE:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=ByxpN0HzK_M:DEjHPYtaYVE:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=ByxpN0HzK_M:DEjHPYtaYVE:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?i=ByxpN0HzK_M:DEjHPYtaYVE:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=ByxpN0HzK_M:DEjHPYtaYVE:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/LightOfLamp/~4/ByxpN0HzK_M" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://lightoflamp.blogspot.com/feeds/8169525589025616484/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7664472768379327993&amp;postID=8169525589025616484&amp;isPopup=true" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7664472768379327993/posts/default/8169525589025616484?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7664472768379327993/posts/default/8169525589025616484?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/LightOfLamp/~3/ByxpN0HzK_M/show-all-my-active-wordpress-plugins.html" title="Show all my active WordPress plugins" /><author><name>Apostolos P. Tsompanopoulos</name><uri>http://www.blogger.com/profile/10128218517633851014</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://1.bp.blogspot.com/_R14v4a5RaAw/Sc6je9IFwmI/AAAAAAAAABU/gvSkLwfw6TA/S220/apt4.jpg" /></author><thr:total>2</thr:total><feedburner:origLink>http://lightoflamp.blogspot.com/2011/07/show-all-my-active-wordpress-plugins.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEYFR3k9cSp7ImA9WhRTEU4.&quot;"><id>tag:blogger.com,1999:blog-7664472768379327993.post-2219951211585499632</id><published>2011-07-12T23:42:00.001+03:00</published><updated>2011-11-01T09:21:56.769+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-01T09:21:56.769+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="HowTo" /><category scheme="http://www.blogger.com/atom/ns#" term="Google" /><title>How to share an article from Google Reader to Google+</title><content type="html">Just a quick tip for every Google Reader user who needs to share an interesting article with one or more of her Google+ Circles.&lt;br /&gt;
&lt;br /&gt;
Given that we have the Google+ share box on the top-right corner of GReader, the simplest way I've found is:&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;grab the URL of the article, by right-clicking on its title and select "Copy link location"&lt;/li&gt;
&lt;li&gt;click at the "Share" box (at the top-right corner of the window)&lt;/li&gt;
&lt;li&gt;click at the &lt;i&gt;chain&lt;/i&gt; icon ("Add link") and paste the copied URL there; press the "Add" button&lt;/li&gt;
&lt;li&gt;select the people or circles you want to share it with&lt;/li&gt;
&lt;li&gt; if you want, you can comment on the text-box above the link &lt;/li&gt;
&lt;li&gt;click at the "Share" button&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-btviMJW3k90/ThyxaD4HHXI/AAAAAAAABd0/gZhI-Aegh1k/s1600/share-to-google-plus.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-btviMJW3k90/ThyxaD4HHXI/AAAAAAAABd0/gZhI-Aegh1k/s1600/share-to-google-plus.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;hr /&gt; Visit &lt;a href="http://lightoflamp.blogspot.com"&gt;The Light of the LAMP&lt;/a&gt; blog for more...&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7664472768379327993-2219951211585499632?l=lightoflamp.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/2mXHYbv3qYC-pvU0xe4i9HJBNHk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/2mXHYbv3qYC-pvU0xe4i9HJBNHk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/2mXHYbv3qYC-pvU0xe4i9HJBNHk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/2mXHYbv3qYC-pvU0xe4i9HJBNHk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=pIyt6A7USpw:JJnLo5Lk-lg:VYtfdMxc7SE"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?i=pIyt6A7USpw:JJnLo5Lk-lg:VYtfdMxc7SE" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=pIyt6A7USpw:JJnLo5Lk-lg:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=pIyt6A7USpw:JJnLo5Lk-lg:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=pIyt6A7USpw:JJnLo5Lk-lg:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?i=pIyt6A7USpw:JJnLo5Lk-lg:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=pIyt6A7USpw:JJnLo5Lk-lg:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?i=pIyt6A7USpw:JJnLo5Lk-lg:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=pIyt6A7USpw:JJnLo5Lk-lg:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=pIyt6A7USpw:JJnLo5Lk-lg:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?i=pIyt6A7USpw:JJnLo5Lk-lg:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=pIyt6A7USpw:JJnLo5Lk-lg:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/LightOfLamp/~4/pIyt6A7USpw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://lightoflamp.blogspot.com/feeds/2219951211585499632/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7664472768379327993&amp;postID=2219951211585499632&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7664472768379327993/posts/default/2219951211585499632?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7664472768379327993/posts/default/2219951211585499632?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/LightOfLamp/~3/pIyt6A7USpw/how-to-share-article-from-google-reader.html" title="How to share an article from Google Reader to Google+" /><author><name>Apostolos Tsompanopoulos</name><uri>https://profiles.google.com/116830033229579059545</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh6.googleusercontent.com/-uPD85_TaBPk/AAAAAAAAAAI/AAAAAAAABkQ/-CPE5ulnaos/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/-btviMJW3k90/ThyxaD4HHXI/AAAAAAAABd0/gZhI-Aegh1k/s72-c/share-to-google-plus.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://lightoflamp.blogspot.com/2011/07/how-to-share-article-from-google-reader.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DE8HQ3g9eyp7ImA9WhRXGE4.&quot;"><id>tag:blogger.com,1999:blog-7664472768379327993.post-6818417777546550178</id><published>2011-07-05T15:49:00.001+03:00</published><updated>2011-12-25T20:13:52.663+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-25T20:13:52.663+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Linux" /><title>CRON error: grandchild failed with exit status 1 [Solution]</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
Just after I upgraded my Ubuntu to 10.10 version, I noticed some cron-related error messages in my /var/log/syslog file, like these:&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;Jul&amp;nbsp; 5 13:40:01 agriope2 CRON[971]: (CRON) error (grandchild #974 failed with exit status 1)&lt;br /&gt;
Jul&amp;nbsp; 5 13:50:01 agriope2 CRON[7775]: (CRON) error (grandchild #7778 failed with exit status 1)&lt;br /&gt;
Jul&amp;nbsp; 5 14:00:01 agriope2 CRON[14520]: (CRON) error (grandchild #14526 failed with exit status 1)&lt;br /&gt;
Jul&amp;nbsp; 5 14:00:01 agriope2 CRON[14521]: (CRON) error (grandchild #14531 failed with exit status 1)&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;/div&gt;
At first, I thought they were generated by one of my scripts, which runs via cron every 10 minutes and I wondered what happened during upgrade that caused its exit status to turn to 1 instead of 0. Unfortunately, I didn't had the time to delve deeper back then and I ignored it, since everything seemed to work as expected.&lt;br /&gt;
&lt;br /&gt;
Until today, when (after one more successful system upgrade in the meantime) I decided to examine it further.&lt;br /&gt;
Given that nothing has changed into my script, I thought that it would be a good idea to search into /etc/cron* directories and there I found that there was the script &lt;code&gt;/etc/cron.d/update-motd&lt;/code&gt;, which was scheduled to run every 10 minutes and tried to run &lt;code&gt;/usr/sbin/update-motd&lt;/code&gt;. The problem is that &lt;code&gt;/usr/sbin/update-motd&lt;/code&gt; was not present any more at its whereabouts, probably because "&lt;i&gt;the functionality formerly provided by update-motd package is now integrated into pam_motd, in libpam-modules&lt;/i&gt;" (as the description of &lt;code&gt;update-motd&lt;/code&gt; package says).&lt;br /&gt;
&lt;br /&gt;
So, I moved &lt;code&gt;/etc/cron.d/update-motd&lt;/code&gt; to another location, just in case I will need it again some time in the future.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Update&lt;/b&gt; [2011/12/25]:&lt;br /&gt;
In case you are running fetchmail from cron, you 'll have messages like the above whenever you have no new mail. For this situation, the solution is already in the man page of fetchmail:&lt;br /&gt;
&lt;blockquote class="tr_bq"&gt;
&lt;i&gt;If you do not want "no mail" to be an error condition (for instance, for cron jobs), use a POSIX-compliant shell and add&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; || [ $? -eq 1 ]&lt;br /&gt;to&amp;nbsp; the&amp;nbsp; end&amp;nbsp; of&amp;nbsp; the&amp;nbsp; fetchmail command line, note that this leaves 0 untouched, maps 1 to 0, and maps all other codes to 1. See also item #C8 in the FAQ.&lt;/i&gt;&lt;/blockquote&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;hr /&gt; Visit &lt;a href="http://lightoflamp.blogspot.com"&gt;The Light of the LAMP&lt;/a&gt; blog for more...&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7664472768379327993-6818417777546550178?l=lightoflamp.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/1Pq52xlo9I-I34wLCRr_gOETKHY/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/1Pq52xlo9I-I34wLCRr_gOETKHY/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/1Pq52xlo9I-I34wLCRr_gOETKHY/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/1Pq52xlo9I-I34wLCRr_gOETKHY/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=_F5gvzgJcqA:wNIXTLygwvg:VYtfdMxc7SE"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?i=_F5gvzgJcqA:wNIXTLygwvg:VYtfdMxc7SE" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=_F5gvzgJcqA:wNIXTLygwvg:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=_F5gvzgJcqA:wNIXTLygwvg:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=_F5gvzgJcqA:wNIXTLygwvg:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?i=_F5gvzgJcqA:wNIXTLygwvg:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=_F5gvzgJcqA:wNIXTLygwvg:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?i=_F5gvzgJcqA:wNIXTLygwvg:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=_F5gvzgJcqA:wNIXTLygwvg:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=_F5gvzgJcqA:wNIXTLygwvg:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?i=_F5gvzgJcqA:wNIXTLygwvg:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=_F5gvzgJcqA:wNIXTLygwvg:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/LightOfLamp/~4/_F5gvzgJcqA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://lightoflamp.blogspot.com/feeds/6818417777546550178/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7664472768379327993&amp;postID=6818417777546550178&amp;isPopup=true" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7664472768379327993/posts/default/6818417777546550178?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7664472768379327993/posts/default/6818417777546550178?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/LightOfLamp/~3/_F5gvzgJcqA/cron-error-grandchild-failed-with-exit.html" title="CRON error: grandchild failed with exit status 1 [Solution]" /><author><name>Apostolos P. Tsompanopoulos</name><uri>http://www.blogger.com/profile/10128218517633851014</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://1.bp.blogspot.com/_R14v4a5RaAw/Sc6je9IFwmI/AAAAAAAAABU/gvSkLwfw6TA/S220/apt4.jpg" /></author><thr:total>2</thr:total><feedburner:origLink>http://lightoflamp.blogspot.com/2011/07/cron-error-grandchild-failed-with-exit.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEAHQX4zcSp7ImA9Wx5XEkU.&quot;"><id>tag:blogger.com,1999:blog-7664472768379327993.post-3096810690299234837</id><published>2010-09-12T12:12:00.000+03:00</published><updated>2010-09-12T12:12:10.089+03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-09-12T12:12:10.089+03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="general" /><title>Look is like a restricted grep</title><content type="html">The &lt;i style="color: #cc0000;"&gt;look&lt;/i&gt; command is for looking up if a word exists in &lt;i&gt;/usr/share/dict/words file&lt;/i&gt;, at least for most users. But, as the man page defines:&lt;br /&gt;
&lt;blockquote&gt;look — display lines beginning with a given string&lt;/blockquote&gt;which means that, for example, this command:&lt;br /&gt;
&lt;blockquote&gt;look what file&lt;/blockquote&gt;is equivalent to this command (with the exception that &lt;i&gt;look&lt;/i&gt; ignores all whitespace characters at start):&lt;br /&gt;
&lt;blockquote&gt;grep '^what' file&lt;/blockquote&gt;With this in mind, we can search easily for comment lines in all javascript files:&lt;br /&gt;
&lt;blockquote&gt;look '//' *.js&lt;/blockquote&gt;or in .bashrc&lt;br /&gt;
&lt;blockquote&gt;look '#' ~/.bashrc&lt;/blockquote&gt;For more, there is always &lt;i&gt;&lt;span style="color: #cc0000;"&gt;grep&lt;/span&gt;&lt;/i&gt;, of course.&lt;div class="blogger-post-footer"&gt;&lt;hr /&gt; Visit &lt;a href="http://lightoflamp.blogspot.com"&gt;The Light of the LAMP&lt;/a&gt; blog for more...&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7664472768379327993-3096810690299234837?l=lightoflamp.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/hTmiayDITcg_uirc2Q-ARjO7azI/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/hTmiayDITcg_uirc2Q-ARjO7azI/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/hTmiayDITcg_uirc2Q-ARjO7azI/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/hTmiayDITcg_uirc2Q-ARjO7azI/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=K8KmBgGeel8:czCedwiEpyY:VYtfdMxc7SE"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?i=K8KmBgGeel8:czCedwiEpyY:VYtfdMxc7SE" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=K8KmBgGeel8:czCedwiEpyY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=K8KmBgGeel8:czCedwiEpyY:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=K8KmBgGeel8:czCedwiEpyY:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?i=K8KmBgGeel8:czCedwiEpyY:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=K8KmBgGeel8:czCedwiEpyY:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?i=K8KmBgGeel8:czCedwiEpyY:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=K8KmBgGeel8:czCedwiEpyY:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=K8KmBgGeel8:czCedwiEpyY:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?i=K8KmBgGeel8:czCedwiEpyY:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=K8KmBgGeel8:czCedwiEpyY:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/LightOfLamp/~4/K8KmBgGeel8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://lightoflamp.blogspot.com/feeds/3096810690299234837/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7664472768379327993&amp;postID=3096810690299234837&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7664472768379327993/posts/default/3096810690299234837?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7664472768379327993/posts/default/3096810690299234837?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/LightOfLamp/~3/K8KmBgGeel8/look-is-like-restricted-grep.html" title="Look is like a restricted grep" /><author><name>Apostolos Tsompanopoulos</name><uri>https://profiles.google.com/116830033229579059545</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh6.googleusercontent.com/-uPD85_TaBPk/AAAAAAAAAAI/AAAAAAAABkQ/-CPE5ulnaos/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://lightoflamp.blogspot.com/2010/09/look-is-like-restricted-grep.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUQNR3w4cCp7ImA9WxFUFko.&quot;"><id>tag:blogger.com,1999:blog-7664472768379327993.post-2622977048329085256</id><published>2010-06-28T01:23:00.000+03:00</published><updated>2010-06-28T01:23:16.238+03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-06-28T01:23:16.238+03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="PHP" /><title>PHP: print a calendar fast</title><content type="html">&lt;a href="http://www.amazon.com/PHP-Cookbook-Solutions-Examples-Programmers/dp/0596101015?ie=UTF8&amp;amp;tag=a0fba-21&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;" target="_blank"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;img alt="PHP Cookbook: Solutions and Examples for PHP Programmers" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=0596101015&amp;amp;tag=a0fba-21" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;Say you need to fill a file or a sheet of paper (if you print the output) with a range of consecutive dates (or dates with equal space between them). Then, the following PHP one-liner might be handy some day:&lt;/span&gt;&lt;br /&gt;
&lt;blockquote&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="background-color: #fff2cc;"&gt;for ($i=1; $i&amp;lt;=365; $i++) echo date( "Y-m-d", mktime( 0, 0, 0, 1, $i)). "\n";&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=a0fba-21&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=0596101015" style="border: none !important; margin: 0px !important; padding: 0px !important;" width="1" /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;The above snippet prints each day of current year on its own line. If you want one day per week, then you can change accordingly the values of for-loop variable, for example:&lt;/span&gt;&lt;br /&gt;
&lt;blockquote&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="background-color: #fff2cc;"&gt;for ($i=4; $i&amp;lt;=365; $i+=7) [...]&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&amp;nbsp;Or, for next year's calendar:&lt;/span&gt;&lt;br /&gt;
&lt;blockquote&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="background-color: #fff2cc;"&gt;for ($i=1; $i&amp;lt;=365; $i++) echo date( "Y-m-d", mktime( 0, 0, 0, 1, $i, 1+&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="background-color: #fff2cc;"&gt;date("Y")&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="background-color: #fff2cc;"&gt;)). "\n";&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;Don't forget to change 365 with 366 for a leap year.&lt;div class="blogger-post-footer"&gt;&lt;hr /&gt; Visit &lt;a href="http://lightoflamp.blogspot.com"&gt;The Light of the LAMP&lt;/a&gt; blog for more...&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7664472768379327993-2622977048329085256?l=lightoflamp.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/Ij-9HJvlp3bxMqmCr3Mrx50Z2Ro/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Ij-9HJvlp3bxMqmCr3Mrx50Z2Ro/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/Ij-9HJvlp3bxMqmCr3Mrx50Z2Ro/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Ij-9HJvlp3bxMqmCr3Mrx50Z2Ro/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=RZ1W-UMMY0s:7ti-tuGmf4Q:VYtfdMxc7SE"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?i=RZ1W-UMMY0s:7ti-tuGmf4Q:VYtfdMxc7SE" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=RZ1W-UMMY0s:7ti-tuGmf4Q:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=RZ1W-UMMY0s:7ti-tuGmf4Q:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=RZ1W-UMMY0s:7ti-tuGmf4Q:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?i=RZ1W-UMMY0s:7ti-tuGmf4Q:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=RZ1W-UMMY0s:7ti-tuGmf4Q:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?i=RZ1W-UMMY0s:7ti-tuGmf4Q:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=RZ1W-UMMY0s:7ti-tuGmf4Q:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=RZ1W-UMMY0s:7ti-tuGmf4Q:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?i=RZ1W-UMMY0s:7ti-tuGmf4Q:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=RZ1W-UMMY0s:7ti-tuGmf4Q:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/LightOfLamp/~4/RZ1W-UMMY0s" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://lightoflamp.blogspot.com/feeds/2622977048329085256/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7664472768379327993&amp;postID=2622977048329085256&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7664472768379327993/posts/default/2622977048329085256?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7664472768379327993/posts/default/2622977048329085256?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/LightOfLamp/~3/RZ1W-UMMY0s/php-print-calendar-fast.html" title="PHP: print a calendar fast" /><author><name>Apostolos Tsompanopoulos</name><uri>https://profiles.google.com/116830033229579059545</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh6.googleusercontent.com/-uPD85_TaBPk/AAAAAAAAAAI/AAAAAAAABkQ/-CPE5ulnaos/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://lightoflamp.blogspot.com/2010/06/php-print-calendar-fast.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkUDRnszeCp7ImA9WxFXFUk.&quot;"><id>tag:blogger.com,1999:blog-7664472768379327993.post-2954277355876482830</id><published>2010-05-22T15:19:00.001+03:00</published><updated>2010-05-22T19:04:37.580+03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-05-22T19:04:37.580+03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Google" /><category scheme="http://www.blogger.com/atom/ns#" term="Firefox" /><title>Google secure search with Firefox</title><content type="html">Google has announced recently the option to &lt;a href="http://googleblog.blogspot.com/2010/05/search-more-securely-with-encrypted.html"&gt;search the web via an encrypted, secure channel&lt;/a&gt;. For Firefox, this can be accomplished by making some changes, like the following:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;in a new tab, open "&lt;a class="linkification-ext" href="about:config" title="Linkification: about:config"&gt;about:config&lt;/a&gt;" and search for "&lt;a class="linkification-ext" href="http://www.google/" title="Linkification: http://www.google"&gt;http://www.google&lt;/a&gt;" (search box is located at the top of the tab area). You 'll find "keyword.URL" setting and you can change its value by double-clicking on it. Just add "s" after "http".&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_K5QpSGJ6e4c/S_eaQIofkDI/AAAAAAAABF8/l4tkeuXpaYg/s1600/google-ssl-firefox-1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="36" src="http://1.bp.blogspot.com/_K5QpSGJ6e4c/S_eaQIofkDI/AAAAAAAABF8/l4tkeuXpaYg/s400/google-ssl-firefox-1.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;open bookmarks by pressing Ctrl+Shift+B and search for "&lt;a class="linkification-ext" href="http://google.com/search?" title="Linkification: http://google.com/search?"&gt;google.com/search?&lt;/a&gt; q=" (search box is located at the upper right corner of the window). At first, you can eliminate all duplicates (as I did), then change all "http" occurrences to "https"&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_K5QpSGJ6e4c/S_eauEHuilI/AAAAAAAABGA/xtwMvGCpC8Q/s1600/google-ssl-firefox-2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="75" src="http://1.bp.blogspot.com/_K5QpSGJ6e4c/S_eauEHuilI/AAAAAAAABGA/xtwMvGCpC8Q/s400/google-ssl-firefox-2.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
For Google Toolbar users, I believe there will be an update very soon.&lt;div class="blogger-post-footer"&gt;&lt;hr /&gt; Visit &lt;a href="http://lightoflamp.blogspot.com"&gt;The Light of the LAMP&lt;/a&gt; blog for more...&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7664472768379327993-2954277355876482830?l=lightoflamp.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/i7dOSCFPj0EaYm5SwX5WypcpGKQ/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/i7dOSCFPj0EaYm5SwX5WypcpGKQ/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/i7dOSCFPj0EaYm5SwX5WypcpGKQ/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/i7dOSCFPj0EaYm5SwX5WypcpGKQ/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=0W96ktOFMtE:GSlK7KCSndw:VYtfdMxc7SE"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?i=0W96ktOFMtE:GSlK7KCSndw:VYtfdMxc7SE" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=0W96ktOFMtE:GSlK7KCSndw:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=0W96ktOFMtE:GSlK7KCSndw:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=0W96ktOFMtE:GSlK7KCSndw:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?i=0W96ktOFMtE:GSlK7KCSndw:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=0W96ktOFMtE:GSlK7KCSndw:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?i=0W96ktOFMtE:GSlK7KCSndw:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=0W96ktOFMtE:GSlK7KCSndw:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=0W96ktOFMtE:GSlK7KCSndw:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?i=0W96ktOFMtE:GSlK7KCSndw:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=0W96ktOFMtE:GSlK7KCSndw:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/LightOfLamp/~4/0W96ktOFMtE" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://lightoflamp.blogspot.com/feeds/2954277355876482830/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7664472768379327993&amp;postID=2954277355876482830&amp;isPopup=true" title="3 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7664472768379327993/posts/default/2954277355876482830?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7664472768379327993/posts/default/2954277355876482830?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/LightOfLamp/~3/0W96ktOFMtE/google-secure-search-with-firefox.html" title="Google secure search with Firefox" /><author><name>Apostolos Tsompanopoulos</name><uri>https://profiles.google.com/116830033229579059545</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh6.googleusercontent.com/-uPD85_TaBPk/AAAAAAAAAAI/AAAAAAAABkQ/-CPE5ulnaos/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/_K5QpSGJ6e4c/S_eaQIofkDI/AAAAAAAABF8/l4tkeuXpaYg/s72-c/google-ssl-firefox-1.png" height="72" width="72" /><thr:total>3</thr:total><feedburner:origLink>http://lightoflamp.blogspot.com/2010/05/google-secure-search-with-firefox.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEcBQH86fyp7ImA9WxFXFE8.&quot;"><id>tag:blogger.com,1999:blog-7664472768379327993.post-7211322184239970713</id><published>2010-05-21T09:07:00.000+03:00</published><updated>2010-05-21T09:07:31.117+03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-05-21T09:07:31.117+03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Javascript" /><category scheme="http://www.blogger.com/atom/ns#" term="jquery" /><category scheme="http://www.blogger.com/atom/ns#" term="optimization" /><category scheme="http://www.blogger.com/atom/ns#" term="Google" /><title>How many jquery.js files do YOU have in your disk?</title><content type="html">&lt;iframe align="right" frameborder="0" marginheight="0" marginwidth="0" scrolling="no" src="http://rcm.amazon.com/e/cm?t=a0fba-21&amp;amp;o=1&amp;amp;p=8&amp;amp;l=bpl&amp;amp;asins=0980576857&amp;amp;fc1=000000&amp;amp;IS2=1&amp;amp;lt1=_blank&amp;amp;m=amazon&amp;amp;lc1=0000FF&amp;amp;bc1=000000&amp;amp;bg1=FFFFFF&amp;amp;f=ifr" style="height: 245px; padding-right: 10px; padding-top: 5px; width: 131px;"&gt;&lt;/iframe&gt;It seems that &lt;a href="http://jquery.com/"&gt;jquery&lt;/a&gt; is the most popular javascript framework among web developers out there. This is not a bad thing, of course. The bad thing, or should I've said "practice", is that almost all developers [need to] use their 'own' version of the library and they include it into their plugin/theme/application directories!&lt;br /&gt;
&lt;br /&gt;
Don't get me wrong; I'm not (currently) using it to code anything, but yesterday I thought it could be a good start to find the library and check its contents in order to start learning &amp;amp; using it. To my surprise, when I checked into my hard disk, I found &lt;b&gt;50 jquery.js&lt;/b&gt; files (not to mention the &lt;b&gt;364 jquery.*\.js&lt;/b&gt; ones)! It looks like a waste of space and a source of possible incompatibilities to me, don't you think so?&lt;br /&gt;
&lt;br /&gt;
Just try this command in a terminal:&lt;br /&gt;
&lt;blockquote&gt;locate -i jquery | grep "jquery.js"&amp;nbsp; | wc -l &lt;/blockquote&gt;or the 'full' version: &lt;br /&gt;
&lt;blockquote&gt;locate -i jquery | egrep "jquery.*\.js"&amp;nbsp; | wc -l &lt;/blockquote&gt;and see how many files it 'll report for your hard disk. If there are more than 10 (as in my case), I'd be worried.&lt;br /&gt;
&lt;br /&gt;
I believe that all of that mess could be avoided if the developers used the &lt;a href="http://code.google.com/apis/ajaxlibs/"&gt;Google-hosted versions of the library&lt;/a&gt; and avoided its inclusion into their directories.&lt;br /&gt;
&lt;br /&gt;
On the other hand, if you are a developer and want to test your source files with a local version of the library, while providing the Google-API one to your visitors, you can use the &lt;a href="http://lightoflamp.blogspot.com/2007/03/php-function-isme.html"&gt;is_me()&lt;/a&gt; [PHP function] to incorporate the appropriate jquery files.&lt;div class="blogger-post-footer"&gt;&lt;hr /&gt; Visit &lt;a href="http://lightoflamp.blogspot.com"&gt;The Light of the LAMP&lt;/a&gt; blog for more...&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7664472768379327993-7211322184239970713?l=lightoflamp.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/qbqo4gRa8LInXLwH7e2R0aJRzd4/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/qbqo4gRa8LInXLwH7e2R0aJRzd4/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/qbqo4gRa8LInXLwH7e2R0aJRzd4/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/qbqo4gRa8LInXLwH7e2R0aJRzd4/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=0fo48fAzHDg:iQSinGzX83Q:VYtfdMxc7SE"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?i=0fo48fAzHDg:iQSinGzX83Q:VYtfdMxc7SE" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=0fo48fAzHDg:iQSinGzX83Q:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=0fo48fAzHDg:iQSinGzX83Q:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=0fo48fAzHDg:iQSinGzX83Q:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?i=0fo48fAzHDg:iQSinGzX83Q:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=0fo48fAzHDg:iQSinGzX83Q:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?i=0fo48fAzHDg:iQSinGzX83Q:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=0fo48fAzHDg:iQSinGzX83Q:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=0fo48fAzHDg:iQSinGzX83Q:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?i=0fo48fAzHDg:iQSinGzX83Q:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=0fo48fAzHDg:iQSinGzX83Q:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/LightOfLamp/~4/0fo48fAzHDg" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://lightoflamp.blogspot.com/feeds/7211322184239970713/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7664472768379327993&amp;postID=7211322184239970713&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7664472768379327993/posts/default/7211322184239970713?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7664472768379327993/posts/default/7211322184239970713?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/LightOfLamp/~3/0fo48fAzHDg/how-many-jqueryjs-files-do-you-have-in.html" title="How many jquery.js files do YOU have in your disk?" /><author><name>Apostolos Tsompanopoulos</name><uri>https://profiles.google.com/116830033229579059545</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh6.googleusercontent.com/-uPD85_TaBPk/AAAAAAAAAAI/AAAAAAAABkQ/-CPE5ulnaos/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://lightoflamp.blogspot.com/2010/05/how-many-jqueryjs-files-do-you-have-in.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0EGRH45eip7ImA9WxFXEkQ.&quot;"><id>tag:blogger.com,1999:blog-7664472768379327993.post-661829688309986487</id><published>2010-05-17T22:22:00.001+03:00</published><updated>2010-05-19T22:00:25.022+03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-05-19T22:00:25.022+03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Google" /><title>Google Wave as a chat web application</title><content type="html">&lt;a href="http://www.amazon.com/Complete-Guide-Google-Wave/dp/0982592604?ie=UTF8&amp;amp;tag=a0fba-21&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;" target="_blank"&gt;&lt;img alt="The Complete Guide to Google Wave" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=0982592604&amp;amp;tag=a0fba-21" /&gt;&lt;/a&gt;I admit that I'm not using &lt;a href="http://wave.google.com/"&gt;Google Wave&lt;/a&gt; as much as I can and the main reason for this is the lack of coworkers/colleagues/friends who are actively using it. &lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=a0fba-21&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=0982592604" style="border: medium none ! important; margin: 0px ! important; padding: 0px ! important;" width="1" /&gt;The tool must have a purpose, right?&lt;br /&gt;
&lt;br /&gt;
So, yesterday, I've come with an idea to create a purpose for me and the members of one of my sites. Since Google allows me to &lt;a href="http://www.google.com/webelements/wave/"&gt;make a wave public and embed it in a web page&lt;/a&gt;, I can't see no reason not to create a public wave and use it as a &lt;b&gt;web application for chat&lt;/b&gt;!&lt;br /&gt;
&lt;br /&gt;
The benefits for this decision are more than the disadvantages. Actually, I can see only two of the latter: the small number of people who are using it &lt;strike&gt;and the fact that it is still in beta version and one can become a member only by invitation by another member&lt;/strike&gt; [&lt;span style="color: red;"&gt;19 May 2010 update&lt;/span&gt;: Google announced today that &lt;a href="http://googlewavedev.blogspot.com/2010/05/google-wave-platform-updates-at-io-see.html"&gt;access to Google Wave is free&lt;/a&gt; to everyone, given that she has a Google account]. On the other hand, the usage of a public wave as a chat application has the following advantages (at least, for me):&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;Easy setup&lt;/b&gt;: Just copy-paste the code from the &lt;a href="http://www.google.com/webelements/wave/"&gt;Google Web Elements&lt;/a&gt; page and start using it. Also, there is no need for local storage or a dedicated database.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Instant notifications&lt;/b&gt;: The members can see the replies of the other members, as they are writing them or even replay the discussion step by step. There are also email notifications for new replies, so (a) there is no need to continuously check the web page and (b) you can react immediately if you detect any abuse.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Indented replies&lt;/b&gt;: The members can choose to reply to a discussion or start their own.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Identified members&lt;/b&gt;: There are no anonymous replies (possible spam), albeit the public nature of the wave.&lt;/li&gt;
&lt;/ul&gt;There may be more, we 're still evaluating this solution and maybe there is something I didn't reckon when I decided to follow this route. I know that there are other alternatives, but you can't beat the simpleness of this one.&lt;div class="blogger-post-footer"&gt;&lt;hr /&gt; Visit &lt;a href="http://lightoflamp.blogspot.com"&gt;The Light of the LAMP&lt;/a&gt; blog for more...&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7664472768379327993-661829688309986487?l=lightoflamp.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/DSnmc1xmH_4CeiLCJa7Z0Z8__3c/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/DSnmc1xmH_4CeiLCJa7Z0Z8__3c/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/DSnmc1xmH_4CeiLCJa7Z0Z8__3c/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/DSnmc1xmH_4CeiLCJa7Z0Z8__3c/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=lj7LtHOOcZI:o7J0NoTkByE:VYtfdMxc7SE"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?i=lj7LtHOOcZI:o7J0NoTkByE:VYtfdMxc7SE" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=lj7LtHOOcZI:o7J0NoTkByE:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=lj7LtHOOcZI:o7J0NoTkByE:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=lj7LtHOOcZI:o7J0NoTkByE:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?i=lj7LtHOOcZI:o7J0NoTkByE:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=lj7LtHOOcZI:o7J0NoTkByE:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?i=lj7LtHOOcZI:o7J0NoTkByE:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=lj7LtHOOcZI:o7J0NoTkByE:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=lj7LtHOOcZI:o7J0NoTkByE:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?i=lj7LtHOOcZI:o7J0NoTkByE:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=lj7LtHOOcZI:o7J0NoTkByE:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/LightOfLamp/~4/lj7LtHOOcZI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://lightoflamp.blogspot.com/feeds/661829688309986487/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7664472768379327993&amp;postID=661829688309986487&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7664472768379327993/posts/default/661829688309986487?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7664472768379327993/posts/default/661829688309986487?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/LightOfLamp/~3/lj7LtHOOcZI/google-wave-as-chat-web-application.html" title="Google Wave as a chat web application" /><author><name>Apostolos Tsompanopoulos</name><uri>https://profiles.google.com/116830033229579059545</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh6.googleusercontent.com/-uPD85_TaBPk/AAAAAAAAAAI/AAAAAAAABkQ/-CPE5ulnaos/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://lightoflamp.blogspot.com/2010/05/google-wave-as-chat-web-application.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUMASXc6eSp7ImA9WxBXGUk.&quot;"><id>tag:blogger.com,1999:blog-7664472768379327993.post-1008696999845416007</id><published>2010-01-31T15:10:00.000+02:00</published><updated>2010-01-31T15:10:48.911+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-01-31T15:10:48.911+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Linux" /><title>System upgrade to Ubuntu 9.10</title><content type="html">&lt;iframe align="right" frameborder="0" marginheight="0" marginwidth="0" scrolling="no" src="http://rcm.amazon.com/e/cm?t=a0fba-21&amp;amp;o=1&amp;amp;p=8&amp;amp;l=bpl&amp;amp;asins=1583482717&amp;amp;fc1=000000&amp;amp;IS2=1&amp;amp;lt1=_blank&amp;amp;m=amazon&amp;amp;lc1=0000FF&amp;amp;bc1=000000&amp;amp;bg1=FFFFFF&amp;amp;f=ifr" style="height: 245px; padding-left: 10px; padding-top: 5px; width: 131px;"&gt;&lt;/iframe&gt;&lt;br /&gt;
I know that I'm some months late on upgrading, but for a production system I prefer to let things cool down a little before attempting the system upgrade. However, even with this methodology, there may be still some problems after finishing, and I have found two of them today, after upgrading to &lt;i&gt;karmic koala&lt;/i&gt; version of &lt;i&gt;Ubuntu&lt;/i&gt; (9.10 for number-centric fans).&lt;br /&gt;
&lt;br /&gt;
The first one was a problem with &lt;i&gt;mysql-client&lt;/i&gt;, which remained in 5.0 version for some reason. I was able to resolve this issue by manually installing version 5.1:&lt;br /&gt;
&lt;blockquote&gt;aptitude install mysql-client-5.1&lt;/blockquote&gt;&lt;br /&gt;
The second problem had to do with updating &lt;i&gt;vnstat&lt;/i&gt;'s database ('vnstat -u'). After testing various ideas, I came up with no other solution than deleting the previous databases and recreating new ones with the following commands:&lt;br /&gt;
&lt;blockquote&gt;rm /var/lib/vnstat/eth* /var/lib/vnstat/.eth*&lt;br /&gt;
vnstat -u -i eth0&lt;br /&gt;
vnstat -u -i eth1&lt;/blockquote&gt;&lt;br /&gt;
I hope that there will be no other surprises (until the next upgrade of course)&lt;div class="blogger-post-footer"&gt;&lt;hr /&gt; Visit &lt;a href="http://lightoflamp.blogspot.com"&gt;The Light of the LAMP&lt;/a&gt; blog for more...&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7664472768379327993-1008696999845416007?l=lightoflamp.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/VeP3-n4KdEyF7BgocHJGLgIqvKw/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/VeP3-n4KdEyF7BgocHJGLgIqvKw/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/VeP3-n4KdEyF7BgocHJGLgIqvKw/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/VeP3-n4KdEyF7BgocHJGLgIqvKw/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=X1UTa7yX7uE:OJqRHRgZtqg:VYtfdMxc7SE"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?i=X1UTa7yX7uE:OJqRHRgZtqg:VYtfdMxc7SE" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=X1UTa7yX7uE:OJqRHRgZtqg:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=X1UTa7yX7uE:OJqRHRgZtqg:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=X1UTa7yX7uE:OJqRHRgZtqg:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?i=X1UTa7yX7uE:OJqRHRgZtqg:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=X1UTa7yX7uE:OJqRHRgZtqg:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?i=X1UTa7yX7uE:OJqRHRgZtqg:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=X1UTa7yX7uE:OJqRHRgZtqg:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=X1UTa7yX7uE:OJqRHRgZtqg:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?i=X1UTa7yX7uE:OJqRHRgZtqg:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=X1UTa7yX7uE:OJqRHRgZtqg:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/LightOfLamp/~4/X1UTa7yX7uE" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://lightoflamp.blogspot.com/feeds/1008696999845416007/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7664472768379327993&amp;postID=1008696999845416007&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7664472768379327993/posts/default/1008696999845416007?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7664472768379327993/posts/default/1008696999845416007?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/LightOfLamp/~3/X1UTa7yX7uE/system-upgrade-to-ubuntu-910.html" title="System upgrade to Ubuntu 9.10" /><author><name>Apostolos P. Tsompanopoulos</name><uri>http://www.blogger.com/profile/10128218517633851014</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://1.bp.blogspot.com/_R14v4a5RaAw/Sc6je9IFwmI/AAAAAAAAABU/gvSkLwfw6TA/S220/apt4.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://lightoflamp.blogspot.com/2010/01/system-upgrade-to-ubuntu-910.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0cDQHc7eyp7ImA9WxNSGEg.&quot;"><id>tag:blogger.com,1999:blog-7664472768379327993.post-1990675286009979254</id><published>2009-09-02T03:24:00.000+03:00</published><updated>2009-09-02T03:24:31.903+03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-09-02T03:24:31.903+03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Linux" /><category scheme="http://www.blogger.com/atom/ns#" term="sysadmin" /><title>send mail to correct local host</title><content type="html">After upgrading my previous server with a new one, I run a lot of migration scripts and update procedures to make sure that everything transferred OK and worked as expected. However, a little thing kept bugging me until today.&lt;br /&gt;
&lt;br /&gt;
Usually, when you want to send an email message to a local user, you either send it to &lt;i&gt;user@localhost&lt;/i&gt; or just to &lt;i&gt;user&lt;/i&gt; and the mail service makes sure that the local hostname is added after the '@' (if there is nothing there of course).  But the problem for me was that messages to local users relayed through my external mailgate after the upgrade.&lt;br /&gt;
&lt;br /&gt;
The &lt;i&gt;/etc/hosts&lt;/i&gt; and the configuration files of &lt;i&gt;postfix&lt;/i&gt; were already filled with the correct hostnames and I could not find anything until I tried to search all the files in /etc hierarchy for the old hostname.&lt;br /&gt;
&lt;br /&gt;
To my surprise, I found that the old hostname was still in &lt;b&gt;&lt;i&gt;/etc/mailname&lt;/i&gt;&lt;/b&gt; which, according to its man page, is a plain ASCII configuration file, which on a Debian system contains the visible mail name of the system.&lt;br /&gt;
&lt;br /&gt;
I don't know if the upgrade kept it intact or it was the restoration of /etc data files that caused this discrepancy. The good thing is that I found it easily by searching with grep.&lt;div class="blogger-post-footer"&gt;&lt;hr /&gt; Visit &lt;a href="http://lightoflamp.blogspot.com"&gt;The Light of the LAMP&lt;/a&gt; blog for more...&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7664472768379327993-1990675286009979254?l=lightoflamp.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/pDugJlJXp547u2WKEaeqUgBTWeQ/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/pDugJlJXp547u2WKEaeqUgBTWeQ/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/pDugJlJXp547u2WKEaeqUgBTWeQ/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/pDugJlJXp547u2WKEaeqUgBTWeQ/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=F7EyVNsgzak:wlkOfyvuUPI:VYtfdMxc7SE"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?i=F7EyVNsgzak:wlkOfyvuUPI:VYtfdMxc7SE" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=F7EyVNsgzak:wlkOfyvuUPI:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=F7EyVNsgzak:wlkOfyvuUPI:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=F7EyVNsgzak:wlkOfyvuUPI:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?i=F7EyVNsgzak:wlkOfyvuUPI:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=F7EyVNsgzak:wlkOfyvuUPI:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?i=F7EyVNsgzak:wlkOfyvuUPI:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=F7EyVNsgzak:wlkOfyvuUPI:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=F7EyVNsgzak:wlkOfyvuUPI:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?i=F7EyVNsgzak:wlkOfyvuUPI:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=F7EyVNsgzak:wlkOfyvuUPI:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/LightOfLamp/~4/F7EyVNsgzak" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://lightoflamp.blogspot.com/feeds/1990675286009979254/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7664472768379327993&amp;postID=1990675286009979254&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7664472768379327993/posts/default/1990675286009979254?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7664472768379327993/posts/default/1990675286009979254?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/LightOfLamp/~3/F7EyVNsgzak/send-mail-to-correct-local-host.html" title="send mail to correct local host" /><author><name>Apostolos P. Tsompanopoulos</name><uri>http://www.blogger.com/profile/10128218517633851014</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://1.bp.blogspot.com/_R14v4a5RaAw/Sc6je9IFwmI/AAAAAAAAABU/gvSkLwfw6TA/S220/apt4.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://lightoflamp.blogspot.com/2009/09/send-mail-to-correct-local-host.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DU4MRXk7cSp7ImA9WxNSF0w.&quot;"><id>tag:blogger.com,1999:blog-7664472768379327993.post-5716227148209382532</id><published>2009-08-31T14:26:00.000+03:00</published><updated>2009-08-31T14:26:24.709+03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-08-31T14:26:24.709+03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="PHP" /><title>Change photo extensions by content</title><content type="html">Recently I had an interesting problem.&amp;nbsp; I had a lot of files in a directory, all photos, with their filenames messed up, especially their extensions.&amp;nbsp; So, in order to clear them and keep only the good ones, I had first to rename them in a more consistent manner (the JPEG photos ending with .jpeg, the PNGs with .png and so on).&lt;br /&gt;
&lt;br /&gt;
I guess there is probably a plethora of appropriate tools, but I had no time to search in the chaotic internet, so I wrote a small PHP script (with a little help from the shell: command '&lt;i&gt;file&lt;/i&gt;') and run it from the command line.&lt;br /&gt;
&lt;br /&gt;
The script just parses the output of the &lt;i&gt;file&lt;/i&gt; command and renames each file accordingly.&lt;br /&gt;
&lt;br /&gt;
I'm putting this here, just in case it will be useful to someone else also:&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;&lt;pre&gt;#!/usr/bin/php
&amp;lt;?php

$res = array();
exec( "file *", $res);

foreach( $res as $f) {
 list( $fn, $ft) = split( ':', $f);
 if (strpos( $ft, "JPEG") !== false) {
  rename( $fn, $fn .".jpeg");
 } else if (strpos( $ft, "PNG") !== false) {
  rename( $fn, $fn .".png");
 } else
  echo "cannot rename $fn\n";
}
?&amp;gt;
&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
I'm actually testing only for JPEG &amp;amp; PNG files since I know that I have only these two types.&lt;br /&gt;
Don't forget to make this file executable if you want to run it from the command line.&lt;div class="blogger-post-footer"&gt;&lt;hr /&gt; Visit &lt;a href="http://lightoflamp.blogspot.com"&gt;The Light of the LAMP&lt;/a&gt; blog for more...&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7664472768379327993-5716227148209382532?l=lightoflamp.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/xipT_UtVAUHO2kXwDjhNYoB9EAc/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/xipT_UtVAUHO2kXwDjhNYoB9EAc/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/xipT_UtVAUHO2kXwDjhNYoB9EAc/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/xipT_UtVAUHO2kXwDjhNYoB9EAc/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=lzYHlPlZkco:MOq_E7JRuK4:VYtfdMxc7SE"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?i=lzYHlPlZkco:MOq_E7JRuK4:VYtfdMxc7SE" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=lzYHlPlZkco:MOq_E7JRuK4:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=lzYHlPlZkco:MOq_E7JRuK4:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=lzYHlPlZkco:MOq_E7JRuK4:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?i=lzYHlPlZkco:MOq_E7JRuK4:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=lzYHlPlZkco:MOq_E7JRuK4:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?i=lzYHlPlZkco:MOq_E7JRuK4:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=lzYHlPlZkco:MOq_E7JRuK4:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=lzYHlPlZkco:MOq_E7JRuK4:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?i=lzYHlPlZkco:MOq_E7JRuK4:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=lzYHlPlZkco:MOq_E7JRuK4:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/LightOfLamp/~4/lzYHlPlZkco" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://lightoflamp.blogspot.com/feeds/5716227148209382532/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7664472768379327993&amp;postID=5716227148209382532&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7664472768379327993/posts/default/5716227148209382532?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7664472768379327993/posts/default/5716227148209382532?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/LightOfLamp/~3/lzYHlPlZkco/change-photo-extensions-by-content.html" title="Change photo extensions by content" /><author><name>Apostolos P. Tsompanopoulos</name><uri>http://www.blogger.com/profile/10128218517633851014</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://1.bp.blogspot.com/_R14v4a5RaAw/Sc6je9IFwmI/AAAAAAAAABU/gvSkLwfw6TA/S220/apt4.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://lightoflamp.blogspot.com/2009/08/change-photo-extensions-by-content.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0AMSHgzeCp7ImA9WxJRGEk.&quot;"><id>tag:blogger.com,1999:blog-7664472768379327993.post-7630329641704916093</id><published>2009-05-20T23:03:00.000+03:00</published><updated>2009-05-20T23:03:09.680+03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-05-20T23:03:09.680+03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="rant" /><category scheme="http://www.blogger.com/atom/ns#" term="general" /><title>Focus-stealing applications</title><content type="html">I don't like focus-stealing applications (and I bet that I'm not the only one)! They are like kids who are struggling for your attention while you 're working with something else, constantly interrupting your thoughts and work flow.&lt;br /&gt;
&lt;br /&gt;
Is it so difficult for the developers to take this thing into consideration?&lt;br /&gt;
Come on people, don't you get annoyed when you are developing _and_ testing these applications?&lt;br /&gt;
&lt;br /&gt;
An example:&lt;br /&gt;
I started using FriendFeed's desktop application, which notifies me when something occurs in my friends streams. It's a well designed application, taking very little area in my desktop, except when there are new bubble-notifications. Then, whatever I'm doing I have to stop, because little bubbles start popping up while, at the same time, becoming the top-level window (thus stealing my keystrokes)! Usually, if I'm in the middle of something important I end up unloading this little ghost!&lt;br /&gt;
&lt;br /&gt;
I strongly believe that tray-located applications must be as transparent as they can be. They are there to work silently and (probably) notify the user, but without interrupting the work she's doing, otherwise they are not useful but distracting.&lt;div class="blogger-post-footer"&gt;&lt;hr /&gt; Visit &lt;a href="http://lightoflamp.blogspot.com"&gt;The Light of the LAMP&lt;/a&gt; blog for more...&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7664472768379327993-7630329641704916093?l=lightoflamp.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/mihLhU18flBeAKkfPI_XI4mHXU0/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/mihLhU18flBeAKkfPI_XI4mHXU0/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/mihLhU18flBeAKkfPI_XI4mHXU0/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/mihLhU18flBeAKkfPI_XI4mHXU0/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=PhS3UPGUwyY:gEcnaUz4odw:VYtfdMxc7SE"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?i=PhS3UPGUwyY:gEcnaUz4odw:VYtfdMxc7SE" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=PhS3UPGUwyY:gEcnaUz4odw:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=PhS3UPGUwyY:gEcnaUz4odw:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=PhS3UPGUwyY:gEcnaUz4odw:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?i=PhS3UPGUwyY:gEcnaUz4odw:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=PhS3UPGUwyY:gEcnaUz4odw:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?i=PhS3UPGUwyY:gEcnaUz4odw:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=PhS3UPGUwyY:gEcnaUz4odw:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=PhS3UPGUwyY:gEcnaUz4odw:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?i=PhS3UPGUwyY:gEcnaUz4odw:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=PhS3UPGUwyY:gEcnaUz4odw:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/LightOfLamp/~4/PhS3UPGUwyY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://lightoflamp.blogspot.com/feeds/7630329641704916093/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7664472768379327993&amp;postID=7630329641704916093&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7664472768379327993/posts/default/7630329641704916093?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7664472768379327993/posts/default/7630329641704916093?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/LightOfLamp/~3/PhS3UPGUwyY/focus-stealing-applications.html" title="Focus-stealing applications" /><author><name>Apostolos Tsompanopoulos</name><uri>https://profiles.google.com/116830033229579059545</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh6.googleusercontent.com/-uPD85_TaBPk/AAAAAAAAAAI/AAAAAAAABkQ/-CPE5ulnaos/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://lightoflamp.blogspot.com/2009/05/focus-stealing-applications.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C08CQ3w5fCp7ImA9WxVbEkU.&quot;"><id>tag:blogger.com,1999:blog-7664472768379327993.post-7058804976445294611</id><published>2009-03-29T01:11:00.000+02:00</published><updated>2009-03-29T01:11:02.224+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-03-29T01:11:02.224+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="general" /><title>3D: Desktop Describing Day</title><content type="html">Our desktops are (like) our offices, right?&lt;br /&gt;
Well, not for me friends!&lt;br /&gt;
&lt;br /&gt;
Although my 3D (i.e. real life) office is rather messy (at least for other people, not for me of course), my computer desktop is rather simple.&lt;br /&gt;
&lt;br /&gt;
I work usually with my laptop, as most people do these days, and, since I'm rather a &lt;acronym title="Command Line Interface"&gt;CLI&lt;/acronym&gt; person, I like it 'naked'. I'm using &lt;a href="http://www.xfce.org/"&gt;XFCE&lt;/a&gt; as my window manager with 2 virtual desktops (featuring a dark, mostly black, photo from my favorite tv-show as a background picture and only 4 icons which I rarely open) and its tray sitting on the lower right corner with a bottom-up direction.&lt;br /&gt;
&lt;br /&gt;
This tray contains (bottom -&amp;gt; up): battery readings, time/date, &lt;a href="https://launchpad.net/gwibber"&gt;gwibber&lt;/a&gt;, &lt;a href="http://www.rsibreak.org/" title="RSIBreak"&gt;RSIBreak&lt;/a&gt;, the sound applet and the open applications bar.&lt;br /&gt;
&lt;br /&gt;
I have only two windows open all the time: xfce4-terminal (with at least 3 open tabs) and &lt;a href="http://www.mozilla.com/firefox/" title="Mozilla Firefox"&gt;Firefox&lt;/a&gt; (with 2+ open tabs). Of course, when needed, I may open &lt;a href="http://www.openoffice.org/" title="OpenOffice.org"&gt;OpenOffice.org&lt;/a&gt; or some other windows, but usually I work with just these two.&lt;br /&gt;
&lt;br /&gt;
Don't worry about underusing my laptop; it's actually a full &lt;acronym title="Linux/Apache/MySQL/PHP"&gt;LAMP&lt;/acronym&gt; server, working 24/7 and serving 4 web sites (for now). &lt;br /&gt;
&lt;br /&gt;
You may find this arrangement rather minimalistic, but I find it very work-oriented and I prefer it from a more complicated one.&lt;br /&gt;
&lt;br /&gt;
So, what is your desktop like?&lt;div class="blogger-post-footer"&gt;&lt;hr /&gt; Visit &lt;a href="http://lightoflamp.blogspot.com"&gt;The Light of the LAMP&lt;/a&gt; blog for more...&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7664472768379327993-7058804976445294611?l=lightoflamp.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/IlucEZnu0YIPMVeyzdOSRmcLa_Y/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/IlucEZnu0YIPMVeyzdOSRmcLa_Y/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/IlucEZnu0YIPMVeyzdOSRmcLa_Y/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/IlucEZnu0YIPMVeyzdOSRmcLa_Y/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=3ro_V1WQCzw:G7tmPM3MHcI:VYtfdMxc7SE"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?i=3ro_V1WQCzw:G7tmPM3MHcI:VYtfdMxc7SE" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=3ro_V1WQCzw:G7tmPM3MHcI:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=3ro_V1WQCzw:G7tmPM3MHcI:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=3ro_V1WQCzw:G7tmPM3MHcI:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?i=3ro_V1WQCzw:G7tmPM3MHcI:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=3ro_V1WQCzw:G7tmPM3MHcI:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?i=3ro_V1WQCzw:G7tmPM3MHcI:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=3ro_V1WQCzw:G7tmPM3MHcI:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=3ro_V1WQCzw:G7tmPM3MHcI:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?i=3ro_V1WQCzw:G7tmPM3MHcI:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LightOfLamp?a=3ro_V1WQCzw:G7tmPM3MHcI:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LightOfLamp?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/LightOfLamp/~4/3ro_V1WQCzw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://lightoflamp.blogspot.com/feeds/7058804976445294611/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7664472768379327993&amp;postID=7058804976445294611&amp;isPopup=true" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7664472768379327993/posts/default/7058804976445294611?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7664472768379327993/posts/default/7058804976445294611?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/LightOfLamp/~3/3ro_V1WQCzw/3d-desktop-describing-day.html" title="3D: Desktop Describing Day" /><author><name>Apostolos P. Tsompanopoulos</name><uri>http://www.blogger.com/profile/10128218517633851014</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://1.bp.blogspot.com/_R14v4a5RaAw/Sc6je9IFwmI/AAAAAAAAABU/gvSkLwfw6TA/S220/apt4.jpg" /></author><thr:total>2</thr:total><feedburner:origLink>http://lightoflamp.blogspot.com/2009/03/3d-desktop-describing-day.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0YAR3o7fSp7ImA9WxVTGUo.&quot;"><id>tag:blogger.com,1999:blog-7664472768379327993.post-5165980967701194007</id><published>2009-01-03T11:29:00.000+02:00</published><updated>2009-01-03T12:39:06.405+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-01-03T12:39:06.405+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Firefox" /><title>I don't like you any more, ScribeFire!</title><content type="html">Today I uninstalled the &lt;a href="http://www.scribefire.com/"&gt;ScribeFire&lt;/a&gt; &lt;a href="https://addons.mozilla.org/en-US/firefox/addon/1730"&gt;addon&lt;/a&gt; for Firefox because I was not happy by its performance.&lt;br /&gt;
&lt;br /&gt;
Don't get me wrong... I 've used it as an offline blog post editor for more than a year and, I have to say that, it has some very useful features and I recommend it to anyone, who needs this functionality, to try it since it's in constant development with new versions appearing almost any month.&lt;br /&gt;
&lt;br /&gt;
But, since it was not as &lt;acronym title="What You See Is What You Get"&gt;WYSIWYG&lt;/acronym&gt; as I thought (at least when cooperating with &lt;a class="zem_slink" href="http://blogger.com/" rel="homepage" title="Blogger"&gt;Blogger&lt;/a&gt;), I decided to not use it anymore. Maybe it's Blogger, maybe it's ScribeFire, I can't say for sure... the fact is that my latest post (on another blog) didn't appeared the same way when I published it to Blogger, so I had to open it again with Blogger's editor to correct it.&lt;br /&gt;
&lt;br /&gt;
I 'd like to use such an offline editor, so I can post from the convenience of my browser, keep my notes and references for later use, be able to post to and interact with more than one blogs. In the past, I 've used many alternative solutions and I thought my search was over with ScribeFire. But, if I have to check that everything is OK &lt;b&gt;every&lt;/b&gt; time (and most times to edit again the posts), then I'm not content.&lt;div class="blogger-post-footer"&gt;&lt;hr /&gt; Visit &lt;a href="http://lightoflamp.blogspot.com"&gt;The Light of the LAMP&lt;/a&gt; blog for more...&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7664472768379327993-5165980967701194007?l=lightoflamp.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/-gZqy3pTH53zxIvbNf4fAMziXBs/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/-gZqy3pTH53zxIvbNf4fAMziXBs/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/-gZqy3pTH53zxIvbNf4fAMziXBs/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/-gZqy3pTH53zxIvbNf4fAMziXBs/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/LightOfLamp?a=2uStBhsL"&gt;&lt;img src="http://feeds.feedburner.com/~f/LightOfLamp?i=2uStBhsL" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/LightOfLamp?a=ofzChPwn"&gt;&lt;img src="http://feeds.feedburner.com/~f/LightOfLamp?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/LightOfLamp?a=oON4PhdX"&gt;&lt;img src="http://feeds.feedburner.com/~f/LightOfLamp?d=42" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/LightOfLamp?a=MHLMKlsS"&gt;&lt;img src="http://feeds.feedburner.com/~f/LightOfLamp?i=MHLMKlsS" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/LightOfLamp?a=esXdcFJw"&gt;&lt;img src="http://feeds.feedburner.com/~f/LightOfLamp?i=esXdcFJw" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/LightOfLamp?a=weiN5K1o"&gt;&lt;img src="http://feeds.feedburner.com/~f/LightOfLamp?d=52" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/LightOfLamp?a=6N9O5GaN"&gt;&lt;img src="http://feeds.feedburner.com/~f/LightOfLamp?i=6N9O5GaN" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/LightOfLamp?a=YzsebVAE"&gt;&lt;img src="http://feeds.feedburner.com/~f/LightOfLamp?d=129" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/LightOfLamp/~4/3DzawEh-x9k" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://lightoflamp.blogspot.com/feeds/5165980967701194007/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7664472768379327993&amp;postID=5165980967701194007&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7664472768379327993/posts/default/5165980967701194007?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7664472768379327993/posts/default/5165980967701194007?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/LightOfLamp/~3/3DzawEh-x9k/i-dont-like-you-any-more-scribefire.html" title="I don't like you any more, ScribeFire!" /><author><name>Apostolos Tsompanopoulos</name><uri>https://profiles.google.com/116830033229579059545</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh6.googleusercontent.com/-uPD85_TaBPk/AAAAAAAAAAI/AAAAAAAABkQ/-CPE5ulnaos/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://lightoflamp.blogspot.com/2009/01/i-dont-like-you-any-more-scribefire.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkMFRXo6fSp7ImA9WxRXF0k.&quot;"><id>tag:blogger.com,1999:blog-7664472768379327993.post-8673612451950843967</id><published>2008-10-23T09:43:00.002+03:00</published><updated>2008-10-23T09:46:54.415+03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-10-23T09:46:54.415+03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Linux" /><title>Sample data and how to produce them</title><content type="html">&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;Sometimes a programmer needs to &lt;b&gt;test/debug&lt;/b&gt; one application by feeding it with data, random or not. In a situation like this, there are some utilities one can use to produce as many data as she needs.&lt;br /&gt;
&lt;br /&gt;
Let's start with a simple example of feeding our test application (we will call it "test_data") with zeroes, say 100 bytes with a value of zero.&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;head --bytes=100 /dev/zero | ./test_data&lt;/blockquote&gt;&lt;br /&gt;
The above command has two parts; the first one (before the '|' delimiter), '&lt;i&gt;head&lt;/i&gt;', reads &lt;i&gt;/dev/zero&lt;/i&gt; device, which provides us with zero-valued bytes as a stream, up to a count of 100 bytes and sends them to the second one, '&lt;i&gt;test_data&lt;/i&gt;', as input. If we wanted more, say 100 KBytes, we would replace the parameter of 'bytes' argument with "100k", as follows:&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;head --bytes=100k /dev/zero | ./test_data&lt;/blockquote&gt;&lt;br /&gt;
Now, let's say we want random data. It's as simple as replacing '/dev/zero' device with '&lt;i&gt;/dev/random&lt;/i&gt;':&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;head --bytes=100k /dev/random | ./test_data&lt;/blockquote&gt;&lt;br /&gt;
With the above command combination, we produce 100 KBytes of random data as input to our test_data application.&lt;br /&gt;
&lt;br /&gt;
And what if we wanted some specific data, like "testing with sample data", repeated 40 times?&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;yes "testing with sample data" | head -40 | ./test_data&lt;/blockquote&gt;&lt;br /&gt;
The '&lt;i&gt;yes&lt;/i&gt;' command just outputs its input continuously; 'head' keeps only the first 40 lines; 'test_data' works with these 40 lines of the sample string.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Programming life can be very simple (and entertaining) some times!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;hr /&gt; Visit &lt;a href="http://lightoflamp.blogspot.com"&gt;The Light of the LAMP&lt;/a&gt; blog for more...&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7664472768379327993-8673612451950843967?l=lightoflamp.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/W6defdtuQqNCnhZ8gjoW0It_aFw/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/W6defdtuQqNCnhZ8gjoW0It_aFw/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/W6defdtuQqNCnhZ8gjoW0It_aFw/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/W6defdtuQqNCnhZ8gjoW0It_aFw/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/LightOfLamp?a=0DHwOofI"&gt;&lt;img src="http://feeds.feedburner.com/~f/LightOfLamp?i=0DHwOofI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/LightOfLamp?a=dD77eTys"&gt;&lt;img src="http://feeds.feedburner.com/~f/LightOfLamp?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/LightOfLamp?a=Vsnuc4Y3"&gt;&lt;img src="http://feeds.feedburner.com/~f/LightOfLamp?d=42" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/LightOfLamp?a=gWt1MK19"&gt;&lt;img src="http://feeds.feedburner.com/~f/LightOfLamp?i=gWt1MK19" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/LightOfLamp?a=nG9fQLjH"&gt;&lt;img src="http://feeds.feedburner.com/~f/LightOfLamp?i=nG9fQLjH" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/LightOfLamp?a=wl8i3Z6t"&gt;&lt;img src="http://feeds.feedburner.com/~f/LightOfLamp?d=52" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/LightOfLamp?a=PUWsEQc1"&gt;&lt;img src="http://feeds.feedburner.com/~f/LightOfLamp?i=PUWsEQc1" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/LightOfLamp?a=5gjXh8ep"&gt;&lt;img src="http://feeds.feedburner.com/~f/LightOfLamp?d=129" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/LightOfLamp/~4/8kbyrKI8Qvs" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://lightoflamp.blogspot.com/feeds/8673612451950843967/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7664472768379327993&amp;postID=8673612451950843967&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7664472768379327993/posts/default/8673612451950843967?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7664472768379327993/posts/default/8673612451950843967?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/LightOfLamp/~3/8kbyrKI8Qvs/sample-data-and-how-to-produce-them.html" title="Sample data and how to produce them" /><author><name>Apostolos P. Tsompanopoulos</name><uri>http://www.blogger.com/profile/10128218517633851014</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://1.bp.blogspot.com/_R14v4a5RaAw/Sc6je9IFwmI/AAAAAAAAABU/gvSkLwfw6TA/S220/apt4.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://lightoflamp.blogspot.com/2008/10/sample-data-and-how-to-produce-them.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A08FSXw8eip7ImA9WxRQE08.&quot;"><id>tag:blogger.com,1999:blog-7664472768379327993.post-3216887943183861640</id><published>2008-10-07T00:17:00.000+03:00</published><updated>2008-10-07T00:50:18.272+03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-10-07T00:50:18.272+03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Linux" /><category scheme="http://www.blogger.com/atom/ns#" term="HTML" /><title>Use the source, Luke... even for HTML pages!</title><content type="html">These days I'm experimenting with a few desktop clients to read/update status messages from/to some socail networks I participate and I want to be involved more from now on. But there is a small catch!&lt;br /&gt;
&lt;br /&gt;
Most desktop clients nowadays are being built using Adobe's &lt;a class="zem_slink" href="http://www.adobe.com/products/air/" rel="homepage" title="Adobe Integrated Runtime"&gt;AIR&lt;/a&gt;. So, at first, I downloaded and installed the AIR package for Linux and all went well.&lt;br /&gt;
&lt;br /&gt;
After that, I had to visit each client's homepage to install the client. In order to make things easier for the end user to complete the installation, there is an automated procedure through the webpage. The only problem is that this procedure fails to accept the fact that I have already installed AIR and doesn't let me proceed with the download/installation.&lt;br /&gt;
&lt;br /&gt;
So, what can a poor developer/user do in such a situation?&lt;br /&gt;
Simple... "&lt;b&gt;use the source, Luke!&lt;/b&gt;" and look at the HTML code of the webpage and try to find the link reference to the ".air" file, then download it manually and continue the installation from the command line using AIR's "Adobe AIR Application Installer" (located at /usr/bin directory).&lt;br /&gt;
&lt;br /&gt;
From Firefox, while viewing the desktop client's webpage, press Ctrl+U to view the source, search for ".air" (without the quotes) and copy to clipboard the URL in the 'a href=' clause. Paste the copied URL into the location bar and save the file to your hard disk. Then run&lt;br /&gt;
&lt;blockquote&gt;Adobe AIR Application Installer&lt;/blockquote&gt;and guide it to the just-downloaded file to start the installation.&lt;br /&gt;
&lt;br /&gt;
As usual, "the devil is in the details", right?&amp;nbsp; :-)&lt;div class="blogger-post-footer"&gt;&lt;hr /&gt; Visit &lt;a href="http://lightoflamp.blogspot.com"&gt;The Light of the LAMP&lt;/a&gt; blog for more...&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7664472768379327993-3216887943183861640?l=lightoflamp.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/Jdz5YCQ4v4wRGqlchCItHYYNTvE/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Jdz5YCQ4v4wRGqlchCItHYYNTvE/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/Jdz5YCQ4v4wRGqlchCItHYYNTvE/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Jdz5YCQ4v4wRGqlchCItHYYNTvE/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/LightOfLamp?a=BonffxoF"&gt;&lt;img src="http://feeds.feedburner.com/~f/LightOfLamp?i=BonffxoF" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/LightOfLamp?a=BaxgacNS"&gt;&lt;img src="http://feeds.feedburner.com/~f/LightOfLamp?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/LightOfLamp?a=WM2fOSsY"&gt;&lt;img src="http://feeds.feedburner.com/~f/LightOfLamp?d=42" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/LightOfLamp?a=FPoMyLvb"&gt;&lt;img src="http://feeds.feedburner.com/~f/LightOfLamp?i=FPoMyLvb" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/LightOfLamp?a=9CCPJGrv"&gt;&lt;img src="http://feeds.feedburner.com/~f/LightOfLamp?i=9CCPJGrv" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/LightOfLamp?a=AJJyeliJ"&gt;&lt;img src="http://feeds.feedburner.com/~f/LightOfLamp?d=52" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/LightOfLamp?a=ktmKeYrK"&gt;&lt;img src="http://feeds.feedburner.com/~f/LightOfLamp?i=ktmKeYrK" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/LightOfLamp?a=DshTKKhJ"&gt;&lt;img src="http://feeds.feedburner.com/~f/LightOfLamp?d=129" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/LightOfLamp/~4/8oy1MsZ4Tm8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://lightoflamp.blogspot.com/feeds/3216887943183861640/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7664472768379327993&amp;postID=3216887943183861640&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7664472768379327993/posts/default/3216887943183861640?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7664472768379327993/posts/default/3216887943183861640?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/LightOfLamp/~3/8oy1MsZ4Tm8/use-source-luke-even-for-html-pages.html" title="Use the source, Luke... even for HTML pages!" /><author><name>Apostolos Tsompanopoulos</name><uri>https://profiles.google.com/116830033229579059545</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh6.googleusercontent.com/-uPD85_TaBPk/AAAAAAAAAAI/AAAAAAAABkQ/-CPE5ulnaos/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://lightoflamp.blogspot.com/2008/10/use-source-luke-even-for-html-pages.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ck4HRXo5eSp7ImA9WxdQF0U.&quot;"><id>tag:blogger.com,1999:blog-7664472768379327993.post-3310342854516011246</id><published>2008-06-18T12:22:00.001+03:00</published><updated>2008-06-18T12:22:14.421+03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-06-18T12:22:14.421+03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Firefox" /><title>Firefox 3 download day</title><content type="html">&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;Today is the day Firefox 3 has launched and the day it tries to break a world record of the most downloads and installations of a software package &lt;strong&gt;in a day&lt;/strong&gt;.&lt;br/&gt;&lt;br/&gt;So, if you like Firefox, why don't you help?&lt;br/&gt;&lt;br/&gt;&lt;a href='http://www.spreadfirefox.com/node&amp;amp;id=0&amp;amp;t=264'&gt;&lt;img border='0' src='http://www.spreadfirefox.com/files/images/affiliates_banners/dday_badge_fox.png' title='Download Day' alt='Download Day'/&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;hr /&gt; Visit &lt;a href="http://lightoflamp.blogspot.com"&gt;The Light of the LAMP&lt;/a&gt; blog for more...&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7664472768379327993-3310342854516011246?l=lightoflamp.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/3-DQVlCNJ-Ar6ZcPvXyiuO76so8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/3-DQVlCNJ-Ar6ZcPvXyiuO76so8/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/3-DQVlCNJ-Ar6ZcPvXyiuO76so8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/3-DQVlCNJ-Ar6ZcPvXyiuO76so8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/LightOfLamp?a=uZrwmnhN"&gt;&lt;img src="http://feeds.feedburner.com/~f/LightOfLamp?i=uZrwmnhN" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/LightOfLamp?a=IRQ8OZCL"&gt;&lt;img src="http://feeds.feedburner.com/~f/LightOfLamp?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/LightOfLamp?a=gjzvKjW4"&gt;&lt;img src="http://feeds.feedburner.com/~f/LightOfLamp?d=42" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/LightOfLamp?a=kx6eUIPF"&gt;&lt;img src="http://feeds.feedburner.com/~f/LightOfLamp?i=kx6eUIPF" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/LightOfLamp?a=Rb8G9pQu"&gt;&lt;img src="http://feeds.feedburner.com/~f/LightOfLamp?i=Rb8G9pQu" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/LightOfLamp?a=GpxxAxzu"&gt;&lt;img src="http://feeds.feedburner.com/~f/LightOfLamp?d=52" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/LightOfLamp?a=NYdpTooM"&gt;&lt;img src="http://feeds.feedburner.com/~f/LightOfLamp?i=NYdpTooM" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/LightOfLamp?a=ZYRxc9I2"&gt;&lt;img src="http://feeds.feedburner.com/~f/LightOfLamp?d=129" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/LightOfLamp/~4/s_Ej3FAEYv0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://lightoflamp.blogspot.com/feeds/3310342854516011246/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7664472768379327993&amp;postID=3310342854516011246&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7664472768379327993/posts/default/3310342854516011246?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7664472768379327993/posts/default/3310342854516011246?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/LightOfLamp/~3/s_Ej3FAEYv0/firefox-3-download-day.html" title="Firefox 3 download day" /><author><name>Apostolos P. Tsompanopoulos</name><uri>http://www.blogger.com/profile/10128218517633851014</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://1.bp.blogspot.com/_R14v4a5RaAw/Sc6je9IFwmI/AAAAAAAAABU/gvSkLwfw6TA/S220/apt4.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://lightoflamp.blogspot.com/2008/06/firefox-3-download-day.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DE4BQHg_eSp7ImA9WxdQE04.&quot;"><id>tag:blogger.com,1999:blog-7664472768379327993.post-2929308991040782618</id><published>2008-06-13T09:02:00.001+03:00</published><updated>2008-06-13T09:02:31.641+03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-06-13T09:02:31.641+03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="bash" /><category scheme="http://www.blogger.com/atom/ns#" term="Linux" /><title>Backup files before editing</title><content type="html">&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;It's a fact that many text editors (or word processors) have the ability to keep a backup copy of every file you edit, just to assure you that you can always restore the previous version of the file. This is usually implemented by creating a copy of the file with a file extension of &lt;strong&gt;.bak&lt;/strong&gt; or by appending a "~" character at the end of the current file extension, like &lt;strong&gt;.c~&lt;/strong&gt;&lt;br/&gt;&lt;br/&gt;Although being a useful option for a programmer (or a writer), it lacks the capability of keeping more backup copies, like a &lt;a href='http://en.wikipedia.org/wiki/Concurrent_Versions_System' target='_blank'&gt;&lt;strong&gt;CVS&lt;/strong&gt;&lt;/a&gt; (&lt;em&gt;Concurrent Versions System&lt;/em&gt;) where the author can go back in time and find the text file as is was e.g. a month ago (very handy if you want to restore something you have deleted just before one week).&lt;br/&gt;&lt;br/&gt;In order to avoid the complexity of a CVS, yet having the option to "travel" back in time, I wrote a small shell script, which I'm running just before my editing sessions. The script looks like this:&lt;br/&gt;&lt;blockquote&gt;#!/bin/bash&lt;br/&gt;datetime=`date +%Y%m%d_%H%M`&lt;br/&gt;bdir=".backup"&lt;br/&gt;&lt;br/&gt;mkdir $bdir  2&amp;gt; /dev/null&lt;br/&gt;&lt;br/&gt;for a in $*; do&lt;br/&gt;        cp -av $a $bdir/$datetime.$a&lt;br/&gt;done&lt;br/&gt;gzip -9 $bdir/$datetime.*&lt;br/&gt;&lt;/blockquote&gt;All it does is to keep a compressed copy of every file you want to edit in a directory named ".backup", hence I named it "backup2.backup" and I run it as:&lt;br/&gt;&lt;blockquote&gt;backup2.backup *.php *.html&lt;br/&gt;&lt;/blockquote&gt;It doesn't check many things, but I'm using it for some time now. Feel free to enhance it as you like it.&lt;br/&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;hr /&gt; Visit &lt;a href="http://lightoflamp.blogspot.com"&gt;The Light of the LAMP&lt;/a&gt; blog for more...&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7664472768379327993-2929308991040782618?l=lightoflamp.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/keH6qJ9WRuv7mtVHP_woNsdQFIY/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/keH6qJ9WRuv7mtVHP_woNsdQFIY/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/keH6qJ9WRuv7mtVHP_woNsdQFIY/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/keH6qJ9WRuv7mtVHP_woNsdQFIY/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/LightOfLamp?a=4Prmdwd3"&gt;&lt;img src="http://feeds.feedburner.com/~f/LightOfLamp?i=4Prmdwd3" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/LightOfLamp?a=NeEei8XO"&gt;&lt;img src="http://feeds.feedburner.com/~f/LightOfLamp?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/LightOfLamp?a=jotyc8sB"&gt;&lt;img src="http://feeds.feedburner.com/~f/LightOfLamp?d=42" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/LightOfLamp?a=D2Sozjrf"&gt;&lt;img src="http://feeds.feedburner.com/~f/LightOfLamp?i=D2Sozjrf" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/LightOfLamp?a=jUhsclkx"&gt;&lt;img src="http://feeds.feedburner.com/~f/LightOfLamp?i=jUhsclkx" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/LightOfLamp?a=gXUx68Cz"&gt;&lt;img src="http://feeds.feedburner.com/~f/LightOfLamp?d=52" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/LightOfLamp?a=EefLpDF8"&gt;&lt;img src="http://feeds.feedburner.com/~f/LightOfLamp?i=EefLpDF8" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/LightOfLamp?a=nSRKhvQ5"&gt;&lt;img src="http://feeds.feedburner.com/~f/LightOfLamp?d=129" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/LightOfLamp/~4/Wt9cH4yxS_w" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://lightoflamp.blogspot.com/feeds/2929308991040782618/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7664472768379327993&amp;postID=2929308991040782618&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7664472768379327993/posts/default/2929308991040782618?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7664472768379327993/posts/default/2929308991040782618?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/LightOfLamp/~3/Wt9cH4yxS_w/backup-files-before-editing.html" title="Backup files before editing" /><author><name>Apostolos P. Tsompanopoulos</name><uri>http://www.blogger.com/profile/10128218517633851014</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://1.bp.blogspot.com/_R14v4a5RaAw/Sc6je9IFwmI/AAAAAAAAABU/gvSkLwfw6TA/S220/apt4.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://lightoflamp.blogspot.com/2008/06/backup-files-before-editing.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0AGSHw_eCp7ImA9WxZbGUg.&quot;"><id>tag:blogger.com,1999:blog-7664472768379327993.post-1782192157924238764</id><published>2008-04-23T16:57:00.003+03:00</published><updated>2008-04-23T17:08:49.240+03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-04-23T17:08:49.240+03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="PHP" /><title>Formatting human readable numbers with PHP</title><content type="html">&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;One of my former colleagues, Athanassios Bakalidis, in his latest blog post "&lt;a href="http://abakalidis.blogspot.com/2008/04/java-formatting-number-using-custom.html"&gt;Java: Formatting a Number Using a Custom Format&lt;/a&gt;", has written about number formatting in Java language. This post made me think about the ways we 're using to print numbers from PHP to HTML output.&lt;br /&gt;&lt;br /&gt;When we 're dealing with integers, usually it's sufficient to add a&lt;br /&gt;&lt;blockquote&gt;style="text-align: right;"&lt;/blockquote&gt;to right-align the numbers in a column.&lt;br /&gt;&lt;br /&gt;Floating point numbers, on the other hand, may require the use of &lt;a href="http://php.net/manual/en/function.number-format.php"&gt;number_format()&lt;/a&gt; function to properly format them, for example to have the same number of decimals (added to the obvious &lt;a href="http://php.net/manual/en/function.round.php"&gt;round()&lt;/a&gt;, &lt;a href="http://php.net/manual/en/function.floor.php"&gt;floor()&lt;/a&gt; and &lt;a href="http://php.net/manual/en/function.ceil.php"&gt;ceil()&lt;/a&gt; functions).&lt;br /&gt;&lt;br /&gt;But, what if I wanted to sort an array having two arithmetic columns?&lt;br /&gt;Then, I'd use the &lt;a href="http://php.net/manual/en/function.sprintf.php"&gt;sprintf()&lt;/a&gt; function to zero-pad numeric values, like this (certain sections are omitted):&lt;br /&gt;&lt;br /&gt;&lt;code&gt;$u0 = mysql_query( $sql, $db) or die( mysql_error());&lt;br /&gt;$aa = array();&lt;br /&gt;while ($u1 = mysql_fetch_row( $u0)) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$id = $u1[0];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$c1 = $u1[1];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$aa[$id] = &lt;strong&gt;number_format&lt;/strong&gt;($u1[2]/$c1,4) .":". &lt;strong&gt;sprintf&lt;/strong&gt;("%06d", $c1);&lt;br /&gt;}&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;arsort&lt;/span&gt;( $aa); reset( $aa);&lt;br /&gt;while (list($k, $v) = each($aa)) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;list( $v1, $c1) = explode( ":", $v);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$c1 = intval( $c1);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$v1 = round( $v1, 2);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[......]&lt;br /&gt;}&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;With this technique, one can sort numeric values properly as numbers (although by internally converting them to strings).&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;hr /&gt; Visit &lt;a href="http://lightoflamp.blogspot.com"&gt;The Light of the LAMP&lt;/a&gt; blog for more...&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7664472768379327993-1782192157924238764?l=lightoflamp.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/-8lLPP3dpDDeaBKqr_SqUYaeeNw/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/-8lLPP3dpDDeaBKqr_SqUYaeeNw/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/-8lLPP3dpDDeaBKqr_SqUYaeeNw/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/-8lLPP3dpDDeaBKqr_SqUYaeeNw/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/LightOfLamp?a=3njruuBg"&gt;&lt;img src="http://feeds.feedburner.com/~f/LightOfLamp?i=3njruuBg" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/LightOfLamp?a=peDkU1BZ"&gt;&lt;img src="http://feeds.feedburner.com/~f/LightOfLamp?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/LightOfLamp?a=gHuoeBdi"&gt;&lt;img src="http://feeds.feedburner.com/~f/LightOfLamp?d=42" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/LightOfLamp?a=Hx0zH3kN"&gt;&lt;img src="http://feeds.feedburner.com/~f/LightOfLamp?i=Hx0zH3kN" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/LightOfLamp?a=Luy0FM1J"&gt;&lt;img src="http://feeds.feedburner.com/~f/LightOfLamp?i=Luy0FM1J" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/LightOfLamp?a=9PwRO44E"&gt;&lt;img src="http://feeds.feedburner.com/~f/LightOfLamp?d=52" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/LightOfLamp?a=KZ4THf51"&gt;&lt;img src="http://feeds.feedburner.com/~f/LightOfLamp?i=KZ4THf51" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/LightOfLamp?a=XUBOSIM0"&gt;&lt;img src="http://feeds.feedburner.com/~f/LightOfLamp?d=129" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/LightOfLamp/~4/1gCSI5kfsmY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://lightoflamp.blogspot.com/feeds/1782192157924238764/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7664472768379327993&amp;postID=1782192157924238764&amp;isPopup=true" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7664472768379327993/posts/default/1782192157924238764?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7664472768379327993/posts/default/1782192157924238764?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/LightOfLamp/~3/1gCSI5kfsmY/formatting-human-readable-numbers-with.html" title="Formatting human readable numbers with PHP" /><author><name>Apostolos P. Tsompanopoulos</name><uri>http://www.blogger.com/profile/10128218517633851014</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://1.bp.blogspot.com/_R14v4a5RaAw/Sc6je9IFwmI/AAAAAAAAABU/gvSkLwfw6TA/S220/apt4.jpg" /></author><thr:total>1</thr:total><feedburner:origLink>http://lightoflamp.blogspot.com/2008/04/formatting-human-readable-numbers-with.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkQGQn87cCp7ImA9WxZVEUo.&quot;"><id>tag:blogger.com,1999:blog-7664472768379327993.post-6824095400834962548</id><published>2008-03-22T11:15:00.003+02:00</published><updated>2008-03-22T11:32:03.108+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-03-22T11:32:03.108+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="PHP" /><title>Twit from PHP with cURL</title><content type="html">&lt;p&gt;There are cases you need to update a special &lt;a href="http://twitter.com/"&gt;Twitter&lt;/a&gt; feed to inform your visitors about something that has happened to your site. Then, this PHP function might be very useful if you add it in your functions arsenal:&lt;/p&gt;&lt;pre&gt;/* inform twitter about something */&lt;br /&gt;function twit( $msg = "")&lt;br /&gt;{&lt;br /&gt; $username = "twitter-username";&lt;br /&gt; $password = "twitter-password";&lt;br /&gt; $ch = curl_init();&lt;br /&gt; curl_setopt( $ch, CURLOPT_URL, "http://twitter.com/statuses/update.xml");&lt;br /&gt; curl_setopt( $ch, CURLOPT_RETURNTRANSFER, TRUE); // change to FALSE for not reporting XML output&lt;br /&gt; curl_setopt( $ch, CURLOPT_POST, 1);&lt;br /&gt; curl_setopt( $ch, CURLOPT_POSTFIELDS, "status=" . urlencode( $msg));&lt;br /&gt; curl_setopt( $ch, CURLOPT_USERPWD, "$username:$password");&lt;br /&gt; ob_start();&lt;br /&gt; $response = curl_exec( $ch);&lt;br /&gt; ob_end_clean();&lt;br /&gt; curl_close( $ch);&lt;br /&gt; return $response;&lt;br /&gt;}&lt;/pre&gt;As you can see, it only takes a string argument; the message you want to send.  It returns also a string, which is either a true/false value or an XML-formatted &lt;i&gt;response&lt;/i&gt;, depending on the value of &lt;span style="font-style: italic;"&gt;CURLOPT_RETURNTRANSFER&lt;/span&gt;.&lt;p&gt;In order to use this function, you need to have installed the &lt;a href="http://curl.haxx.se/"&gt;cURL&lt;/a&gt; extension of PHP.  You can check if it's installed quickly with the following command:&lt;/p&gt;&lt;pre&gt;$ php -i | grep -i curl&lt;/pre&gt;&lt;p&gt;If cURL is installed, you can expect an output like this:&lt;/p&gt;&lt;pre&gt;additional .ini files parsed =&gt; /etc/php5/cli/conf.d/curl.ini,&lt;br /&gt;curl&lt;br /&gt;cURL support =&gt; enabled&lt;br /&gt;cURL Information =&gt; libcurl/7.16.4 OpenSSL/0.9.8e zlib/1.2.3.3 libidn/1.0&lt;/pre&gt;&lt;p&gt;If not, the package you need to install is &lt;a href="http://curl.haxx.se/libcurl/php/"&gt;php5-curl&lt;/a&gt;.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;hr /&gt; Visit &lt;a href="http://lightoflamp.blogspot.com"&gt;The Light of the LAMP&lt;/a&gt; blog for more...&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7664472768379327993-6824095400834962548?l=lightoflamp.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/u-4XytLQLumiSfLkK_zmuiKrP5Y/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/u-4XytLQLumiSfLkK_zmuiKrP5Y/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/u-4XytLQLumiSfLkK_zmuiKrP5Y/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/u-4XytLQLumiSfLkK_zmuiKrP5Y/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/LightOfLamp?a=MeoioFlO"&gt;&lt;img src="http://feeds.feedburner.com/~f/LightOfLamp?i=MeoioFlO" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/LightOfLamp?a=d832LzkG"&gt;&lt;img src="http://feeds.feedburner.com/~f/LightOfLamp?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/LightOfLamp?a=9LiFTbyM"&gt;&lt;img src="http://feeds.feedburner.com/~f/LightOfLamp?d=42" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/LightOfLamp?a=JlijaJOG"&gt;&lt;img src="http://feeds.feedburner.com/~f/LightOfLamp?i=JlijaJOG" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/LightOfLamp?a=irmcoJiC"&gt;&lt;img src="http://feeds.feedburner.com/~f/LightOfLamp?i=irmcoJiC" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/LightOfLamp?a=xW8o3Uri"&gt;&lt;img src="http://feeds.feedburner.com/~f/LightOfLamp?d=52" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/LightOfLamp?a=uXwCFvsE"&gt;&lt;img src="http://feeds.feedburner.com/~f/LightOfLamp?i=uXwCFvsE" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/LightOfLamp?a=BPYrX6xM"&gt;&lt;img src="http://feeds.feedburner.com/~f/LightOfLamp?d=129" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/LightOfLamp/~4/j-kqMpBZA4o" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://lightoflamp.blogspot.com/feeds/6824095400834962548/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7664472768379327993&amp;postID=6824095400834962548&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7664472768379327993/posts/default/6824095400834962548?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7664472768379327993/posts/default/6824095400834962548?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/LightOfLamp/~3/j-kqMpBZA4o/twit-from-php-with-curl.html" title="Twit from PHP with cURL" /><author><name>Apostolos P. Tsompanopoulos</name><uri>http://www.blogger.com/profile/10128218517633851014</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://1.bp.blogspot.com/_R14v4a5RaAw/Sc6je9IFwmI/AAAAAAAAABU/gvSkLwfw6TA/S220/apt4.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://lightoflamp.blogspot.com/2008/03/twit-from-php-with-curl.html</feedburner:origLink></entry></feed>

