<?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>Thoughts From Eric &#187; Personal</title>
	<atom:link href="http://meyerweb.com/eric/thoughts/category/personal/rss2/summary/" rel="self" type="application/rss+xml" />
	<link>http://meyerweb.com/eric/thoughts</link>
	<description>Things that Eric A. Meyer, CSS expert, writes about on his personal Web site; it&#039;s largely Web standards and Web technology, but also various bits of culture, politics, personal observations, and other miscellaneous stuff</description>
	<lastBuildDate>Thu, 25 Feb 2010 21:15:46 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Better PDF File Size Reduction in OS X</title>
		<link>http://meyerweb.com/eric/thoughts/2010/02/25/better-pdf-file-size-reduction-in-os-x/</link>
		<comments>http://meyerweb.com/eric/thoughts/2010/02/25/better-pdf-file-size-reduction-in-os-x/#comments</comments>
		<pubDate>Thu, 25 Feb 2010 18:17:15 +0000</pubDate>
		<dc:creator>Eric Meyer</dc:creator>
				<category><![CDATA[Mac]]></category>
		<category><![CDATA[Speaking]]></category>
		<category><![CDATA[Tools]]></category>

		<guid isPermaLink="false">http://meyerweb.com/eric/thoughts/?p=1306</guid>
		<description><![CDATA[Being a brief recounting of the successful quest for reduced-size PDFs that don't look awful.]]></description>
			<content:encoded><![CDATA[<p>
One of the things you discover as a speaker and, especially, a conference organizer is this:  <em><a href="http://www.apple.com/iwork/keynote/">Keynote</a> generates really frickin&#8217; enormous PDFs.</em>  Seriously.  Much like Miles O&#8217;Keefe, they&#8217;re <strong>huge</strong>.  We had one speaker last year whose lovingly crafted and beautifully designed 151-slide deck resulted in a 175MB PDF.
</p>
<p>
Now, hard drives and bandwidth may be cheap, but when you have four hundred plus attendees all trying to download the same 175MB PDF at the same time, the venue&#8217;s conference manager <em>will</em> drop by to find out what the bleeding eyestalks your attendees are doing and why it&#8217;s taking down the entire outbound pipe.  Not to mention the network will grind to a nearly complete halt.  Whatever you personally may think of net access at conferences, at this point, not providing net access is roughly akin to not providing functioning bathrooms.
</p>
<p>
So what&#8217;s the answer?  <a href="http://www.panic.com/blog/2010/02/shrinkit-1-0/">ShrinkIt</a> is fine if the slides use lots of vectors and you&#8217;re running Snow Leopard.  If the slides use lots of bitmapped images, or you&#8217;re not on Snow Leopard, ShrinkIt can&#8217;t help you.
</p>
<img src="http://meyerweb.com/pix/2010/quartzfilter-saveas.png" alt="" class="pic"/>
<p>
If the slides are image-heavy, then you can always load the PDF into Preview and then do a &#8220;Save As&#8230;&#8221; where you select the &#8220;Reduce File Size&#8221; Quartz filter.  That will indeed drastically shrink the file size—that 175MB PDF goes down to 13MB—but it can also make the slides look thoroughly awful.  That&#8217;s because the filter achieves its file size reduction by scaling all the images down by at least 50% <em>and</em> to no more than 512 pixels on a side, plus it uses aggressive JPEG compression.  So not only are the images infested with compression artifacts, they also tend to get that lovely up-scaling blur.  Bleah.
</p>
<p>
I Googled around a bit and found &#8220;<a href="http://www.hoboes.com/Mimsy/hacks/quality-reduced-file-size/">Quality reduced file size in Mac OS X Preview</a> from early 2006.  There I discovered that anyone can create their own Quartz filters, which was the key I needed.  Thus armed with knowledge, I set about creating a filter that struck, in my estimation, a reasonable balance between image quality and file size reduction.  And I think I&#8217;ve found it.  That 175MB PDF gets taken down to 34MB with what I created.
</p>
<p>
If you&#8217;d like to experience this size reduction for yourself (and how&#8217;s <em>that</em> for an inversion of common spam tropes?) it&#8217;s pretty simple:
</p>

<ol>
<li>Download and unzip <a href="http://meyerweb.com/eric/tools/mac/quartzfilter-reduce-file-size-75.zip">Reduce File Size (75%)</a>.  Note that the &#8220;75%&#8221; relates to settings in the filter, not the amount of reduction you&#8217;ll get by using it.</li>
<li>Drop the unzipped <tt>.qfilter</tt> file into <tt>~/Library/Filters</tt>.</li>
</ol>

<p>
Done.  The next time you need to reduce the size of a PDF, load it up in Preview, choose &#8220;Save As&#8230;&#8221;, and save it using the Quartz filter you just installed.
</p>
<p>
If you&#8217;re the hands-on type who&#8217;d rather set things up yourself, or you&#8217;re a paranoid type who doesn&#8217;t trust downloading zipped files from sites you don&#8217;t control (and I actually don&#8217;t blame you if you are), then you can manually create your own filter like so:
</p>

<img src="http://meyerweb.com/pix/2010/quartzfilter-reducefilesize.png" alt="" class="pic"/>

<ol>
<li>Go to <tt>/Applications/Utilities</tt> and launch ColorSync Utility.</li>
<li>Select the &#8220;Filters&#8221; icon in the application&#8217;s toolbar.</li>
<li>Find the &#8220;Reduce File Size&#8221; filter and click on the little downward-arrow-in-gray-circle icon to the right.</li>
<li>Choose &#8220;Duplicate Filter&#8221; in the menu.</li>
<li>Use the twisty arrow to open the duplicated filter, then open each of &#8220;Image Sampling&#8221; and &#8220;Image Compression&#8221;.</li>
<li>Under &#8220;Image Sampling&#8221;, set &#8220;Scale&#8221; to <tt>75%</tt> and &#8220;Max&#8221; to <tt>1280</tt>.</li>
<li>Under &#8220;Image Compression&#8221;, move the arrow so it&#8217;s halfway between the rightmost marks.  You&#8217;ll have to eyeball it (unless you bust out <a href="http://iconfactory.com/software/xscope">xScope</a> or a similar tool) but you should be able to get it fairly close to the halfway point.</li>
<li>Rename the filter to whatever will help you remember its purpose.</li>
</ol>

<p>
As you can see from the values, the &#8220;75%&#8221; part of the filter&#8217;s name comes from the fact that two of the filter&#8217;s values are 75%.  In the original Reduce File Size filter, both are at 50%.  The maximum size of images in my version is also quite a bit bigger than the original&#8217;s—1280 versus 512—which means that the file size reductions won&#8217;t be the same as the original.
</p>
<p>
Of course, you now have the knowledge needed to fiddle with the filter to create your own optimal balance of quality and compression, whether you downloaded and installed the zip or set it up manually—either way, ColorSync Utility has what you need.  If anyone comes up with an even better combination of values, I&#8217;d love to hear about it in the comments.  In the meantime, share and enjoy!
</p>
]]></content:encoded>
			<wfw:commentRss>http://meyerweb.com/eric/thoughts/2010/02/25/better-pdf-file-size-reduction-in-os-x/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>MIXmasters</title>
		<link>http://meyerweb.com/eric/thoughts/2010/02/24/mixmasters/</link>
		<comments>http://meyerweb.com/eric/thoughts/2010/02/24/mixmasters/#comments</comments>
		<pubDate>Wed, 24 Feb 2010 21:22:46 +0000</pubDate>
		<dc:creator>Eric Meyer</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[Standards]]></category>

		<guid isPermaLink="false">http://meyerweb.com/eric/thoughts/?p=1299</guid>
		<description><![CDATA[The winners of Microsoft's <a href="http://mix10k.visitmix.com/">MIX 10K Smart Coding Challenge</a> (for which I was happy to <a href="http://meyerweb.com/eric/thoughts/2010/01/22/mix-judging/">serve as one of the judges</a>) have been announced, and the Grand Prize has been awarded to...]]></description>
			<content:encoded><![CDATA[<p>
The winners of Microsoft&#8217;s <a href="http://mix10k.visitmix.com/">MIX 10K Smart Coding Challenge</a> (for which I was <a href="http://meyerweb.com/eric/thoughts/2010/01/22/mix-judging/">honored to serve</a> as <a href="http://live.visitmix.com/News/MIX-10K-Judge-Panel-Announced/">one of the judges</a>) have been announced, and the Grand Prize has been awarded to&#8230;
</p>
<p>
<a href="http://www.jimmyinteractive.com/">Jimmy D</a>&#8217;s <strong><a href="http://mix10k.visitmix.com/Entry/Details/169">Frog Log</a></strong>.
</p>
<p>
Which is an HTML5/CSS/JS entry.
</p>
<p>
That doesn&#8217;t run in Internet Explorer.
</p>
<p>
Yep.
</p>
<p>
Frog Log was my top pick, and obviously did very well with the other judges too, for a good reason: it&#8217;s a fun game.  It doesn&#8217;t play quite the same in Firefox previous to v3.5, as the drag-n-drop doesn&#8217;t work.  Instead, you click on a frog, then click where you want to place it.  I actually found that made the game a touch easier for me, but your interaction may vary.  In addition to working in Firefox, Safari, and Opera, it also runs on a number of mobile devices.
</p>
<p>
Here&#8217;s an excerpt from my judging remarks:
</p>

<blockquote>
<p>
Just a great little game, addictive and well thought out with some interesting gameplay.  I would LOVE to see this developed further by the author&#8230;  My only ding was that drag-n-drop failed in Firefox 3.5; clicking worked fine, though.
</p>
</blockquote>

<p>
I&#8217;m not sure why I had trouble with drag-n-drop in Firefox 3.5, since I don&#8217;t have have the same problem now.  Maybe I got confused with browser version numbers or something.  Regardless, it works fine, it&#8217;s a great game, and remember: it&#8217;s less than 10K unzipped.
</p>
<p>
I also gave high marks to the HTML5 runner-up, Chris Evans&#8217; <a href="http://mix10k.visitmix.com/Entry/Details/188">100pxls</a>, which was the source of <a href="http://twitter.com/meyerweb/status/8725985395">my Dadaist tweet</a> a couple of weeks back and lands right in my personal sweet spot for &#8220;doing odd things with popular web services&#8221;.  Here&#8217;s some of what I had to say in my remarks:
</p>

<blockquote>
<p>
&#8230;really liked the concept here, especially the nonsensical tweets that were generated by drawing your own icon.  The icons could be made easier to see in the main display, but I suppose that&#8217;s a minor quibble.
</p>
</blockquote>

<p>
I&#8217;d like to thank the MIX 10K crew for getting me involved as a contest judge; I really enjoyed seeing what people created and had a hard time narrowing down my votes to just a handful of winners.  More importantly, though, I offer my heartiest congratulations to all the winners, and most especially to Jimmy and Chris for doing such fun, interesting, and downright cool stuff with 10K of web standards goodness!
</p>
]]></content:encoded>
			<wfw:commentRss>http://meyerweb.com/eric/thoughts/2010/02/24/mixmasters/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Events and A Day, Belatedly</title>
		<link>http://meyerweb.com/eric/thoughts/2010/02/08/events-and-a-day-belatedly/</link>
		<comments>http://meyerweb.com/eric/thoughts/2010/02/08/events-and-a-day-belatedly/#comments</comments>
		<pubDate>Mon, 08 Feb 2010 15:29:11 +0000</pubDate>
		<dc:creator>Eric Meyer</dc:creator>
				<category><![CDATA[An Event Apart]]></category>
		<category><![CDATA[Projects]]></category>

		<guid isPermaLink="false">http://meyerweb.com/eric/thoughts/?p=1247</guid>
		<description><![CDATA[In which I talk about the 2010 schedule for An Event Apart, including a very special Day Apart.]]></description>
			<content:encoded><![CDATA[<p>
I&#8217;m a bad conference organizer.
</p>
<p>
Why?  Because we opened the <a href="http://aneventapart.com/">An Event Apart</a> 2010 schedule <a href="http://store.aneventapart.com/">for sales</a> back in, um, flippin&#8217; <em>November</em>, and I never mentioned it here.  Cripes, I never even posted when we announced the lineup of cities.  I could go through the great big long sob-story list of reasons why 2009 was really tough and blah blah blah, but when you get right down to it, I fell down on my job.
</p>
<p>
Okay.  So.  Time to correct that.
</p>
<p>
<small><i>(deep breath)</i></small>
</p>
<p>
Hey everyone, check it out: the complete tour schedule for An Event Apart 2010!  Woohoooo!
</p>

<ol>
<li><strong><a href="http://aneventapart.com/2010/seattle/">Seattle</a></strong>: April 5-7, 2010 (yes, <em>three</em> days; more on that anon)</li>
<li><strong><a href="http://aneventapart.com/2010/boston/">Boston</a></strong>: May 24-25, 2010</li>
<li><strong><a href="http://aneventapart.com/2010/minneapolis/">Minneapolis</a></strong>: July 26-27, 2010</li>
<li><strong><a href="http://aneventapart.com/2010/dc/">Washington, DC</a></strong>: September 16-17, 2010</li>
<li><strong><a href="http://aneventapart.com/2010/sandiego/">San Diego</a></strong>: November 1-2, 2010</li>
</ol>

<p>
We&#8217;ve got a pretty killer lineup, if I do say so myself.  You can get the mostly-complete list from <a href="http://aneventapart.com/news/2009/11/03/registration-is-now-open-for-2010/">our opening-of-sales announcement last November</a>.  It lists the people we had confirmed at the time; there have been a few additions since then.  Check out your city of choice to see who&#8217;s going to be there!  (But always remember that speaker lineups are subject to change: speakers are people too, and life has a way of interfering with schedules.  I myself had to withdraw from An Event Apart Boston last year due to a family emergency.)
</p>
<p>
The price to register for these two-day, one-track Events is the same as it was in 2009, and there are <a href="http://aneventapart.com/about/">educational and group discounts available</a> for those who are interested.
</p>
<p>
But wait, I just said &#8220;two-day&#8221; when the first show of the year is clearly <em>three</em> days.  What gives?
</p>
<p>
Seattle is the site of our first-ever <strong>A Day Apart</strong>, a full-day workshop that can be attended on its own or as part of a full three days of Event Apart ecstasy.  And the inaugural Day Apart will be nothing less than a detailed plunge into HTML 5 and CSS3 with Jeremy Keith and Dan Cederholm.  Jeremy handles the markup; Dan gets stylish.  It&#8217;s going to be fantastic.  I&#8217;m going to be in the back of the room for the whole day, soaking up as much as I can.
</p>
<p>
If you want to <a href="https://store.aneventapart.com/#seattle-2010">attend just the workshop</a>, it&#8217;s $399 for the whole day if you buy an early bird ticket (available through March 5th).  The price goes up $50 when early bird ends, and another $100 if you show up at the door.  But I wouldn&#8217;t recommend that last, because I don&#8217;t think there will be any tickets available at the door.  Again: if you show up unannounced on the day of the workshop and ask to buy a ticket, we will most likely have to turn you away, because I expect that there won&#8217;t be any seats available.
</p>
<p>
On the other hand, maybe you&#8217;d like to experience more than just one day of AEA goodness.  Maybe you&#8217;d like to go whole hog and <a href="https://store.aneventapart.com/#seattle-2010">attend both the two-day Event Apart and the subsequent Day Apart</a>, soaking up all the knowledge and enthusiasm and camaraderie that typifies An Event Apart.  And who could blame you?  If you do <em>that</em>, then the total early bird price for all three days is $1,190, whereas buying the event and workshop passes separately would total $1,294.  That&#8217;s right: you actually get slightly more than $100 off the cost of the workshop if you attend all three days, over and above the early bird discount.  (Or you can think of it as getting $100+ off the cost of the conference.  We&#8217;re not fussy.)
</p>
<p>
As it happens, these three-day passes have proved quite popular.  So if you want to get your hands on one of those—or on any Seattle tickets, whether one, two, or three days—I wouldn&#8217;t wait too long.  Our internal analyses suggest that there will come a time, some time before the doors open on April 5th, that the ability to buy a ticket will cease to be.  It may even pine for a fjord or two.
</p>
<p>
As for the four shows that come after Seattle, well, they&#8217;re looking pretty popular too.
</p>
<p>
I know I say this every year, but I&#8217;m really excited about what we&#8217;ve got planned for the year.  Jeffrey and I constantly and (we hope) consistently strive to create an event that we ourselves want to attend, and that&#8217;s absolutely true of the shows and workshop we have planned in 2010.  I can&#8217;t wait to hear what the speakers and attendees have to share.  Hope to see you there!
</p>
]]></content:encoded>
			<wfw:commentRss>http://meyerweb.com/eric/thoughts/2010/02/08/events-and-a-day-belatedly/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Into the Fray</title>
		<link>http://meyerweb.com/eric/thoughts/2009/11/27/into-the-fray/</link>
		<comments>http://meyerweb.com/eric/thoughts/2009/11/27/into-the-fray/#comments</comments>
		<pubDate>Fri, 27 Nov 2009 16:40:31 +0000</pubDate>
		<dc:creator>Eric Meyer</dc:creator>
				<category><![CDATA[Writing]]></category>

		<guid isPermaLink="false">http://meyerweb.com/eric/thoughts/?p=1233</guid>
		<description><![CDATA[I am now a Fray Contributor.  Official, for real, badge and everything.  This is a huge deal for me.  I still have a little trouble believing it.]]></description>
			<content:encoded><![CDATA[<p>
I am now a <a href="http://fray.com/">Fray</a> Contributor.  Official, for real, badge and everything&#8212;check the sidebar on the home page.  My completely and in many ways unbelievably true story of beginnings around an ending, &#8220;A Death of Coincidence&#8221;, appears in <a href="http://fray.com/issue3/">Issue 3: <cite>Sex &amp; Death</cite></a>.
</p>
<p>
This is a huge deal for me.  I still have a little trouble believing it.
</p>
<p>
For a long time&#8212;as in, for more than a decade&#8212;I&#8217;ve had &#8220;participate in Fray&#8221; as one of those little deferred dreams we all carry around in the background.  I certainly could&#8217;ve submitted pieces all along, either for the original site or one of the live events, and might even have been accepted.  The thing is, I wasn&#8217;t dreaming of simply getting a piece accepted and checking an internal to-do box.  I wanted to participate the <em>right</em> way, by my own internal reckoning.  That meant not only vying for inclusion, but doing so with a worthy story, one that felt right.
</p>
<p>
When Fray relaunched as a themed quarterly, I took notice.  I often work better when I have something to work against; constraints energize me more than they chafe.  The <a href="http://fray.com/issue1/">first issue</a>&#8217;s theme, &#8220;Busted!&#8221;, called to mind a few childhood incidents, but nothing really coalesced.  There was nothing that said, &#8220;I&#8217;m a Fray piece; write me.&#8221;  The <a href="http://fray.com/issue2/">second issue</a>&#8217;s theme, &#8220;Geek&#8221;, left me with far too many options.  I couldn&#8217;t hook onto anything with the right vibe.
</p>
<p>
Then <a href="http://fray.com/issue3/">issue 3</a>&#8217;s theme was announced, and I knew exactly what I was going to submit.  No rumination of possible narratives, no idle exploring my past for ideas, no doubt at all.  I knew, and it was <em>right</em>.
</p>
<p>
In fact, it was <a href="http://meyerweb.com/other/mom/coincidences.html">a piece I&#8217;d already written</a>, except for the ending.  The ending I had used was certainly good enough, and was certainly the right ending for the time and place I wrote and performed it.  But there had always been a different, nearly unbelievable ending to that story and I&#8217;d always held it back, kept close to myself, never quite sure why.  Now I know why.  It was the piece that made that story a Fray story.
</p>
<p>
If you want to read it, you&#8217;ll need to <a href="http://fray.com/store/">pick up Issue 3 of Fray</a>, which you can of course do very easily.  You can pick up issues 1 and 3 together for a great price, or become a subscriber and get issue 3 as your first.  Any of those would be awesome.  Or, I suppose, you can wait until the piece is published for free on the Fray site, though I should tell you that it could be a long while until that happens.
</p>
<p>
I can&#8217;t thank Frayer-in-Chief <a href="http://powazek.com/">Derek Powazek</a> enough for including me in Fray.  I am quite literally as proud as I was when <a href="http://meyerweb.com/eric/books/css-tdg/">my first book</a> was published.  I&#8217;ve passed a personal and professional milestone, and far from just ticking off a checkbox on some internal to-do list, I&#8217;m basking in the glow of a dream fully and properly fulfilled.
</p>
]]></content:encoded>
			<wfw:commentRss>http://meyerweb.com/eric/thoughts/2009/11/27/into-the-fray/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>To All Who Seek It</title>
		<link>http://meyerweb.com/eric/thoughts/2009/11/12/to-all-who-seek-it/</link>
		<comments>http://meyerweb.com/eric/thoughts/2009/11/12/to-all-who-seek-it/#comments</comments>
		<pubDate>Thu, 12 Nov 2009 21:33:07 +0000</pubDate>
		<dc:creator>Eric Meyer</dc:creator>
				<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://meyerweb.com/eric/thoughts/?p=1192</guid>
		<description><![CDATA[How many times had I heard this before?  Did it matter?]]></description>
			<content:encoded><![CDATA[<p>
It wasn&#8217;t what I would call unseasonably cold, but then the season was mid-autumn and the afternoon wind along the river did cut the skin a bit.  I kept my leather jacket zipped up all the way as I made my way back to the hotel with shopping bag in hand.  Brisk, I might have said back home, or even chilly.  Not winter yet, but you could feel it coming in the snap and shift of the air.
</p>
<p>
I crossed the last street before the hotel, keeping an eye on both the short-cycle light and the short-tempered traffic.  Not that there was any particular reason for them to be short-tempered&#8212;it was a Sunday afternoon and there were hardly any cars on the bridges and roads that grid the downtown area&#8212;but I knew from experience that pedestrian intimidation was something of a sport for the locals, and I really didn&#8217;t feel like tempting fate, or at least somebody&#8217;s ideas about what constituted a bit of fun.
</p>
<p>
Having threaded through the small bunch of oncoming pedestrians and reached the relative safety of the sidewalk, I came upon a large man with two children in tow, all bundled against the cold in parkas and scarves and hats.  He asked if I had a minute, and I immediately knew what was coming.  Sure enough, it came out: the request for a dollar, some change, anything I could spare.  I glanced at him, at the children, back at him.  Something for bus fare, he said.  They&#8217;d missed dinner at the Mission the night before, he said.  Just a little help, anything I could do, he said.
</p>
<p>
How many times had I heard this before?  I gave the usual excuses about not having any cash, I only travel with credit cards, so sorry, had to go.
</p>
<p>
And went, the wind biting into my cheeks as I strode to the hotel&#8217;s front door, the overhead heater blowing a curtain of warmth across the entryway.  Into the lobby.  Into the elevator.  Thirty floors into the air.  And in my sight, still, the children looking at me.  The boy of maybe eight, looking up at me curiously.  The girl of six, peeping at me warily from behind the man&#8217;s bulk.  Props?  Accomplices?
</p>
<p>
Did it matter?
</p>
<p>
I stood at the counter of the lobby gift shop, stacks of nutrition bars in my hands.  A bottle of water in the side pocket of the jacket I had yet to shed.  An apple in the other.  My credit card between two fingers, ready for the attendant to take.
</p>
<p>
Through the doors, into the cold wind under the canopy, the plastic shopping bag weighing down my hand.  I reached the sidewalk and there they were on the same corner, looking like they were getting ready to cross the street.  I caught the man&#8217;s eye, signaled him to wait.  As I approached his face shifted, softened, something like relief warring with shame melding into a curiously childlike expression.
</p>
<p>
&#8220;God bless you,&#8221; he said to me, and I chose to believe that he meant it.  The little boy smiled up at me, a tiny edge embedded in the corners of his mouth.  The girl still peeped warily, maybe even more so now.  The man and I were shaking hands, looking squarely at each other for a moment.  I told him to make sure to get the kids to that Mission dinner.  I could think of nothing else to say, because it was the only thing I was thinking.  Get the kids fed, keep them as healthy as possible, no matter what else.
</p>
<p>
As I turned into the recessed, canopied area that sheltered the hotel&#8217;s front door, I glanced back at the street corner.  The three of them were waiting to cross toward the small park to the north, the gift shop&#8217;s white bag ludicrously small in the big man&#8217;s hands, and then they were occluded by the building&#8217;s corner.  I walked back through the wall of warm air, into the dim lobby and out of the bright outdoors, thinking that there was every chance I&#8217;d been suckered, and knowing that it didn&#8217;t matter.
</p>]]></content:encoded>
			<wfw:commentRss>http://meyerweb.com/eric/thoughts/2009/11/12/to-all-who-seek-it/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A Matter of Conscience</title>
		<link>http://meyerweb.com/eric/thoughts/2009/10/17/a-matter-of-conscience/</link>
		<comments>http://meyerweb.com/eric/thoughts/2009/10/17/a-matter-of-conscience/#comments</comments>
		<pubDate>Sun, 18 Oct 2009 01:51:14 +0000</pubDate>
		<dc:creator>Eric Meyer</dc:creator>
				<category><![CDATA[Commentary]]></category>
		<category><![CDATA[Culture]]></category>
		<category><![CDATA[Observations]]></category>

		<guid isPermaLink="false">http://meyerweb.com/eric/thoughts/?p=1171</guid>
		<description><![CDATA[Louisiana Justice of the Peace Keith Bardwell has gained national notoriety for personally refusing to issue a marriage license to an interracial couple.  I've found myself very interested by one of the things he said by way of explanation.]]></description>
			<content:encoded><![CDATA[<p>
So Louisiana Justice of the Peace Keith Bardwell has gained national notoriety for <a href="http://www.wwltv.com/local/stories/wwl101709mlmarriage.227fa1c6a.html">refusing to issue a marriage license to an interracial couple</a>, referring them instead to another justice to have the marriage performed.  His action has, of course, provoked a great deal of condemnation.  Pretty much every elected Louisiana official above Mr. Bardwell (and plenty of them to either side) in the administrative hierarchy has called for his removal from his position.  That goes all the way up to Republican Governor Bobby Jindal, who said:
</p>
<blockquote>
<p>
&#8220;This is a clear violation of constitutional rights and federal and state law. Mr. Bardwell&#8217;s actions should be fully reviewed by the Judiciary Commission and disciplinary action should be taken immediately &#8211; including the revoking of his license.&#8221;
</p>
</blockquote>
<p>
As for Mr. Bardwell himself,<a href="http://news.yahoo.com/s/ap/20091015/ap_on_re_us/us_interracial_rebuff"> he has claimed not to be racist, but instead concerned for the biracial children that result from mixed-race marriage</a>.  Of all that he&#8217;s said, though, I was particularly interested by the following:
</p>
<blockquote>
<p>
&#8220;I didn&#8217;t tell this couple they couldn&#8217;t get married. I just told them I wouldn&#8217;t do it.&#8221;
</p>
</blockquote>
<p>
It interested me because it&#8217;s exactly the kind of reasoning that underlies &#8220;conscience protection&#8221; laws that exempt medical professionals who wish to refuse participation in abortion, or dispensation of contraception.
</p>
<p>
So now I&#8217;m very curious to know whether what pro-life groups have to say about what this man has done and how he&#8217;s done it.  Or, for that matter, what Governor Jindal himself now thinks of <a href="http://www.nola.com/news/t-p/capital/index.ssf?/base/news-7/124703057228210.xml&amp;coll=1">the bill he recently signed into law</a>.
</p>]]></content:encoded>
			<wfw:commentRss>http://meyerweb.com/eric/thoughts/2009/10/17/a-matter-of-conscience/feed/</wfw:commentRss>
		<slash:comments>23</slash:comments>
		</item>
		<item>
		<title>Announcing Followerlap</title>
		<link>http://meyerweb.com/eric/thoughts/2009/07/06/announcing-followerlap/</link>
		<comments>http://meyerweb.com/eric/thoughts/2009/07/06/announcing-followerlap/#comments</comments>
		<pubDate>Mon, 06 Jul 2009 17:22:50 +0000</pubDate>
		<dc:creator>Eric Meyer</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://meyerweb.com/?p=1138</guid>
		<description><![CDATA[A new micro-tool to find out how much overlap there is between the followers of two Twitter accounts.]]></description>
			<content:encoded><![CDATA[<p>
Last week, I got an <a href="http://twitter.com/supernovia/status/2424654400">interesting inquiry</a> from <a href="http://novapages.com/">Velda Christensen</a>:
</p>

<blockquote cite="http://twitter.com/supernovia/status/2424654400"><p>@meyerweb *wondering just how many of your followers follow @zeldman and vice-versa*</p></blockquote>

<p>
I had no idea.  Furthermore, I didn&#8217;t know of a tool that could tell me.  So I built one: <a href="http://meyerweb.com/eric/tools/followerlap/">Followerlap</a>.
</p>
<p>
As it turned out, the Twitter API made answering the specific question pretty ridiculously easy, thanks to <a href="http://apiwiki.twitter.com/Twitter-REST-API-Method%3A-followers%C2%A0ids"><code>followers/ids</code></a>.  All it takes is two API requests, one for each username.  The same would be true of <a href="http://apiwiki.twitter.com/Twitter-REST-API-Method%3A-friends%C2%A0ids"><code>friends/ids</code></a>, on top of which I suspect I&#8217;ll fairly shortly build a tool quite similar to Followerlap.
</p>
<p>
Since I <a href="http://twitter.com/meyerweb/status/2499070417">announced Followerlap&#8217;s existence</a> on (where else?) Twitter, I&#8217;ve had a few repeated (and not unexpected) bits of feedback.
</p>

<ul>
<li><p><strong>Why not list the common followers?</strong>  Because <code>followers/ids</code> returns a list of numeric IDs.  Resolving those IDs as usernames would require one API hit per ID.  If there are 15 followers in common, that&#8217;s not such a big deal, but if there are 1,500, well, I&#8217;ll run out of my hourly allotment of API requests very quickly.  Maybe there&#8217;s a better way; if so, I&#8217;d love to hear about it, because that would be a great addition.</p></li>
<li><p><strong>Why can&#8217;t I find out how many people follow both <a href="http://twitter.com/stephenfry">Stephen Fry</a> and <a href="http://twitter.com/THE_REAL_SHAQ">Shaquille O&#8217;Neal</a>?</strong>  Past a certain number of followers, somewhere in the 200,000&ndash;250,000 range, the API just dies.  You can&#8217;t even count on getting a consistent error message back.  <a href="http://groups.google.com/group/twitter-development-talk/browse_thread/thread/9abd452e420b5aed/37063359ae45fe68">There are ways around this</a>, but I didn&#8217;t want to stress the API that way, so it just fails.  Sorry.</p></li>
<li><p><strong>How can I link to a specific comparison?</strong>  <del datetime="2009-07-07T01:27:13+00:00">At the moment, you can&#8217;t.  I hope to make that happen soon, but I decided that a tool this simple should have a similarly simple launch.  Ship early, ship often, right?  Anyway, it&#8217;s on the list of things to add soon.</del>  Use the new &#8220;Livelink to this result&#8221; link underneath a result.  (See update below for more.)</p></li>
</ul>

<p>
So that&#8217;s Followerlap.  Any other questions?  I&#8217;ll do my best to answer them in the comments, though for a number of reasons I may be slow to respond.
</p>
<p>
<strong>Update 6 Jul 09:</strong> as noted in the edited point above, livelinking of comparison results is now, um, live.  So now you can pass around results like <a href="http://meyerweb.com/eric/tools/followerlap/?u1=god&#038;u2=devil">the number of people who follow both God <em>and</em> the Devil</a> (thanks to Paul M. Watson for <a href="http://twitter.com/paulmwatson/status/2500099501">coming up with that one</a>!).  I call this &#8220;livelinking&#8221; because hitting a result URL will get you the very latest results for that particular comparison.  &#8220;Permalinking&#8221; to me implied that it would link to a specific result at a specific time, which the tool doesn&#8217;t do and very likely never, ever will.
</p>]]></content:encoded>
			<wfw:commentRss>http://meyerweb.com/eric/thoughts/2009/07/06/announcing-followerlap/feed/</wfw:commentRss>
		<slash:comments>29</slash:comments>
		</item>
		<item>
		<title>Kept Afloat In Amsterdam</title>
		<link>http://meyerweb.com/eric/thoughts/2009/05/20/kept-afloat-in-amsterdam/</link>
		<comments>http://meyerweb.com/eric/thoughts/2009/05/20/kept-afloat-in-amsterdam/#comments</comments>
		<pubDate>Wed, 20 May 2009 18:39:16 +0000</pubDate>
		<dc:creator>Eric Meyer</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[Travel]]></category>

		<guid isPermaLink="false">http://meyerweb.com/?p=1129</guid>
		<description><![CDATA[It's taken me slightly more than a month to write this post.  It's about people at their best.]]></description>
			<content:encoded><![CDATA[<p>
It&#8217;s taken me slightly more than a month to write this post.  It&#8217;s about people at their best.
</p>
<p>
Last month, just after speaking at <a href="http://2009.thenextweb.com/">a conference</a> in Amsterdam, my laptop was stolen.
</p>
<p>
Actually, to be more painfully accurate, my laptop <em>case</em> was stolen&#8212;and inside it at the time was the laptop, my mobile phone, and my wallet.  Plus the usual assortment of stuff that goes into a laptop case.
</p>
<p>
Because I still remember to this day advice <a href="http://tantek.com/" rel="friend colleague muse met">Tantek</a> gave me just before we boarded a bus to Narita airport, I had my passport on me.  I happened to have picked up my camera to take some pictures of the conference hall.  My clothes were still in my hotel room.  Everything else was gone.
</p>
<p>
I can&#8217;t really describe the feeling.  Maybe you&#8217;ve felt it.  Shaking and stunned and self-blaming and nakedly vulnerable.  All that magnified by the complete loss of funds and communication with my family.
</p>
<p>
And the data.  The lost data.  I have backups, but they&#8217;re never as current as one would want.  (Which reminds me: if you aren&#8217;t backing up, and you aren&#8217;t doing so regularly, learn from my loss and start.)  Besides, at that moment, as the full realization of what had happened slid coldly into my gut and started its slow, merciless expansion throughout my entire body, I didn&#8217;t think &#8220;Oh, I have backups until that date, and all my work mail is on the mail server, and I&#8217;ve been uploading the best pictures to online services.&#8221;  Those things didn&#8217;t occur to me.  They were completely blocked by the continual, sickening, endlessly looping thought: <em>IT&#8217;S ALL GONE</em>.
</p>
<p>
And that&#8217;s when people started pitching in to help me out.
</p>
<p>
In addition to helping me look for the case in hopes that it had just been moved somewhere non-obvious, Khris Loux of <a href="http://js-kit.com/">JS-Kit</a> let me call home from his iPhone without a second thought, so I could tell Kat what had happened and get her immediately started on contacting banks and credit card companies.  And the honest concern in his eyes helped snap me back from near-paralysis, touched by the regard coming from someone I&#8217;d only met an hour before.
</p>
<p>
Then <a href="http://gabemac.com/" rel="met">Gabe Mac</a>, having heard what was going on, came up to me with a fully charged mobile phone I could borrow so that I could remain in contact with my family until I went home.  He didn&#8217;t ask me how I would get it back to him, because I don&#8217;t think it had occurred to him.  He just said, &#8220;Eric, I have a spare phone.  You need it.  Take it.&#8221;
</p>
<p>
So I did.  And much, much later that same night, it was nearly a lifeline.
</p>
<p>
Throughout all this, <a href="http://bomega.com/" rel="met">Boris</a> and <a href="http://patrickdelaive.com/" rel="met">Patrick</a>, the conference founders, were working to find out if one of the tech crew had accidentally picked it up, or it had been turned in to venue staff.  And when it became inescapably clear that the case was well and truly gone, they sent one of their staff to get a SIMM card for the phone Gabe had loaned me and 200 euros in cash so I could get home.  Just did it, because they could see that I would need those things even when I couldn&#8217;t.  They also arranged a ride for me to get to my evening&#8217;s social appointment.
</p>
<p>
That appointment was with <a href="http://homepages.cwi.nl/~steven/" rel="friend colleague met">Steven Pemberton</a> and his lovely family, who fed me a great dinner in their fabulous top-floor flat and were more than gracious about my disordered mental state.  After dinner, Steven took me to the nearby police station and acted as translator as I filled out a report.  And then he loaned me use of his home phone to call a couple of credit card companies that I had to speak with personally in order to make sure my business credit cards were cancelled.
</p>
<p>
It wasn&#8217;t the relaxed evening of dinner and shop talk I&#8217;d been hoping to have, but I did several things that needed to be done and Steven made it possible.  And we did get in a tiny smidgen of (very interesting) shop talk near the end.
</p>
<p>
At every step of that evening, someone was there to help push me forward, help me lower the unexpected barriers just a little bit, help ease the situation however they could.  So many people coming together to help out someone they&#8217;d known for years or never before met.  Thanks to them all, I was able to get home without further incident.  Thanks to them all, I had a major yang to the theft&#8217;s yin, a powerful reminder of just how good people can be.
</p>
<p>
Thank you, all.
</p>
]]></content:encoded>
			<wfw:commentRss>http://meyerweb.com/eric/thoughts/2009/05/20/kept-afloat-in-amsterdam/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Findings of the A List Apart Survey 2008</title>
		<link>http://meyerweb.com/eric/thoughts/2009/04/07/findings-of-the-a-list-apart-survey-2008/</link>
		<comments>http://meyerweb.com/eric/thoughts/2009/04/07/findings-of-the-a-list-apart-survey-2008/#comments</comments>
		<pubDate>Tue, 07 Apr 2009 15:50:12 +0000</pubDate>
		<dc:creator>Eric Meyer</dc:creator>
				<category><![CDATA[Culture]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://meyerweb.com/?p=1099</guid>
		<description><![CDATA[At last---at long, long last!---<a href="http://alistapart.com/">the results of the A List Apart Survey 2008 are available</a>, along with the anonymized raw data we collected.]]></description>
			<content:encoded><![CDATA[<p>
At last&#8212;at long, long last!&#8212;<a href="http://alistapart.com/articles/findingsfromthewebdesignsurvey2008">the results of the A List Apart Survey 2008 are available</a>, along with the anonymized raw data we collected.
</p>
<p>
There are a great many reasons why it took so long to get this out the door.  A big part is that it&#8217;s almost entirely a volunteer effort, which means it happens in our &#8220;free time&#8221; (and there the word &#8220;free&#8221; has a couple of meanings).  I say it&#8217;s almost entirely a volunteer effort because the detailed analysis is actually done by a pair of professional statisticians, who are paid for their time and expertise.  They did a great job once more, and did it in a reasonable time frame.  It just took us a while to get them the data to analyze, and then a while longer to take their report and findings and process them into report form.
</p>
<p>
The biggest change this year is that we&#8217;re publishing the results as HTML+CSS instead of a PDF.  This greatly increased the challenge, because it was important to me that the data be presented using styled tables, not images.  That&#8217;s easy like cake if all you&#8217;re doing is putting them up as visual tables, and we certainly do that for some of the figures.  In the other cases, where we have bar charts of varying kinds, things got difficult.  I managed to devise solutions that are 99.9% effective, and I&#8217;m both proud of and frustrated by those solutions.  Proud, of course, because I managed to wring three-stack bars out of table markup; frustrated because of the markup I had to construct to make them possible.  I think this report represents more than half my lifetime usage of the <code>style</code> attribute, but unfortunately there&#8217;s no way (using just CSS) to say <code>{width: content;}</code>.
</p>
<p>
So why not use JavaScript to do that, or to just replace the tables with canvas-drawn charts?  I did consider both, but decided that I would push as far as I could with plain HTML+CSS.  
</p>
<p>
A few implementation notes:
</p>

<ul>
<li>
<p>I used HTML 5 in order to step around some previously unrealized limitations of HTML 4&#8212;did you know <code>tfoot</code> has to come before <code>tbody</code> in HTML 4?  <em>I</em> didn&#8217;t.  I did not use elements like <code>header</code> and <code>footer</code> due to known problems in Firefox 2 and related browsers, which mangle pages containing those elements.  Instead, I took <a href="http://jontangerine.com/log/2008/03/preparing-for-html5-with-semantic-class-names">the same path Jon Tan recommends</a>, and classed <code>div</code>s using those names for later, easier conversion.</p>
</li>
<li>
<p>The tables which underlie the charts do not have <code>summary</code> attributes.  If a group of civic-minded individuals would like to write useful summaries, please let me know in the comments and I&#8217;ll let you know how best to submit them.  Similarly, I did my very best to make sure all the table headers had accurate <code>scope</code> values, but if I botched any, let me know.</p>
</li>
<li>
<p>I&#8217;m aware that Opera shows horizontal scrollbars on most chapters of the report.  This is due to its refusal to apply <code>overflow</code> to table boxes, which according to my recent reading of the CSS 2.1 specification is the correct thing to (not) do.  Every other browser I tested does apply <code>overflow</code> to table boxes, though, which I found most useful.  I tried applying <code>overflow: hidden</code> to a few other boxes, and that got rid of Opera&#8217;s horizontal scrollbars, but it also cut off actual content in some other browsers.  I chose a cosmetic problem in one browser over loss of content in others.  The best fix I&#8217;ve devised is to wrap the tables in <code>div</code>s and apply <code>overflow: hidden</code> to those <code>div</code>s, but I didn&#8217;t want to rush the fix and botch it, so it didn&#8217;t make it in time for first publication.  I expect to get it in shortly after publication.</p>
</li>
<li>
<p>In a like vein, there are a few combo charts where a bar goes shooting off the right side of the chart in IE7.  This appears to be due to some kind of width-doubling problem that&#8217;s only invoked on elements with a <code>style</code> attribute when the row header goes to two lines instead of being just one.  Googling for an explanation yielded no joy, and a lengthy series of attempts to hack around the problem came to nothing.  If anyone knows how to counteract that problem other than preventing the header text from going past a single line, I&#8217;d love to hear it.  (Update: I&#8217;ve implemented the &#8220;fix&#8221; of preventing line-wrapping in the report, so there aren&#8217;t any off-the-page bars right now, but you can <a href="http://meyerweb.com/eric/css/tests/winie/table-double/13.html">see an example of the problem on this test page</a>.)</p>
</li>
<li>
<p>Surprisingly, the charts mostly work in IE6.  The exception is some of the triple-stack charts, where data points overlap when the rightmost sub-bars get too small, and also the double-width bars mentioned in the previous point.  I don&#8217;t really have a fix for this short of upgrading the browser, but if somebody finds one, I&#8217;d be happy to test it out.</p>
</li>
</ul>

<p>
On that last point, if there are questions or suggestions surrounding the implementation of the report, we can certainly discuss them here.  With regard to the survey and report itself, though&#8212;that is, the questions asked and the results we&#8217;re publishing&#8212;please direct those thoughts to <a href="http://alistapart.com/comments/findingsfromthewebdesignsurvey2008/">the comments section of the ALA article announcing the report</a>.  I&#8217;m hoping that we&#8217;ll have the 2009 survey up within a few months, so comments on what we asked and how we asked it, what we didn&#8217;t ask but should have, and that sort of thing could well have a direct impact on the next survey.  But please put those on the ALA site, where more people are likely to see them.
</p>
<p>
It&#8217;s done, it&#8217;s out, it&#8217;s yours&#8212;both the report and the data, about which I&#8217;ll soon write a little bit more.  Read the report, or produce your own report using the data.  Just always know that when we publish these reports, we do not mean for them to be the final word.  No, what we always mean is for them to be the <em>first</em> words, a starting point, a place from which to grow.  What comes next is as much up to you as anyone else, and I can&#8217;t wait to see what you do.
</p>]]></content:encoded>
			<wfw:commentRss>http://meyerweb.com/eric/thoughts/2009/04/07/findings-of-the-a-list-apart-survey-2008/feed/</wfw:commentRss>
		<slash:comments>34</slash:comments>
		</item>
		<item>
		<title>London: the Gathering</title>
		<link>http://meyerweb.com/eric/thoughts/2009/02/20/london-the-gathering/</link>
		<comments>http://meyerweb.com/eric/thoughts/2009/02/20/london-the-gathering/#comments</comments>
		<pubDate>Fri, 20 Feb 2009 10:51:49 +0000</pubDate>
		<dc:creator>Eric Meyer</dc:creator>
				<category><![CDATA[Travel]]></category>

		<guid isPermaLink="false">http://meyerweb.com/?p=1070</guid>
		<description><![CDATA[Not only will I be in London in early March, but so will Jared Spool and Dana Chisnell.  We got Carsonified to arrange a geek gathering.  Come on down!]]></description>
			<content:encoded><![CDATA[<p>
When I was in Boston earlier this month, one of the people I&#8217;d thought to hang out with was <a href="http://www.uie.com/about/">Jared Spool</a>, and of course he was on the other side of the country while I was in his hometown.  This was a bit of a downer but I figured, hey, we both speak a lot, so I&#8217;d see him again somewhere at some point.
</p>
<p>
And how right I was: the week after my return home, <a href="http://dopplr.com/">Dopplr</a> informed me that he and I would both be in London for the first weekend in March.  I&#8217;m there for <a href="http://carsonworkshops.com/2009/ericmeyer/">the Carson Workshop I&#8217;m giving</a> (and there are only a few seats left, so you should grab one while they&#8217;re still open) and he&#8217;ll be in town for reasons of his own.  As will <a href="http://www.usabilityworks.net/">Dana Chisnell</a>, it turns out.
</p>
<p>
How could we not act on this?  So I pinged the folks at <a href="http://carsonified.com/">Carsonified</a> and asked them if they knew of a venue where we could arrange some kind of meetup.  They were not only glad to help out, they offered to organize the whole thing.  The result: a <a href="http://upcoming.yahoo.com/event/1852771/">Web Geek Gathering</a> at the Pitcher &amp; Piano Trafalgar on Sunday, 8 March 2009.  Jared, Dana, and I are all planning to be there.  You should plan to be there too.  You should also RSVP because, unlike the web, there isn&#8217;t infinite available space.  Not to mention I&#8217;ve heard rumors that there might be some manner of free drinks.  I mean, I&#8217;m just sayin&#8217; what I heard.
</p>
<p>
Hope to see you there!
</p>
]]></content:encoded>
			<wfw:commentRss>http://meyerweb.com/eric/thoughts/2009/02/20/london-the-gathering/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Life&#8217;s Rich Tapestry</title>
		<link>http://meyerweb.com/eric/thoughts/2009/02/09/lifes-rich-tapestry/</link>
		<comments>http://meyerweb.com/eric/thoughts/2009/02/09/lifes-rich-tapestry/#comments</comments>
		<pubDate>Tue, 10 Feb 2009 03:38:19 +0000</pubDate>
		<dc:creator>Eric Meyer</dc:creator>
				<category><![CDATA[Carolyn]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[Rebecca]]></category>

		<guid isPermaLink="false">http://meyerweb.com/?p=1018</guid>
		<description><![CDATA[The past few weeks have been a bit more intense than usual.  I thought I'd share.]]></description>
			<content:encoded><![CDATA[<blockquote>
<p>
Human beings say, &#8220;It never rains but it pours.&#8221;  This is not very apt, for it frequently does rain without pouring.  The rabbits&#8217; proverb is better expressed.  They say, &#8220;One cloud feels lonely&#8221;&#8230;
</p>
<p class="attrib">&#8212;Richard Adams, <cite>Watership Down</cite></p>
</blockquote>
<p>
The past few weeks have been a bit more intense than usual.  It all started on Inauguration Day, in fact, though that&#8217;s pretty much just coincidence.
</p>
<p>
It all started with a cold.  Carolyn stayed home with a terrible cough and a slight fever, which meant she got to watch the inauguration with us.  A couple of days later, she was fine, and Rebecca was sick.  Nothing unusual about that, of course: you have two kids, they pass germs along to each other.
</p>
<p>
In Rebecca&#8217;s case, though, it didn&#8217;t seem to get better.  By the time, a few days later, she spent most of an afternoon sitting very still on my lap, whimpering softly, <a href="http://twitter.com/meyerweb/status/1143163816">her skin burning with fever</a>, Kat started to suspect <a href="http://www.cdc.gov/RSV/">a common but serious childhood illness</a>.  A trip to the doctor confirmed it.  The child in the next examination room had the same illness and was unlucky: two inhaler treatments had little effect, and he was sent to the hospital.  Rebecca fared much better: one treatment and she was much improved.
</p>
<p>
That was lucky for us all, because we had a long road trip ahead of us.  The night before Rebecca&#8217;s doctor appointment, Kat&#8217;s mother died after a very long and difficult illness.  We had known it was coming, thanks to the hospice nurses.  We had known for a very long time that this is how it would one day end.  Most of the mourning had been done ahead of time, to be honest, but at the same time it&#8217;s never easy to lose a loved one, no matter how much you may have prepared.
</p>
<p>
We needed to be on Long Island by Sunday night.  Plane fare was far too expensive, even with the bereavement discount.  So we packed up the nebulizer, treatments, and everything else we needed to drive eleven hours to our hotel.  Pennsylvania, as anyone who&#8217;s made the drive will tell you, goes on forever.  It&#8217;s an even longer forever when you have to make extra stops, as will happen with four people, two of them children.
</p>
<p>
A very good friend of ours watched the girls as we attended <a href="http://twitter.com/meyerweb/status/1150846359">the graveside ceremony</a>, and we spent the next couple of days with Kat&#8217;s family as they sat shiva.  And then we drove back to sit our own.
</p>
<p>
I had to be in Boston the following week for client work, and while a great many awesome things happened on that trip, it was hard to leave so soon after everything else.  In the middle of everything else, really.  I left on the second day of our two-day shiva; the rabbi finished his prayers and remarks and five minutes later I was <a href="http://twitter.com/meyerweb/status/1167622831">pulling out of our driveway</a> to catch my flight.  And of course the illnesses, traveling, and general upheaval in our lives had pretty well shattered both girls&#8217; sleeping patterns, and I couldn&#8217;t be there to help.
</p>
<p>
The day after I got back, Kat finally went to the doctor to see about her sore thumb.  It turned out to be broken.  She&#8217;s wearing a brace now.  Two days after that, I quite unexpectedly suffered an anaphylactic reaction to a food I&#8217;d had many times before.  It was the whole works, too: sore stomach, tightness in the chest and throat, dizziness, itchy hands, and, so my wife tells me, a blue tinge around the lips.  It was a new and wholly unwelcome experience, I assure you.  We&#8217;re not completely sure of the ingredient that caused it, but there&#8217;s a very strong candidate: avocado.  So no more guacamole for me, it would seem.
</p>
<p>
All that knocked me even more offline than usual, which is why further writings about HTML5, CSS3, and other topics of note have persisted in collectively playing the parts of Sir Not-Appearing-On-This-Site.  I&#8217;m hoping that by getting all this off my chest, I&#8217;ll clear up some of the blockage and get things moving again.
</p>
<p>
So how about you&#8212;what&#8217;s the first month-or-so of 2009 been like for you?  If it&#8217;s been similarly stressful, unload and lighten the burden.  If it&#8217;s been good, tell us about it so we can all share a little bit of uplift.  I know I could use a little!
</p>
]]></content:encoded>
			<wfw:commentRss>http://meyerweb.com/eric/thoughts/2009/02/09/lifes-rich-tapestry/feed/</wfw:commentRss>
		<slash:comments>24</slash:comments>
		</item>
		<item>
		<title>London CSS/XHTML Workshop</title>
		<link>http://meyerweb.com/eric/thoughts/2009/01/29/london-cssxhtml-workshop/</link>
		<comments>http://meyerweb.com/eric/thoughts/2009/01/29/london-cssxhtml-workshop/#comments</comments>
		<pubDate>Thu, 29 Jan 2009 10:59:00 +0000</pubDate>
		<dc:creator>Eric Meyer</dc:creator>
				<category><![CDATA[(X)HTML]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Speaking]]></category>

		<guid isPermaLink="false">http://meyerweb.com/?p=1016</guid>
		<description><![CDATA[I'm going to be doing an all-new one-day workshop in London in early March, this time with a harder edge and a higher skill level.]]></description>
			<content:encoded><![CDATA[<p>
Hey all, and especially those of you in the EU: I&#8217;m going to be doing an all-new one-day workshop in London in early March via the offices of Carson Workshops, for whom I&#8217;ve done workshops in the past.  Previously I&#8217;ve done two-day gigs with a beginner-to-intermediate skill range, but this time we&#8217;re trying something different.  I&#8217;m going to get down and dirty with some tough topics, and really push hard at the limits of what CSS and semantic markup can do.
</p>
<p>
You can get <a href="http://carsonworkshops.com/2009/ericmeyer/">the details at the CW site</a>, and note the special price for the first quarter of the seats.  That&#8217;s right, this will be a small, intimate workshop, with plenty of chances for questions about and challenges to what I&#8217;m saying.  Previous workshops have featured some really great conversations among everyone there, and I expect the same this time around.
</p>
<p>
I had meant to blog this before life intervened and took me out of my wifi cloud (and more on that soon), so time is a little more of the essence than usual&#8212;if you know someone who you think might be interested, pass the word on, willya?  Thanks!
</p>]]></content:encoded>
			<wfw:commentRss>http://meyerweb.com/eric/thoughts/2009/01/29/london-cssxhtml-workshop/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Bahstahn: the Gathering</title>
		<link>http://meyerweb.com/eric/thoughts/2009/01/20/bahstahn-the-gathering/</link>
		<comments>http://meyerweb.com/eric/thoughts/2009/01/20/bahstahn-the-gathering/#comments</comments>
		<pubDate>Wed, 21 Jan 2009 02:12:27 +0000</pubDate>
		<dc:creator>Eric Meyer</dc:creator>
				<category><![CDATA[Travel]]></category>

		<guid isPermaLink="false">http://meyerweb.com/?p=1006</guid>
		<description><![CDATA[If you're in or near the greater Boston area, come on out for a big ol' geek gathering on 2 February 2009!]]></description>
			<content:encoded><![CDATA[<p>
<a href="http://unstoppablerobotninja.com/" rel="friend colleague met">The Robot</a> <a href="http://unstoppablerobotninja.com/entry/call-me-julie-mccoy/">speaks truth</a>: I will be visiting the northern reaches of the greater Boston area in the first few days of February to do some <a href="http://complexspiral.com/services/training/">client training</a> (which is one of the many things I do).  To celebrate, I&#8217;ve managed to pull the <a href="http://markupandstyle.org/">Markup &amp; Style Society</a> (which of course includes that simplest of bits, the inestimable <a href="http://simplebits.com/" rel="friend colleague met">Mr. C.</a>) out of hibernation, get them to link up with the <a href="http://www.buildguild.org/">Build Guild</a>, and have the two jointly sponsor a gathering open to all who wish to join us.  Welcome to the social!
</p>
<p>
This massively meritorious meeting of minds will take place on 2 February 2009 in historic Salem, MA:  <a href="http://upcoming.yahoo.com/event/1501235/">here&#8217;s the Upcoming entry</a> with all the details and RSVP action.  If you plan to be with us, make your voice heard.  Or, if you&#8217;re the fearsome and mighty <a href="http://robweychert.com/" rel="friend colleague met">Windhammer</a>, who rumor has it may also be there, bring forth thunder!  On the Upcoming page.
</p>
<p>
Hope to see you there!
</p>
]]></content:encoded>
			<wfw:commentRss>http://meyerweb.com/eric/thoughts/2009/01/20/bahstahn-the-gathering/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Seeking JavaScript Help</title>
		<link>http://meyerweb.com/eric/thoughts/2009/01/16/seeking-javascript-help/</link>
		<comments>http://meyerweb.com/eric/thoughts/2009/01/16/seeking-javascript-help/#comments</comments>
		<pubDate>Fri, 16 Jan 2009 11:31:49 +0000</pubDate>
		<dc:creator>Eric Meyer</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Projects]]></category>

		<guid isPermaLink="false">http://meyerweb.com/?p=1000</guid>
		<description><![CDATA[After the fantastic response to my last call for help, I'm back with another request for assistance, this time with JavaScript.]]></description>
			<content:encoded><![CDATA[<p>
Even though it turned out that there is no simple solution for <a href="http://meyerweb.com/eric/thoughts/2009/01/14/seeking-math-help/">the math problem I posted</a>, I learned a fair amount from the fantastic responses&#8212;thanks, everyone!&#8212;and eventually came up with a solution that worked for me.  (I&#8217;d like to say it was one of the iterative approaches posted, but none of them worked for me.  In the end, I brute-forced it.)  I&#8217;m hoping for a different outcome with my next question, which is about JavaScript.
</p>
<p>
Consider the following structure, which is a much-edited-down version of part of the <a href="http://hydesim.com/">HYDEsim</a> code:
</p>

<pre>
function Detonation(name,lat,lon,yield) {
    var scale = Math.pow(yield,1/3);
    var gz = new GLatLng(lat,lon);
    this.name = name;
    this.lon = lon;
    this.lat = lat;
    this.gz = gz;
    this.yield = yield;
    this.overpressure = {
        p30 : 0.108 * scale,
        p15 : 0.153 * scale,
        p10 : 0.185 * scale,
         p5 : 0.281 * scale,
         p1 : 0.725 * scale
    };
    this.psi30 = {
        radius: 0.108 * scale,
        overlay : {
            points: makePoints(this.gz,0.108 * scale)
        }
    };
    this.psi15 = {
        radius: 0.153 * scale,
        overlay : {
            points: makePoints(this.gz, 0.153 * scale)
        }
    };
    this.therm20 = {
        radius: thermDist(20,this.yield,0.33,conditions.visibility),
        overlay : {
            points: makePoints(
                this.gz,
                thermDist(20,this.yield,0.33,conditions.visibility)
            )
    };
    // ...and so on...
}
</pre>

<p>
There are two things I&#8217;ve tried and failed to do.  And tried, and tried, and tried; and failed, and failed, and failed.
</p>

<ol>
<li>Eliminate the redundant calculations of radii.  Note how I define a radius property in each case?  And then have to not use it when I create the overlay?  It seems like there must be a way to just define the value once for each subsection and then use it as many times as needed within that context.  How?</li>
<li>How do I make it so that all those properties and overlays and such automatically recalculate any time one of the &#8220;upper-level&#8221; terms changes?  As in, once I&#8217;ve created a new Detonation object <code>det</code>, how can I set things up so declaring <code>det.yield = 250;</code> will trigger recalculation of all the other pieces of the object?  At present, I&#8217;m just blowing away the existing <code>det</code> and creating a whole new one, which just seems clumsy and silly.  I have to believe there&#8217;s a better way.  I just can&#8217;t find it.</li>
</ol>

<p>
<strong>Please note:</strong> tossing off comments like &#8220;oh, just instantiate a mixin constructor with an extra closure&#8221; will be of no help at all, because I don&#8217;t understand what those terms mean.  Hell, I&#8217;m not even sure I used the words &#8220;object&#8221; and &#8220;property&#8221; correctly in my explanation above.  Similarly, pointing me to tutorials that use those terms liberally is unlikely to be of help, since the text will just confuse me.  Sample code (whether posted or in a tutorial) will help a great deal, because it will give me something to poke and prod and dissect.  That&#8217;s how I&#8217;ve always learned to program.  Actually, it&#8217;s how I&#8217;ve always learned anything.
</p>
<p>
As well, I&#8217;m absolutely willing to believe that there are much, much better ways to structure the object, but right now I really need to learn how those two things are accomplished in the context of what I already have.  Once I get familiar with those and finish up some other work, I can start thinking about more fundamental overhauls of the code (which needs it, but <em>not now</em>).
</p>
<p>
I really appreciate any concrete help you can give me.
</p>
<p>
<strong>Addendum:</strong> if you leave code in a comment, please just wrap it in a <code>code</code> element and use whatever indentation you like.  The indentation won&#8217;t show up when the post goes up, but I&#8217;ll go in after and wrap the <code>code</code> in a <code>pre</code> and then everything will be fine.  Sorry to those who&#8217;ve already gone to the effort of posting with indents or <code>nbsp</code> entities to try to preserve indentation!  As soon as I can dig up the right preference panel or plugin to allow <code>pre</code> in comments, I&#8217;ll do that, but for now I&#8217;ll manually edit in the needed <code>pre</code>s as comments are added.  THanks, and again, apologies to those who posted before I made this clear!
</p>]]></content:encoded>
			<wfw:commentRss>http://meyerweb.com/eric/thoughts/2009/01/16/seeking-javascript-help/feed/</wfw:commentRss>
		<slash:comments>21</slash:comments>
		</item>
		<item>
		<title>Seeking Math Help</title>
		<link>http://meyerweb.com/eric/thoughts/2009/01/14/seeking-math-help/</link>
		<comments>http://meyerweb.com/eric/thoughts/2009/01/14/seeking-math-help/#comments</comments>
		<pubDate>Wed, 14 Jan 2009 21:56:22 +0000</pubDate>
		<dc:creator>Eric Meyer</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[Tools]]></category>

		<guid isPermaLink="false">http://meyerweb.com/?p=994</guid>
		<description><![CDATA[So I have this equation that's great for finding one term.  Problem is, I need to solve for another term that's scattered all across the right side.  I'm hoping someone here has the mad algebra skills I managed to lose in the two decades since I last took a math class and can help me out.]]></description>
			<content:encoded><![CDATA[<p>
So I have this equation that&#8217;s great for finding one term.  Problem is, I need to solve for another term that&#8217;s scattered all across the right side.  I&#8217;m hoping someone here has the mad algebra skills I managed to lose in the two decades since I last took a math class and can help me out.
</p>
<p>
Here&#8217;s the original equation:
</p>

<p>
Q = (3.07 &#215; F &#215; Y &#215; (1 + 1.4 &#215; ((D/V) &#215; <em>e</em><sup>(-2 &#215; D/V)</sup>))) / D<sup>2</sup>
</p>

<p>
I want to be able to solve for D, not Q; in other words, have a single D on the left and everything else on the right of the equation.  F, Y, and V are all variable terms; the <em>e</em> is the classic irrational constant.  I tried for quite a while to do this and ran very firmly aground.  The best I managed was this minor simplification:
</p>

<p>
Q = (3.07 &#215; F &#215; Y &#215; (1 + 1.4 &#215; (D / (V &#215; <em>e</em><sup>(2 &#215; D/V)</sup>))) / D<sup>2</sup>
</p>

<p>
&#8230;and even that assumes that I did things correctly.  Here&#8217;s the original equation in pretty shoulda-done-it-in-MathML-but-oh-well form:
</p>

<img src="http://meyerweb.com/pix/2009/thermal-equation.png" alt="" class="standalone" />

<p>
I can shuffle the chairs around, as it were, but never really get anywhere close to having a single D on the left.  &#8220;But it&#8217;s so <em>easy!</em>&#8220;, you may well be shouting.  That&#8217;s why you&#8217;re working for Google and I&#8217;m not. 
</p>
<p>
I remember having questions just like this on tests back in college: &#8220;Given this equation, solve for blah&#8221;.  It&#8217;s been too long, though, and in all honesty I was never that great at this sort of thing in the first place. Help, please?
</p>

<p><strong>[Update 14 Jan 09]</strong>: several commenters have shown that what I&#8217;m trying to do is impossible.  Frustrating, but that&#8217;s math for you.  Looks like I&#8217;ll have to take another approach.</p>]]></content:encoded>
			<wfw:commentRss>http://meyerweb.com/eric/thoughts/2009/01/14/seeking-math-help/feed/</wfw:commentRss>
		<slash:comments>43</slash:comments>
		</item>
	</channel>
</rss>
