<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Web 0.2</title>
	<atom:link href="http://www.held.org.il/blog/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://www.held.org.il/blog</link>
	<description>Linux, FOSS, Web and more: a buzzword-free blog</description>
	<lastBuildDate>Tue, 17 Aug 2010 23:28:19 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>013 Netvision ISP filters XMPP packets?</title>
		<link>http://www.held.org.il/blog/?p=279</link>
		<comments>http://www.held.org.il/blog/?p=279#comments</comments>
		<pubDate>Tue, 17 Aug 2010 21:22:31 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Tech: general]]></category>
		<category><![CDATA[FOSS]]></category>
		<category><![CDATA[google talk]]></category>
		<category><![CDATA[gtalk]]></category>
		<category><![CDATA[isp]]></category>
		<category><![CDATA[israel]]></category>
		<category><![CDATA[netvision]]></category>
		<category><![CDATA[xmpp]]></category>
		<category><![CDATA[נטויז'ן]]></category>

		<guid isPermaLink="false">http://www.held.org.il/blog/?p=279</guid>
		<description><![CDATA[It&#8217;s been quite a while, since I could easily log in to Google Talk through Pidgin from home. I truly suspect that that 013 Netvision ISP is to blame, for dropping XMPP packets. Sniffing reveals that my XMPP packets are not resulting in response in a reasonable time (more than 10 seconds), causing the client [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s been quite a while, since I could easily log in to Google Talk through <a href="http://www.pidgin.im">Pidgin</a> from home. I truly suspect that that 013 Netvision ISP is to blame, for dropping <a href="http://en.wikipedia.org/wiki/XMPP">XMPP</a> packets.</p>
<p>Sniffing reveals that my XMPP packets are not resulting in response in a reasonable time (more than 10 seconds), causing the client to retransmit several times. Eventually I get a response, but I believe that somewhere in the handshaking or even later, a timeout is reached and the connection fails. A screenshot, note the Time field:</p>
<p><a href="http://www.held.org.il/blog/wp-content/uploads/2010/08/Screenshot.png"><img class="alignnone size-medium wp-image-282" title="wireshark screenshot" src="http://www.held.org.il/blog/wp-content/uploads/2010/08/Screenshot-300x81.png" alt="" width="300" height="81" /></a></p>
<p>I tried contacting their support two weeks ago, but no response yet.</p>
<p>Can anybody shed more light on this problem?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.held.org.il/blog/?feed=rss2&amp;p=279</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Inserting unicode characters on Linux/GNOME</title>
		<link>http://www.held.org.il/blog/?p=278</link>
		<comments>http://www.held.org.il/blog/?p=278#comments</comments>
		<pubDate>Sat, 10 Jul 2010 17:06:39 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Tips & Tricks]]></category>
		<category><![CDATA[FOSS]]></category>
		<category><![CDATA[Linux/Unix]]></category>
		<category><![CDATA[unicode]]></category>

		<guid isPermaLink="false">http://www.held.org.il/blog/?p=278</guid>
		<description><![CDATA[Well, it&#8217;s that simple: Hold Ctrl+Shift+U Type the unicode hex code (e.g. 2603) Press space Viola☃]]></description>
			<content:encoded><![CDATA[<p>Well, it&#8217;s that simple:</p>
<ol>
<li>Hold Ctrl+Shift+U</li>
<li>Type the unicode hex code (e.g. 2603)</li>
<li>Press space</li>
</ol>
<p>Viola☃</p>
]]></content:encoded>
			<wfw:commentRss>http://www.held.org.il/blog/?feed=rss2&amp;p=278</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Surprising new keyboard shortcuts</title>
		<link>http://www.held.org.il/blog/?p=276</link>
		<comments>http://www.held.org.il/blog/?p=276#comments</comments>
		<pubDate>Wed, 16 Jun 2010 22:41:51 +0000</pubDate>
		<dc:creator>Oren</dc:creator>
				<category><![CDATA[Tips & Tricks]]></category>
		<category><![CDATA[FOSS]]></category>
		<category><![CDATA[gnome]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[keyboard]]></category>
		<category><![CDATA[keyboard shortcuts]]></category>
		<category><![CDATA[Linux/Unix]]></category>
		<category><![CDATA[shortcuts]]></category>

		<guid isPermaLink="false">http://www.held.org.il/blog/?p=276</guid>
		<description><![CDATA[(Well, surprising me, at least) It&#8217;s been a while since I wrote these two posts about keyboard shortcut, so I&#8217;ll try to summarize some neat ones I&#8217;ve recently learned: Unix Shell Ctrl+U deletes all characters on the cursor&#8217;s left. And.. keep it in the shell&#8217;s clipboard. Ctrl+K deletes all characters to the cursor&#8217;s right (including [...]]]></description>
			<content:encoded><![CDATA[<p>(Well, surprising me, at least)</p>
<p>It&#8217;s been a while since I wrote these <a href="http://www.held.org.il/blog/?p=29">two</a> <a href="http://www.held.org.il/blog/?p=72">posts</a> about keyboard shortcut, so I&#8217;ll try to summarize some neat ones I&#8217;ve recently learned:</p>
<p><span style="color: #800000;"><strong>Unix Shell</strong></span></p>
<ul>
<li><span style="color: #800000;"><span style="color: #000000;"><strong>Ctrl+U</strong> deletes all characters on the cursor&#8217;s left. And.. keep it in the shell&#8217;s clipboard.<br />
</span></span></li>
<li><span style="color: #800000;"><span style="color: #000000;"><strong>Ctrl+K </strong>deletes all characters to the cursor&#8217;s right (including the cursor&#8217;s position), keeps in clipboard.</span></span></li>
<li><span style="color: #800000;"><span style="color: #000000;"><strong>Ctrl+Y: </strong>paste clipboard.</span></span></li>
<li><span style="color: #800000;"><span style="color: #000000;"><strong>Ctrl+R:</strong> search for string in history. Multiple Ctrl+R&#8217;s search for the next matches in history. Btw, It&#8217;s F7/F8 on windows command prompt.<br />
</span></span></li>
</ul>
<p><span style="color: #800000;"><strong>Google vim keys and more<br />
</strong></span></p>
<ul>
<li><span style="color: #800000;"><span style="color: #000000;"><strong>Google search</strong>: <a href="www.google.com/experimental">Google Experimental Search</a>, enables vim keys for browsing the results! Super useful.<br />
</span></span></li>
<li><strong>Google Calendar </strong>support vim keys (j, k, l, m) for navigating in the calendar. Type &#8220;?&#8221; for more keyboard shortcuts.</li>
</ul>
<p><span style="color: #800000;"><strong>GNOME</strong></span></p>
<ul>
<li><strong>Alt+F10</strong> toggles between maximal window size and original window size.</li>
<li><strong>Alt+F9</strong> minimizes window</li>
<li><strong>Alt+F8</strong> switches to resize window mode</li>
<li><strong>Alt+F1</strong> opens the GNOME menu.</li>
</ul>
<p>Thanks for Zohar and <a href="http://www.twitter.com/avivby">Aviv</a> for presenting me with most of the above shortcuts.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.held.org.il/blog/?feed=rss2&amp;p=276</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>DNS SRV records (or: why Google Talk doesn&#039;t connect through this network)</title>
		<link>http://www.held.org.il/blog/?p=272</link>
		<comments>http://www.held.org.il/blog/?p=272#comments</comments>
		<pubDate>Mon, 24 May 2010 18:38:31 +0000</pubDate>
		<dc:creator>Oren</dc:creator>
				<category><![CDATA[Tech: general]]></category>
		<category><![CDATA[dns]]></category>
		<category><![CDATA[FOSS]]></category>
		<category><![CDATA[gtalk]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[pidgin]]></category>
		<category><![CDATA[srv]]></category>

		<guid isPermaLink="false">http://www.held.org.il/blog/?p=272</guid>
		<description><![CDATA[[ There is some blabla here about SRV records, See last paragraph for the direct solution ] Recently, the bus home was replaced with a shiny new one, which also provides Wi-Fi access. That&#8217;s brilliant &#8211; as long as I have a seat, I don&#8217;t mind how long the ride home takes. I just hope [...]]]></description>
			<content:encoded><![CDATA[<p>[ There is some blabla here about SRV records, See last paragraph for the direct solution ]</p>
<p>Recently, the bus home was replaced with a shiny new one, which also provides Wi-Fi access. That&#8217;s brilliant &#8211; as long as I have a seat, I don&#8217;t mind how long the ride home takes. I just hope it doesn&#8217;t radiate too much =)</p>
<p>Anyway, I&#8217;ve noticed that I fail to connect to Google talk through my favorite client, <a href="http://www.pidgin.im">Pidgin</a>, when connected to this Bus&#8217; wireless LAN. It&#8217;s really fun to do some debugging with xterm and <a href="http://www.wireshark.org/">wireshark</a> with passengers watching with curiosity.</p>
<p>And to the point &#8211; I&#8217;m not sure where this standard is defined (XMPP?), but Google recommends setting the Google Talk &#8220;domain&#8221; as gmail.com. But where is the XMPP <strong>server ip/name</strong> taken from? It&#8217;s not gmail.com, as the <em>telnet gmail.com 5222</em> fails.</p>
<p>Quick sniffing tells that my pidgin (and probably other clients) use DNS <a href="http://en.wikipedia.org/wiki/SRV_record">SRV records</a>. SRV records (<a href="http://tools.ietf.org/html/rfc2782">RFC2782</a>) are a pretty neat idea: it lets you query your domain for services. Why remember (or worse: guess) what&#8217;s the name of the SMTP server? Instead, SRV records suggest a way to ask a <strong>domain</strong> what&#8217;s the IP of the domain&#8217;s major SMTP <strong>service.</strong></p>
<p>The DNS name is of the following structure: _&lt;service name&gt;._&lt;protocol&gt;.domain.</p>
<p>In our case: <strong>_xmpp-client._tcp.gmail.com</strong>. Let&#8217;s run this nice command line:</p>
<blockquote><p># ﻿﻿host -t SRV _xmpp-client._tcp.gmail.com</p>
<div id="_mcePaste">_xmpp-client._tcp.gmail.com has SRV record 20 0 5222 talk2.l.google.com.</div>
<div id="_mcePaste">_xmpp-client._tcp.gmail.com has SRV record 20 0 5222 talk3.l.google.com.</div>
<div id="_mcePaste">_xmpp-client._tcp.gmail.com has SRV record 20 0 5222 talk4.l.google.com.</div>
<div id="_mcePaste">_xmpp-client._tcp.gmail.com has SRV record 5 0 5222 talk.l.google.com.</div>
<div id="_mcePaste">_xmpp-client._tcp.gmail.com has SRV record 20 0 5222 talk1.l.google.com.</div>
</blockquote>
<p>So briefly, each SRV record holds host name, port number, priority and weight. A single service may have several records, thus providing some kind of high availability and load balancing.</p>
<p>SRV records are intensively used in Microsoft Domains since Windows 2000, and it&#8217;s even possible that they invented it (they&#8217;re signed in the RFC after some non-microsoft guy). In that case, kudos to Microsoft for either inventing or pushing forward a good technological standard. Haven&#8217;t seen this frequently.</p>
<p>So, it seems that the DNS in this bus disrespects my SRV queries, and thus my Pidgin can&#8217;t figure out who is the Google Talk server. Setting another DNS server solved the problem.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.held.org.il/blog/?feed=rss2&amp;p=272</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>&quot;off-left&quot; convention is bad news for RTL</title>
		<link>http://www.held.org.il/blog/?p=260</link>
		<comments>http://www.held.org.il/blog/?p=260#comments</comments>
		<pubDate>Sun, 21 Mar 2010 23:45:58 +0000</pubDate>
		<dc:creator>Oren</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[acquia]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[drupal]]></category>
		<category><![CDATA[FOSS]]></category>
		<category><![CDATA[rtl]]></category>

		<guid isPermaLink="false">http://www.held.org.il/blog/?p=260</guid>
		<description><![CDATA[[This post presents a web designers technical problem, in which a hack for improved accessibility damages RTLability] This weekend I tried to debug an annoying problem in Drupal&#8216;s Acquia Marina theme on RTL mode, in which a horizontal scroll bar appears with no good reason (layout doesn&#8217;t scale horizontally). I turned to monkey HTML debugging, [...]]]></description>
			<content:encoded><![CDATA[<p><span style="color: #888888;"><strong>[This post presents a web designers technical problem, in which a hack for improved accessibility damages RTLability]</strong></span></p>
<p>This weekend I tried to debug an annoying problem in <a href="http://www.drupal.org">Drupal</a>&#8216;s <a href="http://drupal.org/project/acquia_marina">Acquia Marina</a> theme on <a href="http://en.wikipedia.org/wiki/Right-to-left">RTL</a> mode, in which a horizontal scroll bar appears with no good reason (layout doesn&#8217;t scale horizontally).</p>
<p>I turned to monkey HTML debugging, a term I just invented for removing element-by-element until getting to a super simple HTML file which reproduces the bug.</p>
<p>Eventually the one to blame was an element placed at <strong>&#8220;left: -999em&#8221;</strong> absolute position,  a far place horizontally, and triggered the scroll bar to appear (on FF and IE, not on Chrome). When on LTR mode, it didn&#8217;t, and things work perfectly. This setting aims to simply hide the drop-down menu when mouse is not hovering above it.</p>
<p><strong>Q: Why don&#8217;t they use CSS display:none,</strong> which seems to make more sense than hiding things off the screen?</p>
<p><strong>A</strong>: looks like it has to do with screen readers (as <a href="http://css-discuss.incutio.com/wiki/Screenreader_Visibility#Late_Breaking_Breakthrough">this article</a> suggests), which are apparently not aware of display:none text but are aware of off-screen text. A little puzzling. <strong>I suspect that it&#8217;s too old info</strong>, for it seems to be written on 2003. I wonder if new screen readers have this problems as well, and whether the reason for using off-left is not just an ancient myth.</p>
<p><span style="color: #800000;"><br />
</span></p>
<p><span style="color: #800000;"><strong>The problem with RTL</strong></span></p>
<p>When placing things off-left (e.g. <em>left: -999px</em>) on LTR mode, all browsers do NOT widen the page horizontally. It makes sense &#8211; the page goes from left to right, not from left to even-more left.</p>
<p>However, when on RTL mode, <em>left: -999px</em> <strong>does</strong> widen the page horizontally to the right (and the off-left element is actually visible when scrolling there), which is a very unwanted effects.</p>
<p>Here&#8217;s <a href="http://www.held.org.il/blog/?p=260">a related drupal discussion</a> about the problem and possible solutions.  The problem seems <a href="http://drupal.org/node/725840">broader than just acquia marina</a> .</p>
<p><span id="more-260"></span></p>
<p><strong><span style="color: #888888;"><span style="color: #800000;">Potential Solution #1: use off-right on RTL:</span> </span><span style="color: #ff0000;">BAD</span><br />
</strong></p>
<p>That&#8217;s the most trivial solution. It seems to work on IE8, chrome and FF. However, IE7, even on RTL, keeps widening the page and creating a horiz. scroll bar when using <em>right: -999px</em>. as for my inspection <strong>IE7 does not cope well with off-right</strong> (nor off-left) on RTL!</p>
<p>Another, more minor downside, is that this solution requires different styling-code for LTR and RTL.  It&#8217;s always preferred to have code that is not direction-specific, so that even when not keeping RTL in mind, the page would be RTL-compliant.</p>
<p><strong><span style="color: #800000;">Potential solution #2:</span> off-top</strong></p>
<p>As far as I know, there are no TTB (Top To Bottom) languages on the web, so hiding things off top would be best. From my tests, all common browsers (IE7, IE8, chrome, FF) like it. I wonder why people didn&#8217;t use it in first place instead of off-left, did I miss any disadvantage?</p>
<p><strong><span style="color: #800000;">Long-term solution: an intuitive new standard</span><br />
</strong></p>
<p>Personally I believe that neither off-left, off-right nor off-top are intuitive, these looks more like hacks, and I bet that most web developers don&#8217;t even know about these. So even, for the sake of accessibility, it&#8217;s important to resolve this screen reader crisis (if it exists at all), and have an industry standard for setting elements as hidden.</p>
<p>First step should be figuring out why/whether screen readers don&#8217;t support <em>display:none</em>; <strong>can readers confirm that and go into deeper details?</strong></p>
<p>Second step might be fixing the standards so that screen readers would support it, if needed.</p>
<p><strong>&#8212;&#8211;<br />
</strong></p>
<p><span style="color: #800000;"><strong>And the patch for fixing the RTL horizontal-scroll bar bug in Drupal&#8217;s Acquia Marina theme:</strong></span></p>
<p>&#8212; a/style.css<br />
+++ b/style.css<br />
@@ -1145,7 +1145,7 @@ div.rounded-inside {</p>
<p>#primary-menu ul.menu li ul {<br />
background: transparent url(&#8216;images/drop-bottom.png&#8217;) no-repeat 0 bottom;<br />
-  left: -999em;<br />
+  top: -999em;<br />
opacity: 0.95;<br />
margin: 0 0 0 -10px;<br />
padding: 2px 0 4px;<br />
@@ -1157,7 +1157,7 @@ div.rounded-inside {<br />
#primary-menu ul.menu li:hover ul,<br />
#primary-menu ul.menu li.hover ul {<br />
display: block;<br />
-  left: auto;<br />
+  top: auto;<br />
}</p>
<p>#primary-menu ul.menu li ul li {<br />
@@ -1195,7 +1195,7 @@ div.rounded-inside {<br />
}</p>
<p>#primary-menu ul.menu li ul li ul.menu {<br />
-  left: -999em;<br />
+  top: -999em;<br />
margin: 0 0 0 -14px;    /* LTR */<br />
padding: 6px 0 4px;<br />
}<br />
@@ -1231,7 +1231,7 @@ div.rounded-inside {<br />
}</p>
<p>#primary-menu ul.menu li ul li ul.menu li ul.menu li ul.menu{<br />
-  left: -999em;<br />
+  top: -999em;<br />
margin: 0 0 0 -14px;<br />
padding: 6px 0 4px;<br />
}</p>
<p><strong>Update: </strong>I have opened<a href="http://drupal.org/node/748938"> a bug for acquia marina</a>, and found <a href="http://drupal.org/node/725840">another related bug</a> (it&#8217;s me commenting there about off-top).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.held.org.il/blog/?feed=rss2&amp;p=260</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>KDE: a call for a change (or: why I moved to GNOME)</title>
		<link>http://www.held.org.il/blog/?p=254</link>
		<comments>http://www.held.org.il/blog/?p=254#comments</comments>
		<pubDate>Thu, 11 Mar 2010 15:44:55 +0000</pubDate>
		<dc:creator>Oren</dc:creator>
				<category><![CDATA[Linux/Unix]]></category>
		<category><![CDATA[FOSS]]></category>
		<category><![CDATA[gnome]]></category>
		<category><![CDATA[kde]]></category>

		<guid isPermaLink="false">http://www.held.org.il/blog/?p=254</guid>
		<description><![CDATA[[Disclaimer: I'm merely a KDE user, hardly involved with the KDE development processes; my criticism is based on what I see as a user, I'll be glad to be corrected in the comments] Back when I started my way with Linux with the brand new RedHat 6.0 (which as always, preferred GNOME). KDE always went [...]]]></description>
			<content:encoded><![CDATA[<p><span style="color: #808080;">[Disclaimer: I'm merely a KDE user, hardly involved with the KDE development processes; my criticism is based on what I see as a user, I'll be glad to be corrected in the comments]</span></p>
<p>Back when I started my way with Linux with the brand new RedHat 6.0 (which as always, preferred GNOME). KDE always went forward: KDE1 was pretty.. basic, KDE2 was a big step, and same goes from KDE3. I&#8217;ve been using <strong>KDE 3.5.x</strong> for quite a long while (RHEL/CentOS5 and Debian sid until recently). 3.5.x symbolizes, in my opinion, the last &#8220;winning&#8217; era of KDE:  It had the right features, but more important: it was mature and stable.</p>
<p><strong><span style="color: #993300;">KDE 4 introduced important improvements:</span></strong></p>
<ul>
<li><strong>User interface</strong> continued the tradition of being much nicer than its predecessors. Compare for yourselves: KDE <a href="http://en.wikipedia.org/wiki/File:KDE_1.0.jpg">1</a> <a href="http://en.wikipedia.org/wiki/File:KDE-2.0-es-es.png">2</a> <a href="http://en.wikipedia.org/wiki/File:Kde-3.2.3-es-es.png">3</a> <a href="http://en.wikipedia.org/wiki/File:KDE_4.0.png">4</a></li>
<li><strong>Very nice OpenGL effects</strong> were added with two important advantages over GNOME+ Compiz: the OpenGL features are fully integrated inside KDE, configuration is way easier (Compiz configuration tool is scary), and the attitude is more towards productivity and less toward eye-candiness. For example, instead of the useless wobbling windows and water effects of Compiz, KDE provides the useful feature that displays all open windows and allows search-as-you-type for choosing the right application by its name, by simply putting the mouse pointer  on the top-left corner.</li>
<li><strong>Simplified user interface</strong>: the developers had the courage to do some rewrites and strip complicated GUIs, even lose some features, and make the new KDE 4 apps more simple. This is mostly notable in konsole and amarok.</li>
</ul>
<p><strong><span style="color: #993300;">But, it also got worse than its predecessors on some areas:</span></strong></p>
<p><strong><span style="color: #993300;"><span id="more-254"></span></span></strong></p>
<ul>
<li><strong>Relatively instability and immaturity</strong>: i&#8217;ve been finding too many elementary bugs, such as <a href="https://bugs.kde.org/show_bug.cgi?id=205453">closing the laptop lid when locked doesn&#8217;t send computer to sleep</a>, or <a href="https://bugs.kde.org/show_bug.cgi?id=198463">low battery warning increases screen brightness instead of decreasing</a> (My examples are especially in the power management area, but not only). Being important yet unresolved for almost a year, makes it really frustrating. which leads me to the next point&#8230;</li>
<li><strong>Relatively inactive community, bad bugzilla state:</strong> the KDE bugzilla is too messy: lots &amp; lots of bugs stuck, neglected, on UNCONFIRMED, many <a href="https://bugs.kde.org/show_bug.cgi?id=41514">bugs that are open for years</a> (even bugs from KDE2). There should be much stricter policy there, irrelevant bugs should be rejected, confirmed bug should be set to NEW for distinguishing real from imaginary, and relevant bugs should be addressed. I&#8217;m aware that it&#8217;s a (mostly?) voluntary project, but it doesn&#8217;t mean that its problems shouldn&#8217;t be discussed.</li>
<li><strong>Unattractiveness to debug and fix the problems by myself:</strong> I admit that I didn&#8217;t try hard enough, but reading and fixing KDE&#8217;s code is an activity that I&#8217;m quite scared of. Maybe its the massiveness of the code, maybe it&#8217;s because KDE is not yet another application but my desktop environment.</li>
</ul>
<p><strong><span style="color: #993300;">3 things I recommend to the KDE project:</span></strong></p>
<ul>
<li><strong>Focus on stability</strong>, start a real feature freeze for the 4.x tree, clean the bugzilla: by either rejecting or fixing bugs.</li>
<li><strong>Attract</strong> more users to become developers and QA guys.</li>
<li><strong>Elect a leader</strong>. As far as I understand the KDE project doesn&#8217;t have a single leader. This is quite puzzling. I believe that in order to achieve real goals, there ought to be a single person to dictate the direction of the project.</li>
</ul>
<p><strong><span style="color: #993300;">As a new GNOME user, and for being fair, 3 things that GNOME should learn from KDE:</span></strong></p>
<ul>
<li><strong>gnome-terminal</strong> lacks many important features that <strong>konsole</strong> suggests: search buffer, unlimited buffer, notify on [in]activity.</li>
<li>GNOME&#8217;s <strong>Run dialog</strong> (alt+f2) is quite &#8220;dumb&#8221; compared to KDE&#8217;s krunner.</li>
<li><strong>Compiz</strong> should be more integrated in GNOME, be simpler to configure and more productive.</li>
</ul>
<p>I thank for the KDE developers and the Debian-KDE guys for their efforts; I hope to start a real discussion about the KDE project&#8217;s weaknesses, in order to improve them significantly, so I could switch back to KDE at 4.5.x !</p>
]]></content:encoded>
			<wfw:commentRss>http://www.held.org.il/blog/?feed=rss2&amp;p=254</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Debian: nfs-kernel-server is broken (Or: portmap to rpcbind transition)</title>
		<link>http://www.held.org.il/blog/?p=242</link>
		<comments>http://www.held.org.il/blog/?p=242#comments</comments>
		<pubDate>Tue, 05 Jan 2010 01:09:04 +0000</pubDate>
		<dc:creator>Oren</dc:creator>
				<category><![CDATA[FOSS]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[Linux/Unix]]></category>
		<category><![CDATA[nfs]]></category>
		<category><![CDATA[portmap]]></category>
		<category><![CDATA[rpc]]></category>
		<category><![CDATA[rpcbind]]></category>
		<category><![CDATA[sid]]></category>
		<category><![CDATA[unstable]]></category>

		<guid isPermaLink="false">http://www.held.org.il/blog/?p=242</guid>
		<description><![CDATA[UPDATE: rpcbind-0.2.0-3 was just released, and it solves all the rpcbind issues. UPDATE2: THE BUG WAS SOLVED! Alexander Wirt patched nfs-kernel-server: by removing the linkage of libtirpc, it now uses the previously method of IPv4 binding, thus not triggering the problem. When/if would rpcbind replace portmap &#8211; I don&#8217;t know. [ This article describes my [...]]]></description>
			<content:encoded><![CDATA[<p><strong>UPDATE: </strong>rpcbind-0.2.0-3 was just released, and it <a href="http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=563053#27"><strong>solves</strong></a> all the <em>rpcbind</em> issues.</p>
<p><strong>UPDATE2: <span style="color: #ff00ff;">THE BUG WAS SOLVED! </span></strong><span style="color: #ff00ff;"><span style="color: #000000;">Alexander Wirt <a href="http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=562757#85">patched nfs-kernel-server</a>: by removing the linkage of libtirpc, i</span></span>t now uses the previously method of IPv4 binding, thus not triggering the problem. When/if would rpcbind replace portmap &#8211; I don&#8217;t know.</p>
<p><span style="color: #333333;">[ This article describes my analysis to a problem found in <strong>Debian Unstable(sid)</strong> ]</span></p>
<p><span style="color: #0000ff;"><strong>1. The bug (<a href="http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=562757">link</a>)<br />
</strong></span></p>
<p>Since the end of December, a change in nfs-kernel-server package caused a change of behavior in some NFSv3 crucial services: rpc.statd, rpc.mountd. NFS is RPC-based, and as thus, it uses an RPC-to-UDP/TCP address translation service, aka port mapper. These services try to connect to port mapper when they need address translation, and since the recent change they first try to do it over IPv6.</p>
<p><strong>portmap</strong>, the current widely-used rpc port mapper service, <strong>does not support IPv6</strong>. This causes these crucial services to die, and NFSv3 fails to start (actually, with default configuration it even prevents starting an NFSv4 server).</p>
<p><span style="color: #0000ff;"><strong>2. So&#8230; rpcbind?</strong></span></p>
<p><strong><span id="more-242"></span></strong>While quickly researching the problem, I&#8217;ve leanred that <a href="http://sourceforge.net/projects/rpcbind/"><strong>rpcbind</strong></a> is a portmap-alternative, which <strong>does</strong> provide IPv6 support. While this is not necessarily the solution to the bug (rpc.* services could simply try IPv4 if IPv6 fails), it seems that a transition from portmap to rpcbind should be done anyway:</p>
<ul>
<li>rpcbind adds IPv6 support, which is, apparently the future (or is it..).</li>
<li>Fedora12 (And thus the upcoming RHEL6) has already dropped portmap in favor of rpcbind.</li>
<li>rpcbind is a fork from Sun, so I assume that modern Solaris also use rpcbind.</li>
<li>rpcbind&#8217;s last commit took place on 4 months ago, while portmap&#8217;s last commit took place 10 months ago.</li>
</ul>
<p>These reasons might not be strong enough. I just get the feeling that the winds blows toward the rpcbind direction, but I have no idea which code is actually better. It is, of course, possible to improve portmap instead of moving to rpcbind.</p>
<p><span style="color: #0000ff;"><strong>3. The current problems of  rpcbind transition<br />
</strong></span></p>
<ul>
<li><strong>[ UPDATE: FIXED ] </strong><a href="http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=563053  ">The package doesn&#8217;t install an init script</a></li>
<li><strong>[ UPDATE: FIXED ]</strong> The package conflicts with <strong>portmap</strong> package (e.g. they both listen on the same port), but isn&#8217;t defined as conflicting
<ul>
<li>Filenames conflict as well (/usr/bin/rpcinfo), but the package maintainer solved it by renaming it to /usr/bin/rpcbindinfo</li>
</ul>
</li>
</ul>
<ul>
<li><a href="http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=562757#80">Many packages depend on portmap only</a>. They should allow rpcbind as well. And should be tested with it.
<ul>
<li>Actually.. for packages which cannot work with portmap anymore  (such as nfs-kernel-server), if there&#8217;s no plan to fix the portmap coupling, they should depend on rpcbind <strong>only </strong>now<strong>.</strong></li>
</ul>
</li>
</ul>
<p><span style="color: #0000ff;"><strong>4. Why am I blogging this?</strong></span></p>
<p>As always, to help people research their problem. According to <a href="http://popcon.debian.org/">popcon</a> there are more than 10,000 Debian sid users, and that&#8217;s a lot of people potentially having NFS server problems.</p>
<p>And, because I&#8217;m a bit worried. Well, worried is a big word, it&#8217;s just a distro after all. Well, an unstable distro, even. Still, this is quite a major issue, and in the last 10 days I&#8217;ve hardly noticed any activity in the Debian community regarding this one. Only today it was <a href="http://lists.debian.org/debian-release/2010/01/msg00024.html">mentioned on the mailing lists</a> (yes, I know, I should have done this myself), and no replies yet. So, I hope that smart Debian guys would check it out and find the right recipe.</p>
<p><span style="color: #0000ff;"><strong>5. Oh, and a quick, dirty solution until they fix it <img src='http://www.held.org.il/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
</strong></span></p>
<p><strong>a. </strong>aptitude remove portmap (or just stop it and remove it from the boot sequence)</p>
<p><strong>b. </strong>aptitude install rpcbind 0.2.0-2</p>
<p><strong>c. </strong>Put an init script in /etc/init.d/rpcbind (here&#8217;s <a href="http://bugs.debian.org/cgi-bin/bugreport.cgi?msg=22;filename=rpcbind;att=1;bug=563053">my recommended script</a>)</p>
<p><strong>d. </strong>Add rpcbind to /etc/insserv.conf, in the &#8220;portmap&#8221; line (so init script that depend on $portmap would depend on rpcbind also)</p>
<p><strong>e.</strong> Run <em>insserv /etc/init.d/rpcbind</em> to reorder the init scripts.</p>
<p><strong>f.</strong> Reboot (or start rpcbind and then all the rpc services).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.held.org.il/blog/?feed=rss2&amp;p=242</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>y2k10 bug: spamassassin might tag mail as spam</title>
		<link>http://www.held.org.il/blog/?p=227</link>
		<comments>http://www.held.org.il/blog/?p=227#comments</comments>
		<pubDate>Sat, 02 Jan 2010 12:25:52 +0000</pubDate>
		<dc:creator>Oren</dc:creator>
				<category><![CDATA[FOSS]]></category>
		<category><![CDATA[spam]]></category>
		<category><![CDATA[spamassassin]]></category>

		<guid isPermaLink="false">http://www.held.org.il/blog/?p=227</guid>
		<description><![CDATA[[ This is bug affects only to people using the spamassassin spam filtering software ] Fabian Arrotin reports about this spamassassin bug, which tags mails dated 2010 and later &#8211; as potential spam (increases its spam-score). This is not silly &#8211; many spammers use fictional (far past/future) dates, wishing their spam would stay in the [...]]]></description>
			<content:encoded><![CDATA[<p><span style="color: #808080;"><strong>[ This is bug affects only to people using the <a href="http://spamassassin.apache.org/">spamassassin</a> spam filtering software ]</strong></span></p>
<p>Fabian Arrotin <a href="http://www.arrfab.net/blog/?p=174">reports</a> about this <a href="https://issues.apache.org/SpamAssassin/show_bug.cgi?id=6269">spamassassin bug</a>, which tags mails dated 2010 and later &#8211; as potential spam (increases its spam-score). This is not silly &#8211; many spammers use fictional (far past/future) dates, wishing their spam would stay in the top/bottom of the long list of mails.</p>
<p>This bug alone didn&#8217;t cause false positives in my spam folder (only increased the score from 0.0 to 0.6), but in some configurations or situations it could happen.</p>
<p><strong>The Fix</strong></p>
<p><strong><span id="more-227"></span></strong>The bug was discovered about two hours after the first appearance of 2010 (UTC), and got fixed* a few hours later.</p>
<p>I was surprised to discover the <strong>sa-update</strong> tool which is an integral part of the spamassassin package. It fetches the updated rule sets to /var/lib/spamassassin dir, which spamassassin is aware of by default. This directory&#8217;s files override the shipped, old rules in /usr/share/spamassassin.</p>
<p>After this incident, I linked this file <em>/usr/share/spamassassin/sa-update.cron</em> to the <em>/etc/cron.daily</em> dir.</p>
<p>* The fix, by the way, is quite a patch &#8211; it makes sure the mail&#8217;s date is not after 2020.. I smell a repeat of events <img src='http://www.held.org.il/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.held.org.il/blog/?feed=rss2&amp;p=227</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>udev debugging toolbox</title>
		<link>http://www.held.org.il/blog/?p=223</link>
		<comments>http://www.held.org.il/blog/?p=223#comments</comments>
		<pubDate>Wed, 23 Dec 2009 21:26:54 +0000</pubDate>
		<dc:creator>Oren</dc:creator>
				<category><![CDATA[Linux/Unix]]></category>
		<category><![CDATA[FOSS]]></category>
		<category><![CDATA[kernel]]></category>
		<category><![CDATA[udev]]></category>

		<guid isPermaLink="false">http://www.held.org.il/blog/?p=223</guid>
		<description><![CDATA[Ever wondered why a certain rule doesn&#8217;t run? Ever got confused (or disgusted) by udev rules format? Well, with all the udev badness, there are many useful tools in the udev package, which help to understand how udev works. I&#8217;m still far from knowing all the tricks, but here are some things that I&#8217;ve learned [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Ever wondered why a certain rule doesn&#8217;t run? Ever got confused (or disgusted) by udev rules format?</strong></p>
<p>Well, with all the udev badness, there are many useful tools in the udev package, which help to understand how udev works. I&#8217;m still far from knowing all the tricks, but here are some things that I&#8217;ve learned recently:</p>
<p><strong>Note: the udev tools got changed several times during the last 5 years</strong>. I&#8217;ll cover here the <span style="color: #ff9900;">latest version (149)<strong>,</strong></span> and the older, <span style="color: #339966;">RHEL/CENTOS5</span> version.</p>
<p><strong>1. INFO: get all info available to udev about a certain device (or all devices):</strong></p>
<p># <span style="color: #ff9900;">udevadm info -e <span style="color: #339966;">(</span></span><span style="color: #339966;">RHEL5: udevinfo -e)</span></p>
<p>Try it.. amazing, eh? You can use each detail to write udev rules to match these devices.</p>
<p><span id="more-223"></span></p>
<p><strong>2. DEBUG</strong>: <strong>see <span style="color: #ff0000;">everything</span> that udev does</strong></p>
<p>a. <strong>On demand debugging: </strong>udev sends messages to syslog. Easiest way to see what udev does, is by increasing the log level. as easy as a pie:</p>
<p># <span style="color: #ff9900;">udevadm control &#8211;log-priority=debug </span><span style="color: #339966;">(RHEL5: udevcontrol log_priority=debug)</span></p>
<p>b. <strong>boot in debug mode: </strong>most of udev actions are running at boot time, so we need a way to tell udev to <strong>start</strong> in debug mode. This way /var/log/messages would contain all udev actions messages starting with the very first one. Yes, syslog is down when udev starts.. Any idea how it works? <img src='http://www.held.org.il/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>How to do it?</p>
<p># <span style="color: #ff9900;">edit</span><span style="color: #ff9900;"><span style="color: #ff9900;"> /etc/ud</span>ev/udev.conf: set udev_log=&#8221;debug&#8221;</span></p>
<p><span style="color: #339966;">(RHEL5 has a nice trick: add <em>udevdebug </em>to the kernel boot parameters)</span></p>
<p><strong>3. TRIGGER</strong> &#8211; causes something like a udev rescan: all add events are re-sent from the kernel, thus triggering all udev rules.</p>
<p># <span style="color: #ff9900;">udevadm trigger</span> <span style="color: #339966;">(RHEL5: udevtrigger)</span></p>
<p><strong>4. SETTLE -</strong> blocks until udev has finished working on its queue. Due to the asynchronous nature of modern kernels, commands may return before the real expected action got finished. E.g.: a command for loading a kernel module might finish running before the network interface was really created, so if the next command expects a network interface it should wait until it&#8217;s created. Ok, to the business:</p>
<p># <span style="color: #ff9900;">udevadm settle</span> <span style="color: #339966;">(RHEL5: udevsettle)</span></p>
<p><strong>5. TEST/MONITOR: </strong>sound very useful, although I found debugging (mentioned above) as the better method for most scenarios, so I didn&#8217;t dig them much.</p>
<p>I hope this article will be helpful. Do you have a cool udev tip or trick? Be nice and post it as a comment!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.held.org.il/blog/?feed=rss2&amp;p=223</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sudo make me a sandwich</title>
		<link>http://www.held.org.il/blog/?p=212</link>
		<comments>http://www.held.org.il/blog/?p=212#comments</comments>
		<pubDate>Thu, 10 Dec 2009 21:11:14 +0000</pubDate>
		<dc:creator>Oren</dc:creator>
				<category><![CDATA[Linux/Unix]]></category>
		<category><![CDATA[FOSS]]></category>
		<category><![CDATA[ld_library_path]]></category>
		<category><![CDATA[setuid]]></category>
		<category><![CDATA[sudo]]></category>
		<category><![CDATA[suid]]></category>

		<guid isPermaLink="false">http://www.held.org.il/blog/?p=212</guid>
		<description><![CDATA[Sudo Q: How come &#8220;which ifconfig&#8221; (runing as a user) finds nothing, yet &#8220;sudo ifconfig&#8221; does work? A: sudo has a compile-time parameter called with-secure-path, which sets a different PATH for the sudo environment. Debuntu secure path contains /sbin:/usr/sbin, and that&#8217;s how it works. This feature gets two goals: convenience (no full path required for common root [...]]]></description>
			<content:encoded><![CDATA[<h2><a href="http://xkcd.com/149/"><img class="alignleft" style="margin: 5px; border: 0px initial initial;" title="XKCD sandwich comic cc-by-nc xkcd.com" src="http://imgs.xkcd.com/comics/sandwich.png" alt="" width="150" /></a>Sudo</h2>
<p><strong>Q: How come &#8220;<em>which ifconfig&#8221; (</em>runing as a user) finds nothing, yet &#8220;<em>sudo ifconfig&#8221; </em>does work?</strong></p>
<p><strong>A: </strong>sudo has a <strong>compile-time</strong> parameter called <em>with-secure-path,</em> which sets a different PATH for the sudo environment. Debuntu <em>secure path</em> contains /sbin:/usr/sbin, and that&#8217;s how it works. This feature gets two goals: convenience (no full path required for common root cmds) and security (ignoring potentially bad user PATH).</p>
<p>NOTE that RHEL doesn&#8217;t use this option, and running &#8220;<em>sudo ifconfig&#8221; </em>there simply fails.</p>
<p><strong>Q: How come sudo requests a password only on the first run?</strong></p>
<p><strong>A:</strong> Sudo has a nice mechanism for creating these &#8220;sudo session&#8221; things. After authentication, sudo creates a &#8216;timestamp dir&#8217; (in /var/run/sudo on my Debian), then uses its date to check when the last successful authentication took place.</p>
<ul>
<li>Session timeout is configurable, defaults to 15mins.</li>
<li><em>sudo -k</em> kills this session by simply removing the timestamp dir.</li>
</ul>
<p>All info is found in the <a href="http://linux.die.net/man/8/sudo">sudo(8)</a> and <a href="http://linux.die.net/man/5/sudoers">sudoers(5)</a> manpages</p>
<h2>Setuid and LD_LIBRARY_PATH</h2>
<p>Just a quick insight from my workplace: to my surprise, a setuid binary <a href="https://bugzilla.redhat.com/show_bug.cgi?id=129682#c1">deliberately ignores many environment variables</a> such as LD_LIBRARY_PATH and LD_PRELOAD.</p>
<p>Security Shmecurity..</p>
]]></content:encoded>
			<wfw:commentRss>http://www.held.org.il/blog/?feed=rss2&amp;p=212</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
