<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE rss [<!ENTITY % HTMLlat1 PUBLIC "-//W3C//ENTITIES Latin 1 for XHTML//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml-lat1.ent">]>
<rss version="0.92" xml:base="http://www.applefritter.com">
<channel>
 <title>Applefritter - Software</title>
 <link>http://www.applefritter.com/taxonomy/term/97/0</link>
 <description></description>
 <language>en</language>
<item>
 <title>Have Your Macintosh Call You</title>
 <link>http://www.applefritter.com/node/10758</link>
 <description>This morning I went off campus to eat some real food, and my cell phone rang just as I was sitting down with the day's first cup of tea.  I flipped it open and said "Hello?"  The caller said "Good evening ladies and gentlemen, I'm coming to you tonight from a microphone inside a sock!" and then hung up.

Generally when people phone me and tell me that they're calling from microphones inside of socks I'm somewhat befuddled.  This morning I knew.  My PowerBook had decided to give me a call.

I'm fond of the idea of leaving the house once in a while, so I decided to home brew an inexpensive way for my computer to notify me if something important happened while I wasn't within "really loud beeping" range.  I toyed with the idea of SMS messages, but these have the potential to get really costly, really fast.  Also, SMS messages are easily sent from a computer.  No hack value at all.

Using a combination of Skype, iTunes and Soundflower, with Applescript gluing them all together, I was able to find my solution.  All the programs used in this are free of charge.  The costly parts are daytime minutes off my cell phone's montly plan for which I overpay and don't nearly use anyhow, and SkypeOut credits.

For those of you not familiar with Skype, it's a VoIP program.  It becomes relevant to this project when we use a service called "SkypeOut" where, for a small fee, you're able to place calls to a regular telephone.  In my experience it has a bit too much static when calling out for a reliable conversation, but to my cell it works fine.  Your mileage may vary.

First I started with the problem of playing an audio file through Skype.  The iTunes output must be routed to the Skype input.  I didn't have a cord handy to run from my output to my input, and that kind of kludge wouldn't work on any machine without an analog input (many of the consumer level machines), so I googled around a bit more.

&lt;a href =  "http://cycling74.com/downloads/soundflower"&gt;Soundflower&lt;/a&gt; from &lt;a href = "http://cycling74.com"&gt;Cycling '74&lt;/a&gt; is a wonderful bit of open source software with my problem in mind.  Its purpose is to 'connect audio applications', which was exactly what I needed to do.  It does this by creating a virtual output device and a virtual input device.  This means that I can set "Soundflower (2ch)" in my System Preferences and it will send all sound output to Soundflower.  Then using "Soundflower (2ch)" as the input on Skype will pipe the audio right where I want it.  Think of it as setting a microphone right next to a speaker to capture the sound coming from it.

I installed Soundflower, and set my System Preferences output to "Soundflower (2ch)".  Then, in the Skype preferences where you can specify separate input and output devices from the systems standard devices, I set "Soundflower (2ch) as the input.

Now, technically our problem is solved.  If we had a fellow sitting at my machine at all times, watching for one of my 'Applefritter is down' alarms to go off, we'd be set.  He could set up the inputs and outputs correctly, use Skype to call me, play an alert in iTunes to let me know that the server is unavailable once I answer, hang up as soon as it's done playing, then switch my sound prefs back so that I didn't have to manually change them to play music later.

I'm tragically lacking in minions to do this, so I'll have to make due with the next available thing: Applescript.  System Preferences, Skype, and iTunes all are scriptable with it.

The Applescript can be launched from the command line with this syntax: 

&lt;pre style="text-align:left;color:#000000; background-color:#ffffff; border:solid black 1px; padding:0.5em 1em 0.5em 1em; overflow:auto;font-size:small; font-family:monospace; width: 675px;"&gt;
osascript /complete/path/scriptname.scpt &lt;i&gt;(phone number)&lt;/i&gt; &lt;i&gt;(audio filename)&lt;/i&gt;
&lt;/pre&gt;

Here's the Applescript which I used.  Portions which are taken from other sites are credited accordingly in the comments.

