<?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>geedew :: Web Design, Programming, Professionalism &#187; Development</title>
	<atom:link href="http://www.geedew.com/category/development/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.geedew.com</link>
	<description>Web Design, Web Programming, Programming on Linux, CSS, JavaScript, PHP, HTML5</description>
	<lastBuildDate>Thu, 22 Jul 2010 16:26:29 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	
		<item>
		<title>The new Digg, V4: Quick Review</title>
		<link>http://www.geedew.com/2010/07/20/the-new-digg-v4-quick-review/</link>
		<comments>http://www.geedew.com/2010/07/20/the-new-digg-v4-quick-review/#comments</comments>
		<pubDate>Wed, 21 Jul 2010 03:21:12 +0000</pubDate>
		<dc:creator>Drew</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Misc]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[general]]></category>
		<category><![CDATA[digg]]></category>
		<category><![CDATA[news]]></category>
		<category><![CDATA[review]]></category>
		<category><![CDATA[website]]></category>

		<guid isPermaLink="false">http://www.geedew.com/?p=237</guid>
		<description><![CDATA[I&#8217;m a reader of Digg.com. What can I say? I like to hear the quirky stories sometimes and when I come across something intelligent, it makes me feel more like I&#8217;m learning. So when the new Digg was dropped into Beta testing, you bet that I was all over that. See some screen-shots after the [...]]]></description>
			<content:encoded><![CDATA[<img style='float: left; margin-right: 10px; border: none;' src='http://www.gravatar.com/avatar.php?gravatar_id=b02858dd9961de60a8a7d0f9efe9c758&amp;default=http://use.perl.org/images/pix.gif' alt='No Gravatar' width=20 height=20/><p>I&#8217;m a reader of Digg.com.  What can I say? I like to hear the quirky stories sometimes and when I come across something intelligent, it makes me feel more like I&#8217;m learning.  So when the new Digg was dropped into Beta testing, you bet that I was all over that.  See some screen-shots after the jump.<span id="more-237"></span></p>
<p><b>Logging In</b><br />
<hr />
The new Digg can be viewed by going to <a href="http://new.digg.com">http://new.digg.com</a> which drops you into a pretty nice looking log in screen.<br />

<a href='http://www.geedew.com/2010/07/20/the-new-digg-v4-quick-review/login/' title='Login Compared to the Old Digg'><img width="75" height="75" src="http://cdn.geedew.com/wp-content/uploads/2010/07/Login-75x75.png" class="attachment-thumbnail" alt="New login on the left, Old Digg on the right." title="Login Compared to the Old Digg" /></a>
<a href='http://www.geedew.com/2010/07/20/the-new-digg-v4-quick-review/connections/' title='Connections'><img width="75" height="75" src="http://cdn.geedew.com/wp-content/uploads/2010/07/Connections-75x75.png" class="attachment-thumbnail" alt="This shows the Digg setup page for connections" title="Connections" /></a>
<a href='http://www.geedew.com/2010/07/20/the-new-digg-v4-quick-review/loadmorebug/' title='LoadMoreBug'><img width="75" height="75" src="http://cdn.geedew.com/wp-content/uploads/2010/07/LoadMoreBug-75x75.png" class="attachment-thumbnail" alt="Bug that shows up when loading too many" title="LoadMoreBug" /></a>
<a href='http://www.geedew.com/2010/07/20/the-new-digg-v4-quick-review/digg4home/' title='Digg4Home'><img width="75" height="75" src="http://cdn.geedew.com/wp-content/uploads/2010/07/Digg4Home-75x75.png" class="attachment-thumbnail" alt="Current versus New Digg" title="Digg4Home" /></a>
</p>
<p><b>Connecting</b><br />
<hr />
The first time you log in, it has a really easy to follow setup that asks some basic questions for you to connect to other social sites.  I connected them all; Twitter,Google and Facebook. </p>
<p>Apparently not a single friend of mine is currently using Digg V4, no surprise there!</p>
<p><b>Usage</b><br />
<hr />
Digg is setting itself up in a very good way.  They are re-inventing themselves with this idea.  Before, you could only get Diggs via categories like Top Ten, Technology, etc. or you could find users and view the Diggs that they Dugg.  But now, it is being setup so that you control your Digg feed, according to those users that you Digg.  In which you can then Digg items up.  So from now on Digg will be able to suggest to you, only the items that you really would like to see (mrbabyman all the way!).</p>
<p><b>Bugs</b><br />
<hr />
I did however encounter a bug, to which I filed a report.  If you try to load more items than there are currently in the system, you get an error stating that there are no more items, but the loading never quits and still shows up as a click-able link.  So there are still some kinks to work out, but I for one think this is a great way to stay ahead of the rest!</p>
<p>&#8211; Update &#8211;<br />
Another bug was discovered. When clicking to add a link to your account (like adding my website to mine), if you press <enter> after typing in your web address, the form does not submit.  Instead the page refreshes and you lose your previous entry you typed in.  The only way to submit the form it to actually click the button.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.geedew.com/2010/07/20/the-new-digg-v4-quick-review/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Advanced button theming on jQuery UI Dialog</title>
		<link>http://www.geedew.com/2010/06/10/advanced-button-theming-on-jquery-ui-dialog/</link>
		<comments>http://www.geedew.com/2010/06/10/advanced-button-theming-on-jquery-ui-dialog/#comments</comments>
		<pubDate>Thu, 10 Jun 2010 15:23:23 +0000</pubDate>
		<dc:creator>Drew</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[How-To]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[jquery]]></category>

		<guid isPermaLink="false">http://www.geedew.com/?p=200</guid>
		<description><![CDATA[There is a very annoying bugfeature that I have found when using jQueryUI. It&#8217;s not the themes, they work great, in fact, they are the best thing since sliced bread. But in a &#8216;Cupertino.esc&#8217; way, they provide too much simplicity over the functionality that I require. This post aims to solve that in a progressive [...]]]></description>
			<content:encoded><![CDATA[<img style='float: left; margin-right: 10px; border: none;' src='http://www.gravatar.com/avatar.php?gravatar_id=b02858dd9961de60a8a7d0f9efe9c758&amp;default=http://use.perl.org/images/pix.gif' alt='No Gravatar' width=20 height=20/><p>	There is a very annoying <del datetime="2010-06-10T14:54:13+00:00">bug</del>feature that I have found when using jQueryUI.  It&#8217;s not the themes, they work great, in fact, they are the best thing since sliced bread.  But in a &#8216;Cupertino.esc&#8217;  way, they provide too much simplicity over the functionality that I require.  This post aims to solve that in a <em>progressive enhancement</em> sorta way.  I am using jQuery 1.4.2. with jQuery UI 1.8.2, it doesn&#8217;t matter what theme  you use with this, but I prefer <em>redmond</em>.</p>
<p><span id="more-200"></span>
<p>
	Let&#8217;s take a look at the core issue.  Here is what a typical dialog looks like in jQueryUI 1.8.2 with some nice buttons.</p>
<div id="attachment_203" class="wp-caption aligncenter" style="width: 310px"><a rel="attachment wp-att-203" href="http://www.geedew.com/2010/06/10/advanced-button-theming-on-jquery-ui-dialog/screen-capture-1/"><img class="size-medium wp-image-203" title="Typical 'Redmond' jQueryUI Dialog" src="http://cdn.geedew.com/wp-content/uploads/2010/06/screen-capture-1-300x191.png" alt="Typical 'Redmond' jQueryUI Dialog" width="300" height="191" /></a><p class="wp-caption-text">Perfect example of a jQueryUI Dialog</p></div>
<p>
	Here&#8217;s the simple code for this.</p>
<pre class="brush: xml;">
&lt;article id=&quot;dialogs&quot;&gt;
	&lt;a href=&quot;javascript: void(null);&quot; id=&quot;dialogbutton&quot;&gt;Open Dialog&lt;/a&gt;
	&lt;div title=&quot;this is my test this is my test this is my test this is my test&quot; id=&quot;dialogtest&quot;&gt;
	This is a div dialog test. This is a div dialog test. This is a div dialog test. This is a div dialog test. This is a div dialog test.
	&lt;/div&gt;
&lt;/article&gt;
</pre>
<pre class="brush: jscript;">
&lt;script type=&quot;text/javascript&quot;&gt;
	$(document).ready(function() {
		/* Create a dialog */
		$(&quot;#dialogtest&quot;).dialog({
                        title: &quot;Alert!&quot;,
			modal: true,
			buttons: {
				&quot;Ok&quot;: function() {
					$(this).dialog(&quot;close&quot;);
				},
				&quot;Cancel&quot;: function() {
					$(this).dialog(&quot;close&quot;);
				}
			}
		});

		/* Add Dialog Button Functionality */
		$('#dialogbutton').click(function(){
			$('#dialogtest').dialog('open');
			return false;
		});
	});

&lt;/script&gt;
</pre>
<p>	That&#8217;s really great, I mean that code is so small and yet you can get such a great looking item out of it.  So how can I have a problem with that? Well let me tell you how the buttons are made, you have a name and then you have that name point to a function.  The name is the text of the button, the function is the action of the button.  And that&#8217;s it. Period.</p>
<p>
	Now, I find it great that I can use these simplistic featuresets and get &#8216;get by&#8217; but normally my &#8220;Cancel don&#8217;t ever touch me button&#8221; is the color red(ish) while my &#8220;Oh you need to hit me to move on&#8221; button is the color green(ish).  But you cannot do that (easily) with this current setup.  In fact it&#8217;s very sloppy to force this setup into doing that and it ends up using a great amount of code just to do one thing, add a class.</p>
<p>
	To solve this, I did what any self respecting JavaScript ninja would do, <del datetime="2010-06-10T14:23:34+00:00">I said goodbye to jQuery UI</del> I opened up the source code and took a peek, found out where I could attack (fix) the code and I did it.<br />
        So before I show you the code, I will show you how I decided buttons should/could be made.  My process is 100% backward compatible, yet more difficult and easier to mess up (the original goal of jQueryUI was obviously to make it as simple as possible).</p>
<p>	Buttons with my code changes can now be made like this</p>
<pre class="brush: jscript;">
buttons: {
	&quot;Ok&quot;:  function() {
		$(this).dialog(&quot;close&quot;);
	},
	&quot;Cancel&quot;: {
		action : function() {
			$(this).dialog(&quot;close&quot;);
		},
		type : &quot;cancel&quot;
	}
</pre>
<pre class="brush: css;">
/* This is poor CSS by design to be simple and readable */
 div.ui-dialog-buttonpane button.cancel { background:none; border:0px none;color:red; }
</pre>
<p>	and the old way of doing it will still work just fine as well.</p>
<p>	I&#8217;ve gone ahead and added a few features, namely it is now name-points-to-object instead of the old name-points-to-function mentality.  This object has two attributes: action and type.  Action is the old function() that was pointed to and it will be called when this button is clicked. Type is the new feature on the block, it&#8217;s just a CSS class that is added to the function using jQuery.addClass.  I&#8217;ve tried to keep is simple, and at the same time, make it robust and backward compatible.  Here&#8217;s a simple change that is possible using this feature.</p>
<p><a rel="attachment wp-att-210" href="http://www.geedew.com/2010/06/10/advanced-button-theming-on-jquery-ui-dialog/screen-capture-2/"><img class="aligncenter size-medium wp-image-210" title="What jQuery UI dialog buttons should be able to do" src="http://cdn.geedew.com/wp-content/uploads/2010/06/screen-capture-2-300x203.png" alt="A jQuery UI with different colored buttons" width="300" height="203" /></a>
<p>
	Now my dialogs can look like this when I want them to.  This is a big usability thing (make the buttons descriptive, not just in text but in color/design and function).</p>
<p>	So the secret sauce to all of this is actually an extension of the jQueryUI 1.8.2 Dialog code (more like rewrite of some of the code).  This code can only be ran AFTER jQueryUI 1.8.2 has been created, otherwise you will get an error.  I placed this code into the jQueryUI 1.8.2 custom.js file itself for easy keeping; just drop it at the bottom of the file.</p>
<pre class="brush: jscript;">
/* TorchUI dialog button fix */
(function($) {
	var _createButtons = $.ui.dialog.prototype._createButtons;
	$.ui.dialog.prototype._createButtons = function(buttons) {
		var self = this,
		hasButtons = false,
		uiDialogButtonPane = $('&lt;div&gt;&lt;/div&gt;')
			.addClass(
				'ui-dialog-buttonpane ' +
				'ui-widget-content ' +
				'ui-helper-clearfix'
			);
		// if we already have a button pane, remove it
		self.uiDialog.find('.ui-dialog-buttonpane').remove();

		if (typeof buttons === 'object' &amp;&amp; buttons !== null) {
			$.each(buttons, function() {
				return !(hasButtons = true);
			});
		}
		if (hasButtons) {
			$.each(buttons, function(name, fn) {
                        /* Begin the code change here */
			// Check to see if fn is being passed in as a funciton, assume it's an object if not.
			 	if(!$.isFunction(fn)) {
			 		var buttonclass=fn.type;var func=fn.action; }
			 	else {
			 		var func=fn; var buttonclass=&quot;&quot;; }
				var button = $('&lt;button type=&quot;button&quot;&gt;&lt;/button&gt;')
					.text(name)
				/* Add a class to the button, if there is a class */
					.addClass(buttonclass)
					.click(function() { func.apply(self.element[0], arguments); })
					.appendTo(uiDialogButtonPane);
				if ($.fn.button) {
					button.button();
				}
			});
			uiDialogButtonPane.appendTo(self.uiDialog);
		}
	}
})(jQuery);
</pre>
<p>	If you have questions, please respond, I promise not to take them personally <img src='http://cdn.geedew.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.geedew.com/2010/06/10/advanced-button-theming-on-jquery-ui-dialog/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>jQuery UI Dialog Accessibility</title>
		<link>http://www.geedew.com/2010/02/25/jquery-ui-dialog-accessibility/</link>
		<comments>http://www.geedew.com/2010/02/25/jquery-ui-dialog-accessibility/#comments</comments>
		<pubDate>Fri, 26 Feb 2010 02:52:17 +0000</pubDate>
		<dc:creator>Drew</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[508]]></category>
		<category><![CDATA[Accessibility]]></category>
		<category><![CDATA[BugFix]]></category>
		<category><![CDATA[Defects]]></category>
		<category><![CDATA[jQuery UI]]></category>

		<guid isPermaLink="false">http://www.geedew.com/?p=185</guid>
		<description><![CDATA[jQuery UI is an amazing product. It&#8217;s not because it offers the best features, or that it offers the best solution, it&#8217;s that it offers a large degree of support for years to come. Which is saying a lot for something that is nothing more than JavaScript. It&#8217;s certainly something that many enterprises have begun [...]]]></description>
			<content:encoded><![CDATA[<img style='float: left; margin-right: 10px; border: none;' src='http://www.gravatar.com/avatar.php?gravatar_id=b02858dd9961de60a8a7d0f9efe9c758&amp;default=http://use.perl.org/images/pix.gif' alt='No Gravatar' width=20 height=20/><p>    jQuery UI is an amazing product.  It&#8217;s not because it offers the best features, or that it offers the best solution, it&#8217;s that it offers a large degree of support for years to come.  Which is saying a lot for something that is nothing more than JavaScript.  It&#8217;s certainly something that many enterprises have begun to look at and look for in the development world.  At my job at Coventry Healthcare, I&#8217;m responsible for the User Interfaces and generally the User Experience across some very highly visible web applications.  One of the most recent developments in our line of business is the risk of not having an accessible site (we fall under Section 508 guidelines because of our Medicare/Medicaid users).  jQuery UI has literally allowed me to very easily create and maintain large amounts of code so that I can spend more time making sure that it follows WCAG 2.0 and WARIA (which should cover us for S508).<span id="more-185"></span>
</p>
<p class="entry-text">So recently I discovered a very nasty bug dealing with jQuery UI dialog (withe modal:true) widgets that seems to only occur in Internet Explorer.  It goes like this:  If you are using a dialog with a screen reader, your main mode of navigation is with the keyboard.  This is typically driven via the focus on elements.  In jQuery, focus is demanded on the dialog because of the modal command.  You are unable to focus on anything other than the dialog and it&#8217;s elements.  Here&#8217;s the issue however, jQuery successfully  can keep focus on the dialog in all browsers tested (FF, Safari, Chrome) so that the focus cannot leave the dialog.  However in Internet Explorer (6, 7 and 8 ) your focus can get to the address bar, simply by tabbing to it.  Once in the address bar, jQuery is no longer able to track and handle the focus, so inevitable, after tabbing through the menu, focus come back to the window.  But instead of going to the dialog, it goes to the first element that can be tabbed to, which is undoubtedly BEHIND the modal dialog.  jQuery, subsequently locks the tabbing at this point, most likely because you have focus on and element that is unable to be focused (in jQuery&#8217;s dialog algorithm).
</p>
<p class="entry-text">So I cannot have this as that would literally cut 75% of my users from being able to use just a keyboard with the sites I&#8217;m maintaining.  So I had to find a solution.  First, IE seems to be the only browser with this issue and it has something to do with the fact that the focus moves out of the DOM&#8217;s control (out of jQuery&#8217;s control).  But the focus would always at least get back to the first element that could be tabbed to, and then lock.  So I devised a plan.  What if the first element, when focused, looks for an open dialog and if it is there, focuses on that dialog?  So I tried it out, like this.
</p>
<pre class="brush: jscript;">
$(document).ready(function() {
    $(&quot;:tabbable:first&quot;).focus(function() {
           $(&quot;.ui-dialog:visible:last :tabbable:first&quot;).focus();
    })
});
</pre>
<p class="entry-text">
Amazingly enough, this is the exact solution to the issue. This is how it reads.</p>
<ol>
<li>On page load</li>
<li>Get the first element that can be tabbed to in the body</li>
<li>When this element gains focus, check for a visible dialog</li>
<li>Take the visible dialog that is last (the last one drawn in the html) and get the first element that can be tabbed in it</li>
<li>give focus to that first element.</li>
</ol>
<p class="entry-text">
Now, in IE, when focus returns to the document, it goes to the dialog box, specifically, the close icon on the dialog box, thereby not breaking the fact that there a modal open on the page.
</p>
<p class="entry-text">
Now, there are some issues with this.  For one, the code is just assuming that the last dialog in the html that is visible is the one that is to be focused on.  Quite frankly, that&#8217;s what I need it for, as I try not to overlay dialogs, and when it do, the newest one is normally always on top.  However, there are times where you may swap between two dialogs, and the one that is on top is not the last dialog in the html, you would still have this issue in this case.  But for probably the other 95% of the cases, this is a clean and easy way to &#8216;fix&#8217; the accessibility issue in IE with jQuery UI dialog modals.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.geedew.com/2010/02/25/jquery-ui-dialog-accessibility/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Droid Rooted, here&#8217;s my take.</title>
		<link>http://www.geedew.com/2009/12/08/droid-rooted-heres-my-take/</link>
		<comments>http://www.geedew.com/2009/12/08/droid-rooted-heres-my-take/#comments</comments>
		<pubDate>Wed, 09 Dec 2009 05:42:30 +0000</pubDate>
		<dc:creator>Drew</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[How-To]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[2.01]]></category>
		<category><![CDATA[droid]]></category>
		<category><![CDATA[root]]></category>
		<category><![CDATA[update]]></category>
		<category><![CDATA[verizon]]></category>

		<guid isPermaLink="false">http://www.geedew.com/?p=144</guid>
		<description><![CDATA[Before you root, you should probably upgrade to 2.01, as that will &#8216;break&#8217; your new root access. You can get that download from here, if you have not already received it OTA (Over the Air). You need to follow the directions below, to apply the 2.01. The directions for each download it exactly the same, [...]]]></description>
			<content:encoded><![CDATA[<img style='float: left; margin-right: 10px; border: none;' src='http://www.gravatar.com/avatar.php?gravatar_id=b02858dd9961de60a8a7d0f9efe9c758&amp;default=http://use.perl.org/images/pix.gif' alt='No Gravatar' width=20 height=20/><p>Before you root, you should probably upgrade to 2.01, as that will &#8216;break&#8217; your new root access. You can get that download from <a href="https://android.clients.google.com/updates/voles/signed-voles-ESD56-from-ESD20.84263456.zip">here</a>, if you have not already received it OTA (Over the Air). You need to follow the directions below, to apply the 2.01.  The directions for each download it exactly the same, except for the ADB access.</p>
<p>This &#8216;root&#8217; is strictly for developers.  It&#8217;s not going to give you any ability to do anything to your phone yet, unless you really know your *nix commands well enough not to screw something up on your phone.  So continue only if you really want this ability (the ability to really screw up your phone).<br />
<span id="more-144"></span><br />
You can follow the direct postings <a href="http://alldroid.org/viewtopic.php?f=210&#038;t=567">here.</a><br />
I&#8217;ve downloaded the file (best link is <a href="http://alldroid.org/download/file.php?id=643">here</a>).  You should also download this file, as it will be needed.</p>
<blockquote><p>md5sum of the boot partition:<br />
3e49d99b320cf5c20bedf09343c1155c /dev/mtd/mtd2
</p></blockquote>
<p>Here is the `how-to` that <a href="http://alldroid.org/memberlist.php?mode=viewprofile&#038;u=1941">embeem</a> posted, I will add to it where I see fit, just to help some of those out as to what is going on.</p>
<blockquote><p>Download the zip file</p></blockquote>
<p>You can find the link at the top of this post.</p>
<blockquote><p>
Rename to &#8220;update.zip&#8221; and copy to the sdcard</p></blockquote>
<p>It is currently named `droid-root.zip`, `update.zip` is required as that will be used internally by the script in the program.</p>
<blockquote><p>Power off the DROID and power back on while holding the X key<br />
When you see a &#8220;/!\&#8221; symbol, press both vol+ and camera</p></blockquote>
<p>This isn&#8217;t magic, it&#8217;s simply a rescue mode. Slide the keyboard out to start. It&#8217;s very easy to figure out what is going on here.  You have to press and hold the volume Up key then press the camera button. </p>
<blockquote><p>Use the onscreen menu to install update.zip</p></blockquote>
<p>You must use your d-pad to do this.  just choose update.zip from the menu.</p>
<blockquote><p>Once installed you will be able to run &#8220;su&#8221; from your adb shell.</p></blockquote>
<p>This one is the kicker, best explained by <a href="http://alldroid.org/memberlist.php?mode=viewprofile&#038;u=2264">syntrix</a></p>
<blockquote><p>you have to attach your droid in debug mode in eclipse and use adb from the sdk. Again, I&#8217;m holding off on this, it&#8217;s my only phone.</p>
<p>But once you get this access, you can run commands natively, and copy files to the sd and pull them off the droid.</p></blockquote>
<p>ADB is only ran from the SDK developers tools.  In other words, you are running command from your computer, not the phone.</p>
<p>Now, to take this a step further, we can also get a terminal emulator running on the phone with root access according to <a href="http://alldroid.org/memberlist.php?mode=viewprofile&#038;u=2309">mjxg&#8217;s</a> post&#8230;</p>
<blockquote><p>
1) download this: http://www.magicandroidapps.com/su.zip<br />
2) push it to your phone</p>
<p>C:\Android>adb push su /data/local<br />
595 KB/s (76200 bytes in 0.125s)</p>
<p>3) C:\Android>adb shell<br />
$ su<br />
# mount -o remount,rw -t yaffs2 /dev/block/mtdblock3 /system<br />
# cd /system/bin<br />
# mv su osu<br />
# cat /data/local/su > su<br />
# chmod 6755 su</p>
<p>4) verify</p>
<p># ls -l *su<br />
-rwsr-sr-x root root 76200 2008-08-01 05:00 osu<br />
-rwsr-sr-x root root 76200 2009-05-30 11:28 su</p>
<p>5) finish</p>
<p># sync<br />
# reboot</p>
<p>6) open up a terminal emulator on the phone and run `su` and enjoy</p></blockquote>
<p>With all this said, this is a remarkable, easy root access. It literally is just adding a file  (&#8216;su&#8217;) that the user has permissions to.  &#8216;SU&#8217; means, switch user, and by default, that user is root.  Giving the user access to this file, means they can run that command, and if that file has the right permissions, which is does in the update, it will run &#8216;as&#8217; root.  And tada, you can now begin to get access to the rest of the system!</p>
<p>Developers will now take over.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.geedew.com/2009/12/08/droid-rooted-heres-my-take/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bulletproof @font-face</title>
		<link>http://www.geedew.com/2009/12/07/bulletproof-font-face/</link>
		<comments>http://www.geedew.com/2009/12/07/bulletproof-font-face/#comments</comments>
		<pubDate>Tue, 08 Dec 2009 04:12:55 +0000</pubDate>
		<dc:creator>Drew</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[Bulletproof]]></category>
		<category><![CDATA[Font-Face]]></category>
		<category><![CDATA[Zeldman]]></category>

		<guid isPermaLink="false">http://www.geedew.com/?p=139</guid>
		<description><![CDATA[There is quite an interesting discussion going on at Jeffrey Zeldman&#8217;s blog concerning the @font-face syntax and how to make sure that it is working in all browsers. It&#8217;s interesting to see the different &#8216;hacks&#8217; that are being put together for something that should be hashed out to work well in all major browsers. Why [...]]]></description>
			<content:encoded><![CDATA[<img style='float: left; margin-right: 10px; border: none;' src='http://www.gravatar.com/avatar.php?gravatar_id=b02858dd9961de60a8a7d0f9efe9c758&amp;default=http://use.perl.org/images/pix.gif' alt='No Gravatar' width=20 height=20/><p>There is quite an interesting discussion going on at <a href="http://www.zeldman.com/2009/12/02/bulletproof-font-face/">Jeffrey Zeldman&#8217;s blog</a> concerning the @font-face syntax and how to make sure that it is working in all browsers.  It&#8217;s interesting to see the different &#8216;hacks&#8217; that are being put together for something that should be hashed out to work well in all major browsers.  Why does this remind me of things like the wonky implementations being played out in html5?!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.geedew.com/2009/12/07/bulletproof-font-face/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Scribd and Slide mode : Why is my height wrong?</title>
		<link>http://www.geedew.com/2009/07/29/scribd-and-slide-mode-why-is-my-height-wrong/</link>
		<comments>http://www.geedew.com/2009/07/29/scribd-and-slide-mode-why-is-my-height-wrong/#comments</comments>
		<pubDate>Thu, 30 Jul 2009 05:06:02 +0000</pubDate>
		<dc:creator>Drew</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Scribd]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[BugFix]]></category>

		<guid isPermaLink="false">http://www.geedew.com/?p=106</guid>
		<description><![CDATA[While recently using Scribd&#8216;s services, I came across a very nasty bug, and a nice clean fix.  Scribd allows developers to tap into a great, but somewhat basic API.  One of these settings allows a developer to set a default &#8216;mode&#8217; before the API then builds the flash calls necessary to display the document.  The [...]]]></description>
			<content:encoded><![CDATA[<img style='float: left; margin-right: 10px; border: none;' src='http://www.gravatar.com/avatar.php?gravatar_id=b02858dd9961de60a8a7d0f9efe9c758&amp;default=http://use.perl.org/images/pix.gif' alt='No Gravatar' width=20 height=20/><p>While recently using <a href="http://www.scribd.com/about">Scribd</a>&#8216;s services, I came across a very nasty bug, and a nice clean fix.  <a href="http://www.scribd.com/about">Scribd</a> allows developers to tap into a great, but somewhat basic <a href="http://www.scribd.com/developers/api?method_name=Javascript+API">API</a>.  One of these settings allows a developer to set a default &#8216;mode&#8217; before the <a href="http://www.scribd.com/developers/api?method_name=Javascript+API">API</a> then builds the flash calls necessary to display the document.  The issue comes up when you choose the &#8216;slide&#8217; mode as the loading view.  No matter what &#8216;height&#8217; you set, with &#8216;auto_size&#8217; set to false, the height will adjust to the wrong height.</p>
<p><span id="more-106"></span></p>
<p class="entry-text">
You can jump to the code <a href="#finishedCode">here</a>, or continue.</p>
<p class="entry-text">
I started by writing some simple code that follows the API.
</p>
<pre class="brush: jscript;">
scribd_doc.addParam( 'mode', 'slide' );
scribd_doc.addParam( 'height', 800 );
scribd_doc.addParam( 'width', 600 );
scribd_doc.addParam( 'jsapi_version', 1 );
scribd_doc.addParam( 'auto_size', false );
scribd_doc.write( 'flash_catalog' );
</pre>
<p class="entry-text">Where &#8216;flash_catalog&#8217; is the container div of the <a href="http://www.scribd.com/about">Scribd</a> PDF.</p>
<p class="entry-text">
This however led me to have a height that follows the default rules (width multiplier of 85/110) where the height matches how much space is in the window. So I progressed further with this code.</p>
<pre class="brush: jscript;">
var oniPaperReady = function(e){
 $(&quot;#flash_catalog embed&quot;)
.attr(&quot;wmode&quot;,&quot;transparent&quot;)
.hide()
.css({&quot;height&quot;:&quot;800px&quot;, &quot;width&quot;:&quot;600px&quot;})
.show();
}

scribd_doc.addEventListener( 'iPaperReady', oniPaperReady );
scribd_doc.addParam( 'mode', 'slide' );
scribd_doc.addParam( 'jsapi_version', 1 );
scribd_doc.addParam( 'auto_size', false );
scribd_doc.write( 'flash_catalog' );
</pre>
<p class="entry-text">So now I am dropping in a listener in the API to wait for the document to load.  I then hide the &#8216;embed&#8217; flash information, then add the height and width, then re-show the flash element.<?p></p>
<p class="entry-text">
You may notice, I&#8217;m using <a href="http://jquery.com/">jQuery</a>, in which you can do the same thing with regular JavaScript, although quite a bit more complicated (ask if you really really need that code).</p>
<p class="entry-text">
An astute reader would also notice one thing, I&#8217;m not adjusting for an &#8216;object&#8217; tag, only the &#8216;embed&#8217; tag (the difference for flash between different browsers).  I figured out this novice mistake while testing in Internet Explorer.  Here&#8217;s the finished code, that works, removing the nasty height issue.</p>
<div id="finishedCode">
<pre class="brush: jscript;">
var scribd_doc = scribd.Document.getDoc( #######, 'key-*******************' );

var oniPaperReady = function(e){
$(&quot;#flash_catalog embed&quot;)
.attr(&quot;wmode&quot;,&quot;transparent&quot;)
.hide()
.css({&quot;height&quot;:&quot;800px&quot;, &quot;width&quot;:&quot;600px&quot;})
.show();

$(&quot;#flash_catalog object&quot;)
.attr(&quot;wmode&quot;,&quot;transparent&quot;)
.hide()
.css({&quot;height&quot;:&quot;800px&quot;, &quot;width&quot;:&quot;600px&quot;})
.show();
}

scribd_doc.addEventListener( 'iPaperReady', oniPaperReady );
scribd_doc.addParam( 'mode', 'slide' );
scribd_doc.addParam( 'jsapi_version', 1 );
scribd_doc.addParam( 'auto_size', false );
scribd_doc.write( 'flash_catalog' );
</pre>
</div>
<p class="entry-text">The final word; I&#8217;m adding the transparent mode so that I can then have a menu that drops on top of the flash.  This works very well!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.geedew.com/2009/07/29/scribd-and-slide-mode-why-is-my-height-wrong/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Making a better notification plugin: jQuery</title>
		<link>http://www.geedew.com/2009/07/22/making-a-better-notification-plugin-jquery/</link>
		<comments>http://www.geedew.com/2009/07/22/making-a-better-notification-plugin-jquery/#comments</comments>
		<pubDate>Thu, 23 Jul 2009 03:33:18 +0000</pubDate>
		<dc:creator>Drew</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[Notify]]></category>
		<category><![CDATA[Plugin]]></category>

		<guid isPermaLink="false">http://www.geedew.com/?p=100</guid>
		<description><![CDATA[I find myself at a crossroads. I really like using jQuery, and I really like not having to write my own plugins as there are some really good ones out there. But I have run into a problem when it comes to a notification system. Let&#8217;s take a step back and discuss the purpose for [...]]]></description>
			<content:encoded><![CDATA[<img style='float: left; margin-right: 10px; border: none;' src='http://www.gravatar.com/avatar.php?gravatar_id=b02858dd9961de60a8a7d0f9efe9c758&amp;default=http://use.perl.org/images/pix.gif' alt='No Gravatar' width=20 height=20/><p>I find myself at a crossroads.  I really like using jQuery, and I really like not having to write my own plugins as there are some really good ones out there.  But I have run into a problem when it comes to a notification system.  Let&#8217;s take a step back and discuss the purpose for a minute.</p>
<p class="entry-text" style="background-color:#F7FFBF">
** Update 7/29/2009**<br />
I now have a page dedicated to this at <a href="http://www.alldorks.com/wordpress/notify">http://www.alldorks.com/wordpress/notify</a> where you can also find the source code repository.
</p>
<p><span id="more-100"></span></p>
<p class="entry-text">Within a website&#8217;s user interface you have common tasks.  Of late, with ajax, overlays|dialogs|lightboxes have become common place.  Usually developers will use these to replace their `alerts`, `confirms` and leave it at that.  But what happens when a user does something and they need to be told &#8220;Hey, I got that and it was all ok&#8221;.  So you simply make an `alert` and let them know.  But then you have created this thing that they must read, click and then move on.  Add that up, and a user that is moving right along, may have to do 10 clicks a minute extra.  Or better yet, daily tasks are now incorporating clicks that are basically pointless.  A better solutions is to open up a notification, not unlike what is found in OSX, Gnome and Windows.  I&#8217;m talking about those little rounded popups that show up in some corner and then disappear.  Those&#8230; are notifications, and have been missing from most websites that really need them.</p>
<p class="entry-text">So now you know what I wanted.  A good looking notification system that is robust, adaptive, lightweightish, easy to work with, etc, etc.  Well, I couldn&#8217;t find that.  I did find mainly two that are out there, <a target="_blank" href="http://stanlemon.net/projects/jgrowl.html">jGrowl</a> and <a target="_blank" href="http://boedesign.com/2009/07/11/growl-for-jquery-gritter/">Gritter</a>.  Both are Okay, but I run into issues with both of them whenever I&#8217;m coding. Namely, what if I want multiple notification areas?  That shouldn&#8217;t be that hard, but it becomes a nightmare to edit and maintain their code.  Also, what if I miss the notification (getting coffee), how can I get it back?  Finally, why is it so difficult to change how these dang things look!  So I put my foot down and decided, &#8220;I will go it alone on this one&#8221;.  I rolled up my sleeves and put my knowledge together to form a better notification plugin.  I&#8217;m calling it &#8220;notify&#8221;, and I think it will quickly become a better platform for notifications.</p>
<p class="entry-text">I have a few things that I have been focused on:
</p>
<ul>
<li>Multiple notification spots (middle, top-left, unlimited with css)</li>
<li>Simple default notifications, completely customizable with options</li>
<li>Support for Class A browsers minus IE6, with hacks later to work it into IE6</li>
<li>Notification history manager, along with stickyness, and missed notices handling</li>
</ul>
<p class="entry-text">The list goes on from there.  It&#8217;s probably best to just play with the code, for now, it&#8217;s very raw, I will probably host a page on http://alldorks.com/ for it soon, along with a version control system to get the code from.  In any case, enjoy!</p>
<p class="entry-text">
<a href="http://geedew.com/notify.html" target="_blank">View the Demo Page, code is in the page </a></p>
<p>
]]></content:encoded>
			<wfw:commentRss>http://www.geedew.com/2009/07/22/making-a-better-notification-plugin-jquery/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Geedew going through some changes</title>
		<link>http://www.geedew.com/2009/06/01/geedew-going-through-some-changes/</link>
		<comments>http://www.geedew.com/2009/06/01/geedew-going-through-some-changes/#comments</comments>
		<pubDate>Tue, 02 Jun 2009 05:03:30 +0000</pubDate>
		<dc:creator>Drew</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[webdesign]]></category>

		<guid isPermaLink="false">http://geedew.com/?p=62</guid>
		<description><![CDATA[So I have finally been able to spend some time on one of my own sites! Hurray for me right? For the time being, you may be seeing some weird illusions in the design&#8230; and you will notice that some links at the top are not working. It&#8217;s all in the works, I&#8217;m just happy [...]]]></description>
			<content:encoded><![CDATA[<img style='float: left; margin-right: 10px; border: none;' src='http://www.gravatar.com/avatar.php?gravatar_id=b02858dd9961de60a8a7d0f9efe9c758&amp;default=http://use.perl.org/images/pix.gif' alt='No Gravatar' width=20 height=20/><p>So I have finally been able to spend some time on one of my own sites!  Hurray for me right?  For the time being, you may be seeing some weird illusions in the design&#8230; and you will notice that some links at the top are not working.  It&#8217;s all in the works, I&#8217;m just happy I have time to work on it!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.geedew.com/2009/06/01/geedew-going-through-some-changes/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
