<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <title>PingTrip</title>
    <link rel="alternate" type="text/html" href="http://www.pingtrip.com/" />
    <link rel="self" type="application/atom+xml" href="http://www.pingtrip.com/atom.xml" />
    <id>tag:www.pingtrip.com,2009-09-04://1</id>
    <updated>2009-09-04T20:25:34Z</updated>
    
    <generator uri="http://www.sixapart.com/movabletype/">Movable Type 4.31-en</generator>

<entry>
    <title>Installing Hacme Shipping on an XP Pro VMWare Image</title>
    <link rel="alternate" type="text/html" href="http://www.pingtrip.com/weblog/2009/09/installing-hacme-shipping-on-an-xp-pro-vmware-image" />
    <id>tag:www.pingtrip.com,2009://1.13</id>

    <published>2009-09-04T19:04:00Z</published>
    <updated>2009-09-04T20:25:34Z</updated>

    <summary>Hacme Shipping is a ColdFusion Web Application from the Foundstone, Inc series of vulnerable &quot;Hacme&quot; tools. As its name implies, Hacme Shipping is a mock Shipping application much like one you would find major on-line retailers using, except loaded with...</summary>
    <author>
        <name>Dave</name>
        
    </author>
    
        <category term="Security" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="penetrationtesting" label="Penetration Testing" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="security" label="Security" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="vulnerabilityassessment" label="Vulnerability Assessment" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://www.pingtrip.com/">
        <![CDATA[<p><strong><a href="http://www.foundstone.com/us/resources/proddesc/hacmeshipping.htm">Hacme Shipping</a></strong> is a ColdFusion Web Application from the Foundstone, Inc series of vulnerable "Hacme" tools. As its name implies, Hacme Shipping is a mock Shipping application much like one you would find major on-line retailers using, except loaded with insecure code (on purpose!). </p>

<p>So in continuing the theme of my previous post, which detailed the process of <a href="http://www.pingtrip.com/weblog/2008/09/installing-hacme-bank-on-xp-pro">Installing Hacme Bank</a>, this article will hopefully provide another easy to follow, step-by-step guide to installing and configuring the application.</p>
]]>
        <![CDATA[<p>While writing this walk-through all testing was done on a newly built XP Pro VMWare image with Service Pack 3 and all available updates applied via Windows Updater. You may experience inconsistencies if your lab machine differs from above.  </p>

<p><strong>Install Internet Information Services</strong></p>

<blockquote>
  <p>Hacme Shipping installs as a Virtual Directory under Internet Information Services so our first order of business is to get IIS installed.</p>
  
  <ol>
  <li><p>Place your Windows XP Pro CD into the drive.</p></li>
  <li><p>Run the <em>Add or Remove Programs</em> option found in the Control Panel.</p></li>
  <li><p>Select <em>Add/Remove Windows Components</em> from the left-hand side.</p></li>
  <li><p>In the <em>Windows Components Wizard</em> highlight <em>Internet Information Services (IIS)</em> and click the <strong>Details</strong> button.</p></li>
  <li><p>Put a check in the boxes next to: <em>Common Files, Internet Information Services Snap-In</em>, and <em>World Wide Web Service</em>.</p></li>
  <li><p>Highlight <em>World Wide Service</em> and click <strong>Details</strong>, then uncheck <em>Printers Virtual Directory</em> and click <strong>Ok</strong>.</p></li>
  <li><p>Click <strong>Ok</strong> again to close the IIS options window, and click <strong>Next</strong> to complete the install.</p></li>
  </ol>
  
  <p>When the install completes, click <strong>Finish</strong> and exit out of the Control Panel.</p>
</blockquote>

<p><strong>MySQL</strong></p>

<blockquote>
  <ol>
  <li><p>Download <a href="http://dev.mysql.com/downloads/mysql/">MySQL Community Server</a>; the <em>Windows Essentials</em> version is fine for this project. (Version 5.1.38 at time of writing)</p></li>
  <li><p>Launch the installer, and for 'Setup Type' choose Typical. When the installer reaches the "Wizard Completed" screen verify that the "Configure the MySQL Server now" box is checked and click finish.</p></li>
  <li><p>Choose "Detailed Configuration" and leave all settings as their defaults on each of the screens until you reach the option screen for TCP/IP Networking and SQL mode. On this screen <em>uncheck</em> "Enable Strict Mode" and click next.</p></li>
  <li><p>Continue installing with the default settings until you reach the "Windows Options" screen. On this screen put a check-mark in the "Include Bin directory in Windows PATH" option and click next.</p></li>
  <li><p>On the "Security Options" screen verify that "Modify Security Settings" is checked and enter 53cr37 for the root password (or anything else that you'll remember for later in this install) then click next.</p></li>
  <li><p>Finally press the execute button to perform the install and the click finish.</p></li>
  </ol>
</blockquote>

<p><strong>Hacme Shipping</strong></p>

<blockquote>
  <ol>
  <li><p>If you haven't done so already, download <a href="http://www.foundstone.com/us/resources/proddesc/hacmeshipping.htm">Hacme Shipping</a> from Foundstone, Inc website.</p></li>
  <li><p>Launch the MSI installer and accept all the default settings until you reach the 'Database Setup' page. In the password box enter the MySQL root password that you chose during the MySQL install step and click 'Next'. Once the install finishes click 'Close' to exit out.</p></li>
  </ol>
</blockquote>

<p><strong>ColdFusion</strong></p>

<blockquote>
  <ol>
  <li><p>Download  ColdFusion 8 Developer Edition [English | Windows] (registration required) from <a href="http://www.adobe.com/products/coldfusion/">Adobe's website</a> (Version 8.01 at time of writing)</p></li>
  <li><p>Run the installer and on the "Install Type" screen tick the checkbox for the "Developer Edition" option and click next.</p></li>
  <li><p>Accept the default settings for the remaining configuration screens. Be sure to enter an Administrsator password that you'll remember!</p></li>
  <li><p>When the installation is complete, click Done. This will launch an IE browser with the ColdFusion admin login page. Enter the password you chose during install and click login.<div class="Note"><b>Note:</b> 
   If a browser doesn't appear, you can access the admin page by manually going to:<br> <em>http://localhost/CFIDE/administrator.index.cfm</em>
  </div></p></li>
  <li><p>Configuration of the server will begin automatically, this takes a minute or two so be patient. When the setup is complete the page will refresh and an 'Ok' button will appear; click the 'Ok' button to continue configuring. </p></li>
  <li><p>In the left hand window click on "Data Sources" found under the Data &amp; Services section. On the "Add New Data Source" page enter "hacmeshipping" for DataSource Name and choose <em>MySQL (4/5)</em> from the Driver pulldown, then click 'Add'.</p></li>
  <li><p>On the next screen, in the "Database" field enter "hacmeshipping", for 'Server' enter "127.0.0.1", and leave the port set to 3306. The user will be "root" and enter the same password you chose when installing MySQL. Now click the 'Submit' button.</p></li>
  <li><p>You're now done installing and configuring the necessary components.</p></li>
  </ol>
</blockquote>

<p><strong>Testing Hackme Shipping</strong></p>

<blockquote>
  <p>You should now be able to launch a browser and access the application at <a href="http://127.0.0.1/HacmeShipping_MG/index.cfm">http://127.0.0.1/HacmeShipping_MG/index.cfm</a> using 'admin' and 'password' for credentials. If everything is working as it should you'll be logged into the application and can begin crafting you application based attacks!</p>
  
  <p>Also, be sure to read the Hacme Shipping User Guide that was installed with the application, you'll find a shortcut to it under the "Foundstone Free Tools" folder in the Start Menu. It provides a detailed description of each vulnerability, it's impact, and an example of how to exploit it. So don't read ahead too early or you'll ruin the fun of the discovery process!</p>
</blockquote>

<p><strong>Bonus! Remote Access to Hacme Shipping!</strong></p>

<blockquote>
  <p>Ok, so this <em>really</em> isn't that great a bonus (like with Hacme Bank) since it doesn't appear that Hacme Shipping has any built-in restrictions for remote access to the application. So all we need to do is configure the Windows Firewall to allow HTTP traffic through.</p>
  
  <ol>
  <li><p>Open the Windows Security Center located in the Control Panel and select <em>Windows Firewall</em> at the bottom of the panel.</p></li>
  <li><p>Click on the <em>Exceptions</em> tab.</p></li>
  <li><p>Click the <strong>Add Port</strong> button.</p></li>
  <li><p>For the <em>Name</em> field enter "IIS" and "80" for the <em>Port</em> field, then click <strong>Ok</strong> and <strong>Ok</strong> to make the change. You can now exit out of the control panel as well.</p></li>
  </ol>
  
  <p>Now open a browser on the host machine (or other machine on your network). And browse to the remote web instance: <em>http://[IP Address of the VM Image]/HacmeShipping_MG/index.cfm/</em></p>
</blockquote>

<p>Hack Fu!</p>
]]>
    </content>
</entry>

<entry>
    <title>Installing Hacme Bank on an XP Pro VMWare Image</title>
    <link rel="alternate" type="text/html" href="http://www.pingtrip.com/weblog/2008/09/installing-hacme-bank-on-xp-pro" />
    <id>tag:dev.pingtrip.com,2008://1.10</id>

    <published>2008-09-08T01:20:32Z</published>
    <updated>2009-11-25T15:40:49Z</updated>

    <summary>Whether you&apos;re evaluating a new vulnerability assessment tool, or looking to hone your application hacking skills, the Hacme Bank application by FoundStone, Inc offers a perfect &quot;victim&quot; for you to use as a testing target. Hacme Bank simulates an online...</summary>
    <author>
        <name>Dave</name>
        
    </author>
    
        <category term="Security" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="penetrationtesting" label="Penetration Testing" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="security" label="Security" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="vulnerabilityassessment" label="Vulnerability Assessment" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://www.pingtrip.com/">
        <![CDATA[<p>Whether you're evaluating a new vulnerability assessment tool, or looking to hone your application hacking skills, the <a href="http://www.foundstone.com/us/resources-free-tools.asp">Hacme Bank</a> application by FoundStone, Inc offers a perfect "victim" for you to use as a testing target.  Hacme Bank simulates an online banking website with the added bonus of having numerous vulnerabilities purposely designed in for you to discover.</p>

<p>In this write-up I'll walk you through the necessary steps for getting the application up and running on a Windows XP Professional VMWare image. I prefer this setup for a couple of reasons. First, if an unrecoverable error condition occurs (while hurling malicious packets at the application perhaps?) you can simply revert the Virtual Machine back to a known good state. Second, by positioning Hacme Back on an isolated machine I'm able to use my everyday penetration testing rig as the attack platform.</p>
]]>
        <![CDATA[<p>For this tutorial I'm assuming that you already have a newly built XP Pro VMWare image. The virtual machine I'll be working with is a fresh XP Pro install, with Service Pack 3 and all available updates applied via Windows Updater. Make sure you've also installed all the .Net packages and updates for version 1.1.</p>

<p><strong>Take a Snapshot</strong></p>

<blockquote>
  <p>I'm frequently reusing my XP Pro VM for exploit and vulnerability research, so VMWare's <em>Snapshot</em> functionality saves me from having to rebuild the OS image after every project. With that said, I'd suggest taking a "baseline" snapshot  of your VM (or make a backup copy if you're using VMPlayer) before we begin.</p>
</blockquote>

<p><strong>Install Internet Information Services</strong></p>

<blockquote>
  <p>Hacme Bank installs as a Virtual Directory under IIS, instead of being a standalone service like previous FoundStone applications, so step one is to get the web server installed.</p>
  
  <ol>
  <li><p>Place your Windows XP Pro CD into the drive.</p></li>
  <li><p>Run the <em>Add or Remove Programs</em> option found in the Control Panel.</p></li>
  <li><p>Select <em>Add/Remove Windows Components</em> from the left-hand side.</p></li>
  <li><p>In the <em>Windows Components Wizard</em> highlight <em>Internet Information Services (IIS)</em> and click the <strong>Details</strong> button.</p></li>
  <li><p>Put a check in the boxes next to: <em>Common Files, Internet Information Services Snap-In</em>, and <em>World Wide Web Service</em>.</p></li>
  <li><p>Highlight <em>World Wide Service</em> and click <strong>Details</strong>, then uncheck <em>Printers Virtual Directory</em> and click <strong>Ok</strong>.</p></li>
  <li><p>Click <strong>Ok</strong> again to close the IIS options window, and click <strong>Next</strong> to complete the install.</p></li>
  </ol>
  
  <p>When the install completes, click <strong>Finish</strong> and exit out of the Control Panel.</p>
  
  <p>Next, register the .NET Framework with the IIS service we just installed by opening a command window and running:</p>
</blockquote>

<pre><code>c:\windows\microsoft.net\framework\v1.1.4322\aspnet_regiis -i
</code></pre>

<p><strong>Microsoft SQL Server 2000 Desktop Engine (MSDE 2000)</strong></p>

<blockquote>
  <p>Download the MSDE 2000 Release A package from <a href="http://www.microsoft.com/downloads/details.aspx?familyid=413744D1-A0BC-479F-BAFA-E4B278EB9147&amp;displaylang=en">Microsoft's MSDE 2000 product page</a> and run the executable. Accept the defaults on any prompts that appear and allow the unpackager to complete.</p>
  
  <p>Open a command prompt and run the following command to install MSDE:</p>
</blockquote>

<pre><code>c:\MSDERelA\Setup SAPWD=HacmeBank SECURITYMODE=MIXED DISABLENETWORKPROTOCOLS=0
</code></pre>

<blockquote>
  <p>When the install completes, go ahead and start the service:</p>
</blockquote>

<pre><code>net start MSSQLSERVER
</code></pre>

<blockquote>
  <p>When it completes you can close the command window.</p>
</blockquote>

<p><strong>Install Hacme Bank</strong></p>

<blockquote>
  <p>Download and unpack the install files from <a href="http://www.foundstone.com/us/resources/proddesc/hacmebank.htm">FoundStone's website</a></p>
  
  <p>Install the website first by running the "Foundstone Hacme Bank Website Setup v2.0" executable. For the sake of simplicity accept all the default values during the install.</p>
</blockquote>

<div class="Warning"><b>Warning:</b> 
 It is important that you select "Trusted Connection" in the next step! This is a step that many readers miss.</div>

<blockquote>
  <p>Next, install the WebService files by running the "Foundstone Hacme Bank WebService Setup v2.0" executable. Again, accept the default settings until your reach the Database Setup screen. Here, select <em>Trusted Connection</em>, click <strong>Next</strong> and complete the install.</p>
</blockquote>

<p><strong>Test Your Install</strong></p>

<blockquote>
  <p>Open IE in the VM instance and browse to <em>http://localhost/HacmeBank_v2_Website/</em></p>
  
  <p>You might receive a warning about IE's Intranet Settings being disabled by default. Simply right-click on the Information Bar and select <em>Enable Intranet Settings</em>.</p>
  
  <p>The Hacme Bank homepage should load and you can test the back-end system by logging into the site using the user name <em>jv</em>, and password <em>jv789</em>. If everything is working correctly you will be presented with a welcome screen.</p>
</blockquote>

<p><strong>Bonus! Remote Access to Hacme Bank!</strong></p>

<blockquote>
  <p>First we need to modify the operating system's firewall to allow traffic to port 80.</p>
  
  <ol>
  <li><p>Open the Windows Security Center located in the Control Panel and select <em>Windows Firewall</em> at the bottom of the panel.</p></li>
  <li><p>Click on the <em>Exceptions</em> tab.</p></li>
  <li><p>Click the <strong>Add Port</strong> button.</p></li>
  <li><p>For the <em>Name</em> field enter "IIS" and "80" for the <em>Port</em> field, then click <strong>Ok</strong> and <strong>Ok</strong> to make the change. You can now exit out of the control panel as well.</p></li>
  </ol>
  
  <p>Now open a browser on the host machine (or other machine on your network). And browse to the remote web instance: <em>http://[IP Address of the VM Image]/HacmeBank_v2_Website/</em></p>
  
  <p>You'll be presented with a message informing you that the application, by default, will only accept requests from the local machine. This is by design due to the serious flaws that have been designed into Hacme Bank. Exposing the faux website to the internet would place the entire host at risk, so take extra care to keep it internal facing only.</p>
  
  <p>Open the website's config file, <em>C:\Inetpub\wwwroot\HacmeBank_v2_Website\web.config</em> in notepad and look for the <code>&lt;httpModules&gt;</code> section. (You should find it at the beginning of the config file.)</p>
  
  <p>To activate remote access we need to disable the loading of the HttpModule_onlyAllowLocalAccess module. Simply comment it out by wrapping the specific line in <code>&lt;!--  ...   --&gt;</code> tags as shown below:</p>
</blockquote>

<table class="FileListing">
	<tr class="fname">
		<td><b>File:</b> C:\Inetpub\wwwroot\HacmeBank_v2\Website\Web.config</td>
	</tr>
	<tr class="fcontent">
		<td><pre class="fcontentScroller">
...
&lt;!--
&lt;add name ="HttpModule_onlyAllowLocalAccess" type="HacmeBank_v2_Website.httpModules.HttpModule_onlyAllowLocalAccess,HacmeBank_v2_Website"/&gt;
--&gt;
...
</pre></td>
	</tr>
</table>

<blockquote>
  <p>Now make the same configuration change to the Web Service instance:</p>
</blockquote>

<table class="FileListing">
	<tr class="fname">
		<td><b>File:</b> C:\Inetpub\wwwroot\HacmeBank_v2_WS\Web.config</td>
	</tr>
	<tr class="fcontent">
		<td><pre class="fcontentScroller">
&lt;?xml version="1.0" encoding="utf-8" ?&gt;
&lt;configuration&gt;
  &lt;system.web&gt;
      &lt;httpModules&gt;
&lt;!--     
          &lt;add name ="HttpModule_onlyAllowLocalAccess" type="HacmeBank_v2_Website.httpModules.HttpModule_onlyAllowLocalAccess,HacmeBank_v2_WS"/&gt;
--&gt;
</pre></td>
	</tr>
</table>

<blockquote>
  <p>Now hit reload on your host's browser and instead of the default "Local access only" message, the website will be fully accessible. </p>
</blockquote>

<p>Happy Hacking!</p>
]]>
    </content>