&lt;pre style="text-align:left;color:#000000; background-color:#ffffff; border:solid black 1px; padding:0.5em 1em 0.5em 1em; overflow:auto;font-size:small; font-family:monospace; width: 675px;"&gt;&lt;span style="color:#0b0bff;"&gt;on&lt;/span&gt; &lt;span style="color:#0b0bff;"&gt;run&lt;/span&gt; argv
      &lt;span style="color:#0b0bff;"&gt;set&lt;/span&gt; phoneNumber &lt;span style="color:#0b0bff;"&gt;to&lt;/span&gt; item 1 &lt;span style="color:#0b0bff;"&gt;of&lt;/span&gt; argv
      &lt;span style="color:#0b0bff;"&gt;set&lt;/span&gt; audioFilename &lt;span style="color:#0b0bff;"&gt;to&lt;/span&gt; item 2 &lt;span style="color:#0b0bff;"&gt;of&lt;/span&gt; argv
      
      &lt;span style="color:#8d8d8d;"&gt;-- From &lt;a href = "http://www.macosxhints.com/article.php?story=20050614171126634"&gt;http://www.macosxhints.com/article.php?story=20050614171126634&lt;/a&gt;
&lt;/span&gt;      &lt;span style="color:#0b0bff;"&gt;tell&lt;/span&gt; &lt;span style="color:#0b0bff;"&gt;application&lt;/span&gt; &amp;quot;System Preferences&amp;quot; &lt;span style="color:#0b0bff;"&gt;to&lt;/span&gt; activate
      &lt;span style="color:#0b0bff;"&gt;tell&lt;/span&gt; &lt;span style="color:#0b0bff;"&gt;application&lt;/span&gt; &amp;quot;System Events&amp;quot;
            &lt;span style="color:#0b0bff;"&gt;get&lt;/span&gt; properties
            &lt;span style="color:#0b0bff;"&gt;tell&lt;/span&gt; process &amp;quot;System Preferences&amp;quot;
                  click menu item &amp;quot;Sound&amp;quot; &lt;span style="color:#0b0bff;"&gt;of&lt;/span&gt; menu &amp;quot;View&amp;quot; &lt;span style="color:#0b0bff;"&gt;of&lt;/span&gt; menu bar 1
                  delay 2
                  &lt;span style="color:#0b0bff;"&gt;set&lt;/span&gt; theRows &lt;span style="color:#0b0bff;"&gt;to&lt;/span&gt; &lt;span style="color:#0b0bff;"&gt;every&lt;/span&gt; row &lt;span style="color:#0b0bff;"&gt;of&lt;/span&gt; table 1 &lt;span style="color:#0b0bff;"&gt;of&lt;/span&gt; scroll area 1 &lt;span style="color:#0b0bff;"&gt;of&lt;/span&gt; ¬
                        &lt;span style="color:#0b0bff;"&gt;tab&lt;/span&gt; group 1 &lt;span style="color:#0b0bff;"&gt;of&lt;/span&gt; window &amp;quot;sound&amp;quot;
                  &lt;span style="color:#0b0bff;"&gt;set&lt;/span&gt; theOutputs &lt;span style="color:#0b0bff;"&gt;to&lt;/span&gt; {} &lt;span style="color:#0b0bff;"&gt;as&lt;/span&gt; list
                  &lt;span style="color:#0b0bff;"&gt;repeat&lt;/span&gt; &lt;span style="color:#0b0bff;"&gt;with&lt;/span&gt; aRow &lt;span style="color:#0b0bff;"&gt;in&lt;/span&gt; theRows
                        &lt;span style="color:#0b0bff;"&gt;if&lt;/span&gt; (value &lt;span style="color:#0b0bff;"&gt;of&lt;/span&gt; text field 1 &lt;span style="color:#0b0bff;"&gt;of&lt;/span&gt; aRow &lt;span style="color:#0b0bff;"&gt;as&lt;/span&gt; text) ¬
                              &lt;span style="color:#0b0bff;"&gt;is&lt;/span&gt; &lt;span style="color:#0b0bff;"&gt;equal&lt;/span&gt; &lt;span style="color:#0b0bff;"&gt;to&lt;/span&gt; &amp;quot;Soundflower (2ch)&amp;quot; &lt;span style="color:#0b0bff;"&gt;then&lt;/span&gt;
                              &lt;span style="color:#0b0bff;"&gt;set&lt;/span&gt; selected &lt;span style="color:#0b0bff;"&gt;of&lt;/span&gt; aRow &lt;span style="color:#0b0bff;"&gt;to&lt;/span&gt; &lt;span style="color:#0b0bff;"&gt;true&lt;/span&gt;
                              &lt;span style="color:#0b0bff;"&gt;exit&lt;/span&gt; &lt;span style="color:#0b0bff;"&gt;repeat&lt;/span&gt;
                        &lt;span style="color:#0b0bff;"&gt;end&lt;/span&gt; &lt;span style="color:#0b0bff;"&gt;if&lt;/span&gt;
                  &lt;span style="color:#0b0bff;"&gt;end&lt;/span&gt; &lt;span style="color:#0b0bff;"&gt;repeat&lt;/span&gt;
            &lt;span style="color:#0b0bff;"&gt;end&lt;/span&gt; &lt;span style="color:#0b0bff;"&gt;tell&lt;/span&gt;
      &lt;span style="color:#0b0bff;"&gt;end&lt;/span&gt; &lt;span style="color:#0b0bff;"&gt;tell&lt;/span&gt;
      &lt;span style="color:#0b0bff;"&gt;tell&lt;/span&gt; &lt;span style="color:#0b0bff;"&gt;application&lt;/span&gt; &amp;quot;System Preferences&amp;quot; &lt;span style="color:#0b0bff;"&gt;to&lt;/span&gt; &lt;span style="color:#0b0bff;"&gt;quit&lt;/span&gt;
      
      &lt;span style="color:#8d8d8d;"&gt;-- From various apple scripts
