<?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>Mike Puchol &#187; English</title>
	<atom:link href="http://mikepuchol.com/category/language/english/feed/" rel="self" type="application/rss+xml" />
	<link>http://mikepuchol.com</link>
	<description>aut viam inveniam aut faciam</description>
	<lastBuildDate>Wed, 16 May 2012 17:25:55 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>NSFW Corporation &#8211; a review</title>
		<link>http://mikepuchol.com/2012/05/15/nsfw-corporation-a-review/</link>
		<comments>http://mikepuchol.com/2012/05/15/nsfw-corporation-a-review/#comments</comments>
		<pubDate>Tue, 15 May 2012 22:56:39 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
				<category><![CDATA[English]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[NSWF]]></category>
		<category><![CDATA[Paul Carr]]></category>
		<category><![CDATA[review]]></category>
		<category><![CDATA[Startups]]></category>

		<guid isPermaLink="false">http://mikepuchol.com/?p=1031</guid>
		<description><![CDATA[<p><img width="150" height="150" src="http://mikepuchol.com/wp-content/uploads/2012/05/FirefoxScreenSnapz051-150x150.png" class="attachment-thumbnail wp-post-image" alt="FirefoxScreenSnapz051" title="FirefoxScreenSnapz051" /></p>So finally I managed to get in the NSFW Corporation beta &#8211; after some back-and-forth involving a mysterious bug that caused my email to not make it in the beta on time. I have one word to start off this review: awesome. It&#8217;s hard to describe what it is &#8211; my best description, aside from [...]]]></description>
			<content:encoded><![CDATA[<p><img width="150" height="150" src="http://mikepuchol.com/wp-content/uploads/2012/05/FirefoxScreenSnapz051-150x150.png" class="attachment-thumbnail wp-post-image" alt="FirefoxScreenSnapz051" title="FirefoxScreenSnapz051" /></p><p>So finally I managed to get in the <a href="http://http://www.nsfwcorp.com" target="_blank">NSFW Corporation</a> beta &#8211; after some back-and-forth involving a mysterious bug that caused my email to not make it in the beta on time. I have one word to start off this review: <strong>awesome</strong>.</p>
<p>It&#8217;s hard to describe what it is &#8211; my best description, aside from the official line of being &#8220;<em>a news-weekly that&#8217;s published daily</em>&#8220;, is that it&#8217;s a mix of witty articles on a variety of topics, complimented with an audio podcast (Lord, do I hate that word &#8211; if you have a better one, let me know, Paul!). NSFW is <a href="http://paulcarr.com" target="_blank">Paul Carr&#8217;s</a> brainchild, founded after a string of <a href="http://www.amazon.com/Bringing-Nothing-Party-Confessions-ebook/dp/B002U94SIO" target="_blank">startup failures</a> and <a href="http://www.amazon.com/The-Upgrade-Cautionary-Without-Reservations/dp/1934708801" target="_blank">literary successes</a>, and is showing promise. The first literary success is ironically based on the string of startup failures, but I digress.</p>
<p>Two articles from the pilot issue are titled <strong>This is Why They Hate Us: The Meat Monster</strong>, a funny take on why the rest of the world hates the United States and 10k-kcalorie burgers, and <strong>Best Practices For: The New Secret Service</strong>, which includes tips such as &#8220;<em>An agent should now wrestle his partner to the ground at the first hint of an erection</em>&#8220;. It is hilarious and entertaining reading, with a touch of political incorrectness that I witnessed only in UK media while I was living there, plus the right dose of swearing. It&#8217;s not called NSFW for nothing.</p>
<p>NSFW Live is the audio part of the site, with Paul and Josh Ellis, a contributor with a deep, movie-trailer voice, which reminds me of Beau Weaver (<a href="http://www.spokenword.com/ringtone/" target="_blank">check out his free In A World ringtone</a>). Josh makes the intro, and the back-and-forth with the guest begins. In the first episode, Patrick Sauer is invited to opine on whether Ron Paul masturbates to &#8216;<em>Atlas Shrugged</em>&#8216;. A touchy subject if there is one (no pun intended&#8230; sort of). The clips last for around 30 minutes, and are highly entertaining.</p>
<p>Once it becomes live to the general public, a yearly subscription will cost $26, which is very good value for money. Right now, content is optimized for the iPad, but you can still read it in a desktop browser such as Safari or Chrome &#8211; Firefox was quirky at times, with random Javascript events being triggered for no apparent reason. Maybe it&#8217;s Firebug, but I didn&#8217;t investigate further.</p>
<h4>Grumpy old git &#8211; things that could improve</h4>
<p><img class="alignleft size-thumbnail wp-image-1032" title="iStock_000015441125XSmall" src="http://mikepuchol.com/wp-content/uploads/2012/05/iStock_000015441125XSmall-150x150.jpg" alt="" width="150" height="150" />As I&#8217;m an <a href="http://mikepuchol.com/2009/08/26/so-where-are-the-beautiful-mac-os-weather-station-apps/" target="_blank">anal-retentive asshole</a> when it comes to user interfaces and usability, I have a few constructive criticisms to make. First, on being iPad-optimized, and the very first thing you see when you arrive at nsfwcorp.com &#8211; the login form.</p>
<p>Before digging in, one curiosity for those technically-minded: there is almost no &#8220;normal&#8221; HTML in the site&#8217;s source. Each page is a collection of Javascript includes, which generate content dynamically. This has one advantage in being able to adapt to user browser &amp; device specifics without much server-side heavy lifting, for example, by making use of jQuery&#8217;s deviceAgent.match (in this case, to send iPhone users to <a href="http://www.nsfwcorp.com/comingsoon.html" target="_blank">comingsoon.html</a> &#8211; bastards!).</p>
<p>So without further ado, here is the Javascript-generated login form:</p>
<p><a href="http://mikepuchol.com/wp-content/uploads/2012/05/FirefoxScreenSnapz050.png"><img class="aligncenter size-full wp-image-1034" title="FirefoxScreenSnapz050" src="http://mikepuchol.com/wp-content/uploads/2012/05/FirefoxScreenSnapz050.png" alt="" width="329" height="162" /></a></p>
<p>Nothing really much to it &#8211; however, this is the HTML source for the two fields:</p>
<pre id="line1">&lt;input name="<a>username</a>" id="<a>loginUsername</a>" placeholder="<a>Email</a>" type="<a>text</a>"&gt;
&lt;input name="<a>password</a>" id="<a>loginPassword</a>" placeholder="<a>Password</a>" type="<a>password</a>"&gt;</pre>
<p>So by now you must be thinking &#8220;<em>yeah, you really are an anal-retentive asshole, what about those?!</em>&#8220;. Simply put, they are not iPad &#8211; or more exactly, iOS &#8211; optimized. One of the neat things Mobile Safari gives web developers is extra form field tags, which make the device aware of the type of input being sought, so it can adapt the keypad accordingly. This is how the login form looks on an iPad, once you tap on the &#8216;Email&#8217; field (click for large version):</p>
<p><a href="http://mikepuchol.com/wp-content/uploads/2012/05/nsfw_keyboard.jpg"><img class="aligncenter size-medium wp-image-1035" title="nsfw_keyboard" src="http://mikepuchol.com/wp-content/uploads/2012/05/nsfw_keyboard-300x230.jpg" alt="" width="300" height="230" /></a></p>
<p>There are two issues here: first, we capitalize the first letter of the user&#8217;s email address, which is not really A Bad Thing™, but doesn&#8217;t look pretty. The second, and most important, is regarding usability. By using type=&#8221;email&#8221; instead of type=&#8221;text&#8221; in the form field, the user gets to see this:</p>
<p><a href="http://mikepuchol.com/wp-content/uploads/2012/05/nsfw_keyboard_detail.jpg"><img class="aligncenter size-medium wp-image-1038" title="nsfw_keyboard_detail" src="http://mikepuchol.com/wp-content/uploads/2012/05/nsfw_keyboard_detail-300x235.jpg" alt="" width="300" height="235" /></a></p>
<p>which is how iOS optimizes itself for email address entry. Depending on your particular concoction of underscores and dashes, this can save you some time. The whole list of supported form types <a href="https://developer.apple.com/library/safari/#documentation/appleapplications/reference/SafariHTMLRef/Articles/InputTypes.html" target="_blank">can be found here</a>.</p>
<p>My second irk is the amount of screen space the header graphic takes once you get in:</p>
<p><a href="http://mikepuchol.com/wp-content/uploads/2012/05/nsfw_main.jpg"><img class="aligncenter size-medium wp-image-1039" title="nsfw_main" src="http://mikepuchol.com/wp-content/uploads/2012/05/nsfw_main-300x230.jpg" alt="" width="300" height="230" /></a></p>
<p>Of course, you can scroll down right away and see the various articles, but having the titles of the first two cut off doesn&#8217;t look that good.</p>
<p>The third issue has to do with scroll position between page transitions. If you scroll down, say about half-way down, and want to read <strong>Who&#8217;s The Leader Of The Club That&#8217;s Made For You And Me</strong> (if you&#8217;ve seen Full Metal Jacket, the answer is of course Mickey Mouse):</p>
<p><a href="http://mikepuchol.com/wp-content/uploads/2012/05/page_1.jpg"><img class="aligncenter size-medium wp-image-1040" title="page_1" src="http://mikepuchol.com/wp-content/uploads/2012/05/page_1-300x230.jpg" alt="" width="300" height="230" /></a></p>
<p>you are dropped just below mid-page into the article, thus:</p>
<p><a href="http://mikepuchol.com/wp-content/uploads/2012/05/page_2.jpg"><img class="aligncenter size-medium wp-image-1041" title="page_2" src="http://mikepuchol.com/wp-content/uploads/2012/05/page_2-300x230.jpg" alt="" width="300" height="230" /></a></p>
<p>instead of here:</p>
<p><a href="http://mikepuchol.com/wp-content/uploads/2012/05/page_3.jpg"><img class="aligncenter size-medium wp-image-1042" title="page_3" src="http://mikepuchol.com/wp-content/uploads/2012/05/page_3-300x230.jpg" alt="" width="300" height="230" /></a></p>
<p>If you&#8217;ve read the article, the answer is, of course, Walt Disney&#8217;s head filled with blue water, a sort of eerie Magic 8 Ball.</p>
<p>The final issue has more to do with strategy and people&#8217;s spelling abilities &#8211; or lack thereof. Allow me to explain: how many of you have typed <a href="http://nswfcorp.com" target="_blank">nswfcorp.com</a> in your browser and have landed in a &#8220;server could not be found&#8221; page? OMG! Someone has registered that already by the time I&#8217;m typing this, I hope it&#8217;s not a spammer trying to take advantage of those who cannot spell or type that well, <a href="http://techcrunch.com/2007/05/22/the-cm-scam/" target="_blank">a-la-holders of .cm domains</a>. Or a pissed-off ex-girlfriend of Paul&#8217;s who re-directs the domain to goatse or meatspin or worse.</p>
<p>Worry not, as I was typing this, I thought I&#8217;d do Paul a favor (OK, maybe he doesn&#8217;t give a shit, so maybe not) and register the domain, which I&#8217;ll transfer to him for free. When I started Whisher, it didn&#8217;t occur to me that a competitor could buy wisher.com (the correct spelling) and redirect it to his own site &#8211; a point our first VC painfully reminded me of, and which cost us $30k and convincing the Wisher sisters, owners &amp; operators of a real estate agency in the US, and owners of the domain.</p>
<p>In all, nothing extremely hard to fix &#8211; I&#8217;m really looking forward to the next issue!</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://mikepuchol.com/2012/05/15/nsfw-corporation-a-review/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Getting your Facebook App logo icons right</title>
		<link>http://mikepuchol.com/2012/05/09/getting-your-facebook-app-logo-icons-right/</link>
		<comments>http://mikepuchol.com/2012/05/09/getting-your-facebook-app-logo-icons-right/#comments</comments>
		<pubDate>Wed, 09 May 2012 17:43:29 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
				<category><![CDATA[English]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[app]]></category>
		<category><![CDATA[Facebook]]></category>
		<category><![CDATA[logo]]></category>

		<guid isPermaLink="false">http://mikepuchol.com/?p=1019</guid>
		<description><![CDATA[This is a short post distilled from hours of frustration at the mangling of App logos by Facebook. Basically, if you want this: instead of this: make sure you flatten your image in Photoshop, and save as a 75&#215;75 pixel GIF, with the dithering applied in &#8220;Save for web&#8230;&#8221;. Otherwise, Facebook will take your nice, [...]]]></description>
			<content:encoded><![CDATA[<p>This is a short post distilled from hours of frustration at the mangling of App logos by Facebook. Basically, if you want this:</p>
<p><img class="alignnone size-full wp-image-1027" title="FirefoxScreenSnapz047" src="http://mikepuchol.com/wp-content/uploads/2012/05/FirefoxScreenSnapz047.png" alt="" width="80" height="80" /></p>
<p>instead of this:</p>
<p><img class="alignnone size-full wp-image-1028" title="FirefoxScreenSnapz045" src="http://mikepuchol.com/wp-content/uploads/2012/05/FirefoxScreenSnapz045.png" alt="" width="80" height="80" /></p>
<p>make sure you flatten your image in Photoshop, and save as a 75&#215;75 pixel GIF, with the dithering applied in &#8220;Save for web&#8230;&#8221;. Otherwise, Facebook will take your nice, transparent PNG and convert it to GIF with whatever dithering they choose, with results usually quite crappy. Feed the right GIF, and no conversion is required nor performed.</p>
]]></content:encoded>
			<wfw:commentRss>http://mikepuchol.com/2012/05/09/getting-your-facebook-app-logo-icons-right/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Installing Ubuntu on a Soekris net6501</title>
		<link>http://mikepuchol.com/2012/05/09/installing-ubuntu-on-a-soekris-net6501/</link>
		<comments>http://mikepuchol.com/2012/05/09/installing-ubuntu-on-a-soekris-net6501/#comments</comments>
		<pubDate>Wed, 09 May 2012 17:25:50 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
				<category><![CDATA[English]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[net6501]]></category>
		<category><![CDATA[soekris]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://mikepuchol.com/?p=1021</guid>
		<description><![CDATA[After frustration with FreeBSD&#8217;s ports system on a slow box such as the net6501 (it took literally 7 hours and endless &#8220;continue&#8221; buttons to get subversion installed), I decided to try and install Ubuntu. No clear instructions can be found on the net as to how to do it over a serial terminal, the only [...]]]></description>
			<content:encoded><![CDATA[<p>After frustration with FreeBSD&#8217;s ports system on a slow box such as the net6501 (it took literally 7 hours and endless &#8220;continue&#8221; buttons to get subversion installed), I decided to try and install Ubuntu. No clear instructions can be found on the net as to how to do it over a serial terminal, the only option available with the Soekris, so after some mix &amp; match of various hints and pointers, I managed to do it. Here is how.</p>
<h4>1. My setup</h4>
<p>My particular net6501 is the mid-range version, with a 1GHz processor, 1Gb of RAM, and an internal Transcend 16GB flash drive. I also got the case &amp; power supply, of course.</p>
<h4>2. Get the Ubuntu Server ISO</h4>
<p>Easy, just grab it <a href="http://www.ubuntu.com/download/server" target="_blank">here</a> (32-bit version).</p>
<h4>3. Create a bootable USB drive</h4>
<p>You will need at least a 1GB flash drive, 2GB is recommended. I use Sandisk or other well-known brands, less likely to give headaches. The easiest way to create the bootable USB drive is to use Ubuntu&#8217;s own Startup Disk Creator, found under System in your standard Ubuntu desktop distribution. I use Macs so I run mine inside Parallels, with no issues at all.</p>
<h4>4. Edit the boot menu configuration</h4>
<p>You need to find a file named txt.cfg in your bootable USB drive and open it in a text editor. You will find a line that reads:</p>
<pre>kernel /install/vmlinuz</pre>
<p>The line after that begins with <em>append</em> &#8211; it needs to end up like this:</p>
<pre>append console=ttyS0,19200n8 file=/cdrom/preseed/ubuntu-server.seed initrd=/install/initrd.gz</pre>
<p>You need 19200 as that is the default speed on the Soekris serial port.</p>
<h4>5. Connect a serial cable to the Soekris</h4>
<p>A null-modem cable is needed. I use a DB9 adapter male/female adapter and a normal serial cable.</p>
<h4>6. Open a serial terminal</h4>
<p>The terminal needs to support VT100 emulation. Unfortunately all terminal apps for Mac that support this are payware and suck. I ended up using Hyperterminal in a Windows XP Parallels VM. It was rock solid throughout the procedure.</p>
<p>Set the terminal to 19200/8/N/1, no flow control, VT100 emulation.</p>
<h4>7. Connect the bootable USB to the Soekris</h4>
<p>The external USB port next to the DB9 will do fine.</p>
<h4>8. Boot up the Soekris</h4>
<p>Once you see the 5&#8230;4&#8230;3&#8230; countdown, hit Control+P, and then type</p>
<pre>boot 81</pre>
<p>and hit enter. Check that 81 is your USB drive, it should appear at the start of the boot log in the terminal. Adjust as required. You should now see a boot: prompt, type &#8220;install&#8221; and enter &#8211; an Ubuntu text-based install should follow, continue with the normal setup procedure after this.</p>
<p>That&#8217;s all folks &#8211; the toughest part was to find the terminal settings for the menu, if you get errors related to unknown video modes, you have not edited the right file or have done so incorrectly. Enjoy!</p>
<p>For the record, apt-get installed subversion on the same box in 30 seconds flat. FreeBSD needs to fix its package management system. Vim on FreeBSD requires over 500 individual file downloads with over 500 fixes/patches to the base version &#8211; ridiculous!</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://mikepuchol.com/2012/05/09/installing-ubuntu-on-a-soekris-net6501/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Your Smart-UPS no longer shows up in Mac OS Energy Saver?</title>
		<link>http://mikepuchol.com/2011/01/02/your-smart-ups-no-longer-shows-up-in-mac-os-energy-saver/</link>
		<comments>http://mikepuchol.com/2011/01/02/your-smart-ups-no-longer-shows-up-in-mac-os-energy-saver/#comments</comments>
		<pubDate>Sun, 02 Jan 2011 01:15:57 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
				<category><![CDATA[English]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[apcupsd]]></category>
		<category><![CDATA[energy saver]]></category>
		<category><![CDATA[kext]]></category>
		<category><![CDATA[Mac OS]]></category>
		<category><![CDATA[Snow Leopard]]></category>

		<guid isPermaLink="false">http://mikepuchol.com/?p=937</guid>
		<description><![CDATA[If you are positive that your UPS is correctly connected (check System Profiler etc.), then look for a &#8216;dummy&#8217; kext installed by apcupsd, an alternative UPS monitoring tool, here: /System/Library/Extensions/ApcupsdDummy.kext If found, simply sudo rm -rf /System/Library/Extensions/ApcupsdDummy.kext and reboot your Mac.]]></description>
			<content:encoded><![CDATA[<p>If you are positive that your UPS is correctly connected (check System Profiler etc.), then look for a &#8216;dummy&#8217; kext installed by <a href="http://www.apcupsd.com" target="_blank">apcupsd</a>, an alternative UPS monitoring tool, here:</p>
<pre>/System/Library/Extensions/ApcupsdDummy.kext</pre>
<p>If found, simply</p>
<pre>sudo rm -rf /System/Library/Extensions/ApcupsdDummy.kext</pre>
<p>and reboot your Mac.</p>
]]></content:encoded>
			<wfw:commentRss>http://mikepuchol.com/2011/01/02/your-smart-ups-no-longer-shows-up-in-mac-os-energy-saver/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hey @Twitter, here are some suggestions for dealing with spam</title>
		<link>http://mikepuchol.com/2010/10/19/hey-twitter-here-are-some-suggestions-for-dealing-with-spam/</link>
		<comments>http://mikepuchol.com/2010/10/19/hey-twitter-here-are-some-suggestions-for-dealing-with-spam/#comments</comments>
		<pubDate>Tue, 19 Oct 2010 13:52:51 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
				<category><![CDATA[English]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[@delbius]]></category>
		<category><![CDATA[@ed]]></category>
		<category><![CDATA[@ev]]></category>
		<category><![CDATA[filters]]></category>
		<category><![CDATA[safety]]></category>
		<category><![CDATA[Spam]]></category>
		<category><![CDATA[Twitter]]></category>

		<guid isPermaLink="false">http://mikepuchol.com/?p=915</guid>
		<description><![CDATA[<p><img width="150" height="150" src="http://mikepuchol.com/wp-content/uploads/2010/10/Twitter-spam-150x150.png" class="attachment-thumbnail wp-post-image" alt="Twitter spam" title="Twitter spam" /></p>I am befuddled by how @Twitter can miss some blatant cases of spam accounts. So much that I have come close to conclude that these are paid accounts, thus won&#8217;t be removed no matter how much they are flagged and/or blocked. Here are some suggestions, based on what I have observed with spammers on Twitter, [...]]]></description>
			<content:encoded><![CDATA[<p><img width="150" height="150" src="http://mikepuchol.com/wp-content/uploads/2010/10/Twitter-spam-150x150.png" class="attachment-thumbnail wp-post-image" alt="Twitter spam" title="Twitter spam" /></p><p>I am befuddled by how <a href="http://twitter.com/twitter">@Twitter</a> can miss some blatant cases of spam accounts. So much that I have come close to conclude that these are paid accounts, thus won&#8217;t be removed no matter how much they are flagged and/or blocked. Here are some suggestions, based on what I have observed with spammers on Twitter, for spam-matching rules to improve the catch ratio. The accounts I use as examples have been hand-picked, so my points are open to interpretation, and could be way improved with data that Twitter has, such as tweet rate, number of spam flags and blocks, etc. These checks could be triggered in escalating order according to the number of users flagging an account for spam, as an example.</p>
<p><strong>[Update]</strong> <em>@Ed has </em><a href="http://twitter.com/#!/Ed/status/27837493380"><em>replied to my tweet</em></a><em> and part of this post:</em></p>
<p><a href="http://mikepuchol.com/wp-content/uploads/2010/10/SafariScreenSnapz003.png"><img class="alignnone size-medium wp-image-927" title="Third tweet" src="http://mikepuchol.com/wp-content/uploads/2010/10/SafariScreenSnapz003-300x139.png" alt="" width="300" height="139" /></a></p>
<p><em>I said &#8220;I have come close to conclude&#8230;&#8221;, not that they are paid accounts. But, it defies all logic how an account like @kredits can still be up and running after close to 64.000 (yes, that&#8217;s sixty-four thousand) spam tweets that break many of the rules/filters I have written about below. It is not a question of writing an algorithm for every variation, but a set of rules which give individual scores, and a minimum score to suspend an account. Basically, x-spam-score followed by an x-spam-status that determines account suspension, or lack thereof.</em></p>
<h3>Follower to following ratio</h3>
<p>Some spam accounts use aggressive follow techniques to try and spread their trash, and this gets reflected by auto-follow bots. The result are accounts with following/followed ratios close to one. Case examples: <a href="http://twitter.com/bqe1212">@Bqe1212</a> with a ratio of 1.01, or <a href="http://twitter.com/vidalconsulting">@vidalconsulting</a> with 1.04. Others do not follow this approach, and only follow few accounts, for example, <a href="http://twitter.com/kredits">@kredits</a>, with only 168 followers and following 49.</p>
<h3>Tweet rate</h3>
<p>One case I observed (the account is now suspended, so kudos there) had the particularity that tweets were pushed out every three minutes exactly. Twenty-four hours a day. This is something -very- easy to catch (and equally easy to defeat, but hey, some spammers <em>are</em> dumb).</p>
<h3>Tweet content</h3>
<p>We can split this check into various sub-checks:</p>
<h5>1. Keywords</h5>
<p>In the case of <a href="http://twitter.com/jenlock1014">@jenlock1014</a>, the word &#8216;money&#8217; appears in almost every single tweet pushed out. The actual text of the tweets vary, as do the linked URLs, but the keyword is there. Other usual keywords are &#8216;free&#8217;, &#8216;cash&#8217;, and so on.</p>
<h5>2. Linking the same URL</h5>
<p>In some cases we see links to the same URL in every tweet, such as <a href="http://twitter.com/bqe1212">@Bqe1212</a>, with tweets like:</p>
<blockquote><p>http://twttr.me/dbxV Q&amp;A: HOW CAN I MAKE MONEY FAST ON THE INTERNET FOR FREE!! NO &#8230;: by Chri&#8230; http://bit.ly/aJVi6Whttp://twttr.me/dbxV</p></blockquote>
<p>and</p>
<blockquote><p>http://twttr.me/dbxV How to Make Money Online With Online Writing Sites: There are many sites &#8230; http://bit.ly/cichxl http://twttr.me/dbxV</p></blockquote>
<p>The target site&#8217;s linked short URL is different, but every tweet contains (two in this case!) copies of the same short link. Again, both tweets would also trigger rule #1 above for keywords.</p>
<h5>3. Linking the same URL with differing URL shorteners</h5>
<p>One technique often used is to spread the target link among various URL shorteners. This is the case of @kredits, which uses snurl.com, ej.uz, short.ie, bit.ly, and others, all of which redirect to the same final URL. A simple check, once an account is flagged for processing, is to follow all shortened URLs and look for patterns. For example:</p>
<ul>
<li>Exactly the same URL.</li>
<li>Same host, same path, but varying query string (oft used to track sources).</li>
<li>Same host, varying path, but same query string.</li>
<li>Same host with both varying path and query string.</li>
<li>Varying subdomains of the same host.</li>
</ul>
<p>A combination of the above can be used to determine a spam score for a set of given URLs. An extra check when fuzzing techniques are used on the final URL is to parse the target site&#8217;s content, looking for similar headers, keywords, image URIs, Google Analytics account IDs, etc.</p>
<h3>Reaction tweets™</h3>
<p>Many times a spammer searches for certain keywords, and sends a reaction tweet when one is found. As an example, when I sent this reply to Ed Shahzade (<a href="http://twitter.com/ed">@Ed</a>) in reply to <a href="http://twitter.com/#!/Ed/status/27786446204">his tweet about auto-follower bots and spam</a>, I received <a href="http://twitter.com/atraiskredits/status/27790247930">this other tweet</a> from <a href="http://twitter.com/atraiskredits">@atraiskredits</a>:</p>
<blockquote><p>@mikepuchol Problēmu var atrisināt ātrais kredīts? Izvērtēs kredīta piedāvājumu! Atver www.opencredit.lv un gaidi naudu savā kontā.</p></blockquote>
<p>Obviously this is not English, and thus it was sent as a blind reply to my tweet mentioning @kredits without caring much about my original language, or wether I understand the content of the tweet.</p>
<p>On a flagged account, it should be very easy to check when response tweets are sent, by accumulating the words used in the original triggering tweets, and testing the occurrence of each word in all, or a high percentage, of them. As another case example, 10 minutes after <a href="http://twitter.com/djsandman813">@djsandman813</a> was sent <a href="http://twitter.com/#!/kredits/status/27829583258">this tweet</a> by @kredits, and he <a href="http://twitter.com/#!/djsandman813/status/27829642025">replied this</a>, @atraiskredits sent <a href="http://twitter.com/#!/atraiskredits/status/27830422474">this reaction tweet</a>. Screenshots below in case they go missing:</p>
<p><a href="http://mikepuchol.com/wp-content/uploads/2010/10/SafariScreenSnapz001.png"><img class="alignnone size-medium wp-image-918" title="First tweet" src="http://mikepuchol.com/wp-content/uploads/2010/10/SafariScreenSnapz001-300x139.png" alt="" width="300" height="139" /></a></p>
<p><a href="http://mikepuchol.com/wp-content/uploads/2010/10/SafariScreenSnapz002.png"><img class="alignnone size-medium wp-image-919" title="Second tweet" src="http://mikepuchol.com/wp-content/uploads/2010/10/SafariScreenSnapz002-300x139.png" alt="" width="300" height="139" /></a></p>
<p><em>* OK &#8220;Reaction tweets&#8221; is not really trademarked, but maybe it should be!</em></p>
<h3>Account aggregation</h3>
<p>Spammers can try to avoid being flagged, or delay detection, by spreading their activity across multiple accounts. The way to detect this is to run a check among flagged accounts for the above filters, eg. catching various accounts all sending reaction tweets with the same short URL.</p>
<h3>Account name</h3>
<p>Many spammers are not too creative and simply throw random words and letters into the account name &#8211; this can also be an indicator of a spammer account.</p>
<h3>Reaction flags</h3>
<p>When a user receives a spam tweet, his initial reaction may usually be to block flag the sender as spam. An accumulation of such flags, particularly with other indicators such as single tweets towards a user followed by a flag (denoting not a conversation but a directed one-way message), should be enough to suspend an account.</p>
<h3>What else?</h3>
<p>I&#8217;m sure there are many other checks possible, but I have to get back to work &#8211; so, <a href="http://twitter.com/delbius">@delbius</a>, do I get a job offer? Just kidding &#8211; was thinking of the guy <a href="http://www.examiner.com/online-media-in-oakland/youtube-instant-creator-receives-job-offer-from-youtube-ceo">who got offered a job at YouTube</a> after writing &#8216;YouTube Instant&#8217;.</p>
]]></content:encoded>
			<wfw:commentRss>http://mikepuchol.com/2010/10/19/hey-twitter-here-are-some-suggestions-for-dealing-with-spam/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>First impressions on AutoCAD for Mac OS</title>
		<link>http://mikepuchol.com/2010/10/17/first-impressions-on-autocad-for-mac-os/</link>
		<comments>http://mikepuchol.com/2010/10/17/first-impressions-on-autocad-for-mac-os/#comments</comments>
		<pubDate>Sun, 17 Oct 2010 11:30:30 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
				<category><![CDATA[English]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[AutoCAD]]></category>
		<category><![CDATA[Autodesk]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[OS X]]></category>
		<category><![CDATA[review]]></category>

		<guid isPermaLink="false">http://mikepuchol.com/?p=900</guid>
		<description><![CDATA[<p><img width="150" height="150" src="http://mikepuchol.com/wp-content/uploads/2010/10/AutoCAD_BSOD1-150x150.png" class="attachment-thumbnail wp-post-image" alt="AutoCAD_BSOD" title="AutoCAD_BSOD" /></p>It should have been premonitory &#8211; while looking for other reviews or info on the upcoming AutoCAD for Mac OS release, I stumbled upon this post by Steve Johnson, owner of cad nauseam, in which he details why AutoCAD for Mac would be a bad idea. While I agreed with some of his views, as [...]]]></description>
			<content:encoded><![CDATA[<p><img width="150" height="150" src="http://mikepuchol.com/wp-content/uploads/2010/10/AutoCAD_BSOD1-150x150.png" class="attachment-thumbnail wp-post-image" alt="AutoCAD_BSOD" title="AutoCAD_BSOD" /></p><p>It should have been premonitory &#8211; while looking for other reviews or info on the upcoming AutoCAD for Mac OS release, I stumbled <a href="http://www.blog.cadnauseam.com/2009/05/29/why-autocad-for-mac-is-a-bad-idea/">upon this post by Steve Johnson</a>, owner of cad nauseam, in which he details why AutoCAD for Mac would be a bad idea. While I agreed with some of his views, as this has happened before countless times (case example: Skype, which took years to catch up <a href="http://www.tuaw.com/2010/10/15/updated-skype-for-mac-coming-soon/">still lacks behind</a> in features and stability compared to its Windows version), I believed things wouldn&#8217;t be <em>that</em> bad.</p>
<p>It turns out there is a list of over 80 holes which Autodesk lists <a href="http://usa.autodesk.com/adsk/servlet/ps/dl/item?siteID=123112&amp;id=15833488&amp;linkID=15839490">here</a>. Steve has posted <a href="http://www.blog.cadnauseam.com/2010/10/17/autodesk-for-mac-the-hole-story/">this</a> in response, and we now even have <a href="http://www.deelip.com/?p=3230">an interview with Autodesk staff</a> with money quotes such as:</p>
<blockquote><p>It really does not make sense for us to implement features on the Mac platform that nobody’s going to use. So basically what the customers are asking for is that we are going to deliver. So like I mentioned before Mac users on the Architecture side shouldn’t notice much of a difference.</p></blockquote>
<p>OK so you release a trimmed product with not-so-oft used features missing, but at the same price? That doesn&#8217;t really fly, no matter how you look at it.</p>
<h4>San Rafael, we have a problem</h4>
<p>My first reaction when I saw the activation window, right after installing AutoCAD on my Mac Pro, was &#8220;OMG they have transplanted the Windows version using Java&#8221;. It was SO ugly &#8211; in essence, a copy-paste of the Windows workflow into a Mac window, and I suspect they load the content as HTML from a server. Scrollbars? On a modal tool window?</p>
<p>This was before I had to activate the product, which required creating a whole new account, as my teacher login details would not work at all. Autodesk apparently &#8220;had no record&#8221; of my email address and password, so I had to go through the account creation once more, then finish the activation process, which takes a few more, totally unnecessary, steps. A simple &#8220;give us your product code and serial&#8221; followed by a &#8220;thank you for activating&#8221; is more than enough.</p>
<p>Once you fire up AutoCAD, you&#8217;re greeted by this splash screen:</p>
<p><a href="http://mikepuchol.com/wp-content/uploads/2010/10/AutoCADScreenSnapz0021.png"><img class="alignnone size-medium wp-image-903" title="Splash screen" src="http://mikepuchol.com/wp-content/uploads/2010/10/AutoCADScreenSnapz0021-300x192.png" alt="" width="300" height="192" /></a></p>
<p>which is not particularly informative, but still, shows <em>something</em>. The next thing you are greeted with, at least with the educational version, is this:</p>
<p><a href="http://mikepuchol.com/wp-content/uploads/2010/10/AutoCADScreenSnapz001.png"><img class="alignnone size-medium wp-image-904" title="Educational warning" src="http://mikepuchol.com/wp-content/uploads/2010/10/AutoCADScreenSnapz001-300x129.png" alt="" width="300" height="129" /></a></p>
<p>OK, so I am using an educational product, but you don&#8217;t need to keep reminding me of this fact every time I open a drawing done with a different version &#8211; a &#8220;don&#8217;t remind me again&#8221; checkbox is all it takes. The warning would be useful if it came up with drawings you made with a full AutoCAD version, given by others, etc. but it also shows up when creating a new drawing from one of the included templates!</p>
<p>Finally, expecting a normal drawing area, I was greeted by this (click for full size):</p>
<p><a href="http://mikepuchol.com/wp-content/uploads/2010/10/AutoCADScreenSnapz004.png"><img class="alignnone size-medium wp-image-905" title="Main screen" src="http://mikepuchol.com/wp-content/uploads/2010/10/AutoCADScreenSnapz004-300x187.png" alt="" width="300" height="187" /></a></p>
<p>It <em>almost</em> reminded me of a BSOD. No matter what I did, I could not even get the cursor to appear in the drawing area, never mind actually draw something. The application was completely unusable. Creating a new drawing, from a template, blank &#8211; nothing worked, I either got the blue bars of death (BBOD) or a black drawing area into which everything was sucked into, a-la-black hole. No cursor, cross-hairs, nothing.</p>
<p>The next logical step was to open a drawing recently created using AutoCAD on Windows, and this came up:</p>
<p><a href="http://mikepuchol.com/wp-content/uploads/2010/10/AutoCADScreenSnapz005.png"><img class="alignnone size-medium wp-image-910" title="Another fail" src="http://mikepuchol.com/wp-content/uploads/2010/10/AutoCADScreenSnapz005-300x213.png" alt="" width="300" height="213" /></a></p>
<p>I give up. I will try to install it on my MacBook Pro, and see what happens. If the problems reappear, I&#8217;ll go back to BootCamp or VMWare with the Windows version, which is fully-featured, stable, and usable. Nice and commendable work on bringing back AutoCAD to the Mac, but so far, it appears the bugs and missing features, even when they are fairly unused ones, are killing the product. Again.</p>
]]></content:encoded>
			<wfw:commentRss>http://mikepuchol.com/2010/10/17/first-impressions-on-autocad-for-mac-os/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>343 FDNY Never Forget</title>
		<link>http://mikepuchol.com/2010/09/11/343-fdny-never-forget/</link>
		<comments>http://mikepuchol.com/2010/09/11/343-fdny-never-forget/#comments</comments>
		<pubDate>Sat, 11 Sep 2010 20:17:47 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
				<category><![CDATA[English]]></category>
		<category><![CDATA[Firefighting]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[911]]></category>
		<category><![CDATA[FDNY]]></category>

		<guid isPermaLink="false">http://mikepuchol.com/?p=851</guid>
		<description><![CDATA[It has been nine years. On that day, 343 brave men lost their lives while saving thousands more at the World Trade Center, New York. Never forget. Below is the full list of those who never made it back from the towers. A Joseph Agnello, Lad.118 Lt. Brian Ahearn, Bat.13 Eric Allen, Sqd.18 (D) Richard [...]]]></description>
			<content:encoded><![CDATA[<p>It has been nine years. On that day, 343 brave men lost their lives while saving thousands more at the World Trade Center, New York. Never forget. Below is the full list of those who never made it back from the towers.</p>
<p><img title="9/11" src="http://www.williamlong.info/google/upload/107_2.jpg" alt="" width="491" height="302" /></p>
<p><strong>A</strong><br />
Joseph Agnello, Lad.118 Lt. Brian Ahearn, Bat.13 Eric Allen, Sqd.18 (D) Richard Allen, Lad.15 Cpt. James Amato, Sqd.1 Calixto Anaya Jr., Eng.4 Joseph Agnello, Lad.118 Lt. Brian Ahearn, Bat.13 Eric Allen, Sqd.18 (D) Richard Allen, Lad.15 Cpt. James Amato, Sqd.1 Calixto Anaya Jr., Eng.4 Joseph Angelini, Res.1 (D) Joseph Angelini Jr., Lad.4 Faustino Apostol Jr., Bat.2 David Arce, Eng.33 Louis Arena, Lad.5 (D) Carl Asaro, Bat.9 Lt. Gregg Atlas, Eng.10 Gerald Atwood, Lad.21</p>
<p><strong>B</strong><br />
Gerald Baptiste, Lad.9 A.C. Gerard Barbara, Cmd. Ctr. Matthew Barnes, Lad.25 Arthur Barry, Lad.15 Lt.Steven Bates, Eng.235 Carl Bedigian, Eng.214 Stephen Belson, Bat.7 John Bergin, Res.5 Paul Beyer, Eng.6 Peter Bielfeld, Lad.42 Brian Bilcher, Sqd.1 Carl Bini, Res.5 Christopher Blackwell, Res.3 Michael Bocchino, Bat.48 Frank Bonomo, Eng.230 Gary Box, Sqd.1 Michael Boyle, Eng.33 Kevin Bracken, Eng.40 Michael Brennan, Lad.4 Peter Brennan, Res.4 Cpt. Daniel Brethel, Lad.24 (D) Cpt. Patrick Brown, Lad.3 Andrew Brunn, Lad.5 (D) Cpt. Vincent Brunton, Lad.105 F.M. Ronald Bucca Greg Buck, Eng.201 Cpt. William Burke Jr., Eng.21 A.C. Donald Burns, Cmd. Ctr. John Burnside, Lad.20 Thomas Butler, Sqd.1 Patrick Byrne, Lad.101<br />
<span id="more-851"></span><strong>C</strong><br />
George Cain, Lad.7 Salvatore Calabro, Lad.101 Cpt. Frank Callahan, Lad.35 Michael Cammarata, Lad.11 Brian Cannizzaro, Lad.101 Dennis Carey, Hmc.1 Michael Carlo, Eng.230 Michael Carroll, Lad.3 Peter Carroll, Sqd.1 (D) Thomas Casoria, Eng.22 Michael Cawley, Lad.136 Vernon Cherry, Lad.118 Nicholas Chiofalo, Eng.235 John Chipura, Eng.219 Michael Clarke, Lad.2 Steven Coakley, Eng.217 Tarel Coleman, Sqd.252 John Collins, Lad.25 Robert Cordice, Sqd.1 Ruben Correa, Eng.74 James Coyle, Lad.3 Robert Crawford, Safety Lt. John Crisci, H.M. B.C. Dennis Cross, Bat.57 (D) Thomas Cullen III, Sqd. 41 Robert Curatolo, Lad.16 (D)</p>
<p><strong>D</strong><br />
Lt. Edward D&#8217;Atri, Sqd.1 Michael D&#8217;Auria, Eng.40 Scott Davidson, Lad.118 Edward Day, Lad.11 B.C. Thomas DeAngelis, Bat. 8 Manuel Delvalle, Eng.5 Martin DeMeo, H.M. 1 David DeRubbio, Eng.226 Lt. Andrew Desperito, Eng.1 (D) B.C. Dennis Devlin, Bat.9 Gerard Dewan, Lad.3 George DiPasquale, Lad.2 Lt. Kevin Donnelly, Lad.3 Lt. Kevin Dowdell, Res.4 B.C. Raymond Downey, Soc. Gerard Duffy, Lad.21</p>
<p><strong>E</strong><br />
Cpt. Martin Egan, Jr., Div.15 (D) Michael Elferis, Eng.22 Francis Esposito, Eng.235 Lt. Michael Esposito, Sqd.1 Robert Evans, Eng.33</p>
<p><strong>F</strong><br />
B.C. John Fanning, H.O. Cpt. Thomas Farino, Eng.26 Terrence Farrell, Res.4 Cpt. Joseph Farrelly, Div.1 Dep. Comm. William Feehan, (D) Lee Fehling, Eng.235 Alan Feinberg, Bat.9 Michael Fiore, Res.5 Lt. John Fischer, Lad.20 Andre Fletcher, Res.5 John Florio, Eng.214 Lt. Michael Fodor, Lad.21 Thomas Foley, Res.3 David Fontana, Sqd.1 Robert Foti, Lad.7 Andrew Fredericks, Sqd.18 Lt. Peter Freund, Eng.55</p>
<p><strong>G</strong><br />
Thomas Gambino Jr., Res.3 Chief of Dept. Peter Ganci, Jr. (D) Lt. Charles Garbarini, Bat.9 Thomas Gardner, Hmc.1 Matthew Garvey, Sqd.1 Bruce Gary, Eng.40 Gary Geidel, Res.1 B.C. Edward Geraghty, Bat.9 Dennis Germain, Lad.2 Lt. Vincent Giammona, Lad.5 James Giberson, Lad.35 Ronnie Gies, Sqd.288 Paul Gill, Eng.54 Lt. John Ginley, Eng.40 Jeffrey Giordano, Lad.3 John Giordano, Hmc.1 Keith Glascoe, Lad.21 James Gray, Lad.20 B.C. Joseph Grzelak, Bat.48 Jose Guadalupe, Eng.54 Lt. Geoffrey Guja, Bat.43 Lt. Joseph Gullickson, Lad.101</p>
<p><strong>H</strong><br />
David Halderman, Sqd.18 Lt. Vincent Halloran, Lad.8 Robert Hamilton, Sqd.41 Sean Hanley, Lad.20 (D) Thomas Hannafin, Lad.5 Dana Hannon, Eng.26 Daniel Harlin, Lad.2 Lt. Harvey Harrell, Res.5 Lt. Stephen Harrell, Bat.7 Cpt. Thomas Haskell, Jr., Div.15 Timothy Haskell, Sqd.18 (D) Cpt. Terence Hatton, Res.1 Michael Haub, Lad.4 Lt. Michael Healey, Sqd.41 John Hefferman, Lad.11 Ronnie Henderson, Eng.279 Joseph Henry, Lad.21 William Henry, Res.1 (D) Thomas Hetzel, Lad.13 Cpt. Brian Hickey, Res.4 Lt. Timothy Higgins, S.O.C. Jonathan Hohmann, Hmc.1 Thomas Holohan, Eng.6 Joseph Hunter, Sqd.288 Cpt. Walter Hynes, Lad.13 (D)</p>
<p><strong>I</strong><br />
Jonathan Ielpi, Sqd.288 Cpt. Frederick Ill Jr., Lad.2</p>
<p><strong>J</strong><br />
William Johnston, Eng.6 Andrew Jordan, Lad.132 Karl Joseph, Eng.207 Lt. Anthony Jovic, Bat.47 Angel Juarbe Jr., Lad.12 Mychal Judge, Chaplain (D)</p>
<p><strong>K</strong><br />
Vincent Kane, Eng.22 B.C. Charles Kasper, S.O.C. Paul Keating, Lad.5 Richard Kelly Jr., Lad.11 Thomas R. Kelly, Lad.15 Thomas W. Kelly, Lad.105 Thomas Kennedy, Lad.101 Lt. Ronald Kerwin, Sqd.288 Michael Kiefer, Lad.132 Robert King Jr., Eng.33 Scott Kopytko, Lad.15 William Krukowski, Lad.21 Kenneth Kumpel, Lad.25 Thomas Kuveikis, Sqd.252</p>
<p><strong>L</strong><br />
David LaForge, Lad.20 William Lake, Res.2 Robert Lane, Eng.55 Peter Langone, Sqd.252 Scott Larsen, Lad.15 Lt. Joseph Leavey, Lad.15 Neil Leavy, Eng.217 Daniel Libretti, Res.2 Carlos Lillo, Paramedic Robert Linnane, Lad.20 Michael Lynch, Eng.40 Michael Lynch, Lad.4 Michael Lyons, Sqd.41 Patrick Lyons, Sqd.252</p>
<p><strong>M</strong><br />
Joseph Maffeo, Lad.101 William Mahoney, Res 4 Joseph Maloney, Lad.3 (D) B.C. Joseph Marchbanks Jr, Bat.12 Lt. Charles Margiotta, Bat.22 Kenneth Marino, Res.1 John Marshall, Eng.23 Lt. Peter Martin, Res.2 Lt. Paul Martini, Eng.23 Joseph Mascali, T.S.U. 2 Keithroy Maynard, Eng.33 Brian McAleese, Eng.226 John McAvoy, Lad.3 Thomas McCann, Bat.8 Lt. William McGinn, Sqd.18 B.C. William McGovern, Bat.2 (D) Dennis McHugh, Lad.13 Robert McMahon, Lad.20 Robert McPadden, Eng.23 Terence McShane, Lad.101 Timothy McSweeney, Lad.3 Martin McWilliams, Eng.22 (D) Raymond Meisenheimer, Res.3 Charles Mendez, Lad.7 Steve Mercado, Eng.40 Douglas Miller, Res.5 Henry Miller Jr, Lad.105 Robert Minara, Lad.25 Thomas Mingione, Lad.132 Lt. Paul Mitchell, Bat.1 Capt. Louis Modafferi, Res.5 Lt. Dennis Mojica, Res.1 (D) Manuel Mojica, Sqd.18 (D) Carl Molinaro, Lad.2 Michael Montesi, Res.1 Capt. Thomas Moody, Div.1 B.C. John Moran, Bat.49 Vincent Morello, Lad.35 Christopher Mozzillo, Eng.55 Richard Muldowney Jr, Lad.07 Michael Mullan, Lad.12 Dennis Mulligan, Lad.2 Lt. Raymond Murphy, Lad.16</p>
<p><strong>N</strong><br />
Lt. Robert Nagel, Eng.58 John Napolitano, Res.2 Peter Nelson, Res.4 Gerard Nevins, Res.1</p>
<p><strong>O</strong><br />
Dennis O&#8217;Berg, Lad.105 Lt. Daniel O&#8217;Callaghan, Lad.4 Douglas Oelschlager, Lad.15 Joseph Ogren, Lad.3 Lt. Thomas O&#8217;Hagan, Bat.4 Samuel Oitice, Lad.4 Patrick O&#8217;Keefe, Res.1 Capt. William O&#8217;Keefe, Div.15 (D) Eric Olsen, Lad.15 Jeffery Olsen, Eng.10 Steven Olson, Lad.3 Kevin O&#8217;Rourke, Res.2 Michael Otten, Lad.35</p>
<p><strong>P</strong><br />
Jeffery Palazzo, Res.5 B.C. Orio Palmer, Bat.7 Frank Palombo, Lad.105 Paul Pansini, Eng.10 B.C. John Paolillo, Bat.11 James Pappageorge, Eng.23 Robert Parro, Eng.8 Durrell Pearsall, Res.4 Lt. Glenn Perry, Bat.12 Lt. Philip Petti, Bat.7 Lt. Kevin Pfeifer, Eng. 33 Lt. Kenneth Phelan, Bat.32 Christopher Pickford, Eng.201 Shawn Powell, Eng.207 Vincent Princiotta, Lad.7 Kevin Prior, Sqd.252 B.C. Richard Prunty, Bat.2 (D)</p>
<p><strong>Q</strong><br />
Lincoln Quappe, Res.2 Lt. Michael Quilty, Lad.11 Ricardo Quinn, Paramedic</p>
<p><strong>R</strong><br />
Leonard Ragaglia, Eng.54 Michael Ragusa, Eng.279 Edward Rall, Res.2 Adam Rand, Sqd.288 Donald Regan, Res.3 Lt. Robert Regan, Lad.118 Christian Regenhard, Lad.131 Kevin Reilly, Eng.207 Lt. Vernon Richard, Lad.7 James Riches, Eng.4 Joseph Rivelli, Lad.25 Michael Roberts, Eng.214 Michael E. Roberts, Lad.35 Anthony Rodriguez, Eng.279 Matthew Rogan, Lad.11 Nicholas Rossomando, Res.5 Paul Ruback, Lad.25 Stephen Russell, Eng.55 Lt. Michael Russo, S.O.C. B.C. Matthew Ryan, Bat.1</p>
<p><strong>S</strong><br />
Thomas Sabella, Lad.13 Christopher Santora, Eng.54 John Santore, Lad.5 (D) Gregory Saucedo, Lad.5 Dennis Scauso, H.M. 1 John Schardt, Eng.201 B.C. Fred Scheffold, Bat.12 Thomas Schoales, Eng.4 Gerard Schrang, Res.3 (D) Gregory Sikorsky, Sqd.41 Stephen Siller, Sqd.1 Stanley Smagala Jr, Eng.226 Kevin Smith, H.M. 1 Leon Smith Jr, Lad 118 Robert Spear Jr, Eng.26 Joseph Spor, Res.3 B.C. Lawrence Stack, Bat.50 Cpt. Timothy Stackpole, Div.11 (D) Gregory Stajk, Lad.13 Jeffery Stark, Eng.230 Benjamin Suarez, Lad.21 Daniel Suhr, Eng.216 (D) Lt. Christopher Sullivan, Lad.111 Brian Sweeney, Res.1</p>
<p><strong>T</strong><br />
Sean Tallon, Lad.10 Allan Tarasiewicz, Res.5 Paul Tegtmeier, Eng.4 John Tierney, Lad.9 John Tipping II, Lad.4 Hector Tirado Jr, Eng.23</p>
<p><strong>V</strong><br />
Richard Vanhine, Sqd.41 Peter Vega, Lad.118 Lawrence Veling, Eng.235 John Vigiano II, Lad.132 Sergio Villanueva, Lad.132 Lawrence Virgilio, Sqd.18 (D)</p>
<p><strong>W</strong><br />
Lt. Robert Wallace, Eng.205 Jeffery Walz, Lad. 9 Lt. Michael Warchola, Lad.5 (D) Capt. Patrick Waters, S.O.C. Kenneth Watson, Eng.214 Michael Weinberg, Eng.1 (D) David Weiss, Res.1 Timothy Welty, Sqd.288 Eugene Whelan, Eng.230 Edward White, Eng.230 Mark Whitford, Eng.23 Lt. Glenn Wilkinson, Eng.238 (D) B.C. John Williamson, Bat.6 (D) Capt. David Wooley, Lad.4</p>
<p><strong>Y</strong><br />
Raymond York, Eng.285 (D)</p>
]]></content:encoded>
			<wfw:commentRss>http://mikepuchol.com/2010/09/11/343-fdny-never-forget/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Getting MAMP 1.9 to work with Image Magick, imagick.so and other flora</title>
		<link>http://mikepuchol.com/2010/08/26/getting-mamp-1-9-to-work-with-image-magick-imagick-so-and-other-flora/</link>
		<comments>http://mikepuchol.com/2010/08/26/getting-mamp-1-9-to-work-with-image-magick-imagick-so-and-other-flora/#comments</comments>
		<pubDate>Thu, 26 Aug 2010 16:04:20 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
				<category><![CDATA[English]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[Image Magick]]></category>
		<category><![CDATA[Imagick]]></category>
		<category><![CDATA[imagick.so]]></category>
		<category><![CDATA[MacPorts]]></category>
		<category><![CDATA[MAMP]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://mikepuchol.com/?p=839</guid>
		<description><![CDATA[It was a full eight hours of hair pulling. For some reason, all the tutorials that can be found on getting MAMP to work with Image Magick in Snow Leopard are incomplete, miss out information, or dated. Or all of them. They are excellent posts, but I could not get imagick.so to be loaded as [...]]]></description>
			<content:encoded><![CDATA[<p>It was a full eight hours of hair pulling. For some reason, all the tutorials that can be found on getting MAMP to work with Image Magick in Snow Leopard are incomplete, miss out information, or dated. Or all of them. They are excellent posts, but I could not get imagick.so to be loaded as a PHP module by following any of them. I won&#8217;t go into explaining what MAMP or Image Magick are, if you are reading this, you already know, and most likely are having the same problems I was having.</p>
<p>Here is a short list of the resources I used to write this procedure:</p>
<p><a href="http://www.brybot.ca/archives/getting-imagemagick-and-more-to-work-with-mamp-on-os-x" target="_blank">Getting Imagemagick (and more) to work with MAMP on OS X</a> &#8211; misses info on compiling for Snow Leopard.</p>
<p><a href="http://www.adamstacey.co.uk/2010/06/28/installing-image-magick-and-imagick-for-php-for-mamp/" target="_blank"> Installing Image Magick and Imagick for PHP for MAMP</a> &#8211; misses change needed in ports conf file to enable Universal mode.</p>
<p><a href="http://unrealexpectations.com/blog/2010/01/mamp-imagick-on-snow-leopard/" target="_blank"> MAMP &amp; Imagick on Snow Leopard</a> &#8211; goes through the pitfalls, which makes the tutorial confusing, but goes into the Universal mode switch.</p>
<p>There are others which I may miss, such as forum posts or other blogs, if so, my apologies. In all, none of them go into the use of older libraries by MAMP in its sandboxed model, which breaks imagick.so when trying to compile it from source rather than using pecl.</p>
<h3>1. Install MacPorts</h3>
<p>I won&#8217;t go into details as you most likely have already done it if you&#8217;re reading this. <strong>Don&#8217;t update your ports yet!</strong></p>
<h3>2. Make MacPorts build Universal binaries</h3>
<p>Simply edit /opt/local/etc/macports/variants.conf and add +universal at the end of the file. Now, update your ports collection by running:</p>
<pre>sudo port -v selfupdate</pre>
<h3>3. Install Image Magick using MacPorts</h3>
<p>Simple:</p>
<pre>sudo port install ImageMagick</pre>
<p>This takes a while, so go grab a coffee.</p>
<p><span id="more-839"></span></p>
<h3>4. Update your path</h3>
<p>Add</p>
<pre>export PATH="$PATH:/opt/local/bin"</pre>
<p>to ~/.profile</p>
<h3>5. Download and install the imagick PHP extension</h3>
<p>Grab it <a href="http://pecl.php.net/package/imagick" target="_blank">from here</a>, I used 3.0.1 RC2. Extract the archive, and then execute the following in Terminal:</p>
<pre>MACOSX_DEPLOYMENT_TARGET=10.6
CFLAGS="-arch i386 -arch x86_64 -g -Os -pipe -no-cpp-precomp"
CCFLAGS="-arch i386 -arch x86_64 -g -Os -pipe"
CXXFLAGS="-arch i386 -arch x86_64 -g -Os -pipe"
LDFLAGS="-arch i386 -arch x86_64 -bind_at_load"
export CFLAGS CXXFLAGS LDFLAGS CCFLAGS MACOSX_DEPLOYMENT_TARGET</pre>
<p>This sets up compilation as a Universal binary. Once the exports are done, execute:</p>
<pre>cd /imagick/
phpize
./configure --with-imagick=/opt/local
make
make install</pre>
<p>When this completes, you will have a directory called modules, inside which you will find imagick.so, the PHP extension. You can check compilation worked by executing:</p>
<pre>file imagick.so</pre>
<p>which should return:</p>
<pre>imagick.so: Mach-O universal binary with 2 architectures
imagick.so (for architecture i386): Mach-O bundle i386
imagick.so (for architecture x86_64): Mach-O 64-bit bundle x86_64</pre>
<p>If it doesn&#8217;t, then your exports didn&#8217;t happen correctly, and only one version was built.</p>
<h3>6. Copy the module to the MAMP modules folder</h3>
<p>You now need to copy imagick.so to the folder where MAMP stores PHP extensions, which in my install is:</p>
<pre>/Applications/MAMP/bin/php5.3/lib/php/extensions/no-debug-non-zts-20090626/</pre>
<p>for PHP 5.3, and</p>
<pre>/Applications/MAMP/bin/php5.2/lib/php/extensions/no-debug-non-zts-20060613/</pre>
<p>for PHP 5.2.</p>
<h3>7. Add the extension to php.ini</h3>
<p>Here you can choose to edit the MAMP template (File -&gt; Edit Template -&gt; [your PHP version]) or simply edit php.ini found in either /Applications/MAMP/conf/php5.3 or /Applications/MAMP/conf/php5.2. Add the following line:</p>
<pre>extension=imagick.so</pre>
<h3>8. The Test</h3>
<p>The easiest way to see what PHP is being run with is to create a simple php page with:</p>
<pre>&lt;?php</pre>
<pre>phpinfo();</pre>
<pre>?&gt;</pre>
<p>This will show you all the extensions being loaded, and you should see an entry for imagick. If you don&#8217;t, check the PHP error log, where you may find crap like this:</p>
<pre>dyld: Symbol not found: __cg_jpeg_resync_to_restart
Referenced from: /System/Library/Frameworks/ApplicationServices...
Expected in: /Applications/MAMP/Library/lib/libjpeg.62.dylib</pre>
<p>which is Not A Good Thing™. You may also hit library version incompatibilities, such as imagick.so requiring newer libraries than those provided by MAMP. If this is the case, you need to edit MAMP&#8217;s environment variables, thus:</p>
<pre>sudo vi /Applications/MAMP/Library/bin/envvars</pre>
<p>Comment the two lines that set and export the path, which look like:</p>
<pre>#DYLD_LIBRARY_PATH="/Applications/MAMP/Library/lib:$DYLD_LIBRARY_PATH"
#export DYLD_LIBRARY_PATH</pre>
<p>and add:</p>
<pre>export PATH="$PATH:/opt/local/bin"</pre>
<p>This has the effect of breaking out of the MAMP sandbox, and using the newer libraries found at /opt/local/bin. You could also delete the originals in MAMP and add dynamic links to the newer versions at /opt/local/bin, but I have not tried this nor recommend it.</p>
<p>After doing this change, restart MAMP, and try to reload the PHP info page &#8211; imagick should now be listed and working!</p>
<p>Let me know if I missed anything or you have any improvements to this tutorial, I am by no means an expert at this, just managed to get it working after a bout of severe hair loss.</p>
]]></content:encoded>
			<wfw:commentRss>http://mikepuchol.com/2010/08/26/getting-mamp-1-9-to-work-with-image-magick-imagick-so-and-other-flora/feed/</wfw:commentRss>
		<slash:comments>48</slash:comments>
		</item>
		<item>
		<title>So Dave Winer is tolerant and open-minded&#8230;not</title>
		<link>http://mikepuchol.com/2010/07/21/so-dave-winer-is-tolerant-and-open-minded-not/</link>
		<comments>http://mikepuchol.com/2010/07/21/so-dave-winer-is-tolerant-and-open-minded-not/#comments</comments>
		<pubDate>Wed, 21 Jul 2010 03:28:24 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
				<category><![CDATA[English]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Dave Winer]]></category>

		<guid isPermaLink="false">http://mikepuchol.com/?p=819</guid>
		<description><![CDATA[[Update] After a tweet from @GadgetDon I thought I&#8217;d try to fix things, and thus deleted a couple of tweets that could have been offensive, and removed this post, with the thought of emailing Dave to ask what offended him so much. However, during the few hours since, I have been reading and researching Dave [...]]]></description>
			<content:encoded><![CDATA[<p><strong>[Update] </strong>After a tweet from <a href="http://twitter.com/GadgetDon">@GadgetDon</a> I thought I&#8217;d try to fix things, and thus deleted a couple of tweets that could have been offensive, and removed this post, with the thought of emailing Dave to ask what offended him so much. However, during the few hours since, I have been reading and researching Dave Winer&#8217;s background, and it seems <a href="http://eyeonwiner.org">I am not alone in what happened</a>. It doesn&#8217;t seem to take much to be blocked out of Winer&#8217;s world, ergo, Winer&#8217;s world is by definition boring, uninteresting and dated. I have been going back through his Twitter feed (hint Dave: anyone can read your tweets just by logging out of Twitter, so blocking is pointless, duh!), and there hasn&#8217;t been anything that I didn&#8217;t find through other means, meaningful opinions or worthy information. Looks like I&#8217;m not going to be missing much. I&#8217;m moving on and re-posting this, there are tons of interesting people to follow on Twitter and blogs.</p>
<p><span id="more-819"></span></p>
<p>After an exchange on Twitter during which I stated my views <a href="http://scripting.com/stories/2010/07/20/aMosqueAtGroundZero.html" target="_self">on the Mosque / Islamic cultural center going up near the New York WTC</a>, he unfollowed and blocked me from following him. After posting this on his blog post regarding the subject:</p>
<blockquote><p><em>&#8220;Now that you have not only unfollowed me (whatever) but also blocked me (?!) on Twitter, I guess it can only mean that I&#8217;m a right-wing extremist that hates Muslims and goes shooting traffic signs on weekends for fun. For the record, I&#8217;m not trying to give lessons around religious beliefs, and thus will replace the word &#8220;Christian&#8221; by &#8220;other religions&#8221; below. Maybe you will find the words more suitable, or maybe you will say &#8220;thank you for the lesson in arrogant other religions superiority&#8221;.</em></p>
<p><em>Instead of trying to prove a point through whatever means possible, and silencing those who do not think the same way as you do, maybe you should try to do a little fact-checking before you post on a sensitive subject.</em></p>
<p><em>Cordoba is a city in Spain which was the symbol of Islamic rule over most of the Iberian peninsula (known as Al-Andalus) between 711 and 1492. It is also marked as the origin of the bulk of Islamic law, having hosted a library with half a million books. Calling this center &#8220;Cordoba&#8221; has very strong implications as to historic and current claims by a sizable chunk of Muslims.</em></p>
<p><em>Al-Andalus was established as an independent emirate, which lasted 780 years until it was taken over in 1492. This emirate is the very reason 192 people died, and over 1000 were injured, in the Madrid train bombings in 2004. Islamic theologists hold the theory that any land that once was Muslim, belongs to Islam forever. Thus, there are Muslims who still claim that most of Spain is in fact their land, and will go to violence to retake it. I fail to see other religions claiming that land occupied in past ages still belongs to them, and taking violent actions to re-claim it.</em></p>
<p><em>Recently, during the World Cup, 73 people were killed in a suicide attack in Uganda, for the crime of watching soccer. It is considered un-Islamic by some Muslim extremists. I fail to see similar attacks carried out by suicide bombers of other religions, or other religions prohibiting soccer and other forms of entertainment.</em></p>
<p><em>When the 9/11 terrorists crashed the aircraft into the WTC, they were most likely shouting &#8220;Allahu Akbar&#8221;, meaning &#8220;Allah is the Greatest&#8221; (it&#8217;s safe to assume this as we have seen it on countless terrorist attack videos, pre and post event). They were at least certainly not shouting &#8220;my superior being from another religion is the greatest&#8221;. They crashed those aircraft, and killed those people, believing they were defending Islam. We can argue all we want about wether they were not really Muslims, as some claim, but the fact is that there are -many- people out there willing to kill and die to defend Islam. And they don&#8217;t care what religion you follow, or even if you are agnostic, if you are not Muslim, you are an infidel. Your choice is to convert or die.</em></p>
<p><em>Having said all this, I do believe there is a large majority of Muslims who are NOT terrorists, who do NOT condone violence, and who would like to see extremism end. What is sad is that they have to endure the wrath of extremists from other religions who cannot distinguish the facts. What is also sad is that once you take sides, even in the most moderate form, the other side (and I&#8217;m looking at you Dave) automatically classifies you as the enemy.</em></p>
<p><em>As for your arrogant and insulting comment &#8220;you have a lot of brothers!&#8221; (it became arrogant and insulting once you put it in context along with your other comments and actions), maybe you can drop by Ten House on Liberty Street and ask the guys there to explain you the concept of brotherhood in the fire service. They lost six guys on 9/11, and had their firehouse destroyed. It was damaged again a few years later, during the Deutsche Bank fire where two firefighters also died. Maybe you can also watch the 9/11 documentary, it also provides a good insight into the meaning of brotherhood in the fire service.&#8221;</em></p></blockquote>
<p>he has now also banned me from posting comments on his blog. Dave, do you consider yourself open-minded, tolerant and willing to respect and discuss other people&#8217;s points of view? Or do you simply live in your own world, where the only reality that counts is what you think and write? I think you should get back down to Earth and shed the prima-donna attitude, frankly. What is more amusing is that I&#8217;m reading comments on the blog post that are not much different from what I am saying, I guess I have now been moved to the Dark Side of Dave Winer&#8217;s world.</p>
]]></content:encoded>
			<wfw:commentRss>http://mikepuchol.com/2010/07/21/so-dave-winer-is-tolerant-and-open-minded-not/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>My PCB business card flashes its LEDs!</title>
		<link>http://mikepuchol.com/2010/03/19/my-pcb-business-card-flashes-its-leds/</link>
		<comments>http://mikepuchol.com/2010/03/19/my-pcb-business-card-flashes-its-leds/#comments</comments>
		<pubDate>Fri, 19 Mar 2010 18:47:00 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
				<category><![CDATA[English]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[business card]]></category>
		<category><![CDATA[circuit]]></category>
		<category><![CDATA[Electronics]]></category>
		<category><![CDATA[Hacking]]></category>
		<category><![CDATA[LEDs]]></category>
		<category><![CDATA[Microchip]]></category>
		<category><![CDATA[PCB]]></category>
		<category><![CDATA[PIC]]></category>

		<guid isPermaLink="false">http://mikepuchol.com/?p=790</guid>
		<description><![CDATA[Finally, I received the new PCBs from the manufacturer, after the first batch were found to be defective on track continuity (possibly due to too aggressive etching). This is a short video showing how the first one I assembled and programmed works:]]></description>
			<content:encoded><![CDATA[<p>Finally, I received the new PCBs from the manufacturer, after the first batch were found to be defective on track continuity (possibly due to too aggressive etching). This is a short video showing how the first one I assembled and programmed works:</p>
<p><object width="500" height="315"><param name="movie" value="http://www.youtube-nocookie.com/v/Cx_y_lylqps&#038;hl=en_US&#038;fs=1&#038;rel=0&#038;hd=1&#038;border=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube-nocookie.com/v/Cx_y_lylqps&#038;hl=en_US&#038;fs=1&#038;rel=0&#038;hd=1&#038;border=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="500" height="315"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://mikepuchol.com/2010/03/19/my-pcb-business-card-flashes-its-leds/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

