<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">
<channel><generator>http://textpattern.com/?v=4.0.6</generator>
<title>makkintosshu</title>
<link>http://www.makkintosshu.com/</link>

<description>[Don't] Trust Your Technolust.</description>
<pubDate>Mon, 25 Feb 2013 12:12:12 GMT</pubDate>

<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/makkintosshu" /><feedburner:info uri="makkintosshu" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item><title>Twitter Statuses Badge 0.7.2 Released and a Few Words on its Future</title>
<content:encoded><![CDATA[
<p>In mid-August, Twitter announced <a href="https://dev.twitter.com/blog/changes-coming-to-twitter-api">there would be big changes coming in v1.1 of their <span class="caps">API</span></a> which they then <a href="https://dev.twitter.com/blog/current-status-api-v1.1">released at the beginning of September</a> (officially deprecating the v1.0 of their <span class="caps">API</span>). Well, three days ago my <a href="http://www.makkintosshu.com/development#twitter-statuses-javascript-badge">Twitter Statuses JavaScript Badge</a> stopped working on all my sites and everyone else&#8217;s that uses it too.</p>

	<p>Back when I first started its development in 2007, there was no official, versioned <span class="caps">API</span> and it&#8217;s managed to continue working this entire time. Clearly, Twitter decided that with v1.0 of the <span class="caps">API</span> deprecated, that anything using older calls than that would no longer need to be supported. So, I&#8217;ve updated to the v1.0 <span class="caps">API</span> calls and all is working again&#8230; for now (more on that in a sec).</p>

	<p>Go download <a href="http://www.makkintosshu.com/development#twitter-statuses-javascript-badge">v0.7.2</a> now (<a href="http://github.com/morgant/twitter-statuses-badge">the source code is also on GitHub</a>), or you can just change the following line in your <span class="caps">HTML</span>:</p>

<pre><code>&lt;script type=&quot;text/javascript&quot; src=&quot;http://www.twitter.com/statuses/user_timeline/morgant.json?skip_user=true&amp;callback=makkintosshu.twitterStatuses.twitterCallback&quot;&gt;&lt;/script&gt;
</code></pre>

	<p>To the following (replacing &#8220;morgant&#8221; with the appropriate Twitter username for your use, of course):</p>

<pre><code>&lt;script type=&quot;text/javascript&quot; src=&quot;http://api.twitter.com/1/statuses/user_timeline.json?screen_name=morgant&amp;callback=makkintosshu.twitterStatuses.twitterCallback&quot;&gt;&lt;/script&gt;
</code></pre>

	<h3>A Few Words on the Future</h3>

	<p>Now, v0.7.2 of my Twitter Statuses JavaScript Badge only brings us up to v1.0 of the Twitter <span class="caps">API</span> which is now deprecated and will be discontinued in roughly six months. Why not go straight to v1.1 of the Twitter <span class="caps">API</span>? Well, there are two major changes in v1.1 that would have a major impact on the JavaScript badge: requiring OAuth for <em>all</em> <span class="caps">API</span> requests and the display guidelines will become <a href="https://dev.twitter.com/terms/display-requirements">display requirements</a>.</p>

	<p>The latter, requiring the JavaScript badge&#8217;s display to conform to the specific display requirements, would require some minor <span class="caps">CSS</span> changes and is not too big a deal. That said, since the primary goal of the JavaScript badge is to allow customization of the styling, esp. integrating with a site&#8217;s theme, it could not enforce that only certain styling rules would be modifiable and so it&#8217;d be up to the developer using it to ensure that they too were meeting the requirements. This might be acceptable, but there&#8217;s also a chance that Twitter would object.</p>

	<p>The former, requiring OAuth authentication for all <span class="caps">API</span> requests, is unfortunately a show stopper. OAuth requires registering an application with Twitter (easy) and using secret access tokens as authorization to the <span class="caps">API</span> (the problem). The reason this is a problem is that JavaScript runs client-side and can be fully inspected by any user, so the secret access tokens are not very &#8220;secret&#8221; and could easily be reused by someone else for nefarious purposes.</p>

	<p>The OAuth issues could be worked around by implementing the badge server-side in <span class="caps">PHP</span> or another language, but then it would not be the same paste-in solution it currently is. I could create a web service that acted as the middle-man, allowing one to create badges that would be populated using a small amount of JavaScript and allowed me to control the majority of the <span class="caps">CSS</span> styling with hooks for specific theming, but then you might as well just use <a href="https://dev.twitter.com/docs/embedded-timelines">the official Twitter Embedded Timelines badges</a>.</p>

	<p>So, the future for my Twitter Statuses JavaScript Badge looks bleak. It&#8217;s highly likely that this is its last six months, which is too bad as I still had features planned. I&#8217;m not going to call it quits yet as I&#8217;ve got a number of months to consider my options, but discontinuing it is definitely on the table.</p>
<img src="http://feeds.feedburner.com/~r/makkintosshu/~4/ySSD_Njfqug" height="1" width="1"/>]]></content:encoded>
<link>http://feedproxy.google.com/~r/makkintosshu/~3/ySSD_Njfqug/twitter-statuses-badge-072-released-and-a-few-words-on-its-future</link>
<pubDate>Sun, 14 Oct 2012 00:39:35 GMT</pubDate>
<dc:creator>Morgan Aldridge</dc:creator>
<guid isPermaLink="false">tag:www.makkintosshu.com,2012-10-13:0a817050d8735a1db061322ded9a450d/44464c069e6c381968fa1adee4f12988</guid>

<category>badge</category>
<category>javascript</category>
<category>status</category>
<category>twitter</category>
<feedburner:origLink>http://www.makkintosshu.com/journal/twitter-statuses-badge-072-released-and-a-few-words-on-its-future</feedburner:origLink></item>
<item><title>On NewtonScript's Perform()</title>
<content:encoded><![CDATA[
<p>I&#8217;ve been playing with NewtonScript a bit in what little spare time I have, hence the previous posts on the subject. The eventual plan, of course, is to put together a few new packages for my MessagePad 2100, maybe even something useful to others, but in the meantime I just want to get comfortable with the language. For that, I&#8217;ve found playing with <a href="http://gnue.github.com/NEWT0/"><span class="caps">NEWT</span>/0</a> to be the easiest, but, while the core is there, a number of the built-in functions are still missing.</p>

	<p>One such function was <code>Perform()</code>, which allows dynamically sending a message to a frame. I say <em>was</em> because, with Makoto Nukui (<span class="caps">NEWT</span>/0&#8217;s developer) pointing (and re-pointing) me in the right direction, I was able to implement all the message sending global functions, namely: <code>Apply()</code>, <code>Perform()</code>, <code>PerformIfDefined()</code>, <code>ProtoPerform()</code>, and <code>ProtoPerformIfDefined()</code>. All of which have been merged back to master, so they&#8217;re at your disposal if you build <code>newt</code> from the latest source.</p>

	<p>No need to go into details on the implementation, the functionality was already there and just needed to be wrapped around, but I did want to discuss usage of <code>Perform()</code>. I won&#8217;t cover its variants as they&#8217;re called the same way, they just allow silent failures (in the case of <code>*IfDefined()</code>) or different inheritance searching (in the case of <code>Proto*()</code>).</p>

	<p>As I mentioned above, <code>Perform()</code> allows you to more dynamically send a message to a frame. For example, let&#8217;s take the following frame which has a <code>Test()</code> method:</p>

<pre><code>someFrame := {
	Test: func () begin
		Print(&quot;Hello world.\n&quot;);
	end
};
</code></pre>

	<p>Normally, if we wanted to send the <code>someFrame</code> frame a message of <code>Test</code>, we&#8217;d do so as follows:</p>

	<p><code>someFrame:Test();</code></p>

	<p>And it would execute the <code>Test</code> method, outputting:</p>

	<p><code>Hello world.</code></p>

	<p>Well, what if you didn&#8217;t know until runtime how many arguments you should need to pass along with message you&#8217;re sending? That&#8217;s where <code>Perform</code> comes in. It takes three arguments: the frame you want to send the message to, a symbol denoting which method should be called, and an array of parameters to send to said method (or <code>nil</code> if not passing any arguments). So, building on our previous example, like so:</p>

	<p><code>Perform(someFrame, &#39;Test, nil);</code></p>

	<p>Or, if one were passing parameters along with the message:</p>

	<p><code>Perform(someOtherFrame, &#39;SomeOtherMethod, [&quot;parameter 1&quot;, 2]);</code></p>

	<p>Note the use of the quoted constant, <code>&#39;Test</code> &amp; <code>&#39;SomeOtherMethod</code>, naming the method to be called. What if you also didn&#8217;t know the name of the method until runtime? How can you convert a string to a symbol to pass to <code>Perform()</code>? Fortunately, there&#8217;s <code>Intern()</code>, which returns a symbol when passed a string. With that, we can fully dynamically send a message to a frame, as follows:</p>

<pre><code>methodName := &quot;Test&quot;;
Perform(someFrame, Intern(methodName), nil);
</code></pre>

	<p>This is all documented in <a href="http://manuals.info.apple.com/en_US/NewtonScriptProgramLanguage.PDF">The NewtonScript Programming Language</a> (<span class="caps">PDF</span>; mirrors: <a href="http://www.unna.org/unna/apple/documentation/developer/NewtonScriptProgLanguage.pdf"><span class="caps">UNNA</span></a>, <a href="http://www.newted.org/download/manuals/NewtonScriptProgramLanguage.pdf">Newted</a>), but it&#8217;s spread out a bit, so figured I&#8217;d summarize it all in one place. I&#8217;d love to see others start playing with NewtonScript more as well.</p>
<img src="http://feeds.feedburner.com/~r/makkintosshu/~4/b2hfczf_cKY" height="1" width="1"/>]]></content:encoded>
<link>http://feedproxy.google.com/~r/makkintosshu/~3/b2hfczf_cKY/on-newtonscripts-perform</link>
<pubDate>Sun, 05 Aug 2012 15:49:25 GMT</pubDate>
<dc:creator>Morgan Aldridge</dc:creator>
<guid isPermaLink="false">tag:www.makkintosshu.com,2012-08-05:0a817050d8735a1db061322ded9a450d/355373d221847d5b1461b3864e448ceb</guid>

<category>newton</category>
<category>newtonscript</category>
<category>newt/0</category>
<category>open source</category>
<feedburner:origLink>http://www.makkintosshu.com/journal/on-newtonscripts-perform</feedburner:origLink></item>
<item><title>Why a Bash Implementation of realpath?</title>
<content:encoded><![CDATA[
<p>Shortly after my recent post of <a href="http://www.makkintosshu.com/journal/a-realpath-implementation-in-bash">a <code>realpath</code> implementation in <code>bash</code></a> my friend <a href="http://davidkendal.net/">David Kendal</a> <a href="https://twitter.com/#!/dpkendal/status/172316060236783616">suggested a C implementation would be preferable</a>. I have to admit, it&#8217;s <em>far</em> simpler code, it wraps around the actual <code>realpath()</code> so no work to make it functionally equivalent, and it&#8217;ll be immensely faster (although I haven&#8217;t benchmarked it). See <a href="https://gist.github.com/1885224">his example implementation</a>. I really can&#8217;t agree more.</p>

	<p>That said, I do see use for the <code>bash</code> implementation.</p>

	<h3>Why <code>bash</code>?</h3>

	<p>Most of my <code>bash</code> scripts are are exercises to keep my bash-fu honed, so this one certainly started that way and did so as a part of <a href="http://www.makkintosshu.com/development/#tools-osx">tools-osx</a>. While not a modern, object-oriented language, I find <code>bash</code> to be there for me on nearly every platform I use (excluding the obvious like pre-Mac OS X, Newton OS, etc.) without needing to build or install anything else. There are feature differences between versions, but they are minor.</p>

	<p>It&#8217;s very much in the spirit of <span class="caps">UNIX</span> and forces you to use the other command-line tools at your disposal, in conjunction with each other. So, I find it a great way to master more command-line tools and also to become a better command-line user. The more I learn in <code>bash</code> the more I&#8217;m able to do efficiently on the command-line, esp. complex tasks. As a server admin, this is immensely helpful. And, the server admin in me is probably why I find it greatly comforting to not have to install or maintain another language and its tools.</p>

	<p>It&#8217;s a relatively minimalist language and lacks a lot of niceties, but I consider it a bit of a survivalist language at this point. It&#8217;s no Perl, Python, or Ruby and it may be frustrating to work with arrays or return anything but integers, but if you can master it you&#8217;ll be able to be tossed into any random server and come out alive.</p>

	<h3>So, Why <code>realpath</code> in <code>bash</code>?</h3>

	<p>The real benefit for a <code>realpath</code> implementation in <code>bash</code> is the portability without the need to compile for new platforms. Simply copy to the appropriate directory and you&#8217;re done. This is ideal for situations where you cannot guarantee a compiler will be available (the use-case for tools-osx) or cannot have a compiler installed (one I commonly encounter in my admin work due to various security requirements, but also one people with shared hosts often run into).</p>

	<p>I was also recently contacted by someone who is using my <code>realpath</code> implementation in part of the process for launching a Java app on Linux and Mac OS X, so in this case it&#8217;s ideal to keep everything extremely portable with only one codebase and no build process required. Exactly the kind of thing I had in mind.</p>

	<h3>In Conclusion</h3>

	<p>So, the <code>bash</code> implementation of <code>realpath</code> has a couple of use-cases, mostly if you&#8217;re shooting for no compile process for installation. If you&#8217;ve already got a compile process, you&#8217;ll probably be better off with the C implementation for performance and to reduce your codebase. If you&#8217;re Linux-only, or platforms where you already have <code>readlink</code> available, just use <code>readlink</code>. Naturally, this is all with <code>bash</code> scripting in mind, most higher languages have a built-in <code>realpath</code> function.</p>
<img src="http://feeds.feedburner.com/~r/makkintosshu/~4/GGKfOBgEVys" height="1" width="1"/>]]></content:encoded>
<link>http://feedproxy.google.com/~r/makkintosshu/~3/GGKfOBgEVys/why-a-bash-implementation-of-realpath</link>
<pubDate>Tue, 03 Apr 2012 11:10:20 GMT</pubDate>
<dc:creator>Morgan Aldridge</dc:creator>
<guid isPermaLink="false">tag:www.makkintosshu.com,2012-03-30:0a817050d8735a1db061322ded9a450d/a9a52bbf01737f0cd1f318e0de8b1d7d</guid>

<category>bash</category>
<category>realpath</category>
<category>tools-osx</category>
<feedburner:origLink>http://www.makkintosshu.com/journal/why-a-bash-implementation-of-realpath</feedburner:origLink></item>
<item><title>A realpath Implementation in Bash</title>
<content:encoded><![CDATA[
<p>I was recently informed of an issue with the in-development version of <code>trash</code> (one of the utilities in <a href="http://www.makkintosshu.com/development/#tools-osx">tools-osx</a>) that required using an absolute path internally instead of a relative path. In most languages one can just run a path through <code>realpath()</code> to get the absolute path for a relative path, but <code>bash</code> (which <code>trash</code> was developed in) doesn&#8217;t have an equivalent. Many people suggest <code>readlink</code>, but it&#8217;s generally only included in Linux distributions, so <span class="caps">BSD</span>-based operating systems (incl. Mac OS X) are a bit out of luck.</p>

	<p>Fortunately, it&#8217;s quite easy to emulate using <code>pwd</code>, but there is a bit of extra work that must be done. I found <a href="http://www.linuxquestions.org/questions/programming-9/bash-script-return-full-path-and-filename-680368/page2.html#post4239549">a good, portable example</a>, but it still wasn&#8217;t quite up to my standards. I&#8217;ve simplified &amp; improved it and the result is as follows <em>(last updated 2012-11-29)</em>:</p>

<pre><code>function realpath()
{
	local success=true
	local path=&quot;$1&quot;
</code>
<code>	# make sure the string isn&#39;t empty as that implies something in further logic
	if [ -z &quot;$path&quot; ]; then
		success=false
	else
		# start with the file name (sans the trailing slash)
		path=&quot;${path%/}&quot;
</code>
<code>		# if we stripped off the trailing slash and were left with nothing, that means we&#39;re in the root directory
		if [ -z &quot;$path&quot; ]; then
			path=&quot;/&quot;
		fi
</code>
<code>		# get the basename of the file (ignoring &#39;.&#39; &amp; &#39;..&#39;, because they&#39;re really part of the path)
		local file_basename=&quot;${path##*/}&quot;
		if [[ ( &quot;$file_basename&quot; = &quot;.&quot; ) || ( &quot;$file_basename&quot; = &quot;..&quot; ) ]]; then
			file_basename=&quot;&quot;
		fi
</code>
<code>		# extracts the directory component of the full path, if it&#39;s empty then assume &#39;.&#39; (the current working directory)
		local directory=&quot;${path%$file_basename}&quot;
		if [ -z &quot;$directory&quot; ]; then
			directory=&#39;.&#39;
		fi
</code>
<code>		# attempt to change to the directory
		if ! cd &quot;$directory&quot; &amp;&gt;/dev/null ; then
			success=false
		fi
</code>
<code>		if $success; then
			# does the filename exist?
			if [[ ( -n &quot;$file_basename&quot; ) &amp;&amp; ( ! -e &quot;$file_basename&quot; ) ]]; then
				success=false
			fi
</code>
<code>			# get the absolute path of the current directory &amp; change back to previous directory
			local abs_path=&quot;$(pwd -P)&quot;
			cd &quot;-&quot; &amp;&gt;/dev/null
</code>
<code>			# Append base filename to absolute path
			if [ &quot;${abs_path}&quot; = &quot;/&quot; ]; then
				abs_path=&quot;${abs_path}${file_basename}&quot;
			else
				abs_path=&quot;${abs_path}/${file_basename}&quot;
			fi
</code>
<code>			# output the absolute path
			echo &quot;$abs_path&quot;
		fi
	fi
</code>
<code>	$success
}
</code></pre>

	<p>Here&#8217;s a simple example of its usage:</p>

<pre><code>relative_path=&quot;../Shared/&quot;
absolute_path=&quot;$(realpath &quot;$relative_path&quot;)&quot;
if [ $? -eq 0 ]; then
	echo &quot;absolute_path = $absolute_path&quot;
else
	echo &quot;&#39;$relative_path&#39; does not exist!&quot;
fi
</code></pre>

	<p>I have also tossed together a <code>realpath</code> tool which wraps around this implementation if you would like to install it for use in multiple scripts/tools. Feel free to <a href="http://www.makkintosshu.com/development/#realpath">download it from the development page</a> or <a href="http://github.com/morgant/realpath">get the source code on GitHub</a>. It&#8217;s released under a <span class="caps">BSD</span> license.</p>
<img src="http://feeds.feedburner.com/~r/makkintosshu/~4/waeQ1HJHY18" height="1" width="1"/>]]></content:encoded>
<link>http://feedproxy.google.com/~r/makkintosshu/~3/waeQ1HJHY18/a-realpath-implementation-in-bash</link>
<pubDate>Sun, 19 Feb 2012 14:48:23 GMT</pubDate>
<dc:creator>Morgan Aldridge</dc:creator>
<guid isPermaLink="false">tag:www.makkintosshu.com,2012-02-19:0a817050d8735a1db061322ded9a450d/ba39fbd05c33622e45b41302562df771</guid>

<category>bash</category>
<category>development</category>
<category>realpath</category>
<feedburner:origLink>http://www.makkintosshu.com/journal/a-realpath-implementation-in-bash</feedburner:origLink></item>
<item><title>Environment Variables in NewtonScript  and NEWT/0</title>
<content:encoded><![CDATA[
<p>To expand upon my previous post <a href="http://www.makkintosshu.com/journal/command-line-arguments-in-newtonscript-and-newt0">demonstrating how to access command line arguments (<span class="caps">ARGV</span>) in NewtonScript in <span class="caps">NEWT</span>/0</a>, I&#8217;ll demonstrate how to access environment variables. Command line arguments are only the beginning for writing command line tools as you often need to access environment variables as well. In some situations, like running a script as a <span class="caps">CGI</span> in your favorite <span class="caps">HTTP</span> server software, environment variables are really your only way to receive input from the outside world.</p>

	<p>After digging through the <a href="http://trac.so-kukan.com/newt/"><span class="caps">NEWT</span>/0</a> source code again, it appeared that I could again use <code>GetGlobalVar()</code>, but this time with the <code>&#39;_ENV_</code> object literal, but it didn&#8217;t seem to have anything useful in it, certainly not any environment variables. So, back to the source code I went and discovered that <span class="caps">NEWT</span>/0 implements a custom global function <code>GetEnv()</code>, like the <code>getenv()</code> equivalent in C, accepts a string for the environment variable name and returns the value stored in said environment variable.</p>

	<p>To get the <code>PATH</code> environment variable, for example:</p>

<pre><code>#!/usr/bin/env newt
</code>
<code>Print(&quot;PATH:&quot; &amp;&amp; GetEnv(&quot;PATH&quot;) &amp;&amp; &quot;\n&quot;);
</code></pre>

	<p>Or a basic &#8220;hello world&#8221; <span class="caps">CGI</span> that also echoes the query string:</p>

<pre><code>#!/usr/local/bin/newt
</code>
<code>Print(&quot;Content-Type: text/plain\n\n&quot;);
</code>
<code>Print(&quot;Hello world!\n\n&quot;);
Print(&quot;QUERY_STRING:&quot; &amp;&amp; GetEnv(&quot;QUERY_STRING&quot;) &amp;&amp; &quot;\n&quot;);
</code></pre>

	<p>I must thank <span class="caps">NEWT</span>/0&#8217;s developer, Makoto Nukui, for including all this functionality!</p>
<img src="http://feeds.feedburner.com/~r/makkintosshu/~4/F_Phc-mwXek" height="1" width="1"/>]]></content:encoded>
<link>http://feedproxy.google.com/~r/makkintosshu/~3/F_Phc-mwXek/environment-variables-in-newtonscript-and-newt0</link>
<pubDate>Sun, 22 Jan 2012 15:37:40 GMT</pubDate>
<dc:creator>Morgan Aldridge</dc:creator>
<guid isPermaLink="false">tag:www.makkintosshu.com,2012-01-22:0a817050d8735a1db061322ded9a450d/0680091359bfd385f28491a44267e555</guid>

<category>newtonscript</category>
<category>newton</category>
<category>newt/0</category>
<feedburner:origLink>http://www.makkintosshu.com/journal/environment-variables-in-newtonscript-and-newt0</feedburner:origLink></item>
<item><title>Command Line Arguments in NewtonScript and NEWT/0</title>
<content:encoded><![CDATA[
<p>Still being a daily Newton user as well as a developer, I&#8217;ve always wanted to learn NewtonScript. I&#8217;ve got a PowerMac 9500 that&#8217;s been configured for Newton OS development for quite some time and I&#8217;ve got a couple projects in mind, but I just never seem to get around it.</p>

	<p>I&#8217;ve also had <a href="http://trac.so-kukan.com/newt/"><span class="caps">NEWT</span>/0</a>, an open source, cross-platform NewtonScript interpreter, installed for a while. Since it can run NewtonScript scripts from the command line like any other interpreter, I decided I&#8217;d like to know if it was possible to get the command line arguments from NewtonScript so I could eventually write some local scripts to get myself familiar with the syntax &amp; functions (therefore less of a learning curve when I finally get around to writing some actual Newton packages). After <a href="http://lists.newtontalk.net/pipermail/newtontalk/2012-January/007880.html">a point in the right direction from Matthias Melcher and a lot of digging through the <span class="caps">NEWT</span>/0 source code</a>, I finally figured out how to do so.</p>

	<p>Here&#8217;s a quick NewtonScript script that can be run through <span class="caps">NEWT</span>/0 to print out the command line arguments you pass to it:</p>

<pre><code>#!/usr/bin/env newt
</code>
<code>Print(&quot;&#39;_ARGV_ exists? &quot;);
if GlobalVarExists(&#39;_ARGV_) then Print(&quot;Yes.\n&quot;) else Print(&quot;No.\n&quot;);
</code>
<code>foreach slot, value in GetGlobalVar(&#39;_ARGV_) do Print(slot &amp;&amp; &quot;:&quot;
&amp;&amp; value &amp;&amp; &quot;\n&quot;);
</code></pre>

	<p>I doubt there are many, if any, out there that are interested in doing this, but&#8212;who knows?&#8212;maybe somebody else will start scripting in NewtonScript too. (Expect to see some more NewtonScript-related news around here in the future.)</p>
<img src="http://feeds.feedburner.com/~r/makkintosshu/~4/ndp1DXFmnDc" height="1" width="1"/>]]></content:encoded>
<link>http://feedproxy.google.com/~r/makkintosshu/~3/ndp1DXFmnDc/command-line-arguments-in-newtonscript-and-newt0</link>
<pubDate>Sat, 21 Jan 2012 23:19:15 GMT</pubDate>
<dc:creator>Morgan Aldridge</dc:creator>
<guid isPermaLink="false">tag:www.makkintosshu.com,2012-01-21:0a817050d8735a1db061322ded9a450d/a4857f254079805dc44ef342a91e4082</guid>

<category>newton</category>
<category>newtonscript</category>
<category>newt/0</category>
<feedburner:origLink>http://www.makkintosshu.com/journal/command-line-arguments-in-newtonscript-and-newt0</feedburner:origLink></item>
<item><title>Twitter Statuses Badge 0.7.1 Released</title>
<content:encoded><![CDATA[
<p><em>Or, this should&#8217;ve been done nine months ago.</em></p>

	<p>When I released v0.7 of my <a href="http://www.makkintosshu.com/development#twitter-statuses-javascript-badge">Twitter Statuses JavaScript Badge</a> back in November of last year, it was right around the time that Twitter was rolling out <a href="http://groups.google.com/group/twitter-development-talk/browse_thread/thread/6a16efa375532182?pli=1">their new &#8216;snowflake&#8217; status ID generator</a> which was going to have some implications for languages such as JavaScript. Unfortunately, I didn&#8217;t become aware of this until I started seeing random issues with status IDs a couple months later. More unfortunately, I&#8217;m only getting around to applying the minor tweak to fix this, and a minor issue with applying the &#8216;last&#8217; class when there&#8217;s only one LI element, now.</p>

	<p>Without further ado, I present <a href="http://www.makkintosshu.com/development#twitter-statuses-javascript-badge">v0.7.1</a>! Please accept my apologies for sitting on this issue for so long and <a href="http://www.makkintosshu.com/contact/">let me know</a> if you have any questions, comments, or feature requests. Also, the <a href="http://github.com/morgant/twitter-statuses-badge">source code is on GitHub</a>.</p>

	<p style="text-align:center;"><img src="http://www.makkintosshu.com/images/70.png" alt="" width="586" height="226" /></p>

	<p><span class="caps">FYI</span> &#8211; I started developing a major update back in March, including a few frequently requested features. Hopefully I&#8217;ll get that polished up sometime this year.</p>
<img src="http://feeds.feedburner.com/~r/makkintosshu/~4/XdnjUp2Lg8g" height="1" width="1"/>]]></content:encoded>
<link>http://feedproxy.google.com/~r/makkintosshu/~3/XdnjUp2Lg8g/twitter-statuses-badge-071-released</link>
<pubDate>Tue, 16 Aug 2011 15:45:53 GMT</pubDate>
<dc:creator>Morgan Aldridge</dc:creator>
<guid isPermaLink="false">tag:www.makkintosshu.com,2011-08-16:0a817050d8735a1db061322ded9a450d/07ee5d786c50a839e9267741dd2ee569</guid>

<category>badge</category>
<category>javascript</category>
<category>status</category>
<category>twitter</category>
<feedburner:origLink>http://www.makkintosshu.com/journal/twitter-statuses-badge-071-released</feedburner:origLink></item>
<item><title>tools-osx 2011-06-02</title>
<content:encoded><![CDATA[
<p>I&#8217;ve updated my collection of Mac OS X command line tools with improvements to the <code>trash</code> tool:</p>

	<ul>
		<li><code>trash</code> can now list trash contents across all volumes (with a disk usage total) as well as empty the trash (including a secure empty option; both emptying operations require confirmation).</li>
	</ul>

	<p><strong>Note:</strong> <em>Obviously, the new version of <code>trash</code> is now destructive. I have tested and use this myself, but I cannot guarantee it won&#8217;t securely erase your entire hard drive if it encounters some odd edge case and I cannot be held responsible for that. So, use at your own risk and keep backups!</em></p>

	<p>Go <a href="http://www.makkintosshu.com/development#tools-osx">download them all</a> (<code>clipcat</code>, <code>eject</code>, <code>swuser</code>, and <code>trash</code>) or get the <a href="http://github.com/morgant/tools-osx">source code on github</a>!</p>
<img src="http://feeds.feedburner.com/~r/makkintosshu/~4/QruHuwgI-tk" height="1" width="1"/>]]></content:encoded>
<link>http://feedproxy.google.com/~r/makkintosshu/~3/QruHuwgI-tk/tools-osx-2011-06-02</link>
<pubDate>Thu, 02 Jun 2011 12:25:16 GMT</pubDate>
<dc:creator>Morgan Aldridge</dc:creator>
<guid isPermaLink="false">tag:www.makkintosshu.com,2011-06-02:0a817050d8735a1db061322ded9a450d/4239aa10ceb46175f617dcbcf52205e5</guid>

<category>bash</category>
<category>clipcat</category>
<category>eject</category>
<category>free</category>
<category>github</category>
<category>mac</category>
<category>open source</category>
<category>osx</category>
<category>software</category>
<category>tools-osx</category>
<category>trash</category>
<category>swuser</category>
<feedburner:origLink>http://www.makkintosshu.com/journal/tools-osx-2011-06-02</feedburner:origLink></item>
<item><title>sde_newsletter v0.5</title>
<content:encoded><![CDATA[
<p>I&#8217;ve got a very minor update to the <a href="http://www.makkintosshu.com/development#sde_newsletter-textpattern-plug-in">sde_newsletter</a> Textpattern plug-in. v0.5 word-wraps <span class="caps">HTML</span> &amp; text content in message/part bodies to 78 characters (if possible) to prevent hard wrapping at 998 characters which tends to badly break <span class="caps">HTML</span> content.</p>

	<p>The <code>sde_newsletter</code> plug-in helps build <span class="caps">HTML</span>, text, or multipart email messages from Textpattern pages (although, technically, you can use any web-facing source <span class="caps">HTML</span> &amp; text). It&#8217;s straightforward and very powerful when paired with newsletter/mailing list software.</p>

	<p><strong>Update</strong>: I discovered a minor bug parsing page title from <span class="caps">HTML</span> if the <span class="caps">TITLE</span> element contains line breaks. This has been resolved in v0.5.1.</p>
<img src="http://feeds.feedburner.com/~r/makkintosshu/~4/A3b9bMm4RvY" height="1" width="1"/>]]></content:encoded>
<link>http://feedproxy.google.com/~r/makkintosshu/~3/A3b9bMm4RvY/sde_newsletter-v05</link>
<pubDate>Mon, 28 Mar 2011 21:15:15 GMT</pubDate>
<dc:creator>Morgan Aldridge</dc:creator>
<guid isPermaLink="false">tag:www.makkintosshu.com,2011-03-28:0a817050d8735a1db061322ded9a450d/7d921c082d8cf532748706fb10dce31a</guid>

<category>textpatter</category>
<category>plug-in</category>
<category>e-mail</category>
<feedburner:origLink>http://www.makkintosshu.com/journal/sde_newsletter-v05</feedburner:origLink></item>
<item><title>tools-osx 2011-02-25</title>
<content:encoded><![CDATA[
<p>There&#8217;s been a small addition to my collection of Mac OS X command line tools:</p>

	<ul>
		<li><code>swuser</code> gives you control of Mac OS X&#8217;s <a href="http://docs.info.apple.com/article.html?path=Mac/10.6/en/8672.html">Fast User Switching</a> from the command line, including options for switching to login window, user by name, or user by ID. <em>Unfortunately, it&#8217;s not compatible with <code>screen</code>.</em></li>
	</ul>

	<p>Go <a href="http://www.makkintosshu.com/development#tools-osx">download them all</a> (<code>clipcat</code>, <code>eject</code>, <code>swuser</code>, and <code>trash</code>) or get the <a href="http://github.com/morgant/tools-osx">source code on github</a>!</p>
<img src="http://feeds.feedburner.com/~r/makkintosshu/~4/DNBu35PqMbc" height="1" width="1"/>]]></content:encoded>
<link>http://feedproxy.google.com/~r/makkintosshu/~3/DNBu35PqMbc/tools-osx-2011-02-25</link>
<pubDate>Fri, 25 Feb 2011 12:50:09 GMT</pubDate>
<dc:creator>Morgan Aldridge</dc:creator>
<guid isPermaLink="false">tag:www.makkintosshu.com,2011-02-25:0a817050d8735a1db061322ded9a450d/9ecaeeeb325547ab86d57aed2442d7d5</guid>

<category>bash</category>
<category>clipcat</category>
<category>eject</category>
<category>free</category>
<category>github</category>
<category>mac</category>
<category>open source</category>
<category>osx</category>
<category>software</category>
<category>tools-osx</category>
<category>trash</category>
<category>swuser</category>
<feedburner:origLink>http://www.makkintosshu.com/journal/tools-osx-2011-02-25</feedburner:origLink></item></channel>
</rss>
