<?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"
	>

<channel>
	<title>almost daniel</title>
	<atom:link href="http://almostdaniel.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://almostdaniel.com</link>
	<description>a pretty big deal since 1977.</description>
	<pubDate>Wed, 25 Jun 2008 15:05:29 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5</generator>
	<language>en</language>
			<item>
		<title>End of Year</title>
		<link>http://almostdaniel.com/2008/06/25/end-of-year/</link>
		<comments>http://almostdaniel.com/2008/06/25/end-of-year/#comments</comments>
		<pubDate>Wed, 25 Jun 2008 15:05:29 +0000</pubDate>
		<dc:creator>daniel</dc:creator>
		
		<category><![CDATA[Blog]]></category>

		<guid isPermaLink="false">http://almostdaniel.com/?p=26</guid>
		<description><![CDATA[From our director of Purchasing:
DO NOT CREATE ANY REQUISITIONS ON MONDAY JUNE 30. Any requisition created on June 30 will be canceled by Purchasing and you will need to recreate it on July 1 with new year funds and your name will be removed from the book of life.
]]></description>
			<content:encoded><![CDATA[<p>From our director of Purchasing:</p>
<blockquote><p>DO NOT CREATE ANY REQUISITIONS ON MONDAY JUNE 30. Any requisition created on June 30 will be canceled by Purchasing and you will need to recreate it on July 1 with new year funds and your name will be removed from the book of life.</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://almostdaniel.com/2008/06/25/end-of-year/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Portals, identity, and user experience</title>
		<link>http://almostdaniel.com/2008/05/30/portals-identity-and-user-experience/</link>
		<comments>http://almostdaniel.com/2008/05/30/portals-identity-and-user-experience/#comments</comments>
		<pubDate>Fri, 30 May 2008 22:05:34 +0000</pubDate>
		<dc:creator>daniel</dc:creator>
		
		<category><![CDATA[Blog]]></category>

		<category><![CDATA[Presentations]]></category>

		<category><![CDATA[Travel]]></category>

		<guid isPermaLink="false">http://almostdaniel.com/?p=22</guid>
		<description><![CDATA[I just returned from the 2008 Portlets and Consortium conferences for the CampusEAI Consortium. I participated in three presentations (more on that later), stood up and talked a lot, and showed how Wii bowling both helps and hurt you when you go to a real bowling alley.


]]></description>
			<content:encoded><![CDATA[<p>I just returned from the 2008 Portlets and Consortium conferences for the <a href="http://campuseai.org/" onclick="javascript:urchinTracker ('/outbound/article/campuseai.org');">CampusEAI Consortium</a>. I participated in three presentations (more on that later), stood up and talked a lot, and showed how Wii bowling both helps and hurt you when you go to a real bowling alley.</p>
<p><img src="http://almostdaniel.com/wp-content/uploads/2008/05/cea2008bowling.jpg" alt="Three guys with their arms extended in a bowling pose and silly looks on their faces." title="cea2008bowling" width="500" height="456" class="alignnone size-full wp-image-23" /></p>
<p><img src="http://almostdaniel.com/wp-content/uploads/2008/06/meet_and_greet_at_the_corner_alley_-_241.jpg" alt="Dheeraj, daniel, Jeanette, and Subhasish at the bowling alley" width="500" height="375" class="alignone size-full" /></p>
]]></content:encoded>
			<wfw:commentRss>http://almostdaniel.com/2008/05/30/portals-identity-and-user-experience/feed/</wfw:commentRss>
		</item>
		<item>
		<title>gravatars</title>
		<link>http://almostdaniel.com/2008/05/15/gravatars/</link>
		<comments>http://almostdaniel.com/2008/05/15/gravatars/#comments</comments>
		<pubDate>Fri, 16 May 2008 03:14:23 +0000</pubDate>
		<dc:creator>daniel</dc:creator>
		
		<category><![CDATA[Blog]]></category>

		<category><![CDATA[Featured Site]]></category>

		<guid isPermaLink="false">http://almostdaniel.com/?p=20</guid>
		<description><![CDATA[Gravatars – Globally Recognized Avatars – may be the coolest thing since MU*s. Yes, I&#8217;m showing my age. I was a text-only geek. It&#8217;s how I learned to roleplay. It&#8217;s how I learned to program/code. It&#8217;s how I had my first social-networking interaction via the internet. This was back in the day when people were [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://gravatar.com/"href='http://gravatar.com'><img class="left" src="http://almostdaniel.com/wp-content/uploads/2008/05/gravatar.gif" alt="The Gravatar logo" title="gravatar" width="69" height="80" class="alignnone size-full wp-image-21" /></a><a  onclick="javascript:urchinTracker ('/outbound/article/gravatar.com');">Gravatars</a> – Globally Recognized Avatars – may be the coolest thing since <a href="http://en.wikipedia.org/wiki/MU%2A" onclick="javascript:urchinTracker ('/outbound/article/en.wikipedia.org');">MU*s</a>. Yes, I&#8217;m showing my age. I was a text-only geek. It&#8217;s how I learned to roleplay. It&#8217;s how I learned to program/code. It&#8217;s how I had my first social-networking interaction via the internet. This was back in the day when people were trying to get all sorts of &#8220;universal&#8221; ideas going. Every web site (that I was interested in) seemed to be a new kind of trinket you could add to your internet satchel. I thought all of that was gone with the dot.com bloom and bust, and the web 2.0 age of slick social services.</p>
<p>But thanks to WordPress, I find out (belatedly, of course) about <a href="http://gravatar.com/" onclick="javascript:urchinTracker ('/outbound/article/gravatar.com');">Gravatar</a>. You upload your avatar – a small photo or icon – to a central place, and the icon will auto-magically appear next to your name the next time you comment on someone&#8217;s blog. Of course, it only works with those blog sites that are using compatible blogging tools or plugins (WordPress now supports it natively).</p>
<p>But what a great idea! And they&#8217;ve implemented it in true web 2.0 style – not AJAX for AJAX&#8217;s sake but a clean and simple interface that lets you do exactly what you need and then gets out of the way. Bravo!</p>
]]></content:encoded>
			<wfw:commentRss>http://almostdaniel.com/2008/05/15/gravatars/feed/</wfw:commentRss>
		</item>
		<item>
		<title>I&#8217;m a real boy, er, plugin!</title>
		<link>http://almostdaniel.com/2008/04/06/im-a-real-boy-er-plugin/</link>
		<comments>http://almostdaniel.com/2008/04/06/im-a-real-boy-er-plugin/#comments</comments>
		<pubDate>Mon, 07 Apr 2008 03:07:05 +0000</pubDate>
		<dc:creator>daniel</dc:creator>
		
		<category><![CDATA[Blog]]></category>

		<category><![CDATA[FormPress]]></category>

		<category><![CDATA[wordpress.org]]></category>

		<guid isPermaLink="false">http://almostdaniel.com/?p=17</guid>
		<description><![CDATA[It&#8217;s official. FormPress is now live at wordpress.org.

]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s official. FormPress is now live at <a href="http://wordpress.org/extend/plugins/formpress/" onclick="javascript:urchinTracker ('/outbound/article/wordpress.org');">wordpress.org</a>.<br />
<a href='http://almostdaniel.com/wp-content/uploads/2008/04/wordpress-formpress.png'><img src="http://almostdaniel.com/wp-content/uploads/2008/04/wordpress-formpress-thumb.png" alt="Thumbnail image of the WordPress.org Plugin Directory" title="wordpress-formpress-thumb"  class="alignnone wp-image-18" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://almostdaniel.com/2008/04/06/im-a-real-boy-er-plugin/feed/</wfw:commentRss>
		</item>
		<item>
		<title>FormPress 0.2 Released</title>
		<link>http://almostdaniel.com/2008/04/03/formpress-02-released/</link>
		<comments>http://almostdaniel.com/2008/04/03/formpress-02-released/#comments</comments>
		<pubDate>Thu, 03 Apr 2008 20:31:38 +0000</pubDate>
		<dc:creator>daniel</dc:creator>
		
		<category><![CDATA[Blog]]></category>

		<category><![CDATA[Code]]></category>

		<category><![CDATA[FormPress]]></category>

		<guid isPermaLink="false">http://almostdaniel.com/2008/04/03/formpress-02-released/</guid>
		<description><![CDATA[The second update for the beta of FormPress has been released. This version introduces a new &#8220;Required Fields&#8221; feature as well as many maintenance updates.
]]></description>
			<content:encoded><![CDATA[<p>The second update for the beta of <a href="http://almostdaniel.com/formpress/" >FormPress</a> has been released. This version introduces a new &#8220;Required Fields&#8221; feature as well as <a href="http://almostdaniel.com/formpress/changelog/" >many maintenance updates</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://almostdaniel.com/2008/04/03/formpress-02-released/feed/</wfw:commentRss>
		</item>
		<item>
		<title>1</title>
		<link>http://almostdaniel.com/2008/03/24/1/</link>
		<comments>http://almostdaniel.com/2008/03/24/1/#comments</comments>
		<pubDate>Mon, 24 Mar 2008 23:27:50 +0000</pubDate>
		<dc:creator>daniel</dc:creator>
		
		<category><![CDATA[Comic]]></category>

		<guid isPermaLink="false">http://almostdaniel.com/2008/03/24/1/</guid>
		<description><![CDATA[
]]></description>
			<content:encoded><![CDATA[<p><object width="480" height="400"><param name="movie" value="http://bitstrips.com/swfs/reader.swf?comic_id=17280"></param><param name="wmode" value="transparent"></param><embed src="http://bitstrips.com/swfs/reader.swf?comic_id=17280" type="application/x-shockwave-flash" wmode="transparent" width="480" height="400"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://almostdaniel.com/2008/03/24/1/feed/</wfw:commentRss>
		</item>
		<item>
		<title>all i want is to eat your brains.</title>
		<link>http://almostdaniel.com/2008/03/09/all-i-want-is-to-eat-your-brains/</link>
		<comments>http://almostdaniel.com/2008/03/09/all-i-want-is-to-eat-your-brains/#comments</comments>
		<pubDate>Mon, 10 Mar 2008 04:37:21 +0000</pubDate>
		<dc:creator>daniel</dc:creator>
		
		<category><![CDATA[Travel]]></category>

		<category><![CDATA[sxsw]]></category>

		<category><![CDATA[sxsw jonathan coulton heather armstrong]]></category>

		<guid isPermaLink="false">http://almostdaniel.com/2008/03/09/all-i-want-is-to-eat-your-brains/</guid>
		<description><![CDATA[
  
 
  Daniel with Heather Armstrong
  Originally uploaded by poortvld
 

I am at sxsw interactive. This is my second year. This conference gives me the ideas and the energy to try and make a place for myself in the web industry.  This is Day Two, and the panels have been [...]]]></description>
			<content:encoded><![CDATA[<div style="float: right; margin-left: 10px; margin-bottom: 2px;">
  <a href="http://www.flickr.com/photos/greedyfly/2325137210/" title="photo sharing" onclick="javascript:urchinTracker ('/outbound/article/www.flickr.com');"><img src="http://farm4.static.flickr.com/3012/2325137210_b1f53f9d9f_m.jpg" alt="" style="border: solid 2px #000000;" /></a><br />
 <span style="font-size: 0.9em; margin-top: 0px;"><br />
  <a href="http://www.flickr.com/photos/greedyfly/2325137210/" onclick="javascript:urchinTracker ('/outbound/article/www.flickr.com');">Daniel with Heather Armstrong</a><br />
  Originally uploaded by <a href="http://www.flickr.com/people/greedyfly/" onclick="javascript:urchinTracker ('/outbound/article/www.flickr.com');">poortvld</a><br />
 </span>
</div>
<p>I am at <a href="http://sxsw.com/" title="South by Southwest Interactive" onclick="javascript:urchinTracker ('/outbound/article/sxsw.com');">sxsw interactive</a>. This is my second year. This conference gives me the ideas and the energy to try and make a place for myself in the web industry.  This is Day Two, and the panels have been great (most of them), the people I meet and re-meet have made this a blast (most of the time), and in the same day I met <a href="http://dooce.com" onclick="javascript:urchinTracker ('/outbound/article/dooce.com');">Heather Armstrong</a> (dooce.com) and <a href="http://www.jonathancoulton.com/" onclick="javascript:urchinTracker ('/outbound/article/www.jonathancoulton.com');">Jonathan Coulton</a>. I also walked past <a href="http://www.birbigs.com/" onclick="javascript:urchinTracker ('/outbound/article/www.birbigs.com');">Mike Birbiglia</a> but he was sitting at a table and I figured it would be like swooping down on a helpless rabbit who told really funny jokes, so I kept on walking.</p>
<p>I&#8217;m not a fanboy. Right, I have an iPhone. Right, I wear Converse or Adidas shoes. But I have never a) stolen a set list and gotten it autographed, or  b) told a famous blogger that my mother doesn&#8217;t like it when she uses the F-word. Until today.</p>
<p><span id="more-12"></span><br />
I started reading Heather Armstrong&#8217;s blog because of my aunt Tori and my mom. I suppose that reading a chick blog is not the manliest thing one can do. Especially one referred to you by your mom. I mean, I prudently wear boots, hunt deer, and spit a lot while I read it (for balance), but my sxsw friends were mildly amused at what I hope wasn&#8217;t too starstruck an expression on my face. Heather joined her friend-blogger Margaret Mason to discuss keeping blogging under control (&#8221;<a href="http://2008.sxsw.com/interactive/programming/panels_schedule/?action=show&#038;id=IAP060363" onclick="javascript:urchinTracker ('/outbound/article/2008.sxsw.com');">Content Boundaries, a 12-step Program</a>&#8220;). Heather is great to hear speak. It&#8217;s refreshing to find that she talks like she writes, frankly and honestly. I especially liked when she switched places with me for our photo, to get on her good side. I respect that.</p>
<div style="float: right; margin-left: 10px; margin-bottom: 2px;">
<a href="http://www.flickr.com/photos/scottfidd/2323852079/" title="photo sharing" onclick="javascript:urchinTracker ('/outbound/article/www.flickr.com');"><img src="http://farm4.static.flickr.com/3083/2323852079_0f72f3d953_m.jpg" alt="" style="border: solid 2px #000000;" /></a><br />
 <span style="font-size: 0.9em; margin-top: 0px;"><br />
  <a href="http://www.flickr.com/photos/scottfidd/2323852079/" onclick="javascript:urchinTracker ('/outbound/article/www.flickr.com');">Daniel with Jonathan Coulton</a><br />
  Originally uploaded by <a href="http://www.flickr.com/people/scottfidd/" onclick="javascript:urchinTracker ('/outbound/article/www.flickr.com');">scottfidd</a><br />
 </span>
</div>
<p>Jonathan Coulton got on my radar because of the portals song, of course. My oldest brother played it for me, and it is just brilliant. So I jumped at the chance to see him live. He gives a subtle but hilarious show that I enjoyed. And I&#8217;m hooked. I&#8217;m now a total fan.</p>
<p>If my laptop had a battery that lasted longer than a very interesting 10 minutes, I would be putting more information about the cool stuff I&#8217;m actually learning here. That will have to come later, in a more distilled form.</p>
]]></content:encoded>
			<wfw:commentRss>http://almostdaniel.com/2008/03/09/all-i-want-is-to-eat-your-brains/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Gray Hat Hacking</title>
		<link>http://almostdaniel.com/2008/02/06/gray-hat-hacking/</link>
		<comments>http://almostdaniel.com/2008/02/06/gray-hat-hacking/#comments</comments>
		<pubDate>Wed, 06 Feb 2008 21:04:57 +0000</pubDate>
		<dc:creator>daniel</dc:creator>
		
		<category><![CDATA[Academics]]></category>

		<category><![CDATA[black hat]]></category>

		<category><![CDATA[crime]]></category>

		<category><![CDATA[ethics]]></category>

		<category><![CDATA[gray hat]]></category>

		<category><![CDATA[hacker]]></category>

		<category><![CDATA[hacking]]></category>

		<category><![CDATA[programming]]></category>

		<category><![CDATA[white hat]]></category>

		<guid isPermaLink="false">http://almostdaniel.com/2008/02/06/gray-hat-hacking/</guid>
		<description><![CDATA[<p>In 1999, a seventeen year old hacker with the handle “ytcracker” exploited a weakness in Microsoft NT’s web service and replaced the homepage of three U.S. government agency web sites. The homepages of NASA’s Goddard Flight Center, the office of Land Management’s National Training Center, and a Defense Contracts Audit Agency suddenly showed an image of a graffiti-like rapper with gold necklaces and the message:</p>
<blockquote>To the U.S. government and military--I have warned you about these security flaws. Please secure our military systems to protect us from cyber attack.</blockquote>
<p>ytcracker’s message was accurate--he did send messages to the administrators of these systems notifying them of the vulnerabilities. When they did not fix the security flaws, he used them to breach their systems. The seventeen-year old was charged and fined $30,000 for unauthorized access of a computer system.</p>]]></description>
			<content:encoded><![CDATA[<p>In mainstream culture, the term hacker has a negative connotation. It is a synonym for a person who commits computer crimes, usually by breaching security systems. The hacker community prefers to bestow the name hacker to highly skilled programmers who are admired for ingenious and clever uses of technology and programming. In the security industry, there are three “shades” of hacker: white hat, black hat, and gray hat. Each type of hacker is known by his intent, ethic, and authority to breach a security system.</p>
<p><span id="more-11"></span></p>
<h3>Three Hats</h3>
<p>White hat hackers are members of the security industry hired specifically to test and find security vulnerabilities in production systems and applications. A company might hire a white hat hacker to attempt to breach their networks and systems without their knowledge. This is very similar to popular television shows where a homeowner learns just how easy it is to break into their own house. The television burglar is videotaped getting through all of their security systems, and then offers advice on how to secure their property. White hat hackers are obviously not going to cause any damage for their clients, and their intent is to strengthen the security measures a client takes against attack. They do not break any laws, as their access to the network, while using the same methods that a malicious hacker (or “cracker”) might use, is perfectly authorized by prior contract.</p>
<p>Black hat hackers are, naturally, the antithesis to a white hat hacker. The hacker community refers to these programmers (often as skilled as true hackers) as crackers, due to their malicious intent to harm or gain profit from hacking. Black hat hackers do not follow any particular ethic, and break into systems for no other reason that to commit a crime of some sort. These are the types of hackers that are most covered in the media, and are often the focus of legislation and public outcry. It is the actions of black hat hackers that have generated a negative image for hacking.</p>
<p>Gray hat hackers are a hybrid of the previous two types. They share the same ethical foundation as the original hacker, but they stretch the boundaries of that ethic into a sort of vigilanteism. The gray hat hacker’s intent is much the same as the white hat hacker: these hackers want to expose vulnerabilities in public and government systems in order to force these systems to become more secure. Yet they do not seek prior consent or authorization. They prefer to hack into these systems anonymously and leave their mark, informing system owners of the vulnerabilities on the way out. They often do not cause any irreparable damage, although they have been known to cross the line into black hat behavior. Because they are not regulated by the security industry’s public ethics (as white hat hackers are), there is no hard and fast code that means a gray hat hacker will always have the greatest good in mind. But for the most part, the intent is to show off by showing other people how vulnerable their systems really are. Gray hat hacking often occurs as a type of “tagging,” much like the graffiti artists of subway fame.</p>
<h3>Case Study</h3>
<p>In 1999, a seventeen year old hacker with the handle “ytcracker” exploited a weakness in Microsoft NT’s web service and replaced the homepage of three U.S. government agency web sites. The homepages of NASA’s Goddard Flight Center, the office of Land Management’s National Training Center, and a Defense Contracts Audit Agency suddenly showed an image of a graffiti-like rapper with gold necklaces and the message:</p>
<blockquote><p>To the U.S. government and military&#8211;I have warned you about these security flaws. Please secure our military systems to protect us from cyber attack.</p></blockquote>
<p>ytcracker’s message was accurate&#8211;he did send messages to the administrators of these systems notifying them of the vulnerabilities. When they did not fix the security flaws, he used them to breach their systems. The seventeen-year old was charged and fined $30,000 for unauthorized access of a computer system.</p>
<h3>Ethical v. Legal</h3>
<p>Ethics often entail a philosophical discussion of the greatest good, and an analysis of the “right” decision over the legal decision. This means there are times when committing a crime might still be an ethical act. Or an unethical act might not involve a victim or a crime at all. Legality, on the other hand, pertains to the protection of society. Laws determine what behavior or action is socially allowed. Damage to society or to an individual member of society is often considered illegal.</p>
<p>The actions of gray hat hackers often break the law. The breach of any computer or network without authorization is a violation of the law in many U.S. states and other nations. But the avowed purpose of these actions, according to many gray hat hackers, is to strengthen otherwise weak security systems. Because a question of ethics often involves both intent and a choice for the greater good, it can be argued that gray hat hackers are providing a service that benefits the greater good: the increased security of the Internet. White hat hacking, by its very nature of prior agreement (warning) with the client cannot be 100% effective at exposing unknown vulnerabilities. It is often only once a system has been breached via an unknown weakness that system administrators are forced to take action. The more gray hat hackers expose, the more security holes are closed. The Internet, being a fairly unregulated space (thus is its flexibility), is improved by a joint effort between white hat and gray hat hackers. We need both to create the best possible security environment.</p>
]]></content:encoded>
			<wfw:commentRss>http://almostdaniel.com/2008/02/06/gray-hat-hacking/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Wi-fi piracy</title>
		<link>http://almostdaniel.com/2008/02/06/wi-fi-piracy/</link>
		<comments>http://almostdaniel.com/2008/02/06/wi-fi-piracy/#comments</comments>
		<pubDate>Wed, 06 Feb 2008 20:59:24 +0000</pubDate>
		<dc:creator>daniel</dc:creator>
		
		<category><![CDATA[Academics]]></category>

		<category><![CDATA[crime]]></category>

		<category><![CDATA[ethics]]></category>

		<category><![CDATA[internet]]></category>

		<category><![CDATA[piracy]]></category>

		<category><![CDATA[wireless]]></category>

		<guid isPermaLink="false">http://almostdaniel.com/2008/02/06/wi-fi-piracy/</guid>
		<description><![CDATA[In 2005, Benjamin Smith, III, was arrested and charged in Florida with unauthorized access to a computer network. In 2006, David Kauchak pleaded guilty in Illinois to “remotely accessing another computer system without the owner’s approval”. In 2007, Michigan resident Sam Peterson was charged under the state’s “Fraudulent access to computers, computer systems, and computer networks” law. Each time, the “criminal” was observed using a laptop computer from their vehicles outside of a business or home. They were taking advantage of unsecured wireless networks to gain access to the Internet.]]></description>
			<content:encoded><![CDATA[<p>Even though the United States is woefully behind other nations when it comes to residential broadband connections, the number of homes with high-speed connections has been growing at an impressive rate.</p>
<p><span id="more-10"></span>In 2003, <a href="http://209.85.165.104/search?q=cache:OGH9ZsmSD7QJ:www.nielsen-netratings.com/pr/pr_040108_us.pdf+number+of+homes+with+broadband&amp;hl=en&amp;ct=clnk&amp;cd=1&amp;gl=us&amp;client=firefox-a" target="_blank" onclick="javascript:urchinTracker ('/outbound/article/209.85.165.104');">broadband usage</a> grew by over 25% in just six months. That trend has continued as the cable and phone companies have expanded their infrastructure. Faster access to the Internet has meant an increase in the number of applications. Instead of existing only at the home office desk, the Internet provides information for the kitchen (recipes, shopping, organization), the living room (media centers, gaming consoles), and the bedroom for those workaholics. Because not everyone can afford to have a computer in every room, or network cable run throughout the house, wireless network devices have become a popular solution. Computer manufacturers have made wireless adapters standard in laptop computers. Phone and cable companies have worked hard to increase their customer base, making the setup of wireless, high-speed Internet connections incredibly simple. Even for the most beginner of home users.</p>
<p>With wired networks, you must have a physical connection in order to use the network. The security is through physical access. Wireless networks have no such security. You must configure your wireless device for this security. This is fine for techies, but non-techie home users rarely have the savvy to secure their wireless networks. It’s not surprising that pirating or piggybacking of these open wireless networks —using someone else’s Internet connection without their knowledge or approval—is extremely commonplace. Is wireless piracy <a href="http://www.networkworld.com/news/2005/080805widernet.html" target="_blank" onclick="javascript:urchinTracker ('/outbound/article/www.networkworld.com');">stealing</a>? Or is it a victimless crime?</p>
<p>In 2005, Benjamin Smith, III, was <a href="http://arstechnica.com/news.ars/post/20050707-5068.html" target="_blank" onclick="javascript:urchinTracker ('/outbound/article/arstechnica.com');">arrested </a>and charged in Florida with unauthorized access to a computer network. In 2006, David Kauchak <a href="http://arstechnica.com/news.ars/post/20060323-6447.html" target="_blank" onclick="javascript:urchinTracker ('/outbound/article/arstechnica.com');">pleaded guilty</a> in Illinois to “remotely accessing another computer system without the owner’s approval”. In 2007, Michigan resident Sam Peterson was <a href="http://arstechnica.com/news.ars/post/20070522-michigan-man-arrested-for-using-cafes-free-wifi-from-his-car.html" target="_blank" onclick="javascript:urchinTracker ('/outbound/article/arstechnica.com');">charged</a> under the state’s “Fraudulent access to computers, computer systems, and computer networks” law. Each time, the “criminal” was observed using a laptop computer from their vehicles outside of a business or home. They were taking advantage of unsecured wireless networks to gain access to the Internet.</p>
<p>There are three ethical issues here. First, a network’s owner purchases Internet access from an ISP. The Internet connection is basically licensed to the customer for their use. When other people pirate an Internet connection, the ISP is missing the opportunity for additional revenue. Second, the fact that the networks are unsecured is important. If I were to place a bag of money on the street in front of my house, is it a crime for someone to come by and take it? I know people who leave their wireless networks open on purpose, as a sort of public service for their neighborhoods. How can a laptop user determine which networks are open on purpose, and which are not? Finally, a major problem with unauthorized access to a network is that the network owner doesn’t know what the pirate is doing on their network. If it is something illegal, the network owner is unwittingly an accomplice to a crime, at least in the eyes of the ISP. When an open wireless network in a coffee shop was being used to <a href="http://arstechnica.com/news.ars/post/20061022-8046.html?rel" target="_blank" onclick="javascript:urchinTracker ('/outbound/article/arstechnica.com');">generate spam</a>, the ISP shut down the coffee shop’s connection.</p>
<p>ISPs need revenue to build up their infrastructure. We need a bigger infrastructure in order to offer Internet speeds equal to those found in Japan and other countries. If someone is able to piggyback on their neighbor’s connection, they’re shooting themselves in the foot. This would mean wireless pirates are slowing down the growth of Internet infrastructure by not purchasing high-speed Internet themselves. But you could also hold network owners who are leaving their wireless networks unsecured (including public libraries and small businesses) just as liable for the loss in revenue. <a href="http://arstechnica.com/news.ars/post/20080103-the-ethics-of-stealing-a-wifi-connection.html" target="_blank" onclick="javascript:urchinTracker ('/outbound/article/arstechnica.com');">Eric Bangeman</a> of ars technica thinks this is too much of a stretch:</p>
<blockquote><p>Take the case of public WiFi hotspots: official hotspots aren&#8217;t that difficult to find in major cities—every public library in Chicago has open WiFi, for instance. Are the public libraries and the countless other free hotspot providers helping defraud ISPs? No, they&#8217;re not. There&#8217;s no law that using the Internet requires payment of a fee to an ISP, and the myriad public hotspots prove this.</p></blockquote>
<p>If there is not a crime against ISPs, then the crime must be against the network owner who left their network unsecured. A wireless pirate is portrayed as a burglar, breaking and entering a property without permission. I find this to be too much of a stretch as well, because the radio signals are entering my house where my device can pick them up. If I had snaked a network cable into someone’s house, or perhaps hooked into their cable box and ran it back over to my house, I could see where I had broken the law. But technically, a wireless network owner is sending their wireless signal into my location (be it out to a public street or into my apartment). Bangeman correlates it to owing a neighbor money because some of the neighbor’s water from their water sprinkler got on my lawn.</p>
<p>If there is no crime against the network owner, then the only time that unauthorized use of an unsecured wireless network should be related to a crime is when that use results in another crime. Pirates should be prosecuted for spamming, downloading child pornography, or any of the other countless things we already have federal laws for, no matter where they gain access to the Internet. And network owners cannot be held responsible for these crimes, just like I cannot be held responsible if someone takes my car and commits a crime with it.</p>
<p>I think state legislatures have been too broad with statutes and laws related to accessing unsecured wireless networks. Until a real crime is committed, accessing something publicly available without “hacking” or compromising information hardly deserves the label “crime”. At most, it could be considered <a href="http://www.thinkchristian.net/index.php/2008/01/04/is-it-wrong-to-steal-wifi/" target="_blank" onclick="javascript:urchinTracker ('/outbound/article/www.thinkchristian.net');">impolite</a>, especially if a pirate uses up all the bandwidth.</p>
]]></content:encoded>
			<wfw:commentRss>http://almostdaniel.com/2008/02/06/wi-fi-piracy/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Turning WordPress into a fancy form processor</title>
		<link>http://almostdaniel.com/2007/11/21/turning-wordpress-into-a-fancy-form-processor/</link>
		<comments>http://almostdaniel.com/2007/11/21/turning-wordpress-into-a-fancy-form-processor/#comments</comments>
		<pubDate>Wed, 21 Nov 2007 16:33:22 +0000</pubDate>
		<dc:creator>daniel</dc:creator>
		
		<category><![CDATA[Blog]]></category>

		<category><![CDATA[Code]]></category>

		<category><![CDATA[FormPress]]></category>

		<guid isPermaLink="false">http://almostdaniel.com/2007/11/21/turning-wordpress-into-a-fancy-form-processor/</guid>
		<description><![CDATA[Yes, I know. Five+ years of development. An approach to open-source content management that is at the same time refreshing and inspired. One of the top blogging tools in the world.
And now, WordPress processes my forms for me.

Preempting Genius
The WordPress Plugin API provides hooks into the execution of its code via Actions. As someone views [...]]]></description>
			<content:encoded><![CDATA[<p>Yes, I know. Five+ years of development. An approach to open-source content management that is at the same time refreshing and inspired. One of the top blogging tools in the world.</p>
<p>And now, <a href="http://wordpress.org/" onclick="javascript:urchinTracker ('/outbound/article/wordpress.org');">WordPress</a> processes my forms for me.</p>
<p><span id="more-6"></span></p>
<h3>Preempting Genius</h3>
<p>The <a href="http://codex.wordpress.org/Plugin_API" onclick="javascript:urchinTracker ('/outbound/article/codex.wordpress.org');">WordPress Plugin API</a> provides hooks into the execution of its code via <a href="http://codex.wordpress.org/Plugin_API#Actions" onclick="javascript:urchinTracker ('/outbound/article/codex.wordpress.org');">Actions</a>. As someone views a page on your site, a chain of events is triggered until the requested page is displayed. All along this chain, WordPress notifies itself that it is completing certain Actions.</p>
<p>Plugin developers can use the fact that WordPress has just triggered one of its core functions and execute one of the plugin functions as well. In this way, your plugin can insinuate itself quite deeply inside the main WordPress package.</p>
<p>The earliest Action hook that I could find is named <a href="http://codex.wordpress.org/Plugin_API/Action_Reference#Advanced_Actions" onclick="javascript:urchinTracker ('/outbound/article/codex.wordpress.org');">init</a>.  The <a href="http://codex.wordpress.org/" onclick="javascript:urchinTracker ('/outbound/article/codex.wordpress.org');">WordPress Codex</a> describes this Action:</p>
<blockquote><p> Runs after WordPress has finished loading but before any headers are sent. Useful for intercepting $_GET or $_POST triggers.</p></blockquote>
<p>Translation: Runs after WordPress loads its function environment but before it has displayed anything in the user’s browser. Use our software for your own nefarious goals.</p>
<p>Amazing. They <em>suggest </em>that you use this to turn their software into something else entirely. With a minimum of 8 lines of code, I subverted my favorite open-source software into a simple forms processor that had the power (and data set) of my entire WordPress tool behind it.</p>
<h3>The Method</h3>
<p>Using WordPress Actions is basically a two step process:</p>
<ol>
<li>Write a PHP function that you want to be triggered at some point in the WordPress  execution chain.</li>
<li>Use the <strong>add_action()</strong> function to inform WordPress of a) the core function you want to piggy-back on, and b) the name of the function you wrote in step 1.</li>
</ol>
<h4>Write the Function</h4>
<p>I wanted people to be able to use my WordPress as the action URL in HTML forms. Something like:</p>
<pre>&lt;form action="http://almostdaniel.com/?form_submit=123" method="post"&gt;</pre>
<p>I needed a function that could check for a particular attribute each time my site is accessed, and if the attribute is there, preempt everything else WordPress does (such as loading my actual site) and instead process the form that is (hopefully) being submitted.</p>
<pre>function form_submit() {
 $form_ID = $_REQUEST['form_submit'];
 if ( !empty($form_ID) ) {
  form_do_submit($form_ID, $_REQUEST);
  exit;
 }
}</pre>
<p><em>Note: I&#8217;m only checking to see if some value got passed in “form_submit”</em><em>. A well-written function would validate the information and only process the form if useful information was being passed. I could even go so far as to make sure that the origin of the submission is allowed. But that is for another post.</em></p>
<p>The <strong>form_submit()</strong> function checks to see if the query item “form_submit” was passed to WordPress. In this case, the value of the query item is the form ID number that I will use in processing. If the query item “form_submit” was submitted, I execute a the function <strong>form_do_submit()</strong> (I put it in its own function just for cleanliness of code) that actually processes the submitted <em>$_REQUEST</em> object (i.e., the contents of the form the user just submitted).</p>
<p>And here is the beautiful part: While I am processing the submitted form, I can use any WordPress function I want. I can store and retrieve data from the WordPress database. This proves quite useful.</p>
<h4>Let WordPress in on the Secret</h4>
<p>Now, to tell WordPress when I want it to execute this function, I use the <strong>add_action()</strong> function to my plugin’s main execution space. This ensures that I will always trigger my query check each time my plugin is loaded no matter what.</p>
<pre>add_action('init', 'form_submit', 1);</pre>
<p>As soon as WordPress loads its environment, my <strong>form_submit()</strong> function is executed. The ‘1’ just tells WordPress to execute my function as early as possible (a ‘10‘ would have told WordPress to execute my function as late as possible).</p>
<h4>Jump Ship</h4>
<p>Why does WordPress run my function and not load my website? The handy <strong>exit</strong> command I put in my <strong>form_submit()</strong> function. As soon as I&#8217;ve processed my form, I just tell WordPress to take a coffee break. And we&#8217;re done!</p>
<h3>The Code</h3>
<p>Here is the code in my plugin’s main file:</p>
<pre>function form_submit() {
 $form_ID = $_REQUEST['form_submit'];
 if ( !empty($form_ID) ) {
  form_do_submit($form_ID, $_REQUEST);
  exit;
 }
}

add_action('init', 'form_submit', 1);</pre>
]]></content:encoded>
			<wfw:commentRss>http://almostdaniel.com/2007/11/21/turning-wordpress-into-a-fancy-form-processor/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
