<?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>Full of BS &#187; Rants</title>
	<atom:link href="http://fullof.bs/category/rants/feed/" rel="self" type="application/rss+xml" />
	<link>http://fullof.bs</link>
	<description>He just never stops talking</description>
	<lastBuildDate>Thu, 15 Dec 2011 20:00:48 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Senator John McCain is an Idiot</title>
		<link>http://fullof.bs/senator-john-mccain-is-an-idiot/</link>
		<comments>http://fullof.bs/senator-john-mccain-is-an-idiot/#comments</comments>
		<pubDate>Sat, 28 Feb 2009 19:18:26 +0000</pubDate>
		<dc:creator>John Haugeland</dc:creator>
				<category><![CDATA[General Interest]]></category>
		<category><![CDATA[Miscellaneous]]></category>
		<category><![CDATA[Rants]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[asshat]]></category>
		<category><![CDATA[ignorance]]></category>
		<category><![CDATA[john mccain]]></category>
		<category><![CDATA[mormon cricket]]></category>
		<category><![CDATA[pork]]></category>
		<category><![CDATA[republican]]></category>
		<category><![CDATA[spending]]></category>
		<category><![CDATA[the sinking ship of mccain's credibility]]></category>

		<guid isPermaLink="false">http://fullof.bs/?p=486</guid>
		<description><![CDATA[Apparently John McCain thinks it&#8217;s pork to control Mormon Crickets in Utah.  So much so, it seems, that he&#8217;s marked it the #6 piece of pork in a trillion dollar spending bill, despite that it&#8217;s less than one one thousandth of one percent of the cost.  Given that he&#8217;s biblically old, I would have thought [...]]]></description>
			<content:encoded><![CDATA[<p>Apparently <a title="MAYBE THEY MEAN SPORTS" href="http://twitter.com/SenJohnMcCain/status/1258648159" target="_blank">John McCain thinks it&#8217;s pork to control Mormon Crickets in Utah</a>.  So much so, it seems, that he&#8217;s marked it the #6 piece of pork in a trillion dollar spending bill, despite that it&#8217;s less than one one thousandth of one percent of the cost.  Given that he&#8217;s biblically old, I would have thought he&#8217;d understand how important it is to stop SWARMING LOCUSTS.  I shit you not, the quote:</p>
<blockquote><p><span class="status-body"><span class="entry-content">$1 million for mormon cricket control in Utah &#8211; is that the species of cricket or a game played by the brits?</span></span></p></blockquote>
<p>I mean seriously, that&#8217;s so fundamentally uninformed that I can&#8217;t even mock it.  A million dollars is a bargain for statewide pest control that costs hundreds of millions of dollars in structural and crop damage annually.  He&#8217;s old enough that, statistically speaking, he should have seen every living thing at least twice by now (including brontosaurus); one is tempted to remind him of that crawly sandwich he had with Joseph Smith.</p>
<p>&#8220;I have no idea what they&#8217;re even talking about, so surely I&#8217;m qualified to think it&#8217;s pork!  Who needs locust control anyway?&#8221;</p>
<p>Asshat.</p>
]]></content:encoded>
			<wfw:commentRss>http://fullof.bs/senator-john-mccain-is-an-idiot/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Adware Scumbag Self Justification</title>
		<link>http://fullof.bs/adware-scumbag-self-justification/</link>
		<comments>http://fullof.bs/adware-scumbag-self-justification/#comments</comments>
		<pubDate>Wed, 14 Jan 2009 16:39:41 +0000</pubDate>
		<dc:creator>John Haugeland</dc:creator>
				<category><![CDATA[General Interest]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Rants]]></category>
		<category><![CDATA[adware]]></category>
		<category><![CDATA[dishonest]]></category>
		<category><![CDATA[excuses]]></category>
		<category><![CDATA[liar]]></category>
		<category><![CDATA[malware]]></category>
		<category><![CDATA[Matt Knox]]></category>
		<category><![CDATA[millgram experiment]]></category>
		<category><![CDATA[obvious shithead]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[scumbag]]></category>
		<category><![CDATA[self justification]]></category>
		<category><![CDATA[virus]]></category>
		<category><![CDATA[warez]]></category>
		<category><![CDATA[warezer]]></category>

		<guid isPermaLink="false">http://fullof.bs/?p=475</guid>
		<description><![CDATA[One of the most amazing things to me about the typical adware scumbag is their desperation to justify their own behavior.  An interview with such a person just went onto slashdot, in which in the site afterword, he attempts to compare his choices to the Millgram Experiment. Of course, anyone with half a clue will [...]]]></description>
			<content:encoded><![CDATA[<p>One of the most amazing things to me about the typical adware scumbag is their desperation to justify their own behavior.  An interview with such a person just went onto slashdot, in which in the site afterword, he attempts to compare his choices to the Millgram Experiment.</p>
<p>Of course, anyone with half a clue will remember three things:</p>
<ol>
<li>He was not being instructed by an authority figure that adware was in the victim&#8217;s best interest</li>
<li>His goal was making money</li>
<li>He had months, including time away from the authority figure, in which to think it over</li>
</ol>
<p>The dirtbag goes on to talk about how difficult it was to ignore a challenging occupation when one doesn&#8217;t have many other options.  Thing is, I could be making tons of money as a pirate, or writing malware, and I manage to get through my day without doing it.  I&#8217;m also willing to bet that Drew Peters wasn&#8217;t actually looking for other jobs at the time.</p>
<blockquote><p>&#8220;It&#8217;s even harder if the bad starts out small and slowly gets bigger.&#8221;</p></blockquote>
<p>Horseshit.  The second you do something bad, you object, and if they try to force you, you walk away.  That&#8217;s why when I found out my old boss Russell was triple- or more billing his clients in my name, I told him that he stopped tomorrow, or I walked.  Did I get fired?  Sure, but I told the client what happened, so so did Russell, and I ended up getting the job back with a different boss and a much larger hourly billable.</p>
<p><em><strong>Oh, and I had my honesty and decency intact.</strong></em></p>
<p>Go to hell, <a title="Matt Knox, Dirtbag" href="http://philosecurity.org/2009/01/12/interview-with-an-adware-author" target="_blank">Matt Knox</a>.  It&#8217;s not that hard to not write malware.  It&#8217;s just hard for people like you.  I hope that eventually you find yourself the victim of the things you&#8217;ve done to others; you&#8217;ve almost certainly caused far more damage than you&#8217;ll ever understand, during a time where it was extremely easy to get other work.</p>
<p>Disgusting.</p>
]]></content:encoded>
			<wfw:commentRss>http://fullof.bs/adware-scumbag-self-justification/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Best Buy is into phone spam too, now?</title>
		<link>http://fullof.bs/best-buy-is-into-phone-spam-too-now/</link>
		<comments>http://fullof.bs/best-buy-is-into-phone-spam-too-now/#comments</comments>
		<pubDate>Tue, 30 Dec 2008 17:45:23 +0000</pubDate>
		<dc:creator>John Haugeland</dc:creator>
				<category><![CDATA[Rants]]></category>
		<category><![CDATA[Best Buy]]></category>
		<category><![CDATA[Corporate Abuse]]></category>
		<category><![CDATA[illegal]]></category>
		<category><![CDATA[scumbags]]></category>
		<category><![CDATA[spam]]></category>
		<category><![CDATA[Telemarketing]]></category>
		<category><![CDATA[the law is not complex]]></category>

		<guid isPermaLink="false">http://fullof.bs/?p=464</guid>
		<description><![CDATA[Best Buy just illegally called my cellular phone to make announcements about rewards.  No option to speak to a human was given, which is also illegal.  And, of course, the number&#8217;s on the do not call list. Pity the Boise police show so little interest in corporate illegal behavior &#8211; I&#8217;ve already reported three of [...]]]></description>
			<content:encoded><![CDATA[<p>Best Buy just illegally called my cellular phone to make announcements about rewards.  No option to speak to a human was given, which is also illegal.  And, of course, the number&#8217;s on the do not call list.</p>
<p>Pity the Boise police show so little interest in corporate illegal behavior &#8211; I&#8217;ve already reported three of these to them, and they don&#8217;t even open reports.</p>
<p>Unsurprisingly, this has ended my being a Best Buy customer permanently.  They were, previously, taking in about $1500 per month from me.  Wonder if it was worth it.</p>
]]></content:encoded>
			<wfw:commentRss>http://fullof.bs/best-buy-is-into-phone-spam-too-now/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Why is nobody suing Classmates.com for SPAM?</title>
		<link>http://fullof.bs/why-is-nobody-suing-classmatescom-for-spam/</link>
		<comments>http://fullof.bs/why-is-nobody-suing-classmatescom-for-spam/#comments</comments>
		<pubDate>Mon, 29 Dec 2008 19:29:45 +0000</pubDate>
		<dc:creator>John Haugeland</dc:creator>
				<category><![CDATA[General Interest]]></category>
		<category><![CDATA[Rants]]></category>
		<category><![CDATA[classmates]]></category>
		<category><![CDATA[classmates.com]]></category>
		<category><![CDATA[Fraud]]></category>
		<category><![CDATA[obvious spam]]></category>
		<category><![CDATA[spam]]></category>
		<category><![CDATA[what gives]]></category>

		<guid isPermaLink="false">http://fullof.bs/?p=462</guid>
		<description><![CDATA[[digg-reddit-me]I put an email address on usenet which I created solely as a test, using a name that I&#8217;m pretty sure nobody on Earth has.  Within four days, it was getting Classmates reunion notices, and emails saying that my friends were trying to contact me, and that all I had to do was sign up [...]]]></description>
			<content:encoded><![CDATA[<p>[digg-reddit-me]I put an email address on usenet which I created solely as a test, using a name that I&#8217;m pretty sure nobody on Earth has.  Within four days, it was getting Classmates reunion notices, and emails saying that my friends were trying to contact me, and that all I had to do was sign up for an account to find out who, and about what.</p>
<p>Unsolicited commercial email, and fraud to boot.  Pretty much the definition of SPAM, isn&#8217;t it?  So why isn&#8217;t anyone going after them like they are for the other spammers?  Aren&#8217;t there vast sums of money involved?</p>
]]></content:encoded>
			<wfw:commentRss>http://fullof.bs/why-is-nobody-suing-classmatescom-for-spam/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>God I love the Boise post office</title>
		<link>http://fullof.bs/god-i-love-the-boise-post-office/</link>
		<comments>http://fullof.bs/god-i-love-the-boise-post-office/#comments</comments>
		<pubDate>Wed, 24 Dec 2008 23:25:33 +0000</pubDate>
		<dc:creator>John Haugeland</dc:creator>
				<category><![CDATA[Rants]]></category>
		<category><![CDATA[Boise Post Office]]></category>
		<category><![CDATA[christmas]]></category>
		<category><![CDATA[christmas presents]]></category>
		<category><![CDATA[fail]]></category>
		<category><![CDATA[miserable fail]]></category>
		<category><![CDATA[missing]]></category>
		<category><![CDATA[no love for you doctor jones]]></category>
		<category><![CDATA[USPS]]></category>

		<guid isPermaLink="false">http://fullof.bs/?p=459</guid>
		<description><![CDATA[The post office has mislaid a package containing more than half of the christmas presents I was going to give out, which were supposed to be here a week ago.  It&#8217;s 4:30 christmas eve, and they have no idea where it is.  Time to find out what last minute shopping is like, and also, giving [...]]]></description>
			<content:encoded><![CDATA[<p>The post office has mislaid a package containing more than half of the christmas presents I was going to give out, which were supposed to be here a week ago.  It&#8217;s 4:30 christmas eve, and they have no idea where it is.  Time to find out what last minute shopping is like, and also, giving presents that aren&#8217;t awesome.  Failboat; all aboard.</p>
<p>I&#8217;ve lost more packages in the year since I&#8217;ve moved here than in the rest of my life put together, and the ones I do get are usually in piss poor condition.  It&#8217;s a wonder they pass quality control.</p>
]]></content:encoded>
			<wfw:commentRss>http://fullof.bs/god-i-love-the-boise-post-office/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>SMS and Data</title>
		<link>http://fullof.bs/sms-and-data/</link>
		<comments>http://fullof.bs/sms-and-data/#comments</comments>
		<pubDate>Tue, 16 Dec 2008 22:44:46 +0000</pubDate>
		<dc:creator>John Haugeland</dc:creator>
				<category><![CDATA[Miscellaneous]]></category>
		<category><![CDATA[Rants]]></category>
		<category><![CDATA[cell phone]]></category>
		<category><![CDATA[Data]]></category>
		<category><![CDATA[sms]]></category>
		<category><![CDATA[unlimited data]]></category>

		<guid isPermaLink="false">http://fullof.bs/?p=457</guid>
		<description><![CDATA[Am I the only person who resents having to pay for SMS when I&#8217;m already paying for unlimited data?]]></description>
			<content:encoded><![CDATA[<p>Am I the only person who resents having to pay for SMS when I&#8217;m already paying for unlimited data?</p>
]]></content:encoded>
			<wfw:commentRss>http://fullof.bs/sms-and-data/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Prototype: EEP18 Considered Harmful: The problems with Erlang to JSON term translation</title>
		<link>http://fullof.bs/prototype-eep-18-considered-harmful-the-problems-with-erlang-to-json-term-translation/</link>
		<comments>http://fullof.bs/prototype-eep-18-considered-harmful-the-problems-with-erlang-to-json-term-translation/#comments</comments>
		<pubDate>Sat, 06 Dec 2008 20:40:26 +0000</pubDate>
		<dc:creator>John Haugeland</dc:creator>
				<category><![CDATA[ECMA / Javascript]]></category>
		<category><![CDATA[ECMAScript]]></category>
		<category><![CDATA[Erlang]]></category>
		<category><![CDATA[General Interest]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Rants]]></category>
		<category><![CDATA[Tools and Libraries]]></category>
		<category><![CDATA[Web and Web Standards]]></category>
		<category><![CDATA[bif]]></category>
		<category><![CDATA[conversion]]></category>
		<category><![CDATA[convert]]></category>
		<category><![CDATA[eep]]></category>
		<category><![CDATA[eep 18]]></category>
		<category><![CDATA[eep18]]></category>
		<category><![CDATA[eeps]]></category>
		<category><![CDATA[erlang enhancement proposal 18]]></category>
		<category><![CDATA[javascript object notation]]></category>
		<category><![CDATA[json]]></category>
		<category><![CDATA[json bif]]></category>

		<guid isPermaLink="false">http://fullof.bs/?p=402</guid>
		<description><![CDATA[THIS IS ONLY HALF WRITTEN.  I have been sitting on this post, waiting for the mood to finish it, for months; because EEP18 is now being treated as a likely implement, I am immediately publishing the half-written version, because it exposes many (though not all) of the serious, irreconcilable problems with EEP18. On the mailing [...]]]></description>
			<content:encoded><![CDATA[<p><span style="color: #ff0000"><em><strong>THIS IS ONLY HALF WRITTEN.  I have been sitting on this post, waiting for the mood to finish it, for months; because EEP18 is now being treated as a likely implement, I am immediately publishing the half-written version, because it exposes many (though not all) of the serious, irreconcilable problems with EEP18.</strong></em></span></p>
<p>On the mailing list, people are actively trying to bring Erlang up to snuff with regards to web standards.  One of the more unfortunate choices being discussed is JSON as a data notation.  JSON, unfortunately, does not actually map to Erlang in a useful way.  Joe Armstrong has gone as far as to suggest BIFs, which are decidedly unrealistic as well as unnecessary.  My goal is to create a JSON handling library.  However, the mailing list is beginning to put momentum behind an alternative proposal which is currently presented in BIF form.</p>
<p>This post explains why my approach is different.  Many of the issues herein are discussed by <a title="Richard O'Keefe's EEP18, JSON BIFs" href="http://www.erlang.org/eeps/eep-0018.html" target="_blank">the tabled EEP</a> (EEP 18, &#8220;JSON BIFs&#8221; by Rickard O&#8217;Keefe), but some are not, and some of these issues are accepted when I believe they should not be.  <span style="text-decoration: underline"><strong>It is my position that EEP 18 is unacceptably dangerous</strong></span>.  I will explain why.</p>
<p><span id="more-402"></span></p>
<p>This paper assumes you are familiar with Erlang and with fundamental containers (the list, the array and the key/value map).  It is very helpful, but not required, to be familiar with JSON, or JavaScript or any ECMA derived language such as ActionScript.</p>
<h1>Premise</h1>
<p>There&#8217;s a movement starting to use Erlang for web work.  There are several stumbling blocks to that end.  Among them are a simple primary webserver, a simple primary unicode system and a simple primary JSON manager.</p>
<p>The webserver problem is mostly solved: there&#8217;s the httpd module, there&#8217;s yaws, there&#8217;s mochiweb, there&#8217;s the currently unavailable work at Tobbe&#8217;s Red Hot Erlang Blog, there&#8217;s even Joe&#8217;s HTTPD tutorial.  YAWS and MochiWeb in particular get a lot of action these days.  The situation isn&#8217;t amazingly straightforward, but it&#8217;s fairly straightforward; we&#8217;re in &#8220;Good Enough&#8221; territory.  (I&#8217;m building another webserver that behaves like factor&#8217;s drop-and-go server, based on Joe&#8217;s tutorial, but that&#8217;s not for here.)</p>
<p>The unicode problem, however, as well as the JSON problem, are not solved.  Unfortunately, whereas the Erlang community has had the foresight to deal with complex problems in modules first then to move them to syntax later, this process seems to be failing with both JSON and Unicode.  It can be argued that some of the choices made in each process are dangerous.  This community will, by and on the whole, remember the re: module, which is being replaced now with a partially incompatible successor that takes account of limitations and problems in the prior attempt, as well as moves to a stronger RE dialect.  It is important that this ability be retained for JSON and Unicode, both of which are subtly strikingly difficult problems, and both of which are unlikely to be Gotten Right™ on their respective first attempts.</p>
<h1>The Principle of Least Surprise</h1>
<p>One of the most important parts of writing libraries is to not write nasty shocks into place for users.  In transcoding libraries, there is one rule that defines least surprise more powerfully than any other: <em><strong>round-trip translations must not lose data</strong></em>.  No configuration of EEP 18 can achieve this.  Indeed, it is my position that a one to one translation of JSON to Erlang terms cannot exist, and that any attempt to present a not-1:1 translation as a translation is unacceptable, in that people will expect <span style="color: #0000ff"><code>j2e(e2j(X)) == X</code></span>, and that cannot be true.  This is especially important given that the suggestion that these translations become BIFs seems to be being taken seriously; <span style="color: #0000ff"><code>foo_to_bar(X)</code></span> bifs are currently never lossy, and this would create a worrying change in the meaning of several basic naming practices.</p>
<p>It is of critical importance, in my opinion, that we do not provide libraries which fail round-trip conversion in either direction.  At this time, EEP 18 attempts to satisfy this clause with creation-time configurability; I will explain my stance that this is inadequate below.</p>
<h1>Why Translation is Unclear</h1>
<p>There are, in fact, quite a few problems that prevent 1:1 translation.  We&#8217;ll go over them one by one.</p>
<ol>
<li>The notations offer different fundamental containers
<ol>
<li>Erlang offers dense sequence (&#8220;tuple&#8221;, <span style="color: #0000ff"><code>{}</code></span>) and singly linked list (&#8220;list&#8221;, <span style="color: #0000ff"><code>[]</code></span>) containers.  The erlang standard library offers other containers; I discuss later in this document why I&#8217;m not using them.</li>
<li>JSON offers dense sequence (&#8220;array&#8221;, <span style="color: #0000ff"><code>[]</code></span>) and key-value map (&#8220;object&#8221;, <span style="color: #0000ff"><code>{}</code></span>) containers.  That&#8217;s it.</li>
</ol>
</li>
<li>The notations offer different fundamental datatypes
<ol>
<li>JSON has a fundamental string type; erlang doesn&#8217;t.</li>
<li>Erlang has atoms; JSON doesn&#8217;t.</li>
<li>JSON has booleans and &#8220;null&#8221;; Erlang doesn&#8217;t.  For transcoding, pretending they&#8217;re atoms creates ambiguity, and is therefore unacceptable.</li>
<li>JSON has explicit support for unicode characters in strings.  Erlang doesn&#8217;t have strings at all, but rather lists of characters (in the way that C has arrays of characters).  Those lists are context and usage defined; C++ programmers may think of this as parallel to array strings vs std::string.  Erlang currently has no concept of Unicode (<span style="color: #999999"><em>though that&#8217;s another issue I&#8217;m working on as divergent from the current mailing list / EEP approach</em>.</span>)</li>
<li>JSON and Erlang have very different lists of quoted terms for strings.
<ol>
<li>Erlang supports embedded octal with shortening, and a bunch of semi-defunct control characters like form feed (<span style="color: #0000ff"><code>"\f"</code></span>) and escape (<span style="color: #0000ff"><code>"\e"</code></span>).</li>
<li>JSON supports 16-bit Unicode character embedding.</li>
<li>Problematically, JSON does not define whether that embedding is UTF16, UCS2 or something else.  Most software implementations assume UTF16.  This document will carefully avoid the issue, which is a serious defect in this document, and a serious defect in JSON.</li>
</ol>
</li>
<li>Erlang terms are byte-available, meaning Erlang programmers may be aware of endianness; JSON objects are not.  This suggests that the handling library needs to either make a choice about internal endianness, or needs to provide control to the user.</li>
</ol>
</li>
<li>The notation for similar containers is dissimilar</li>
<li>Similar notations are similar, not identical</li>
<li>Dangerous string ambiguities</li>
</ol>
<p>Working from http://sc.tri-bit.com/outgoing/scjson%20parser%20halp.html</p>
]]></content:encoded>
			<wfw:commentRss>http://fullof.bs/prototype-eep-18-considered-harmful-the-problems-with-erlang-to-json-term-translation/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Holy crap, an Objective C text that doesn&#8217;t assume you&#8217;re retarded</title>
		<link>http://fullof.bs/holy-crap-an-objective-c-text-that-doesnt-assume-youre-retarded/</link>
		<comments>http://fullof.bs/holy-crap-an-objective-c-text-that-doesnt-assume-youre-retarded/#comments</comments>
		<pubDate>Sat, 06 Dec 2008 03:38:35 +0000</pubDate>
		<dc:creator>John Haugeland</dc:creator>
				<category><![CDATA[General Interest]]></category>
		<category><![CDATA[Objective C]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Rants]]></category>
		<category><![CDATA[book]]></category>
		<category><![CDATA[c]]></category>
		<category><![CDATA[free]]></category>
		<category><![CDATA[Not Awful]]></category>
		<category><![CDATA[pdf]]></category>

		<guid isPermaLink="false">http://fullof.bs/?p=442</guid>
		<description><![CDATA[[digg-reddit-me]My good friend Jeff happened to mention offhand his knowledge of a document I&#8217;ve been looking for for quite some time now.  I&#8217;m sharing it with my readers in case they&#8217;re looking for something similar. Let me be forward: I cannot stand the various Objective C books I&#8217;ve tried.  They all want to teach me [...]]]></description>
			<content:encoded><![CDATA[<p>[digg-reddit-me]My good friend <a title="Jeff Katz" href="http://www.kraln.com/" target="_blank">Jeff</a> happened to mention offhand his knowledge of a document I&#8217;ve been looking for for quite some time now.  I&#8217;m sharing it with my readers in case they&#8217;re looking for something similar.</p>
<p>Let me be forward: I cannot <strong><em><span style="text-decoration: underline">stand</span></em></strong> the various Objective C books I&#8217;ve tried.  They all want to teach me to be a programmer.  I&#8217;m already there.  I just want a book like <a title="The C++ Programming Language" href="http://sc.tri-bit.com/tcpppl" target="_blank">Stroustrup</a>.  The PragProg book is awful: the first several chapters are about Mac development tools, like I give a damn.  Everything&#8217;s through interface wizards.  It&#8217;s nauseating.</p>
<p>Jeff heard mein painz0rz, and turned me on to <a title="Objective C for C++ Developers" href="http://ktd.club.fr/programmation/fichiers/cpp-objc-en.pdf" target="_blank">From C++ to Objective-C</a>.  It isn&#8217;t perfect: it&#8217;s not super comprehensive, and it&#8217;s translated from a different native language (French), which leaves a few passages cumbersome.  However, as one can tell from reading the intro, the author of the document, much like me, found little to love in the state of Objective C documentation, and wanted to write something for people who were already well established.</p>
<p>Kudos to Pierre Chatelier for writing the book that Apple and Alan Kay could not.</p>
]]></content:encoded>
			<wfw:commentRss>http://fullof.bs/holy-crap-an-objective-c-text-that-doesnt-assume-youre-retarded/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Bad Hosting Provider Behavior</title>
		<link>http://fullof.bs/bad-hosting-provider-behavior/</link>
		<comments>http://fullof.bs/bad-hosting-provider-behavior/#comments</comments>
		<pubDate>Thu, 13 Nov 2008 20:51:05 +0000</pubDate>
		<dc:creator>John Haugeland</dc:creator>
				<category><![CDATA[General Interest]]></category>
		<category><![CDATA[Miscellaneous]]></category>
		<category><![CDATA[Rants]]></category>
		<category><![CDATA[Abuse]]></category>
		<category><![CDATA[Hosting]]></category>

		<guid isPermaLink="false">http://fullof.bs/?p=423</guid>
		<description><![CDATA[So, I&#8217;m not really sure what to do here. There&#8217;s this host.  I&#8217;m not going to name them, because it isn&#8217;t clear to me whether it&#8217;s ethical to do so.  Four times in the last year, I&#8217;ve caught their engineers telling customers who are shared with my employer complete horseshit.  They&#8217;ve blamed their servers being [...]]]></description>
			<content:encoded><![CDATA[<p>So, I&#8217;m not really sure what to do here.</p>
<p>There&#8217;s this host.  I&#8217;m not going to name them, because it isn&#8217;t clear to me whether it&#8217;s ethical to do so.  Four times in the last year, I&#8217;ve caught their engineers telling customers who are shared with my employer complete horseshit.  They&#8217;ve blamed their servers being compromised on our application without a lick of evidence (which turned out to be their own fault after basic inspection), they&#8217;ve made absurd claims about our policies, and now they&#8217;re making claims that we don&#8217;t support MS Exchange, which is of course completely false.</p>
<p>What&#8217;s worse, when their engineers get caught being completely full of crap, the company&#8217;s response is to isolate those engineers from explaining the claims they made, and instead they&#8217;ve been going to my company&#8217;s CEO, trying to get me in trouble for telling our shared client to be careful about the advice received from their engineers, despite knowing perfectly well that the advice being handed out by their engineers (particularly during commercially motivated server takeover) was dangerously incorrect.</p>
<p>So I&#8217;m not really sure what to do.  Do I go public with the names and claims of the individuals involved?  Do I just choke on the rage and be silent?  I tried going to their bosses; their bosses&#8217; response was to try to get me fired from my own job.</p>
<p>How do my readers suggest that I handle such an improbably unethical hosting company?</p>
]]></content:encoded>
			<wfw:commentRss>http://fullof.bs/bad-hosting-provider-behavior/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Like my new iPhone.  HATE the keyboard.</title>
		<link>http://fullof.bs/like-my-new-iphone-hate-the-keyboard/</link>
		<comments>http://fullof.bs/like-my-new-iphone-hate-the-keyboard/#comments</comments>
		<pubDate>Wed, 01 Oct 2008 05:15:35 +0000</pubDate>
		<dc:creator>John Haugeland</dc:creator>
				<category><![CDATA[General Interest]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Miscellaneous]]></category>
		<category><![CDATA[Rants]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[autocorrect]]></category>
		<category><![CDATA[fail]]></category>
		<category><![CDATA[i can fucking type thank you]]></category>
		<category><![CDATA[iphone 3g]]></category>
		<category><![CDATA[keyboard]]></category>
		<category><![CDATA[miserable]]></category>
		<category><![CDATA[t9]]></category>
		<category><![CDATA[what a mess]]></category>

		<guid isPermaLink="false">http://fullof.bs/?p=413</guid>
		<description><![CDATA[[digg-reddit-me]One of the things I was most looking forward to about my new iPhone, knowing there were SSH clients, was the ability to use it as a genuinely remote terminal, no matter where I was, to do little shell tasks and write simple code and so on. Ha!  The problem is, the iPhone has an [...]]]></description>
			<content:encoded><![CDATA[<p>[digg-reddit-me]One of the things I was most looking forward to about my new iPhone, knowing there were SSH clients, was the ability to use it as a genuinely remote terminal, no matter where I was, to do little shell tasks and write simple code and so on.</p>
<p>Ha!  The problem is, the iPhone has an autocorrecting keyboard which corrects if you don&#8217;t tell it not to (the obnoxious kind like Outlook has), and it makes completely asinine replacements (its becomes it&#8217;s, as if the word its doesn&#8217;t exist).  This is bad enough if you just speak above the level of an eighth grader, but it makes using unix shells and writing code genuinely impossible.</p>
<p>Classic apple zealot response from IRC: &#8220;don&#8217;t be stupid, just teach the iPhone every word you want to use when programming.&#8221;  Like they don&#8217;t even think before they answer.</p>
<p>Apple: why can&#8217;t I turn this off?  It&#8217;d be simple enough: there&#8217;s bound to be some function somwhere get_best_replacement(char* current), which signals no reasonable match (as you get for, say, &#8216;zzzzz&#8217;) by way of an empty string, or something similar.  That&#8217;s the hack point.  Add <span style="color: #3366ff"><strong>if (customer_isnt_retarded()) { return &#8220;&#8221;; } else { previous_logic(); }</strong></span> and it&#8217;s fixed.</p>
<p>Seriously, who locks people into an autocorrecting keyboard?  Ugh.  This ruins the iPhone for any kind of technical use.  What a mess.</p>
<p>If you hate this too, vote this up on digg and reddit, so that an Apple employee will see it.</p>
]]></content:encoded>
			<wfw:commentRss>http://fullof.bs/like-my-new-iphone-hate-the-keyboard/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