&lt;/span&gt;      &lt;span style="color:#0b0bff;"&gt;tell&lt;/span&gt; &lt;span style="color:#0b0bff;"&gt;application&lt;/span&gt; &amp;quot;iTunes&amp;quot;
            activate
            stop
      &lt;span style="color:#0b0bff;"&gt;end&lt;/span&gt; &lt;span style="color:#0b0bff;"&gt;tell&lt;/span&gt;
      
      &lt;span style="color:#8d8d8d;"&gt;-- Mostly from &lt;a href = "http://forum.skype.com/viewtopic.php?t=29120"&gt; http://forum.skype.com/viewtopic.php?t=29120&lt;/a&gt;
&lt;/span&gt;      &lt;span style="color:#0b0bff;"&gt;tell&lt;/span&gt; &lt;span style="color:#0b0bff;"&gt;application&lt;/span&gt; &amp;quot;Skype&amp;quot;
            send command &amp;quot;CALL +&amp;quot; &amp;amp; phoneNumber script name &amp;quot;phoneOut&amp;quot;
            &lt;span style="color:#0b0bff;"&gt;set&lt;/span&gt; calls &lt;span style="color:#0b0bff;"&gt;to&lt;/span&gt; send command &amp;quot;SEARCH ACTIVECALLS&amp;quot; script name &amp;quot;phoneOut&amp;quot;
            &lt;span style="color:#0b0bff;"&gt;set&lt;/span&gt; callID &lt;span style="color:#0b0bff;"&gt;to&lt;/span&gt; &lt;span style="color:#0b0bff;"&gt;last&lt;/span&gt; word &lt;span style="color:#0b0bff;"&gt;of&lt;/span&gt; calls
            &lt;span style="color:#0b0bff;"&gt;repeat&lt;/span&gt;
                  &lt;span style="color:#0b0bff;"&gt;set&lt;/span&gt; status &lt;span style="color:#0b0bff;"&gt;to&lt;/span&gt; send command &amp;quot;GET CALL &amp;quot; &amp;amp; callID &amp;amp; &amp;quot; STATUS&amp;quot; script name &amp;quot;phoneOut&amp;quot;
                  &lt;span style="color:#0b0bff;"&gt;if&lt;/span&gt; &lt;span style="color:#0b0bff;"&gt;last&lt;/span&gt; word &lt;span style="color:#0b0bff;"&gt;of&lt;/span&gt; status &lt;span style="color:#0b0bff;"&gt;is&lt;/span&gt; &lt;span style="color:#0b0bff;"&gt;not&lt;/span&gt; &amp;quot;ROUTING&amp;quot; &lt;span style="color:#0b0bff;"&gt;then&lt;/span&gt; &lt;span style="color:#0b0bff;"&gt;exit&lt;/span&gt; &lt;span style="color:#0b0bff;"&gt;repeat&lt;/span&gt;
            &lt;span style="color:#0b0bff;"&gt;end&lt;/span&gt; &lt;span style="color:#0b0bff;"&gt;repeat&lt;/span&gt;
            &lt;span style="color:#0b0bff;"&gt;repeat&lt;/span&gt;
                  &lt;span style="color:#0b0bff;"&gt;set&lt;/span&gt; status &lt;span style="color:#0b0bff;"&gt;to&lt;/span&gt; send command &amp;quot;GET CALL &amp;quot; &amp;amp; callID &amp;amp; &amp;quot; STATUS&amp;quot; script name &amp;quot;phoneOut&amp;quot;
                  &lt;span style="color:#0b0bff;"&gt;if&lt;/span&gt; &lt;span style="color:#0b0bff;"&gt;last&lt;/span&gt; word &lt;span style="color:#0b0bff;"&gt;of&lt;/span&gt; status &lt;span style="color:#0b0bff;"&gt;is&lt;/span&gt; &amp;quot;INPROGRESS&amp;quot; &lt;span style="color:#0b0bff;"&gt;then&lt;/span&gt; &lt;span style="color:#0b0bff;"&gt;exit&lt;/span&gt; &lt;span style="color:#0b0bff;"&gt;repeat&lt;/span&gt;
            &lt;span style="color:#0b0bff;"&gt;end&lt;/span&gt; &lt;span style="color:#0b0bff;"&gt;repeat&lt;/span&gt;
      &lt;span style="color:#0b0bff;"&gt;end&lt;/span&gt; &lt;span style="color:#0b0bff;"&gt;tell&lt;/span&gt;
      
      &lt;span style="color:#8d8d8d;"&gt;-- From various apple scripts
