<?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: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:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Mind Mining Medium</title>
	
	<link>http://tech.karbassi.com</link>
	<description>A repository of technological knowledge obtained by Ali Karbassi</description>
	<pubDate>Wed, 13 May 2009 05:49:11 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/karbassi/tech" type="application/rss+xml" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item>
		<title>How To FULLY Disable Spotlight in Leopard</title>
		<link>http://feedproxy.google.com/~r/karbassi/tech/~3/r8S3Dd1VqyA/</link>
		<comments>http://tech.karbassi.com/2009/05/12/how-to-fully-disable-spotlight-in-leopard/#comments</comments>
		<pubDate>Wed, 13 May 2009 03:42:29 +0000</pubDate>
		<dc:creator>Ali Karbassi</dc:creator>
		
		<category><![CDATA[How To]]></category>

		<category><![CDATA[OS X]]></category>

		<category><![CDATA[launchctl]]></category>

		<category><![CDATA[mac]]></category>

		<category><![CDATA[spotlight]]></category>

		<guid isPermaLink="false">http://tech.karbassi.com/?p=116</guid>
		<description><![CDATA[
Warning: This is changing system settings that may or may not be attached to other tools. After an extensive search on the internet, one of these tools affected by the following steps is TimeMachine/TimeCapsule. If you are using them, I would not follow these steps. Rule of thumb: if you think it will mess up [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://tech.karbassi.com/files/2009/05/extra-spotlight-150x150.png" alt="extra-spotlight" width="150" height="150" class="alignright size-thumbnail wp-image-122" /></p>
<p class="note"><strong>Warning:</strong> This is changing system settings that may or may not be attached to other tools. After an extensive search on the internet, one of these tools affected by the following steps is <a href="http://www.apple.com/macosx/features/timemachine.html">TimeMachine</a>/<a href="http://www.apple.com/timecapsule/">TimeCapsule</a>. If you are using them, I would <em>not</em> follow these steps. Rule of thumb: if you think it will mess up your system and you don&#8217;t want to worry about that, don&#8217;t do it.</p>
<h3>Quick way</h3>
<p>To disable:</p>
<pre class="brush: bash; light: true;">
sudo launchctl unload /System/Library/LaunchDaemons/com.apple.metadata.mds.plist
sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.metadata.mds.plist
launchctl unload /System/Library/LaunchAgents/com.apple.Spotlight.plist
sudo launchctl unload -w /System/Library/LaunchAgents/com.apple.Spotlight.plist
</pre>
<p>To re-enable:</p>
<pre class="brush: bash; light: true;">
sudo launchctl load /System/Library/LaunchDaemons/com.apple.metadata.mds.plist
sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.metadata.mds.plist
launchctl load /System/Library/LaunchAgents/com.apple.Spotlight.plist
sudo launchctl load -w /System/Library/LaunchAgents/com.apple.Spotlight.plist
</pre>
<h3>Explaination</h3>
<ol>
<li>Stop and disable the background server:
<ul>
<li>Kill the Daemon:
<pre class="brush: bash; light: true;">
sudo launchctl unload /System/Library/LaunchDaemons/com.apple.metadata.mds.plist
sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.metadata.mds.plist
</pre>
</li>
<li>Re-enable the Daemon:
<pre class="brush: bash; light: true;">
sudo launchctl load /System/Library/LaunchDaemons/com.apple.metadata.mds.plist
sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.metadata.mds.plist
</pre>
</li>
</ul>
</li>
<li>Stop and disable the spotlight application itself:
<ul>
<li>Kill the Agent:
<pre class="brush: bash; light: true;">
launchctl unload /System/Library/LaunchAgents/com.apple.Spotlight.plist
sudo launchctl unload -w /System/Library/LaunchAgents/com.apple.Spotlight.plist
</pre>
</li>
<li>Re-enable the Agent:
<pre class="brush: bash; light: true;">
launchctl load /System/Library/LaunchAgents/com.apple.Spotlight.plist
sudo launchctl load -w /System/Library/LaunchAgents/com.apple.Spotlight.plist
</pre>
</li>
</ul>
</ol>
<p>You may get an error on the last command; just ignore it.</p>
<h3>What it does</h3>
<ul>
<li>We stop the process from running.
<pre class="brush: bash; light: true;">sudo launchctl unload /System/Library/LaunchDaemons/com.apple.metadata.mds.plist</pre>
</li>
<li>The following line tells the system to fully disable it.
<pre class="brush: bash; light: true;">sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.metadata.mds.plist</pre>
</li>
<li>Now we need to stop the agent for the user and everyone else.
<pre class="brush: bash; light: true;">launchctl unload /System/Library/LaunchAgents/com.apple.Spotlight.plist
sudo launchctl unload -w /System/Library/LaunchAgents/com.apple.Spotlight.plist</pre>
</li>
</ul>
<h3>The re-enable Spotlight back again:</h3>
<ul>
<li>If you need to re-enable the process, you can run the following two lines.
<pre class="brush: bash; light: true;">sudo launchctl load /System/Library/LaunchDaemons/com.apple.metadata.mds.plist
sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.metadata.mds.plist</pre>
</li>
<li>The following two lines re-enable the Spotlight agent.
<pre class="brush: bash; light: true;">launchctl load /System/Library/LaunchAgents/com.apple.Spotlight.plist
sudo launchctl load -w /System/Library/LaunchAgents/com.apple.Spotlight.plist</pre>
</li>
</ul>
<p>The reason you get the error is that you are effectively executing the command as root, but the root user hasn&#8217;t any running instance of Spotlight. On the other hand, only the root user is able to disable the automatic start of Spotlight. Thus the need for the sudo command. </p>
<p>Done!</p>
<p>There&#8217;s no need to reboot your computer after following these steps.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/karbassi/tech?a=r8S3Dd1VqyA:hlgClQtdgZE:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/karbassi/tech?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/karbassi/tech?a=r8S3Dd1VqyA:hlgClQtdgZE:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/karbassi/tech?i=r8S3Dd1VqyA:hlgClQtdgZE:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/karbassi/tech?a=r8S3Dd1VqyA:hlgClQtdgZE:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/karbassi/tech?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/karbassi/tech/~4/r8S3Dd1VqyA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://tech.karbassi.com/2009/05/12/how-to-fully-disable-spotlight-in-leopard/feed/</wfw:commentRss>
		<feedburner:origLink>http://tech.karbassi.com/2009/05/12/how-to-fully-disable-spotlight-in-leopard/</feedburner:origLink></item>
		<item>
		<title>Automatically Block Facebook Applications Updated!</title>
		<link>http://feedproxy.google.com/~r/karbassi/tech/~3/dSCcmXPNQTA/</link>
		<comments>http://tech.karbassi.com/2009/01/22/automatically-block-facebook-applications-updated/#comments</comments>
		<pubDate>Thu, 22 Jan 2009 20:40:31 +0000</pubDate>
		<dc:creator>Ali Karbassi</dc:creator>
		
		<category><![CDATA[Greasemonkey]]></category>

		<guid isPermaLink="false">http://tech.karbassi.com/?p=71</guid>
		<description><![CDATA[Two years later, I decided to take a look at my old, old, OLD Greasemonkey script to see if it was still working. This is after two minor updates on Facebook and one major update that changed the whole design and structure.
Surprisingly, the script works exactly like it should. I made one minor update, but [...]]]></description>
			<content:encoded><![CDATA[<p>Two years later, I decided to take a look at my old, old, OLD Greasemonkey script to see if it was still working. This is after two minor updates on Facebook and one <em>major</em> update that changed the whole design and structure.</p>
<p>Surprisingly, the script works exactly like it should. I made one minor update, but after many tests, it works for me.</p>
<p><strong>If you have any suggestions, comments, or concerns, be sure to comment below.</strong> If you find any situations where it doesn&#8217;t work, please leave a comment and I will check it out.</p>
<p class="note"><strong>To use this script</strong>, you need <a href="https://addons.mozilla.org/en-US/firefox/addon/748" title="Greasemonkey">Greasemonkey</a> addon. Once you have it, just go here and click install: <a href="http://userscripts.org/scripts/show/12393" title="Auto-Block Facebook Apps 1.0">http://userscripts.org/scripts/show/12393</a>.</p>
<p>Here&#8217;s the code:</p>
<pre class="brush: js;">
// Auto-Block Facebook Apps
//
// Version 1.2
//
// Date Written: 2007-09-18
// Last Modified: 2009-01-22 02:18 PM (14:18)
//
// (c) Copyright 2007 Ali Karbassi.
// Released under the GPL license
// http://www.gnu.org/copyleft/gpl.html
//
// --------------------------------------------------------------------
//
// This is a Greasemonkey user script.
//
// To install, you need Greasemonkey: http://greasemonkey.mozdev.org/
// Then restart Firefox and revisit this script.
// Under Tools, there will be a new menu item to &quot;Install User Script&quot;.
// Accept the default configuration and install.
//
// To uninstall, go to Tools/Manage User Scripts,
// select &quot;Auto-Block Facebook Apps&quot;, and click Uninstall.
//
// --------------------------------------------------------------------
//
// WHAT IT DOES:
// After the facebook profile page is loaded, it finds all the
// applications that your friends have invited you to and blocks them.
// Do not worry though, you can go to
// http://facebook.com/privacy.php?view=platform&amp;tab=all and unblock
// them
//
// NOTE: This does not alter, delete, edit, add, or anything else to
//       your facebook profile. Just remove or disable this script and
//       everything will be displayed the same as it used to
// --------------------------------------------------------------------
//
// ==UserScript==
// @name        Auto-Block Facebook Apps 1.2
// @author      Ali Karbassi
// @namespace   http://www.karbassi.com
// @description This script will block app invites sent to you by friends.
//              After the facebook profile page is loaded, it finds all the
//              applications that your friends have invited you to and blocks
//              them. Do not worry though, you can go
//              http://facebook.com/privacy.php?view=platform&amp;tab=all and
//              unblock them.
// @include     http://*facebook.tld/home.php*
// @include     http://*facebook.tld/reqs.php*
// ==/UserScript==
// Find Subdomain
var subDomain = getSubDomain();

// Get links on the front page/request page
var anchors = document.getElementsByTagName('a');
var appReqExp = /reqs\.php#confirm_(\d*)_(.*)/;

for (var i = 0; i &lt; anchors.length; i++) {
  if (appReqExp.exec(anchors[i].href)) {
    prep(RegExp.$1, anchors[i]);
  }
}

// Remove any notifications about apps.
removeNotifications();

// Functions
// PLEASE DO NOT TOUCH IF YOU HAVE NO IDEA WHAT YOU'RE DOING.
// YOU MIGHT BREAK IT.
// Prepares everything. When things are correct, it calls BlockApp.
function prep(appID, appNode) {
  var postformMatch = /name=&quot;post_form_id&quot; value=&quot;(\w+)&quot;/;
  var post_form_id = 0;

  GM_xmlhttpRequest({
    method: 'GET',
    url: 'http://www.facebook.com/apps/block.php?id=' + appID
         + '&amp;action=block',
    headers: {
      'User-Agent': window.navigator.userAgent,
      'Accept': 'text/html',
    },
    onload: function(responseDetails) {
      var searchString = 'This will not prevent you from seeing';
      if( (responseDetails.status == 200)
          &amp;&amp; (responseDetails.responseText.indexOf(searchString) != -1) ) {

        // Show that we are working on it.
        appNode.removeAttribute('href');
        appNode.innerHTML = 'Reading confirmation page...';

        postformMatch.exec(responseDetails.responseText);

        // Calls function to block the app
        BlockApp(RegExp.$1, appID, appNode);
      }
    }
  });
}

function BlockApp(post_form_id, appID, appNode) {
  GM_xmlhttpRequest({
    method: 'POST',
    url: 'http://' + subDomain + 'facebook.com/apps/block.php?id=' + appID
         + '&amp;action=block',
    headers: {
      'User-Agent': window.navigator.userAgent,
      'Accept': 'text/xml',
      'Content-Type': 'application/x-www-form-urlencoded',
    },
    data: 'post_form_id=' + post_form_id + '&amp;save=1',
    onload: function(responseDetails) {
      if (responseDetails.status == 200) {
        appNode.innerHTML = 'App Blocked!'
        appNode.href = 'http://facebook.com/reqs.php';
      }
    },
    onerror: function(responseDetails) {
      appNode.removeAttribute('href');
      appNode.innerHTML = 'App Block failed!';
    }
  });
}

function removeNotifications() {
  var inputs = document.getElementsByTagName('input');
  for (var i = 0; i &lt; inputs.length; i++) {
    if (inputs[i].value == 'Ignore') {
      for (var j = 0; j &lt; inputs[i].attributes.length; j++) {
        if ( (inputs[i].attributes[j].nodeName == 'onclick') &amp;&amp;
        (inputs[i].attributes[j].nodeValue.indexOf('click_add_platform_app') != -1) ) {
          var js = (inputs[i].attributes[j].nodeValue).split(' ');
          js.shift();
          js = js.join(' ');
          location.href = 'javascript:' + js;
        }
      }
    }
  }
}

function getSubDomain() {
  var subDomainRegExp = /http:\/\/(.*\.)facebook\.com/;
  var subDomain = '';
  if (subDomainRegExp.exec(document.location) != 0) {
    subDomain = RegExp.$1;
  }
  return subDomain;
}
</pre>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/karbassi/tech?a=dSCcmXPNQTA:mGvoP8Mn658:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/karbassi/tech?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/karbassi/tech?a=dSCcmXPNQTA:mGvoP8Mn658:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/karbassi/tech?i=dSCcmXPNQTA:mGvoP8Mn658:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/karbassi/tech?a=dSCcmXPNQTA:mGvoP8Mn658:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/karbassi/tech?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/karbassi/tech/~4/dSCcmXPNQTA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://tech.karbassi.com/2009/01/22/automatically-block-facebook-applications-updated/feed/</wfw:commentRss>
		<feedburner:origLink>http://tech.karbassi.com/2009/01/22/automatically-block-facebook-applications-updated/</feedburner:origLink></item>
		<item>
		<title>Twitter style text counter in jQuery</title>
		<link>http://feedproxy.google.com/~r/karbassi/tech/~3/7-U1M4W1-JI/</link>
		<comments>http://tech.karbassi.com/2008/10/27/twitter-style-text-counter-in-jquery/#comments</comments>
		<pubDate>Mon, 27 Oct 2008 14:48:13 +0000</pubDate>
		<dc:creator>Ali Karbassi</dc:creator>
		
		<category><![CDATA[Javascript]]></category>

		<guid isPermaLink="false">http://tech.karbassi.com/?p=58</guid>
		<description><![CDATA[
I. Love. jQuery. I can&#8217;t say how much I love jQuery because some people might get jealous because jQuery might out-rank them in the scale of 0 to jAWESOME!
Enough drooling and leg humping. In a recent project, we needed a counter to display the number of characters the user had left in a text area. [...]]]></description>
			<content:encoded><![CDATA[<div style="float:right"><img src="http://farm4.static.flickr.com/3163/2866119475_8f2d14237b_m.jpg" border="0" alt="Punch Chart on Raphaël" /></div>
<p>I. Love. jQuery. I can&#8217;t say how much I love jQuery because some people might get jealous because jQuery might out-rank them in the scale of 0 to jAWESOME!</p>
<p>Enough drooling and leg humping. In a recent project, we needed a counter to display the number of characters the user had left in a text area. Nothing to hard or interesting. This sort of thing has been out there for years. The problem is, all the scripts I&#8217;ve found would automatically truncate the text. That is, if the user has 100 characters and they enter 105 characters, the 101 to 105th characters are gone. This is very annoying!</p>
<p>Rather than control the user and annoy them, we wanted to take the method Twitter does; Warn the user, don&#8217;t allow them to submit until the warning is fixed. That is, if the text counter is negative, they cannot submit, but once it&#8217;s 0 or greater, it&#8217;s fair game.</p>
<p>To add to the fun, we needed visual cues, i.e. colours! After some search and no luck, I sat down and wrote this little beauty. <em>It&#8217;s version 1 so be nice.</em></p>
<p>You can always grab a copy here: <a href="http://karbassi.com/scripts/javascript/twitterCounter.js">http://karbassi.com/scripts/javascript/twitterCounter.js</a> or <a href="http://plugins.jquery.com/project/twittercounter">http://plugins.jquery.com/project/twittercounter</a></p>
<pre class="brush: js;">
/*
 * twitterCounter
 *
 * Displays a counter with the remaining text.
 *
 * Example:
 *  $('#description').twitterCounter(
 *  {
 *     limit: 140,
 *     counter: '#textcounter',
 *
 *     okSize: 140,
 *     okStyle: '.ok',
 *
 *     watchSize: 20,
 *     watchStyle: '.watch',
 *
 *     warningSize: 10,
 *     warningStyle: '.warning',
 *
 *     errorSize: 0,
 *     errorStyle: '.error',
 *  });
 *
 * $Version: 2008-10-24
 * Copyright (c) 2008 Ali Karbassi
 * ali.karbassi@gmail.com
 */
jQuery.fn.twitterCounter = function(options) {
   var curSize = $(this).val().length;
   var charsLeft = options['limit'] - curSize;
   var types = ['ok', 'watch', 'warning', 'error'];
   var x = {};
   $.each(types,
   function() {
      var el = this.toString();
      x[el] = {
         'Max': options[el + 'Size'],
         'Style': options[el + 'Style'].substring(0, 1) == '.' || options[el + 'Style'].substring(0, 1) == '#' ? options[el + 'Style'].substring(1, options[el + 'Style'].length) : options[el + 'Style'],
         'Type': options[el + 'Style'].substring(0, 1) == '.' ? 'class': 'id'
      }
   });
   for (var i = 0; i &lt; types.length; i++) {
      var el = types[i].toString(); // Last Element check
      if (i + 1 &lt; types.length) {
         var nextEl = types[i + 1].toString();
         if (charsLeft &gt; x[nextEl]['Max'] &amp;&amp; charsLeft &lt; x[el]['Max'] + 1) {
            clean();
         }
      } else {
         if (charsLeft &lt; x[el]['Max']) {
            clean();
         }
      }
   }
   $(options['counter']).text(charsLeft); // Add an event so the counter updates when the user types.
   $(this).one('keyup',
   function() {
      $(this).twitterCounter(options);
   });
   function clean() {
      if (x[el]['Type'] == 'class') {
         $.each(types,
         function() {
            var temp = this.toString();
            if ($(options['counter']).hasClass(temp)) {
               $(options['counter']).removeClass(temp);
            }
         });
         $(options['counter']).addClass(x[el]['Style']);
      } else {
         $(options['counter']).id(x[el]['Style']);
      }
   }
};
</pre>
<p><em>Photo credit: <a title="Dmitry Baranovskiy" href="http://www.flickr.com/photos/89943077@N00/2866119475/" target="_blank">Dmitry Baranovskiy</a></em></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/karbassi/tech?a=7-U1M4W1-JI:HWG769NnDsk:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/karbassi/tech?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/karbassi/tech?a=7-U1M4W1-JI:HWG769NnDsk:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/karbassi/tech?i=7-U1M4W1-JI:HWG769NnDsk:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/karbassi/tech?a=7-U1M4W1-JI:HWG769NnDsk:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/karbassi/tech?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/karbassi/tech/~4/7-U1M4W1-JI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://tech.karbassi.com/2008/10/27/twitter-style-text-counter-in-jquery/feed/</wfw:commentRss>
		<feedburner:origLink>http://tech.karbassi.com/2008/10/27/twitter-style-text-counter-in-jquery/</feedburner:origLink></item>
		<item>
		<title>Uninstall Inquisitor and/or Glims</title>
		<link>http://feedproxy.google.com/~r/karbassi/tech/~3/9N9RZn5wbqs/</link>
		<comments>http://tech.karbassi.com/2008/10/16/uninstall-inquisitor-andor-glims/#comments</comments>
		<pubDate>Thu, 16 Oct 2008 21:00:12 +0000</pubDate>
		<dc:creator>Ali Karbassi</dc:creator>
		
		<category><![CDATA[OS X]]></category>

		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://tech.karbassi.com/?p=52</guid>
		<description><![CDATA[
Recently I&#8217;ve given Glims a try. Even though it tries to combine what Inquisitor and Saft both do into one single free application, I was very disappointed in the ease of use and look.
Before trying Glims, I had to uninstall (remove) Inquisitor that was already running on my version of Webkit and Safari. To do [...]]]></description>
			<content:encoded><![CDATA[<div style="float:right"><img src="http://farm4.static.flickr.com/3192/2530972208_96ef7a4633_m.jpg" border="0" alt="Schoschie vs. Apple: 1 — 0"></div>
<p>Recently I&#8217;ve given <a href="http://www.machangout.com/">Glims</a> a try. Even though it <em>tries</em> to combine what Inquisitor and Saft both do into one single free application, I was very disappointed in the ease of use and look.</p>
<p>Before trying Glims, I had to uninstall (remove) <a href="http://www.inquisitorx.com/safari/">Inquisitor</a> that was already running on my version of <a href="http://www.webkit.org">Webkit</a> and Safari. To do this, I opened up terminal and typed the following commands (with my password that is):</p>
<pre class="brush: bash;">
sudo rm -rf /Library/InputManagers/Inquisitor/
sudo rm -rf /Library/Receipts/inquisitor*
sudo rm -rf ~/Library/Application\ Support/Inquisitor/
</pre>
<p>After couple hours of use, I wanted to switch back to Inquisitor, which meant that I had to remove Glims. To do that action, I pulled up terminal, yet again, and typed the follow:</p>
<pre class="brush: bash;">
sudo rm -rf /Library/InputManagers/Glims/
sudo rm -rf ~/Library/Application\ Support/Glims/
</pre>
<p>That should take care of everything, leaving my computer nice and clean.</p>
<p><cite>Photo credit: <a title="schoschie" href="http://www.flickr.com/photos/87569910@N00/2530972208/" target="_blank">schoschie</a></cite></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/karbassi/tech?a=9N9RZn5wbqs:JmxSS_N8iBk:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/karbassi/tech?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/karbassi/tech?a=9N9RZn5wbqs:JmxSS_N8iBk:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/karbassi/tech?i=9N9RZn5wbqs:JmxSS_N8iBk:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/karbassi/tech?a=9N9RZn5wbqs:JmxSS_N8iBk:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/karbassi/tech?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/karbassi/tech/~4/9N9RZn5wbqs" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://tech.karbassi.com/2008/10/16/uninstall-inquisitor-andor-glims/feed/</wfw:commentRss>
		<feedburner:origLink>http://tech.karbassi.com/2008/10/16/uninstall-inquisitor-andor-glims/</feedburner:origLink></item>
		<item>
		<title>Primes in Ruby</title>
		<link>http://feedproxy.google.com/~r/karbassi/tech/~3/MvAkbuTz-eM/</link>
		<comments>http://tech.karbassi.com/2008/09/10/primes-in-ruby/#comments</comments>
		<pubDate>Thu, 11 Sep 2008 04:54:10 +0000</pubDate>
		<dc:creator>Ali Karbassi</dc:creator>
		
		<category><![CDATA[Programming]]></category>

		<category><![CDATA[math]]></category>

		<category><![CDATA[prime]]></category>

		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://tech.karbassi.com/?p=50</guid>
		<description><![CDATA[
While working on some homework for a mathematics course, I ran into a problem; I needed a list of primes. I could manually produce a list of 10, maybe 20 primes but what&#8217;s the fun in that. Having my trusty MacBook near me, I loaded up TextMate and started to write a simple Ruby program [...]]]></description>
			<content:encoded><![CDATA[<div style="float:right"><a title="26/366 Discrete Mathematical Structures" href="http://www.flickr.com/photos/10324788@N03/2227014216/" target="_blank"><img src="http://farm3.static.flickr.com/2414/2227014216_7344bc05f5_m.jpg" border="0" alt="26/366 Discrete Mathematical Structures" /></a></div>
<p>While working on some homework for a mathematics course, I ran into a problem; I needed a list of primes. I could manually produce a list of 10, maybe 20 primes but what&#8217;s the fun in that. Having my trusty MacBook near me, I loaded up TextMate and started to write a simple Ruby program to produce primes.</p>
<p>After a few minutes, the code turned into something much bigger than I expected. Researching to see if my formulas were correct, I continued on to create a separate file for this class. The outcome produced this:</p>
<pre class="brush: ruby;">
class Primes
  attr_reader :primes

  def initialize(len = nil)
    return nil if len.nil?

    state = Numeric.new
    @primes = [2, 3]

    i = 4
    count = 0
    while count &lt; len.abs - 2
      (2..(Math.sqrt(i).ceil)).each do
         |x|
         state = true
         if (i.divmod(x)[1] == 0)
            state = false
            break
         end
      end

      if state
        @primes &lt;&lt; i
        count +=1
      end
      i += 1
    end

    return @primes
  end
end

p = Primes.new(10)
puts p.primes

# Output
# ------
# 2
# 3
# 5
# 7
# 11
# 13
# 17
# 19
# 23
# 29
</pre>
<p>I know this isn&#8217;t perfect, but it was a fun 20 minute side project. If you want to improve on it, just head over to my <a title="Ruby class to return primes." href="http://gist.github.com/10159">gist</a>.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/karbassi/tech?a=MvAkbuTz-eM:inwzDagPBBE:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/karbassi/tech?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/karbassi/tech?a=MvAkbuTz-eM:inwzDagPBBE:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/karbassi/tech?i=MvAkbuTz-eM:inwzDagPBBE:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/karbassi/tech?a=MvAkbuTz-eM:inwzDagPBBE:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/karbassi/tech?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/karbassi/tech/~4/MvAkbuTz-eM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://tech.karbassi.com/2008/09/10/primes-in-ruby/feed/</wfw:commentRss>
		<feedburner:origLink>http://tech.karbassi.com/2008/09/10/primes-in-ruby/</feedburner:origLink></item>
		<item>
		<title>Quickly, and efficiently, mass rename files in bash</title>
		<link>http://feedproxy.google.com/~r/karbassi/tech/~3/gqyAP6aKewE/</link>
		<comments>http://tech.karbassi.com/2008/06/18/quickly-and-efficiently-mass-rename-files-in-bash/#comments</comments>
		<pubDate>Wed, 18 Jun 2008 21:20:01 +0000</pubDate>
		<dc:creator>Ali Karbassi</dc:creator>
		
		<category><![CDATA[How To]]></category>

		<category><![CDATA[Linux]]></category>

		<category><![CDATA[OS X]]></category>

		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://tech.karbassi.com/?p=49</guid>
		<description><![CDATA[Quick tip for everyone who is using Mac OS X, Unix, or anything with bash. If you want to mass rename a bunch of files, there isn&#8217;t a simple way of doing it. Either you would have to do it manually1 or you could use this simple line of code.

ls ryan.* &#124; awk '{print(&#34;mv &#34;$1&#34; [...]]]></description>
			<content:encoded><![CDATA[<p>Quick tip for everyone who is using Mac OS X, Unix, or anything with bash. If you want to mass rename a bunch of files, there isn&#8217;t a simple way of doing it. Either you would have to do it manually<sup>1</sup> or you could use this simple line of code.</p>
<pre class="brush: bash;">
ls ryan.* | awk '{print(&quot;mv &quot;$1&quot; &quot;$1)}' | sed 's/ryan/steve/2' | /bin/sh
</pre>
<p>Let me explain it quickly. Let&#8217;s say you have a whole folder of files named ryan.*<sup>2</sup> and you want to rename them to steve.*.</p>
<p>The first part displays a list of files that match the wildcard of ryan.* then it is piped to the second part ( <code>awk '{print("mv "$1" "$1)}'</code> ). This part prints a list of commands such as <code>mv ryan.txt ryan.txt</code>.</p>
<p>Well, that&#8217;s close but you want to move ryan.txt to steve.txt, not itself. This is where the third part comes in. What <code>sed</code> does in this situation is replace <strong>any</strong> instance of ryan with steve. The last part runs the whole thing as a list of shell commands.</p>
<ol class="footnotes"><li id="footnote_0_45" class="footnote"><code>mv ryan.txt steve.txt</code></li><li id="footnote_1_45" class="footnote">Such as ryan.txt, ryan.gif, ryan.php, ryan.asp, etc</li></ol><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/karbassi/tech?a=gqyAP6aKewE:8YqzUTBeU0c:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/karbassi/tech?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/karbassi/tech?a=gqyAP6aKewE:8YqzUTBeU0c:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/karbassi/tech?i=gqyAP6aKewE:8YqzUTBeU0c:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/karbassi/tech?a=gqyAP6aKewE:8YqzUTBeU0c:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/karbassi/tech?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/karbassi/tech/~4/gqyAP6aKewE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://tech.karbassi.com/2008/06/18/quickly-and-efficiently-mass-rename-files-in-bash/feed/</wfw:commentRss>
		<feedburner:origLink>http://tech.karbassi.com/2008/06/18/quickly-and-efficiently-mass-rename-files-in-bash/</feedburner:origLink></item>
		<item>
		<title>CSS Font List</title>
		<link>http://feedproxy.google.com/~r/karbassi/tech/~3/BOakorgXSxA/</link>
		<comments>http://tech.karbassi.com/2008/05/27/css-font-list/#comments</comments>
		<pubDate>Wed, 28 May 2008 03:03:27 +0000</pubDate>
		<dc:creator>Ali Karbassi</dc:creator>
		
		<category><![CDATA[Design]]></category>

		<guid isPermaLink="false">http://tech.karbassi.com/?p=48</guid>
		<description><![CDATA[While designing a simple website for a friend, I noticed that I knew nothing about the different font families I could use. While I have tons of fonts on my computer, I can&#8217;t use those on the web1.
I did a quick Google search and found a small list and here it is for you.

&#8216;American Typewriter&#8217;, [...]]]></description>
			<content:encoded><![CDATA[<p>While designing a simple website for a friend, I noticed that I knew nothing about the different font families I could use. While I have tons of fonts on my computer, I can&#8217;t use those on the web<sup>1</sup>.</p>
<p>I did a quick Google search and found a small list and here it is for you.</p>
<hr />
<span style="font-family:'American Typewriter', 'Courier New', Courier, Monaco, mono">&#8216;American Typewriter&#8217;, &#8216;Courier New&#8217;, Courier, Monaco, mono</span><br />
<span style="font-family:'Arial Rounded MT Bold', Helvetica, Arial, sans-serif">&#8216;Arial Rounded MT Bold&#8217;, Helvetica, Arial, sans-serif</span><br />
<span style="font-family:Baskerville, Georgia, Garamond, 'Times New Roman', Times, serif">Baskerville, Georgia, Garamond, &#8216;Times New Roman&#8217;, Times, serif</span><br />
<span style="font-family:'Book Antiqua', Georgia, Garamond, 'Times New Roman', Times, serif">&#8216;Book Antiqua&#8217;, Georgia, Garamond, &#8216;Times New Roman&#8217;, Times, serif</span><br />
<span style="font-family:'Bookman Old Style', Georgia, Garamond, 'Times New Roman', Times, serif">&#8216;Bookman Old Style&#8217;, Georgia, Garamond, &#8216;Times New Roman&#8217;, Times, serif</span><br />
<span style="font-family:'Brush Script MT', 'Comic Sans', sans-serif">&#8216;Brush Script MT&#8217;, &#8216;Comic Sans&#8217;, sans-serif</span><br />
<span style="font-family:Chalkboard, 'Comic Sans', sans-serif">Chalkboard, &#8216;Comic Sans&#8217;, sans-serif</span><br />
<span style="font-family:Didot, Georgia, Garamond, 'Times New Roman', Times, serif">Didot, Georgia, Garamond, &#8216;Times New Roman&#8217;, Times, serif</span><br />
<span style="font-family:Futura, Impact, Helvetica, Arial, sans-serif">Futura, Impact, Helvetica, Arial, sans-serif</span><br />
<span style="font-family:'Gill Sans', 'Lucida Grande', 'Lucida Sans Unicode', Verdana, Helvetica, Arial, sans-serif">&#8216;Gill Sans&#8217;, &#8216;Lucida Grande&#8217;, &#8216;Lucida Sans Unicode&#8217;, Verdana, Helvetica, Arial, sans-serif</span><br />
<span style="font-family:'Helvetica Neue', Helvetica, Arial, sans-serif">&#8216;Helvetica Neue&#8217;, Helvetica, Arial, sans-serif</span><br />
<span style="font-family:'Hoefler Text', Garamond, Georgia, 'Times New Roman', Times, serif">&#8216;Hoefler Text&#8217;, Garamond, Georgia, &#8216;Times New Roman&#8217;, Times, serif</span><br />
<span style="font-family:'Lucida Grande', 'Lucida Sans Unicode', Lucida, Verdana, Helvetica, Arial, sans-serif">&#8216;Lucida Grande&#8217;, &#8216;Lucida Sans Unicode&#8217;, Lucida, Verdana, Helvetica, Arial, sans-serif</span><br />
<span style="font-family:'Marker Felt', 'Comic Sans' sans-serif">&#8216;Marker Felt&#8217;, &#8216;Comic Sans&#8217; sans-serif</span><br />
<span style="font-family:Myriad, Helvetica, Arial, sans-serif">Myriad, Helvetica, Arial, sans-serif</span><br />
<span style="font-family:Optima, 'Lucida Grande', 'Lucida Sans Unicode', Verdana, Helvetica, Arial, sans-serif">Optima, &#8216;Lucida Grande&#8217;, &#8216;Lucida Sans Unicode&#8217;, Verdana, Helvetica, Arial, sans-serif</span><br />
<span style="font-family:Palatino, 'Book Antiqua', Georgia, Garamond, 'Times New Roman', Times, serif">Palatino, &#8216;Book Antiqua&#8217;, Georgia, Garamond, &#8216;Times New Roman&#8217;, Times, serif</span><br />
<span style="font-family:Cochin, Georgia, Garamond, 'Times New Roman', Times, serif">Cochin, Georgia, Garamond, &#8216;Times New Roman&#8217;, Times, serif</span><br />
<span style="font-family:'Goudy Old Style', garamond, 'book antiqua', 'Times New Roman', Times, serif sequence">&#8216;Goudy Old Style&#8217;, garamond, &#8216;book antiqua&#8217;, &#8216;Times New Roman&#8217;, Times, serif sequence</span></p>
<hr />
<ol class="footnotes"><li id="footnote_0_44" class="footnote">Well, without creating images.</li></ol><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/karbassi/tech?a=BOakorgXSxA:osHdFihHG50:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/karbassi/tech?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/karbassi/tech?a=BOakorgXSxA:osHdFihHG50:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/karbassi/tech?i=BOakorgXSxA:osHdFihHG50:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/karbassi/tech?a=BOakorgXSxA:osHdFihHG50:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/karbassi/tech?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/karbassi/tech/~4/BOakorgXSxA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://tech.karbassi.com/2008/05/27/css-font-list/feed/</wfw:commentRss>
		<feedburner:origLink>http://tech.karbassi.com/2008/05/27/css-font-list/</feedburner:origLink></item>
		<item>
		<title>Safari 3.1.1 and Saft 10.0.7</title>
		<link>http://feedproxy.google.com/~r/karbassi/tech/~3/S6_2yAP7lJw/</link>
		<comments>http://tech.karbassi.com/2008/04/16/safari-311-and-saft-1007/#comments</comments>
		<pubDate>Thu, 17 Apr 2008 01:17:32 +0000</pubDate>
		<dc:creator>Ali Karbassi</dc:creator>
		
		<category><![CDATA[How To]]></category>

		<category><![CDATA[OS X]]></category>

		<guid isPermaLink="false">http://tech.karbassi.com/?p=46</guid>
		<description><![CDATA[
I have always used Webkit ever since switching to Safari as my general browser. Being that I&#8217;m always getting the newest build, I know what&#8217;s coming when Safari decides to upgrade.
Since Apple updated Safari from 3.1 to 3.1.1, Saft, a wonderful &#8220;addon/plugin/what-have-you&#8221;, breaks. I know Hao Li at haoli.dnsalias.com will be updating it pretty soon, [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.flickr.com/photos/48251447@N00/2419294985" title="View 'Saft needs to be updated to handle Safari 3.1.1' on Flickr.com"><img src="http://farm3.static.flickr.com/2023/2419294985_c777208f68.jpg" alt="Saft needs to be updated to handle Safari 3.1.1" border="0" width="450" /></a></p>
<p>I have always used <a href="http://webkit.org/">Webkit</a> ever since switching to <a href="http://www.apple.com/safari/">Safari</a> as my general browser. Being that I&#8217;m always getting the newest build, I know what&#8217;s coming when Safari decides to upgrade.</p>
<p>Since <a href="http://www.apple.com/support/downloads/safari311.html">Apple updated Safari from 3.1 to 3.1.1</a>, Saft, a wonderful &#8220;addon/plugin/what-have-you&#8221;, breaks. I know Hao Li at <a href="http://haoli.dnsalias.com">haoli.dnsalias.com</a> will be updating it pretty soon, but I have found a quick fix until that is done.</p>
<ol>
<li>Quit Safari.</li>
<li>Navigate to <tt>Applications/Saft.app</tt></li>
<li>Control click to show package contents.</li>
<li>Open bundle and go to <tt>Contents</tt>, then <tt>Resources</tt>, <tt>Saft.bundle</tt>, and <tt>Contents</tt>. You&#8217;re full path should be <tt>Applications/Saft.app/Contents/Resources/Saft.bundle/Contents</tt></li>
<li>Double click or open <tt>Info.plist</tt> in your favorite text editor.</li>
<li>Change <tt>SaftSupportedSafariBuild</tt> to <tt>5525.18</tt>. This is to match the current Safari version/build.
<p>It will then look like this:</p>
<pre>
&lt;key&gt;SaftSupportedSafariBuild&lt;/key&gt;
&lt;array&gt;
	&lt;string&gt;5525.18&lt;/string&gt;
&lt;/array&gt;
		</pre>
</p>
</li>
<li>Save and relaunch Safari.</li>
</ol>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/karbassi/tech?a=S6_2yAP7lJw:UKWEdRl_4Cw:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/karbassi/tech?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/karbassi/tech?a=S6_2yAP7lJw:UKWEdRl_4Cw:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/karbassi/tech?i=S6_2yAP7lJw:UKWEdRl_4Cw:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/karbassi/tech?a=S6_2yAP7lJw:UKWEdRl_4Cw:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/karbassi/tech?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/karbassi/tech/~4/S6_2yAP7lJw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://tech.karbassi.com/2008/04/16/safari-311-and-saft-1007/feed/</wfw:commentRss>
		<feedburner:origLink>http://tech.karbassi.com/2008/04/16/safari-311-and-saft-1007/</feedburner:origLink></item>
		<item>
		<title>How to run Adium (AIM, Yahoo, MSN, ICQ, and  GTalk)</title>
		<link>http://feedproxy.google.com/~r/karbassi/tech/~3/Bxrec7CY9wU/</link>
		<comments>http://tech.karbassi.com/2008/04/12/how-to-run-adium-aim-yahoo-msn-icq-and-gtalk/#comments</comments>
		<pubDate>Sun, 13 Apr 2008 03:25:11 +0000</pubDate>
		<dc:creator>Ali Karbassi</dc:creator>
		
		<category><![CDATA[OS X]]></category>

		<guid isPermaLink="false">http://tech.karbassi.com/?p=45</guid>
		<description><![CDATA[Being that not all locations allow all ports to be accessed through their gateway to the internet, sometimes you will run into problems in connecting to your IM programs such as iChat or, even better, Adium.1
Now, we know that all internet access points (WiFi spots, hotels, etc) will allow Port 80.2
So, we&#8217;re going to switch [...]]]></description>
			<content:encoded><![CDATA[<p>Being that not all locations allow all ports to be accessed through their gateway to the internet, sometimes you will run into problems in connecting to your <abbr title="Instant Messaging">IM</abbr> programs such as <a href="http://www.apple.com/macosx/features/ichat.html">iChat</a> or, even better, <a href="http://www.adiumx.com/">Adium</a>.<sup>1</sup></p>
<p>Now, we know that all internet access points (WiFi spots, hotels, etc) will allow Port 80.<sup>2</sup></p>
<p>So, we&#8217;re going to switch our Adium to connect through 80 and 443<sup>3</sup>.</p>
<p><a href="http://www.flickr.com/photos/48251447@N00/2408558009" title="View 'Adium AIM' on Flickr.com"><img src="http://farm3.static.flickr.com/2152/2408558009_f654227f92.jpg" alt="Adium AIM" border="0" width="450" /></a></p>
<p>Let&#8217;s start with the most common messenger, <abbr title="AOL Instant Messenger">AIM</abbr>. Set the <strong>port to 443</strong> and the server should be the default for your application. At the time of this it is <strong>login.oscar.aol.com</strong>.</p>
<p><a href="http://www.flickr.com/photos/48251447@N00/2409393304" title="View 'Adium YIM' on Flickr.com"><img src="http://farm4.static.flickr.com/3294/2409393304_908c130bab.jpg" alt="Adium YIM" border="0" width="450" /></a></p>
<p>For Yahoo, set the <strong>port to 80</strong> and login server to <strong>scs.msg.yahoo.com</strong>.</p>
<p><a href="http://www.flickr.com/photos/48251447@N00/2409393188" title="View 'Adium MSN' on Flickr.com"><img src="http://farm3.static.flickr.com/2101/2409393188_48bd4c8463.jpg" alt="Adium MSN" border="0" width="450" /></a></p>
<p>For <acronym title="The Microsoft Network">MSN</acronym>, set the <strong>port to 80</strong> and the login server to <strong>messenger.hotmail.com</strong>. Also check the &#8220;<strong>Connect via HTTP</strong>&#8221; box. This allows access through port 80.</p>
<p><a href="http://www.flickr.com/photos/48251447@N00/2409393356" title="View 'Adium GTalk' on Flickr.com"><img src="http://farm4.static.flickr.com/3192/2409393356_a32833511b.jpg" alt="Adium GTalk" border="0" width="450" /></a></p>
<p>For Google Talk, or I&#8217;d imagine any Jabber network, set the Transport Layer Security. Also be sure to check <strong>&#8220;Force old-style <abbr title="Secure Sockets Layer">SSL</abbr>&#8220;</strong> and <strong>&#8220;Require SSL/<acronym title="Transport Layer Security">TLS</acronym>&#8220;</strong>. If you check &#8220;Do strict certificate checks&#8221;, you will get a message box every time you try to load up Adium to accept a certificate. I have left this on, but I do know for a fact if you uncheck this, that message will not bother you again.</p>
<p><a href="http://www.flickr.com/photos/48251447@N00/2408558179" title="View 'Adium ICQ' on Flickr.com"><img src="http://farm4.static.flickr.com/3115/2408558179_9b734925fa.jpg" alt="Adium ICQ" border="0" width="450" /></a></p>
<p>Lastly, if you are still using ICQ<sup>4</sup>, you can set your <strong>port to 443</strong> and login server to <strong>login.oscar.aol.com</strong>. I wouldn&#8217;t suggest using ICQ anymore because it&#8217;s a pretty bad service. Check out the <a href="http://en.wikipedia.org/wiki/ICQ#Criticism">criticisms on wikipedia</a>.</p>
<p>Now, if you restart your Adium (or whatever client you are using), you should have connection to the IM protocols.</p>
<h3>Draw backs</h3>
<p>Some of the drawbacks to this method is that your data is being sent over an unsecure port, and therefore can be subject to any sniffers. If you are paranoid about your chats, I&#8217;d suggest using an online version such as <a href="http://www.meebo.com/">Meebo</a> which does go through HTTPS.</p>
<ol class="footnotes"><li id="footnote_0_41" class="footnote">The following steps should work for <a href="http://www.pidgin.im/">Pidgin</a>. I hate Trillian because it&#8217;s a memory hog. Just my thoughts.</li><li id="footnote_1_41" class="footnote">This is because it is the port most web servers output websites. You can see what other ports are used for on Wikipedia&#8217;s <a href="http://en.wikipedia.org/wiki/List_of_TCP_and_UDP_port_numbers">List of TCP and UDP port</a> numbers page.</li><li id="footnote_2_41" class="footnote">Secure HTTP, or HTTPS as most refer to it as</li><li id="footnote_3_41" class="footnote">Did you know it is an initialism on the phrase &#8220;I seek you&#8221; and is now owned by AOL?</li></ol><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/karbassi/tech?a=Bxrec7CY9wU:u8XtkNOcKvU:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/karbassi/tech?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/karbassi/tech?a=Bxrec7CY9wU:u8XtkNOcKvU:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/karbassi/tech?i=Bxrec7CY9wU:u8XtkNOcKvU:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/karbassi/tech?a=Bxrec7CY9wU:u8XtkNOcKvU:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/karbassi/tech?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/karbassi/tech/~4/Bxrec7CY9wU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://tech.karbassi.com/2008/04/12/how-to-run-adium-aim-yahoo-msn-icq-and-gtalk/feed/</wfw:commentRss>
		<feedburner:origLink>http://tech.karbassi.com/2008/04/12/how-to-run-adium-aim-yahoo-msn-icq-and-gtalk/</feedburner:origLink></item>
		<item>
		<title>Safari 3.1 and Pith Helmet</title>
		<link>http://feedproxy.google.com/~r/karbassi/tech/~3/8YQ5Bxmuxlk/</link>
		<comments>http://tech.karbassi.com/2008/03/19/safari-31-and-pith-helmet/#comments</comments>
		<pubDate>Thu, 20 Mar 2008 01:02:46 +0000</pubDate>
		<dc:creator>Ali Karbassi</dc:creator>
		
		<category><![CDATA[General]]></category>

		<category><![CDATA[How To]]></category>

		<category><![CDATA[OS X]]></category>

		<guid isPermaLink="false">http://tech.karbassi.com/2008/03/19/safari-31-and-pith-helmet/</guid>
		<description><![CDATA[Recently Apple updated their browser Safari to version 3.1. It does boast new features that us web developers love, but it also crashes some hacks we also love. Note that I&#8217;m not calling them &#8220;plug-ins&#8221;. Read the reasoning behind this.
Now, one of my favorite Safari hacks has been Pith Helmet and with the new update, [...]]]></description>
			<content:encoded><![CDATA[<p>Recently Apple updated their browser Safari to version 3.1. It does boast new features that us web developers love, but it also crashes some hacks we also love. Note that I&#8217;m not calling them &#8220;plug-ins&#8221;. Read the <a href="http://daringfireball.net/2007/10/un_in_unsupported">reasoning behind this</a>.</p>
<p>Now, one of my favorite Safari hacks has been Pith Helmet and with the new update, it is considered &#8220;broken.&#8221; <strong>Here&#8217;s how to fix it:</strong></p>
<ol>
<li>Quit Safari.</li>
<li>Navigate to <tt>/Library/Application Support/SIMBL/Plugins/PithHelmet.bundle.</tt></li>
<li>Control click to show package contents.</li>
<li>Open bundle and go to Contents.</li>
<li>Double click or open <tt>info.plist</tt> in your favorite text editor.</li>
<li>Change <tt>MaxBundleVersion</tt> to <tt>5525.13</tt>. This is to match the current Safari version/build.
<p>It will then look like this:</p>
<pre>
&lt;key&gt;MaxBundleVersion&lt;/key&gt;
&lt;string&gt;5525.13&lt;/string&gt;
		</pre>
</p>
</li>
<li>Save and relaunch Safari.</li>
</ol>
<p><span id="more-40"></span></p>
<p>Recently Apple updated their browser Safari to version 3.1. It does boast new features that us web developers love, but it also crashes some hacks we also love. Note that I&#8217;m not calling them &#8220;plug-ins&#8221;. Read the reasoning behind this.</p>
<p>Now, one of my favorite Safari hacks has been Pith Helmet and with the new update, it is considered &#8220;broken.&#8221; Here&#8217;s how to fix it.</p>
<ol>
<li>Quit Safari.</li>
<li>Navigate to <tt>/Library/Application Support/SIMBL/Plugins/PithHelmet.bundle.</tt></li>
<li>Control click to show package contents.</li>
<li>Open bundle and go to Contents.</li>
<li>Double click or open <tt>info.plist</tt> in your favorite text editor.</li>
<li>Change <tt>MaxBundleVersion</tt> to <tt>5525.13</tt>. This is to match the current Safari version/build.
<p>It will then look like this:</p>
<pre>
	MaxBundleVersion
	5525
		</pre>
</p>
</li>
<li>Save and relaunch Safari.</li>
</ol>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/karbassi/tech?a=8YQ5Bxmuxlk:TZjk58HFKD8:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/karbassi/tech?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/karbassi/tech?a=8YQ5Bxmuxlk:TZjk58HFKD8:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/karbassi/tech?i=8YQ5Bxmuxlk:TZjk58HFKD8:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/karbassi/tech?a=8YQ5Bxmuxlk:TZjk58HFKD8:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/karbassi/tech?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/karbassi/tech/~4/8YQ5Bxmuxlk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://tech.karbassi.com/2008/03/19/safari-31-and-pith-helmet/feed/</wfw:commentRss>
		<feedburner:origLink>http://tech.karbassi.com/2008/03/19/safari-31-and-pith-helmet/</feedburner:origLink></item>
	</channel>
</rss>
