tag:blogger.com,1999:blog-47670235369307277042024-03-07T00:40:33.464-05:00dissensionJon Peck's writings about web programming, free and open source software, and other technology related topics of interest.Jon Peckhttp://www.blogger.com/profile/15647634292152200889noreply@blogger.comBlogger34125tag:blogger.com,1999:blog-4767023536930727704.post-45848671214863338532012-03-21T15:16:00.000-05:002012-04-06T13:11:57.371-05:00Notes from DrupalCon - Drupal 8 meets Symfony2<p><em>The following are my notes from <a
href="http://denver2012.drupal.org/program/sessions/drupal-8-meets-symfony2">Drupal
8 meets Symfony2</a> on Wednesday, March 21st, 2012 at DrupalCon Denver. The
slides can be found at <a
href="http://speakerdeck.com/u/fabpot/p/symfony2-meets-drupal-8">http://speakerdeck.com/u/fabpot/p/symfony2-meets-drupal-8</a></em></p>
<h2>Symfony is...</h2>
<ul>
<li>A reusable set of standalone, decoupled, and cohesive PHP components that
solve common web development problems</li>
<li>Best practices</li>
<li>Borrows ideas from other frameworks and languages</li>
<li>Flexible and extenible</li>
<li>an Object-Oriented set of classes</li>
<li>compatible with PHP 5.3 and later</li>
<li>a full-stack web framework
<ul>
<li>Drupal is using some</li>
</ul>
</li>
<li><a href="http://symfony.com">http://symfony.com</a>
<ul>
<li><a
href="http://symfony.com/components">http://symfony.com/components</a></li>
</ul>
</li>
<li><a
href="https://github.com/symfony/symfony">https://github.com/symfony/symfony</a>
<ul>
<li>https://github.com/symfony/XXXX</li>
</ul>
</li>
<li>irc.freenode.net/symfony</li>
</ul>
<h2>Which Open-Source projects are already using the Symfony Components?</h2>
<h3>Projects</h3>
<ul>
<li><a href="http://behat.org">Behat</a> - a BDD framework</li>
<li><a href="http://www.doctrine-project.org/">Doctrine</a> - an Object
Relational Mapper and Database Abstraction Layer</li>
<li><a name="Propel" id="Propel" href="http://www.propelorm.org/">Propel</a>
- an object relational mapper</li>
<li><a href="https://github.com/sebastianbergmann/phpunit">PHPUnit</a> - a
PHP unit testing framework</li>
<li><a href="http://jackalope.github.com/">Jackalope</a> - a content
repository</li>
</ul>
<h3>Frameworks</h3>
<ul>
<li><a name="Silex" id="Silex" href="http://silex.sensiolabs.org/">Silex</a>
- a micro-framework</li>
<li><a href="http://www.ppi.io/">PPI 2</a> - a framework</li>
</ul>
<h3>Products</h3>
<ul>
<li><a href="http://easybook-project.org/">easybook</a> - a book publishing
platform</li>
<li><a href="http://www.midgard-project.org/">Midgard CMS</a> - a content
management framework</li>
<li><a href="http://zikula.org/">Zikula</a> - an application framework</li>
<li><a href="http://www.phpbb.com/">phpBB</a> - a bulletin board software</li>
</ul>
<h2>What about Drupal 8?</h2>
<ul>
<li>ClassLoader</li>
<li>HttpFoundation
<ul>
<li>HttpKernel</li>
<li>Routing</li>
</ul>
</li>
<li>EventDispatcher
<ul>
<li>DependencyInjection</li>
</ul>
</li>
</ul>
<h2>Using the Symfony Components</h2>
<ul>
<li>Acquiring:
<ul>
<li>Git</li>
<li>Archves</li>
<li>PEAR</li>
<li>Composer</li>
</ul>
</li>
<li>Symfony Components comes with Drupal 8</li>
</ul>
<h2>ClassLoader</h2>
<ul>
<li>Loads classes on demand, only when needed</li>
<li>Built to autload any PHP Class if it follows standard conventions
<ul>
<li><a
href="http://symfony.com/PSRO">http://symfony.com/doc/current/components/class_loader.html</a></li>
</ul>
</li>
</ul>
<h2>HttpFoundation</h2>
<ul>
<li>Symfony leverages open standards, including HTTP (RFC 2616)
<ul>
<li><a
href="http://www.ietf.org/rfc/rfc2616.txt">http://www.ietf.org/rfc/rfc2616.txt</a></li>
</ul>
</li>
<li><a
href="http://symfony.com/doc/current/components/http_foundation.html">http://symfony.com/doc/current/components/http_foundation.html</a></li>
<li>Defines a feature-full object-oriented layer for the HTTP Messages</li>
<li>Replaces PHP native global variables and functions to allow writing
better, more secure, and more testible code</li>
</ul>
<h2>Routing</h2>
<ul>
<li><a
href="http://symfony.com/doc/current/components/routing.html">http://symfony.com/doc/current/components/routing.html</a></li>
</ul>
<h2>EventDispatcher</h2>
<p>Similar to drupal hook system; biggest difference is that it’s OO.</p>
<h2>HttpKernel</h2>
<p>Implements dynamic part of HTTP specification.</p>
<h2>HTTP Caching</h2>
<ul>
<li>Symfony provides no caching layer for web pages; relies on HTTP cache
headers</li>
<li>Expiration
<ul>
<li>Cache-Control</li>
<li>Expires</li>
</ul>
</li>
<li>Validation
<ul>
<li>Last-Modified</li>
<li>If-Modified-Since</li>
<li>Etag</li>
<li>If-None-Match</li>
</ul>
</li>
<li>Expiration wins over Validation
<ul>
<li>Cache the page for a short period of time, 10 seconds for example,
and every 10 seconds the page is validated</li>
</ul>
</li>
<li>Using the default HttpKernel allows Drupal to Benefit</li>
</ul>Jon Peckhttp://www.blogger.com/profile/15647634292152200889noreply@blogger.com0tag:blogger.com,1999:blog-4767023536930727704.post-18015439555074312472012-03-21T15:02:00.000-05:002012-04-01T15:11:24.268-05:00Notes from DrupalCon - Keeping the lights on (operations and monitoring best practices)<i><span style="font-family: inherit;">The following are my notes from <a href="http://denver2012.drupal.org/program/sessions/keeping-lights-operations-and-monitoring-best-practices">Keeping the lights on - operations and monitoring best practices</a> on Wednesday, March 21st, 2012 at DrupalCon Denver.</span></i><br />
<blockquote>
“Measurement is the link between mathematics and science” - Brian Ellis, Cambridge, 1968</blockquote>
<h2 dir="ltr">
<b id="internal-source-marker_0.5761032791342586"><span style="font-family: inherit;"><span style="font-size: 19px; vertical-align: baseline; white-space: pre-wrap;">Primary topics</span></span></b></h2>
<ul style="margin-bottom: 0pt; margin-top: 0pt;">
<li style="font-size: 15px; list-style-type: disc; vertical-align: baseline;"><span id="internal-source-marker_0.5761032791342586"><span style="font-family: inherit;"><span style="vertical-align: baseline; white-space: pre-wrap;">Platform management, monitoring, and measurement</span></span></span></li>
<li style="font-size: 15px; list-style-type: disc; vertical-align: baseline;"><span id="internal-source-marker_0.5761032791342586"><span style="font-family: inherit;"><span style="vertical-align: baseline; white-space: pre-wrap;">Security testing and monitoring</span></span></span></li>
<ul style="margin-bottom: 0pt; margin-top: 0pt;">
<li style="font-size: 15px; list-style-type: circle; vertical-align: baseline;"><span id="internal-source-marker_0.5761032791342586"><span style="font-family: inherit;"><span style="vertical-align: baseline; white-space: pre-wrap;">Monitoring - mean time to recovery is a key metric (how long does it take to fix)</span></span></span></li>
</ul>
<li style="font-size: 15px; list-style-type: disc; vertical-align: baseline;"><span id="internal-source-marker_0.5761032791342586"><span style="font-family: inherit;"><span style="vertical-align: baseline; white-space: pre-wrap;">Ongoing operational security</span></span></span></li>
</ul>
<h2 dir="ltr">
<b id="internal-source-marker_0.5761032791342586"><span style="font-family: inherit;"><span style="font-size: 19px; vertical-align: baseline; white-space: pre-wrap;">Essential Monitoring Features</span></span></b></h2>
<ul style="margin-bottom: 0pt; margin-top: 0pt;">
<li style="font-size: 15px; list-style-type: disc; vertical-align: baseline;"><span id="internal-source-marker_0.5761032791342586"><span style="font-family: inherit;"><span style="vertical-align: baseline; white-space: pre-wrap;">Real-time AND trend monitoring</span></span></span></li>
<ul style="margin-bottom: 0pt; margin-top: 0pt;">
<li style="font-size: 15px; list-style-type: circle; vertical-align: baseline;"><span id="internal-source-marker_0.5761032791342586"><span style="font-family: inherit;"><span style="vertical-align: baseline; white-space: pre-wrap;">Infrastructure based</span></span></span></li>
</ul>
<li style="font-size: 15px; list-style-type: disc; vertical-align: baseline;"><span id="internal-source-marker_0.5761032791342586"><span style="font-family: inherit;"><span style="vertical-align: baseline; white-space: pre-wrap;">Custom plugin system</span></span></span></li>
<ul style="margin-bottom: 0pt; margin-top: 0pt;">
<li style="font-size: 15px; list-style-type: circle; vertical-align: baseline;"><span id="internal-source-marker_0.5761032791342586"><span style="font-family: inherit;"><span style="vertical-align: baseline; white-space: pre-wrap;">Avoid proprietary languages to ensure anyone can contribute</span></span></span></li>
</ul>
<li style="font-size: 15px; list-style-type: disc; vertical-align: baseline;"><span id="internal-source-marker_0.5761032791342586"><span style="font-family: inherit;"><span style="vertical-align: baseline; white-space: pre-wrap;">Runs your functional tests</span></span></span></li>
<li style="font-size: 15px; list-style-type: disc; vertical-align: baseline;"><span id="internal-source-marker_0.5761032791342586"><span style="font-family: inherit;"><span style="vertical-align: baseline; white-space: pre-wrap;">Active AND passive monitoring</span></span></span></li>
<ul style="margin-bottom: 0pt; margin-top: 0pt;">
<li style="font-size: 15px; list-style-type: circle; vertical-align: baseline;"><span id="internal-source-marker_0.5761032791342586"><span style="font-family: inherit;"><span style="vertical-align: baseline; white-space: pre-wrap;">Push alerts</span></span></span></li>
</ul>
<li style="font-size: 15px; list-style-type: disc; vertical-align: baseline;"><span id="internal-source-marker_0.5761032791342586"><span style="font-family: inherit;"><span style="vertical-align: baseline; white-space: pre-wrap;">Log analysis</span></span></span></li>
<li style="font-size: 15px; list-style-type: disc; vertical-align: baseline;"><span id="internal-source-marker_0.5761032791342586"><span style="font-family: inherit;"><span style="vertical-align: baseline; white-space: pre-wrap;">Escalation</span></span></span></li>
<ul style="margin-bottom: 0pt; margin-top: 0pt;">
<li style="font-size: 15px; list-style-type: circle; vertical-align: baseline;"><span id="internal-source-marker_0.5761032791342586"><span style="font-family: inherit;"><span style="vertical-align: baseline; white-space: pre-wrap;">Quality of life - levels, rotations</span></span></span></li>
</ul>
<li style="font-size: 15px; list-style-type: disc; vertical-align: baseline;"><span id="internal-source-marker_0.5761032791342586"><span style="font-family: inherit;"><span style="vertical-align: baseline; white-space: pre-wrap;">Remote command/”job” execution</span></span></span></li>
</ul>
<h2 dir="ltr">
<b id="internal-source-marker_0.5761032791342586"><span style="font-family: inherit;"><span style="font-size: 19px; vertical-align: baseline; white-space: pre-wrap;">Functional tests</span></span></b></h2>
<ul style="margin-bottom: 0pt; margin-top: 0pt;">
<li style="font-size: 15px; list-style-type: disc; vertical-align: baseline;"><span id="internal-source-marker_0.5761032791342586"><span style="font-family: inherit;"><span style="vertical-align: baseline; white-space: pre-wrap;">Use Selenium</span></span></span></li>
</ul>
<h2 dir="ltr">
<b id="internal-source-marker_0.5761032791342586"><span style="font-family: inherit;"><span style="font-size: 19px; vertical-align: baseline; white-space: pre-wrap;">Business metrics</span></span></b></h2>
<ul style="margin-bottom: 0pt; margin-top: 0pt;">
<li style="font-size: 15px; list-style-type: disc; vertical-align: baseline;"><span id="internal-source-marker_0.5761032791342586"><span style="font-family: inherit;"><span style="vertical-align: baseline; white-space: pre-wrap;">PageRank</span></span></span></li>
<li style="font-size: 15px; list-style-type: disc; vertical-align: baseline;"><span id="internal-source-marker_0.5761032791342586"><span style="font-family: inherit;"><span style="vertical-align: baseline; white-space: pre-wrap;">Things that are relative to the business</span></span></span></li>
<li style="font-size: 15px; list-style-type: disc; vertical-align: baseline;"><span id="internal-source-marker_0.5761032791342586"><span style="font-family: inherit;"><span style="vertical-align: baseline; white-space: pre-wrap;">Number of users</span></span></span></li>
</ul>
<div>
<span style="font-size: 15px; white-space: pre-wrap;"><br />
</span></div>
<b id="internal-source-marker_0.5761032791342586"><span style="font-family: inherit;"><span style="font-size: 19px; vertical-align: baseline; white-space: pre-wrap;">Technical monitoring</span></span></b><br />
<ul style="margin-bottom: 0pt; margin-top: 0pt;"><b id="internal-source-marker_0.5761032791342586"><span style="font-family: inherit;">
<li style="font-size: 15px; font-weight: normal; list-style-type: disc; vertical-align: baseline;"><span style="vertical-align: baseline; white-space: pre-wrap;">Apc tool</span></li>
<li style="font-size: 15px; font-weight: normal; list-style-type: disc; vertical-align: baseline;"><span style="vertical-align: baseline; white-space: pre-wrap;">Service state</span></li>
<li style="font-size: 15px; font-weight: normal; list-style-type: disc; vertical-align: baseline;"><span style="vertical-align: baseline; white-space: pre-wrap;">Cron - execute from remote monitoring system like Nagios</span></li>
</span></b></ul>
<b id="internal-source-marker_0.5761032791342586"><span style="font-family: inherit;"> </span></b><br />
<h2 dir="ltr">
<b id="internal-source-marker_0.5761032791342586"><span style="font-family: inherit;"> <span style="font-size: 19px; vertical-align: baseline; white-space: pre-wrap;">Nagios Module</span></span></b></h2>
<b id="internal-source-marker_0.5761032791342586"><span style="font-family: inherit;"> </span></b><br />
<ul style="margin-bottom: 0pt; margin-top: 0pt;">
<li style="font-size: 15px; font-weight: normal; list-style-type: disc; vertical-align: baseline;"><b id="internal-source-marker_0.5761032791342586"><span style="font-family: inherit;"><a href="http://drupal.org/project/nagios"><span style="color: #1155cc; vertical-align: baseline; white-space: pre-wrap;">http://drupal.org/project/nagios</span></a><span style="vertical-align: baseline; white-space: pre-wrap;"></span></span></b></li>
<b id="internal-source-marker_0.5761032791342586"><span style="font-family: inherit;"> </span></b></ul>
<h2 dir="ltr">
<b id="internal-source-marker_0.5761032791342586"><span style="font-family: inherit;"> <span style="font-size: 19px; vertical-align: baseline; white-space: pre-wrap;">Job Automation</span></span></b></h2>
<ul style="margin-bottom: 0pt; margin-top: 0pt;">
<li style="font-size: 15px; font-weight: normal; list-style-type: disc; vertical-align: baseline;"><b id="internal-source-marker_0.5761032791342586"><span style="font-family: inherit;"><span style="vertical-align: baseline; white-space: pre-wrap;">Jenkins is the defacto standard for continuous integration and deployment</span></span></b></li>
<b id="internal-source-marker_0.5761032791342586"><span style="font-family: inherit;">
<li style="font-size: 15px; font-weight: normal; list-style-type: disc; vertical-align: baseline;"><span style="vertical-align: baseline; white-space: pre-wrap;">Codify and scripting all deployment activities</span></li>
</span></b></ul>
<h2 dir="ltr">
<b id="internal-source-marker_0.5761032791342586"><span style="font-family: inherit;"> <span style="font-size: 19px; vertical-align: baseline; white-space: pre-wrap;">Logging</span></span></b></h2>
<ul style="margin-bottom: 0pt; margin-top: 0pt;">
<li style="font-size: 15px; font-weight: normal; list-style-type: disc; vertical-align: baseline;"><b id="internal-source-marker_0.5761032791342586"><span style="font-family: inherit;"><span style="vertical-align: baseline; white-space: pre-wrap;">Turn on syslog logging - instead of database, write to a text file</span></span></b></li>
<b id="internal-source-marker_0.5761032791342586"><span style="font-family: inherit;">
<li style="font-size: 15px; font-weight: normal; list-style-type: disc; vertical-align: baseline;"><span style="vertical-align: baseline; white-space: pre-wrap;">Centralized off-server</span></li>
</span></b></ul>
<h2 dir="ltr">
<b id="internal-source-marker_0.5761032791342586"><span style="font-family: inherit;"> <span style="font-size: 19px; vertical-align: baseline; white-space: pre-wrap;">Monitoring Overview</span></span></b></h2>
<ul style="margin-bottom: 0pt; margin-top: 0pt;">
<li style="font-size: 15px; font-weight: normal; list-style-type: disc; vertical-align: baseline;"><b id="internal-source-marker_0.5761032791342586"><span style="font-family: inherit;"><span style="vertical-align: baseline; white-space: pre-wrap;">Ping or HTTP result code alert monitoring || Live user story testing and trend analysis</span></span></b></li>
<b id="internal-source-marker_0.5761032791342586"><span style="font-family: inherit;">
<li style="font-size: 15px; font-weight: normal; list-style-type: disc; vertical-align: baseline;"><span style="vertical-align: baseline; white-space: pre-wrap;">Crontabs and poormanscron || centralized cron management</span></li>
<li style="font-size: 15px; font-weight: normal; list-style-type: disc; vertical-align: baseline;"><span style="vertical-align: baseline; white-space: pre-wrap;">Logging to database only || Syslog logging to central host</span></li>
<li style="font-size: 15px; font-weight: normal; list-style-type: disc; vertical-align: baseline;"><span style="vertical-align: baseline; white-space: pre-wrap;">Logging in to see Drupal errors and available updates || Centralized Drupal monitoring</span></li>
<li style="font-size: 15px; font-weight: normal; list-style-type: disc; vertical-align: baseline;"><span style="vertical-align: baseline; white-space: pre-wrap;">Offsite backups || Off-cloud backups</span></li>
</span></b></ul>
<h3 dir="ltr">
<b id="internal-source-marker_0.5761032791342586"><span style="font-family: inherit;"> <span style="color: #666666; font-size: 16px; vertical-align: baseline; white-space: pre-wrap;">Book recommendation</span></span></b></h3>
<ul style="margin-bottom: 0pt; margin-top: 0pt;">
<li style="font-size: 15px; font-weight: normal; list-style-type: disc; vertical-align: baseline;"><b id="internal-source-marker_0.5761032791342586"><span style="font-family: inherit;"><span style="vertical-align: baseline; white-space: pre-wrap;">The Visible Ops Handbook</span></span></b></li>
<b id="internal-source-marker_0.5761032791342586"><span style="font-family: inherit;"> </span></b></ul>
<h2 dir="ltr">
<b id="internal-source-marker_0.5761032791342586"><span style="font-family: inherit;"> <span style="font-size: 19px; vertical-align: baseline; white-space: pre-wrap;">Security Testing and Monitoring</span></span></b></h2>
<ul style="margin-bottom: 0pt; margin-top: 0pt;">
<li style="font-size: 15px; font-weight: normal; list-style-type: disc; vertical-align: baseline;"><b id="internal-source-marker_0.5761032791342586"><span style="font-family: inherit;"><span style="vertical-align: baseline; white-space: pre-wrap;">Tools and services to </span><span style="font-weight: bold; vertical-align: baseline; white-space: pre-wrap;">detect</span><span style="vertical-align: baseline; white-space: pre-wrap;"> and </span><span style="font-weight: bold; vertical-align: baseline; white-space: pre-wrap;">respond</span><span style="vertical-align: baseline; white-space: pre-wrap;"> to </span><span style="font-weight: bold; vertical-align: baseline; white-space: pre-wrap;">vulnerabilities</span><span style="vertical-align: baseline; white-space: pre-wrap;"> and </span><span style="font-weight: bold; vertical-align: baseline; white-space: pre-wrap;">threats</span><span style="vertical-align: baseline; white-space: pre-wrap;">.</span></span></b></li>
<b id="internal-source-marker_0.5761032791342586"><span style="font-family: inherit;"> </span></b></ul>
<h3 dir="ltr">
<b id="internal-source-marker_0.5761032791342586"><span style="font-family: inherit;"> <span style="color: #666666; font-size: 16px; vertical-align: baseline; white-space: pre-wrap;">Detect</span></span></b></h3>
<b id="internal-source-marker_0.5761032791342586"><span style="font-family: inherit;"><span style="font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">Finding the problem</span><br />
</span></b><br />
<h3 dir="ltr">
<b id="internal-source-marker_0.5761032791342586"><span style="font-family: inherit;"> <span style="color: #666666; font-size: 16px; vertical-align: baseline; white-space: pre-wrap;">Respond</span></span></b></h3>
<ul style="margin-bottom: 0pt; margin-top: 0pt;">
<li style="font-size: 15px; font-weight: normal; list-style-type: disc; vertical-align: baseline;"><b id="internal-source-marker_0.5761032791342586"><span style="font-family: inherit;"><span style="vertical-align: baseline; white-space: pre-wrap;">Mitigate, fix, alert</span></span></b></li>
<b id="internal-source-marker_0.5761032791342586"><span style="font-family: inherit;">
<li style="font-size: 15px; font-weight: normal; list-style-type: disc; vertical-align: baseline;"><span style="vertical-align: baseline; white-space: pre-wrap;">Having a response plan before incidents occur</span></li>
</span></b></ul>
<h3 dir="ltr">
<b id="internal-source-marker_0.5761032791342586"><span style="font-family: inherit;"> <span style="color: #666666; font-size: 16px; vertical-align: baseline; white-space: pre-wrap;">Vulnerabilities</span></span></b></h3>
<ul style="margin-bottom: 0pt; margin-top: 0pt;">
<li style="font-size: 15px; font-weight: normal; list-style-type: disc; vertical-align: baseline;"><b id="internal-source-marker_0.5761032791342586"><span style="font-family: inherit;"><span style="vertical-align: baseline; white-space: pre-wrap;">Weaknesses</span></span></b></li>
<b id="internal-source-marker_0.5761032791342586"><span style="font-family: inherit;">
</span></b></ul>
<h3 dir="ltr">
<b id="internal-source-marker_0.5761032791342586"><span style="font-family: inherit;"> <span style="color: #666666; font-size: 16px; vertical-align: baseline; white-space: pre-wrap;">Threats</span></span></b></h3>
<ul style="margin-bottom: 0pt; margin-top: 0pt;">
<li style="font-size: 15px; font-weight: normal; list-style-type: disc; vertical-align: baseline;"><b id="internal-source-marker_0.5761032791342586"><span style="font-family: inherit;"><span style="vertical-align: baseline; white-space: pre-wrap;">Ways to attack, whether or not they are succesful</span></span></b></li>
<b id="internal-source-marker_0.5761032791342586"><span style="font-family: inherit;">
</span></b></ul>
<h3 dir="ltr">
<b id="internal-source-marker_0.5761032791342586"><span style="font-family: inherit;"> <span style="color: #666666; font-size: 16px; vertical-align: baseline; white-space: pre-wrap;">Vulnerabilities (OAuth Top 10)</span></span></b></h3>
<ol style="margin-bottom: 0pt; margin-top: 0pt;">
<li style="font-size: 15px; font-weight: normal; list-style-type: decimal; vertical-align: baseline;"><b id="internal-source-marker_0.5761032791342586"><span style="font-family: inherit;"><span style="font-weight: bold; vertical-align: baseline; white-space: pre-wrap;">Injection</span></span></b></li>
<b id="internal-source-marker_0.5761032791342586"><span style="font-family: inherit;">
<li style="font-size: 15px; font-weight: normal; list-style-type: decimal; vertical-align: baseline;"><span style="font-weight: bold; vertical-align: baseline; white-space: pre-wrap;">XSS -</span><span style="font-style: italic; vertical-align: baseline; white-space: pre-wrap;"> biggest problem in Drupal</span></li>
<li style="font-size: 15px; font-weight: normal; list-style-type: decimal; vertical-align: baseline;"><span style="vertical-align: baseline; white-space: pre-wrap;">Broken auth/session - using core? OK</span></li>
<li style="font-size: 15px; font-weight: normal; list-style-type: decimal; vertical-align: baseline;"><span style="vertical-align: baseline; white-space: pre-wrap;">Insecure direct object reference - manging access</span></li>
<li style="font-size: 15px; font-weight: normal; list-style-type: decimal; vertical-align: baseline;"><span style="font-weight: bold; vertical-align: baseline; white-space: pre-wrap;">CSRF</span><span style="font-style: italic; vertical-align: baseline; white-space: pre-wrap;"></span></li>
<li style="font-size: 15px; font-weight: normal; list-style-type: decimal; vertical-align: baseline;"><span style="font-weight: bold; vertical-align: baseline; white-space: pre-wrap;">MIsconfiguration</span></li>
<li style="font-size: 15px; font-weight: normal; list-style-type: decimal; vertical-align: baseline;"><span style="vertical-align: baseline; white-space: pre-wrap;">Insecure cryptographic storage - site specific, SSH, using a VPN to encrypt traffic</span></li>
<ol style="margin-bottom: 0pt; margin-top: 0pt;">
<li style="font-size: 15px; font-weight: normal; list-style-type: lower-alpha; vertical-align: baseline;"><span style="vertical-align: baseline; white-space: pre-wrap;">Exception - password hash, encrypted information within site and database (encryption module)</span></li>
</ol>
<li style="font-size: 15px; font-weight: normal; list-style-type: decimal; vertical-align: baseline;"><span style="font-weight: bold; vertical-align: baseline; white-space: pre-wrap;">Failure to restrict URL access</span></li>
<li style="font-size: 15px; font-weight: normal; list-style-type: decimal; vertical-align: baseline;"><span style="vertical-align: baseline; white-space: pre-wrap;">Insufficient transport layer protection - https</span></li>
<li style="font-size: 15px; font-weight: normal; list-style-type: decimal; vertical-align: baseline;"><span style="font-weight: bold; vertical-align: baseline; white-space: pre-wrap;">Unvalidated redirects and forwards</span></li>
</span></b></ol>
<h3 dir="ltr">
<b id="internal-source-marker_0.5761032791342586"><span style="font-family: inherit;"> <span style="color: #666666; font-size: 16px; vertical-align: baseline; white-space: pre-wrap;">Detecting Vulnerabilities</span></span></b></h3>
<ul style="margin-bottom: 0pt; margin-top: 0pt;">
<li style="font-size: 15px; font-weight: normal; list-style-type: disc; vertical-align: baseline;"><b id="internal-source-marker_0.5761032791342586"><span style="font-family: inherit;"><span style="vertical-align: baseline; white-space: pre-wrap;">Automated code reviews</span></span></b></li>
<b id="internal-source-marker_0.5761032791342586"><span style="font-family: inherit;">
<ul style="margin-bottom: 0pt; margin-top: 0pt;">
<li style="font-size: 15px; font-weight: normal; list-style-type: circle; vertical-align: baseline;"><span style="vertical-align: baseline; white-space: pre-wrap;">Static: Coder Module Secure Code Review module, Acquia</span></li>
<li style="font-size: 15px; font-weight: normal; list-style-type: circle; vertical-align: baseline;"><span style="vertical-align: baseline; white-space: pre-wrap;">Dynamic: Not common</span></li>
</ul>
<li style="font-size: 15px; font-weight: normal; list-style-type: disc; vertical-align: baseline;"><span style="vertical-align: baseline; white-space: pre-wrap;">Automated penetration testing</span></li>
<ul style="margin-bottom: 0pt; margin-top: 0pt;">
<li style="font-size: 15px; font-weight: normal; list-style-type: circle; vertical-align: baseline;"><span style="vertical-align: baseline; white-space: pre-wrap;">Generic tools: Grendelscan (open sourcE), Fortify, Rational</span></li>
<li style="font-size: 15px; font-weight: normal; list-style-type: circle; vertical-align: baseline;"><span style="vertical-align: baseline; white-space: pre-wrap;">Drupal Tools: Acquia</span></li>
</ul>
<li style="font-size: 15px; font-weight: normal; list-style-type: disc; vertical-align: baseline;"><span style="vertical-align: baseline; white-space: pre-wrap;">Manual code reviews</span></li>
<ul style="margin-bottom: 0pt; margin-top: 0pt;">
<li style="font-size: 15px; font-weight: normal; list-style-type: circle; vertical-align: baseline;"><span style="vertical-align: baseline; white-space: pre-wrap;">db_query(“DELETE FROM {users} WHERE name = “ $name”);</span></li>
</ul>
<li style="font-size: 15px; font-weight: normal; list-style-type: disc; vertical-align: baseline;"><span style="vertical-align: baseline; white-space: pre-wrap;">Manual penetration testing</span></li>
<ul style="margin-bottom: 0pt; margin-top: 0pt;">
<li style="font-size: 15px; font-weight: normal; list-style-type: circle; vertical-align: baseline;"><span style="vertical-align: baseline; white-space: pre-wrap;">Be an intelligent robot</span></li>
<li style="font-size: 15px; font-weight: normal; list-style-type: circle; vertical-align: baseline;"><span style="vertical-align: baseline; white-space: pre-wrap;">Vuln.module (NEEDS PORT TO DRUPAL 7), Firefox: Tamperdata</span></li>
</ul>
</span></b></ul>
<b id="internal-source-marker_0.5761032791342586"><span style="font-family: inherit;"><span style="font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">Security review module</span><br />
<span style="font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"></span><br />
<h3 dir="ltr">
<span style="color: #666666; font-size: 16px; vertical-align: baseline; white-space: pre-wrap;">Responding to Vulnerabilities</span></h3>
<h4 dir="ltr">
<span style="color: #666666; font-size: 15px; font-style: italic; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">Custom code:</span></h4>
<ol style="margin-bottom: 0pt; margin-top: 0pt;">
<li style="font-size: 15px; font-weight: normal; list-style-type: decimal; vertical-align: baseline;"><span style="vertical-align: baseline; white-space: pre-wrap;">Fix it</span></li>
<li style="font-size: 15px; font-weight: normal; list-style-type: decimal; vertical-align: baseline;"><span style="vertical-align: baseline; white-space: pre-wrap;">Test it</span></li>
<li style="font-size: 15px; font-weight: normal; list-style-type: decimal; vertical-align: baseline;"><span style="vertical-align: baseline; white-space: pre-wrap;">Deploy it</span></li>
<li style="font-size: 15px; font-weight: normal; list-style-type: decimal; vertical-align: baseline;"><span style="vertical-align: baseline; white-space: pre-wrap;">Contact customers (?)</span></li>
</ol>
<h4 dir="ltr">
<span style="color: #666666; font-size: 15px; font-style: italic; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">Contributed Code</span></h4>
<ol style="margin-bottom: 0pt; margin-top: 0pt;">
<li style="font-size: 15px; font-weight: normal; list-style-type: decimal; vertical-align: baseline;"><span style="vertical-align: baseline; white-space: pre-wrap;">4 steps above</span></li>
<li style="font-size: 15px; font-weight: normal; list-style-type: decimal; vertical-align: baseline;"><span style="vertical-align: baseline; white-space: pre-wrap;">Work out a simple, repeatable test case</span></li>
<li style="font-size: 15px; font-weight: normal; list-style-type: decimal; vertical-align: baseline;"><span style="vertical-align: baseline; white-space: pre-wrap;">Report the issue to the Drupal Secuyrity Team</span></li>
<li style="font-size: 15px; font-weight: normal; list-style-type: decimal; vertical-align: baseline;"><span style="vertical-align: baseline; white-space: pre-wrap;">Compare to </span><a href="http://drupal.org/security-advisory-poicy"><span style="color: #1155cc; vertical-align: baseline; white-space: pre-wrap;">http://drupal.org/security-advisory-poicy</span></a><span style="vertical-align: baseline; white-space: pre-wrap;"></span></li>
<li style="font-size: 15px; font-weight: normal; list-style-type: decimal; vertical-align: baseline;"><span style="vertical-align: baseline; white-space: pre-wrap;">Work with the Team and maintrainer to get a fix</span></li>
<li style="font-size: 15px; font-weight: normal; list-style-type: decimal; vertical-align: baseline;"><span style="vertical-align: baseline; white-space: pre-wrap;">something else???</span></li>
</ol>
<h3 dir="ltr">
<span style="color: #666666; font-size: 16px; vertical-align: baseline; white-space: pre-wrap;">Detecting threats</span></h3>
<ul style="margin-bottom: 0pt; margin-top: 0pt;">
<li style="font-size: 15px; font-weight: normal; list-style-type: disc; vertical-align: baseline;"><span style="vertical-align: baseline; white-space: pre-wrap;">Spam</span></li>
<ul style="margin-bottom: 0pt; margin-top: 0pt;">
<li style="font-size: 15px; font-weight: normal; list-style-type: circle; vertical-align: baseline;"><span style="vertical-align: baseline; white-space: pre-wrap;">Can be obvious indicator, but only if you’re actually monitoring</span></li>
</ul>
<li style="font-size: 15px; font-weight: normal; list-style-type: disc; vertical-align: baseline;"><span style="vertical-align: baseline; white-space: pre-wrap;">Defacement (can be hidden)</span></li>
<ul style="margin-bottom: 0pt; margin-top: 0pt;">
<li style="font-size: 15px; font-weight: normal; list-style-type: circle; vertical-align: baseline;"><span style="vertical-align: baseline; white-space: pre-wrap;">Use version control, Hacked! module</span></li>
<li style="font-size: 15px; font-weight: normal; list-style-type: circle; vertical-align: baseline;"><span style="vertical-align: baseline; white-space: pre-wrap;">security_review.module</span></li>
<li style="font-size: 15px; font-weight: normal; list-style-type: circle; vertical-align: baseline;"><span style="vertical-align: baseline; white-space: pre-wrap;">Watch revisions</span></li>
<li style="font-size: 15px; font-weight: normal; list-style-type: circle; vertical-align: baseline;"><span style="vertical-align: baseline; white-space: pre-wrap;">Crowdsource (flag)</span></li>
</ul>
<li style="font-size: 15px; font-weight: normal; list-style-type: disc; vertical-align: baseline;"><span style="vertical-align: baseline; white-space: pre-wrap;">Code injection (xss, php)</span></li>
<ul style="margin-bottom: 0pt; margin-top: 0pt;">
<li style="font-size: 15px; font-weight: normal; list-style-type: circle; vertical-align: baseline;"><span style="vertical-align: baseline; white-space: pre-wrap;">IDS - PHPIDS, TinyIDS</span></li>
<ul style="margin-bottom: 0pt; margin-top: 0pt;">
<li style="font-size: 15px; font-weight: normal; list-style-type: square; vertical-align: baseline;"><a href="http://www.codetrax.org/projects/tinyids"><span style="color: #1155cc; vertical-align: baseline; white-space: pre-wrap;">http://www.codetrax.org/projects/tinyids</span></a><span style="vertical-align: baseline; white-space: pre-wrap;"></span></li>
<li style="font-size: 15px; font-weight: normal; list-style-type: square; vertical-align: baseline;"><a href="https://phpids.org/"><span style="color: #1155cc; vertical-align: baseline; white-space: pre-wrap;">https://phpids.org/</span></a><span style="vertical-align: baseline; white-space: pre-wrap;"> </span></li>
</ul>
<li style="font-size: 15px; font-weight: normal; list-style-type: circle; vertical-align: baseline;"><span style="vertical-align: baseline; white-space: pre-wrap;">Web Application Firewall</span></li>
<ul style="margin-bottom: 0pt; margin-top: 0pt;">
<li style="font-size: 15px; font-weight: normal; list-style-type: square; vertical-align: baseline;"><span style="vertical-align: baseline; white-space: pre-wrap;">mod_security from apache</span></li>
</ul>
</ul>
<li style="font-size: 15px; font-weight: normal; list-style-type: disc; vertical-align: baseline;"><span style="vertical-align: baseline; white-space: pre-wrap;">Brute force password</span></li>
<ul style="margin-bottom: 0pt; margin-top: 0pt;">
<li style="font-size: 15px; font-weight: normal; list-style-type: circle; vertical-align: baseline;"><span style="vertical-align: baseline; white-space: pre-wrap;">Read watchdog all day long</span></li>
<li style="font-size: 15px; font-weight: normal; list-style-type: circle; vertical-align: baseline;"><span style="vertical-align: baseline; white-space: pre-wrap;">Droptor </span><a href="http://drupal.org/project/droptor"><span style="color: #1155cc; vertical-align: baseline; white-space: pre-wrap;">http://drupal.org/project/droptor</span></a><span style="vertical-align: baseline; white-space: pre-wrap;"> </span></li>
</ul>
</ul>
<h3 dir="ltr">
<span style="color: #666666; font-size: 16px; vertical-align: baseline; white-space: pre-wrap;">Responding to threats</span></h3>
<ul style="margin-bottom: 0pt; margin-top: 0pt;">
<li style="font-size: 15px; font-weight: normal; list-style-type: disc; vertical-align: baseline;"><span style="vertical-align: baseline; white-space: pre-wrap;">Spam</span></li>
<ul style="margin-bottom: 0pt; margin-top: 0pt;">
<li style="font-size: 15px; font-weight: normal; list-style-type: circle; vertical-align: baseline;"><span style="vertical-align: baseline; white-space: pre-wrap;">Mollom, Akismet</span></li>
<li style="font-size: 15px; font-weight: normal; list-style-type: circle; vertical-align: baseline;"><span style="vertical-align: baseline; white-space: pre-wrap;">Spam, flag_abuse</span></li>
</ul>
<li style="font-size: 15px; font-weight: normal; list-style-type: disc; vertical-align: baseline;"><span style="vertical-align: baseline; white-space: pre-wrap;">Defacement</span></li>
<ul style="margin-bottom: 0pt; margin-top: 0pt;">
<li style="font-size: 15px; font-weight: normal; list-style-type: circle; vertical-align: baseline;"><span style="vertical-align: baseline; white-space: pre-wrap;">Revert to good copies from version control</span></li>
<li style="font-size: 15px; font-weight: normal; list-style-type: circle; vertical-align: baseline;"><span style="vertical-align: baseline; white-space: pre-wrap;">Overwrite with new versions</span></li>
<li style="font-size: 15px; font-weight: normal; list-style-type: circle; vertical-align: baseline;"><span style="vertical-align: baseline; white-space: pre-wrap;">Node revisions, db backup</span></li>
</ul>
<li style="font-size: 15px; font-weight: normal; list-style-type: disc; vertical-align: baseline;"><span style="vertical-align: baseline; white-space: pre-wrap;">Code injection</span></li>
<ul style="margin-bottom: 0pt; margin-top: 0pt;">
<li style="font-size: 15px; font-weight: normal; list-style-type: circle; vertical-align: baseline;"><span style="vertical-align: baseline; white-space: pre-wrap;">Keep code safe</span></li>
<li style="font-size: 15px; font-weight: normal; list-style-type: circle; vertical-align: baseline;"><span style="vertical-align: baseline; white-space: pre-wrap;">Proactively block attackers at the firewall</span></li>
</ul>
<li style="font-size: 15px; font-weight: normal; list-style-type: disc; vertical-align: baseline;"><span style="vertical-align: baseline; white-space: pre-wrap;">Brute force password</span></li>
<ul style="margin-bottom: 0pt; margin-top: 0pt;">
<li style="font-size: 15px; font-weight: normal; list-style-type: circle; vertical-align: baseline;"><span style="vertical-align: baseline; white-space: pre-wrap;">login_security module</span></li>
<li style="font-size: 15px; font-weight: normal; list-style-type: circle; vertical-align: baseline;"><span style="vertical-align: baseline; white-space: pre-wrap;">Included in Drupal 7 core</span></li>
</ul>
<li style="font-size: 15px; font-weight: normal; list-style-type: disc; vertical-align: baseline;"><span style="vertical-align: baseline; white-space: pre-wrap;">Help with everything: httpBL</span></li>
<ul style="margin-bottom: 0pt; margin-top: 0pt;">
<li style="font-size: 15px; font-weight: normal; list-style-type: circle; vertical-align: baseline;"><a href="http://drupal.org/project/httpbl"><span style="color: #1155cc; vertical-align: baseline; white-space: pre-wrap;">http://drupal.org/project/httpbl</span></a><span style="vertical-align: baseline; white-space: pre-wrap;"></span></li>
<li style="font-size: 15px; font-weight: normal; list-style-type: circle; vertical-align: baseline;"><span style="vertical-align: baseline; white-space: pre-wrap;">honeypot</span></li>
<li style="font-size: 15px; font-weight: normal; list-style-type: circle; vertical-align: baseline;"><span style="vertical-align: baseline; white-space: pre-wrap;">Reduces crawlers and malicious spiders</span></li>
</ul>
</ul>
<h3 dir="ltr">
<span style="color: #666666; font-size: 16px; vertical-align: baseline; white-space: pre-wrap;">Site monitoring</span></h3>
<ul style="margin-bottom: 0pt; margin-top: 0pt;">
<li style="font-size: 15px; font-weight: normal; list-style-type: disc; vertical-align: baseline;"><span style="vertical-align: baseline; white-space: pre-wrap;">Internal/Free</span></li>
<ul style="margin-bottom: 0pt; margin-top: 0pt;">
<li style="font-size: 15px; font-weight: normal; list-style-type: circle; vertical-align: baseline;"><span style="vertical-align: baseline; white-space: pre-wrap;">Views</span></li>
<li style="font-size: 15px; font-weight: normal; list-style-type: circle; vertical-align: baseline;"><span style="vertical-align: baseline; white-space: pre-wrap;">Mailmon - brand new</span></li>
<li style="font-size: 15px; font-weight: normal; list-style-type: circle; vertical-align: baseline;"><span style="vertical-align: baseline; white-space: pre-wrap;">Quant - charting</span></li>
<li style="font-size: 15px; font-weight: normal; list-style-type: circle; vertical-align: baseline;"><span style="vertical-align: baseline; white-space: pre-wrap;">Report - charting</span></li>
<li style="font-size: 15px; font-weight: normal; list-style-type: circle; vertical-align: baseline;"><span style="vertical-align: baseline; white-space: pre-wrap;">Chart (system_charts)</span></li>
</ul>
<li style="font-size: 15px; font-weight: normal; list-style-type: disc; vertical-align: baseline;"><span style="vertical-align: baseline; white-space: pre-wrap;">External/Paid</span></li>
<ul style="margin-bottom: 0pt; margin-top: 0pt;">
<li style="font-size: 15px; font-weight: normal; list-style-type: circle; vertical-align: baseline;"><span style="vertical-align: baseline; white-space: pre-wrap;">Acquia network - ~$350/year, includes library, support</span></li>
<ul style="margin-bottom: 0pt; margin-top: 0pt;">
<li style="font-size: 15px; font-weight: normal; list-style-type: square; vertical-align: baseline;"><span style="vertical-align: baseline; white-space: pre-wrap;">Acquia Insight</span></li>
</ul>
<li style="font-size: 15px; font-weight: normal; list-style-type: circle; vertical-align: baseline;"><span style="vertical-align: baseline; white-space: pre-wrap;">Droptor - $24/month/site, monitoring only</span></li>
<li style="font-size: 15px; font-weight: normal; list-style-type: circle; vertical-align: baseline;"><span style="vertical-align: baseline; white-space: pre-wrap;">Drupalmonitor.com - unknown pricing</span></li>
</ul>
</ul>
<h3 dir="ltr">
<span style="color: #666666; font-size: 16px; vertical-align: baseline; white-space: pre-wrap;">Three keys to ongoing operational security</span></h3>
<ul style="margin-bottom: 0pt; margin-top: 0pt;">
<li style="font-size: 15px; font-weight: normal; list-style-type: disc; vertical-align: baseline;"><span style="vertical-align: baseline; white-space: pre-wrap;">Vigilance</span></li>
<li style="font-size: 15px; font-weight: normal; list-style-type: disc; vertical-align: baseline;"><span style="vertical-align: baseline; white-space: pre-wrap;">Strong Chain</span></li>
<li style="font-size: 15px; font-weight: normal; list-style-type: disc; vertical-align: baseline;"><span style="vertical-align: baseline; white-space: pre-wrap;">Incident Handling</span></li>
</ul>
<h2 dir="ltr">
<span style="font-size: 19px; vertical-align: baseline; white-space: pre-wrap;">What are the things that we need to do after launch on an ongoing basis after launch?</span></h2>
<ul style="margin-bottom: 0pt; margin-top: 0pt;">
<li style="font-size: 15px; font-weight: normal; list-style-type: disc; vertical-align: baseline;"><span style="vertical-align: baseline; white-space: pre-wrap;">Maintain eternal vigilance</span></li>
<li style="font-size: 15px; font-weight: normal; list-style-type: disc; vertical-align: baseline;"><span style="vertical-align: baseline; white-space: pre-wrap;">Automate as much as possible</span></li>
<ul style="margin-bottom: 0pt; margin-top: 0pt;">
<li style="font-size: 15px; font-weight: normal; list-style-type: circle; vertical-align: baseline;"><span style="vertical-align: baseline; white-space: pre-wrap;">Avoiding human error - often “I was too busy to get to it”</span></li>
</ul>
<li style="font-size: 15px; font-weight: normal; list-style-type: disc; vertical-align: baseline;"><span style="vertical-align: baseline; white-space: pre-wrap;">Conduct periodic audits</span></li>
<li style="font-size: 15px; font-weight: normal; list-style-type: disc; vertical-align: baseline;"><span style="vertical-align: baseline; white-space: pre-wrap;">Never sleep</span></li>
</ul>
<h3 dir="ltr">
<span style="color: #666666; font-size: 16px; vertical-align: baseline; white-space: pre-wrap;">Periodic Audit Program</span></h3>
<ul style="margin-bottom: 0pt; margin-top: 0pt;">
<li style="font-size: 15px; font-weight: normal; list-style-type: disc; vertical-align: baseline;"><span style="vertical-align: baseline; white-space: pre-wrap;">Email Trent Hein of AppliedTrust for a copy of the PDF</span></li>
<li style="font-size: 15px; font-weight: normal; list-style-type: disc; vertical-align: baseline;"><a href="http://www.appliedtrust.com/trent"><span style="color: #1155cc; vertical-align: baseline; white-space: pre-wrap;">http://www.appliedtrust.com/trent</span></a><span style="vertical-align: baseline; white-space: pre-wrap;"></span></li>
</ul>
<h3 dir="ltr">
<span style="color: #666666; font-size: 16px; vertical-align: baseline; white-space: pre-wrap;">Avoiding weak links in the chain</span></h3>
<ul style="margin-bottom: 0pt; margin-top: 0pt;">
<li style="font-size: 15px; font-weight: normal; list-style-type: disc; vertical-align: baseline;"><span style="vertical-align: baseline; white-space: pre-wrap;">Education</span></li>
<li style="font-size: 15px; font-weight: normal; list-style-type: disc; vertical-align: baseline;"><span style="vertical-align: baseline; white-space: pre-wrap;">Training</span></li>
<li style="font-size: 15px; font-weight: normal; list-style-type: disc; vertical-align: baseline;"><span style="vertical-align: baseline; white-space: pre-wrap;">Awareness</span></li>
</ul>
<h3 dir="ltr">
<span style="color: #666666; font-size: 16px; vertical-align: baseline; white-space: pre-wrap;">Patching</span></h3>
<ul style="margin-bottom: 0pt; margin-top: 0pt;">
<li style="font-size: 15px; font-weight: normal; list-style-type: disc; vertical-align: baseline;"><span style="vertical-align: baseline; white-space: pre-wrap;">PCI DSS requires patching of all critical infrastructure within 30 days</span></li>
<li style="font-size: 15px; font-weight: normal; list-style-type: disc; vertical-align: baseline;"><span style="vertical-align: baseline; white-space: pre-wrap;">What:</span></li>
<ul style="margin-bottom: 0pt; margin-top: 0pt;">
<li style="font-size: 15px; font-weight: normal; list-style-type: circle; vertical-align: baseline;"><span style="vertical-align: baseline; white-space: pre-wrap;">Linux or other underlying OS</span></li>
<li style="font-size: 15px; font-weight: normal; list-style-type: circle; vertical-align: baseline;"><span style="vertical-align: baseline; white-space: pre-wrap;">Firewall infrastructure</span></li>
<li style="font-size: 15px; font-weight: normal; list-style-type: circle; vertical-align: baseline;"><span style="vertical-align: baseline; white-space: pre-wrap;">Switches</span></li>
<li style="font-size: 15px; font-weight: normal; list-style-type: circle; vertical-align: baseline;"><span style="vertical-align: baseline; white-space: pre-wrap;">Wireless Access Points</span></li>
<li style="font-size: 15px; font-weight: normal; list-style-type: circle; vertical-align: baseline;"><span style="vertical-align: baseline; white-space: pre-wrap;">… more</span></li>
</ul>
</ul>
<h3 dir="ltr">
<span style="color: #666666; font-size: 16px; vertical-align: baseline; white-space: pre-wrap;">Incident Management (needs to be written)</span></h3>
<ol style="margin-bottom: 0pt; margin-top: 0pt;">
<li style="font-size: 15px; font-weight: normal; list-style-type: decimal; vertical-align: baseline;"><span style="vertical-align: baseline; white-space: pre-wrap;">Initial Response</span></li>
<li style="font-size: 15px; font-weight: normal; list-style-type: decimal; vertical-align: baseline;"><span style="vertical-align: baseline; white-space: pre-wrap;">Notification and Escalation</span></li>
<ol style="margin-bottom: 0pt; margin-top: 0pt;">
<li style="font-size: 15px; font-weight: normal; list-style-type: lower-alpha; vertical-align: baseline;"><span style="vertical-align: baseline; white-space: pre-wrap;">Smallest possible group for as long as possible, then figure out communication</span></li>
</ol>
<li style="font-size: 15px; font-weight: normal; list-style-type: decimal; vertical-align: baseline;"><span style="vertical-align: baseline; white-space: pre-wrap;">Response Strategy</span></li>
<ol style="margin-bottom: 0pt; margin-top: 0pt;">
<li style="font-size: 15px; font-weight: normal; list-style-type: lower-alpha; vertical-align: baseline;"><span style="vertical-align: baseline; white-space: pre-wrap;">Do we need to update? Notify users?</span></li>
</ol>
</ol>
<h3 dir="ltr">
<span style="color: #666666; font-size: 16px; vertical-align: baseline; white-space: pre-wrap;">One important take-away</span></h3>
<ul style="margin-bottom: 0pt; margin-top: 0pt;">
<li style="font-size: 15px; font-weight: normal; list-style-type: disc; vertical-align: baseline;"><span style="vertical-align: baseline; white-space: pre-wrap;">Don’t use the same password on multiple sites you administer (Playstation Network)</span></li>
</ul>
<h3 dir="ltr">
<span style="color: #666666; font-size: 16px; vertical-align: baseline; white-space: pre-wrap;">Secure Site Admin Pledge</span></h3>
<ul style="margin-bottom: 0pt; margin-top: 0pt;">
<li style="font-size: 15px; font-weight: normal; list-style-type: disc; vertical-align: baseline;"><span style="vertical-align: baseline; white-space: pre-wrap;">I pledge to take the following steps to be a responsible Drupal site administrator:</span></li>
<li style="font-size: 15px; font-weight: normal; list-style-type: disc; vertical-align: baseline;"><span style="vertical-align: baseline; white-space: pre-wrap;">I have set a unique, strong password for any accounts with administrative privelegaes, and I do not share passwords across sites</span></li>
<li style="font-size: 15px; font-weight: normal; list-style-type: disc; vertical-align: baseline;"><span style="vertical-align: baseline; white-space: pre-wrap;">I use multi-factor authentications (e.g., ssh keys) for OS-level access and have password-only access disabled on my systems.</span></li>
<li style="font-size: 15px; font-weight: normal; list-style-type: disc; vertical-align: baseline;"><span style="vertical-align: baseline; white-space: pre-wrap;">I have and execute a patching plan that includes the OS, web server, and Drupal layers (including core, modules, and custom code)</span></li>
<li style="font-size: 15px; font-weight: normal; list-style-type: disc; vertical-align: baseline;"><span style="vertical-align: baseline; white-space: pre-wrap;">I have and execute at least a minimalist periodic audit plan</span></li>
<li style="font-size: 15px; font-weight: normal; list-style-type: disc; vertical-align: baseline;"><span style="vertical-align: baseline; white-space: pre-wrap;">I am aware of and comply with applicable information security requirements for the data that my site handles (HIPAA, PCI DSS, etc.)</span></li>
<li style="font-size: 15px; font-weight: normal; list-style-type: disc; vertical-align: baseline;"><span style="vertical-align: baseline; white-space: pre-wrap;">I monitor vulnerability announcement mailing lists for the technologies I use on my site</span></li>
<li style="font-size: 15px; font-weight: normal; list-style-type: disc; vertical-align: baseline;"><span style="vertical-align: baseline; white-space: pre-wrap;">I monitor my system regularly such that I know how it behaves under normal conditions</span></li>
<li style="font-size: 15px; font-weight: normal; list-style-type: disc; vertical-align: baseline;"><span style="vertical-align: baseline; white-space: pre-wrap;">I have a documented incident handling plan that I am familiar with and can use in an emergency</span></li>
<li style="font-size: 15px; font-weight: normal; list-style-type: disc; vertical-align: baseline;"><span style="vertical-align: baseline; white-space: pre-wrap;">I take responsibility for ensuring that any custom code is developed according to secure coding best practices and is evaluated before being put into production</span></li>
<li style="font-size: 15px; font-weight: normal; list-style-type: disc; vertical-align: baseline;"><span style="vertical-align: baseline; white-space: pre-wrap;">I will be eternally vigilant and investigate any unusual/suspicious site behavior</span></li>
<li style="font-size: 15px; font-weight: normal; list-style-type: disc; vertical-align: baseline;"><span style="vertical-align: baseline; white-space: pre-wrap;">I have a process in place to ensure non-production sites are appropriately protected from external/access /crawling</span></li>
<li style="font-size: 15px; font-weight: normal; list-style-type: disc; vertical-align: baseline;"><span style="vertical-align: baseline; white-space: pre-wrap;">I am an advocate for practical information security practices and avoid “Security theater” showmanship</span></li>
</ul>
<h2 dir="ltr">
<span style="font-size: 19px; vertical-align: baseline; white-space: pre-wrap;">Thank You!</span></h2>
<span style="font-size: 15px; font-style: italic; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">Please get in touch to chat about these topics:</span><ul style="margin-bottom: 0pt; margin-top: 0pt;">
<li style="font-size: 15px; font-weight: normal; list-style-type: disc; vertical-align: baseline;"><span style="vertical-align: baseline; white-space: pre-wrap;">Greg: </span><a href="mailto:greg.knaddison@acquia.com"><span style="color: #1155cc; vertical-align: baseline; white-space: pre-wrap;">greg.knaddison@acquia.com</span></a><span style="vertical-align: baseline; white-space: pre-wrap;"></span></li>
<li style="font-size: 15px; font-weight: normal; list-style-type: disc; vertical-align: baseline;"><span style="vertical-align: baseline; white-space: pre-wrap;">Ned: </span><a href="mailto:ned@appliedtrust.com"><span style="color: #1155cc; vertical-align: baseline; white-space: pre-wrap;">ned@appliedtrust.com</span></a><span style="vertical-align: baseline; white-space: pre-wrap;"></span></li>
<li style="font-size: 15px; font-weight: normal; list-style-type: disc; vertical-align: baseline;"><span style="vertical-align: baseline; white-space: pre-wrap;">Trent: </span><a href="mailto:trent@appliedtrust.com"><span style="color: #1155cc; vertical-align: baseline; white-space: pre-wrap;">trent@appliedtrust.com</span></a></li>
</ul>
</span></b>Jon Peckhttp://www.blogger.com/profile/15647634292152200889noreply@blogger.com0tag:blogger.com,1999:blog-4767023536930727704.post-37881159500258625712012-03-21T14:59:00.000-05:002012-04-01T15:02:40.677-05:00Notes from DrupalCon - What's New in the Panels Universe<i><span><span style="font-family: inherit;">The following are my notes from </span></span><a href="http://denver2012.drupal.org/program/sessions/whats-new-panels-universe">What's New in the Panels Universe</a> on Wednesday, March 21st, 2012 at DrupalCon Denver.</i><br />
<span id="internal-source-marker_0.6899987801443785"><span style="font-family: inherit;"></span></span><br />
<h2 dir="ltr" style="font-weight: bold;">
<span style="font-family: inherit;"><span style="font-size: 19px; vertical-align: baseline; white-space: pre-wrap;">What IS the Panels Universe?</span></span></h2>
<ul style="font-weight: bold; margin-bottom: 0pt; margin-top: 0pt;">
<li style="font-size: 15px; font-weight: normal; list-style-type: disc; vertical-align: baseline;"><span style="font-family: inherit;"><span style="vertical-align: baseline; white-space: pre-wrap;">Panels</span></span></li>
<ul style="margin-bottom: 0pt; margin-top: 0pt;">
<li style="font-size: 15px; font-weight: normal; list-style-type: circle; vertical-align: baseline;"><span style="font-family: inherit;"><a href="http://drupal.org/project/panels"><span style="color: #1155cc; vertical-align: baseline; white-space: pre-wrap;">http://drupal.org/project/panels</span></a><span style="vertical-align: baseline; white-space: pre-wrap;"></span></span></li>
<li style="font-size: 15px; font-weight: normal; list-style-type: circle; vertical-align: baseline;"><span style="font-family: inherit;"><span style="vertical-align: baseline; white-space: pre-wrap;">Layout manager</span></span></li>
<li style="font-size: 15px; font-weight: normal; list-style-type: circle; vertical-align: baseline;"><span style="font-family: inherit;"><span style="vertical-align: baseline; white-space: pre-wrap;">May end up in core in D8</span></span></li>
</ul>
<li style="font-size: 15px; font-weight: normal; list-style-type: disc; vertical-align: baseline;"><span style="font-family: inherit;"><span style="vertical-align: baseline; white-space: pre-wrap;">Page Manager (CTools)</span></span></li>
<ul style="margin-bottom: 0pt; margin-top: 0pt;">
<li style="font-size: 15px; font-weight: normal; list-style-type: circle; vertical-align: baseline;"><span style="font-family: inherit;"><a href="http://drupal.org/project/ctools"><span style="color: #1155cc; vertical-align: baseline; white-space: pre-wrap;">http://drupal.org/project/ctools</span></a><span style="vertical-align: baseline; white-space: pre-wrap;"></span></span></li>
<li style="font-size: 15px; font-weight: normal; list-style-type: circle; vertical-align: baseline;"><span style="font-family: inherit;"><span style="vertical-align: baseline; white-space: pre-wrap;">GUI for hook_menu</span></span></li>
</ul>
<li style="font-size: 15px; font-weight: normal; list-style-type: disc; vertical-align: baseline;"><span style="font-family: inherit;"><span style="vertical-align: baseline; white-space: pre-wrap;">Panels Everywhere</span></span></li>
<ul style="margin-bottom: 0pt; margin-top: 0pt;">
<li style="font-size: 15px; font-weight: normal; list-style-type: circle; vertical-align: baseline;"><span style="font-family: inherit;"><a href="http://drupal.org/project/panels_everywhere"><span style="color: #1155cc; vertical-align: baseline; white-space: pre-wrap;">http://drupal.org/project/panels_everywhere</span></a><span style="vertical-align: baseline; white-space: pre-wrap;"></span></span></li>
<li style="font-size: 15px; font-weight: normal; list-style-type: circle; vertical-align: baseline;"><span style="font-family: inherit;"><span style="vertical-align: baseline; white-space: pre-wrap;">Replacement for blocks and templates</span></span></li>
<li style="font-size: 15px; font-weight: normal; list-style-type: circle; vertical-align: baseline;"><span style="font-family: inherit;"><span style="vertical-align: baseline; white-space: pre-wrap;">A lot of work will be done on this over the next year</span></span></li>
</ul>
<li style="font-size: 15px; font-weight: normal; list-style-type: disc; vertical-align: baseline;"><span style="font-family: inherit;"><span style="vertical-align: baseline; white-space: pre-wrap;">Panelizer</span></span></li>
<ul style="margin-bottom: 0pt; margin-top: 0pt;">
<li style="font-size: 15px; font-weight: normal; list-style-type: circle; vertical-align: baseline;"><span style="font-family: inherit;"><a href="http://drupal.org/project/panelizer"><span style="color: #1155cc; vertical-align: baseline; white-space: pre-wrap;">http://drupal.org/project/panelizer</span></a><span style="vertical-align: baseline; white-space: pre-wrap;"></span></span></li>
<li style="font-size: 15px; font-weight: normal; list-style-type: circle; vertical-align: baseline;"><span style="font-family: inherit;"><span style="vertical-align: baseline; white-space: pre-wrap;">Panel nodes “on steroids”</span></span></li>
</ul>
<li style="font-size: 15px; font-weight: normal; list-style-type: disc; vertical-align: baseline;"><span style="font-family: inherit;"><span style="vertical-align: baseline; white-space: pre-wrap;">Fieldable Panel Panes</span></span></li>
<ul style="margin-bottom: 0pt; margin-top: 0pt;">
<li style="font-size: 15px; font-weight: normal; list-style-type: circle; vertical-align: baseline;"><span style="font-family: inherit;"><a href="http://drupal.org/project/fieldable_panels_panes"><span style="color: #1155cc; vertical-align: baseline; white-space: pre-wrap;">http://drupal.org/project/fieldable_panels_panes</span></a><span style="vertical-align: baseline; white-space: pre-wrap;"></span></span></li>
<li style="font-size: 15px; font-weight: normal; list-style-type: circle; vertical-align: baseline;"><span style="font-family: inherit;"><span style="vertical-align: baseline; white-space: pre-wrap;">Entities that can be used as fields</span></span></li>
<li style="font-size: 15px; font-weight: normal; list-style-type: circle; vertical-align: baseline;"><span style="font-family: inherit;"><span style="vertical-align: baseline; white-space: pre-wrap;">Like theme module for blocks</span></span></li>
</ul>
<li style="font-size: 15px; font-weight: normal; list-style-type: disc; vertical-align: baseline;"><span style="font-family: inherit;"><span style="vertical-align: baseline; white-space: pre-wrap;">Field API Pane Editor (FAPE)</span></span></li>
<ul style="margin-bottom: 0pt; margin-top: 0pt;">
<li style="font-size: 15px; font-weight: normal; list-style-type: circle; vertical-align: baseline;"><span style="font-family: inherit;"><a href="http://drupal.org/project/fape"><span style="color: #1155cc; vertical-align: baseline; white-space: pre-wrap;">http://drupal.org/project/fape</span></a><span style="vertical-align: baseline; white-space: pre-wrap;"></span></span></li>
</ul>
<li style="font-size: 15px; font-weight: normal; list-style-type: disc; vertical-align: baseline;"><span style="font-family: inherit;"><span style="vertical-align: baseline; white-space: pre-wrap;">Entity Revision Scheduling (incomplete)</span></span></li>
<ul style="margin-bottom: 0pt; margin-top: 0pt;">
<li style="font-size: 15px; font-weight: normal; list-style-type: circle; vertical-align: baseline;"><span style="font-family: inherit;"><a href="http://drupal.org/project/ers"><span style="color: #1155cc; vertical-align: baseline; white-space: pre-wrap;">http://drupal.org/project/ers</span></a><span style="vertical-align: baseline; white-space: pre-wrap;"></span></span></li>
<li style="font-size: 15px; font-weight: normal; list-style-type: circle; vertical-align: baseline;"><span style="font-family: inherit;"><span style="vertical-align: baseline; white-space: pre-wrap;">You’ll need to check it out of git; no releases yet</span></span></li>
</ul>
<li style="font-size: 15px; font-weight: normal; list-style-type: disc; vertical-align: baseline;"><span style="font-family: inherit;"><span style="vertical-align: baseline; white-space: pre-wrap;">Panopoly</span></span></li>
<ul style="margin-bottom: 0pt; margin-top: 0pt;">
<li style="font-size: 15px; font-weight: normal; list-style-type: circle; vertical-align: baseline;"><span style="font-family: inherit;"><a href="http://drupal.org/project/panopoly"><span style="color: #1155cc; vertical-align: baseline; white-space: pre-wrap;">http://drupal.org/project/panopoly</span></a><span style="vertical-align: baseline; white-space: pre-wrap;"></span></span></li>
</ul>
</ul>
<h2 dir="ltr" style="font-weight: bold;">
<span style="font-family: inherit;"><span style="font-size: 19px; vertical-align: baseline; white-space: pre-wrap;"> New in Panels</span></span></h2>
<ul style="font-weight: bold; margin-bottom: 0pt; margin-top: 0pt;">
<li style="font-size: 15px; font-weight: normal; list-style-type: disc; vertical-align: baseline;"><span style="font-family: inherit;"><span style="vertical-align: baseline; white-space: pre-wrap;">Redesigned IPE (In Place Editor)</span></span></li>
<ul style="margin-bottom: 0pt; margin-top: 0pt;">
<li style="font-size: 15px; font-weight: normal; list-style-type: circle; vertical-align: baseline;"><span style="font-family: inherit;"><span style="vertical-align: baseline; white-space: pre-wrap;">Can change layout</span></span></li>
<li style="font-size: 15px; font-weight: normal; list-style-type: circle; vertical-align: baseline;"><span style="font-family: inherit;"><span style="vertical-align: baseline; white-space: pre-wrap;">Can change pane styles</span></span></li>
<li style="font-size: 15px; font-weight: normal; list-style-type: circle; vertical-align: baseline;"><span style="font-family: inherit;"><span style="vertical-align: baseline; white-space: pre-wrap;">Less ugly</span></span></li>
</ul>
<li style="font-size: 15px; font-weight: normal; list-style-type: disc; vertical-align: baseline;"><span style="font-family: inherit;"><span style="vertical-align: baseline; white-space: pre-wrap;">Pane locking</span></span></li>
<ul style="margin-bottom: 0pt; margin-top: 0pt;">
<li style="font-size: 15px; font-weight: normal; list-style-type: circle; vertical-align: baseline;"><span style="font-family: inherit;"><span style="vertical-align: baseline; white-space: pre-wrap;">Can lock panes to a region or make them immobile</span></span></li>
<li style="font-size: 15px; font-weight: normal; list-style-type: circle; vertical-align: baseline;"><span style="font-family: inherit;"><span style="vertical-align: baseline; white-space: pre-wrap;">Content people wanted to control where the content was; these ads and header elements can’t move</span></span></li>
<li style="font-size: 15px; font-weight: normal; list-style-type: circle; vertical-align: baseline;"><span style="font-family: inherit;"><span style="vertical-align: baseline; white-space: pre-wrap;">Currently does not prevent deletion; will be added in the next couple weeks</span></span></li>
</ul>
</ul>
<h2 dir="ltr" style="font-weight: bold;">
<span style="font-family: inherit;"><span style="font-size: 19px; vertical-align: baseline; white-space: pre-wrap;">Panelizer</span></span></h2>
<ul style="font-weight: bold; margin-bottom: 0pt; margin-top: 0pt;">
<li style="font-size: 15px; font-weight: normal; list-style-type: disc; vertical-align: baseline;"><span style="font-family: inherit;"><span style="vertical-align: baseline; white-space: pre-wrap;">Like Panel nodes, but with context</span></span></li>
<ul style="margin-bottom: 0pt; margin-top: 0pt;">
<li style="font-size: 15px; font-weight: normal; list-style-type: circle; vertical-align: baseline;"><span style="font-family: inherit;"><span style="vertical-align: baseline; white-space: pre-wrap;">For any node</span></span></li>
<li style="font-size: 15px; font-weight: normal; list-style-type: circle; vertical-align: baseline;"><span style="font-family: inherit;"><span style="vertical-align: baseline; white-space: pre-wrap;">Or user</span></span></li>
<li style="font-size: 15px; font-weight: normal; list-style-type: circle; vertical-align: baseline;"><span style="font-family: inherit;"><span style="vertical-align: baseline; white-space: pre-wrap;">Or taxonomy term</span></span></li>
<li style="font-size: 15px; font-weight: normal; list-style-type: circle; vertical-align: baseline;"><span style="font-family: inherit;"><span style="vertical-align: baseline; white-space: pre-wrap;">By bundle</span></span></li>
<li style="font-size: 15px; font-weight: normal; list-style-type: circle; vertical-align: baseline;"><span style="font-family: inherit;"><span style="vertical-align: baseline; white-space: pre-wrap;">With defaults</span></span></li>
<li style="font-size: 15px; font-weight: normal; list-style-type: circle; vertical-align: baseline;"><span style="font-family: inherit;"><span style="vertical-align: baseline; white-space: pre-wrap;">That can be picked by the node editor</span></span></li>
</ul>
<li style="font-size: 15px; font-weight: normal; list-style-type: disc; vertical-align: baseline;"><span style="font-family: inherit;"><span style="vertical-align: baseline; white-space: pre-wrap;">Very granular set of permissions</span></span></li>
<li style="font-size: 15px; font-weight: normal; list-style-type: disc; vertical-align: baseline;"><span style="font-family: inherit;"><span style="vertical-align: baseline; white-space: pre-wrap;">Entity generic - plugins for users, for example</span></span></li>
<li style="font-size: 15px; font-weight: normal; list-style-type: disc; vertical-align: baseline;"><span style="font-family: inherit;"><span style="vertical-align: baseline; white-space: pre-wrap;">Presents users with a slimmed down interface</span></span></li>
<ul style="margin-bottom: 0pt; margin-top: 0pt;">
<li style="font-size: 15px; font-weight: normal; list-style-type: circle; vertical-align: baseline;"><span style="font-family: inherit;"><span style="vertical-align: baseline; white-space: pre-wrap;">no need for the page manager UI</span></span></li>
</ul>
<li style="font-size: 15px; font-weight: normal; list-style-type: disc; vertical-align: baseline;"><span style="font-family: inherit;"><span style="vertical-align: baseline; white-space: pre-wrap;">Covers 90% of use cases of variants</span></span></li>
</ul>
<h2 dir="ltr" style="font-weight: bold;">
<span style="font-family: inherit;"><span style="font-size: 19px; vertical-align: baseline; white-space: pre-wrap;">Fieldable Panel Panes</span></span></h2>
<ul style="font-weight: bold; margin-bottom: 0pt; margin-top: 0pt;">
<li style="font-size: 15px; font-weight: normal; list-style-type: disc; vertical-align: baseline;"><span style="font-family: inherit;"><span style="vertical-align: baseline; white-space: pre-wrap;">An entity that can be added as a pane</span></span></li>
<li style="font-size: 15px; font-weight: normal; list-style-type: disc; vertical-align: baseline;"><span style="font-family: inherit;"><span style="vertical-align: baseline; white-space: pre-wrap;">Create on the fly or in an administrative UI</span></span></li>
<li style="font-size: 15px; font-weight: normal; list-style-type: disc; vertical-align: baseline;"><span style="font-family: inherit;"><span style="vertical-align: baseline; white-space: pre-wrap;">Full access control</span></span></li>
<li style="font-size: 15px; font-weight: normal; list-style-type: disc; vertical-align: baseline;"><span style="font-family: inherit;"><span style="vertical-align: baseline; white-space: pre-wrap;">Supports bundles through a hook (no UI)</span></span></li>
<li style="font-size: 15px; font-weight: normal; list-style-type: disc; vertical-align: baseline;"><span style="font-family: inherit;"><span style="vertical-align: baseline; white-space: pre-wrap;">Like BEAN module for blocks</span></span></li>
<li style="font-size: 15px; font-weight: normal; list-style-type: disc; vertical-align: baseline;"><span style="font-family: inherit;"><span style="vertical-align: baseline; white-space: pre-wrap;">Example: Create an entity with whatever fields you want, such as an image</span></span></li>
</ul>
<h2 dir="ltr" style="font-weight: bold;">
<span style="font-family: inherit;"><span style="font-size: 19px; vertical-align: baseline; white-space: pre-wrap;">Field API Pane Editor</span></span></h2>
<ul style="font-weight: bold; margin-bottom: 0pt; margin-top: 0pt;">
<li style="font-size: 15px; font-weight: normal; list-style-type: disc; vertical-align: baseline;"><span style="font-family: inherit;"><span style="vertical-align: baseline; white-space: pre-wrap;">Form to edit a single field on a single entity</span></span></li>
<li style="font-size: 15px; font-weight: normal; list-style-type: disc; vertical-align: baseline;"><span style="font-family: inherit;"><span style="vertical-align: baseline; white-space: pre-wrap;">Contextual link on a panel to hit that form in the overlay</span></span></li>
<li style="font-size: 15px; font-weight: normal; list-style-type: disc; vertical-align: baseline;"><span style="font-family: inherit;"><span style="vertical-align: baseline; white-space: pre-wrap;">Offers ability to save revisions</span></span></li>
<li style="font-size: 15px; font-weight: normal; list-style-type: disc; vertical-align: baseline;"><span style="font-family: inherit;"><span style="vertical-align: baseline; white-space: pre-wrap;">Isolation of experience</span></span></li>
<li style="font-size: 15px; font-weight: normal; list-style-type: disc; vertical-align: baseline;"><span style="font-family: inherit;"><span style="vertical-align: baseline; white-space: pre-wrap;">Not tied to panels</span></span></li>
</ul>
<h2 dir="ltr" style="font-weight: bold;">
<span style="font-family: inherit;"><span style="font-size: 19px; vertical-align: baseline; white-space: pre-wrap;">Entity Revision Scheduler</span></span></h2>
<ul style="font-weight: bold; margin-bottom: 0pt; margin-top: 0pt;">
<li style="font-size: 15px; font-weight: normal; list-style-type: disc; vertical-align: baseline;"><span style="font-family: inherit;"><span style="vertical-align: baseline; white-space: pre-wrap;">Create a “draft” revision that is not the normal revision used</span></span></li>
<li style="font-size: 15px; font-weight: normal; list-style-type: disc; vertical-align: baseline;"><span style="font-family: inherit;"><span style="vertical-align: baseline; white-space: pre-wrap;">Schedule when a revision is set to the current revision</span></span></li>
<li style="font-size: 15px; font-weight: normal; list-style-type: disc; vertical-align: baseline;"><span style="font-family: inherit;"><span style="vertical-align: baseline; white-space: pre-wrap;">Works for Nodes as well as Fieldable Panel Panes</span></span></li>
<ul style="margin-bottom: 0pt; margin-top: 0pt;">
<li style="font-size: 15px; font-weight: normal; list-style-type: circle; vertical-align: baseline;"><span style="font-family: inherit;"><span style="vertical-align: baseline; white-space: pre-wrap;">Entity agnostic</span></span></li>
</ul>
<li style="font-size: 15px; font-weight: normal; list-style-type: disc; vertical-align: baseline;"><span style="font-family: inherit;"><span style="vertical-align: baseline; white-space: pre-wrap;">Incomplete; more works</span></span></li>
<ul style="margin-bottom: 0pt; margin-top: 0pt;">
<li style="font-size: 15px; font-weight: normal; list-style-type: circle; vertical-align: baseline;"><span style="font-family: inherit;"><span style="vertical-align: baseline; white-space: pre-wrap;">Patch in the queue to unschedule</span></span></li>
</ul>
</ul>
<h2 dir="ltr" style="font-weight: bold;">
<span style="font-family: inherit;"><span style="font-size: 19px; vertical-align: baseline; white-space: pre-wrap;">Panopoly</span></span></h2>
<ul style="font-weight: bold; margin-bottom: 0pt; margin-top: 0pt;">
<li style="font-size: 15px; font-weight: normal; list-style-type: disc; vertical-align: baseline;"><span style="font-family: inherit;"><span style="vertical-align: baseline; white-space: pre-wrap;">Panels-based site-builder distribution</span></span></li>
<li style="font-size: 15px; font-weight: normal; list-style-type: disc; vertical-align: baseline;"><span style="font-family: inherit;"><span style="vertical-align: baseline; white-space: pre-wrap;">Based upon OpenAcademy but generalized</span></span></li>
<li style="font-size: 15px; font-weight: normal; list-style-type: disc; vertical-align: baseline;"><span style="font-family: inherit;"><span style="vertical-align: baseline; white-space: pre-wrap;">Still in its infancy</span></span></li>
<li style="font-size: 15px; font-weight: normal; list-style-type: disc; vertical-align: baseline;"><span style="font-family: inherit;"><span style="vertical-align: baseline; white-space: pre-wrap;">Should provide a fantastic starting point for site building</span></span></li>
<li style="font-size: 15px; font-weight: normal; list-style-type: disc; vertical-align: baseline;"><span style="font-family: inherit;"><span style="vertical-align: baseline; white-space: pre-wrap;">Now includes starter content</span></span></li>
</ul>Jon Peckhttp://www.blogger.com/profile/15647634292152200889noreply@blogger.com0tag:blogger.com,1999:blog-4767023536930727704.post-62434383959919345222011-08-31T10:33:00.000-05:002011-08-31T10:33:29.358-05:00Dynamic subversion repositories with WebSVN<p>I am a careful man. For every development project, I have a corresponding <a href="http://subversion.apache.org/" title="Apache Subversion">Subversion</a> repository that stores all assets relating to the project. For browsing (and <strike>blaming</strike> diffs), I use <a href="http://websvn.tigris.org/" title="WebSVN">WebSVN</a> to provide a friendly interface. I currently use <a href="http://www.dreamhost.com/r.cgi?1150537" title="DreamHost">DreamHost</a> to host my repositories.</p><p>However, I got tired of updating the WebSVN configuration every time I added a repository. Therefore, I developed a short, dynamic method of just listing them all without need for reconfiguration. Add the following snippet to your <code>config.php</code>:</p><p><pre>
$repository_root = '/CHANGE/TO/YOUR/PATH/svn/';
foreach(glob($repository_root . '*', GLOB_ONLYDIR) as $repository_dir) {
$repository = basename($repository_dir);
$config->addRepository($repository, 'file://' . $repository_root . $repository);
$config->useAuthenticationFile($repository_root . $repository . '.access', $repository, $repository);
}
</pre></p>Jon Peckhttp://www.blogger.com/profile/15647634292152200889noreply@blogger.com1tag:blogger.com,1999:blog-4767023536930727704.post-75466004304145970412011-07-08T07:42:00.001-05:002011-07-08T08:17:32.434-05:00Google Music - first impressions of the cloud-based music streaming service<p>I enjoy listening to music, and keeping my collection synchronized across computers and devices can be arduous. I am fastidious about tagging, using tools like <a title="TagScanner" href="http://www.xdlab.ru/en/">TagScanner</a> to author and normalize the tags, file names and folders. My playback and library needs are minimal; <a title="foobar2000" href="http://www.foobar2000.org/">foobar2000</a> has served my needs nicely for close to a decade.</p>
<p>I wasn't impressed by <a title="Amazon Cloud Drive" href="https://www.amazon.com/clouddrive">Amazon Cloud Drive</a> and Cloud Player; their overtly commercial approach (understandable in context), the clunky interface, and limitations of the service turned me off. <a title="Amazon Announces Storage Plans for Amazon Cloud Drive" href="http://phx.corporate-ir.net/phoenix.zhtml?c=176060&p=irol-newsArticle&ID=1582734&highlight=">Amazon has since offered unlimited storage</a> for music if you subscribe at the $20/year level or higher.</p>
<p>Recently, I was invited to try the <a title="Google Music" href="http://music.google.com/about">Google Music Beta</a>, their new streaming music service. Given my previous experience, I was hesitant, but willing to give a competitor a try.</p>
<h2>Client</h2>
<p>The desktop client download and installation was fairly smooth, except you needed an application specific password. The client linked to the help page that contained in the middle of the content a link to generate that password, which was obtuse. Once I was beyond that, I used the wizard to select a folder to sync, and walked away for the night. The next morning, about 2/3 of the ~5GB folder I had selected had been uploaded.</p>
<p>The next step was to try the <a title="Music Android Player" href="https://market.android.com/details?id=com.google.android.music">android app</a>, which I downloaded from the Android Market. Overall, the interface is nicer than the stock app. I have not tried Bluetooth playback yet.</p>
<h2>Android App</h2>
<p>Music that had been uploaded was available to be streamed; I picked the first track of an album, and hit play. It churned for somewhere between five and ten seconds, then started playing. Sounded fine. Once you start playing a track, the player will download sequential tracks in the background to avoid this delay. Playback sounded fine.</p>
<p>I tagged and transferred music manually to my android device for a long time before I started using Google Music. When I installed Google Music on my desktop, it uploaded my collection. I installed the app on my device, which correctly listed all the local music along with all the music available to stream.</p>
<p>However, music that was already physically on my device was also listed as available to stream, resulting in two entries for every album and track. This is undesirable, and I <a title="Google Music Contact" href="http://www.google.com/support/music/bin/request.py?contact_type=feedback">shared my feedback with the Music Beta Team.</a></p>
<h2>What happens to your music?</h2>
<p>As an experiment, I removed one of the local albums, then downloaded it ("make it available offline") using the app. I used the Wi-Fi connection, and a ~75 MB album only took a couple minutes to transfer.</p>
<p>The music transferred to <tt>Android\data\com.google.android.music\cache\music</tt> with a numeric file name (ex: 534.mp3), a rewritten track number, and missing the embedded artwork, Album Artist, Total Tracks, Disc Number, Total Discs, and Publisher. The tag type was rewritten from id3v2.3|id3v1 to id3v1. The content looks untouched; same number of samples, bitrate, and so on, The artwork is stored separately, in <tt>cache\artwork</tt>. The file size was nearly identical, in proportion to the missing artwork and tags.</p>
<p>Both the cache and artwork folder have a <tt>.nomedia</tt> file (tells default apps like Gallery and Music to not index it).</p>
<p>I understand why they are normalizing tag data (save space - especially with album art, and excludes non-standard or unsupported fields), but it's irritating to have two different file versions.</p>
<p>It's not impossible to copy out the music from your android device once it's in there (if you want to copy an album from your device to another computer, for example). You cannot download the music from their web interface. They want you to use their application to listen to it, and they're avoiding the slippery slope of making it easy to duplicate your collection.</p>
<p>I have a guess about why they chose 20,000 songs as the limit; FAT32 directories can contain up to 65,536 entries, and each file/directory uses between 1 and 13 entries (depending on the length of the name), so that arbitrary song limit is well within the technical specification.</p>
<h2>Overall impression</h2>
<p>Google Music is a strong, interesting contender in the streaming music market; while it's certainly not the most open approach, I am liking Google Music more than the other music streaming alternatives that I'm aware of and it's quite mature and usable. That'll do, Pig. That'll do.</p>Jon Peckhttp://www.blogger.com/profile/15647634292152200889noreply@blogger.com0tag:blogger.com,1999:blog-4767023536930727704.post-18217263359096908032007-11-23T10:20:00.001-05:002011-07-08T07:37:40.806-05:00Turducken: Slaughter with LaughterIt's been a while. I switched from public education to a private company back in March and haven't had the time to write. I've gone through some life changes recently, and in short I will have more time to write for Free Software Magazine, compose technical articles on PHP development, and much more. I will back-date some content, mostly photography related. Thank you for sticking around, I appreciate it.<br />
<h2>
Turducken</h2>
I made a short, twisted video about what, why and how my family made a Turducken, a turkey stuffed with duck stuffed with chicken. A veritable avian Matryoshka tsunami of culinary urban legend, few have attempted to create this carnage loaf.<br />
<object height="355" width="425"><param name="movie" value="http://www.youtube.com/v/fIVWW-0guQs&rel=1">
</param>
<param name="wmode" value="transparent">
</param>
<embed src="http://www.youtube.com/v/fIVWW-0guQs&rel=1" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"></embed></object>Jon Peckhttp://www.blogger.com/profile/15647634292152200889noreply@blogger.com0tag:blogger.com,1999:blog-4767023536930727704.post-86289064955756708072007-03-19T21:57:00.001-05:002011-07-08T08:21:44.853-05:00Syracuse St. Patrick's Day Photos<h2>Photography</h2>
<p>On Saturday, March 17th, I attended the <a href="http://www.flickr.com/photos/theconfluence/sets/72157600005593026/">St. Patrick's Day Parade in Syracuse</a>. I was experimenting with the Nikon N70, and I did my best to put it to good use.</p>
<p><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://farm1.static.flickr.com/160/424604358_65a95671e4.jpg?v=0"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px;" src="http://farm1.static.flickr.com/160/424604358_65a95671e4.jpg?v=0" border="0" alt="" /></a></p>
<p><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://farm1.static.flickr.com/175/424603520_60de47a6a4.jpg?v=1174176474"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px;" src="http://farm1.static.flickr.com/175/424603520_60de47a6a4.jpg?v=1174176474" border="0" alt="" /></a></p>
<p>You can also view the <a href="http://www.flickr.com/photos/theconfluence/sets/72157600005593026/show/">set of 60 photos as a slideshow.</a></p>
<h2>Consolidation</h2>
<p>My apologies for my SAMPP entry; it was way, way too long. I've consolidated it on my web host using the dojo toolkit to make tabs. You can view the amended version at <a href="http://theconfluence.org/projects/sampp">theconfluence.org/projects/sampp</a> .</p>Jon Peckhttp://www.blogger.com/profile/15647634292152200889noreply@blogger.com0tag:blogger.com,1999:blog-4767023536930727704.post-65376170820533831162007-03-08T10:11:00.000-05:002007-03-19T21:49:20.983-05:00Compiled SAMPP build instructions<p>I was recently asked to do create and document a containerless configuration of a Solaris 10 web server with Apache 2.2.4, MySQL 5.0.33, PHP 5.2.1, and Perl 5.8.7. Apache, MySQL, and PHP have complete compilation instructions. I will include the necessary configuration files (Apache in particular; built from scratch) or modification instructions. </p>
<p>Notes:</p>
<ol>
<li>This instructions assume that Solaris 10 is already installed and configured.</li>
<li>These instructions assume you're root. </li>
<li>Apache includes a self-signed SSL certificate, user directories, mod_perl, authnz-ldap, server-status and daily log rotation.</li>
<li>I was requested to consolidate everything web related into /web for ease of administration and backup.</li>
<li>This is not a fully optimized build, as there is no universal configuration that will work equally well for everyone. Therefore, read the manual and tweak where necessary (especially Apache).</li>
<li>Additional Applications
<ol>
<li>AWStats 6.6 with automatic log analysis</li>
<li>phpMyAdmin 2.9.2 for MySQL administration</li>
</ol>
</li>
</ol>
<p>These instructions are culled and edited from my notes. Please let me know if I got something out of order or left something out.</p>
<h2>Notes</h2>
<p>LDAP .htaccess files (you'll have to tweak the LDAP URL for your environment) </p>
<pre>AuthName "Password"
AuthType Basic
AuthBasicProvider ldap
AuthLDAPURL ldap://ldap:389/ou=people?uid
AuthzLDAPAuthoritative off
require ldap-user "username"</pre>
<h2>Link</h2>
<h3><a href="http://theconfluence.org/projects/sampp">theconfluence.org - Compiled SAMPP build instructions</a></h3>Jon Peckhttp://www.blogger.com/profile/15647634292152200889noreply@blogger.com0tag:blogger.com,1999:blog-4767023536930727704.post-14071369970894115882007-03-07T13:12:00.000-05:002007-03-07T13:14:52.276-05:00Jon's best practices for servers<p>This is a consolidation of general best practices for servers I've learned and developed over the years. Feel free to share some of your own as well!</p>
<ol>
<li>Never use telnet or ftp - use ssh or sftp instead.</li>
<li>Never use HTTP with anything that could compromise the integrity of your system. </li>
<li>Never login as root.</li>
<li>If you install it, keep it up to date.</li>
<li>If you don't use it, remove it.</li>
<li>Always check the changelog before updating.</li>
</ol>Jon Peckhttp://www.blogger.com/profile/15647634292152200889noreply@blogger.com0tag:blogger.com,1999:blog-4767023536930727704.post-8627922146647394892007-03-07T13:09:00.000-05:002007-03-07T13:11:26.086-05:00Host Naming Conventions<p>There
are different philosophies for hostname conventions. In my
experience, using a common theme and context adds logic to a
potentially complicated network.</p>
<p>At home, I use
spells from old <a href="http://en.wikipedia.org/wiki/Infocom">Infocom</a> interactive fiction games as my naming convention. While it
may seem silly, my home network is small enough that I can remember the
purpose of machines, and I've got a large corpus of potential names.
I've also seen others use names of characters from
television, movies or books. Use your imagination!</p>
<p>At
work or in a shared environment, I use more descriptive names, such as
web-dev-01 for a development web server. Security through
obscurity causes more headaches than it's worth as it makes it more
difficult for others to understand the layout, and the illusion of
security that comes from giving a machine a wacky name will not protect
you from malicious users.</p>
<p>Either way, once you've
developed a schema, stick with it; mixing naming conventions just makes
things more difficult. </p>Jon Peckhttp://www.blogger.com/profile/15647634292152200889noreply@blogger.com3tag:blogger.com,1999:blog-4767023536930727704.post-5431862942063177982007-02-18T01:07:00.000-05:002007-02-18T01:10:44.678-05:00Crazy Costume Race 2007 Video<p>On Saturday, February 3rd, <a href="http://www.ypvoiceofoswego.org">YP Voice of Oswego</a> hosted its second annual Crazy Costume Race, part of the <a href="http://www.warmuposwego.com">Warm Up Oswego Festival</a>. I filmed the event and edited the video. Three teams, three sleds, one block. Who will win?</p>
<p><object width="425" height="350"><param name="movie" value="http://www.youtube.com/v/TY73ktXuWOI"></param><embed src="http://www.youtube.com/v/TY73ktXuWOI" type="application/x-shockwave-flash" width="425" height="350"></embed></object></p>Jon Peckhttp://www.blogger.com/profile/15647634292152200889noreply@blogger.com0tag:blogger.com,1999:blog-4767023536930727704.post-3357111605978472402007-02-12T08:37:00.000-05:002007-02-12T09:16:10.932-05:00Making PDFs with free software and Wii are on the way<h2><a href="http://www.freesoftwaremagazine.com/blogs/making_pdfs">Making PDFs with free software</a></h2>
<p>Recently, <a href="http://www.adobe.com/aboutadobe/pressroom/pressreleases/200701/012907OpenPDFAIIM.html">Adobe announced</a> that it intends to release the Portable Document Format (PDF) 1.7 specification for publication by the International Organization for Standardization (ISO). Also, the editorial in Issue 16 of Free Software Magazine <i><a href="http://www.freesoftwaremagazine.com/articles/editorial_16">Paper is dead - has PDF followed suit?</a></i> makes a case about the perceived decline of the PDF format. In my opinion, PDF isn't dead, so this week I've compiled several techniques for <i><a href="http://www.freesoftwaremagazine.com/blogs/making_pdfs">making PDF files with free software</a></i>.</p>
<p>My intention for the postscript was to emphasize content and not the delivery mechanism, and is in subtle defense of <i><a href="http://www.freesoftwaremagazine.com/blogs/so_why_has_the_pdf_gone">FSM dropping their PDF version of their issues</a></i>. I feel that the medium doesn't matter as much as the message, but one still should take care in selecting the proper delivery method. The <i>Making PDF files</i> entry has <a href="http://www.digg.com/software/Making_PDFs_with_free_software">done well on digg.com</a> - 851 diggs so far, which I appreciate.</p>
<h2>Wii are on the way</h2>
<p>My brother, who lives on the west coast, has sent a belated Christmas present after insisting that I shouldn't give him anything this year... a check for a Nintendo Wii. I'm floored; it's an incredible gift, and I really, really appreciate it. So far, no store has any Wiis in stock (but they do have several PS3s collecting dust), but I'll keep trying. Alex, thank you! This really means a lot to me. I will be driving out sometime this summer to visit.</p>
<h2>HDR Chernobyl Photos</h2>
<p>I highly recommend reading Trey Ratcliff's entry <i><a href="http://stuckincustoms.com/?p=1062">Nuclear Winter in Chernobyl</a></i>, a description and HDR photo tour of the reactor and Pripyat. It features beautiful, high resolution and haunting imagery of the abandoned power plant, ferris wheel, apartment buildings and playgrounds. If you just want to <a href="http://www.flickr.com/photos/stuckincustoms/sets/72157594514491393/show/">see the slideshow</a>, they're hosted on flickr.</p>Jon Peckhttp://www.blogger.com/profile/15647634292152200889noreply@blogger.com0tag:blogger.com,1999:blog-4767023536930727704.post-23183309471294567772007-02-05T10:08:00.000-05:002007-02-05T10:40:37.962-05:00Unlocking your iPod's potential and building life skills with free software<h2>Managing your iPod with free software</h2>
<p>In the end of December of 2006, I wrote my first article for <a href="http://www.freesoftwaremagazine.com/">Free Software Magazine</a>. It was accepted, and it was published today in <a href="http://www.freesoftwaremagazine.com/issues/issue_016">Issue 16</a>.</p>
<p>While iTunes is a powerful application, it does have its limitations, mostly stemming from both Digital Rights Management (DRM) restrictions and the Recording Industry Association of America’s (RIAA) interest in preventing unauthorized copying of music, regardless of fair use and personal flexibility. The free software community believes that the ability to freely copy content you own between your iPod and a computer is a right, not a privilege. I discuss how to fully manage the content on your iPod using completely free software in <i><a href="http://www.freesoftwaremagazine.com/articles/managing_your_ipod_without_itunes">Managing your iPod without iTunes</a></i>.</p>
<h2>Using free software to build professional and life skills</h2>
<p>I've found that many of the skills I've developed using free software and just plain "doing it myself" has been useful in my professional endeavors. This week at FSM, I considered some of the more abstract fringe benefits of using free software in <i><a href="http://www.freesoftwaremagazine.com/blogs/using_free_software_to_build_professional_and_life_skills">Using free software to build professional and life skills</a></i>.</p>
<h2><a href="http://www.amazon.com/gp/product/B00009WAUE?ie=UTF8&tag=dissension-20&linkCode=as2&camp=1789&creative=9325&creativeASIN=B00009WAUE">Pikmin 2</a><img src="http://www.assoc-amazon.com/e/ir?t=dissension-20&l=as2&o=1&a=B00009WAUE" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /></h2>
<p>I've been looking for good games for the GameCube, and this week I've discovered that <a href="http://www.amazon.com/gp/product/B00009WAUE?ie=UTF8&tag=dissension-20&linkCode=as2&camp=1789&creative=9325&creativeASIN=B00009WAUE">Pikmin 2</a><img src="http://www.assoc-amazon.com/e/ir?t=dissension-20&l=as2&o=1&a=B00009WAUE" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /> is a joy to play. You play as two tiny aliens followed by a a crowd of eager-to-please creatures that look and act like friendly carrots. You're on Earth, trying to search out objects that can be used to pay back a loan and save your company. As your company is trying to market the objects, they come up with marketing names, such as "Sunseed Berry" for a strawberry, "Director of Destiny" for a compass, and "Quenching Emblem" for a 7-up bottle cap. The difficulty and learning curve ramp up very appropriately, and overall it's just <i>fun</i>.<p>Now, if I can wrap my head around <a href="http://www.amazon.com/gp/product/B0002A6CPK?ie=UTF8&tag=dissension-20&linkCode=as2&camp=1789&creative=9325&creativeASIN=B0002A6CPK">Killer 7</a><img src="http://www.assoc-amazon.com/e/ir?t=dissension-20&l=as2&o=1&a=B0002A6CPK" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />...</p>Jon Peckhttp://www.blogger.com/profile/15647634292152200889noreply@blogger.com0tag:blogger.com,1999:blog-4767023536930727704.post-50500516215244828752007-01-29T09:54:00.000-05:002007-01-29T10:30:55.436-05:00Critiquing the Ubuntu Installer for Windows, Autism<h2>Critiquing the Ubuntu Installer for Windows</h2>
<p>My latest entry at FSM is about the Ubuntu Installer for Windows, <a href="https://wiki.ubuntu.com/install.exe">install.exe</a>. In short, it’s a way to install Ubuntu onto the same file system as Microsoft Windows without repartitioning your drive. Justifications include minimizing the risk of data loss during repartitioning, a more user-friendly installation process, and eliminating the need of burning a CD to install. I analyze the need and justification in <i><a href="http://www.freesoftwaremagazine.com/blogs/do_we_need_an_ubuntu_installer_for_windows">Do we need an Ubuntu installer for Windows?</a></i> This is my most popular FSM entry to date; it made the <a href="http://digg.com/linux_unix/Do_we_need_an_Ubuntu_installer_for_Windows">Digg front page</a> and currently has nearly eleven thousand views.</p>
<h2>Short Film about Autism</h2>
<p>I highly recommend watching <i><a href="http://www.youtube.com/watch?v=JnylM1hI2jc">In My Language</a></i>, a beautifully crafted 8'35" video by an autistic that challenges your perspective and prejudices. It's one of the most powerful pieces of film making I've seen in a very long time, and I applaud the author both for their bravery and for the excellent presentation and editing.</p>
<h2>Nine Inch Nails - Beside You in Time DVD</h2>
<p>After missing a concert last year due to a scheduling conflict, I've been awaiting the <a href="http://www.amazon.com/dp/B000LXH3BK?tag=dissension-20&camp=14573&creative=327641&linkCode=as1&creativeASIN=B000LXH3BK&adid=02F4E80YRZE1PRRQDVQJ&">Nine Inch Nails - Beside You in Time DVD, which Amazon has for $13.99 pre-order.</a> That's an excellent deal for live concert footage of the [with_teeth] tour.</p>Jon Peckhttp://www.blogger.com/profile/15647634292152200889noreply@blogger.com1tag:blogger.com,1999:blog-4767023536930727704.post-60031520564692962862007-01-24T09:44:00.000-05:002008-12-12T00:44:19.102-05:00tagverse launch, State of the Union analysis<p>I've cleaned up, formalized and published my application that I used to <a href="http://jonpeck.blogspot.com/2007/01/analyzing-president-bushs-speech-on.html">analyze Bush's speech on Iraq</a>.</p>
<p>Ever needed to analyze a document and visualize the most important terms? Enter a plain text document with at least three paragraphs, and <strong><a href="http://theconfluence.org/projects/tagverse/">tagverse</a></strong> will generate a tag cloud from extracted key terms.<p>
<p>I will be making the source code available in the near future.</p>
<h2>State of the Union analysis</h2>
<p>I provided <strong>tagverse</strong> with the text of Bush's 2007 State of the Union address.</p>
<p><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiDEPMa6NsUeeuGRdtJ9eGBXCpcd2XfbgwG-3CcDnI9mfYEvOXp40jGQqluKLmrb8q7EnJGT63gEdVMOI2sxBBlVefuxP3KGWllAZMZ09-V0KD_gbNdbJbYdmqCi8TuHkK9mb04abMrkZf8/s1600-h/sotu_2007.png"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiDEPMa6NsUeeuGRdtJ9eGBXCpcd2XfbgwG-3CcDnI9mfYEvOXp40jGQqluKLmrb8q7EnJGT63gEdVMOI2sxBBlVefuxP3KGWllAZMZ09-V0KD_gbNdbJbYdmqCi8TuHkK9mb04abMrkZf8/s400/sotu_2007.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5023610360417188002" /></a></p>
<p>Compare this result to <a href="http://jonpeck.blogspot.com/2007/01/analyzing-president-bushs-speech-on.html">the Iraq speech</a>; note the inclusion of "diplomacy", and the avoidance of "sectarian" and "nuclear weapons". While this analysis is purely algorithmic and arbitrary, you can use it to see trends, especially in this sort of context.</p>Jon Peckhttp://www.blogger.com/profile/15647634292152200889noreply@blogger.com1tag:blogger.com,1999:blog-4767023536930727704.post-1708100160787211002007-01-22T23:54:00.003-05:002011-07-08T08:01:01.135-05:00Vanishing Knights - an adrenaline-filled orgy of muscle car and guitar rock<p>I've been listening to British rock band Muse's <b>Black Holes and Revelations</b> (2006) on my commute, and it's gotten stuck in my head. The final song, <i>Knights of Cydonia</i> is a grandiose, bombastic and triumphant progressive-rock cacophony. Bellamy croons, “No one's gonna take me alive... the time has come to make things right... you and I must fight for our rights... you and I must fight to survive.”</p>
<p>I really enjoyed the official video, which was done in the style of a post-apocalyptic old spaghetti western film. The over-the-top, bigger than life stylish combination of that song and visuals reminded me of <b>Vanishing Point</b> (1971); a film whose success derived mostly from its visceral feel and powerful sounds.</p>
<p>Vanishing Point is the ultimate car chase movie, starring Barry Newman and a 1970 Dodge Challenger R/T. Kowalski, a car delivery driver at the end of his rope, decides to drive at high speed from Denver to San Fransisco. Filmed in the desert, mountains and small towns throughout Colorado, Utah, and Nevada, the film features beautiful landscapes and powerful imagery. Kowalski continually evades the law to the delight of the public in the form of the last American hero.</p>
<p>I've been working on editing together a mashup over the last two weeks, maintaining the story line and themes of the film and closely following the song. I'm very pleased with the result; it's an exciting, six-and-a-half minute adrenaline-filled orgy of muscle car and guitar rock. I make no claims to the content; I merely edited things together.</p>
<p>EDIT: The audio was disabled by YouTube / lawyers, so despite my opinion that it was fair use, I have removed the video entirely.</p>Jon Peckhttp://www.blogger.com/profile/15647634292152200889noreply@blogger.com2tag:blogger.com,1999:blog-4767023536930727704.post-26739684147037804662007-01-19T11:53:00.000-05:002007-01-19T11:56:34.184-05:00Free desktop revolution, new domain and using ezSQL<p>Inspired by a recent experience, my latest entry at FSM offers my perspective on the question, <a href="http://www.freesoftwaremagazine.com/blogs/has_the_free_desktop_revolution_arrived">has the free desktop revolution arrived?</a> My wife's computer had hardware issues, so as a stop-gap I gave her an account on my Ubuntu desktop, then asked her about her experience.</p>
<p>I registered a new domain through <a href="http://www.dreamhost.com/r.cgi?266463">DreamHost</a>. They have very reasonable plans, starting at $7.95 a month, and I've used their services for several other sites that I've administered and had a positive experience working with them. My new site, <i><a href="http://theconfluence.org/">the confluence</a></i> is intended to be a collection of web applications that I've written and released to the public. Most programs will be released as GPL, as I believe fully in contributing to the community.</p>
<p>I'm working finishing a few applications; the tag cloud generator (name pending), eManiuplator (email address extraction, validation and list operations), eBrother (visualizes server usage), an email newsletter generator (name pending), and a service inspired by the old lowbrow.com site. The first three work, but need to be secured and cleaned up. The last two are in development.</p>
<p>I've discovered a new database class that assists in rapid application development; <a href="http://www.jvmultimedia.com/portal/node/6">ezSQL v2.00</a>. In their words, "ezSQL is a class that makes it ridiculously easy to use mySQL, Oracle8, SQLite (PHP), within your PHP script." It's got automatic query caching, built-in debugging functions, and works with <a href="http://smarty.php.net/">Smarty</a>. I really, really like the way it returns responses and the built-in functions are very useful. I suggest you give it a try.</p>Jon Peckhttp://www.blogger.com/profile/15647634292152200889noreply@blogger.com0tag:blogger.com,1999:blog-4767023536930727704.post-31843080738483030372007-01-11T23:12:00.000-05:002007-01-19T11:53:19.221-05:00Finding Linux replacements for Windows software, developing with phpMyEdit<p>When discussing ways to switch to GNU/Linux, one of the biggest difficulties I've found is finding answers to the question, "What can I replace this program with?" It's completely understandable; people don't want to lose functionality. However, Googling for answers can easily lead to confusion and frustration if you don't have the background or knowledge to be able to differentiate between the wheat and the chaff. In my new entry for FSM, I discuss resources that can be used for <a href="http://www.freesoftwaremagazine.com/node/2003"><i>Finding GNU/Linux replacements for Windows software</i></a>.</p>
<p>Good news; the article that I wrote for Free Software Magazine has been accepted! Once it's published, I'll link to it here. I'm proud; it's my first real published article, not just an opinion, letter or article in a student publication.</p>
<p>Today, I've been going through my notes, snippets and ideas from the past few weeks and tried to catch up on some back entries (my apologies to the feed subscribers). I've posted everything chronologically, so if you look at the blog itself, it should sense.</p>
<p>Yesterday, I tried using <a href="http://www.phpmyedit.org/">phpMyEdit</a> to develop a forms based front-end to a MySQL database. I've found it to be simultaneously useful, simple, complex, flexible, and limited. It allows for rapid development of CRUD (Create, Read, Update and Destroy) forms, which greatly reduces development time. However, when you want to use an advanced MySQL join or contextual input, you start to find a bit of roughness.</p>
<p>The documentation does a decent, but not thorough job of listing all the functionality. I'm particularly annoyed by the comment, "Note that the above example contains additional features..." yet there are no instructions on how to use the new functionality anywhere else in the manual.</p>
<p>Another issue I have with the documentation is the inclusion of code examples that only apply to "future development" and not the current version... this sort of thing should be in the bug tracker, not the production documentation.</p>
<p>I've asked a question on how to do contextual input on their support forums, and if I get a response, I'll publish it here. Overall, I think phpMyEdit is a good free tool for PHP development.</p>Jon Peckhttp://www.blogger.com/profile/15647634292152200889noreply@blogger.com0tag:blogger.com,1999:blog-4767023536930727704.post-48956084471559271442007-01-10T21:41:00.000-05:002008-12-12T00:44:19.276-05:00Analyzing President Bush's Speech on Iraq with a Tag Cloud<p>In the build-up to President Bush's speech on Iraq, I've heard a lot of speculation on what the emphasis of the speech was going to be about, and how the content was going to be less rhetoric and catch phrases and more of a persuasive argument. Out of curiosity and inspired by the <a href="http://chir.ag/phernalia/preztags/">US Presidential Speeches Tag Cloud</a>, I used an application I wrote using free tools and scripts that extracts key phrases and words from a document and represents the results as a tag cloud (weighted list). Here are the results of the tag cloud analysis of the <a href="http://www.foxnews.com/story/0,2933,242958,00.html">transcript of the speech</a>.</p>
<p><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpX5oWglySVEGqGiiO3sK4qoLknN0EBsgJfFJiGiGzbRTSxtdFd4exmfT4l9PwbI71ergqiIANjEFo9tRfn_12Kc3Samylvi6ar96Kr2C7Wiy7s7Yb3Tgjh6DHVXrELPjjuqPmtx0UwNky/s1600-h/bush_20070110.png"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpX5oWglySVEGqGiiO3sK4qoLknN0EBsgJfFJiGiGzbRTSxtdFd4exmfT4l9PwbI71ergqiIANjEFo9tRfn_12Kc3Samylvi6ar96Kr2C7Wiy7s7Yb3Tgjh6DHVXrELPjjuqPmtx0UwNky/s400/bush_20070110.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5018597980658459618" /></a></p>
<h2>Background</h2>
<p>One of my tasks as a programmer was to find a way to process a large body of text (committee suggestions), pick out key phrases or words that occurred more often, and display them in an easily understood format. However, if I just did a word count, then I'd get high occurrences of out-of-context nouns, adverbs and verbs, which wouldn't be useful.</p>
<h2>Term Extraction</h2>
<p>The <a href="http://developer.yahoo.com/">Yahoo! Developer Network</a> offers a very useful tool as part of their Content Analysis Web Services - <a href="http://developer.yahoo.com/search/content/V1/termExtraction.html">Term Extraction</a>. The service "provides a list of significant words or phrases extracted from a larger content." To use the service, you'll need a free <a href="http://developer.yahoo.com/faq/index.html#appid">Yahoo! Application ID</a>. The only limit on the service is 5,000 queries per IP address per day, which for most users is more than sufficient. To get around some hosting limitations, I used the <a href="http://netevil.org/node.php?nid=937&SC=1">HTTP POST from PHP without cURL</a> script from netevil.org</p>
<p>As the service provides a unique terms, I couldn't just submit the whole body of text, which would have resulted in a few key words and phrases occurring only once. I had to split the source text into individual paragraphs, submit each paragraph separately, and push each resulting term into an array.</p>
<h2>Tag Clouds</h2>
<p>A fairly recent innovation in web development has been the use of tag clouds. A tag cloud is an alphabetized way of visually representing the frequency of a word or phrase using font sizes that correspond to precedence, or some other similar emphasis. If a word or phrase occurs more often, it'll be displayed larger than the other members of the list. For more information and the history of tag clouds, <a href="http://en.wikipedia.org/wiki/Tag_cloud">read the wikipedia entry</a>.</p>
<p>I combined the Term Extraction with a modified version of the excellent free <a href="http://www.15tags.com/blog/tagcloud-demo-with-source/">PHP tag cloud generator</a> from 15tags. The script just counts the occurrences of strings within an array and displays the top few items that occurred the most often in a tag cloud. You can adjust the number of items in the tag cloud; while I've displayed over 100 items, it works best with around 25-30.</p>
<h2>Results</h2>
<p>I took the committee suggestions, pasted them into the tool, pasted the result into a word processor, added a little formatting, and gave the printed document to my supervisor. She found the results useful and visually interesting; it a good tool for arbitrary analysis, and the resulting tag cloud could be used as the basis of a cover for the report. I think tag clouds are a useful method of visually representing the importance of a term, tag, or key words.</p>
<p>For fun, I also ran the application on some erotic literature and IRC logs. I won't share the results in public, but believe me, it's a hoot.</p>Jon Peckhttp://www.blogger.com/profile/15647634292152200889noreply@blogger.com0tag:blogger.com,1999:blog-4767023536930727704.post-65053937169977145722007-01-08T22:41:00.000-05:002007-01-11T22:44:51.708-05:00Protecting intellectual property<p>An unfortunate side effect of the "Wii-diculous" video is that it's become viral. Not in the way I'd like it to be, mind you... some individuals have downloaded the movie from either <a href="http://www.youtube.com/watch?v=lzfJUHVrWhs">YouTube</a> or <a href="http://www.gametrailers.com/umwatcher.php?id=29969">GameTrailers</a>, transcoded it, and uploaded the result to different sites. In the process, the content I authored loses the proper description and the link to my blog, gains watermarks, and is presented as someone else's content without credit. I find it particularly amusing that it's gone full circle; I found at least four different copies of the video with the same title on YouTube, which I had removed through their admirably fast and painless copyright infringement contact.</p>
<p>Now, I'm not trying to make money off of this. I'm just trying to make sure that the people who deserve credit for their work are acknowledged; myself, Ed, and Chris, along with the others named in the credits and my blog entry. I don't understand why people don't even check if a video is already there before uploading it themselves.</p>
<p>There's a difference between sharing content you've found and branding it as your own and implying ownership.</p>
<p>I've been contemplating a mash-up of a particular Muse song and a 1970's movie that I really enjoy. Trust me, there's a lot of bad mash-ups, and I don't want to make one more. I've planned it out in my head; following both the story line of the movie and the lyrics in a sequential manner, with the climax of each matching. Even the rough cut is making me giddy... but now I'm second guessing myself. Would it be hypocrisy if I published it on YouTube? I wouldn't be taking credit for the content, just the editing.</p>
<p>In a perfect world, I'd request the permission of both the movie studio and the record label, and they'd undoubtedly say no or ask for so much money that I couldn't afford it. However, there are thousands of mash-ups that survive without getting take-down notices. I could just post it and run the risk of having it removed... absolute worst case scenario, I'm fined, even if I was using it in a non-commercial context.</p>
<p>This is not an easy question... fair use vs. intellectual property vs. corporate interest.</p>Jon Peckhttp://www.blogger.com/profile/15647634292152200889noreply@blogger.com0tag:blogger.com,1999:blog-4767023536930727704.post-64599039090399928362007-01-04T21:57:00.000-05:002007-01-11T21:58:27.344-05:00Usability, a wii-diculously large response, and GameCube modding<p>Happy New Year! Sleep is for the weak, so let's get back to business.</p>
<p>Have you ever found a new piece of software that sounds like it's the perfect match for your needs, only to get bogged down by bad documentation or a horrendous interface? Many people will quickly discard programs out of frustration caused by avoidable usability issues. Read about ways software developers can avoid disenfranchising potential users in my Free Software Magazine entry <i><a href="http://www.freesoftwaremagazine.com/blogs/how_usability_inhibits_good_software">How usability inhibits good software</a></i>.</p>
<p>The <i><a href="http://jonpeck.blogspot.com/2006/12/wii-diculous.html">Wii-diculous</a></i> video has gotten frighteningly popular; over 300,000 views on YouTube so far! I figured I'd get a few thousand hits... Ed, Chris and I are very pleasantly surprised by its success. We're currently planning a follow-up...</p>
<p>Reading over the comments on my entry about learning Ruby on Rails and using generated CRUD forms, I found a nice suggestion; <a href="http://platon.sk/projects/main_page.php?project_id=5">phpMyEdit</a>. It's an "instant MySQL Table Editor and PHP code generator." Thanks to Niraj for pointing it out! I'll take a look at it in the coming weeks.</p>
<p>I've been researching ways to mod my used GameCube... ultimately, I'd like to replicate the functionality that I have with my modded Xbox w/ XBMC; the ability to use home brew (network media player, emulators, Linux) and to play backups.</p>
<p>It looks to me like the easiest solution is to use a <a href="http://dextrose.com/_forum/showthread.php?t=10709">XenoGC 2.0 modchip</a> (<a href="http://www.eurasia.nu/shop/product_info.php?products_id=300">$15</a>), buy a Gamebit screwdriver (about $8), and a replacement case (around $30) or top (around $20) so I can use full-size DVDs. Also, I should get a GameCube Broadband Adapter, which runs about $20 off eBay (unless I can find it locally).</p>
<p>I've learned a few things... Full-size DVDs apparently reduce the lifespan of the optical drive motor, but the exact amount is up in the air. Also, you can "make" your own Gamebit screwdriver by melting a pen for each screw, but I'd rather just buy the right tool rather than ruining a bunch of pens. Playback of backups is affected by the type of media; adjusting the potentiometer may resolve some skipping issues. Finally, while it's theoretically possible to hack an IDE hard drive into a GC, it's a square peg in a round hole.</p>
<p>However, the more I look at the GameCube homebrew scene, the more I'm second guessing whether or not I should do this. My GameCube is working just fine as a game playing device, and I don't mind having both a GameCube and an Xbox. I can't afford to replace it if I screw up. Oh well...</p>Jon Peckhttp://www.blogger.com/profile/15647634292152200889noreply@blogger.com0tag:blogger.com,1999:blog-4767023536930727704.post-38867097474030765362006-12-28T18:44:00.000-05:002007-01-11T18:49:12.598-05:00New Year's resolutions, GameCube<p>I'm currently in Pennsylvania with my in-laws over the holidays, so I've been pretty much off the grid. We've had a grand time visiting, exchanging presents, eating too much good food, and building a potato cannon. Seeing as 2007 is fast approaching, it's time to start thinking of resolutions. From exercising more, eating fewer snacks, or remembering to call your mother on her birthday, we all think of various ways we can improve our lives, by starting good habits or ending bad ones. I took some time off this afternoon and compiled a few suggested resolutions that will assist you in your pursuit of free software. Check out the entry at Free Software Magazine entitled <i><a href="http://www.freesoftwaremagazine.com/blogs/free_software_new_years_resolutions ">Free software New Year's resolutions</a></i>.</p>
<p>As the Nintendo Wii is still a bit difficult to get a hold of and there's a persistent rumor about it dropping to $200 and having DVD playback in early 2007, I decided to purchase a used Nintendo GameCube for the time being. I know there's a homebrew scene, there's a Linux distribution available, and I've heard of people hacking IDE drives onto the thing. Oh, and there's a fairly large number of excellent games for the GameCube that are pretty cheap right now, so I should be able to finally play The Legend of Zelda: The Wind Waker, Cubivore, Killer7, Donkey Konga and a few other titles that have been recommended to me. I'll write more about the GameCube mod scene when I can do some more research.</p>
<p>My wife and I wish you and yours the very best in the years to come!</p>Jon Peckhttp://www.blogger.com/profile/15647634292152200889noreply@blogger.com0tag:blogger.com,1999:blog-4767023536930727704.post-24342440962222358452006-12-22T16:10:00.000-05:002008-12-12T00:44:19.881-05:00Wii-diculous<h2><a href="http://www.youtube.com/watch?v=lzfJUHVrWhs&eurl=">Demonstration</a></h2><p><object width="425" height="350"><param name="movie" value="http://www.youtube.com/v/lzfJUHVrWhs"></param><embed src="http://www.youtube.com/v/lzfJUHVrWhs" type="application/x-shockwave-flash" width="425" height="350"></embed></object></p>
<p>One of my
friends is a
manager at a local movie theater, which uses a digital projector to
show advertisements between features. After seeing
the <a href="http://www.youtube.com/watch?v=wuR7_fWgxU4"><i>It Burns When I Wii</i>
video</a>, we
figured we could one-up it with the equivalent of a 344" television
screen. We wanted to use my friend's Nintendo Wii in the
theater,
but we didn't want to have to deal with yards of cabling.
Inspired by <a href="http://doctabu.livejournal.com/64758.html">doctabu's
design</a>, I built my own wireless sensor bar for less than
$20.
Doctabu left out something important; a resistor, which is needed to
limit the
current to the LEDs.</p><h2>Parts - what's essential:</h2><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiO8hQ2RN63VZApln0iJwNffCWultHngKAnzq4rsqY9PRCZ-dDRz55tJKjFW-HteYZT_f4B6QhctAnPTLGAlQvBHE_9D6XDM0Zf0KwXg8QuP3N5iaseHisb9GtwXwiegcO_lehGA0A-7_DC/s1600-h/wiisensor.png"><img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiO8hQ2RN63VZApln0iJwNffCWultHngKAnzq4rsqY9PRCZ-dDRz55tJKjFW-HteYZT_f4B6QhctAnPTLGAlQvBHE_9D6XDM0Zf0KwXg8QuP3N5iaseHisb9GtwXwiegcO_lehGA0A-7_DC/s320/wiisensor.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5011465124652167154" /></a><ul><li>4
x
Infrared 5MM LEDs (Radio Shack # 2760143)</li><li>1 x 15
ohm 1/2 watt
resistor (Radio Shack # 2711102)</li><li>1 x Battery Holder
for 4 AAA
(Radio Shack # 2700413)</li><li>4 x AAA battery</li><li>Small
gauge
electrical wire (at least 7 1/2")</li></ul><h2>Parts
- what I
recommended:</h2><ul><li>2 x Project Enclosure
(3"x2"x1") (Radio Shack
# 2701801)</li><ul><li>Housing for your device.</li></ul><li>1/4"
drill
bit</li><ul><li>Drill holes in the housing for the
LEDs and wire.</li></ul><li>1
x Package of 5 LED Snap-Holders (Radio Shack # 2760079)</li><ul><li>Keeps
the LEDs in place.</li></ul><li>1 x SPST Submini
Toggle Switch (Radio
Shack # 2750612)</li><ul><li>Turn it on and off.</li></ul><li>Four
small cable ties</li><ul><li>Place on either sides of
the wire where it
goes through the hole and trim. Keeps the wires from pulling
out.</li></ul></ul><p>My
design consists of two IR emitters connected by a single piece
of
wire in a series circuit. I left the battery holder on the
outside to make it easier to change the batteries.</p><p>When
you build
your own and you're finished soldering it together, put the batteries
in, take it in a dark room and flip the switch. The LEDs will
have a very faint, flickering red glow. Infrared is beyond
the
range human sight, but there's a little bleed-through into the visual
frequencies. Some cameras with will be able to pick it up as
a
greenish glow. To use the emitters, turn the device on and
place
it on a level surface with about 6-7 inches between the two inner LEDs.</p><h2>Implementation</h2><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhsqKoSLDGZWbXWK42T0c1PNbEeb-mNF7yimsysAl3NY5ylrWi8U2uTowkhI4DEcukRNfL3coiSm4GAD2bUY-bZDkX4__Lp5qWyw3hTPX3wYRty82LoRywuYn4eKTGDv03ITgRrhSo-vCar/s1600-h/wii-sensor-bar.jpg"><img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhsqKoSLDGZWbXWK42T0c1PNbEeb-mNF7yimsysAl3NY5ylrWi8U2uTowkhI4DEcukRNfL3coiSm4GAD2bUY-bZDkX4__Lp5qWyw3hTPX3wYRty82LoRywuYn4eKTGDv03ITgRrhSo-vCar/s320/wii-sensor-bar.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5011462539081854946" /></a><p>I
built the wireless sensor bar, brought it over to the theater and
tested it on a regular television. Fortunately, it
worked!
After the patrons left, we hooked the Wii up to the data projector and
house sound, put in Wii Sports, and brought the controllers and the
wireless sensor bar downstairs. We set the emitters on the
backs
of two chairs and stood a few rows back. The wireless range
of
the controllers was great enough to work! We suffered no
technical glitches from the distance; we could even play up on stage,
craning our necks up at the gigantic image, immersing ourselves in the
game.</p><p>In
conclusion, there's
more than one way one can Wii, and sometimes, size does matter.</p>
<p>Edit - Thank you, <a href="http://www.makezine.com/blog/archive/2006/12/diy_wii_megatv.html">Make Blog</a>, <a href="http://digg.com/videos/gaming/Wii_diculous_Playing_the_Wii_in_a_Movie_Theater">Digg</a>, <a href="http://www.engadget.com/2006/12/24/wii-in-a-theater-we-dont-need-no-stinkin-pixels/">Engadget,</a> <a href="http://meneame.net/story/si-tengo-cine-puedo-jugar-wii">menéame</a>, <a href="http://elotrolado.net/showthread.php?threadid=668414">ElOtroLado.net</a>, <a href="http://www.kotaku.com/gaming/clips/wii--now-playing-in-theatres-224022.php">Kotaku</a>, <a href="http://www.kottke.org/remainder/06/12/12480.html">Kottke.org</a>, <a href="http://www.qj.net/Giant-Miis-Wii-gaming-on-a-theater-screen/pg/49/aid/77119">QJ.net</a>, <a href="http://www.gizmodo.com/gadgets/games/wii-coming-to-theatres-soon-224052.php">Gizmodo</a>, and GameTrailers.com for hosting a <a href="http://www.gametrailers.com/umwatcher.php?id=29969">high resolution version</a>!</p><p>Edit 2 - Over 500,000 views on YouTube and almost 800,000 views on a bootleg version on <a href="http://www.break.com/index/life_sized_wii_sports.html">break.com</a>!</p>Jon Peckhttp://www.blogger.com/profile/15647634292152200889noreply@blogger.com30tag:blogger.com,1999:blog-4767023536930727704.post-73580392158292282442006-12-21T00:13:00.000-05:002006-12-27T00:21:47.776-05:00Backing up your system, finding balance<p>My new entry, <a href="http://www.freesoftwaremagazine.com/blogs/backing_up_your_system_with_free_software"><i>Backing up your system with free software</i></a> is up at FreeSoftwareMagazine.com. Originally titled <i>I ain't afraid of Norton Ghost</i> (I'm learning to be more graceful about editorial changes), it describes some free tools and techniques one can use to back up and make an image of their workstation.</p>
<p>I still feel like I'm still fumbling around a bit
there. While a weekly writing deadline has been very good for
me, I don't think I've quite found the right groove yet at FSM.</p>
<p>Part of the difficultly has stemmed from the definition of
"free". I originally thought free meant not having to pay for
it, and classified closed-source freeware, no-nag shareware and open
source software as free. Their definition is a bit more
strict; if it's not open source, it's not truly free. It's a
challenge to shift your perspective in that manner, but it's manageable.</p>
<p>My other stumbling block is finding the right equation for
success; what's popular? I can't predict what will be hit
yet, even looking at other people's work. Sometimes, an entry
that I think is substandard will generate tens of thousands of hits,
and another that I thought was stellar only gets a few hundred.</p>
<p>Obviously, there's no black and white solution; it's a matter
of being in the right place at the right time with the right message.</p>
<p>With this particular definition of free, it's easy to slip
into the anti-corporate role, railing against Microsoft or other large
companies... extremists are obnoxious, and that's not my
style. I feel more moderate; it's okay to find balance, and
while I lean in a particular direction, I don't want to go off the deep
end. I don't think Steve Ballmer is the devil.</p>
<p>However, I do like the 37signals approach, which is to pick an
enemy and make something better than what they're doing.
Hence, my title, "I ain't afraid of Norton Ghost" - I intentionally
picked a popular commercial package and made it a target, and my
weapons were free and open source software. Such a violent
analogy and a confrontational tactic, yet that's a proven method of
success.</p>
<p>In the end, the entry title was changed but the structure
remained the same, and I got an above-average number of hits.
So it goes.</p>
<p>I'm putting the finishing touches on my first article for Free
Software Magazine... if accepted, it'll be in Issue 16. I
haven't forgotten about the home server security, but real life and
some other priorities have taken precedence. Also, I've got
something big and fun planned in the next day or so...</p>Jon Peckhttp://www.blogger.com/profile/15647634292152200889noreply@blogger.com0tag:blogger.com,1999:blog-4767023536930727704.post-45009798223305908282006-12-16T11:45:00.000-05:002006-12-27T00:49:38.193-05:00Zend Certification and a drink recipe<p>As of Friday, December 15th, I earned the title of Zend Certified Engineer. As best as I can remember, the exam concentrated primarily on precedence, casting, array manipulation, and file operations.</p>
<p>To get an idea of what the test process was like, take an 8oz tumbler, add a few ice cubes, fill it with 2oz vodka, 2oz Rose's Lime Juice, and 2oz of Triple Sec. Stir gently, then jam the whole glass into your left eye. Okay, so it wasn't that bad; while stressful, it's manageable... and coincidentally, is a recipe for a Kamikaze.</p>
<p>Certification tests are one of those necessary evils that one must suffer through in the pursuit of professional development. I feel my strengths lie in concepts and structure, and my greatest weakness is the ability to memorize and regurgitate. This is advantageous when doing systems analysis, but it doesn't help when taking a standardized exam specifically designed to test your knowledge by requiring the selection and differentiation between a series of extremely similar solutions.</p>
<p>I'm aware that just because you're good at taking a certification exam doesn't mean you're a good programmer. I do feel that the training that led up to the certification helped me as a programmer as it delved into some of the more obscure aspects of the language. In addition, networking with my classmates was invaluable. I'm glad I went through that process, and I'm equally glad that it's over.</p><p>So, what's my next goal? Zend PHP 5? Solaris 10? We'll see...</p><p>I'm going to let the dust settle a bit with the fast approaching holidays, and I've got a couple big projects coming up in early 2007; writing a PHP tool to analyze survey results stored in MySQL, writing a working prototype of a job description database in Ruby on Rails, and working with the rest of my department to upgrade the web server, including transitioning from PHP4 to PHP5. That's in addition to my regular writing duties for FreeSoftwareMagazine.com and whatever scraps of a social life I can squeeze out... but first, time to celebrate and relax with my wife.</p>Jon Peckhttp://www.blogger.com/profile/15647634292152200889noreply@blogger.com0