&lt;/span&gt;      &lt;span style="color:#0b0bff;"&gt;tell&lt;/span&gt; &lt;span style="color:#0b0bff;"&gt;application&lt;/span&gt; &amp;quot;iTunes&amp;quot;
            activate
            &lt;span style="color:#0b0bff;"&gt;tell&lt;/span&gt; source &amp;quot;Library&amp;quot;
                  &lt;span style="color:#0b0bff;"&gt;tell&lt;/span&gt; playlist &amp;quot;Library&amp;quot;
                        &lt;span style="color:#0b0bff;"&gt;set&lt;/span&gt; toPlay &lt;span style="color:#0b0bff;"&gt;to&lt;/span&gt; track audioFilename
                        play toPlay
                  &lt;span style="color:#0b0bff;"&gt;end&lt;/span&gt; &lt;span style="color:#0b0bff;"&gt;tell&lt;/span&gt;
            &lt;span style="color:#0b0bff;"&gt;end&lt;/span&gt; &lt;span style="color:#0b0bff;"&gt;tell&lt;/span&gt;
            &lt;span style="color:#0b0bff;"&gt;set&lt;/span&gt; trackTime &lt;span style="color:#0b0bff;"&gt;to&lt;/span&gt; duration &lt;span style="color:#0b0bff;"&gt;of&lt;/span&gt; toPlay
            delay trackTime
            stop
      &lt;span style="color:#0b0bff;"&gt;end&lt;/span&gt; &lt;span style="color:#0b0bff;"&gt;tell&lt;/span&gt;
      
      &lt;span style="color:#8d8d8d;"&gt;-- From those forum blokes again
&lt;/span&gt;      &lt;span style="color:#0b0bff;"&gt;tell&lt;/span&gt; &lt;span style="color:#0b0bff;"&gt;application&lt;/span&gt; &amp;quot;Skype&amp;quot;
            send command &amp;quot;SET CALL &amp;quot; &amp;amp; callID &amp;amp; &amp;quot; STATUS FINISHED&amp;quot; script name &amp;quot;phoneOut&amp;quot;
      &lt;span style="color:#0b0bff;"&gt;end&lt;/span&gt; &lt;span style="color:#0b0bff;"&gt;tell&lt;/span&gt;
      
      &lt;span style="color:#8d8d8d;"&gt;-- From &lt;a href = "http://www.macosxhints.com/article.php?story=20050614171126634"&gt; http://www.macosxhints.com/article.php?story=20050614171126634&lt;/a&gt;
