<?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>Bradley Holt &#187; tekX10</title>
	<atom:link href="http://bradley-holt.com/tag/tekx10/feed/" rel="self" type="application/rss+xml" />
	<link>http://bradley-holt.com</link>
	<description></description>
	<lastBuildDate>Thu, 17 May 2012 01:04:35 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.4</generator>
		<item>
		<title>TEK·X Day Three</title>
		<link>http://bradley-holt.com/2010/05/tek%c2%b7x-day-three/</link>
		<comments>http://bradley-holt.com/2010/05/tek%c2%b7x-day-three/#comments</comments>
		<pubDate>Sat, 22 May 2010 04:05:29 +0000</pubDate>
		<dc:creator>Bradley Holt</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[tekX]]></category>
		<category><![CDATA[tekX10]]></category>

		<guid isPermaLink="false">http://bradley-holt.com/?p=688</guid>
		<description><![CDATA[Sadly, today was the final day of TEK·X. However, there was plenty of information and networking packed into the last few days. Marco Tabini and the rest of the team put on a top-notch conference. Being the last day, there were only three sessions. I started out with Jason Austin&#8217;s Lean Mean PHP Machine session [...]]]></description>
			<content:encoded><![CDATA[<p>Sadly, today was the final day of TEK·X. However, there was plenty of information and networking packed into the last few days. <a href="http://blog.tabini.ca/">Marco Tabini</a> and the rest of the team put on a top-notch conference. Being the last day, there were only three sessions. I started out with Jason Austin&#8217;s <a href="http://www.jasonawesome.com/2010/05/21/lean-mean-php-machine-at-tekx/">Lean Mean PHP Machine</a> session where he talked about implementing software development best practices in a small team. <a href="http://www.lornajane.net/">Lorna Jane Mitchell</a> then gave an excellent talk, without the aid of slides, called Open Source Your Career. Her talk provided a nice transition to the Community Roundtable session with <a href="http://www.dragonbe.com/">Michelangelo van Dam</a>, Lorna Jane Mitchell, <a href="http://www.rafaeldohms.com.br/en/">Rafael Dohms</a>, <a href="http://benramsey.com/">Ben Ramsey</a>, and <a href="http://caseysoftware.com/blog">Keith Casey</a> moderating. User groups were a big focus of the roundtable and I hope more people were inspired to start their own local PHP user groups.</p>
]]></content:encoded>
			<wfw:commentRss>http://bradley-holt.com/2010/05/tek%c2%b7x-day-three/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>TEK·X Day Two</title>
		<link>http://bradley-holt.com/2010/05/tek%c2%b7x-day-two/</link>
		<comments>http://bradley-holt.com/2010/05/tek%c2%b7x-day-two/#comments</comments>
		<pubDate>Fri, 21 May 2010 04:50:26 +0000</pubDate>
		<dc:creator>Bradley Holt</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[HTTP]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[PHPUnit]]></category>
		<category><![CDATA[Software Deployment]]></category>
		<category><![CDATA[SPL]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[tekX]]></category>
		<category><![CDATA[tekX10]]></category>
		<category><![CDATA[Xdebug]]></category>
		<category><![CDATA[XMPP]]></category>
		<category><![CDATA[Zend Framework]]></category>

		<guid isPermaLink="false">http://bradley-holt.com/?p=683</guid>
		<description><![CDATA[It&#8217;s hard to believe tomorrow is the last day of TEK·X. Where did the time go? Today started with Matthew Schmidt&#8217;s 10 Developer Trends in 2010. He talked about agile development, browser standards, AJAX, security vulnerabilities, RIAs, touch interfaces, key/value stores, version control, cloud computing, and dynamic languages. While not a bad keynote, the topics [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s hard to believe tomorrow is the last day of <a href="http://tek.phparch.com/">TEK·X</a>. Where did the time go? Today started with Matthew Schmidt&#8217;s 10 Developer Trends in 2010. He talked about agile development, browser standards, AJAX, security vulnerabilities, RIAs, touch interfaces, key/value stores, version control, cloud computing, and dynamic languages. While not a bad keynote, the topics seemed fairly basic and obvious given the audience.</p>
<p>Next up for me was Derick Rethans&#8217; <a href="http://xdebug.org/">Xdebug</a> talk. Xdebug is an extremely useful tool for PHP developers. I&#8217;ve used its <a href="http://xdebug.org/docs/stack_trace">stack trace</a> feature as well as its <a href="http://www.phpunit.de/manual/3.4/en/code-coverage-analysis.html">code coverage analysis via PHPUnit</a>. I&#8217;ve also dabbled with its <a href="http://xdebug.org/docs/profiler">profiling</a> capabilities. The session introduced me to several other Xdebug features with which I&#8217;d like to experiment.</p>
<p>After that I had the pleasure of seeing Matthew Turland&#8217;s talk on <a href="http://matthewturland.com/2010/05/20/new-spl-features-in-php-5-3/">New SPL Features in PHP 5.3</a>. New SPL data structures in PHP 5.3 include stacks, queues, heaps, priority queues, and sets. Matthew provided test code that compared the performance and memory usage of each these new data structures to that of using PHP&#8217;s array functionality.</p>
<p>I skipped the first afternoon session to take part in the Hack Track which happened to coincide with Zend Framework&#8217;s <a href="http://devzone.zend.com/article/12150">May Bug Hunt Days</a>. I was granted commit access and directly committed my first bug fix, a small change to <a href="http://framework.zend.com/issues/browse/ZF-9845">make HTTP headers case-insensitive</a>.</p>
<p>Others stuck around to fix more bugs while I went to check out Bill Karwin&#8217;s <a href="http://www.slideshare.net/billkarwin/models-for-hierarchical-data">Models for Hierarchical Data with SQL and PHP</a>. Examples of hierarchical data include categories/subcategories, bill of materials, and threaded discussions. Bill talked about four main approaches to storing hierarchical data in SQL databases: adjacency list, path enumeration, nested sets, and usage of a closure table.</p>
<p>The <em>adjacency list</em> is a naive approach that almost everyone tries first. Basically, each entry knows its immediate parent. The problem with this approach is that querying deep trees can be very inefficient involving many joins. <em>Path enumeration</em> involves storing an enumerated chain of ancestors in each entry. This can be very efficient and take advantage of indexing. However, there is no referential integrity with this approach. The <em>nested set</em> approach seemed a bit complicated. I don&#8217;t feel I can explain it properly here, so you&#8217;ll have to check out Bill&#8217;s slides if you&#8217;re interested in how this works. The <em>closure table</em> approach made the most sense to me and didn&#8217;t seem overly complicated. Not only do you store each entry, but you also store every path including those from the parent node to each descendant, those from each ancestor to its child node, as well as a reflexive reference from the node to itself.</p>
<p>My final session of the day was Travis Swicegood&#8217;s Building Real-Time Applications with XMPP, the <a href="http://en.wikipedia.org/wiki/Extensible_Messaging_and_Presence_Protocol">Extensible Messaging and Presence Protocol</a>. If you&#8217;ve use Google Talk then you&#8217;ve used XMPP. As a web developer, the request and response pattern in HTTP is ingrained into my thinking. However, XMPP is a very different creature in that it keeps a socket open during what can be a lengthy exchange of messages. While I don&#8217;t think HTTP is going away anytime soon, real-time applications involving potentially large numbers of publishers and subscribers (e.g. Twitter) are becoming more prevalent and XMPP is well suited for this environment.</p>
]]></content:encoded>
			<wfw:commentRss>http://bradley-holt.com/2010/05/tek%c2%b7x-day-two/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>TEK·X Arrival and Day Zero</title>
		<link>http://bradley-holt.com/2010/05/tek%c2%b7x-arrival-and-day-zero/</link>
		<comments>http://bradley-holt.com/2010/05/tek%c2%b7x-arrival-and-day-zero/#comments</comments>
		<pubDate>Wed, 19 May 2010 01:20:04 +0000</pubDate>
		<dc:creator>Bradley Holt</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[tekX]]></category>
		<category><![CDATA[tekX10]]></category>

		<guid isPermaLink="false">http://bradley-holt.com/?p=673</guid>
		<description><![CDATA[Yesterday I arrived in Chicago for my first TEK·X PHP conference. After getting in, I had an interesting conversation with Bill Karwin over dinner. Bill is the author of  SQL Antipatterns and is presenting on SQL Injection Myths and Fallacies as well as Models for Hierarchical Data with SQL and PHP here at TEK·X. I [...]]]></description>
			<content:encoded><![CDATA[<p>Yesterday I arrived in Chicago for my first <a href="http://tek.phparch.com/">TEK·X</a> PHP conference. After getting in, I had an interesting conversation with <a href="http://karwin.blogspot.com/">Bill Karwin</a> over dinner. Bill is the author of  <a href="http://www.pragprog.com/titles/bksqla/sql-antipatterns">SQL Antipatterns</a> and is presenting on <a href="http://tek.phparch.com/talks/#TEKXS37">SQL Injection Myths and Fallacies</a> as well as <a href="http://tek.phparch.com/talks/#TEKXS09">Models for Hierarchical Data with SQL and PHP</a> here at TEK·X. I was able to pick his brain on a wide range of topics including his thoughts on <a href="http://en.wikipedia.org/wiki/NoSQL">NoSQL</a> and <a href="http://en.wikipedia.org/wiki/Object-relational_mapping">Object-Relational Mappers</a> (ORMs). I tend to be skeptical of both (although there are certainly uses for both) and I got the sense from our conversation that my skepticism is well founded.</p>
<p>Today was tutorial day, or day zero. This morning I attended Arne Blankerts&#8217; <a href="http://tek.phparch.com/talks/#TEKXT03">Bad Guy For a Day – A Websecurity hands-on tutorial</a>. I liked that he took a step back and looked at the different types of security such as the transport layer, infrastructure layer, data warehouse, user interface design, user level security, and application level security. He talked about the usual suspects such as <a href="http://en.wikipedia.org/wiki/Cross-site_scripting">cross-site scripting</a> (XSS), <a href="http://en.wikipedia.org/wiki/Session_fixation">session fixation</a>, <a href="http://en.wikipedia.org/wiki/Cross-site_request_forgery">cross-site request forgery</a> (XSRF), and <a href="http://en.wikipedia.org/wiki/SQL_injection">SQL injection</a>. <a href="http://shiflett.org/blog/2005/feb/my-top-two-php-security-practices">Filtering input and escaping output</a> was also addressed, of course. He demonstrated attacks on several security holes in an (intentionally) badly written application. Take a look at the <a href="http://www.slideshare.net/TheSeer/bad-guy-for-a-day-a-websecurity-handson-tutorial">slides</a> for more details.</p>
<p>This afternoon I attended Ed Finkler&#8217;s <a href="http://tek.phparch.com/talks/#TEKXT05">JavaScript for PHP Developers</a> talk. Like most PHP developers, I find myself often working with other web technologies such as JavaScript. The object model in JavaScript is very different than in PHP and I found Ed&#8217;s explanations of these differences very helpful. The JavaScript core language is often confused with the <a href="http://en.wikipedia.org/wiki/Document_Object_Model">Document Object Model</a> (DOM) API and a clear explanation of the line between the two was also useful. His slides don&#8217;t appear to be posted yet, but I&#8217;ll link to them once they are.</p>
<p>One last note: if you happen to be here at TEK·X then be sure to rate the sessions on <a href="http://joind.in/">joind.in</a>. The speakers really appreciate the feedback!</p>
]]></content:encoded>
			<wfw:commentRss>http://bradley-holt.com/2010/05/tek%c2%b7x-arrival-and-day-zero/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>TEK·X PHP Conference</title>
		<link>http://bradley-holt.com/2010/01/tek%c2%b7x-php-conference/</link>
		<comments>http://bradley-holt.com/2010/01/tek%c2%b7x-php-conference/#comments</comments>
		<pubDate>Wed, 06 Jan 2010 20:02:00 +0000</pubDate>
		<dc:creator>Bradley Holt</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[tekX]]></category>
		<category><![CDATA[tekX10]]></category>

		<guid isPermaLink="false">http://bradley-holt.com/2010/01/tek%c2%b7x-php-conference/</guid>
		<description><![CDATA[I registered today for the upcoming TEK·X PHP conference in Chicago. I attended both ZendCon &#8217;08 and &#8217;09 but this will be my first TEK·X experience. I have heard that TEK·X is more of a community conference while ZendCon has a reputation for being more corporate. The schedule has not been announced yet (which is [...]]]></description>
			<content:encoded><![CDATA[<p>I registered today for the upcoming <a href="http://tek.phparch.com/">TEK·X PHP conference</a> in Chicago. I attended both <a href="http://zendcon.com/">ZendCon</a> &#8217;08 and &#8217;09 but this will be my first TEK·X experience. I have heard that TEK·X is more of a community conference while ZendCon has a reputation for being more corporate. The schedule has not been announced yet (which is why I was able to get my <a href="http://tek.phparch.com/2009/12/pre-schedule-ticket-sale/">ticket for 35% off</a>). However, several people who have seen the schedule have said that there are some excellent sessions lined up. This year they are <a href="http://tek.phparch.com/2009/12/you-can-hack-if-you-wanna/">replacing the Unconference with a Hack Track</a> which sounds like a lot of fun (even though I am a big fan of unconferences). Hope to see you there!</p>
]]></content:encoded>
			<wfw:commentRss>http://bradley-holt.com/2010/01/tek%c2%b7x-php-conference/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

