<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>BorkWeb &#187; Technology</title>
	<atom:link href="http://borkweb.com/story/category/professional/feed" rel="self" type="application/rss+xml" />
	<link>http://borkweb.com</link>
	<description>Some People Are Squirrel Handed.</description>
	<lastBuildDate>Tue, 17 Jan 2012 22:00:21 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Preparing a Site for SOPA Blackout with .htaccess</title>
		<link>http://borkweb.com/story/preparing-a-site-for-sopa-blackout-with-htaccess</link>
		<comments>http://borkweb.com/story/preparing-a-site-for-sopa-blackout-with-htaccess#comments</comments>
		<pubDate>Tue, 17 Jan 2012 21:56:37 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[blackout]]></category>
		<category><![CDATA[htaccess]]></category>
		<category><![CDATA[protest]]></category>
		<category><![CDATA[rewritecond]]></category>
		<category><![CDATA[sopa]]></category>

		<guid isPermaLink="false">http://borkweb.com/?p=951</guid>
		<description><![CDATA[BorkWeb, like a number of other sites, will be going black this Wednesday as a protest to SOPA.  Legends of the Sun Pig has an excellent article on this exact topic.  Martin writes: Google recommends using HTTP 503 &#8220;Service Unavailable&#8221; status codes. The 503 code indicates that the service (or page, or site) is temporarily [...]]]></description>
			<content:encoded><![CDATA[<p>BorkWeb, like a number of other sites, will be going black this Wednesday as a protest to SOPA.  <a href="http://www.sunpig.com/martin/archives/2012/01/17/site-protest-blackouts-with-htaccess.html">Legends of the Sun Pig</a> has an excellent article on this exact topic.  Martin writes:</p>
<blockquote><p><a href="https://plus.google.com/115984868678744352358/posts/Gas8vjZ5fmB">Google recommends using HTTP 503 &#8220;Service Unavailable&#8221; status codes</a>. The 503 code indicates that the service (or page, or site) is temporarily unavailable, but that it is expected back again soon. This is better than using the 404 (not found), 302 ( moved temporarily), or 301 (moved permanently) codes, because it tells web crawlers that they should just come back and try again later.</p></blockquote>
<p>Because I have no desire to manually make the cut-over to a SOPA Blackout .htaccess file at midnight (because I&#8217;m lazy), I took his .htaccess settings and made a modification to enable the settings for the tomorrow.  Here&#8217;s what I have:</p>
<pre class="brush: plain; title: ; notranslate">
&lt;IfModule mod_rewrite.c&gt;

# =====================
# SOPA Blackout
# =====================

# Set a custom error document for 503 errors
ErrorDocument 503 /503_sopa.html

# Cause all requests (except images) to generate a 503 error,
# which will produce the custom 503 error document
RewriteEngine on
RewriteBase /
RewriteCond %{ENV:REDIRECT_STATUS} !=503
RewriteCond %{REQUEST_URI} !\.(jpe?g?|png|gif) [NC]
RewriteCond %{REQUEST_URI} !robots\.txt$ [NC]
RewriteCond %{TIME_YEAR} ^2012
RewriteCond %{TIME_MON} ^01
RewriteCond %{TIME_DAY} ^18
RewriteRule ^ - [L,R=503]

# =====================
# NOT SOPA Blackout
# =====================

# My other rewrite magic goes here.
&lt;/IfModule&gt;
</pre>
<p>Additionally, I&#8217;ve shamelessly stolen the <a href="http://php.net">php.net</a> SOPA <a href="http://borkweb.com/503_sopa.html">503 page</a> because it is awesome.</p>
]]></content:encoded>
			<wfw:commentRss>http://borkweb.com/story/preparing-a-site-for-sopa-blackout-with-htaccess/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Vim Undo Magic</title>
		<link>http://borkweb.com/story/vim-undo-magic</link>
		<comments>http://borkweb.com/story/vim-undo-magic#comments</comments>
		<pubDate>Thu, 12 Jan 2012 15:23:04 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[undo]]></category>
		<category><![CDATA[undolist]]></category>
		<category><![CDATA[vim]]></category>

		<guid isPermaLink="false">http://borkweb.com/?p=936</guid>
		<description><![CDATA[Ever have a time when you are happily editing a script in vim and you realize you made a mistake over the course of editing? Luckily, Vim supports back in time undos. You want to go back 10 minutes? :earlier 10m You want to go forward in time by 5 seconds? :later 5s Sweet cuppin&#8217; [...]]]></description>
			<content:encoded><![CDATA[<p>Ever have a time when you are happily editing a script in vim and you realize you made a mistake over the course of editing? Luckily, Vim <strong>supports back in time undos</strong>.</p>
<p>You want to go back 10 minutes?</p>
<p><code>:earlier 10m</code></p>
<p>You want to go forward in time by 5 seconds?</p>
<p><code>:later 5s</code></p>
<p>Sweet cuppin&#8217; cakes that&#8217;s ballsy. Armed with this tool, you step forward and backwards in your undo/redo adventure, you make an accidental edit. Whoops. Now all the code you&#8217;ve edited in the 10 minutes that you rolled back with the handy-dandy &lt;code&gt;:earlier&lt;/code&gt; command is gone&#8230;right?</p>
<p>Nope! <strong>Undo branching</strong> is where the real awesomeness of Vim shines. If you realize your mistake, you can find a list of undo branches like so:</p>
<p><code>:undolist</code></p>
<p>Which will show you something like this:</p>
<pre>number changes when saved

3 3 08:59:35
4 2 09:00:13</pre>
<p>To jump to one of those branches, you can type:</p>
<p><code>:undo 3</code> or <code>:undo 4</code></p>
<p>I &lt;3 Vim</p>
<p>(via <a href="http://lifehacker.com/202093/go-back-in-text-file-time-with-vim-70">Life Hacker</a>)</p>
]]></content:encoded>
			<wfw:commentRss>http://borkweb.com/story/vim-undo-magic/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Sites Not Reachable After Linode Restart</title>
		<link>http://borkweb.com/story/sites-not-reachable-after-linode-restart</link>
		<comments>http://borkweb.com/story/sites-not-reachable-after-linode-restart#comments</comments>
		<pubDate>Wed, 25 Aug 2010 02:21:41 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://borkweb.com/?p=906</guid>
		<description><![CDATA[I have recently moved the majority of my sites over to my CentOS Linode VPS and I was experience some load issues that prevented me from gaining SSH access.  As such, I decided to restart my VPS.  After the restart, I found that my sites were not reachable&#8230;lame. First, I checked the firewall found here: /usr/bin/system-config-securitylevel-tui So&#8230;the [...]]]></description>
			<content:encoded><![CDATA[<p>I have recently moved the majority of my sites over to my CentOS <a href="http://www.linode.com/?r=67b76e7b2339fe51bea3d34c3e419fa78038e44f">Linode VPS</a> and I was experience some load issues that prevented me from gaining SSH access.  As such, I decided to restart my VPS.  After the restart, I found that my sites were not reachable&#8230;lame.</p>
<p>First, I checked the firewall found here:</p>
<blockquote><p>/usr/bin/system-config-securitylevel-tui</p></blockquote>
<p>So&#8230;the firewall was fine.  Next, I attempted to restart the network via:</p>
<blockquote><p>/etc/init.d/network restart</p></blockquote>
<p>I was surprised to receive the following error:</p>
<blockquote><p>Bringing up interface eth0: Device eth0 has different MAC address than expected, ignoring. [FAILED]</p></blockquote>
<p>Alrighty&#8230;bizarre.  So with the help of <a href="http://technotes.twosmallcoins.com/?p=97">this article</a>, I was able to determine that eth0&#8242;s MAC address:</p>
<blockquote><p>/sbin/ifconfig eth0</p></blockquote>
<p>was different than the MAC address found in:</p>
<blockquote><p>/etc/sysconfig/network-scripts/ifcfg-eth0</p></blockquote>
<p>A simple edit to the above file and a quick network restart solved my problem and brought my sites back up! w00t!</p>
]]></content:encoded>
			<wfw:commentRss>http://borkweb.com/story/sites-not-reachable-after-linode-restart/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Platypus Mascot: A Plymouth State April Fool&#8217;s Day</title>
		<link>http://borkweb.com/story/platypus-mascot-a-plymouth-state-april-fools-day</link>
		<comments>http://borkweb.com/story/platypus-mascot-a-plymouth-state-april-fools-day#comments</comments>
		<pubDate>Thu, 02 Apr 2009 13:34:28 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://borkweb.com/?p=668</guid>
		<description><![CDATA[Yesterday (April Fool&#8217;s Day) I had a little fun and launched a prank on the entire Campus Community of Plymouth State University. The prank? PSU&#8217;s portal received a makeover in order to announce a change of the campus&#8217; Mascot from Panther to noble Platypus due to trademark issues.  Results?  Awesome. Before our users logged in, [...]]]></description>
			<content:encoded><![CDATA[<p>Yesterday (April Fool&#8217;s Day)  I had a little fun and launched a prank on the entire Campus Community of <a href="http://www.plymouth.edu">Plymouth State University</a>.  The prank?  PSU&#8217;s portal received a makeover in order to announce a change of the campus&#8217; Mascot from Panther to noble <a href="http://en.wikipedia.org/wiki/Platypus">Platypus</a> due to trademark issues.  Results?  Awesome.</p>
<p>Before our users logged in, they were met with a happy Platypus:</p>
<div class="wp-caption aligncenter" style="width: 510px"><img title="myPlymouth Platypus Login" src="http://farm4.static.flickr.com/3544/3407013740_73a24d2f68.jpg" alt="A groovy platypus login" width="500" height="248" /><p class="wp-caption-text">A groovy platypus login</p></div>
<p>Once logged in, the users&#8217; eyes were attacked by custom header complete with Platypus and sun flare that read: &#8220;Announcing the new Plymouth State mascot!&#8221;</p>
<div class="wp-caption aligncenter" style="width: 510px"><img title="myPlymouth April Fools Header" src="http://farm4.static.flickr.com/3561/3407029672_62b99efe30.jpg" alt="Announcing the new Plymouth State Mascot!" width="500" height="105" /><p class="wp-caption-text">Announcing the new Plymouth State Mascot!</p></div>
<p>Oh, but it didn&#8217;t stop there.  You can&#8217;t just change a campus&#8217; mascot without some explanation, so forced into the top right of everyone&#8217;s layout was a nice portal channel to detail the mascot change.  It read as follows:</p>
<blockquote><p>Plymouth State has been proud to display the Panther as the University Mascot for many years but effective June 1st, 2009 the Panther will be retired.</p>
<p><strong>Why the new Mascot?</strong></p>
<p>Due to recent trademark disputes, PSU has been asked to select a new symbol for the University. While the change may come as a shock to some, change is a great thing! The adoption of the new mascot is a refreshing and invigorating change that we hope will inspire the campus as the Panther does.</p>
<p>The selection process for the new mascot was a lengthy one where we reviewed over 75 animals that were submitted by the campus community in the recent poll sent out to all students! The top contenders were: Newt, Badger, Elk, Moose, Platypus and Narwhal.</p>
<p>After much discussion, we are excited to announce that the Noble Platypus will be the new mascot!</p>
<p><strong>Why the Platypus?</strong><br />
<img src="http://borkweb.com/wp-content/uploads/2009/04/platypus.jpg" alt="platypus" title="platypus" width="150" height="103" class="alignright size-full wp-image-672" style="float:right;margin:0 0 5px 5px;"/>There are many attributes of the Platypus that resonate well with Plymouth State ideals. The following were the deciding factors:</p>
<ol>
<li> <strong>Mammal</strong>: As we planned the transition from the Panther to the new mascot, the desire that the new animal remain mammalian in nature rang clear with the selection committee. The Platypus fits the bill! (Yes, that was a pun)</li>
<li><strong>Versatile</strong>: The Platypus is an extremely versatile mammal which represents Plymouth State&#8217;s versatility in it&#8217;s educational, athletic, and extra-curricular programs.</li>
<li><strong>Egg Laying Semi-Aquatic Monotreme</strong>: The fact that the Platypus is the only semi-aquatic monotreme that lays eggs truly makes it unique. Uniqueness is an attribute in our students that we prize greatly and believe each and every one of you stand out from the crowd.</li>
<li><strong>Venomous</strong>: Venom in ankle spurs. This is just an extra bonus.</li>
</ol>
</blockquote>
<p>A change like this cannot be complete without gauging user opinions, so a poll was put together that received almost 1200 votes in 24 hours!</p>
<div class="wp-caption aligncenter" style="width: 502px"><img title="myPlymouth April Fools Day Poll" src="http://farm4.static.flickr.com/3537/3406230667_f6f499b91b_o.png" alt="myPlymouth April Fools Day Poll" width="492" height="255" /><p class="wp-caption-text">myPlymouth April Fool&#39;s Day Poll</p></div>
<p>Various end offices received a number of calls from end users ranging from excitement that PSU played an April Fool&#8217;s Day prank to frustration that we were switching away from the Panther (those people obviously didn&#8217;t know it was the 1st).  All in all, I would consider this a successful holiday!</p>
<p>Now&#8230;what should I do next year?</p>
]]></content:encoded>
			<wfw:commentRss>http://borkweb.com/story/platypus-mascot-a-plymouth-state-april-fools-day/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Guest Lecture: JavaScript, Ajax &amp; DOM Manipulation</title>
		<link>http://borkweb.com/story/guest-lecture-javascript-ajax-dom-manipulation</link>
		<comments>http://borkweb.com/story/guest-lecture-javascript-ajax-dom-manipulation#comments</comments>
		<pubDate>Wed, 03 Dec 2008 19:16:52 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[ecmascript]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[js]]></category>
		<category><![CDATA[plymouth]]></category>
		<category><![CDATA[plymouth state university]]></category>
		<category><![CDATA[psu]]></category>

		<guid isPermaLink="false">http://borkweb.com/?p=656</guid>
		<description><![CDATA[Zach has asked me to give a JavaScript guest lecture in his Web Programming class. We&#8217;ll cover: JS basics, node manipulation, DOM traversal, AJAX, JavaScript libraries, and myPlymouth implementations of those topics. Here are the slides (get the .ppt here): Javascript: Ajax &#38; DOM Manipulation v1.2 View SlideShare presentation or Upload your own. (tags: javascript [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://nosheep.net">Zach</a> has asked me to give a JavaScript guest lecture in his Web Programming class.  We&#8217;ll cover: JS basics, node manipulation, DOM traversal, AJAX, JavaScript libraries, and myPlymouth implementations of those topics.  Here are the slides (get the .ppt <a href="http://borkweb.com/examples/js_workshop/javascript.ppt">here</a>):</p>
<div class="center">
<div style="width:425px;text-align:left" id="__ss_814300"><a style="font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;" href="http://www.slideshare.net/borkweb/javascript-ajax-and-the-dom-v12-presentation?type=powerpoint" title="Javascript: Ajax &amp; DOM Manipulation v1.2">Javascript: Ajax &amp; DOM Manipulation v1.2</a><object style="margin:0px" width="425" height="355"><param name="movie" value="http://static.slideshare.net/swf/ssplayer2.swf?doc=javascript-1228331371388010-8&#038;stripped_title=javascript-ajax-and-the-dom-v12-presentation" /><param name="allowFullScreen" value="true"/><param name="allowScriptAccess" value="always"/><embed src="http://static.slideshare.net/swf/ssplayer2.swf?doc=javascript-1228331371388010-8&#038;stripped_title=javascript-ajax-and-the-dom-v12-presentation" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"></embed></object>
<div style="font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;">View SlideShare <a style="text-decoration:underline;" href="http://www.slideshare.net/borkweb/javascript-ajax-and-the-dom-v12-presentation?type=powerpoint" title="View Javascript: Ajax &amp; DOM Manipulation v1.2 on SlideShare">presentation</a> or <a style="text-decoration:underline;" href="http://www.slideshare.net/upload?type=powerpoint">Upload</a> your own. (tags: <a style="text-decoration:underline;" href="http://slideshare.net/tag/javascript">javascript</a> <a style="text-decoration:underline;" href="http://slideshare.net/tag/jquery">jquery</a>)</div>
</div>
</div>
<p>A few resources that are mentioned:</p>
<ul>
<li><a href="http://borkweb.com/story/must-have-extensions-for-firefox">Firefox Extensions</a> (including <a href="http://getfirebug.com">Firebug</a>)</li>
<li><a href="http://jquery.com">jQuery</a></li>
<li><a href="http://borkweb.com/examples/js_workshop/">Slide Examples</a></li>
<li><a href="http://borkweb.com/playground/sprite/sprite.html">MegaMan Sprite Animation</a></li>
</ul>
<p><em>Note: this is an updated talk on the <a href="http://borkweb.com/story/plymouth-state-javascript-workshop">workshop</a> I led two years ago</em></p>
]]></content:encoded>
			<wfw:commentRss>http://borkweb.com/story/guest-lecture-javascript-ajax-dom-manipulation/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>CSS Selector Browser Support</title>
		<link>http://borkweb.com/story/css-selector-browser-support</link>
		<comments>http://borkweb.com/story/css-selector-browser-support#comments</comments>
		<pubDate>Tue, 28 Oct 2008 19:13:03 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[chart]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[development css3]]></category>
		<category><![CDATA[reference]]></category>
		<category><![CDATA[selector]]></category>

		<guid isPermaLink="false">http://borkweb.com/?p=641</guid>
		<description><![CDATA[As many web developers know, CSS support is highly varied amongst browsers. I often find myself hunting for which selectors are more heavily supported. As such, I thought I&#8217;d post a direct link to a quality resource here so I wouldn&#8217;t have to hunt anywhere besides on BorkWeb. Here&#8217;s some decent resources: CSS selector and [...]]]></description>
			<content:encoded><![CDATA[<p>As many web developers know, <a href="http://en.wikipedia.org/wiki/Cascading_Style_Sheets">CSS</a> support is highly varied amongst browsers.  I often find myself hunting for which selectors are more heavily supported.  As such, I thought I&#8217;d post a direct link to a quality resource here so I wouldn&#8217;t have to hunt anywhere besides on BorkWeb.</p>
<p>Here&#8217;s some decent resources:</p>
<ul>
<li><a href="http://kimblim.dk/csstest/">CSS selector and pseudo element support</a> from kimblim.dk.  The format on this page is a bit odd, and it lacks granular details on older browsers.</li>
<li>The <a href="http://dev.l-c-n.com/CSS3-selectors/browser-support.php">browser support charts</a> at dev.l-c-n.com are more detailed but a bit stale.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://borkweb.com/story/css-selector-browser-support/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Oracle 10g: Using The Returning Clause With ADOdb</title>
		<link>http://borkweb.com/story/oracle-10g-using-the-returning-clause-with-adodb</link>
		<comments>http://borkweb.com/story/oracle-10g-using-the-returning-clause-with-adodb#comments</comments>
		<pubDate>Tue, 21 Oct 2008 13:26:49 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[10g]]></category>
		<category><![CDATA[adodb]]></category>
		<category><![CDATA[banner]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[dml]]></category>
		<category><![CDATA[oracle]]></category>
		<category><![CDATA[oracle 10g]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://borkweb.com/?p=638</guid>
		<description><![CDATA[Plymouth State University uses Oracle heavily due to its Student Information System of choice &#8211; SungardHE Banner. As such, I play around in Oracle a lot (sometimes a lot more than I&#8217;d like) and I occasionally find functionality that seems more cumbersome than it should. One such item is selecting the last inserted value on [...]]]></description>
			<content:encoded><![CDATA[<p>Plymouth State University uses <a href="http://www.oracle.com">Oracle</a> heavily due to its Student Information System of choice &#8211; <a href="http://www.sungardhe.com">SungardHE</a> Banner.  As such, I play around in Oracle a lot (sometimes a lot more than I&#8217;d like) and I occasionally find functionality that seems more cumbersome than it should.  </p>
<p>One such item is <strong>selecting the last inserted value on an auto-incrementing column</strong>.</p>
<p>Historically, when you are inserting into a table with auto incrementing values (via a <a href="http://borkweb.com/story/oracles-auto-incrementing-with-sequences">sequence</a>) you have always been able to grab the last value with a simple SELECT statement (line 22):</p>
<pre class="brush: sql; title: ; notranslate">
-- setup a table
CREATE TABLE bork (id INTEGER NOT NULL PRIMARY KEY, data VARCHAR2(10) NOT NULL);

-- create the sequence
CREATE SEQUENCE sq_bork INCREMENT BY 1 START WITH 1; 

-- create a trigger for auto-incrementing the sequence'
CREATE OR REPLACE TRIGGER tr_sq_bork
BEFORE INSERT
ON bork
REFERENCING NEW AS NEW
FOR EACH ROW
BEGIN
SELECT sq_bork.NEXTVAL INTO :NEW.id FROM DUAL;
END;
/

-- insert a record into the table
INSERT INTO bork (name) VALUES ('Matt');

-- retrieve last inserted id
SELECT sq_bork.CURRVAL FROM dual;
</pre>
<p>As you see there, two statements must be executed to get that new id.  The INSERT and the SELECT.  Well, as of Oracle 10g you can utilize the RETURNING clause like so:</p>
<pre class="brush: sql; title: ; notranslate">
INSERT INTO bork (name) VALUES ('Matt') RETURNING id INTO i_id;
</pre>
<p>That statement inserts a record into &#8220;bork&#8221; and returns the value of &#8220;id&#8221; into the &#8220;i_id&#8221; variable.  Pretty sexy and all with one DML statement.  Here&#8217;s what we do at Plymouth to utilize the RETURNING clause with the PHP library <a href="http://adodb.sf.net">ADOdb</a>:</p>
<pre class="brush: php; title: ; notranslate">
&lt; ?php
//do your database object initialization here:
//$db = new ADONewConnection...

$sql = &quot;BEGIN INSERT INTO bork (data) VALUES ('Matt') RETURNING id INTO :i_id; END;&quot;;
$stmt = $db-&gt;PrepareSP($sql);
$db-&gt;OutParameter($stmt, $inserted_id, 'i_id');
$db-&gt;Execute($stmt);
?&gt;
</pre>
<p>Yup.  4 lines of PHP but only 1 statement sent to the database!  I&#8217;d take the extra lines any day over the latency of data retrieval.</p>
]]></content:encoded>
			<wfw:commentRss>http://borkweb.com/story/oracle-10g-using-the-returning-clause-with-adodb/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Delete/Backspace Stops Working in Oracle SQLDeveloper</title>
		<link>http://borkweb.com/story/deletebackspace-stops-working-in-oracle-sqldeveloper</link>
		<comments>http://borkweb.com/story/deletebackspace-stops-working-in-oracle-sqldeveloper#comments</comments>
		<pubDate>Thu, 18 Sep 2008 12:00:17 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[accelerator]]></category>
		<category><![CDATA[backspace]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[delete]]></category>
		<category><![CDATA[key bindings]]></category>
		<category><![CDATA[oracle]]></category>
		<category><![CDATA[sql]]></category>
		<category><![CDATA[sql developer]]></category>

		<guid isPermaLink="false">http://borkweb.com/?p=563</guid>
		<description><![CDATA[I a huge fan of Oracle SQL Developer but I ran into an issue a while back that left me scratching my head and re-installing. The issue? Most key strokes other than letters and numbers failed to function. Yeah&#8230;no delete or backspace. When this issue happened a second time I did a little playing with [...]]]></description>
			<content:encoded><![CDATA[<p>I a huge fan of <a href="http://www.oracle.com/technology/software/products/sql/index.html">Oracle SQL Developer</a> but I ran into an issue a while back that left me scratching my head and re-installing.  The issue?  Most key strokes other than letters and numbers failed to function.  Yeah&#8230;no delete or backspace.  </p>
<p>When this issue happened a second time I did a little playing with the app and figured out what to do.  If you find yourself in a similar predicament simply do this:</p>
<ol>
<li>Open SQL Developer</li>
<li>Click on the Tools &gt; Preferences menu</li>
<li>Click on Accelerators on the left</li>
<li>Click the Load Preset&#8230; button</li>
</ol>
<p>Yup.  That&#8217;s it.  The only lame part about that is all your custom key bindings go away and must be re-done.  But that is <strong>much</strong> nicer than re-installing!</p>
]]></content:encoded>
			<wfw:commentRss>http://borkweb.com/story/deletebackspace-stops-working-in-oracle-sqldeveloper/feed</wfw:commentRss>
		<slash:comments>38</slash:comments>
		</item>
		<item>
		<title>Google Chrome on the Mac &#8211; a la CodeWeavers</title>
		<link>http://borkweb.com/story/google-chrome-on-the-mac-a-la-codeweavers</link>
		<comments>http://borkweb.com/story/google-chrome-on-the-mac-a-la-codeweavers#comments</comments>
		<pubDate>Tue, 16 Sep 2008 01:19:08 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[browser]]></category>
		<category><![CDATA[chrome]]></category>
		<category><![CDATA[chromium]]></category>
		<category><![CDATA[codeweavers]]></category>
		<category><![CDATA[google]]></category>

		<guid isPermaLink="false">http://borkweb.com/?p=593</guid>
		<description><![CDATA[Google launched its new browser Chrome on September 2nd and the web was abuzz with talk of a new contender in the browser space. My choice to pepper my house and cube at work with Macs rather than Windows boxes left me complaining about the lack of a native Mac version of Chrome&#8230;which Google assures [...]]]></description>
			<content:encoded><![CDATA[<p>Google launched its new browser <a href="http://www.google.com/chrome">Chrome</a> on September 2nd and the web was abuzz with talk of a new contender in the browser space.  My choice to pepper my house and cube at work with Macs rather than Windows boxes left me complaining about the lack of a native Mac version of Chrome&#8230;which Google <a href="http://googleblog.blogspot.com/2008/09/fresh-take-on-browser.html">assures us</a> is coming.</p>
<p><a href="http://www.codeweavers.com">Code Weavers</a>, however, has just released <a href="http://www.codeweavers.com/services/ports/chromium/">Crossover Chromium</a> built from build 21 of the Chromium Open Source browser.</p>
<div class="center">
<a href="http://www.flickr.com/photos/borkweb/2860639037/" title="Chromium by borkweb, on Flickr"><img src="http://farm4.static.flickr.com/3272/2860639037_e7b33f5bb6.jpg" width="500" height="195" alt="Chromium" class="post_image" style="float:none;"/></a>
</div>
<p>The initialization of Chromium the first time I opened it took a while but once it was up and running, things were pretty solid.  The browser has all the JavaScript and DOM debugging tools but it seems the process manager tool isn&#8217;t fully functional..which is really my draw to the browser (when I get dead set on playing with the Process Manager tool, I&#8217;ll break down and install Chrome with Parallels). I suppose I&#8217;ll be following CodeWeaver&#8217;s suggestion:</p>
<div class="quote">
Q.  Should I run CrossOver Chromium as my main browser?</p>
<p>A. Absolutely not! This is just a proof of concept, for fun, and to showcase what Wine can do. Chromium itself is just beginning. As the Chromium project progresses, they will be providing more compelling support for Mac OS and Linux, particularly with process security and memory management. Those future versions from Chromium will be better suited for daily use than this version.
</p></div>
<p>Until Google launches its official Mac native Chrome, Chromium will satisfy me for now.</p>
]]></content:encoded>
			<wfw:commentRss>http://borkweb.com/story/google-chrome-on-the-mac-a-la-codeweavers/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>iPhone App: pTerm</title>
		<link>http://borkweb.com/story/iphone-app-pterm</link>
		<comments>http://borkweb.com/story/iphone-app-pterm#comments</comments>
		<pubDate>Mon, 11 Aug 2008 13:08:12 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[application]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[pterm]]></category>
		<category><![CDATA[putty]]></category>
		<category><![CDATA[ssh]]></category>
		<category><![CDATA[tcp]]></category>
		<category><![CDATA[telnet]]></category>
		<category><![CDATA[terminal]]></category>

		<guid isPermaLink="false">http://borkweb.com/?p=579</guid>
		<description><![CDATA[At long last a Terminal application is available on the iPhone, and pTerm is its name! Based on the desktop client PuTTY, you can SSH, Telnet, and raw TCP from your iPhone/iPod Touch! Its features are: xterm terminal emulation Standard 80&#215;24 screen SSH, Telnet, or &#8220;raw&#8221; TCP connections Ctrl key support Landscape and Portrait modes [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.flickr.com/photos/borkweb/2752604863/" title="pTerm by borkweb, on Flickr"><img src="http://farm4.static.flickr.com/3253/2752604863_93a28ee6ef_m.jpg" width="160" height="240" alt="pTerm" class="post_image" style="float:right;margin-left:10px;" /></a> At long last a Terminal application is available on the iPhone, and <a href="http://www.instantcocoa.com/products/pTerm/">pTerm</a> is its name!  Based on the desktop client PuTTY, you can SSH, Telnet, and raw TCP  from your iPhone/iPod Touch!</p>
<p>Its features are:</p>
<div class="quote">
<ul>
<li>xterm terminal emulation</li>
<li>Standard 80&#215;24 screen</li>
<li>SSH, Telnet, or &#8220;raw&#8221; TCP connections</li>
<li>Ctrl key support</li>
<li>Landscape and Portrait modes</li>
<li>Works over Edge, 3G, or WiFi</li>
<li>Stores your list of host/port/protocol for convenient access</li>
<li>Terminal supports pinch and zoom</li>
<li>Based on PuTTY, a stable and feature-rich code base</li>
</ul>
</div>
<p>All in all, the app seems pretty solid.  My only gripe is the lack of a tab key for tab completion.  Now I&#8217;ll be able to debug stuff remotely WITHOUT using VNCLite for the iPhone.  Check pTerm out, it is well worth the $4.99.</p>
<p><strong>Update:</strong><br />
There are some more things that I find annoying:</p>
<ul>
<li>No tab key &#8211; no tab completion&#8230;</li>
<li>No arrow keys &#8211; this makes navigating around a line a little bit of a pain.</li>
<li>You can&#8217;t hide the keyboard.  It&#8217;d be nice to see a full screen of top.</li>
<li>No color customization</li>
</ul>
<p>Despite the annoyances, the app is still pretty solid.  Lets just hope new versions come out sooner than later with some of my hopes and dreams attached.</p>
<div class="center" style="clear:both;">
<a href="http://www.flickr.com/photos/borkweb/2753449856/" title="IMG_0004.PNG by borkweb, on Flickr"><img src="http://farm4.static.flickr.com/3189/2753449856_6801f3ee42_m.jpg" width="160" height="240" alt="IMG_0004.PNG" /></a><a href="http://www.flickr.com/photos/borkweb/2753449896/" title="IMG_0004.PNG by borkweb, on Flickr"><img src="http://farm4.static.flickr.com/3133/2753449896_1f7ba73614_m.jpg" width="160" height="240" alt="IMG_0004.PNG" /></a>
</div>
]]></content:encoded>
			<wfw:commentRss>http://borkweb.com/story/iphone-app-pterm/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