&lt;/span&gt;      &lt;span style="color:#0b0bff;"&gt;tell&lt;/span&gt; &lt;span style="color:#0b0bff;"&gt;application&lt;/span&gt; &amp;quot;System Preferences&amp;quot; &lt;span style="color:#0b0bff;"&gt;to&lt;/span&gt; activate
      &lt;span style="color:#0b0bff;"&gt;tell&lt;/span&gt; &lt;span style="color:#0b0bff;"&gt;application&lt;/span&gt; &amp;quot;System Events&amp;quot;
            &lt;span style="color:#0b0bff;"&gt;get&lt;/span&gt; properties
            &lt;span style="color:#0b0bff;"&gt;tell&lt;/span&gt; process &amp;quot;System Preferences&amp;quot;
                  click menu item &amp;quot;Sound&amp;quot; &lt;span style="color:#0b0bff;"&gt;of&lt;/span&gt; menu &amp;quot;View&amp;quot; &lt;span style="color:#0b0bff;"&gt;of&lt;/span&gt; menu bar 1
                  delay 2
                  &lt;span style="color:#0b0bff;"&gt;set&lt;/span&gt; theRows &lt;span style="color:#0b0bff;"&gt;to&lt;/span&gt; &lt;span style="color:#0b0bff;"&gt;every&lt;/span&gt; row &lt;span style="color:#0b0bff;"&gt;of&lt;/span&gt; table 1 &lt;span style="color:#0b0bff;"&gt;of&lt;/span&gt; scroll area 1 &lt;span style="color:#0b0bff;"&gt;of&lt;/span&gt; ¬
                        &lt;span style="color:#0b0bff;"&gt;tab&lt;/span&gt; group 1 &lt;span style="color:#0b0bff;"&gt;of&lt;/span&gt; window &amp;quot;sound&amp;quot;
                  &lt;span style="color:#0b0bff;"&gt;set&lt;/span&gt; theOutputs &lt;span style="color:#0b0bff;"&gt;to&lt;/span&gt; {} &lt;span style="color:#0b0bff;"&gt;as&lt;/span&gt; list
                  &lt;span style="color:#0b0bff;"&gt;repeat&lt;/span&gt; &lt;span style="color:#0b0bff;"&gt;with&lt;/span&gt; aRow &lt;span style="color:#0b0bff;"&gt;in&lt;/span&gt; theRows
                        &lt;span style="color:#0b0bff;"&gt;if&lt;/span&gt; (value &lt;span style="color:#0b0bff;"&gt;of&lt;/span&gt; text field 1 &lt;span style="color:#0b0bff;"&gt;of&lt;/span&gt; aRow &lt;span style="color:#0b0bff;"&gt;as&lt;/span&gt; text) ¬
                              &lt;span style="color:#0b0bff;"&gt;is&lt;/span&gt; &lt;span style="color:#0b0bff;"&gt;equal&lt;/span&gt; &lt;span style="color:#0b0bff;"&gt;to&lt;/span&gt; &amp;quot;Internal Speakers&amp;quot; &lt;span style="color:#0b0bff;"&gt;then&lt;/span&gt;
                              &lt;span style="color:#0b0bff;"&gt;set&lt;/span&gt; selected &lt;span style="color:#0b0bff;"&gt;of&lt;/span&gt; aRow &lt;span style="color:#0b0bff;"&gt;to&lt;/span&gt; &lt;span style="color:#0b0bff;"&gt;true&lt;/span&gt;
                              &lt;span style="color:#0b0bff;"&gt;exit&lt;/span&gt; &lt;span style="color:#0b0bff;"&gt;repeat&lt;/span&gt;
                        &lt;span style="color:#0b0bff;"&gt;end&lt;/span&gt; &lt;span style="color:#0b0bff;"&gt;if&lt;/span&gt;
                  &lt;span style="color:#0b0bff;"&gt;end&lt;/span&gt; &lt;span style="color:#0b0bff;"&gt;repeat&lt;/span&gt;
            &lt;span style="color:#0b0bff;"&gt;end&lt;/span&gt; &lt;span style="color:#0b0bff;"&gt;tell&lt;/span&gt;
      &lt;span style="color:#0b0bff;"&gt;end&lt;/span&gt; &lt;span style="color:#0b0bff;"&gt;tell&lt;/span&gt;
      &lt;span style="color:#0b0bff;"&gt;tell&lt;/span&gt; &lt;span style="color:#0b0bff;"&gt;application&lt;/span&gt; &amp;quot;System Preferences&amp;quot; &lt;span style="color:#0b0bff;"&gt;to&lt;/span&gt; &lt;span style="color:#0b0bff;"&gt;quit&lt;/span&gt;
&lt;span style="color:#0b0bff;"&gt;end&lt;/span&gt; &lt;span style="color:#0b0bff;"&gt;run&lt;/span&gt;
&lt;/pre&gt;
&lt;div id="footer" style="text-align:center; font-size:10px; color:#555; font-family: sanserif;"&gt;
&lt;br /&gt;Code snippet generated with &lt;a href="http://www.codingmonkeys.de/subethaedit/" style="color:#555;"&gt;SubEthaEdit&lt;/a&gt;
&lt;/div&gt;

The code does this:
&lt;ul&gt;
&lt;li&gt; The first few lines take in the command line arguments and set variables to their values.
&lt;li&gt; Then System Preferences is opened and Soundflower is set as the system output.
&lt;li&gt; Next, the current song in iTunes is stopped so that it's silent while the phone number is called.
&lt;li&gt; Skype is told to to dial the number, loop until it's connected, and then loop again until the user picks up or their voicemail picks up.
&lt;li&gt; Once the user is on the line, iTunes is told to play the audio file specified in the command line argument.
&lt;li&gt; As soon as the file is done playing, Skype ends the call.
&lt;li&gt; Speakers are set back to internal speaker so that the audio isn't messed up later.
&lt;/ul&gt;

