<?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>I, Engineer &#187; lubkin</title>
	<atom:link href="https://blog.unreasonable.com/author/lubkin/feed/" rel="self" type="application/rss+xml" />
	<link>https://blog.unreasonable.com</link>
	<description>engineering is a way of life</description>
	<lastBuildDate>Wed, 25 Feb 2015 02:27:52 +0000</lastBuildDate>
	<language>en-US</language>
		<sy:updatePeriod>hourly</sy:updatePeriod>
		<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.0.38</generator>
	<item>
		<title>Stephen Hawking and Me</title>
		<link>https://blog.unreasonable.com/stephen-hawking-and-me/</link>
		<comments>https://blog.unreasonable.com/stephen-hawking-and-me/#comments</comments>
		<pubDate>Tue, 24 Feb 2015 21:44:41 +0000</pubDate>
		<dc:creator><![CDATA[lubkin]]></dc:creator>
				<category><![CDATA[Miscellanea]]></category>
		<category><![CDATA[biography]]></category>
		<category><![CDATA[physics]]></category>

		<guid isPermaLink="false">http://blog.unreasonable.com/?p=640</guid>
		<description><![CDATA[Eddie Redmayne&#8217;s Best Actor win at Sunday&#8217;s Oscars for portraying Stephen Hawking in The Theory of Everything has reminded me of a footnote to the story. I segued to computer science from linguistics and math. In my application to graduate school, I painted an I-meant-to-do-that portrait of my academic path.... <a href="https://blog.unreasonable.com/stephen-hawking-and-me/" class="readmore">Read more</a>]]></description>
				<content:encoded><![CDATA[<aside class="postimage"><a href="https://en.wikipedia.org/wiki/Stephen_Hawking" title="Wikipedia profile of Stephen Hawking"><img src="http://blog.unreasonable.com/wp-content/uploads/2015/02/hawking.jpg" width="250" height="359" alt="" /></a></aside>
<section>Eddie Redmayne&#8217;s Best Actor win at Sunday&#8217;s Oscars for portraying <a href="https://en.wikipedia.org/wiki/Stephen_Hawking" title="Wikipedia profile of Stephen Hawking">Stephen Hawking</a> in <a href="http://www.imdb.com/title/tt2980516" title="IMDB entry for The Theory of Everything">The Theory of Everything</a> has reminded me of a footnote to the story.</p>
<p>I segued to computer science from linguistics and math. In my application to graduate school, I painted an I-meant-to-do-that portrait of my academic path. How I wanted to use computers for natural language understanding. So when I started my master&#8217;s at Michigan State in 1979, the department assigned <a href="http://linglang.msu.edu/people/faculty/john-eulenberg/" title="Professor John Eulenberg's faculty page at Michigan State University">John Eulenberg</a> as my advisor. He was director of the <a href="https://www.msu.edu/~artlang/ title="Artificial Language Laboratory at Michigan State University">Artificial Language Laboratory</a>. </p>
<p>Dr. Eulenberg&#8217;s passion is inventing ways that computers could bring speech to those who couldn&#8217;t speak. Starting with designing the system that in 1974 yielded <a href="https://www.youtube.com/watch?v=94d_h_t2QAA" title="Donald Sherman orders a pizza using a talking computer, Dec 4, 1974">the first use of a speech prosthetic</a>.</p>
<p>My mother, as editor of <a href="http://scitation.aip.org/content/aip/magazine/physicstoday"><em>Physics Today</em></a>, was always telling me stories from the physics world. Through her, I first learned of Stephen Hawking. And how the only way he had to speak was through his wife and graduate assistants, who could interpret his incoherent speech for the rest of us.<span id="more-640"></span></p>
<p>Eventually it dawned on me that Dr. Eulenberg&#8217;s work would be perfect for Hawking. I confirmed with my mother that we could connect the two. I asked her not to say anything until I checked with Eulenberg. I didn&#8217;t imagine he&#8217;d say no. How wonderful would it be to bring a voice back to such a brilliant mind? But one should ask.</p>
<p>I asked. He said no.</p>
<p>As he explained it to me, from his perspective, we&#8217;re all of equal worth. Hawking (at the time) didn&#8217;t <em>need</em> his help. Thanks to his eminence in the scientific world, he already had human assistance. Eulenberg&#8217;s concern was for those who had nothing. Many of whom he has helped over the years.</p>
<p>I accepted his answer and didn&#8217;t bring it up again.</p>
<p>About six years later, Hawking lost his voice altogether. He was helped by another speech synthesis pioneer, <a href="https://www.linkedin.com/pub/walter-woltosz/2b/416/51" title="Walter Woltosz's LinkedIn profile">Walt Woltosz</a>, founder and CEO of <a href="http://www.simulations-plus.com/">Simulations Plus</a>.</p>
<p>So it all worked out. But I wonder what the other path would have been like.</section>
]]></content:encoded>
			<wfw:commentRss>https://blog.unreasonable.com/stephen-hawking-and-me/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Don&#8217;t blink.</title>
		<link>https://blog.unreasonable.com/dont-blink/</link>
		<comments>https://blog.unreasonable.com/dont-blink/#comments</comments>
		<pubDate>Tue, 13 Jan 2015 03:28:27 +0000</pubDate>
		<dc:creator><![CDATA[lubkin]]></dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Usability]]></category>

		<guid isPermaLink="false">http://blog.unreasonable.com/?p=588</guid>
		<description><![CDATA[Blinking is notorious as the least justifiable behavior on a web page. (But don&#8217;t blame Lou Montulli, who came up with the idea.) It&#8217;s also]]></description>
				<content:encoded><![CDATA[<aside class="postimage"><a href="http://php.net/manual/en/language.types.boolean.php#100628" title="Usability problem in context"><img src="http://blog.unreasonable.com/wp-content/uploads/2015/01/php01b.jpg" width="300" height="405" alt="" /></a></aside>
<section>Blinking is notorious as the least justifiable behavior on a web page. (But don&#8217;t blame Lou Montulli, who <a href="http://gizmodo.com/5903827/the-humble-origins-of-the-html-blink-tag">came up with the idea</a>.)</p>
<p>It&#8217;s also <a href="http://www.oxforddictionaries.com/us/definition/english/blinking title="Oxford definition">British slang</a> for <em>annoying</em>.</p>
<p>I just looked up something in the <a href="http://php.net/manual/en/">online documentation</a> for PHP. Pages are generally clean and usable as they appear in the browser, although there are a few poor practices if you look at the underlying HTML.</p>
<p>However. Take a look at <a href="http://php.net/manual/en/language.types.boolean.php">a typical page.</a> Below each formal section are (often useful) comments. Try moving the focus down the page different ways&mdash;scrolling, moving the mouse, page down. One comment at a time appears in dark colors. The other comments are pale and washed out until you move the focus to them. Then, over 0.4 seconds, they become opaque and readable.</p>
<p>And most of the goodwill from how well thought-out the rest is is squandered. </p>
<p>There is no reason to make text unreadable. And less still to waste the user&#8217;s time as they&#8217;re made readable. </p>
<p>Since transitions are new to CSS3, my guess is that programmers were playing. As they had in 1994 with <code>&lt;blink&gt;</code>.</p>
<p>Playing is fine. </p>
<p>Then someone in the room has to say it&#8217;s great to know we can do this if we ever need it. But we don&#8217;t now. So take it out.</section>
]]></content:encoded>
			<wfw:commentRss>https://blog.unreasonable.com/dont-blink/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Talk to users</title>
		<link>https://blog.unreasonable.com/talk-to-users/</link>
		<comments>https://blog.unreasonable.com/talk-to-users/#comments</comments>
		<pubDate>Fri, 02 Jan 2015 16:52:56 +0000</pubDate>
		<dc:creator><![CDATA[lubkin]]></dc:creator>
				<category><![CDATA[Miscellanea]]></category>

		<guid isPermaLink="false">http://blog.unreasonable.com/?p=377</guid>
		<description><![CDATA[When I am talking to someone who is using software in a customer-facing context&#8212;a librarian, a pharmacist, a customer service rep, a cashier&#8212;I like to ask them about it. Are there tasks you need to do every day that are hard to do in the software, that you&#8217;ve learned a... <a href="https://blog.unreasonable.com/talk-to-users/" class="readmore">Read more</a>]]></description>
				<content:encoded><![CDATA[<p>When I am talking to someone who is using software in a customer-facing context&mdash;a librarian, a pharmacist, a customer service rep, a cashier&mdash;I like to ask them about it. Are there tasks you need to do every day that are hard to do in the software, that you&#8217;ve learned a cumbersome hack around?</p>
<p>Every time the answer is yes. <em>Every time.</em></p>
<p>Today it was a rep who needed to reschedule an appointment for me. She had to write down all the particulars from the existing appointment, cancel it, and then book the appointment all over.</p>
<p>Where a sane design recognizes that customers reschedule appointments a lot. Add a reschedule command. And support direct manipulation for the many cases when the change is simple. Show the appointment on a calendar that gives visual cues to what openings are available. Use the mouse to drag the appointment to a new date.</p>
<p>My library is using new software for circulation. If a book&#8217;s barcode is scanned twice, the second scan is treated by the program as a renewal of the book. </p>
<p>Librarians get distracted. They will forget if they&#8217;d scanned a book. A sensible engineer anticipates this and does the right thing, which is to ignore the second scan altogether. Don&#8217;t try to check it out again. Don&#8217;t report an error. Just ignore it.</p>
<p>I suspect that the problem is that no one thinks about what the people who use the software will actually do with it in a typical day, sits down with them and asks, or watches them doing their job.</p>
<p>This is not hard to do. It is not expensive or time-consuming. And it can make everyone along the way happier and more effective.</p>
]]></content:encoded>
			<wfw:commentRss>https://blog.unreasonable.com/talk-to-users/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>All in the Family &#8211; Samuel Becker</title>
		<link>https://blog.unreasonable.com/samuel-becker-profile/</link>
		<comments>https://blog.unreasonable.com/samuel-becker-profile/#comments</comments>
		<pubDate>Tue, 30 Dec 2014 23:11:21 +0000</pubDate>
		<dc:creator><![CDATA[lubkin]]></dc:creator>
				<category><![CDATA[Miscellanea]]></category>
		<category><![CDATA[family]]></category>
		<category><![CDATA[profile]]></category>

		<guid isPermaLink="false">http://blog.unreasonable.com/?p=557</guid>
		<description><![CDATA[In telling you about the many engineers and scientists in my family, my father&#8217;s father, Samuel Lubkin, would be an obvious person to start with. But I think that one who was neither is a better choice. My mother&#8217;s father, Samuel Becker, had wanted to be an engineer. He had... <a href="https://blog.unreasonable.com/samuel-becker-profile/" class="readmore">Read more</a>]]></description>
				<content:encoded><![CDATA[<aside class="postimage"><a href="http://blog.unreasonable.com/wp-content/uploads/2014/12/samuel-becker.jpg" title="Samuel Becker"><img src="http://blog.unreasonable.com/wp-content/uploads/2014/12/samuel-becker-200x340.jpg" width="200" height="340" /></a></aside>
<section>In telling you about the many engineers and scientists in my family, my father&#8217;s father, Samuel Lubkin, would be an obvious person to start with. But I think that one who was neither is a better choice.</p>
<p>My mother&#8217;s father, Samuel Becker, had wanted to be an engineer. He had to quit school early to help support the family. Still, he always loved gadgets and science.</p>
<p>My uncle and my mother discovered chemistry in the darkroom of Sam&#8217;s portrait studio. He grew up to become a chemical engineer. His kid sister went into nuclear physics before taking a job at <a href="http://scitation.aip.org/content/aip/magazine/physicstoday"><cite>Physics Today</cite></a>, where she reported on physics for 45 years.</p>
<p>I, too, learned to develop pictures. And watched <cite>Star Trek</cite> with him, which we both loved.</p>
<p>I&#8217;m proud to be in Sam Lubkin&#8217;s profession. But it was Sam Becker who planted the seed.<br />
</section>
]]></content:encoded>
			<wfw:commentRss>https://blog.unreasonable.com/samuel-becker-profile/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Programming without coercion</title>
		<link>https://blog.unreasonable.com/programming-without-coercion/</link>
		<comments>https://blog.unreasonable.com/programming-without-coercion/#comments</comments>
		<pubDate>Mon, 29 Dec 2014 21:27:19 +0000</pubDate>
		<dc:creator><![CDATA[lubkin]]></dc:creator>
				<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://blog.unreasonable.com/?p=234</guid>
		<description><![CDATA[One of my core values is clarity. Clarity in what you think, what you write, what you say. In programming, this means clarity in your code. What you write should equally make sense to compilers and people. I remember one program. What they used to call dusty deck, after the... <a href="https://blog.unreasonable.com/programming-without-coercion/" class="readmore">Read more</a>]]></description>
				<content:encoded><![CDATA[<aside class="postimage"><a href="http://www.amazon.com/gp/product/0201485672/ref=as_li_tl?ie=UTF8&#038;camp=1789&#038;creative=9325&#038;creativeASIN=0201485672&#038;linkCode=as2&#038;tag=unreasonablesoft&#038;linkId=V6K4JHKP3ACE4KNQ" title="Refactoring: Improving the Design of Existing Code (on Amazon)"><img src="http://blog.unreasonable.com/wp-content/uploads/2014/12/refactoring-martin-fowler.jpg" width="196" height="250" class="bordered"/></a></aside>
<section>One of my core values is clarity. Clarity in what you think, what you write, what you say. In programming, this means clarity in your code. What you write should equally make sense to compilers and people.</p>
<p>I remember one program. What they used to call <em>dusty deck</em>, after the deck of punched cards they were on. Dusty from years sitting on a shelf. It had one constant for two very different purposes. The equivalent of using <em>foo</em> for both the range of values for the month and for the hour in a date-time because they both happen to be 12. Lots of luck in Israel, where the Hebrew calendar (1..13) and military time (0..23) are often used.</p>
<p><span id="more-234"></span></p>
<p>Your intentions should always be clear to the engineer who has to work on your code after you. Or port it to another language or another operating system. And to the compiler that has to generate valid instructions.</p>
<p>Don&#8217;t rely on implicit type conversion, with the possible exception of upsizing, e..g., upsizing an <code>int</code> to a <code>long</code>.</p>
<p>Your programming language might have standardized rules for what happens if you write <code>7 + "5"</code>. Which, by the way, may not be the same as if you write <code>"7" + 5</code>. Don&#8217;t rely on this without an awfully good reason. That it works now is no guarantee it works everywhere and everywhen or will be obvious to whoever looks at your code.</p>
<p>Don&#8217;t rely on how an empty string or a zero or NULL pointer is treated in a Boolean context. Explicitly convert it to Boolean so that your intent is clear and your code isn&#8217;t dependent on language minutiae. You need to <em>know</em> what <code>if (object)</code> does, if only because the language has idioms other people will use. But <code>if (object != NULL)</code> is clearer.</p>
<p>Like most rules, there are exceptions, and it&#8217;s a judgment call. If the language generates a Boolean value for <code>a || b</code>, then you might as well make it <code>a || bool(b)</code>.</p>
<p>But if the result of <code>||</code> is the actual value of the first operand that doesn&#8217;t evaluate to FALSE, then you have the useful idiom:</p>
<p class="blogcode"><code>result = maybe_empty || "default value";</code></p>
<p>Which is more graceful than:</p>
<p class="blogcode"><code>result = (object != NULL) ? object : "default value";</code></p>
<p>Also, if you&#8217;re working on code that follows an established style, follow the style not the rule. There&#8217;s a higher rule: <strong>Standard is better than better.</strong></p>
</section>
]]></content:encoded>
			<wfw:commentRss>https://blog.unreasonable.com/programming-without-coercion/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Check the price tag</title>
		<link>https://blog.unreasonable.com/check-the-price-tag/</link>
		<comments>https://blog.unreasonable.com/check-the-price-tag/#comments</comments>
		<pubDate>Fri, 26 Dec 2014 15:35:03 +0000</pubDate>
		<dc:creator><![CDATA[lubkin]]></dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[databases]]></category>
		<category><![CDATA[distributed computing]]></category>

		<guid isPermaLink="false">http://blog.unreasonable.com/?p=389</guid>
		<description><![CDATA[On The West Wing, in &#8220;Guns Not Butter,&#8221; Charlie&#8212;who I see as the series&#8217; protagonist&#8212;tries to reach a pal to ask him a simple question and triggers a memo from the Secretary of Defense, CC&#8217;ed to the Joint Chiefs and the Secretary of State. Delegation is a basic principle of... <a href="https://blog.unreasonable.com/check-the-price-tag/" class="readmore">Read more</a>]]></description>
				<content:encoded><![CDATA[<aside class="postimage"><a href="http://www.imdb.com/title/tt0745627"><img src="http://blog.unreasonable.com/wp-content/uploads/2014/12/charlie-young.jpg" width="231" height="350" /></a></aside>
<section>On The West Wing, in &#8220;Guns Not Butter,&#8221; Charlie&mdash;who I see as the series&#8217; protagonist&mdash;tries to reach a pal to ask him a simple question and triggers a memo from the Secretary of Defense, CC&#8217;ed to the Joint Chiefs and the Secretary of State.</p>
<p>Delegation is a basic principle of engineering. Do what you need and don&#8217;t tell you the details.</p>
<p>But sometimes you need the details.</p>
<p>Would you like me to arrange for someone to pick you up? It would be my pleasure. Did I not mention that we&#8217;ll charge your account $2,500 for the service? I&#8217;m sorry, but you should have asked.<span id="more-389"></span></p>
<p>It&#8217;s very convenient if you can invoke a remote procedure call as if it were a local call to a page in memory. Or access a file across the Internet with the same <code>fopen()</code> call as you&#8217;d use for one on an attached hard disk.</p>
<p>Not so much as the cost rises a thousand- or a billion-fold.</p>
<p>A great deal of effort has gone into trying to shield programmers from learning the data definition, manipulation, stored procedure, and query languages of the DBMS their system is built on.</p>
<p>Why bother? They&#8217;re not that hard to learn and get good at.</p>
<p>More importantly, there are common situations where switching from shipping the data across to analyze in your program and analyzing it in a stored procedure within a database server process drops the cost in network traffic from terabytes to a few KB.</p>
<p>Don&#8217;t bend down to pick up pennies. But understand the implications of what you do well enough to know if there&#8217;s serious money involved.</section>
]]></content:encoded>
			<wfw:commentRss>https://blog.unreasonable.com/check-the-price-tag/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Quotations about engineering, part 1</title>
		<link>https://blog.unreasonable.com/quotations-about-engineering-part-1/</link>
		<comments>https://blog.unreasonable.com/quotations-about-engineering-part-1/#comments</comments>
		<pubDate>Thu, 25 Dec 2014 16:42:01 +0000</pubDate>
		<dc:creator><![CDATA[lubkin]]></dc:creator>
				<category><![CDATA[Miscellanea]]></category>
		<category><![CDATA[Heinlein]]></category>
		<category><![CDATA[quotations]]></category>

		<guid isPermaLink="false">http://blog.unreasonable.com/?p=413</guid>
		<description><![CDATA[I am, and ever will be, a white socks, pocket protector, nerdy engineer. And I take a substantial amount of pride in the accomplishments of my profession. &#8212;Neil Armstrong, &#8220;Engineering in the 20th Century&#8221;, National Press Club, 22 Feb 2000 It seemed to me that, in this business, someone was... <a href="https://blog.unreasonable.com/quotations-about-engineering-part-1/" class="readmore">Read more</a>]]></description>
				<content:encoded><![CDATA[<aside class="postimage"><img src="http://blog.unreasonable.com/wp-content/uploads/2014/12/neil-armstrong.jpg" width="300" height="207" alt="" /></aside>
<section>
<blockquote><p>I am, and ever will be, a white socks, pocket protector, nerdy engineer. And I take a substantial amount of pride in the accomplishments of my profession.<br />
&mdash;Neil Armstrong, <a href="http://www.c-span.org/video/?155533-1/engineering-20th-century" title="Neil Armstrong address at the National Press Club (C-Span)">&#8220;Engineering in the 20th Century&#8221;</a>, National Press Club, <time datetime="2000-02-22">22 Feb 2000</time></p></blockquote>
<blockquote><p>It seemed to me that, in this business, someone was continually making me face up to facts, instead of letting me dodge unpleasant facts the way most people manage to do throughout their lives.<br />
&mdash;Robert A. Heinlein, <a href="http://www.amazon.com/gp/product/0671577808/ref=as_li_tl?ie=UTF8&#038;camp=1789&#038;creative=9325&#038;creativeASIN=0671577808&#038;linkCode=as2&#038;tag=unreasonablesoft&#038;linkId=DNYBYSKBNXTMI4ZN" title="Revolt in 2100 &#038; Methuselah's Children (on Amazon)"</a>&#8220;If This Goes On&mdash;&#8221;</a>, <cite>Astounding Science Fiction</cite>, <time datetime="1940-02">Feb</time>-<time datetime="1940-03">Mar 1940</time></p></blockquote>
<blockquote><p>If you&#8217;re not being rejected regularly, maybe you&#8217;re not trying hard enough.<br />
&mdash;Kathy Ireland, <a href="https://www.youtube.com/watch?v=KnEbqRkDRfA" title="Kathy Ireland on The Talk (YouTube)"<cite>The Talk</cite></a>, <time datetime="2011-08-04">4 Aug 2011</time></p></blockquote>
<blockquote><p>Being ignorant is not so much a shame, as being unwilling to learn.<br />
&mdash;Benjamin Franklin, <a href="http://www.amazon.com/gp/product/0486408914/ref=as_li_tl?ie=UTF8&#038;camp=1789&#038;creative=9325&#038;creativeASIN=0486408914&#038;linkCode=as2&#038;tag=unreasonablesoft&#038;linkId=3WPGSZUCSZI55IQI" title="Wit and Wisdom from Poor Richard's Almanack (on Amazon)"<cite>Poor Richard&#8217;s Almanack</cite></a>, <time datetime="1755">1755</time></p></blockquote>
<blockquote><p>&#8220;Can you and your people do it, Captain Tyrosian?&#8221; he asked at the end. &#8220;I know this is a very difficult engineering challenge with a very short time line, and I&#8217;m told it&#8217;s the sort of thing only the best weapons engineers can handle.&#8221; He could scarcely be more blatant, but it didn&#8217;t seem to be a good time for subtlety. Besides, he was dealing with an engineer, so subtlety might well be wasted anyway.<br />
&mdash;Jack Campbell, <a href="http://www.amazon.com/gp/product/0441016197/ref=as_li_tl?ie=UTF8&#038;camp=1789&#038;creative=9325&#038;creativeASIN=0441016197&#038;linkCode=as2&#038;tag=unreasonablesoft&#038;linkId=YCUXYC6OECOBVHDI" title="The Lost Fleet: Valiant (on Amazon)"><cite>The Lost Fleet: Valiant</cite></a>, <time datetime="2008">2008</time></p></blockquote>
</section>
]]></content:encoded>
			<wfw:commentRss>https://blog.unreasonable.com/quotations-about-engineering-part-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Give us a sign</title>
		<link>https://blog.unreasonable.com/give-us-a-sign/</link>
		<comments>https://blog.unreasonable.com/give-us-a-sign/#comments</comments>
		<pubDate>Wed, 24 Dec 2014 18:28:41 +0000</pubDate>
		<dc:creator><![CDATA[lubkin]]></dc:creator>
				<category><![CDATA[Usability]]></category>

		<guid isPermaLink="false">http://blog.unreasonable.com/?p=231</guid>
		<description><![CDATA[For my money, businesses never have enough signs. To answer: Where am I? Where is the section I&#8217;m looking for? Where are the bathrooms, an open register, the entrance by where I parked? Signs should use words. Then color as a redundant cue. (Some people are color-blind.) Then icons. (Most... <a href="https://blog.unreasonable.com/give-us-a-sign/" class="readmore">Read more</a>]]></description>
				<content:encoded><![CDATA[<aside class="postimage"><a href="http://www.amazon.com/gp/product/0596528108/ref=as_li_tl?ie=UTF8&#038;camp=1789&#038;creative=9325&#038;creativeASIN=0596528108&#038;linkCode=as2&#038;tag=unreasonablesoft&#038;linkId=OM5LQR37LKYXCIBY"><img src="http://blog.unreasonable.com/wp-content/uploads/2014/12/designing-web-navigation.jpg" width="220" height="250" title="Designing Web Navigation (on Amazon)"/></a></aside>
<section>For my money, businesses never have enough signs. To answer: Where am I? Where is the section I&#8217;m looking for? Where are the bathrooms, an open register, the entrance by where I parked?</p>
<p>Signs should use words. Then color as a redundant cue. (Some people are color-blind.) Then icons. (Most icons aren&#8217;t as recognizable as <img src="http://upload.wikimedia.org/wikipedia/commons/0/0c/Wheelchair_symbol.svg" height="13" width="13"/>.)</p>
<p>Use walls, end-caps, shelves, and the floor. While it doesn&#8217;t help the color-blind, I love the cue of colored tape on the ground I can follow from here to my destination. Well-designed maps, with You Are Here marked, a legend, and an index. A floor directory at each entrance, and in every elevator. Single-floor directories at the top and bottom of every escalator. A grid system.</p>
<p>If possible, when an item could logically be located in more than one place, put copies in both. If you can&#8217;t, put a sign in one place that directs customers to the other. This is especially useful when you have to follow a system that may not make sense to them.<span id="more-231"></span></p>
<p>For instance, since most computer books are shelved under the Dewey Decimal System near 005, have a sign that alerts patrons to the fact that some are also at 620.</p>
<p>There&#8217;s an exasperating fad in retail of regularly reorganizing what&#8217;s where in the store. Apparently timed to be maximally frustrating for customers who&#8217;ve just learned where everything is. Sometimes there&#8217;ll be maps of what&#8217;s where now. I have never seen signs where something was, telling me where it is now.</p>
<p>I understand the logic of making customers wander, in expectation that they&#8217;ll find more things to buy along the way to what they came for. That&#8217;s why perishables are at opposite ends of a supermarket&mdash;so every customer has to walk the length of the store every time.</p>
<p>But it also ticks people off. Who may just leave without buying anything, and go to a store that&#8217;s been designed to be helpful.</p>
<p>All of this applies to web sites. Do old internal links still work? Do stale links on the site redirect (HTTP status 301) to their new location? Is the 404 page helpful? Is there a sitemap? Are there both simple and power searches? Categories and tags? Bread crumbs? Are your buttons strictly icons? Or are they all accompanied by text, either always visible or as tooltip? Is color a redundant cue?</section>
]]></content:encoded>
			<wfw:commentRss>https://blog.unreasonable.com/give-us-a-sign/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Clever Hans</title>
		<link>https://blog.unreasonable.com/clever-hans/</link>
		<comments>https://blog.unreasonable.com/clever-hans/#comments</comments>
		<pubDate>Tue, 23 Dec 2014 17:58:36 +0000</pubDate>
		<dc:creator><![CDATA[lubkin]]></dc:creator>
				<category><![CDATA[Leading projects]]></category>
		<category><![CDATA[LLNL]]></category>
		<category><![CDATA[obituary]]></category>
		<category><![CDATA[profile]]></category>

		<guid isPermaLink="false">http://blog.unreasonable.com/?p=326</guid>
		<description><![CDATA[Hans R. Bruijnes Hans R. Bruijnes of Livermore died peacefully on February 12, 2014 from complications of congestive heart failure.&#160;&#160;More Physicist John Killeen was director of the National Magnetic Fusion Energy Computer Center (NMFECC) at Lawrence Livermore National Laboratory, but deputy director Hans Bruijnes was our day-to-day boss. The morning... <a href="https://blog.unreasonable.com/clever-hans/" class="readmore">Read more</a>]]></description>
				<content:encoded><![CDATA[<aside class="postimage"><a href="http://www.independentnews.com/obituaries/article_d607efb8-9a45-11e3-99ad-001a4bcf887a.html"><img src="http://blog.unreasonable.com/wp-content/uploads/2014/12/hans-bruijnes.jpg" width="281" height="405" title="Hans R. Bruijnes (1927-2014)" /></a></p>
<h2>Hans R. Bruijnes</h2>
<p>Hans R. Bruijnes of Livermore died peacefully on February 12, 2014 from complications of congestive heart failure.&nbsp;&nbsp;<a href="http://www.independentnews.com/obituaries/article_d607efb8-9a45-11e3-99ad-001a4bcf887a.html" title="Hans R. Bruijnes (1927-2014)">More</a></p>
</aside>
<section>Physicist John Killeen was director of the <a href="https://www.nersc.gov/" title="Now known as the National Energy Research Computer Center (NERSC)">National Magnetic Fusion Energy Computer Center (NMFECC)</a> at Lawrence Livermore National Laboratory, but deputy director Hans Bruijnes was our day-to-day boss.</p>
<p>The morning would almost always start with a Hans-led all-hands meeting. It usually felt like a waste of time. But he believed in it. We should come together every day as a team, and all know what everyone was working on and what the key issues were.</p>
<p>Hans was a great practitioner of management by walking around, long before it became popular. He&#8217;d randomly stop by your office, ask what you were up to. Occasionally confusing matters by telling you to do X when your group leader had told you to do Y. Eminently mockable, but always with affection and respect.</p>
<p>I wish I&#8217;d known all the backstory in his obit when I&#8217;d see him every day. Find a long lunch at the <a href="http://www.concannonvineyard.com/">Concannon winery</a> to hear his version.</p>
<p>A good man, who will be missed by anyone who knew him.<br />
</section>
]]></content:encoded>
			<wfw:commentRss>https://blog.unreasonable.com/clever-hans/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Emacs, also a way of life</title>
		<link>https://blog.unreasonable.com/emacs-also-a-way-of-life/</link>
		<comments>https://blog.unreasonable.com/emacs-also-a-way-of-life/#comments</comments>
		<pubDate>Mon, 22 Dec 2014 22:53:16 +0000</pubDate>
		<dc:creator><![CDATA[lubkin]]></dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[editing]]></category>
		<category><![CDATA[emacs]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[unix]]></category>

		<guid isPermaLink="false">http://blog.unreasonable.com/?p=236</guid>
		<description><![CDATA[If you&#8217;ve programmed or been a sysadmin on UNIX or Linux, you&#8217;ve undoubtedly already taken sides in emacs versus vi. You won&#8217;t be convinced to switch to the other text editor. It&#8217;s like trying to persuade someone to flip allegiance between the Red Sox and the Yankees. If you haven&#8217;t,... <a href="https://blog.unreasonable.com/emacs-also-a-way-of-life/" class="readmore">Read more</a>]]></description>
				<content:encoded><![CDATA[<aside class="postimage"><a href="http://www.amazon.com/gp/product/0596006489/ref=as_li_tl?ie=UTF8&#038;camp=1789&#038;creative=9325&#038;creativeASIN=0596006489&#038;linkCode=as2&#038;tag=unreasonablesoft&#038;linkId=LO7DGESD7QVRNGLB"><img border="0" src="http://blog.unreasonable.com/wp-content/uploads/2014/12/large-emacs.jpg" width="189" height="250"  title="Learning GNU Emacs, 3rd Edition on Amazon" class="bordered"></a></aside>
<section>If you&#8217;ve programmed or been a sysadmin on UNIX or Linux, you&#8217;ve undoubtedly already taken sides in <a href="http://www.slate.com/articles/technology/bitwise/2014/05/oldest_software_rivalry_emacs_and_vi_two_text_editors_used_by_programmers.html" title="The Oldest Rivalry in Computing (Slate Magazine)">emacs versus vi</a>. You won&#8217;t be convinced to switch to the other text editor. It&#8217;s like trying to persuade someone to flip allegiance between the Red Sox and the Yankees. </p>
<p>If you haven&#8217;t, be aware that <a href="http://www.gnu.org/software/emacs/" title="GNU Emacs project">GNU Emacs</a> is a very powerful text editor that probably runs on any computer you&#8217;ve ever edited a file on or ever will. Although calling it a text editor is a profound understatement. It could as easily be considered a software development environment (IDE), an office suite, or a personal information manager (PIM).</p>
<p><a href="http://www.amazon.com/gp/product/0596006489/ref=as_li_tl?ie=UTF8&#038;camp=1789&#038;creative=9325&#038;creativeASIN=0596006489&#038;linkCode=as2&#038;tag=unreasonablesoft&#038;linkId=66VRRKM7Q4N7X57G"><i>Learning GNU Emacs, 3rd Edition</i></a> is an excellent way to get started. Yes, the book was last revised in 2004. But even the 1991 first edition is still useful—one of the strengths of Emacs is that the basics are stable.<span id="more-236"></span></p>
<p>For that matter, the commands I learned ten years before that still work. I have been using some form of Emacs for over thirty years. As a tool, it&#8217;s an old reliable. With a handle worn down to comfortably fit my hand perfectly. I&#8217;ll bring it up here when I think of something to share that&#8217;s especially useful or satisfying.</p>
<p>One problem is terminology. Emacs has different terms and notation than you may be used to. Although, like Time Lords, we were there first. I&#8217;ll elaborate as we go. But a few essentials first. </p>
<p>Every one of the thousands of commands available has a name. The command to move to the previous line is called <code>previous-line</code>. As such, you can run it by <code>&lt;Esc&gt; x previous-line &lt;Enter&gt;</code>. Since it&#8217;s frequently used, and you&#8217;d never get any work done if you had to type all that, it comes <em>bound</em> to the key-combination <code>&lt;Ctrl&gt;+p</code>. And if your keyboard has arrow keys, it&#8217;s <em>also</em> bound to &#8593;.</p>
<p>If you don&#8217;t like that, you can change it. Switch the key-combination to something easier for you to remember. Or take a command you use often that doesn&#8217;t have a key-combination and assign it to one.</p>
<p>When discussing Emacs, though, refer to the standard key assignments. And remember, a command&#8217;s real name is the text version, not the key assignment.</p>
<p>Also, the way key assignments are written are different. <code>C-p</code> is what PC users know as <code>&lt;Ctrl&gt;+p</code>. <code>S-p</code> is <code>&lt;Shift&gt;+p</code>. <code>M-p</code> is <code>&lt;Alt&gt;+p</code>. (The M is for &#8216;meta.&#8217;) </p>
<p>And they can be combined: <code>C-S-p</code>, <code>C-M-p</code>, <code>M-S-p</code>, or <code>C-M-p</code>, or even <code>C-M-S-p</code>.</p>
<p>If you&#8217;re ever confused, the command <code>M-x apropos</code> helps you find commands whose name includes your search term, e.g. searching on <em>capitalize</em> reports <code>capitalize</code>, <code>capitalize-region</code>, <code>capitalize-word</code>, <code>capitalized-words-mode</code>, and <code>cua-capitalize-rectangle</code>. You can even search by regular expression if you feel like showing off.</p>
<p>The command <code>M-x describe-key</code> (bound by default to <code>C-h k</code>) tells you what, if anything, a key or key/mouse combination will do. After entering the command, you&#8217;ll be prompted to use the key or mouse/key combination you&#8217;re curious about. But be aware that <code>describe-key</code> distinguishes between the different keys that have the same labels.</p>
<p>For example, the * above the 8 in the main keyboard is considered a different key from the * that&#8217;s on a numeric keypad (where its Emacs name is <code>kp-multiply</code>). I&#8217;ve chosen to use the keypad keys for different purposes, e.g., in my setup the keypad&#8217;s * inserts a &bull; instead of an asterisk.</p>
]]></content:encoded>
			<wfw:commentRss>https://blog.unreasonable.com/emacs-also-a-way-of-life/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
