<?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>In Silico</title>
	<atom:link href="http://sharonminsuk.com/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://sharonminsuk.com/blog</link>
	<description></description>
	<lastBuildDate>Sat, 19 Nov 2011 10:44:06 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Clearing cache has no effect on HTML5 localStorage or sessionStorage (but clearing cookies does!)</title>
		<link>http://sharonminsuk.com/blog/2011/03/21/clearing-cache-has-no-effect-on-html5-localstorage-or-sessionstorage/</link>
		<comments>http://sharonminsuk.com/blog/2011/03/21/clearing-cache-has-no-effect-on-html5-localstorage-or-sessionstorage/#comments</comments>
		<pubDate>Tue, 22 Mar 2011 03:15:26 +0000</pubDate>
		<dc:creator>Sharon Minsuk</dc:creator>
				<category><![CDATA[HTML5]]></category>
		<category><![CDATA[Web development]]></category>
		<category><![CDATA[cache]]></category>
		<category><![CDATA[cookies]]></category>
		<category><![CDATA[localStorage]]></category>
		<category><![CDATA[sessionStorage]]></category>

		<guid isPermaLink="false">http://sharonminsuk.com/blog/?p=195</guid>
		<description><![CDATA[The other day I attended a session on HTML5 and JavaScript at the East Bay HTML5 meetup. We had a demo of canvas and SVG by the folks at sparkart, a presentation on Modernizr by our host, Michael Enslow, and &#8230; <a href="http://sharonminsuk.com/blog/2011/03/21/clearing-cache-has-no-effect-on-html5-localstorage-or-sessionstorage/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>The other day I attended <a href="http://www.meetup.com/East-Bay-HTML5/events/16650929/" target="_blank">a session on HTML5 and JavaScript</a> at the East Bay HTML5 meetup. We had a demo of canvas and SVG by the folks at <a href="http://www.sparkart.com/" target="_blank">sparkart</a>, a presentation on Modernizr by our host, <a href="http://www.meetup.com/East-Bay-HTML5/members/8465357/" target="_blank">Michael Enslow</a>, and another on HTML5 storage by Andrew Hedges, who just <a href="http://andrew.hedges.name/blog/2011/03/20/html5-client-side-storage" target="_blank">posted his slides</a>.</p>
<p>After Andrew&#8217;s presentation, somebody asked whether the content of HTML5 storage would survive the user clearing the cache, and nobody in attendance was certain. In retrospect, I&#8217;m sure I already knew the answer to this, somewhere in the bowels of my memory, but it eluded me at the time. But I got curious and decided to test it out:<br />
<span id="more-195"></span></p>
<input type="text" placeholder="nothing currently stored" size="30" id="local" />
<input type="button" onclick="store_it('local', localStorage);" value="Store in local storage" /></p>
<input type="text" placeholder="nothing currently stored" size="30" id="session" />
<input type="button" onclick="store_it('session', sessionStorage);" value="Store in session storage" />
<p>The text boxes show what&#8217;s currently stored. Enter something in either one and click the button to store it. If you navigate to this page in a new window or tab, or quit and relaunch your browser and come back, localStorage will remain and sessionStorage will disappear.</p>
<p>Then try clearing your cache and reloading the page. It looks like everything survives. I only tried this in Firefox 3.6 and in Safari 4.1 and 5.0. Please try it out in the browser of your choice and leave a comment if you find different behavior anywhere. (Also, I&#8217;m not sure every detail of what I&#8217;ve done is cross-browser compatible, so please leave a comment if the basic functionality is missing in some browser that&#8217;s supposed to support this, and I&#8217;ll fix it.)</p>
<p>The way the Safari developer tool (the Web Inspector) lets you inspect this data suggests that it treats local storage more like cookies than like the cache. If you click on Storage, it shows three databases: &#8220;LOCALSTORAGE&#8221;, &#8220;SESSIONSTORAGE&#8221;, and &#8220;COOKIES&#8221;. Click on them and you can examine the contents of each. No sign of the cache in that panel.</p>
<p><script type="text/javascript" src="http://sharonminsuk.com/code/storage-test.js"></script></p>
]]></content:encoded>
			<wfw:commentRss>http://sharonminsuk.com/blog/2011/03/21/clearing-cache-has-no-effect-on-html5-localstorage-or-sessionstorage/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>Writing Browser Extensions</title>
		<link>http://sharonminsuk.com/blog/2011/01/29/writing-browser-extensions/</link>
		<comments>http://sharonminsuk.com/blog/2011/01/29/writing-browser-extensions/#comments</comments>
		<pubDate>Sat, 29 Jan 2011 08:58:04 +0000</pubDate>
		<dc:creator>Sharon Minsuk</dc:creator>
				<category><![CDATA[Web development]]></category>
		<category><![CDATA[Add-on-Con]]></category>
		<category><![CDATA[BHO]]></category>
		<category><![CDATA[browser add-on]]></category>
		<category><![CDATA[browser extension]]></category>
		<category><![CDATA[browser helper object]]></category>
		<category><![CDATA[She's Geeky]]></category>
		<category><![CDATA[XUL]]></category>

		<guid isPermaLink="false">http://sharonminsuk.com/blog/?p=163</guid>
		<description><![CDATA[Today at the She&#8217;s Geeky unConference in San Francisco, I gave a presentation on Writing Browser Extensions. It&#8217;s something I&#8217;ve been immersed in for the last several months. I started out knowing nothing about them, and after getting up to &#8230; <a href="http://sharonminsuk.com/blog/2011/01/29/writing-browser-extensions/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Today at the <a href="http://www.shesgeeky.org/">She&#8217;s Geeky unConference</a> in San Francisco, I gave a presentation on Writing Browser Extensions. It&#8217;s something I&#8217;ve been immersed in for the last several months. I started out knowing nothing about them, and after getting up to speed and producing a browser extension with versions for Firefox, Chrome, Safari and Internet Explorer, I thought it would be fun to share what I&#8217;ve learned. We had a small group of very interested participants, and I showed them the very basics of what the simplest extension code looks like. Mostly it was more an overview of what extensions do and how they work. The more difficult browsers (IE and Firefox) have way too much detail to do justice in an hour, and as I told them, the easier ones (Chrome and Safari, and probably Opera although I haven&#8217;t taken a look at that one) are so straightforward and have such good documentation that nobody really needs me to explain coding details, you can just go read the docs and be on your way in no time. I promised to post a list of useful links, and here they are.<span id="more-163"></span></p>
<h3>Example code:</h3>
<p>Here is some example code I showed the participants. It&#8217;s rather trivial, just a demo of the most minimal Google Chrome extension. It&#8217;s only four lines of JavaScript and simply inserts an image at the top of any page you navigate to.</p>
<ul>
<li>If viewing this page with Google Chrome, <a href="http://sharonminsuk.com/code/her_browsers_geeky.crx">you can install it</a>.</li>
<li><a href="http://sharonminsuk.com/code/her_browsers_geeky.zip">Download the source</a> as a .zip file.</li>
</ul>
<h3>Developer resources:</h3>
<p><strong>Chrome and Safari</strong><br />
These two are just joyfully easy.</p>
<ul>
<li><a href="http://code.google.com/chrome/extensions/getstarted.html">Google Chrome Extensions</a></li>
<li><a href="http://developer.apple.com/devcenter/safari/index.action">Safari Dev Center</a></li>
<li>and especially: <a href="http://developer.apple.com/library/safari/documentation/Tools/Conceptual/SafariExtensionGuide/Introduction/Introduction.html">Safari Extensions Development Guide</a></li>
</ul>
<p><strong>Firefox</strong><br />
Mozilla&#8217;s API offers vastly more power and freedom, at the cost of greater complexity. You control the browser chrome in an XML-based language called XUL, the Javascript is a bit trickier to program, and the documentation isn&#8217;t nearly as well organized. You have to really hunt for what you need. Below are a few good starting points. One thing I forgot to mention during my presentation is that Mozilla is working on a special SDK called Jetpack, currently in beta, that presents a simpler, more manageable API but with more limited power (no XUL, for one thing). Much of the time you can do without the most advanced features, so this should suit many projects well and present a much gentler learning curve. I haven&#8217;t investigated deeply yet, but I imagine it might make Firefox a comparable developer experience to Chrome and Safari. (One can hope. <img src='http://sharonminsuk.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> ) Read about it at the links below.</p>
<ul>
<li><a href="https://developer.mozilla.org/En/Developing_add-ons">Mozilla Developer Network: Developing add-ons</a></li>
<li><a href="https://addons.mozilla.org/en-US/developers">Add-on Developer Hub</a></li>
<li><a href="http://kb.mozillazine.org/Extension_development">mozillaZine: Extension development</a></li>
<li><a href="https://developer.mozilla.org/en/Extensions/Updating_extensions_for_Firefox_4">Updating extensions for Firefox 4</a></li>
</ul>
<p><strong>Internet Explorer (MSDN)</strong><br />
Now this is a whole different kettle of fish, of course. The parts list is a lot bigger; I only became familiar with &#8220;browser helper objects&#8221; (BHOs), which was the part I needed. BHOs are written normally in C++, and particularly if you&#8217;re not used to Windows development, it can be slow going. The documentation is extensive, fragmented, and not at all self-contained; it bleeds into the rest of Windows development so there&#8217;s no real boundary around what you might have to know. And to deploy your app to the world, you need to create a separate installer, an adventure in itself. The links below are just a starting point. You&#8217;re gonna have to want this one bad! But it is definitely possible to get somewhere with this. The tutorial described below as &#8220;key&#8221; was extremely important for me. There was lots left to figure out after that, but I never would have gotten anywhere without that one.</p>
<ul>
<li>Overview of the whole parts list: <a href="http://msdn.microsoft.com/en-us/library/aa753587.aspx">Browser Extensions</a></li>
<li>Key tutorial on BHOs: <a href="http://msdn.microsoft.com/en-us/library/bb250489.aspx">Building Browser Helper Objects with Visual Studio 2005</a></li>
<li><a href="http://msdn.microsoft.com/en-us/library/bb250436.aspx">Browser Helper Objects: The Browser the Way You Want It</a></li>
</ul>
<h3>Awesome annual conference, December in Silicon Valley:</h3>
<p>I really enjoyed discovering this and attending in 2010. I was disappointed that Apple and Microsoft didn&#8217;t participate, though. MS had participated in previous years. Safari didn&#8217;t yet support extensions in 2009, so 2010 would have been Apple&#8217;s chance to make a big deal about it. Google, Mozilla, and Opera (all the way from Norway) were all there, which was great.</p>
<ul>
<li><a href="http://addoncon.com/">Add-on-Con</a></li>
<li><a href="http://vimeo.com/addoncon/videos">Videos of sessions from &#8217;08 and &#8217;09 cons</a> (Hopefully they&#8217;re working on putting up videos from 2010.)</li>
</ul>
<h3>Extension repositories/galleries/web-stores:</h3>
<ul>
<li><a href="http://code.google.com/chrome/webstore/docs/index.html">Chrome Web Store</a></li>
<li><a href="https://extensions.apple.com/">Safari Extensions Gallery</a></li>
<li><a href="https://addons.mozilla.org/">addons.mozilla.org (AMO)</a></li>
<li><a href="http://ieaddons.com/en/">IE Add-ons Gallery</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://sharonminsuk.com/blog/2011/01/29/writing-browser-extensions/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Impact of Graphic Design on Software Engineering</title>
		<link>http://sharonminsuk.com/blog/2011/01/26/the-impact-of-graphic-design-on-software-engineering/</link>
		<comments>http://sharonminsuk.com/blog/2011/01/26/the-impact-of-graphic-design-on-software-engineering/#comments</comments>
		<pubDate>Thu, 27 Jan 2011 02:46:59 +0000</pubDate>
		<dc:creator>Sharon Minsuk</dc:creator>
				<category><![CDATA[Web development]]></category>

		<guid isPermaLink="false">http://sharonminsuk.com/blog/?p=157</guid>
		<description><![CDATA[As a software engineer, it&#8217;s easy to think of graphic design and text composition as afterthoughts. They&#8217;re not functional. I make the software work, somebody else figures out what it should look like, and what it should say. But good &#8230; <a href="http://sharonminsuk.com/blog/2011/01/26/the-impact-of-graphic-design-on-software-engineering/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>As a software engineer, it&#8217;s easy to think of graphic design and text composition as afterthoughts. They&#8217;re not functional. I make the software work, somebody else figures out what it should look like, and what it should say. But good writing and graphic design can actually have a big impact on the engineering task.<span id="more-157"></span></p>
<p>Previously I described <a href="http://sharonminsuk.com/blog/2010/07/22/css3-text-truncation-and-ellipses-even-in-firefox-and-without-the-styling-constraints/">my solution</a> for getting around a problem with text truncation using the new CSS3 text-overflow:ellipsis property. The property works great, making text truncation much cleaner and more elegant than it used to be – in all browsers except Firefox, which doesn&#8217;t support it yet. And there&#8217;s even a nice technique to get the effect working in Firefox as well. But that technique comes with some constraints: the block of text to be truncated can only handle very simple markup. Essentially, the entire text must be uniformly styled, because it can&#8217;t have nested HTML elements. So if you want part of it to be black and part to be red, you&#8217;re out of luck.</p>
<p>My company, Kachingle, has a JavaScript widget (the &#8220;Medallion&#8221;) that needed just such color variation to highlight important words in a truncated line of text, and I <a href="http://sharonminsuk.com/blog/2010/07/22/css3-text-truncation-and-ellipses-even-in-firefox-and-without-the-styling-constraints/">tore my hair out</a> trying to find a way to get the text looking like it was supposed to in Firefox. I did manage to succeed, finally, and wrote that long post about how to do it if you need to. But today I learned that it&#8217;s possible to avoid all that pain.</p>
<p>Kachingle is working on a rebranding, so I&#8217;m working with our new designer, Frédéric Ranft, to rebuild that Medallion from scratch, to match his new site design. Frédéric does beautiful work. He designs visuals with impact, and then realizes them in HTML and CSS that are a joy to read, because they&#8217;re extremely simple and clean. I have to translate this into a working PHP template and sprinkle with JavaScript, and I couldn&#8217;t be happier than to work with his code.</p>
<p>But I&#8217;ve been anticipating some pain when the moment comes to make sure, once again, that the overflow text renders correctly in Firefox. Even now that I know the solution, there was still going to be a trial-and-error process to get it just right. But today I was looking over Frédéric&#8217;s HTML and it suddenly struck me that it&#8217;s going to be trivially easy this time. We&#8217;ll still need the special trick for Firefox that I had to dig up on the web, but we won&#8217;t need to fight with it this time – it&#8217;s going to just work, simple as that. Why? Because we&#8217;re starting from a better, cleaner design.</p>
<p>Now, when you get down to brass tacks, there&#8217;s nothing earth-shattering going on. The relevant difference is simply the content and layout of the text in question. In the old design, the highlighted text was embedded into a longer phrase, so it needed to be differentiated from the surrounding text by its styling; this is what caused all the trouble. The new design is less wordy, and the same text now stands by itself, so there&#8217;s no need to apply complex styling. But what gave me pause about this small change is the way the simple, clean writing and graphic design, expressed in simple, clean markup design, led to a really easy coding job for me. (So easy in fact that he can do it without me. I couldn&#8217;t have it any easier!)  The thing is, Frédéric wasn&#8217;t going out of his way to design around the truncation and styling problem. I&#8217;m sure it wasn&#8217;t even in his mind. But what he produced will be problem-free. This drives home for me the importance of the graphic design as an input to the engineering. I can easily see how a designer could make something pretty but in doing so, give engineers a big headache. But if it&#8217;s done right, the pretty display can be a gift to the engineers instead, having repercussions throughout the project.</p>
<p>I can&#8217;t show you the new design yet, of course. But check back later. When the rebranding goes live, those Medallions over in my sidebar and down in the footer will magically change to the new design. The ones in <a href="http://sharonminsuk.com/blog/2010/07/22/css3-text-truncation-and-ellipses-even-in-firefox-and-without-the-styling-constraints/">my original blog post</a> were just screenshots so those will preserve a bit of history. It should make for an interesting comparison.</p>
]]></content:encoded>
			<wfw:commentRss>http://sharonminsuk.com/blog/2011/01/26/the-impact-of-graphic-design-on-software-engineering/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Learning WordPress both as blogger and developer</title>
		<link>http://sharonminsuk.com/blog/2011/01/24/learning-wordpress-both-as-blogger-and-developer/</link>
		<comments>http://sharonminsuk.com/blog/2011/01/24/learning-wordpress-both-as-blogger-and-developer/#comments</comments>
		<pubDate>Mon, 24 Jan 2011 08:51:49 +0000</pubDate>
		<dc:creator>Sharon Minsuk</dc:creator>
				<category><![CDATA[Web development]]></category>

		<guid isPermaLink="false">http://sharonminsuk.com/blog/?p=139</guid>
		<description><![CDATA[I recently started attending meetings of the East Bay WordPress Meetup Group, including today&#8217;s fun WordPress Plugin Hackathon, hosted and presented by Website in a Weekend&#8216;s Dave Doolin and TechLiminal&#8216;s Anca Mosoiu. (That&#8217;s pronounced &#8220;muh-show-you&#8221;, as in, &#8220;WordPress is easy &#8230; <a href="http://sharonminsuk.com/blog/2011/01/24/learning-wordpress-both-as-blogger-and-developer/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I recently started attending meetings of <a href="http://www.meetup.com/Eastbay-WordPress-Meetup/">the East Bay WordPress Meetup Group</a>, including today&#8217;s fun <a href="http://www.meetup.com/Eastbay-WordPress-Meetup/calendar/15803203/">WordPress Plugin Hackathon</a>, hosted and presented by <a href="http://website-in-a-weekend.net/">Website in a Weekend</a>&#8216;s Dave Doolin and <a href="http://www.meetup.com/Eastbay-WordPress-Meetup/venue/1051359/">TechLiminal</a>&#8216;s Anca Mosoiu. (That&#8217;s pronounced &#8220;muh-show-you&#8221;, as in, &#8220;WordPress is easy and fun. Here, let Mosoiu!&#8221; Sorry, Anca, I just couldn&#8217;t resist <img src='http://sharonminsuk.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> .) I learned some cool stuff about hacking WordPress (in a good way), and also got some advice for beginning bloggers: &#8220;you should blog every day!&#8221; And despite my newbie-ness, I was able to contribute a bit by helping others debug their PHP a little.</p>
<p>Well, I don&#8217;t know if I&#8217;ll achieve <em>every day</em> – <a href="http://sharonminsuk.com/blog/2010/07/18/to-blog-or-not-to-blog/">nor that I really ought to</a>! But let&#8217;s see if I can get myself in some kind of a habit, here. If you look at the dates on my posts, it&#8217;s obvious I&#8217;ve been a little sluggish getting into the swing of things. I will try to post more about what I&#8217;ve been up to lately. Let&#8217;s start with what I learned today!<span id="more-139"></span></p>
<p>Plugins, shortcodes, and custom fields. I much enjoyed Dave&#8217;s walk-through of a very simple plug-in. We first set up a development environment on our local machines. Easy as: 1. An apache/mysql/php stack (I already had WAMPServer running on my PC); 2: An editor (they recommended the Aptana Studio IDE which I installed for this occasion yesterday since I don&#8217;t do much development on this machine, but to be perfectly honest I missed the intro to using Aptana if there was one, and didn&#8217;t really feel like getting up to speed, so I just did this simple task in WordPad, which was perfectly adequate); 3: locally installed a test WordPress blog, rather than unleashing development code on <em>this</em> blog! Creating a simple plugin was pretty straightforward. You just create a PHP script in your wp-content/plugins directory, and it magically appears in the plugins page of your WP dashboard to be activated like any other plugin. Of course, it doesn&#8217;t do anything until you add some code.</p>
<p>Dave walked us through a simple plugin to add some special navigation to individual posts, for example if you have a series of posts on a single topic and you want to have links to the other posts in the series. It consists of three simple elements. First, you use two custom fields (a standard WP feature found on your Edit Post page) to indicate which other posts you want to link to as &#8220;previous&#8221; and &#8220;next&#8221;; each custom field has a name that the plugin will recognize, and a url for the post to link to. Then you write a PHP function in the plugin script that will recognize these custom fields and build some HTML containing links to those URLs. It shouldn&#8217;t produce any output to the page; instead, the function just returns the HTML as a string. Finally you just need a shortcode so that you can invoke this function from your blog posts. I&#8217;d heard of shortcodes before but this took the mystery out. They&#8217;re just a simple name that invokes the function you added to the plugin script. I named my shortcode &#8220;post-series&#8221;, so I just type that right into my post in square brackets (&#8220;[post-series]&#8220;), and it magically invokes the PHP function and is replaced by the HTML the function returns. And voilà!</p>
<div id="attachment_141" class="wp-caption aligncenter" style="width: 656px"><a href="http://sharonminsuk.com/blog/wp-content/uploads/2011/01/Hackathon-WP-Plugin-cropped2.jpg"><img class="size-full wp-image-141" style="border: 1px solid black;" title="Screenshot of plugin output from WordPress Hackathon" src="http://sharonminsuk.com/blog/wp-content/uploads/2011/01/Hackathon-WP-Plugin-cropped2.jpg" alt="" width="646" height="224" /></a><p class="wp-caption-text">Screenshot of plugin output from WordPress Hackathon</p></div>
<p>Fun stuff! Thanks, Dave!</p>
]]></content:encoded>
			<wfw:commentRss>http://sharonminsuk.com/blog/2011/01/24/learning-wordpress-both-as-blogger-and-developer/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Science for the Masses</title>
		<link>http://sharonminsuk.com/blog/2010/12/02/science-for-the-masses/</link>
		<comments>http://sharonminsuk.com/blog/2010/12/02/science-for-the-masses/#comments</comments>
		<pubDate>Thu, 02 Dec 2010 10:36:56 +0000</pubDate>
		<dc:creator>Sharon Minsuk</dc:creator>
				<category><![CDATA[Biology]]></category>
		<category><![CDATA[Science Access Center]]></category>

		<guid isPermaLink="false">http://sharonminsuk.com/blog/?p=131</guid>
		<description><![CDATA[I was honored to be invited to participate the other day as the &#8220;special guest scientist&#8221; at the weekly Science News Discussion put on by the Science Access Center. This is a brand new non-profit organization dedicated to bringing science &#8230; <a href="http://sharonminsuk.com/blog/2010/12/02/science-for-the-masses/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I was honored to be invited to participate the other day as the &#8220;special guest scientist&#8221; at the weekly Science News Discussion put on by the <a href="http://www.facebook.com/pages/The-Science-Access-Center/166347740065941#!/pages/The-Science-Access-Center/166347740065941?v=info" target="_blank">Science Access Center</a>. This is a brand new non-profit organization dedicated to bringing science to the general public. Each week they host an informal science discussion (in Berkeley, CA), bringing together members of the public and at least one scientist. This was just their second one ever. (They&#8217;re so new they don&#8217;t have their own website yet, which is why the links here are to Facebook.)</p>
<p>The discussion was <a href="http://www.facebook.com/notes/the-science-access-center/tuesday-11302010-was-a-blast/107553182649138" target="_blank">wide ranging</a> and certainly covered territory way beyond my expertise. It was both fun and humbling. I&#8217;m pretty sure this roomful of interested lay people who pay attention to science knew more science than I do. While I was scrambling to get lab results, publish papers, and keep up with the most esoteric minutiae of research related closely to my own, these folks had time to read up on nuclear physics, immunology, and volcanoes. Hopefully everybody learned a little something – I know I did!</p>
<p>Anyway, I was glad to be able to contribute in some small way to this fledgling organization in its early stages. Looking forward to seeing where this goes!</p>
]]></content:encoded>
			<wfw:commentRss>http://sharonminsuk.com/blog/2010/12/02/science-for-the-masses/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Whence the Widget?</title>
		<link>http://sharonminsuk.com/blog/2010/08/24/whence-the-widget/</link>
		<comments>http://sharonminsuk.com/blog/2010/08/24/whence-the-widget/#comments</comments>
		<pubDate>Wed, 25 Aug 2010 00:26:00 +0000</pubDate>
		<dc:creator>Sharon Minsuk</dc:creator>
				<category><![CDATA[Web development]]></category>
		<category><![CDATA[click]]></category>
		<category><![CDATA[development (as in software not embryo)]]></category>
		<category><![CDATA[events]]></category>
		<category><![CDATA[iframe]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Kachingle]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[mouse]]></category>

		<guid isPermaLink="false">http://sharonminsuk.com/blog/?p=113</guid>
		<description><![CDATA[Just added a new widget to my sidebar. It&#8217;s a red-letter day because I&#8217;m the one who just finished programming this widget, and it was just released today by the company where I work, Kachingle. The new one does the &#8230; <a href="http://sharonminsuk.com/blog/2010/08/24/whence-the-widget/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Just added a new widget to my sidebar. It&#8217;s a red-letter day because I&#8217;m the one who just finished programming this widget, and it was just released today by the company where I work, <a href="http://kachingle.com/">Kachingle</a>.</p>
<p>The new one does the same thing as the other one that was there already; it just looks different. (Sorry I haven&#8217;t had a chance to say much here about what these widgets are for; maybe that will be another post. But mouse over one of them and you&#8217;ll be on your way to finding out&#8230;)</p>
<p>In retrospect, it&#8217;s eye-opening for me to have seen what goes into creating something like this. We had a widget (the &#8220;Kachingle Medallion&#8221;) with two different display styles for our users to choose from, and we simply wanted to create a third design. Easy, right? It&#8217;s just a bit of art. But it took a long time!</p>
<p>Originally, there was just one Medallion style.<span id="more-113"></span> I&#8217;ve added one of those originals to the footer of this blog for comparison. It&#8217;s pretty big, so the company created a second, narrower version of it that could fit more easily in sidebars (the similar-looking one in my sidebar over there&#8230;). When I joined the company, that was the status.</p>
<p>As I became involved with maintaining and developing the Javascript code behind the Medallion, I learned that it loaded two entirely different Javascript files for the two different designs. Any time I modified the function of the Medallion, I had to make the change in two places. And the only difference between them was a few hard-coded details of the dimensions. (Not even the layout itself, which is handled on the server side; only the dimensions of the iframe and its containing div are handled by the Javascript.) It was obvious that this should have been coded into a single script accessing a small table of style-specific parameters. Not only would it simplify development and maintenance of the code in general, it would also make it trivial (uh&#8230; hah!) to add additional styles, if we wished. So I did that. Back then I don&#8217;t think I fully anticipated where it would lead, I just knew it would make my life easier, and encourage creative thinking about the possibilities. But it was the first step toward today&#8217;s release, and that was back in March.</p>
<p>Then somebody came up with the idea of the &#8220;mini-Medallion&#8221;, and the associated &#8220;overlay&#8221; that pops up when you mouse over it. (Go ahead, give it a try, I&#8217;ll wait&#8230;) In those days, all the user controls appeared as a drop-down when you moused over. The wide Medallion, with the drop-down showing, looked exactly like (strangely enough!) the pop-up overlay you see here. The narrow Medallion had a similar drop-down, but fitting the same text and links into a narrower layout to match the width of the Medallion itself. The new idea was to have a new, still smaller, more fun and modern-looking Medallion. It made a lot more sense to switch to an overlay approach than to redesign that drop-down. This also has advantages from a marketing perspective because it frees the old drop-down section from the size constraints of the Medallion, and we can put more interesting content in it (something we&#8217;re working on now). So a major project for me was to redesign the Javascript to pop up an overlay instead of a drop-down. That had its own tricky issues and took some time.</p>
<p>Ready to make a mini-Medallion yet? Nope! Part of the point of a mini-Medallion is to make it easier to incorporate into a page layout on mobile devices. In the sidebar, it would often be eliminated entirely when a page was viewed on mobile; the small size of the mini would facilitate including it within the body of each post instead. But that required other changes, not just small size.</p>
<p>Being included in each post means the Medallion needs to appear multiple times on a page. The original design was only allowed to appear once, and contained HTML that prevented more (id attribute), as well as overly simple Javascript that couldn&#8217;t handle more. So another project along the way was to generalize the code to allow multiple instances on a page. And without causing the older version to break, since it was already installed on our users&#8217; sites.</p>
<p>Furthermore, the Medallions are activated by mouseover, and there&#8217;s no such thing as a mouseover in a mobile browser! (The stopgap solution had been to leave the drop-down always open on mobile instead of being activated by the user. But this made the Medallions even bigger! And the new mini-Medallion we were designing didn&#8217;t even have such a drop-down.) So I had to make the Medallion clickable.</p>
<p>This turned out to be non-trivial. For one thing, because it&#8217;s an iframe, the host page can&#8217;t see the clicks. (In a non-mobile browser it can see a mouseover as you cross the edge of the iframe or surrounding div. But a click inside the iframe is completely hidden.) That was a head-scratcher for me for awhile until I figured out how to get around that problem. (Tip of the day: a transparent div absolutely positioned in front of the iframe does the job nicely, thanks!)</p>
<p>And yet, it still didn&#8217;t work on mobile! Some crazy subtleties in the event models (yeah, plural; of course they aren&#8217;t all the same!) of mobile browsers were at fault. This was my introduction to programming for mobile, and solving this one didn&#8217;t just involve scratching my head, but pulling out a lot of my hair! I&#8217;m happy to say that it now seems to work well in Mobile Safari for iPhone, in the native Android browser, and in Opera Mini on both platforms.</p>
<p>And all of the above is only the part I worked on myself. There was also all the work by other people — several graphic designers involved in creating prototypes, preparing the final artwork (in several versions since the Medallion that finally appears is color-coded according to the status of the visitor to the site), and wrapping it all up with some HTML and CSS. I then incorporated their work into the PHP templates used by our server to deliver the right version to the visitor.</p>
<p>Five months! Just for that little thing! I had other projects along the way, so it wasn&#8217;t a full-time five months, but it has all been a major part of what I&#8217;ve done since I joined the company back in February. I find it striking when I look back on it. Today at Kachingle we&#8217;re celebrating!</p>
]]></content:encoded>
			<wfw:commentRss>http://sharonminsuk.com/blog/2010/08/24/whence-the-widget/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>All Mimsy Were the Ribosomes!</title>
		<link>http://sharonminsuk.com/blog/2010/08/19/all-mimsy-were-the-ribosomes/</link>
		<comments>http://sharonminsuk.com/blog/2010/08/19/all-mimsy-were-the-ribosomes/#comments</comments>
		<pubDate>Fri, 20 Aug 2010 02:42:10 +0000</pubDate>
		<dc:creator>Sharon Minsuk</dc:creator>
				<category><![CDATA[Biology]]></category>
		<category><![CDATA[genetic code]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://sharonminsuk.com/blog/?p=101</guid>
		<description><![CDATA[I just came across the most wonderful find. Lewis Carroll meets Woodstock meets RNA (nature&#8217;s software). The 13-minute video Protein Synthesis: An Epic on the Cellular Level was filmed by students at my alma mater, Stanford University, in 1971. I &#8230; <a href="http://sharonminsuk.com/blog/2010/08/19/all-mimsy-were-the-ribosomes/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I just came across the most wonderful find. Lewis Carroll meets Woodstock meets RNA (nature&#8217;s software). The 13-minute video <a href="http://www.youtube.com/watch?v=u9dhO0iCLww">Protein Synthesis: An Epic on the Cellular Level</a> was filmed by students at my alma mater, Stanford University, in 1971. I later saw it in one of my biology classes there, and never forgot it. This is a classic. A dance and poetry interpretation of the chemical synthesis of protein molecules based on the genetic information encoded in the RNA.</p>
<p>The YouTube link happened to be mentioned in a discussion in the &#8220;Computational Biology&#8221; LinkedIn group about how to teach biology to programmers. I&#8217;m not sure this video will do the trick, but if you already know a little something about the process of protein synthesis (by analogy, the execution of the code), or just enjoy creative expression, you will find this really fun &mdash; especially if you have a fondness for the 60&#8242;s! I&#8217;m really glad I ran across the link.</p>
]]></content:encoded>
			<wfw:commentRss>http://sharonminsuk.com/blog/2010/08/19/all-mimsy-were-the-ribosomes/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>CSS3 text truncation and ellipses: even in Firefox, and without the styling constraints</title>
		<link>http://sharonminsuk.com/blog/2010/07/22/css3-text-truncation-and-ellipses-even-in-firefox-and-without-the-styling-constraints/</link>
		<comments>http://sharonminsuk.com/blog/2010/07/22/css3-text-truncation-and-ellipses-even-in-firefox-and-without-the-styling-constraints/#comments</comments>
		<pubDate>Fri, 23 Jul 2010 06:40:51 +0000</pubDate>
		<dc:creator>Sharon Minsuk</dc:creator>
				<category><![CDATA[CSS3]]></category>
		<category><![CDATA[ellipses]]></category>
		<category><![CDATA[ellipsis]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[Kachingle]]></category>
		<category><![CDATA[text-overflow]]></category>
		<category><![CDATA[truncation]]></category>

		<guid isPermaLink="false">http://sharonminsuk.com/blog/?p=27</guid>
		<description><![CDATA[[Update: This trick became obsolete when Firefox 4 was released in the first half of 2011, when Mozilla removed the features that made this workaround possible. So, for a time, there was no easy way in Firefox to get the &#8230; <a href="http://sharonminsuk.com/blog/2010/07/22/css3-text-truncation-and-ellipses-even-in-firefox-and-without-the-styling-constraints/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><em>[<strong>Update:</strong> This trick became obsolete when Firefox 4 was released in the first half of 2011, when Mozilla removed the features that made this workaround possible. So, for a time, there was no easy way in Firefox to get the text truncation with ellipsis at all. However, beginning with Firefox 7, text-overflow: ellipsis is finally supported. Yay!]</em></p>
<p><em>CSS3 provides a great convenience when it comes to truncating too-long text: the text-overflow property, which automatically selects the best truncation point and adds ellipses. Unfortunately, it doesn&#8217;t work in Firefox. There&#8217;s a hack to make Firefox do this, too, but it comes with tight constraints on the structure of your HTML, preventing any but the absolute simplest text styling. Here&#8217;s a way to get around those constraints and style your text however you want.</em></p>
<p>For my first &#8220;serious&#8221; post in this blog, I&#8217;m definitely diving into the deep end of the pool, because I am by no means a CSS expert; I&#8217;m not even all that good at it. But I seem to have hit upon the answer (or at least the last 10% of the answer) to a problem that other people are struggling with, too, so I thought I should share it – and get off my duff and finally launch this blog before I forget what I did!<span id="more-27"></span></p>
<h3>The problem: automatic text truncation</h3>
<p>In my work at Kachingle, I&#8217;m responsible for the widget we call the &#8220;Kachingle Medallion&#8221;. This medallion sits on participating websites, and we serve it up dynamically, customizing it with a color-coded coin and the number of &#8220;Kachinglers&#8221; for each site. But now I needed to further customize it by adding the name of the hosting website:</p>
<p><img class="aligncenter size-full wp-image-30" src="http://sharonminsuk.com/blog/wp-content/uploads/2010/07/medallion1_works4shortNeedsEllipses.png" alt="image of medallion with a short site name that fits; text on three lines reads: 2 Kachinglers for Sharon's test site. How about you?" width="159" height="76" /></p>
<p>Since the site names are provided by our users, of course they can be any length. And that means we need a way of truncating the name when it&#8217;s too long, and adding an ellipsis.</p>
<p>One could always impose a simple character length limit to decide where to truncate, but that would be less than ideal here. The size of the space available is constrained, and we&#8217;d like the ellipses always to appear at the right edge, allowing as many characters as will fit, but no more. That number will be different depending on whether the site name contains lots of i&#8217;s or lots of W&#8217;s; and it will change if I happen to change the dimensions of the containing element or the style of the text. What&#8217;s needed is a way to truncate at the time the text is rendered, based on its rendered dimensions.</p>
<h3>CSS3 text-overflow (except in Firefox)</h3>
<p>Justin Maxwell&#8217;s fabulous article, <a href="http://mattsnider.com/css/css-string-truncation-with-ellipsis/">CSS String Truncation with Ellipsis</a>, starts by explaining the basic CSS3 solution for this. Most modern browsers already support the CSS3 text-overflow property, which will automatically calculate the right place to truncate text, and add the ellipsis. In my case, like this:</p>
<pre><code>&lt;p class="ellipsis"&gt;
    2 Kachinglers
    &lt;br /&gt;for &lt;span class="emphasize"&gt;Sharon's test site&lt;/span&gt;
    &lt;br /&gt;How about you?
&lt;/p&gt;</code></pre>
<p>where the &#8220;ellipsis&#8221; rule gives me the required properties for the truncation:</p>
<pre><code>.ellipsis {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}</code></pre>
<p>and the &#8220;emphasize&#8221; rule gives me my highlighting. So now, when I replace &#8220;Sharon&#8217;s test site&#8221; with &#8220;Site With a Really Long Name&#8221;, I get this:</p>
<p><img class="aligncenter size-full wp-image-49" src="http://sharonminsuk.com/blog/wp-content/uploads/2010/07/medallion2_EllipsesWorksInSafari.png" alt="image of medallion with correct truncation and correct styling" width="159" height="77" /></p>
<p>Alas, I said &#8220;most&#8221; modern browsers. We can include Opera by using their proprietary name for the same property, -o-text-overflow. (And Justin suggests IE8 requires -ms-text-overflow, although it seemed to work without it for me.) But unfortunately, Firefox doesn&#8217;t support this at all yet, by any name whatsoever; so the exact same code renders in Firefox like this:</p>
<p><img class="aligncenter size-full wp-image-51" src="http://sharonminsuk.com/blog/wp-content/uploads/2010/07/medallion2_DoesntWorkInFirefox.png" alt="image of same code rendered in Firefox with non-truncated text overflowing the margins" width="159" height="77" /></p>
<h3>The very clever work-around for Firefox</h3>
<p>Justin goes on to explain a work-around, <a href="http://www.rikkertkoppes.com/thoughts/2008/6/">originally worked out by Rikkert Koppes</a>, which simulates this feature in Firefox. I won&#8217;t repeat all the details here but I urge you to check out both articles. The technique requires adding the &#8220;-moz-binding&#8221; property to my .ellipsis class, and linking that to a special XML file, like this:</p>
<pre><code>.ellipsis {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    -o-text-overflow: ellipsis;	/* required for Opera */
    -ms-text-overflow: ellipsis;	/* required for IE8, allegedly */
    -moz-binding: url('ellipsis.xml#ellipsis');    /* for Firefox; details <a href="http://mattsnider.com/css/css-string-truncation-with-ellipsis/">here</a> */
}</code></pre>
<p>That last line will have no effect on the other browsers, so I should be all set.</p>
<p>Unfortunately, implementing this solution has some requirements that force me to change around my HTML a bit. If I simply enhance my .ellipsis class as described above, the <code>&lt;span&gt;</code> containing my highlighted text disappears entirely in Firefox! As do the <code>&lt;br /&gt;</code> elements between the lines. That&#8217;s because, as Justin explains, this technique constrains the truncated text to contain only minimal markup structure. It can&#8217;t contain &#8220;mixed&#8221; content, e.g., text next to other nested elements, as I have above. This makes it hard to apply any but the simplest styling to the text.</p>
<p>No problem, I thought &#8212; I&#8217;ll just put the .ellipsis class on the <code>&lt;span&gt;</code> itself, instead of on the paragraph:</p>
<pre><code>&lt;p&gt;
    5 Kachinglers
    &lt;br /&gt;for &lt;span class="ellipsis emphasize"&gt;Site With a Really Long Name&lt;/span&gt;
    &lt;br /&gt;How about you?
&lt;/p&gt;</code></pre>
<p>But this caused a cascade of other problems. Because now the truncation point (in all browsers, not just Firefox) is calculated relative to the right edge of the span instead of the right edge of the (fixed width) paragraph, and the span overflows well past the edge of the paragraph, making any truncation or ellipsis invisible. In order to rein it in, I need to apply style display:block to it. But that in turn prevents it from appearing on the same line with the preceding text (&#8220;for&#8221;)! (Admittedly, this was where my inexperience with CSS was apparent, and maybe I missed something there.) My stopgap solution was to put the entire line, including the &#8220;for&#8221;, inside the span (and I have to remove the <code>&lt;br /&gt;</code> after the span as well), leaving me with this:</p>
<pre><code>&lt;p&gt;
    5 Kachinglers
    &lt;br /&gt;&lt;span class="ellipsis emphasize"&gt;for Site With a Really Long Name&lt;/span&gt;
    How about you?
&lt;/p&gt;</code></pre>
<p>and:</p>
<pre><code>.ellipsis {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    -o-text-overflow: ellipsis;
    -ms-text-overflow: ellipsis;
    -moz-binding: url('ellipsis.xml#ellipsis');
    display: block;
}</code></pre>
<p>This works. I now have proper truncation with ellipses in Firefox (and everywhere else):</p>
<p><img class="aligncenter size-full wp-image-68" src="http://sharonminsuk.com/blog/wp-content/uploads/2010/07/medallion3_WorksFirefoxBadStyling.png" alt="image of medallion with entire line highlighted, not just the site name" width="160" height="78" /></p>
<p>But this was pretty disappointing. I did not want to be forced to have uniform styling for the whole line. (And this will be the appearance in <em>all</em> browsers, unless I add additional, more complex code to distinguish between them.) What&#8217;s at the root of the problem is the limitation that this solution imposes on markup structure. There was no way to divide the line into separately styled subsections and still get them both to coexist on the same line. Justin&#8217;s and Rikkert&#8217;s posts, along with the numerous comments on each of them, point out this problem but don&#8217;t suggest any way around it.</p>
<h3>Making it do my bidding</h3>
<p>I tried many different ways to structure the markup and the CSS that would give me the styling I wanted, along with the ellipsis. But nothing seemed to work. My choices seemed to be either to accept the uniform styling, or to put the &#8220;for&#8221; someplace else (which is not really a solution). I reluctantly accepted it, and gave up for the day. But a good night&#8217;s sleep helped me think outside the box model (so to speak).</p>
<p>The solution is to use absolute positioning for the <code>&lt;span&gt;</code>. This takes it out of the rendering flow, so I can now put it wherever I want it.</p>
<p>Perhaps this takes a hack and turns it into even more of a hack – but it works! The <code>&lt;span&gt;</code> now has to be carefully positioned, and this was somewhat of a trial-and-error proposition for me. And that positioning didn&#8217;t work too well until I put the &#8220;for&#8221; in its own absolutely positioned <code>&lt;span&gt;</code> as well, otherwise getting the two to line up was difficult and browser-dependent. And both spans need to have class .ellipsis applied, even though the first one will never actually need truncation. The second span must now be given an explicit width in order for its margin to line up properly, since its default width seems no longer tied to the width of the <code>&lt;p&gt;</code>. Finally, two adjacent <code>&lt;br /&gt;</code> elements put the third line in the right place, to leave a gap for the absolutely positioned line.</p>
<p>The final result looks like this:</p>
<pre><code>&lt;p&gt;
    5 Kachinglers
    &lt;span class="ellipsis position1"&gt;for &lt;/span&gt;
    &lt;span class="ellipsis position2 emphasize"&gt;Site With a Really Long Name&lt;/span&gt;
    &lt;br /&gt;&lt;br /&gt;How about you?
&lt;/p&gt;</code></pre>
<p>and:</p>
<pre><code>.ellipsis {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    -o-text-overflow: ellipsis;
    -ms-text-overflow: ellipsis;
    -moz-binding: url('ellipsis.xml#ellipsis');
    display: block;
    position: absolute;
}

/* The following are particular to my case and are only for illustration */
.position1, .position2 {
    top: 42px;	/* both spans lined up the same */
}

.position1 {
    left: 8px;	/* Same as the padding in the &lt;p&gt;, so that the margin lines up */
}

.position2 {
    left: 24px;	/* come right after the preceding text */
    width: 81%;	/* truncate in the right place */
}</code></pre>
<p><img class="aligncenter size-full wp-image-79" src="http://sharonminsuk.com/blog/wp-content/uploads/2010/07/medallion4_AbsoluteFinal.png" alt="image of medallion in Firefox with correct truncation and correct styling" width="160" height="78" /></p>
<p>And there we are. Proper truncation in Firefox, without being constrained by the markup rules of the -moz-binding solution! This approach should work for any kind of styling or formatting that would normally require nested elements, including making a link out of a subset of the truncated line, and maybe other uses I haven&#8217;t thought of. So, what do you think? I&#8217;d love to hear if this is of use to anybody, and what you do with it.</p>
]]></content:encoded>
			<wfw:commentRss>http://sharonminsuk.com/blog/2010/07/22/css3-text-truncation-and-ellipses-even-in-firefox-and-without-the-styling-constraints/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>To Blog, or Not to Blog?</title>
		<link>http://sharonminsuk.com/blog/2010/07/18/to-blog-or-not-to-blog/</link>
		<comments>http://sharonminsuk.com/blog/2010/07/18/to-blog-or-not-to-blog/#comments</comments>
		<pubDate>Mon, 19 Jul 2010 03:37:00 +0000</pubDate>
		<dc:creator>Sharon Minsuk</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://sharonminsuk.com/blog/?p=15</guid>
		<description><![CDATA[Okay, so I was finally convinced that I have to start my own blog. (Thank you, devchix, for the push.) I resisted for a long time. Does the blogosphere really need one more blog? The blogging &#8220;trend discovery&#8221; website blogpulse.com &#8230; <a href="http://sharonminsuk.com/blog/2010/07/18/to-blog-or-not-to-blog/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Okay, so I was finally convinced that I have to start my own blog. (Thank you, <a href="http://www.devchix.com/">devchix</a>, for the push.) I resisted for a long time. Does the blogosphere really need one more blog? The blogging &#8220;trend discovery&#8221; website <a href="http://blogpulse.com/">blogpulse.com</a> has identified 143,399,286 existing blogs as of this writing, with 46,832 <em>new</em> blogs in the last 24 hours alone! (Make that 46,833.) Seriously, who could think there&#8217;s any need for more? Even WordPress itself <a href="http://codex.wordpress.org/Introduction_to_Blogging#Basics-A_Few_Blogging_Tips">suggests</a> that &#8220;… from this crowd of millions of bloggers, … [only a] few hundred thousand blogs… are actually visited.&#8221;</p>
<p>But apparently nowadays if you don&#8217;t have a blog, then you don&#8217;t fully exist, professionally. And it&#8217;s about time I existed. So here we go! I hope I can make this blog a little bit different from the other hundred and forty-three million!</p>
<p>Maybe my odd background will help with that. As the blog title and graphic hopefully convey, this blog will be inspired both by my past work as a research biologist and my current work as a web developer. I have returned to software development after many years away, and I knew nothing at all about web development before starting my current position at <a href="http://kachingle.com/">Kachingle</a> in Feb. 2010. So I have been learning a ton of new things every day, and I&#8217;m sure they will give me something to write about now and then. I expect (but no guarantees) this will be a mix of technical and non-technical posts. They&#8217;ll probably be mostly about software and my software career but with a biologist&#8217;s perspective occasionally injected. And I have years of programming experience, yet am coming at many things as a beginner, which should add an interesting perspective to the posts, particularly the more technical ones.</p>
<p>Welcome, and I hope you enjoy!</p>
<p><a href="http://gapingvoid.com/"><img class="alignnone size-full wp-image-17" src="http://sharonminsuk.com/blog/wp-content/uploads/2010/07/nothing-to-say-so-blog.gif" alt="Cartoon: First person: I have nothing to say. Second person: You should blog about it." width="400" height="232" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://sharonminsuk.com/blog/2010/07/18/to-blog-or-not-to-blog/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