This morning while I was eating breakfast, what happened was:
&lt;ul&gt;
&lt;li&gt; A timer elapsed and ran this script with my phone number and an audio file called "sock", as spoken by Applefritter's own Ex-parrot.
&lt;li&gt; "Soundflower" was set as the output, and iTunes was stopped from it's current track.
&lt;li&gt; Skype dialed my number and waited for me to pick up.
&lt;li&gt; iTunes played the file named "sock" from it's library.
&lt;li&gt; Skype hangs up.
&lt;li&gt; The system output is set back to "Internal Speakers" so that I'm not confused when I go to use my Powerbook next time.
&lt;/ul&gt;

Please remember if you're planning on using this script:
&lt;ul&gt;
&lt;li&gt; Under "Universal Access" in System Preferences, check "Enable access for assistive devices" to allow Applescript to work the menus.
&lt;li&gt; You must be running OS 10.4 for this to work.
&lt;/ul&gt;
</description>
 <pubDate>Fri, 17 Feb 2006 20:25:55 -0800</pubDate>
</item>
<item>
 <title>How to successfully install Mac OS X 10.3 on Beige G3s</title>
 <link>http://www.applefritter.com/node/2852</link>
 <description>First of all, here are the specs of my machine:

[b]Beige G3
Sonnet 400 MHz G4 upgrade w/ 1 MB L2 cache
768 MB RAM
40 GB IDE drive
4 GB 10,00RPM Cheetah SCSI drive
Apple UltraSCSI card
Radeon 7000
USB/Firewire PCI card
Toshiba DVD drive
Built-in Zip drive
Rev. A ROM[/b]

These instructions are based upon this machine. If you have any problems on a differently-abled Beige G3, please let me know so we can work towards a more complete Howto. This may or may not work with other Mac models. It should, but there may be other idiosyncrasies I don't know about. Keep in mind 10.3 will [b]only[/b] work on G3 and above processors, so older machines will [b]*not*[/b] work unless they have a G3 or G4 upgrade installed. Also, XPostFacto a17 has some preliminary support for the built-in video of Beige G3s, but I haven't tested it as of yet. I am doing all video on the Radeon 7000 for now, as I had problems with the built-in video on earlier versions of XPF. It may work, it may not. I'll probably test this soon so that I can get back my dual monitor setup. On to the install.
&lt;!--break--&gt;
First and foremost start up from an OS 9 CD, and partition your drive such that the first partition is less than 8 GB. If your drive is smaller than 8 GB, this isn't really an issue, but I would highly suggest having OS 9 and OS X on different partitions. Less than 8 GB is going to get pretty cramped pretty quick, though, so I also suggest getting a bigger HD. That being said, you probably only [b]*need*[/b] 3 or 4 GB to get everything working.

In my case, I made the first partition 7.5 GB, and left the rest of the drive (32 GB or so) as the second partition. Install OS 9 on the second partition (not the less than 8 GB one). Start up your machine in OS 9, download XPostFacto from [url=http://eshop.macsales.com/OSXCenter/XPostFacto/Framework.cfm?page=XPostFacto3.html][b]here[/b][/url] and put it somewhere on your OS 9 partition. Put in your OS X 10.3 disc and start XPostFacto (XPF). Select the OS X CD and the partition you want to install X on and click the Install button. What this does is install the modified kernel extensions and a modified BootX onto the partition you want to install X on, and uses them to boot the CD. Installation should be normal, make sure you don't format the partition you are installing to, as this will erase the modified extensions and BootX. If you [b]*do*[/b] accidentally format before you install, all is not lost, though. Boot back into OS 9 and run XPF. Choose the X partition and hit the Restart button. It will reinstall the needed extensions and boot you into X.

[b]If you ever need to get back to OS 9[/b], you can use XPF to do so, or hold Option at startup. This comes in handy when doing the next part of the installation.

You should have a working install of X on your machine now, but it is probably slow as molasses in the winter. This is because the cache isn't enabled. Amazing what 512 KB or 1 MB can do, huh? There are three methods of fixing this, and from everything I've read, it's kind of a crap shoot as to which one will work. The software supplied by different CPU upgrade manufacturers will work on other companies upgrades, so even if you have a Powerlogix upgrade, the Sonnet solution may work best for you. Here are the three possibilities, followed by how to fix it if your machine breaks.

[b]1) The easy way.[/b] Though it probably won't work. Start XPF and hit the Options button. Then make sure "Enable L2/L3 Cache" is checked, close the Options dialog, and hit Reboot. This will most likely result in a kernel panic at startup, but it may work for you. I got the kernel panic. If you do boot without the kernel panic, the way to tell if cache is enabled is to go to About This Mac under the Apple menu and click More Info... at the bottom. When the profiler comes up, it should list cache under the CPU type and such. If it doesn't, it isn't working.

