<?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>WebFramp &#187; dzen</title>
	<atom:link href="http://www.webframp.com/tag/dzen/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.webframp.com</link>
	<description>passing thoughts on the web</description>
	<lastBuildDate>Thu, 17 Sep 2009 19:34:20 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>The Non-Intrusive User Interface</title>
		<link>http://www.webframp.com/2008/11/28/the-non-intrusive-user-interface/</link>
		<comments>http://www.webframp.com/2008/11/28/the-non-intrusive-user-interface/#comments</comments>
		<pubDate>Fri, 28 Nov 2008 23:55:51 +0000</pubDate>
		<dc:creator>sean</dc:creator>
				<category><![CDATA[*nix]]></category>
		<category><![CDATA[musings]]></category>
		<category><![CDATA[xmonad]]></category>
		<category><![CDATA[dzen]]></category>
		<category><![CDATA[haskell]]></category>
		<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://www.webframp.com/?p=59</guid>
		<description><![CDATA[Technology as a whole should enable us. It should ease our daily tasks, offloading some of the burden, whether that be mental processing or physical expenditure. This should be especially true of computers our daily interactions bring us in contact with and more still when the bulk of our time is spent working with them. [...]]]></description>
			<content:encoded><![CDATA[<p>Technology as a whole should enable us. It should ease our daily tasks, offloading some of the burden, whether that be mental processing or physical expenditure. This should be especially true of computers our daily interactions bring us in contact with and more still when the bulk of our time is spent working with them. Personal computing should allow us to focus on a given task in a way that encourages us to accomplish more than we otherwise could. Every means of interaction within the system should support the task at hand with as little interference as possible.</p>
<p>Sadly this is not the state of computing for most users. The most popular <a title="Interface Metaphors" href="https://secure.wikimedia.org/wikipedia/en/wiki/Interface_metaphor">metaphors</a> in computing today &#8211; the desktop, the start menu, folders &#8211; and commonly learned ways of interacting with them &#8211; point and click with the mouse &#8211; actually discourage productivity and break concentration/focus from a task. The implementations of these ideas further this interruption. True most users now have been trained to reach for the mouse and their hand eye coordination is good enough to accomplish any given step within a reasonable time frame.</p>
<p>How though does the switch-tasking our brain does to accomplish these steps affect the flow of thought for the current project? Clearly the less divergent thoughts and less steps required for any single step, the less the thought process is diverted from the main task. Further while few people struggle to make the required movements with a mouse, what affect does the repetitive nature of the movement have on long term health and usage? No doubt anyone who uses a mouse on a daily basis for several hours has personally felt the strain on their wrist that naturally comes with such usage.</p>
<p>The modern computing user interface has become cluttered and distracting, albeit a composited, semi-transparent glossy distraction. The initial appeal of such common interface elements hides the distraction, disguises the intrusive elements. It&#8217;s as if the computer were telling you, &#8220;never mind this modal dialog that just interrupted your thought process, it&#8217;s so glossy it must be helpful&#8221;.</p>
<p>Consider the average means of launching a program. Is it really ideal to require the user to graphically navigate to some onscreen coordinate that receives instructions before thought is transferred to action? Doubtful. How much screen real estate is essentially wasted for interface elements that support this idea? And how much time is spent arranging or re-arranging the frequently less than ideal placement of windows within this paradigm? Most daily computer users quickly outgrow the nagging tedium of these interfaces, but have no option to adjust the defaults.</p>
<p>I personally prefer an interface that is minimal and stays out of the way. An interface that handles much of what we have come to think of as routine automatically. And one that is fully configurable and flexible enough to support interaction in the manner that works for best me. The <a title="Tiling Window Managers" href="https://secure.wikimedia.org/wikipedia/en/wiki/Tiling_window_manager">tiling window managers</a> available on Linux and specifically <a title="Xmonad" href="http://www.xmonad.org">Xmonad</a> support this beautifully.</p>
<p>With Xmonad window management is automatic. I do not have to think about window placement as every window is automatically arranged to take the best advantage of screen real estate based on simple rules that I have configured. I can call applications with a single keystroke and they appear exactly where and how I want them. I can send them away or bring them back to the current screen with little more than a gesture, not once having to remove my hands from their comfortable perch above the keyboard. Many applications do not play nicely with this idea though and try to force certain window behavior. For these few troublesome programs it a simple thing to always &#8220;float&#8221; them, so that they behave in much the same as with traditional window managers. All of it is easily configurable in <a title="Haskell" href="http://www.haskell.org">Haskell</a>, an advanced <a title="Functional programming" href="http://haskell.org/haskellwiki/Functional_programming">purely functional programming</a> language that is truly a joy to work with. Because of it concise syntax and clarity, I have been able to easily configure Xmonad to behave as I like, and it&#8217;s completely stable.</p>
<p>What is more, the means in which information is communicated is extremely configurable. I chose a minimal status bar using dzen, based on example <a title="dzen and Xmonad" href="http://dzen.geekmode.org/dwiki/doku.php?id=dzen:dzen-and-xmonad">scripts on the dzen wiki.</a> Information when, where, and how I want it.</p>
<p>I encourage everyone that is using Linux to try it. After just a short period of time, I&#8217;m sure you will agree that you are able to work in manner that is both non-intrusive and more productive.</p>
<ul>
<li><a title="My Xmonad configuration" href="http://haskell.org/haskellwiki/Xmonad/Config_archive/webframp%27s_xmonad.hs">My Xmonad configuration</a></li>
<li>A screenshot of the setup:</li>
<li><a href="http://haskell.org/sitewiki/images/1/14/Xmonad-desktop-webframp-scaled.jpg"><img class="alignnone" title="Xmonad Screenshot" src="http://haskell.org/sitewiki/images/1/14/Xmonad-desktop-webframp-scaled.jpg" alt="" width="455" height="170" /></a></li>
<li>
<p><div id="attachment_55" class="wp-caption alignnone" style="width: 110px"><a href="http://www.webframp.com/wp-content/uploads/2008/11/arch-xmonad-small.png"><img class="size-medium wp-image-55" title="arch-xmonad-small" src="http://www.webframp.com/wp-content/uploads/2008/11/arch-xmonad-small.png" alt="Arch+Xmonad = Crazy Delicious" width="100" height="100" /></a><p class="wp-caption-text">Arch+Xmonad = Crazy Delicious</p></div></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.webframp.com/2008/11/28/the-non-intrusive-user-interface/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Two months and still nothing to write home about.</title>
		<link>http://www.webframp.com/2008/11/14/two-months-and-still-nothing-to-write-home-about/</link>
		<comments>http://www.webframp.com/2008/11/14/two-months-and-still-nothing-to-write-home-about/#comments</comments>
		<pubDate>Sat, 15 Nov 2008 00:50:59 +0000</pubDate>
		<dc:creator>sean</dc:creator>
				<category><![CDATA[*nix]]></category>
		<category><![CDATA[dzen]]></category>
		<category><![CDATA[haskell]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[xmonad]]></category>

		<guid isPermaLink="false">http://www.webframp.com/?p=53</guid>
		<description><![CDATA[Been a while since the last update. I guess as the saying goes, &#8220;if you don&#8217;t have something good to say&#8230;&#8221; I have been learning haskell, using xmonad, and loving 64bit Arch Linux., so a few notes on each are in order. Haskell Haskell has been described as the algebra of programming, and is an [...]]]></description>
			<content:encoded><![CDATA[<p>Been a while since the last update. I guess as the saying goes, &#8220;if you don&#8217;t have something good to say&#8230;&#8221; I have been learning <a title="haskell" href="http://haskell.org/haskellwiki/Haskell">haskell</a>, using <a title="xmonad window manager" href="http://xmonad.org">xmonad</a>, and loving 64bit Arch Linux., so a few notes on each are in order.</p>
<h3>Haskell</h3>
<p>Haskell has been described as the algebra of programming, and is an advanced<a title="Functional Programming" href="http://haskell.org/haskellwiki/Functional_programming"> purely functional programming language</a>. If your a math/language geek like myself, it&#8217;s rights up your alley. It&#8217;s been a delight to delve deeper into a language I previously had only a passing familiarity with.</p>
<h3>Xmonad</h3>
<p><a title="xmonad window manager" href="http://xmonad.org/">Xmonad</a> is a lightweight tiling window manager writen entirely in haskell and it&#8217;s rock solid stable because of it. The configuration file itself is a dynamically compiled haskell module, which means your free to do whatever you can within the limits of your knowledge. That&#8217;s how it should be. There&#8217;s a very fully featured set of community contributed extensions, <a title="xmonad-contrib" href="http://xmonad.org/xmonad-docs/xmonad-contrib/">xmonad-contrib</a>, that provides many more extendable features and the community is helpful and intelligent. Both valuable traits.</p>
<h3>Arch Linux</h3>
<p>And finally <a title="Arch Linux" href="http://www.archlinux.org">Arch</a>. After a week or two of struggling with Ubuntu/apt and some outdated packages I was so fed up I switch. Rsync&#8217;d my entire home directory to my backup server one final time, and did a fresh install of 64 bit Arch. Now least of all its&#8217;s nice to have access to all 4GB of RAM in my laptop. Boot times are quicker too.</p>
<p>In all things are snappier, and that make me a happy person.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.webframp.com/2008/11/14/two-months-and-still-nothing-to-write-home-about/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Switch+dzen</title>
		<link>http://www.webframp.com/2008/08/17/switchdzen/</link>
		<comments>http://www.webframp.com/2008/08/17/switchdzen/#comments</comments>
		<pubDate>Sun, 17 Aug 2008 08:23:15 +0000</pubDate>
		<dc:creator>sean</dc:creator>
				<category><![CDATA[musings]]></category>
		<category><![CDATA[arch]]></category>
		<category><![CDATA[dzen]]></category>
		<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://www.webframp.com/?p=41</guid>
		<description><![CDATA[Well Ubunut Intrepid may turn out to be great, but the recent ubuntu upgrade on my part proved to me how tired I was of dealing with apt and it&#8217;s pkg management system. How many debian users actually know what it&#8217;s really doing? So I switched. To Arch. Lately it seems like every useful tip [...]]]></description>
			<content:encoded><![CDATA[<p>Well Ubunut Intrepid may turn out to be great, but the recent ubuntu upgrade on my part proved to me how tired I was of dealing with apt and it&#8217;s pkg management system. How many debian users actually know what it&#8217;s really doing?</p>
<p>So I switched. To Arch.</p>
<p>
Lately it seems like every useful tip I&#8217;ve gleaned has been from either the gentoo or arch wiki, so I had narrowed it down to one of the two. Both are appealing for their BSD style init systems and simple script based pacakge systems. Gentoo is full source though which, while not really a negative for most modern systems, was something I didn&#8217;t want to be restricted to. Arch allows a flexible binary or source build system, although the actual repo&#8217;s are binary. I love the rolling kernel too, no more waiting 6 months to get the latest, risking a broken system by upgrading in between.
</p>
<p>
In the process of switching I have fine-tuned things to the extreme. One of the tweaks is the battery status bar I use. It&#8217;s just a simple shell script that outputs formatted text to dzen2. It always bugged me that the script didn&#8217;t notice the charging state. After a simple little change, it does.
</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#!/bin/sh</span>
<span style="color: #666666; font-style: italic;">#</span>
<span style="color: #666666; font-style: italic;"># original script by lyon8 &amp;lt;lyon8@gmx.net&amp;gt;</span>
<span style="color: #666666; font-style: italic;"># modifications from original by &amp;lt;sean.escriva@gmail.com&amp;gt;</span>
<span style="color: #666666; font-style: italic;"># show your laptop battery state in dzen</span>
&nbsp;
<span style="color: #007800;">BG</span>=<span style="color: #ff0000;">'#1c2636'</span>  <span style="color: #666666; font-style: italic;"># dzen backgrounad</span>
<span style="color: #007800;">FG</span>=<span style="color: #ff0000;">'#99ffff'</span>  <span style="color: #666666; font-style: italic;"># dzen foreground</span>
<span style="color: #007800;">W</span>=<span style="color: #000000;">150</span>         <span style="color: #666666; font-style: italic;"># width of the dzen bar</span>
<span style="color: #007800;">GW</span>=<span style="color: #000000;">50</span>         <span style="color: #666666; font-style: italic;"># width of the gauge</span>
<span style="color: #007800;">GFG</span>=<span style="color: #ff0000;">'#33ccff'</span>  <span style="color: #666666; font-style: italic;"># color of the gauge</span>
<span style="color: #007800;">GH</span>=<span style="color: #000000;">7</span>          <span style="color: #666666; font-style: italic;"># height of the gauge</span>
<span style="color: #007800;">GBG</span>=<span style="color: #ff0000;">'#333'</span>    <span style="color: #666666; font-style: italic;"># color of gauge background</span>
<span style="color: #007800;">X</span>=<span style="color: #000000;">1770</span>        <span style="color: #666666; font-style: italic;"># x position</span>
<span style="color: #007800;">Y</span>=<span style="color: #000000;">1200</span>        <span style="color: #666666; font-style: italic;"># y position</span>
<span style="color: #007800;">FN</span>=<span style="color: #ff0000;">'snap'</span>     <span style="color: #666666; font-style: italic;"># font</span>
&nbsp;
<span style="color: #007800;">STATEFILE</span>=<span style="color: #ff0000;">'/proc/acpi/battery/BAT0/state'</span> <span style="color: #666666; font-style: italic;"># battery's state file</span>
<span style="color: #007800;">INFOFILE</span>=<span style="color: #ff0000;">'/proc/acpi/battery/BAT0/info'</span>   <span style="color: #666666; font-style: italic;"># battery's info file</span>
&nbsp;
<span style="color: #007800;">LOWBAT</span>=<span style="color: #000000;">25</span>        <span style="color: #666666; font-style: italic;"># percentage of battery life marked as low</span>
<span style="color: #007800;">LOWCOL</span>=<span style="color: #ff0000;">'#ff4747'</span> <span style="color: #666666; font-style: italic;"># color when battery is low</span>
<span style="color: #007800;">CHGCOL</span>=<span style="color: #ff0000;">'#60da11'</span> <span style="color: #666666; font-style: italic;"># color when battery is charging</span>
<span style="color: #007800;">TIME_INT</span>=<span style="color: #000000;">1</span>       <span style="color: #666666; font-style: italic;"># time intervall in seconds</span>
&nbsp;
<span style="color: #007800;">PREBAR</span>=<span style="color: #ff0000;">'^i(/home/webframp/.dzen/icons/dzen_bitmaps/battery.xbm) '</span> <span style="color: #666666; font-style: italic;"># caption (also icons are possible)</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">while</span> <span style="color: #c20cb9; font-weight: bold;">true</span>; <span style="color: #000000; font-weight: bold;">do</span>
<span style="color: #666666; font-style: italic;"># look up battery's data</span>
<span style="color: #007800;">BAT_FULL</span>=<span style="color: #000000; font-weight: bold;">`</span><span style="color: #c20cb9; font-weight: bold;">cat</span> <span style="color: #007800;">$INFOFILE</span><span style="color: #000000; font-weight: bold;">|</span><span style="color: #c20cb9; font-weight: bold;">grep</span> design<span style="color: #000000; font-weight: bold;">|</span>line<span style="color: #000000; font-weight: bold;">|</span><span style="color: #c20cb9; font-weight: bold;">cut</span> <span style="color: #660033;">-d</span> <span style="color: #ff0000;">&quot; &quot;</span> <span style="color: #660033;">-f</span> <span style="color: #000000;">11</span><span style="color: #000000; font-weight: bold;">`</span>;
<span style="color: #007800;">STATUS</span>=<span style="color: #000000; font-weight: bold;">`</span><span style="color: #c20cb9; font-weight: bold;">cat</span> <span style="color: #007800;">$STATEFILE</span><span style="color: #000000; font-weight: bold;">|</span><span style="color: #c20cb9; font-weight: bold;">grep</span> charging<span style="color: #000000; font-weight: bold;">|</span><span style="color: #c20cb9; font-weight: bold;">cut</span> <span style="color: #660033;">-d</span> <span style="color: #ff0000;">&quot; &quot;</span> <span style="color: #660033;">-f</span> <span style="color: #000000;">12</span><span style="color: #000000; font-weight: bold;">`</span>;
<span style="color: #007800;">RCAP</span>=<span style="color: #000000; font-weight: bold;">`</span><span style="color: #c20cb9; font-weight: bold;">cat</span> <span style="color: #007800;">$STATEFILE</span><span style="color: #000000; font-weight: bold;">|</span><span style="color: #c20cb9; font-weight: bold;">grep</span> remaining<span style="color: #000000; font-weight: bold;">|</span><span style="color: #c20cb9; font-weight: bold;">cut</span> <span style="color: #660033;">-d</span> <span style="color: #ff0000;">&quot; &quot;</span> <span style="color: #660033;">-f</span> <span style="color: #000000;">8</span><span style="color: #000000; font-weight: bold;">`</span>;
&nbsp;
<span style="color: #666666; font-style: italic;"># calculate remaining power</span>
<span style="color: #007800;">RPERCT</span>=<span style="color: #000000; font-weight: bold;">`</span><span style="color: #c20cb9; font-weight: bold;">expr</span> <span style="color: #007800;">$RCAP</span> \<span style="color: #000000; font-weight: bold;">*</span> <span style="color: #000000;">100</span><span style="color: #000000; font-weight: bold;">`</span>;
<span style="color: #007800;">RPERC</span>=<span style="color: #000000; font-weight: bold;">`</span><span style="color: #c20cb9; font-weight: bold;">expr</span> <span style="color: #007800;">$RPERCT</span> <span style="color: #000000; font-weight: bold;">/</span> <span style="color: #007800;">$BAT_FULL</span><span style="color: #000000; font-weight: bold;">`</span>;
&nbsp;
<span style="color: #666666; font-style: italic;"># draw the bar and pipe everything into dzen</span>
<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #007800;">$RPERC</span> <span style="color: #660033;">-le</span> <span style="color: #007800;">$LOWBAT</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span>; <span style="color: #000000; font-weight: bold;">then</span>
<span style="color: #007800;">GFG</span>=<span style="color: #007800;">$LOWCOL</span>;
<span style="color: #000000; font-weight: bold;">fi</span>
<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #007800;">$STATUS</span> = <span style="color: #ff0000;">'charging'</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span>; <span style="color: #000000; font-weight: bold;">then</span>
<span style="color: #007800;">GFG</span>=<span style="color: #007800;">$CHGCOL</span>;
<span style="color: #000000; font-weight: bold;">else</span>
<span style="color: #007800;">GFG</span>=<span style="color: #ff0000;">'#33ccff'</span>;
<span style="color: #000000; font-weight: bold;">fi</span>
<span style="color: #666666; font-style: italic;">#echo -n $PREBAR #uncomment for an icon</span>
<span style="color: #7a0874; font-weight: bold;">eval</span> <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #007800;">$RPERC</span> <span style="color: #000000; font-weight: bold;">|</span> gdbar <span style="color: #660033;">-h</span> <span style="color: #007800;">$GH</span> <span style="color: #660033;">-w</span> <span style="color: #007800;">$GW</span> <span style="color: #660033;">-fg</span> <span style="color: #007800;">$GFG</span> <span style="color: #660033;">-bg</span> <span style="color: #007800;">$GBG</span>
<span style="color: #c20cb9; font-weight: bold;">sleep</span> <span style="color: #007800;">$TIME_INT</span>;
<span style="color: #000000; font-weight: bold;">done</span> <span style="color: #000000; font-weight: bold;">|</span> dzen2 <span style="color: #660033;">-ta</span> c <span style="color: #660033;">-tw</span> <span style="color: #007800;">$W</span> <span style="color: #660033;">-y</span> <span style="color: #007800;">$Y</span> <span style="color: #660033;">-x</span> <span style="color: #007800;">$X</span> <span style="color: #660033;">-fg</span> <span style="color: #007800;">$FG</span> <span style="color: #660033;">-bg</span> <span style="color: #007800;">$BG</span> <span style="color: #660033;">-fn</span> <span style="color: #007800;">$FN</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://www.webframp.com/2008/08/17/switchdzen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
