<?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>Michael Lin</title> <atom:link href="http://michael-lin.com/feed/" rel="self" type="application/rss+xml" /><link>http://michael-lin.com</link> <description>Information Security Practitioner</description> <lastBuildDate>Mon, 04 Mar 2013 18:35:05 +0000</lastBuildDate> <language>en</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <atom:link rel="hub" href="http://pubsubhubbub.appspot.com"/><atom:link rel="hub" href="http://superfeedr.com/hubbub"/><xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" /> <item><title>Studio monitors are the ultimate computer speakers</title><link>http://michael-lin.com/2013/03/04/studio-monitors-are-the-ultimate-computer-speakers/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=studio-monitors-are-the-ultimate-computer-speakers</link> <comments>http://michael-lin.com/2013/03/04/studio-monitors-are-the-ultimate-computer-speakers/#comments</comments> <pubDate>Mon, 04 Mar 2013 18:35:05 +0000</pubDate> <dc:creator>Mike</dc:creator> <category><![CDATA[Audio]]></category><guid isPermaLink="false">http://michael-lin.com/?p=309</guid> <description><![CDATA[One area of my own personal audio experience I&#8217;ve always found a bit lacking was with computer speakers, also often referred to as multimedia speakers. This is especially troubling considering the significant amount of time I spend in front of my computers in general. While I have owned many nice headphones from Audio-Technica, Sennheiser, Ultrasone, [...]]]></description> <content:encoded><![CDATA[<p>One area of my own personal audio experience I&#8217;ve always found a bit lacking was with computer speakers, also often referred to as multimedia speakers. This is especially troubling considering the significant amount of time I spend in front of my computers in general. While I have owned many nice headphones from Audio-Technica, Sennheiser, Ultrasone, etc., my computer speakers haven&#8217;t really kept up.</p><p>Over the years I have gone through several sets of computer speakers in my search for aural heaven including Altec Lansing ATP4, Creative GigaWorks T20, Edifier S2.1D, Klipsch ProMedia, Logitech Z-2300 &amp; Z-5500, M-Audio AV 40, and Razer Mako 2.1, just to name a few that come to mind. I even tried hooking up a receiver with a pair of bookshelves for a few months but soon became fed up with the desk real-estate the receiver was hogging.</p><p>&nbsp;</p><div class="wp-caption aligncenter" style="width: 290px"><img title="Edifier-S2.1D" src="http://michael-lin.com/files/2012/02/Edifier-S2.1D.jpg" alt="Edifier S2.1D multimedia speakers" width="280" height="210" /><p class="wp-caption-text">Edifier S2.1D</p></div><p>Nothing I tried was really satisfying me. Out of the numerous speakers I have owned, both previously listed and unlisted, the only set that remains is the Edifier S2.1D. While they were good enough to survive the rest of the lot, they still didn&#8217;t deliver the level of audio fidelity I was getting from my headphones. That was the sonic heaven I was looking for; speakers that could match or best my headphones. Ultimately I conceded that I had no choice but to go with the nuclear option; studio monitors.</p><p>In case you&#8217;re unfamiliar with them, studio monitors are speakers that are designed specifically for use in professional audio applications, like tracking and mixing music in recording studios. They are designed to produce a flat, uncolored sound that sound technicians and producers can rely on to provide an unbiased reproduction of a recording. Nearly all music is also mixed and mastered on studio monitors. If you listened to a recording on the same studio monitors that it was mixed and mastered on, you are hearing it as the technician/producer heard it when the recording was created (not counting how rooms effect sound) and in all likelihood this is how it was intended to be heard. Studio monitors also tend to be high quality products in general, designed to take the abuse and workload of a recording studio.</p><p>Studio monitors also share a large number of important characteristics with multimedia speakers that make them ideal for use with computers. While passive studio monitors exist, the vast majority of them are actively powered, meaning they have amplifiers built-in like computer speakers, rather than requiring a separate amplifier like home theater speakers. This is convenient because you can plug your studio monitors directly into your computer without passing the signal through a separate receiver or amplifier. It also means the speaker drivers and amplifiers are likely to be well matched because they are chosen by the manufacturer. Studio monitors are also almost always designed for near-field use, which means they are designed to be listened to while positioned relatively close to the listener, another characteristic they share with computer speakers. Lastly, studio monitors typically integrate many safety features that protect the speaker hardware from being damaged by inappropriate input signals, so you would have a hard time &#8220;blowing out&#8221; a studio monitor.</p><p>All of the previously stated reasons combined with the general lack of comparable competition from the multimedia speaker market make studio monitors the ultimate computer speakers. The only speakers that might be able to compete are high end component speakers, like the bookshelf and tower speakers used in home theater applications. However those speakers are generally not designed for near-field listening, do not have built-in protective circuitry, do not integrate a power amplifier and require a pre-amplifier or receiver to provide the signal. The net result is component speakers require you to sacrifice desk space to accommodate the receiver/pre-amplifier/amplifier and you may end up paying more money for a comparable setup.</p><p>However, studio monitors are not without drawbacks. For one, they are expensive, easily costing several times the price of a typical multimedia speaker set. Although to be fair, even low-end studio monitors are of higher sound quality than most high-end multimedia speakers. Studio monitors also tend to be significantly larger and heavier than your typical set of multimedia speakers. Most multimedia speakers use speaker drivers smaller than 4 inches in diameter while studio monitors typically <em>start</em> at 5 inches and go up to 8 or more. With larger drivers comes larger enclosures and more mass. A large driver needs a significantly more powerful magnet to control it properly which also means a more powerful amplifier design. Since all of these componants are built into studio monitors, the end result are some truly massive speakers.</p><p>&nbsp;</p><div class="wp-caption aligncenter" style="width: 310px"><img title="KRK-VXT8" src="http://michael-lin.com/files/2012/02/KRK-VXT8-460-80-300x225.jpg" alt="KRK VXT8 Studio Monitors" width="300" height="225" /><p class="wp-caption-text">KRK VXT8</p></div><p>The KRK VXT8 studio monitors I finally settled on have 8 inch speaker drivers with a 180 watt amplifier, <strong>per speaker</strong>. They are 17 inches (433mm) tall, 12.5 (318mm) inches wide, 11.7 (296mm) inches deep and they weigh 41 pounds (16.5 kg) each! They are so massive they threaten to crush lesser desks. Now to be fair, there are many excellent smaller 6 inch studio monitor designs and I am not trying to imply that all studio monitors are as large and heavy as the particular set I purchased, but do expect them to be much bigger than the little &#8220;satellite&#8221; speakers that multimedia speakers sets typically use.</p><p>Ultimately whether or not the trade-offs of studio monitors make sense are up the the individual&#8217;s priorities, but in terms of pure sonic enjoyment, the studio monitor reign supreme. If sound quality is the most important factor you look for in speakers, then maybe it&#8217;s time to ditch those computer speakers and look into a set of studio monitors.</p> ]]></content:encoded> <wfw:commentRss>http://michael-lin.com/2013/03/04/studio-monitors-are-the-ultimate-computer-speakers/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Claim Your Blog on Technorati</title><link>http://michael-lin.com/2012/03/10/claim-your-blog-on-technorati/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=claim-your-blog-on-technorati</link> <comments>http://michael-lin.com/2012/03/10/claim-your-blog-on-technorati/#comments</comments> <pubDate>Sat, 10 Mar 2012 14:43:40 +0000</pubDate> <dc:creator>Mike</dc:creator> <category><![CDATA[Miscellaneous]]></category><guid isPermaLink="false">http://michael-lin.com/?p=458</guid> <description><![CDATA[If you haven&#8217;t heard of Technorati before, it&#8217;s primarily a search engine that indexes blogs, vlogs (video blogs), and podcasts. One of the features of Technorati is the ability to &#8220;claim&#8221; blogs that belong to you. Once claimed, a blog will be attached to your user profile. Having just joined Technorati, I decided to claim [...]]]></description> <content:encoded><![CDATA[<p>If you haven&#8217;t heard of Technorati before, it&#8217;s primarily a search engine that indexes blogs, vlogs (video blogs), and podcasts.</p><p>One of the features of Technorati is the ability to &#8220;claim&#8221; blogs that belong to you. Once claimed, a blog will be attached to your user profile. Having just joined Technorati, I decided to claim my blog as my user profile was looking a little sparse.</p><p>The process of claiming a post on Technorati involves a confirmation step to make sure you in fact own the blog you are claiming. They&#8217;ve implemented their confirmation by requiring the blog owner to create a new post containing a confirmation code.</p><p>My Technorati claim code: <strong>FYRUBHGAJGZ3</strong></p><p>Technorati will then check the blog for the a post containing the code as well as the blog&#8217;s RSS feed. Once the code is found, Technorati can be reasonably assured that the user is somehow associated with the blog.</p><p><span id="more-458"></span></p><p>This process doesn&#8217;t seem to be fully automated. After submitting your blog to for a claim check, you must wait for someone at Technorati to get around to checking your blog.</p><p>Automating the process is probably a difficult issue considering it&#8217;s possible to incorporate user generated content, such as comments, onto web pages in a wide variety of ways. This would allow someone who is not associated with a blog to post a confirm code onto a page.</p><p>Detecting user submitted content, such a comments, on a page isn&#8217;t a trivial endeavor because it can be coded in a wide variety of ways and easily mistaken for legitimate content.</p><p>This creates the problem of having to make a new post on your blog with an ugly claim code and leaving it there for days until Technorati verifies your claim. On an active blog with many visitors and frequent postings, this can be very unsightly and detrimental to the quality of the blog and its content.</p><p>One trick is to write a post about claiming blogs on Technorati. This lets you post your code without it looking too out of place. Unfortunately this doesn&#8217;t work as well if your blog has nothing to do with the web or technology.</p> ]]></content:encoded> <wfw:commentRss>http://michael-lin.com/2012/03/10/claim-your-blog-on-technorati/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Total Noob&#8217;s Guide to Web Feeds &amp; Google Reader</title><link>http://michael-lin.com/2012/03/07/total-noobs-guide-web-feed-google-reader/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=total-noobs-guide-web-feed-google-reader</link> <comments>http://michael-lin.com/2012/03/07/total-noobs-guide-web-feed-google-reader/#comments</comments> <pubDate>Wed, 07 Mar 2012 16:57:33 +0000</pubDate> <dc:creator>Mike</dc:creator> <category><![CDATA[Guides]]></category><guid isPermaLink="false">http://michael-lin.com/?p=442</guid> <description><![CDATA[What&#8217;s a web feed? A web feed is a data format that allows websites, blogs and podcasts to share content. The content distributor syndicates a web feed and users subscribe to them, to get the latest content updates. Subscribing to the feeds of your favorite web content makes it easy to keep up to date [...]]]></description> <content:encoded><![CDATA[<h2>What&#8217;s a web feed?</h2><p>A web feed is a data format that allows websites, blogs and podcasts to share content. The content distributor <em>syndicates</em> a web feed and users <em>subscribe</em> to them, to get the latest content updates.</p><p>Subscribing to the feeds of your favorite web content makes it easy to keep up to date with new articles, blog posts and podcast episodes.</p><p>Nearly every content-oriented website, blog and podcast has a feed. If you have a blog on the Blogger or WordPress platforms, your blog has a feed too!</p><p style="text-align: center;"><img class="size-full wp-image-443 aligncenter" title="Google-Reader" src="http://michael-lin.com/files/2012/03/Google-Reader.jpg" alt="Google Reader logo" width="450" height="130" /></p><h2>What&#8217;s Google Reader and how do I get it?</h2><p>Google Reader is a web based feed reader from Google. It lets you subscribe to the two most common feed types (Atom and RSS).</p><p>Like most Google services, Google Reader is free to use. Just go to <a href="http://www.google.com/reader/">http://www.google.com/reader</a> and log in with your Google account (ie. Gmail login).</p><p><span id="more-442"></span></p><h2>How to subscribe to feeds</h2><p>Log in to Google Reader and you&#8217;ll be presented with a list of your feeds. If you are an existing user of Blogger than you will see your Blogger subscriptions have been automatically added. Otherwise your feed will be blank.</p><p>To add a feed for a particular website, copy the URL for the website from your browser&#8217;s address bar. Then, in Google Reader, press the red subscribe button, located just under the Google logo on the left.</p><p>Google will automatically find the feed link on the site and subscribe to it.</p><p>Alternatively, you can find the feed link yourself. This might be necessary if Google can&#8217;t automatically find it. Look for the universal feed icon.</p><p><center><div class="wp-caption alignnone" style="width: 138px"><img title="universal RSS feed icon" src="http://upload.wikimedia.org/wikipedia/en/4/43/Feed-icon.svg" alt="universal RSS feed icon" width="128" height="128" /><p class="wp-caption-text">web feed icon</p></div></center></p><h2>Organizing your feeds</h2><p>Once you&#8217;ve subscribed to a few feeds, you&#8217;ll notice your Reader is starting to get a bit messy. The latest updates from your favorite cooking website are showing up alongside your tech news.</p><p>Organize your feeds with folders. This lets you separate your feeds in any way you wish, allowing you to read them in groups. For example, you can create a &#8220;world news&#8221; folder to hold all your general world news feeds. When you click on the &#8220;world news&#8221; folder, only your world news feeds are displayed.</p><p>Add a new folder via the subscriptions tab of the Google Reader settings. View the Google Reader settings by clicking the settings button (gear icon) in the upper right, then choose &#8220;reader settings&#8221;. In the subscriptions tab, click the &#8220;add to folder&#8221; button next to a feed you want to organize, then choose an existing folder or create a new one. Folders show up on the left menu bar on your main feed page in the subscriptions section.</p><h2>Saving posts to read later</h2><p>If you subscribe to all your favorite websites, chances are your feed will contain hundreds, if not thousands, of new posts every day. This can get a little bewildering.</p><p>While you&#8217;re scrolling through the day&#8217;s latest news, you might want to save posts to read in detail at some later time.You can do this easily by starring them. Star a post by pressing the little star icon at the end of every post title. You can view your starred items from the &#8220;Starred items&#8221; section.</p><p>Alternatively, you can tag posts. This lets you categorize them while saving them. Tag a post by clicking the &#8220;Add tags&#8221; link at the end of every post. Write as many tags as you want, separated by commas, then press save. Your tags will be displayed in the &#8220;subscription&#8221; section. They act like folders for your saved posts.</p><h2>Share posts with others</h2><p>If you come across a post you want to share, you can share it on Google+ with the &#8220;Share&#8221; button at the bottom of every post or use the &#8220;Email&#8221; button to send the post to a friend. You can also share the original link to the post by right clicking the post title and copying the link address.</p><h2>Keyboard shortcuts</h2><p>One of the most useful features of Google Reader is the ability to use keyboard shortcuts to complete common actions. For example, you can navigate to the next post in the feed by pressing &#8216;j&#8217; or the space bar, and the previous feed by pressing &#8216;k&#8217;. Scrolling is so passé.</p><p>You can star the currently selected post (it&#8217;ll have a thin blue bar next to it) by pressing the &#8216;s&#8217; key, tag it by pressing &#8216;t&#8217; and email with &#8216;e&#8217;. Toggle full screen mode with the &#8216;f&#8217; key and switch between the default expanded view by pressing &#8217;1&#8242; and a gmail-like list view by pressing &#8217;2&#8242;.</p><p>Perhaps the single most important keyboard shortcut is pressing the question mark button while holding shift (Shift+?). This will display a handy guide to all the available keyboard shortcuts, including several we didn&#8217;t mention.</p><p>&nbsp;</p><p>Got some hot tips on using web feeds? Use a feed reader other than Google Reader? Leave a comment and tell us all about it!</p> ]]></content:encoded> <wfw:commentRss>http://michael-lin.com/2012/03/07/total-noobs-guide-web-feed-google-reader/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Mechanical keyboards explained</title><link>http://michael-lin.com/2012/03/04/mechanical-keyboards-explained/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=mechanical-keyboards-explained</link> <comments>http://michael-lin.com/2012/03/04/mechanical-keyboards-explained/#comments</comments> <pubDate>Sun, 04 Mar 2012 13:33:14 +0000</pubDate> <dc:creator>Mike</dc:creator> <category><![CDATA[Technology]]></category><guid isPermaLink="false">http://michael-lin.com/?p=369</guid> <description><![CDATA[Mechanical keyboards have been around for as long as we&#8217;ve had keyboards. If you were born before 1990 then your first interaction with a computer was most likely by way of a keyboard with &#8220;mechanical&#8221; keys. However due to concerns over cost, size and complexity, mechanical keyboards quickly fell out of favor just as the [...]]]></description> <content:encoded><![CDATA[<p>Mechanical keyboards have been around for as long as we&#8217;ve had keyboards. If you were born before 1990 then your first interaction with a computer was most likely by way of a keyboard with &#8220;mechanical&#8221; keys. However due to concerns over cost, size and complexity, mechanical keyboards quickly fell out of favor just as the PC started becoming ubiquitous in our homes. For decades, not a single new PC from a major manufacturer was shipped with a mechanical keyboard included. It wasn&#8217;t long before mechanical keyboards like the classic IBM Model M became synonymous with all that is old and eccentric about early computing. Only a handful of smaller niche manufacturers continued to sell mechanical keyboards.</p><p>Recently however, there has been a rather sudden and surprising resurgence in interest for mechanical keyboards. Just in the last two years, several major peripheral manufacturers have added mechanical keyboards to the high end of their product line-ups. Manufacturers are coming out of the woodwork to tout mechanical keyboard technology as the latest must-have for your tech collection. All of them quick to suggest that mechanical keyboards are on a different level compared to that inferior lump of plastic you&#8217;re currently tapping away on.</p><p>Suddenly the ol&#8217; Model M is no longer an unwanted relic of the past that you couldn&#8217;t even give away to your cousin who&#8217;d just dumped a can of Coke on his shiny USB macro-enabled back-lit keyboard. Now it&#8217;s a treasured and sought after precision instrument, the veritable <span style="border-bottom: dotted 1px #000000;" title="The name Stradivarius is associated with violins built by members of the Stradivari family, widely regarded as the finest ever made.">Stradivarius</span> of typing peripherals. Refurbished original Model M&#8217;s, now over 20 years old, are commanding prices well over $80 and selling like hotcakes.</p><p>Now that they&#8217;re back in style, what are mechanical keyboards? What makes them different from &#8220;normal&#8221; keyboards? Are they worth the price? Do I need one?</p><p><span id="more-369"></span></p><h2>What&#8217;s so &#8220;mechanical&#8221; about them?</h2><p>Mechanical keyboards are so named in order to contrast them to &#8220;standard&#8221; keyboards, referring your everyday common keyboard, which nearly all use a &#8220;membrane&#8221; key design. In the classic arch-typical membrane keyboard design, the individual keys are actually protrusions on a single, continuous sheet of flexible material. Instead of a membrane sheet, &#8220;mechanical keyboards&#8221; use individual mechanical switches for every key.</p><p>In reality, this is a bit of a generalization as there are numerous individual key technologies and designs that can be classified as &#8220;mechanical&#8221; and &#8220;membrane&#8221;. Before we get into why you really, truly want to buy yourself a mechanical keyboard this very moment, let&#8217;s take a quick look at some of the more common keyboard designs and what makes them different.</p><h2>Keyboard switch technologies</h2><h4>Membrane keyboard</h4><p>The ubiquitous &#8221;standard&#8221; keyboard. They are made up of three layers. The bottom layer is a grid of open circuits that detect key presses when the circuits on the grid are closed or shorted. The top layer is a soft membrane usually made of plastic, silicone or rubber. A grid of conductive material is set into the membrane, lining up with the conductive grid on the bottom layer. The middle layer exists to separate the top and bottom layers so they are not normally in contact. In many designs, the middle layer is just air. When the top membrane layer is brought down into contact with the grid of the bottom layer, the conductive material set into the membrane closes the circuit, registering as a key press. </p><p>In many membrane designs, there is an additional fourth layer of plastic key tops that rest on top of the membrane layer. The keys usually have a wide top to accommodate the size of fingers, while the bottom of the keys comes to a narrow point. When pressed, the keys push/stab the membrane down, causing one of the circuits on the grid to close. In some designs the key tops aren&#8217;t used and you press on the membrane directly (ie. microwave number pad keys).</p><p>Membrane keyboards are very cheap to build. They wear out quickly and age as the membrane loses elasticity. They provide poor tactile feedback and are often described as having a &#8220;mushy&#8221; feel. To type on a membrane keyboard, you must press the membrane all the way down in order to ensure key presses are properly registered. This is called bottoming out, it increases hand fatigue and slows down touch typing.</p><h4>Chiclet keyboard</h4><p>Chiclet keyboards are actually just membrane keyboards where the membrane has rectangular shaped thicker areas built-in that the user uses as buttons. The thicker rectangular button areas of the membrane are pressed directly and there is no fourth plastic button layer. They have the same general characteristics as other membrane keyboards.</p><h4>Dome switch</h4><p>Dome switches are another type of membrane keyboard. This time the membrane has dome shapes built into it. When the user presses a key (either a plastic key piece or directly on the membrane) the dome collapses, causing the membrane layer to make contact with the bottom conductive grid. Most dome switches have the same characteristics as all other membrane keyboards. However domes that are reinforced with metal feel similar to mechanical keyboards. Metal dome keyboards collapse crisply, providing good tactile feedback to the user, much like a mechanical switch.</p><h4>Scissor switch</h4><p>Scissor switches are a variety of dome switch where the membrane dome is supported by two plastic pieces that interlock in a way similar to how scissors work. The scissor mechanism allows the switches to be designed with much shorter travel distance, making them desirable for use in laptop keyboards.  Otherwise, they have similar characteristics as membrane keyboards.</p><h4>Mechanical switch</h4><p>Mechanical switch keyboards use individual mechanical switches for each key. They typically work by separating two conductive points mechanically with a spring-loaded lever or similar mechanism. When the button is pressed the two conductive points are pushed together and touch, forming a complete circuit which the keyboard detects as a key press. There are a wide variety of mechanical switch designs and they differ slightly in their characteristics. While some mechanical switches are designed to produce a sound when they are closed, they don&#8217;t necessarily have to.</p><p>&#8220;Cherry&#8221; is the manufacturer of one of the most common mechanical key switch designs used in keyboards today. Their MX product line includes several switch designs with different characteristics and are easily distinguished by the color of the switch. Cherry MX Blue switches are the most common and are designed to have tactile feedback and a click sound when pressed (two &#8216;clicks&#8217; when combined with the sound of the key bottoming out). Cherry MX Brown switches are similar to Blues except they don&#8217;t produce an extra sound. Cherry MX Black switches are designed to have linear key travel, so there is no tactile sensation at all until the key bottoms out. Blacks also do not produce a sound. Cherry MX Red switches are similar to blacks but require less pressure to depress, making them easier to press.</p><p>In terms of marketing, Cherry MX Blues and Browns are said to be better for typing and Cherry MX Blacks and Reds are said to be ideal for gaming. Ultimately it&#8217;s mostly a matter of personal preference.</p><h4>Buckling spring</h4><p>This is a special variety of mechanical switch where the key cap presses down on a spring. The spring is held captive in a cylinder designed to cause the spring to buckle and collapse instead of compressing neatly. When the spring buckles, it causes the mechanism to complete a circuit, registering a key press. The sudden buckling of the spring creates an excellent tactile sensation and an audible &#8220;click&#8221; sound. This switch design is also very durable, as proven by the numerous 25+ year old IBM Model M keyboards still operating happily across the globe.</p><p>Buckling springs have similar general characteristics as the Cherry MX Blue switches, in that they produce an extra sound when pressed and they provide tactile feedback. However buckling springs tend to feel slightly smoother than Cherry MX Blues, with more consistent pressure both before and after the actuation point.</p><h2>Mechanical keyboards vs membrane</h2><p>Compared to membrane keyboards, mechanical switch keyboards (including and especially buckling spring) provide a superior user experience. Standard membrane keyboards have a mushy feel with poor tactile feedback. Dome style membrane keyboards can be designed to provide a suitably satisfying tactile sensation when pressed, but the majority of available membrane keyboards are not designed this way.</p><p>Mechanical switch keyboards also generally last much longer. Membrane keys are generally said to have a useful life of 5 million keystrokes, while scissor keys are slightly better at 10 million keystrokes. Cherry MX switches, on the other hand, are good for  50 million keystrokes. Buckling spring switches are nearly indestructible. The original IBM Model M keyboards were made over 20 years ago and their buckling spring keys continue to operate.</p><h4>Pros of mechanical keys</h4><ul><li>Excellent tactile feedback</li><li>Faster touch typing (with proper technique)</li><li>High durability &amp; longevity</li><li>Sound like you&#8217;re typing twice as fast</li></ul><h4>Cons of mechanical keys</h4><ul><li>They often make a lot of noise</li><li>They are relatively expensive</li><li>Limited selection &amp; availability (compared to membrane keyboards)</li></ul><h2>Do you need one?</h2><p>Need is a very strong word. So no, you don&#8217;t &#8220;need&#8221; a mechanical keyboard, but if you&#8217;ve read this far then you probably want one, badly. And rightly so. Mechanical keyboards definitely provide real and tangible benefits over the typical membrane keyboard design. Their tactile feedback is addictive and their longevity helps offset the higher cost. Even the louder than usual clicky sound they make grows on you and can become soothing, almost cathartic (for the keyboard&#8217;s owner anyway). For anyone who has spent a significant amount of time with a mechanical keyboard, going back to mushy membrane keys would be unthinkable torture.</p><p>If you spend a significant amount of time on your computer, do yourself a favor and get a mechanical keyboard. Not only will you sound like you&#8217;re typing twice as fast, but your overall computing experience will be that much better.</p> ]]></content:encoded> <wfw:commentRss>http://michael-lin.com/2012/03/04/mechanical-keyboards-explained/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Using the Google Maps image API</title><link>http://michael-lin.com/2012/02/26/using-google-maps-image-api/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=using-google-maps-image-api</link> <comments>http://michael-lin.com/2012/02/26/using-google-maps-image-api/#comments</comments> <pubDate>Sun, 26 Feb 2012 16:15:44 +0000</pubDate> <dc:creator>Mike</dc:creator> <category><![CDATA[Web]]></category><guid isPermaLink="false">http://michael-lin.com/?p=276</guid> <description><![CDATA[Traditionally, the easiest way to get a Google Map on your web page is to embed one using an inline frame HTML element (my tutorial). While this works great and even results in an interactive map, it&#8217;s slow to load and iframes are clumsy. Thankfully Google is well aware of these issues and created the [...]]]></description> <content:encoded><![CDATA[<p>Traditionally, the easiest way to get a Google Map on your web page is to embed one using an inline frame HTML element (<a title="How to embed interactive Google Maps" href="http://michael-lin.com/2012/02/19/how-to-embed-google-maps/">my tutorial</a>). While this works great and even results in an interactive map, it&#8217;s slow to load and iframes are clumsy. Thankfully Google is well aware of these issues and created the Maps Image API to offer a simple alternative.</p><h2>Maps Image API overview</h2><p>The Google Maps Image API is used like a regular static image. Upon requesting a map with a Maps Image API URL, a Google server will process your request, generating an image of the desired map, and return the map as either a JPEG, GIF or PNG file. All of this occurs completely transparently and near instantaneously. You actually put the Image API URL into a normal &lt;img&gt; HTML tag and your users just see a simple static image file.</p><p>Needless to say, this is much faster to load than using a fully interactive Google Map embedded into an iframe. To further sweeten the deal, the map image will be cached by the user&#8217;s browser and if your site uses a Content Delivery Network (CDN), the map will be accelerated because for all intents and purposes it is static content. The Image Map API can return all types of maps (roadmap, satellite, hybrid, terrain) and it even works with Street View images.</p><p>The only time you wouldn&#8217;t use an image map is if your map absolutely must be interactive.</p><p><span id="more-276"></span></p><h2>The basics</h2><p>The maps image API is used in the exact same way as normal images. Just stick a properly formatted image API URL into anything that accepts an image URL, like an HTML <img alt="" /> tag, and you&#8217;re done.</p><p>A properly formatted maps image API URL looks like this:</p><pre><span style="color: #000080;">http://maps.googleapis.com/maps/api/staticmap?<strong><em>parameters</em></strong></span></pre><p>The <em>parameters</em> is a comma separated list of map parameters that define how your map image will be built and what it displays. You can also add markers and paths to your map. For example, here&#8217;s a map of downtown Toronto with the CN Tower (blue C), Maple Leaf Gardens (green M) and Robarts Library (red R) marked.</p><p style="text-align: center;"><img class=" aligncenter" title="Google Maps Image API map of Toronto with CN Tower (Blue C), Maple Leaf Gardens (Green M) and Robarts Library (Red R)" src="http://maps.googleapis.com/maps/api/staticmap?center=Toronto,ON&amp;zoom=14&amp;size=500x500&amp;maptype=roadmap&amp;markers=color:blue%7Clabel:C%7C43.641631,-79.38683&amp;markers=color:red%7Clabel:R%7C43.664491,-79.399434&amp;markers=color:green%7Clabel:M%7C43.66171,-79.380887&amp;sensor=false" alt="Google Maps Image API map of Toronto with CN Tower (Blue C), Maple Leaf Gardens (Green M) and Robarts Library (Red R)" width="500" height="500" /></p><p>This map uses the URL:</p><pre><span style="color: #000080;">http://maps.googleapis.com/maps/api/staticmap?</span>
<span style="color: #000080;">center=Toronto,ON&amp;</span>
<span style="color: #000080;">zoom=14&amp;</span>
<span style="color: #000080;">size=500x500&amp;</span>
<span style="color: #000080;">maptype=roadmap&amp;</span>
<span style="color: #000080;">markers=color:blue%7Clabel:C%7C43.641631,-79.38683&amp;</span>
<span style="color: #000080;">markers=color:red%7Clabel:R%7C43.664491,-79.399434&amp;</span>
<span style="color: #000080;">markers=color:green%7Clabel:M%7C43.66171,-79.380887&amp;</span>
<span style="color: #000080;">sensor=false</span></pre><p>You can see that eight parameters were used to create the above map. The zoom level, map size, map type, three markers and whether or not a sensor (ie. GPS) is being used to determine the user&#8217;s current location.</p><p>Notice that the map is a static image and can be interacted with as such. You can save it to desktop and it will print with the rest of the page, unlike an iframe.</p><h2>URL parameters</h2><p><strong>center:</strong> Specifies the center of the map using either a text string or a latitude/longitude value. This is required if no markers are specified. If there are markers and a center isn&#8217;t specified, then the location of the markers will determine the map&#8217;s center.</p><p><strong>zoom:</strong> Sets the zoom level of the map.</p><p><strong>size:</strong> Defines the size of the map in pixels.</p><p><strong>scale:</strong> Defaults to a value of 1. If a value of 2 is set then twice the number of pixels are returned but the coverage area remains the same and the map image is resized to the value of the size parameter. This effectively doubles the map&#8217;s DPI and comes in handy if the map will be used for printing.</p><p><strong>format:</strong> Determines the file format of the image file, defaulting to PNG8 if the parameter isn&#8217;t specified. Available formats: PNG8, PNG32, GIF, JPG.</p><p><strong>maptype:</strong> Specifies the type of map. Available map types: roadmap, satellite, hybrid, terrain.</p><p><strong>language:</strong> The language of the labels and text.</p><p><strong>region:</strong> Display national borders. Specified by the country&#8217;s 2 character country-code top level domain (ccTLD).</p><p><strong>markers:</strong> Defines one or more markers on the map. Each marker can have a color and a single letter label. The location of the markers can be specified as a text string or with a latitude/longitude value (as in the example above).</p><p><strong>path:</strong> Adds one or more paths to the map, linking two or more locations on the map.</p><p><strong>sensor:</strong> Determines whether or not the user&#8217;s device&#8217;s location tracking hardware (ie. GPS) is used to find the user&#8217;s location.</p><h4>Street View</h4><p>The Maps Image API can also produce static images from Google Street View. The syntax is slightly different.</p><pre><span style="color: #000080;">http://maps.googleapis.com/maps/api/streetview?<strong><em>parameters</em></strong></span></pre><p>The available parameters include:</p><p><strong>size:</strong> Defines the size of the image in pixels.</p><p><strong>location:</strong> This can be a text string such as &#8220;CN Tower, Toronto, ON&#8221; or a latitude/longitude value. The camera will snap to the closest location with a valid Google Street View.</p><p><strong>heading:</strong> Specifies the compass heading of the camera from 0 to 360 degrees, where 0 and 360 both indicate due North, 90 is West, 180 is South and 270 is West.</p><p><strong>fov:</strong> Determines the zoom level. The default value is 90 and the maximum is 120.</p><p><strong>pitch:</strong> Defines the vertical angle of the camera. The default value is 0 (flat/level) and 90 is straight up while -90 is straight down.</p><p><strong>sensor:</strong> Specifies whether or not this location query came from a device that had a location sensor (ie. GPS). You can leave this to false but it&#8217;s a required parameter.</p><p>Here is an example Street View image of the CN Tower as viewed from the University of Toronto&#8217;s front campus.</p><p><img class="alignnone" title="CN Tower viewed from University of Toronto front campus" src="http://maps.googleapis.com/maps/api/streetview?size=600x300&amp;location=43.661048,-79.394903&amp;heading=160&amp;fov=50&amp;pitch=5&amp;sensor=false" alt="" width="600" height="300" /></p><p>This street view image uses the following URL</p><pre><span style="color: #000080;">http://maps.googleapis.com/maps/api/streetview?</span>
<span style="color: #000080;">size=600x300&amp; </span>
<span style="color: #000080;">location=43.661048,-79.394903&amp; </span>
<span style="color: #000080;">heading=160&amp; </span>
<span style="color: #000080;">fov=50&amp; </span>
<span style="color: #000080;">pitch=5&amp; </span>
<span style="color: #000080;">sensor=false</span></pre><h2>Caveats</h2><div class="wp-caption alignright" style="width: 110px"><img class="       " title="Google Maps Image API quota exceeded image" src="http://code.google.com/apis/maps/documentation/staticmaps/images/quota.png" alt="Google Maps Image API quota exceeded image" width="100" height="100" /><p class="wp-caption-text">quota exceeded image</p></div><p>While the API is completely free to use and anyone can use it without signing up for any accounts, there are a few limitations. The main catch is Google only allows up to 1000 queries <em>per viewer</em> per day. There is also an undisclosed request rate limit. If a viewer exceeds these limits, they will see a placeholder image instead of your map.</p><p>However, since these quotas are on a per viewer basis, it&#8217;s unlikely this will be a problem. If a user exceeds their limit, only the offending user is affected and all your other visitors continue to see the map just fine. The request rate limit also shouldn&#8217;t be a problem as the user&#8217;s browser will cache the image.</p><h2>Further Reading</h2><p>Official Google Image Maps API documentation: <a href="http://code.google.com/apis/maps/documentation/staticmaps/">http://code.google.com/apis/maps/documentation/staticmaps/</a></p><p>Official Google Image Maps API Street View docs: <a href="http://code.google.com/apis/maps/documentation/streetview/">http://code.google.com/apis/maps/documentation/streetview/</a></p><p>Google Maps API Family: <a href="http://code.google.com/apis/maps/">http://code.google.com/apis/maps/</a></p> ]]></content:encoded> <wfw:commentRss>http://michael-lin.com/2012/02/26/using-google-maps-image-api/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>How to embed interactive Google Maps</title><link>http://michael-lin.com/2012/02/19/how-to-embed-google-maps/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=how-to-embed-google-maps</link> <comments>http://michael-lin.com/2012/02/19/how-to-embed-google-maps/#comments</comments> <pubDate>Sun, 19 Feb 2012 15:28:04 +0000</pubDate> <dc:creator>Mike</dc:creator> <category><![CDATA[Web]]></category><guid isPermaLink="false">http://michael-lin.com/?p=253</guid> <description><![CDATA[So you want to embed a Google map into your web page or blog. The easiest and simplest way to embed a Google map into a web page is to use a HTML inline frame, or iframe. This results in a fully interactive Google map anywhere you put the iframe. Google maps with iframes In [...]]]></description> <content:encoded><![CDATA[<p>So you want to embed a Google map into your web page or blog. The easiest and simplest way to embed a Google map into a web page is to use a HTML inline frame, or iframe. This results in a fully interactive Google map anywhere you put the iframe.</p><h2>Google maps with iframes</h2><p>In order to embed an interactive Google Map into your web page, you&#8217;ll need a properly formatted embed code. You could write this yourself by getting the Google Maps URL query string for the desired map and adding it into an iframe, or you can let Google Maps generate it for you. I recommend the later, it&#8217;s significantly easier and less prone to mistakes.</p><p style="text-align: center;"><a href="https://lh6.googleusercontent.com/-NDSuIekIjeQ/T1CHMlVreZI/AAAAAAAAAUw/1dQoULtbegI/s800/google-maps-embed-steps.png"><img class="aligncenter" style="border-image: initial; border-width: 1px; border-color: black; border-style: solid;" title="Google Maps link button and embed code" src="https://lh4.googleusercontent.com/-RByEQHF1Ayc/T1CKb2MYI1I/AAAAAAAAAVI/ocN9JIFIku8/s800/google-maps-embed-steps.png" alt="Google Maps link button and embed code" width="490" height="221" /></a></p><p>Start by searching Google Maps for the location you want your map to display initially when it first loads. Once you have found the desired location, pick a zoom level and find the Link button in the top left corner, just under the search bar and press it. This will pop up a dialog containing a direct link to the map as well as the embed code we want. Just copy and paste the embed code into your web page&#8217;s HTML and you&#8217;re done.</p><p><span id="more-253"></span></p><h2>Customize the embedded map</h2><p>If you want to fine tune the appearance of your map, press the &#8220;Customize and preview embedded map&#8221; link on the box that opens when you press the link button. It is a text link located just under the embed code on the Google maps links box. This will open a new window containing a preview of the map and a number of options. Choose the size of the map, then move the map around until the preview displays what you want. Then copy the embed code into your HTML.</p><h2>Advanced methods</h2><p>Using an iframe is actually one of several different methods to embed a Google map. Google offers an extensive Google Maps API Family that allows for the embedding and manipulation of Google Maps on several levels with technologies ranging from Javascript and Flash to the Google Earth API. You can find information and documentation for the entire Google Maps API Family at <a href="http://code.google.com/apis/maps/index.html" target="_blank">http://code.google.com/apis/maps/</a>.</p><p>While there are many ways to interact with Google Maps, not all of them are well suited for embedding directly in web pages. While iframes work, a more advanced method is to use the newer Google Maps Image API (<a href="http://michael-lin.com/2012/02/26/using-google-maps-image-api/">discussed here</a>) to instantly and dynamically create an image of any map, right on your page. This allows you to display a Google map on your page without all of the disadvantages of iframes (like not being able to print the map with the page!).</p> ]]></content:encoded> <wfw:commentRss>http://michael-lin.com/2012/02/19/how-to-embed-google-maps/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Welcome!</title><link>http://michael-lin.com/2012/02/17/hello-world/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=hello-world</link> <comments>http://michael-lin.com/2012/02/17/hello-world/#comments</comments> <pubDate>Fri, 17 Feb 2012 08:26:41 +0000</pubDate> <dc:creator>Mike</dc:creator> <category><![CDATA[Miscellaneous]]></category><guid isPermaLink="false">http://michael-lin.hayleyfromstein.com/?p=1</guid> <description><![CDATA[Welcome to my new website. In the near future I hope to have some things here for you to read.]]></description> <content:encoded><![CDATA[<p>Welcome to my new website. In the near future I hope to have some things here for you to read.</p> ]]></content:encoded> <wfw:commentRss>http://michael-lin.com/2012/02/17/hello-world/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> </channel> </rss>
<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk: basic
Page Caching using disk: basic

Served from: michael-lin.com @ 2013-05-21 17:22:15 -->