[b]To fix it if it's broken:[/b] Boot back into OS 9 by holding down Option at boot, start up XPF, hit the Options button, uncheck the "Enable L2/L3 Cache" option, close Options, choose the X partition, hit Restart.

[b]2) The Sonnet way.[/b] Sonnet supplies software called Sonnet X Tune-up, which is located [url=http://sonnettech.com/downloads/osx_upgrade_sw.html][b]here[/b][/url]. It is currently at 1.2.7, but there is a version 1.2.8 that works better for this application. The 1.2.7 version installs extensions which aren't compatible with 10.3, so if you use that, you have to use XPF to reinstall the newer extensions over the Sonnet supplied ones. 1.2.8 isn't available on their website, but it is available [url=mailto:support@sonnettech.com][b]here[/b][/url] by request. There is no direct link. Just explain that you want it to try 10.3 on your older Mac, and they should send it to you. I have it already, but I can't post it as of now as they haven't given me permission to do so. If I hear back from them, I will upload it here to AF. After you install 1.2.8, restart the machine. Either it will work and it will boot much faster, or you will get a kernel panic. I got a kernel panic. Again, if it boots, you can check to see if the cache is enabled in the profiler.

[b]To fix it if it's broken:[/b] Boot back into OS 9 by holding down Option at boot, do a find for "SonnetCache.kext" and delete it. Use XPF to restart back into X.

[b]3) The Powerlogix way.[/b] Powerlogix supplies software called CPU Director, located [url=http://www.powerlogix.com/products/cpudirector/index.html][b]here[/b][/url]. There is also a seemingly newer version [url=http://plx.onlinesupportdesk.net/?_a=downloads][b]here[/b][/url], but I used the 1.4f1 version. Perhaps the 1.5f2 version is better, I will investigate. Run CPU Director once it is downloaded. It will ask if you want to install PLKEXT; say yes. Once it has started, go to the L2 and L3 tabs and make sure the cache is set to On, and also check the Enable on Startup checkbox. This should enable your cache once your machine has booted. It doesn't enable it at boot time AFAIK, though, so booting will still be slow. Once your machine is booted it will be nice and fast. There have been those who have problems with this software too, though. It may give you an error about PLKEXT crashing, but it will still let you re-enable it. Annoying, but not fatal.

[b]To fix it if it's broken:[/b] It can't break your system (at least not AFAIK). It just will or won't work.

For the report on this and other cache-related problems, check out [url=http://anybox.owc.net/forum/viewtopic.php?t=1098][b]this[/b][/url] thread on OWC's website. They go over some troubleshooting stuff there. The XPF or Sonnet way seems to be the best as far as usability, considering it speeds up boot times significantly, but the CPU Director software is definitely the safest way.

Any errors or addendum should be directed to me so that I can fix them in the Howto. Hope it works for you!

[b]Downloads:
[url=http://eshop.macsales.com/OSXCenter/XPostFacto/Framework.cfm?page=XPostFacto3.html]XPostFacto[/url]
[url=http://sonnettech.com/downloads/osx_upgrade_sw.html]Sonnet X Tune-up 1.2.7[/url]
[url=mailto:support@sonnettech.com]Sonnet X Tune-up 1.2.8[/url]
[url=http://www.powerlogix.com/products/cpudirector/index.html]CPU Director 1.4f1[/url]
[url=http://plx.onlinesupportdesk.net/?_a=downloads]CPU Director 1.5f2[/url][/b]</description>
 <pubDate>Wed, 02 Jun 2004 13:50:13 -0700</pubDate>
</item>
<item>
 <title>How to Use IRC</title>
 <link>http://www.applefritter.com/node/2601</link>
 <description>[h1]Downloading a client[/h1]

To join Applefritter IRC, first download a client.  A few Mac OS X clients to choose from are:

[url=http://colloquy.info/]Colloquy[/url]
[url=http://www.ircle.com/]Ircle[/url]
[url=http://www.snak.com/]Snak[/url]
[url=http://xchataqua.sourceforge.net/]X-Chat Aqua[/url]

IRC software for other platforms:

Mac OS Classic: [url=http://www.shadowirc.com/]ShadowIRC[/url]
Newton: [url=http://www.tactile.com/chatBuddy.html]ChatBuddy[/url]
Apple IIgs: [url=http://www.ninjaforce.com/]Samurai IRC[/url]
BeOS PPC: [url=http://classic.tucows.com/beos/preview/4460.html]Birch[/url]
BeOS Intel: [url=http://classic.tucows.com/beos/preview/4462.html]Felix[/url]
Linux: [url=http://www.xchat.org/]xchat[/url]
Amiga: [url=http://www.vapor.com/amirc/]AmIRC[/url]
Atari ST: [url=http://www.bright.net/~gfabasic/html/atarirc.htm]AtarIRC[/url]
PalmOS: [url=http://epix.pda.tucows.com/palm/preview/34464.html]PalmIRC[/url]
EPOC: [url=http://epix.pda.tucows.com/epoc/preview/11483.html]nICQ[/url]
OS/2: [url=http://www.os2ss.com/select/internet/chat/ezirc.html]EZ IRC[/url]
Windows: [url=http://www.mirc.com/]mIRC[/url]

[h1]Connecting to Rizon[/h1]

Now that you've installed your IRC client, you need to connect to a Rizon IRC server.  A complete list of servers is available here.  A web interface is also available.

The recommended server is irc.rizon.net, port 7000.  Enter this information into your irc client, along with your desired nickname.  Connect.

Once the client has connected, type "/join #applefritter" in the input box to enter the channel.

For more information, see the [url=http://www.irchelp.org/]Internet Relay Chat Help Archive[/url].</description>
 <pubDate>Sun, 16 May 2004 18:25:28 -0700</pubDate>
</item>
<item>
 <title>Learning to Count in Binary</title>
 <link>http://www.applefritter.com/node/408</link>
 <description>Learning to Count in Binary

We've all seen the stereotypical movie computer person. They watch a screen of binary scroll by, apparently interpeting it and making so much sense of it they only have to glance up every few seconds to figure out whats going on. Not gonna happen.

Binary is a number system, just like Base 10, the number system you or I count in. The difference is just the placement of the numbers. Not to mention, that while our number system has 10 digits (0-9) the base 2 number system only has two digits. These are one and zero.

We've also heard people say "Machine Language" in referance to binary. And its true. Computers talk in numbers, and since a digital computer only interpets two numbers, base two would seem to be the good choice.

In binary, we count right to left as we add up a number to become our number in base 10. Each number, from right to left is worth twice as much as the last one was.

For example, 1 = 1, 10 = 2, 100 = 4, etc. And when the number doesn't go evenly into it, we use two or more ones. Most computers use 8 bit, or number codes for commands.

To illustrate this, we'll be doing a few numbers, just as examples:

5 = 00000101

8 = 00001000

7 = 00000111

etc.

Please note, if you have a number larger than you can do in 8 numbers, you can expand it farther.</description>
 <pubDate>Sat, 24 Jan 2004 12:53:02 -0800</pubDate>
</item>
<item>
 <title>When Corruption Kills - Backing Up Your Data</title>
 <link>http://www.applefritter.com/node/403</link>
 <description>[i]I recently had the pleasure of typesetting sixteen pages. These pages contained names, I.D. numbers, owners names/addresses, as well as several other pieces of data about dogs. After two days of deciphering non-standardized forms to find the information, I came to work expecting to fix any mistakes that had come up in the proof reading and opened the file.

This particular file was divided into four sections, and as they had to be done quickly, I was supposed to print off each section as I finished it. Starting with the longest section I noticed it had not printed the last page. When I checked, I found the last page was missing! I knew that it was there (or had been only a few minutes ago) so I shut down the program, expecting to open it up with my saved version of the file.

The file was corrupted.

I didn't have a backup.

With help, we managed to get it done again by the end of the day (working off the proofed sheets, eliminating the work of finding the info) and the book got out on schedule, at greater cost to the company.[/i]

Backing up is simple if you follow a few easy steps:
[list][*][b]Automated Backups[/b] - Many programs provide an "auto save" feature, which will save your work, even if you don't hit the save command, every few minutes. With one of these, you can generally choose to store the last few copies of your work, in the case that you made a major change and decided that you didn't like it.
[*][b]Save As[/b] - Almost every program provides a "Save As" command, which saves a copy of your work. In instances where there is not an auto save, I generally keep two copies of the file. One with the real name, on with the real name and "(backup)"
[*][b]Nightly Backups[/b] - If the file isn't too large for a disk, and the work is important, save a copy onto a disk every night. Hard drives can go down, and it always helps to be able to work on another computer if yours must be taken away for service.
[*][b]Long Term Backups[/b] - Many people backup their documents every week or every month. This is a good precaution, as you can not only delete those documents off your hard drive (assuming the backup will remain intact) but you can also keep a fresh copy in the even that you have to call it up in six months, and the original has been deleted/corrupted. CD's or tape backup drives are good for this use.[/list]</description>
 <pubDate>Fri, 23 Jan 2004 19:35:19 -0800</pubDate>
</item>
</channel>
</rss>