</entry>

<entry>
    <title>Essential Software for OS X</title>
    <link rel="alternate" type="text/html" href="http://www.pingtrip.com/weblog/2008/08/essential-software-for-os-x" />
    <id>tag:dev.pingtrip.com,2008://1.4</id>

    <published>2008-08-02T00:10:11Z</published>
    <updated>2009-09-04T12:21:34Z</updated>

    <summary>This is a continuation of my collection of articles pertaining to dual-booting Leopard and Kubuntu on a MacBook Pro. This article is just a quick rundown of the software packages that are always installed on my laptop....</summary>
    <author>
        <name>Dave</name>
        
    </author>
    
        <category term="MacBook Pro" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="macbookpro" label="MacBook Pro" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="osx" label="OS X" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://www.pingtrip.com/">
        <![CDATA[<p>This is a continuation of my collection of articles pertaining to <a href="http://www.pingtrip.com/weblog/2008/04/leopard-and-kubuntu-on-a-macbook-pro">dual-booting Leopard</a> and <a href="http://www.pingtrip.com/weblog/2008/04/kubuntu-on-a-macbook-pro">Kubuntu on a MacBook Pro</a>. This article is just a quick rundown of the software packages that are always installed on my laptop.</p>
]]>
        <![CDATA[<p>Some packages are dependent on others and the order of installation has been reflected in the following list.</p>

<ol>
<li><p><strong>Firefox:</strong>
Like many of you, this is my browser of choice and is the first application I install. Grab the latest version from the <a href="http://www.mozilla.com/en-US/firefox/">Firefox download site</a>.</p>

<p>I also install the following Add-ons for FireFox: </p>

<ul>
<li><p><a href="http://www.foxmarks.com">Foxmarks</a>: This is an add-on that syncs your bookmarks across multiple computers. I highly recommend it.</p></li>
<li><p><a href="https://addons.mozilla.org/en-US/firefox/addon/1843">FireBug</a>: An invaluable tool whether I'm working on my website layout or performing a vulnerability assessment on a web application.</p></li>
</ul></li>
<li><p><strong>Xcode:</strong> 
Next up is Xcode, Apple's development environment for Mac OS X. I always grab the latest version from <a href="http://developer.apple.com/tools/download/">Apple's Developer Connection website</a>. Installation is straightforward, just launch the installer contained in the .dmg and follow the prompts.</p></li>
<li><p><strong>Xquartz:</strong>
Due to bugs that were introduced during software updates of the pre-packaged X11 app I ultimately chose to use <a href="http://xquartz.macosforge.org/trac/wiki">Xquartz</a> instead. So far I've been happy with the stability and reliability.</p></li>
<li><p><strong>iTerm:</strong>
iTerm is an open source (GPL) terminal emulator that I choose to use in place of the OS X Terminal utility. You can download it from their <a href="http://iterm.sourceforge.net/download.shtml">sourceforge site</a>, I normally grab the "recent binary build from CVS". </p></li>
<li><p><strong>MacPorts:</strong>
MacPorts (which I highly recommend) makes installing and maintaining numerous software packages a breeze. The project has a well written <a href="http://www.macports.org/install.php">MacPorts install guide</a></p>

<p>One minor issue I had was that the installer didn't properly edit my .profile to add the necessary directories to the PATH environment variable:</p>

<pre><code>MBP:~ dave$ echo $PATH
/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin
</code></pre>

<p>The quick fix is to edit your ~/.profile (or create one if it doesn't exist) and add the following line:</p>

<pre><code>export PATH=/opt/local/bin:/opt/local/sbin:$PATH
</code></pre>

<p>Restart a new terminal session to have the change take effect:</p>

<pre><code>MBP:~ dave$ echo $PATH
/opt/local/bin:/opt/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin
</code></pre></li>
<li><p><strong>Subversion:</strong>
This is an open-source revision control client and is necessary when I want to build applications from source. It can easily be installed via MacPorts.</p>

<pre><code>sudo port install subversion
</code></pre>

<div class="Update"><b>Update:</b> 
 08/01/2008 - Subversion failed to install for me and threw the following error, <code>configure: error: No awk program found</code>. It's a <a href="http://trac.macports.org/ticket/13053">known issue</a> and the workaround is simply to rerun the install command. </div></li>
<li><p><strong>BBEdit:</strong>
To date this is my favorite text editor for the Mac, even with it's higher price. You can grab a demo from <a href="http://www.barebones.com/products/bbedit/">their website</a> to decide if its for you before plunking down the cabbage.</p></li>
<li><p><strong>Snapz Pro X:</strong> <br />
http://www.ambrosiasw.com/utilities/snapzprox/</p></li>
<li><p><strong>Pixelmator:</strong>
http://www.pixelmator.com</p></li>
<li><p><strong>Chicken of the VNC:</strong> As the <a href="http://sourceforge.net/projects/cotvnc/">project's website</a> describes; <em>"Chicken of the VNC is a VNC client for Mac OS X"</em>. It has been very reliable for me.</p></li>
<li><p><strong>Tunnelblick:</strong> A great little graphical OpenVPN client for OS X. You can grab it from <a href="http://code.google.com/p/tunnelblick/">Tunnelblick's Google Code project page</a>.</p></li>
<li><p><strong>Remote Desktop Connection Client:</strong> For those times that I need to administrate a Windows machine <a href="http://www.apple.com/downloads/macosx/networking_security/remotedesktopconnectionclient.html">RDC 2.0</a> does the job.</p></li>
<li><p><strong>Cyberduck</strong></p></li>
</ol>
]]>
    </content>
</entry>

<entry>
    <title>Custom Tags with Markdown Plugin (Redux)</title>
    <link rel="alternate" type="text/html" href="http://www.pingtrip.com/weblog/2008/07/custom-tags-with-markdown-plug" />
    <id>tag:dev.pingtrip.com,2008://1.7</id>

    <published>2008-07-29T23:27:29Z</published>
    <updated>2009-09-04T12:21:34Z</updated>

    <summary>Awhile back I wrote about adding custom tags to the Markdown Plugin in which I created two new custom tags, a &quot;Note&quot; and a &quot;Warning&quot; block. This time around I&apos;m adding an additional custom Markdown tag which is an &quot;Update&quot;...</summary>
    <author>
        <name>Dave</name>
        
    </author>
    
        <category term="Movable Type" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="markdownplugin" label="Markdown Plugin" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="movabletype" label="Movable Type" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="perl" label="Perl" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://www.pingtrip.com/">
        <![CDATA[<p>Awhile back I wrote about <a href="http://www.pingtrip.com/weblog/2008/04/adding-custom-tags-to-markdown">adding custom tags to the Markdown Plugin</a> in which I created two new custom tags, a "Note" and a "Warning" block.  This time around I'm adding an additional custom Markdown tag which is an "Update" tag for when you want to signify that a portion of a previously published article has been altered.</p>
]]>
        <![CDATA[<p>The new "Update" tag, when used, creates a stylized box like so:</p>

<div class="Update"><b>Update:</b> 
 This is an example of an update box. </div>

<p>As outlined in my previous Customized Markdown Tags article the first step is to choose the Markdown syntax we want to represent the new style block. Once again I took the non-scientific approach and chose <code>~^</code> simply because the upward caret seemed like a fitting choice for "update".</p>

<p>For ease of implementation I'll be editing the code from my previous article so that it will support the "Update" tag in addition to the "Note" and "Warning" tags. In addition, I'll be renaming my custom subroutine to a more generic name, making any future additions a bit easier.</p>

<p>So my previous subroutine named <code>_DoNotesAndWarnings</code> will be renamed to <code>_DoCustomizedBlocks</code>.</p>

<pre><code>sub _DoCustomizedBlocks {
    my $text = shift;
    my $style = "";

    $text =~ s{
            [^`]~([\!\?\^])      # $1 = style class
            (.+?)           # $2 = Block text
            ~[\!\?\^]         # closing syntax
        }{
            if($1 eq '!') {
                $style = "Warning";
            } elsif ($1 eq '?') {
                $style = "Note";
            } elsif ($1 eq '^') {
                $style = "Update";
            }

            "&lt;div class=\"$style\"&gt;" .  _RunSpanGamut("&lt;b&gt;$style:&lt;/b&gt; \n" . $2)  .  "&lt;/div&gt;\n\n";
        }egsx;

    return $text;
}
</code></pre>

<p>Then the previous call to <code>_DoNotesAndWarnings()</code> in the <code>_RunBlockGamut()</code> subroutine will also need to be updated to reflect the name change. (The additional call to <code>HashHTMLBlocks()</code> that was added in the previous article will remain.)</p>

<pre><code>$text = _HashHTMLBlocks($text);

$text = _DoCustomizedBlocks($text);
$text = _HashHTMLBlocks($text);

$text = _FormParagraphs($text);

return $text;
}
</code></pre>

<p>The last step is to add the new tag's style to the Cascading Style Sheet:</p>

<pre><code>.Update {
    width: 90%;
    margin-left: 5%;
    padding: .2em .3em;
    background:#FFFFCC;
    color: #000000;
    border:solid 1px #DEDEDE;
    font-size: 100%;
}
</code></pre>

<p>Finally, to test the new tag use the newly defined syntax in an entry:</p>

<pre><code>~^ This is an Update Block ~^
</code></pre>

<p>Which produces:</p>

<div class="Update"><b>Update:</b> 
 This is an Update Block </div>

<p>Enjoy your new custom Markdown tags!</p>
]]>
    </content>
</entry>

<entry>
    <title>Adding Custom Tags to Markdown Plugin</title>
    <link rel="alternate" type="text/html" href="http://www.pingtrip.com/weblog/2008/04/adding-custom-tags-to-markdown" />
    <id>tag:dev.pingtrip.com,2008://1.5</id>

    <published>2008-04-11T21:58:32Z</published>
    <updated>2009-09-04T12:21:34Z</updated>

    <summary>In this article I&apos;ll be tinkering with one of Movable Types default plugins, John Gruber&apos;s Markdown, which is one of the text formatting choices available when working in the Entry Editor. The brilliance of Markdown comes from it&apos;s powerful translations,...</summary>
    <author>
        <name>Dave</name>
        
    </author>
    
        <category term="Movable Type" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="markdownplugin" label="Markdown Plugin" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="movabletype" label="Movable Type" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="perl" label="Perl" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://www.pingtrip.com/">
        <![CDATA[<p>In this article I'll be tinkering with one of Movable Types default plugins, <a href="http://daringfireball.net/projects/markdown/">John Gruber's Markdown</a>, which is one of the text formatting choices available when working in the Entry Editor.</p>

<p>The brilliance of Markdown comes from it's powerful translations, combined with it's utter ease of use. Granted, it's not your typical WYSIWYG and did pose a slight <em>comfort curve</em> (the time and effort it takes to adjust to a new way of editing; for me at least!), but after writing only three articles with it I'm hooked!</p>
]]>
        <![CDATA[<p>From it's website, <em>"Markdown allows you to write using an easy-to-read, easy-to-write plain text format, then convert it to structurally valid XHTML (or HTML)"</em>. This is accomplished by a number of impressive regular expressions which substitute the Markdown syntax with tags. As an example, this text in the Entry Editor:</p>

<pre><code>#Heading One
</code></pre>

<p>Is reformatted when the entry is published, to:</p>

<pre><code>&lt;H1&gt;Heading One&lt;/H1&gt;
</code></pre>

<p>Brilliant! So it didn't take long before I had to see if Markdown could be leveraged to handle custom syntax for my own defined style blocks. A quick review of the Markdown plugin code confirmed my hopes and in less than an hour I had two working custom Markdown tags.</p>

<p>The tags I added were inspired by the "Note" and "Warning" text blocks which are popular on many Wiki sites. They're great for drawing the readers attention to necessary information amidst the rest of an article's text.</p>

<p>The first step was to choose the Markdown syntax I wanted to represent each style block. Obviously, I needed something that would work with the plugin's default syntax, but I also wanted something easy to remember.  I ultimately chose <code>~!</code> for the Warning style and <code>~?</code> for the Note style. I really didn't have a scientific process for determining my choices (and they may change if I find conflicts in the future) but in my mind an exclamation point certainly relates to a warning, as a question mark denotes a thought or note. </p>

<p>Implementing the two new custom tags only required the modification of two files; Markdown.pl and screen.css.</p>

<p>First, I created a new subroutine in Markdown.pl called <code>_DoNotesAndWarnings</code>, which will handle the conversion of my custom syntax:</p>

<pre><code>sub _DoNotesAndWarnings {
    my $text = shift;

    $text =~ s{
            \n~([\!\?])      # $1 = style class
            (.+?)           # $2 = Block text
            ~[\!\?]         # closing syntax
        }{
            my $style = ($1 eq '!') ? "Warning" : "Note";
            "&lt;div class=\"$style\"&gt;" .  _RunSpanGamut("&lt;b&gt;$style:&lt;/b&gt; \n" . $2)  .  "&lt;/div&gt;\n\n";
        }egsx;

    return $text;
}
</code></pre>

<p>Next, I modified the <code>_RunBlockGamut()</code> subroutine to add a call to my new subroutine and I also added a second call to <code>_HashHTMLBlocks()</code>. This is so <code>&lt;p&gt;</code> tags aren't wrapped around my <code>&lt;div&gt;</code> blocks.</p>

<pre><code>$text = _HashHTMLBlocks($text);

$text = _DoNotesAndWarnings($text);
$text = _HashHTMLBlocks($text);

$text = _FormParagraphs($text);

return $text;
}
</code></pre>

<div class="Note"><b>Note:</b> 
 If you're running Movable Type under FastCGI then you'll need to force a plugin reload for the changes to take effect. This is done simply by updating the timestamp of the main MT script.
<br/><br/>
<code>touch [your MT install directory]/mt.fcgi</code> </div>

<p>The last step is to add the style definitions to the Cascading Style Sheet:</p>

<div class="Update"><b>Update:</b> 
 7/29/2008 - I tweaked the styles after spotting a better color scheme in <a href="http://woork.blogspot.com/2008/03/css-message-box-collection.html">Antonio Lupetti's CSS Message Box Collection article</a>.</div>

<pre><code>.Warning {
    width: 90%;
    margin-left: 5%;
    padding: .2em .3em;
    background: #F7CBCA;
    color: #000000;
    border: solid 1px #CC0000;
    font-size: 100%;
}

.Note {
    width: 90%;
    margin-left: 5%;
    padding: .2em .3em;
    background: #C9FFCA;
    color: #000000;
    border: solid 1px #349534;
    font-size: 100%;
}
</code></pre>

<p>Now to test the new custom Markdown tags I use the defined syntax in an entry:</p>

<pre><code>~? This is a Note Block ~?

~! This is a Warning Block ~!
</code></pre>

<p>Which produces:</p>

<div class="Note"><b>Note:</b> 
 This is a Note Block </div>

<p>and...</p>

<div class="Warning"><b>Warning:</b> 
 This is a Warning Block </div>

<p>However, those are just simple single line examples but multi-line input is handled just as well so we can do things like this:</p>

<pre><code>~? This is a multi-line example.
&lt;br/&gt;&lt;br/&gt;
`with an embedded code block` ~?
</code></pre>

<p>Will produce:</p>

<div class="Note"><b>Note:</b> 
 This is a multi-line example.
<br/><br/>
<code>with an embedded code block</code> </div>

<p>So there you have it! My <em>Note</em> and <em>Warning</em> custom Markdown tags are just two simple examples that show the flexibility of the Markdown plugin. Kudos to John Gruber and his development team!</p>
]]>
    </content>
</entry>

<entry>
    <title>Kubuntu on a MacBook Pro</title>
    <link rel="alternate" type="text/html" href="http://www.pingtrip.com/weblog/2008/04/kubuntu-on-a-macbook-pro" />
    <id>tag:dev.pingtrip.com,2008://1.3</id>

    <published>2008-04-05T12:07:47Z</published>
    <updated>2009-09-04T12:21:33Z</updated>

    <summary>Due to the recent growing popularity of dual-booting the MacBook Pro I decided to move the Kubuntu portion of my Leopard and Kubuntu on a MacBook Pro article into it&apos;s own entry. My hope is to find the time to...</summary>
    <author>
        <name>Dave</name>
        
    </author>
    
        <category term="MacBook Pro" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="kubuntu" label="Kubuntu" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="macbookpro" label="MacBook Pro" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://www.pingtrip.com/">
        <![CDATA[<p>Due to the recent growing popularity of dual-booting the MacBook Pro I decided to move the Kubuntu portion of my <a href="http://www.pingtrip.com/weblog/2008/04/leopard-and-kubuntu-on-a-macbook-pro">Leopard and Kubuntu on a MacBook Pro</a> article into it's own entry. My hope is to find the time to tweak this article enough so it provides a thorough, step-by-step walk-through that others can use.</p>
]]>
        <![CDATA[<div class="Update"><b>Update:</b> 
 08/02/2008 - Article has been updated for use with the Kubuntu 8.04-KDE4-i386 release. </div>

<ol>
<li><p><strong>Installing rEFIt</strong></p>

<p>The first step I do when building the Kubuntu portion of my dual-boot MacBook Pro is to install <a href="http://refit.sourceforge.net">rEFIt</a>, which provides a nice boot menu.</p>

<ol>
<li>Download and mount the current version of rEFIt Mac disk image.</li>
<li>Double-click the disk image you just downloaded and launch the installer by double-clicking on the "rEFIt.mpkg package.</li>
<li>Follow the instructions and select your Mac OS X installation volume as the destination volume for the install.</li>
</ol></li>
<li><p><strong>Installing Kubuntu</strong></p>

<p>Place a Kubuntu CD in the MacBook Pro and boot from it by either holding the 'C' key down on the keyboard until the Apple Logo appears, or choosing the "Boot Linux from CD" option from the rEFIt menu. Once the machine is booted choose your language and at the Main Menu choose "Install Kubuntu".</p>

<p>After following through the screens for choosing language, timezone and keyboard layout (be sure to choose Macintosh) you'll be at the "Prepare Disk Space" step of the install. Here, choose "Guided - use the largest continuous free space" from the menu and continue to the next screen. Follow the directions on the next screen to enter your user and computer information, and on the final "Ready to Install" screen click the "Install" button to complete the process.</p>

<p>The install process took approximately 18 minutes on my MacBook Pro but your install time may vary slightly depending on machine specs. Now would be a great time to go grab yourself a can of Red Bull while you're waiting!</p>

<p>Now that the installation is complete, reboot the laptop and when the rEFIt boot menu appears choose the "Start Partitioning Tool" option to synchronize the partition tables. When prompted, hit "Y" to perform the sync and return to the boot menu. I recommend choosing the "Shutdown the Computer" option and booting back up for the synchronization to succeed. I've seen odd behavior were the laptop will just hang at the penguin logo if a full power down isn't performed.</p>

<p>Once the laptop has rebooted and reaches the rEFIt boot menus, choose "Linux" to boot into your new Kubuntu partition. The wired network works out-of-the-box so be sure to have a cable connected so you have internet connectivity.</p>

<p>Log into the system by using the account you created during the install process.</p>

<p>The first order of business is to disable the default Kubuntu startup and shutdown splash screens. I find the over-sized progress bars rather annoying and enjoy being able to see the system messages during power cycles.</p>

<p>To accomplish this we simply have to edit the Menu file for the Grub Bootloader.</p>

<p>Open a console session (K-Menu -> Applications -> System -> Konsole) and open the menu file for editing:</p>

<pre><code>sudo vi /boot/grub/menu.lst
</code></pre>

<p>The line we need to edit is::</p>

<pre><code># defoptions= quite splash
</code></pre>

<p>simply delete the <em>quite</em> and <em>splash</em> options, leaving the line as:</p>

<pre><code># defoptions=
</code></pre>

<p>Finally, save the file and quit out of the editor.</p>

<p>Normally you would run <code>sudo update-grub</code> at this point to implement the changes, but it's going to be run for you in the next steps so you can skip it.</p>

<p>Next we need to get all the latest software updates:</p>

<pre><code>sudo apt-get update
sudo apt-get dist-upgrade
</code></pre>

<p>This only took about 3 minutes on my system. Again, the time will obviously vary depending on your internet connection speed and your MacBook Pro model.</p>

<p>Once the upgrade completes, reboot the laptop to pick-up the new Kernel and other updates.</p></li>
<li><p><strong>Configure Xorg</strong></p>

<p>I find the "out-of-the-box" Xorg settings to be nearly unusable due to the sensitivity of the touchpad. Left at the default settings you'll find that you inadvertently trigger 'click' actions while simply touching the touchpad.</p>

<p>To adjust the touchpad we need to edit the Xorg configuration file:</p>

<pre><code>sudo vi /etc/X11/xorg.conf
</code></pre>

<p>Look for the section that applies to the touchpad hardware:</p>

<p>(TO-DO)</p>

<p>And add these lines:</p>

<p>(TO-DO)</p>

<p>Save the file and to restart X Windows (by pressing Ctrl-Option-Delete) to pick-up the changes you just made.</p>

<p>This next step is just personal preference but I've included it here for the benefit of others. I'm not a big fan of all the sound effects that are configured by default; with the biggest offender for me being the "System Bell" that rings at every tab-completion attempt while in a Konsole session.</p>

<ol>
<li>Open the System Notification Configuration panel here: <code>K-Menu -&gt; Computer -&gt; System Settings -&gt; Notifications</code>. </li>
<li>Choose 'Konsole' from the Event Source pulldown menu.</li>
<li>Highlight the "Bell in visible session" event.</li>
<li>Uncheck the "Play a sound" option in the Actions section.</li>
</ol>

<p>For good measure lets disable the Startup/Shutdown sounds as well.</p>

<ol>
<li>Choose <em>KDE System Notifications</em> in the <em>Event Source</em> pulldown menu.</li>
<li>Highlight the <em>Logout</em> event and uncheck the <em>Play a sound</em> action.</li>
<li>Now do the same for the <em>Login</em> event.</li>
</ol>

<p>Finally click "Apply" and feel free to reboot your laptop to enjoy the silence.</p></li>
<li><p><strong>Development Tools</strong></p>

<p>Before we continue there are some packages that need to be installed in order to compile the drivers in the upcoming sections. All the necessary build tools can be easily installed in a single command:</p>

<pre><code>sudo apt-get install build-essential subversion automake autoconf
</code></pre></li>
<li><p><strong>Wireless (with WPA)</strong></p>

<p>The version of Kubuntu used when writing this article doesn't support the AirPort Extreme hardware that came with my MacBook Pro.</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><img alt="iwconfig_before.png" src="http://www.pingtrip.com/files/images/iwconfig_before.png" width="420" height="182" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></span></p>

<p>The MadWifi drivers version 0.94</p>

<p>However, lucky for us the latest version available from the MadWifi source repository does.</p>

<div class="Update"><b>Update:</b> 
 08/02/2008 - The DNS servers for madwifi.org weren't responding this morning for me. The workaround was to add an entry to <code>/etc/hosts</code> that read <code>"217.24.1.142    svn.madwifi.org"</code> </div>

<pre><code>sudo su
cd /usr/local/src
svn co https://svn.madwifi.org/madwifi/trunk ./madwifi
cd ./madwifi/scripts
./madwifi-unload
./find-madwifi-modules.sh $(uname -r)
</code></pre>

<p>(hit 'r' then return to remove the old modules)</p>

<pre><code>cd ..
</code></pre>

<p>Build and install the module:</p>

<pre><code>make 
make install
</code></pre>

<p>Now lets load our freshly built modules:</p>

<pre><code>modprobe ath_pci
</code></pre>

<p>Hey! Things are starting to look better:</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><img alt="iwconfig_after.png" src="http://www.pingtrip.com/files/images/iwconfig_after.png" width="420" height="204" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></span></p>

<p>At the time of this writing KNetworkManager had some issues recognizing the wireless device. I'm sure it'll be sorted out once the latest MadWifi drivers are merged into the Kubuntu build.</p>

<p>For the time being I've been connecting manually to WiFi networks.</p>

<pre><code>wpa_passphrase YOURSSID 'YourPassphrase' &gt; /etc/wpa_supplicant.conf
chmod 600 /etc/wpa_supplicant.conf
exit
</code></pre>

<p>Ok, we should be ready to test a connection to a WPA enabled access point.</p>

<pre><code>sudo iwconfig ath0 essid 'YOURSSID'
sudo wpa_supplicant -Bw -Dwext -iath0 -c /etc/wpa_supplicant.conf
</code></pre>

<p>Now if you run 'iwconfig' you should see that you're associated with your access point:</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><img alt="iwconfig-associated.png" src="http://www.pingtrip.com/files/images/iwconfig-associated.png" width="420" height="217" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></span></p>

<p>If the "Access Point" displays "Not-Associated" instead of the MAC address of your WAP you may have a typo in the wpasupplicant config file.</p>

<pre><code>sudo dhclient ath0
</code></pre>

<p>Now the wireless interface (ath0) should have an IP address.</p>

<pre><code>ifconfig
</code></pre>

<p><p>Happy surfing wirelessly on your MacBook Pro!</p></li>
</ol></p>
]]>
    </content>
</entry>

<entry>
    <title>Leopard and Kubuntu on a MacBook Pro</title>
    <link rel="alternate" type="text/html" href="http://www.pingtrip.com/weblog/2008/04/leopard-and-kubuntu-on-a-macbook-pro" />
    <id>tag:dev.pingtrip.com,2008://1.2</id>

    <published>2008-04-05T00:31:36Z</published>
    <updated>2009-09-04T12:21:33Z</updated>

    <summary>Thanks to a fun personality quirk of mine I find myself re-imaging my MacBook Pro on a regular basis, so I figured documenting the process would be a brilliant idea. The goal is actually twofold: to streamline the process for...</summary>
    <author>
        <name>Dave</name>
        
    </author>
    
        <category term="MacBook Pro" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="kubuntu" label="Kubuntu" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="leopard" label="Leopard" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="macbookpro" label="MacBook Pro" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://www.pingtrip.com/">
        <![CDATA[<p>Thanks to a fun personality quirk of mine I find myself re-imaging my MacBook Pro on a regular basis, so I figured documenting the process would be a brilliant idea. The goal is actually twofold: to streamline the process for myself and to provide a baseline for folks attempting to re-create any of my experiments on their own MBPs.</p>

<p>The directions which follow apply to <strong>my</strong> dual boot MacBook Pro, your mileage may vary...</p>
]]>
        <![CDATA[<h1>Part One: The Leopard Half</h1>

<ol>
<li><p>Boot from the Leopard DVD and after choosing a language you'll be presented with the Mac OS X Installer welcome screen. We're going to ignore the installer for a
moment while we set up the correct disk partitions.</p>

<div class="Note"><b>Note:</b> 
Jump to step 2 if partitioning has already been done and you're simply reinstalling OS's</div>

<p>Run the Disk Utility found under the Utilities-&gt;Disk Utility toolbar menu. Highlight the main drive (149.1 GB Fujitsu) and click on the Partition tab. Use the Volume Scheme section to configure the partition layout you'd like to create. I prefer to make a 125GB Mac OS Extended (Journaled) and name it "Leopard", and leave the remaining as "Free Space".</p>

<p>After applying the changes you can exit the Disk Utility.</p></li>
<li><p>Click continue on the Mac OS X Installer welcome screen, then agree on the Software License pop-up, and when prompted for the install destination choose the MacBook's main drive (it most likely has a exclamation warning over it). Under options select the "Erase and Install" option with the default file system (Mac OS Extended (Journaled). Then click "Ok" followed by "Continue".</p></li>
<li><p>At the "Install Summary" screen click "Customize" and uncheck everything except for "Essential System Software" <strike>and "X11"</strike> and click the "Install" button.<div class="Update"><b>Update:</b> 
 I no longer use the included X11 package and instead install Xquartz. More info can be found in my <a href="http://www.pingtrip.com/weblog/2008/08/essential-software-for-os-x">Essential Software for OS X article</a>. </div></p></li>
<li><p>After the install process, the computer will reboot. Complete the install process by following the prompts for Region, Keyboard settings, .Mac and Apple account information, and finally, account creation.</p></li>
<li><p>Now run the Software Update utility and restart the laptop.</p></li>
<li><p>Repeat step 5 as needed.</p></li>
<li><p>Install iLife '08 from recovery DVDs that were included with the MBP via the "Install Bundled Software Only" component (iMovie, iDVD, iPhoto; uncheck everything else)</p></li>
<li><p>Now run the Software Update utility until the OS is fully updated.</p></li>
</ol>

<p>Congratulations! Your OS X base system is now installed and updated.</p>

<p>Now it's time to configure some System Preferences for, in my opinion, improving usability. Below are the most common ones I tweak but you may prefer the default settings; which I assume is why they call them <i>Preferences</i>...</p>

<ol>
<li><p><strong>Rename the laptop</strong>
By default the OS name the laptop "<em>Username's MacBook Pro</em>" which is a bit wordy when you're working in a terminal window with the standard shell prompt.</p>

<p>You can change this under the System Preferences-&gt;Sharing tab.</p></li>
<li><p><strong>Enable Secondary Clicks</strong>
I love the feature of placing two fingers on the trackpad and clicking the trackpad button to activate a Secondary Click (aka Right Click).</p>

<p>You enable this by putting a check in the "Enable Secondary Clicks" box on the System Preferences-&gt;Keyboard + Mouse-&gt;Trackpad tab.</p></li>
<li><p><strong>Shutoff Wireless Devices</strong>
For the power saving benefit, as well as the extra security, I leave the wireless devices disabled until actually needed.</p>

<p>The AirPort Extreme Wi-Fi and Bluetooth radio can both be disabled through their corresponding icons in the OS X toolbar.</p></li>
<li><p>Other minor tweaks I usually do are related to visuals, like changing the desktop image, resizing and removing unnecessary icons from the dock.</p></li>
</ol>

<p>Now its time to install the all important applications; check out my <a href="http://www.pingtrip.com/weblog/2008/08/essential-software-for-os-x">Essential Software for OS X</a> article for a list of my favorite apps.</p>

<h1>Part Two: The Kubuntu Half</h1>

<p>Due to the recent popularity of Linux MacBook Pro's, I've created a separate article dedicated to installing <a href="http://www.pingtrip.com/weblog/2008/04/kubuntu-on-a-macbook-pro">Kubuntu on a Macbook Pro</a>.</p>
]]>
    </content>
</entry>

</feed>
