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

<channel>
	<title>Matthew&#039;s Personal Blog &#187; Matthew</title>
	<atom:link href="http://matthew.komputerwiz.net/author/matthew/feed/" rel="self" type="application/rss+xml" />
	<link>http://matthew.komputerwiz.net</link>
	<description>My little place on the web</description>
	<lastBuildDate>Sun, 29 Jan 2012 04:57:52 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Reasons to Travel Fast</title>
		<link>http://matthew.komputerwiz.net/2012/01/reasons-to-travel-fast/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=reasons-to-travel-fast</link>
		<comments>http://matthew.komputerwiz.net/2012/01/reasons-to-travel-fast/#comments</comments>
		<pubDate>Fri, 27 Jan 2012 18:11:09 +0000</pubDate>
		<dc:creator>Matthew</dc:creator>
				<category><![CDATA[Trivia]]></category>
		<category><![CDATA[physics]]></category>
		<category><![CDATA[relativity]]></category>

		<guid isPermaLink="false">http://matthew.komputerwiz.net/?p=579</guid>
		<description><![CDATA[These random thoughts came to me as I weaving my bike through pedestrian traffic. Consider this my justification of why I move swiftly between destinations. Less wasted time: it’s more than what you’re probably thinking. According to Einstein, the faster an object travels, the slower time passes from that object’s perspective. I probably save a [...]]]></description>
			<content:encoded><![CDATA[<p>These random thoughts came to me as I weaving my bike through pedestrian traffic. Consider this my justification of why I move swiftly between destinations.</p>
<ol>
<li><strong>Less wasted time:</strong> it’s more than what you’re probably thinking. According to Einstein, the faster an object travels, the slower time passes from that object’s perspective. I probably save a few trillionths of a second (maybe less) each time I commute… I’m hoping all that time adds up…</li>
<li><strong>People stay still:</strong> Although some might freeze out of fear, I think that relativity also has a lot to do with this. Relative to my speed, foot traffic covers a small distance in the same amount of time it takes me to cover a larger distance, so an opening in the crowd that I see from 30 feet away will (more than likely) still be there by the time I get there.</li>
<li><strong>Smaller target:</strong> Because of my speed, space distorts in addition to time maintain a constant speed of light. This makes my bike ever-so-slightly smaller than it actually is. Therefore, I can theoretically fit through smaller spaces.</li>
<li><strong>Wider field of vision:</strong> From my perspective, as space distorts around me, my view of my surroundings becomes slightly wide-angled (“fish-eyed”). A larger view allows me to better see my surroundings.</li>
</ol>
<p>So what if all of these effects are only noticeable when traveling close to the speed of light. I don’t ride my bike even <em>remotely</em> that fast (my average speed is usually around 15 mph / 24 km/h). However, I believe I’m feeling Physics withdrawal since I’m not taking any more PHYS courses, and my inner physicist is trying to find cool physics stuff in everything I do… <del>all to make my life seem more exciting than it actually is</del> all to help me further realize how amazingly exciting life truly is.</p>
]]></content:encoded>
			<wfw:commentRss>http://matthew.komputerwiz.net/2012/01/reasons-to-travel-fast/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Symfony Forms, Entities, and Validation</title>
		<link>http://matthew.komputerwiz.net/2012/01/symfony-forms-entities-and-validation/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=symfony-forms-entities-and-validation</link>
		<comments>http://matthew.komputerwiz.net/2012/01/symfony-forms-entities-and-validation/#comments</comments>
		<pubDate>Thu, 05 Jan 2012 01:27:34 +0000</pubDate>
		<dc:creator>Matthew</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[design pattern]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[symfony]]></category>

		<guid isPermaLink="false">http://matthew.komputerwiz.net/?p=450</guid>
		<description><![CDATA[In a previous post, I discussed some of the design patterns behind Symfony 2’s Form component that make it so fast and stable. As requested by Luis Cordova from Craft it Online, I have done further research into how Symfony 2 deals with forms, validation, and entities. Much of the information in this post can [...]]]></description>
			<content:encoded><![CDATA[<p>In a <a href="http://matthew.komputerwiz.net/2011/07/symfony-2-form-design-patterns/" title="Symfony 2 Design Patterns">previous post</a>, I discussed some of the design patterns behind Symfony 2’s <strong>Form</strong> component that make it so fast and stable. As requested by Luis Cordova from <a href="http://www.craftitonline">Craft it Online</a>, I have done further research into how Symfony 2 deals with forms, validation, and entities. Much of the information in this post can be learned from the <a href="http://www.symfony.com/doc/current/book/">online documentation</a>, and I highly recommend reading it.</p>
<p><!-- more --></p>
<h3>Forms (<code>Symfony\Component\Form</code>)</h3>
<p>Forms are created through a <strong>Factory</strong> service (<code>form.factory</code>), which subsequently uses a <strong>Builder</strong> object, to automate the creation of fields and assembly of the <code>Form</code> <strong>Composite</strong> tree. The best way to illustrate and explain this process is to walk through an example usage scenario.</p>
<p><code style="font-size: 0.9em; color: #900;">$myForm = $this->createForm(new MyType(), $entity, array(...));</code></p>
<p>Symfony’s <code>Controller</code> class (<code>Symfony\<wbr />Bundle\<wbr />FrameworkBundle\<wbr />Controller\<wbr />Controller</code>) defines the <code>createForm</code> method shortcut, which accepts the following parameters: a string identifier or an instance of a <code>Type</code> class, an entity to which the form will bind its information, and an array of options to pass to the <code>Type</code>’s <code>buildForm()</code> function. The last two parameters, the entity and the options array, are optional. If no entity is provided, then the data can be retrieved by calling <code>$form->getData()</code> after binding.</p>
<p><code>Controller::createForm()</code> delegates to <code>FormFactory::<wbr />create()</code>. <code>FormFactory</code> acts as a <strong>Façade</strong> to the Form component by automating and abstracting much of the creation process. <code>FormFactory::<wbr />create()</code> then delegates to a <code>FormBuilder</code> object, which creates the form recursively for each of the nested <code>Type</code> objects. Afterwards, the <code>FormFactory</code> returns the completed Form tree by calling <code>$builder->getForm()</code>.</p>
<p><code style="font-size: 0.9em; color: #900;">class MyType extends AbstractType {...}</code></p>
<p>This is the definition of a <code>Type</code> class that will control how a node on the <code>Form</code> tree will be constructed by the builder. Note that Symfony 2 discourages users from directly defining <code>Form</code> subclasses: using the builder reduces dependency on the <code>Form</code>’s interface and allows its internal structure to vary as Symfony evolves without affecting the user’s code.</p>
<p><code style="font-size: 0.9em; color: #900;">public function buildForm(FormBuilder $bldr, array $opts) {...}</code></p>
<p>This function is a member of the <code>MyType</code> class and is the callback for when a node of type MyType is created. The form factory passes a builder to this callback so this node’s children can be created (even recursively, if necessary by calling <code>$fieldOrSubForm->buildForm($bldr, array(...))</code>). The options are passed from the parent node (or the constructor if this particular <code>Type</code> object was instantiated) and can be used to dynamically configure form elements.</p>
<p><code style="font-size: 0.9em; color: #900;">$bldr->add('name', 'text', array('required' => true));</code></p>
<p>This statement would reside in the definition of <code>MyType::buildForm()</code> and gives me the opportunity to explain how the builder works. The builder’s <code>add</code> function creates a child on the current Form node with the given arguments: name, type, options.</p>
<ul>
<li>The name acts as an identifier for the child (and the input field’s name attribute when rendered as HTML), much like the key to a PHP array value.</li>
<li>The type is optional and can be either a string or an instance of Form (or any of its subclasses, including Type objects). If omitted, the builder can guess the type using doctrine metadata. If a string is given for the type, the builder uses it to look up the type class in a registry of built-in Type classes (all of which are defined in <code>Extension\CoreType</code>). I cannot determine whether the registry of built-in types follows the <strong>Flyweight</strong> pattern or the <strong>Prototype</strong> pattern (or a combination of both), but that’s not important now. If a Type instance is given, the builder can skip the lookup step and process it immediately. This is how one can embed a form within a form in Symfony 2.</li>
<li>The options array will be used for configuration in the child node’s <code>buildForm()</code> method. Note that the ‘required’ option in the code example above is <em><strong>NOT</strong></em> a part of the validation model. Rather, it is an HTML5 attribute that is added to the rendered field for browser-based, client-side validation. This is not meant to be used in place of server-side validation as the ‘required’ attribute is not supported by all browsers.</li>
</ul>
<p>When the builder creates a child node, it sets the new node’s parent reference to the current node that called for the child’s construction. The builder is actually a lot more complicated than how I have explained it here: it uses lazy loading so that it does not create any child objects until it absolutely has to. Calling <code>$builder->getForm()</code> triggers this mechanism. The resulting <code>Form</code> object will allow for data binding and validation and acts as a wrapper for the data object underneath.</p>
<p><code style="font-size: 0.9em; color: #900;">return array('view' => $form->createView());</code></p>
<p>Because the <code>Form</code> object only serves as a wrapper to an entity, array, or other data form, it cannot be rendered into HTML as-is. To resolve this, the controller passes an instance of <code>FormView</code> to the templating engine at render-time. A <code>FormView</code> is a PHP abstraction of the HTML input tags and provides a way for the templating engine to iterate over the fields in the form.</p>
<p>In summary, the <code>FormFactory</code> is the main interface for the Form component; the <code>FormBuilder</code> is responsible for adding fields (Types) to the Form object being built; the <code>Form</code> is a lightweight composite wrapper for the data object that stores the information, and the <code>FormView</code> encapsulates information pertinent to rendering HTML input fields.</p>
<h3>Entities</h3>
<p>Dynamic web applications depend heavily on storing and retrieving data. Symfony has <a href="http://symfony.com/doc/2.0/reference/model.html#paradigm-shift" title="Introduction to the "Model" - Paradigm Shift">altered the traditional norm</a> in favor of Domain Driven Design.</p>
<p>Entities are nothing more than plain-old PHP classes that mimic the properties and behavior of real-life objects. They do not extend any base Entity class and are thus entirely self-contained. This is another reason Symfony is so fast and lightweight. Entities help the Symfony framework feel more like working with a statically typed object-oriented language like Java or C++.</p>
<p>Entities are persisted by the Doctrine ORM. The ORM understands how to communicate with the entities because of the metadata information associated with the fields to be saved and by conventional getter and setter names. I prefer using annotations because I can define mapping and validation metadata for each field in the same file. I am also amused by the fact that Doctrine (and other Symfony components) can read and cache the PHPdoc <em>comments</em> that are ignored by the PHP interpreter. Symfony also provides ways to configure entity metadata using YAML, XML, or PHP files.</p>
<h3>Validation (<code>Symfony\Component\Validator</code>)</h3>
<p>Validation, the act of checking data legitimacy, has traditionally been closely integrated with forms: when a user submits data, a validation script checks that all required fields have been filled, certain numeric or date values are within a predetermined range, and email addresses are correctly formatted. Validation also applies on a coding level: a RESTful web service could submit information directly into the controller without the use of an HTML form; unit tests populate entities directly through setter methods.</p>
<p>Validation must be made available to both Forms and Entities. Symfony 2 solves this problem by extracting the validation subsystem into its own Validator component. According to the <a href="http://www.symfony.com/doc/current/book/validation.html">Symfony 2 online documentation</a>, “This component is based on the <a href="http://jcp.org/en/jsr/detail?id=303">JSR303 Bean Validation specification</a>.”</p>
<p>Like Doctrine, the Validator component knows how to validate an object based on metadata, which can be defined on the Entity using Annotations or in separate YAML, XML, or PHP configuration files. Regardless of how the metadata is defined, the Validator caches it for faster performance.</p>
<p>There are two ways to use the Validator component: either directly or through the Form component. Using it directly is very straightforward. From the controller level, the Validator service can be obtained by calling <code>$this->get('validator')</code>. Inside a Unit test, the Validator is created with <code>ValidatorFactory::buildDefault()->getValidator()</code>. Once we have a Validator, we can pass it an entity to be validated:</p>
<p><code style="font-size: 0.9em; color: #900;">$validator = $this->get('validator');<br />
$errors = $validator->validate($entity);</code></p>
<p>When binding data to a Form, the Form object automatically transfers the data to the underlying entity object and calls the Validation component to check it.</p>
]]></content:encoded>
			<wfw:commentRss>http://matthew.komputerwiz.net/2012/01/symfony-forms-entities-and-validation/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>September 11: Tenth Anniversary</title>
		<link>http://matthew.komputerwiz.net/2011/09/september-11-tenth-anniversary/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=september-11-tenth-anniversary</link>
		<comments>http://matthew.komputerwiz.net/2011/09/september-11-tenth-anniversary/#comments</comments>
		<pubDate>Mon, 12 Sep 2011 02:29:43 +0000</pubDate>
		<dc:creator>Matthew</dc:creator>
				<category><![CDATA[Patriotism]]></category>
		<category><![CDATA[holiday]]></category>

		<guid isPermaLink="false">http://matthew.komputerwiz.net/?p=501</guid>
		<description><![CDATA[It’s hard to believe that it has been ten years since the attacks of September 11, 2001. Today we pray for all of the victims, those who sacrificed themselves for the safety of others, our armed forces protecting our freedom, and all of the families of these people. We also pray for all of the [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://matthew.komputerwiz.net/wp-content/uploads/2011/09/Sept11Memorial.jpg"><img src="http://matthew.komputerwiz.net/wp-content/uploads/2011/09/Sept11Memorial-1024x680.jpg" alt="September 11 Memorial" title="September 11 Memorial" width="540" height="358" class="aligncenter size-large wp-image-502" /></a> It’s hard to believe that it has been ten years since the attacks of September 11, 2001. Today we pray for all of the victims, those who sacrificed themselves for the safety of others, our armed forces protecting our freedom, and all of the families of these people. We also pray for all of the citizens of America that we may uphold our country’s dignity.</p>
<p>God Bless America!</p>
]]></content:encoded>
			<wfw:commentRss>http://matthew.komputerwiz.net/2011/09/september-11-tenth-anniversary/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Brave New Country</title>
		<link>http://matthew.komputerwiz.net/2011/08/brave-new-country/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=brave-new-country</link>
		<comments>http://matthew.komputerwiz.net/2011/08/brave-new-country/#comments</comments>
		<pubDate>Tue, 02 Aug 2011 02:32:03 +0000</pubDate>
		<dc:creator>Matthew</dc:creator>
				<category><![CDATA[Patriotism]]></category>
		<category><![CDATA[abortion]]></category>
		<category><![CDATA[common sense]]></category>
		<category><![CDATA[contraception]]></category>
		<category><![CDATA[dystopia]]></category>
		<category><![CDATA[government]]></category>
		<category><![CDATA[health care]]></category>
		<category><![CDATA[human dignity]]></category>
		<category><![CDATA[philosophy]]></category>

		<guid isPermaLink="false">http://matthew.komputerwiz.net/?p=481</guid>
		<description><![CDATA[I seldom talk and write about politics because I get mad every time that I do. In this case, I’m writing because I am not only enraged at but deeply concerned of what I see happening to our country. I just received word that the government is moving to pass a bill that would mandate [...]]]></description>
			<content:encoded><![CDATA[<p>I seldom talk and write about politics because I get mad every time that I do. In this case, I’m writing because I am not only enraged at but deeply concerned of what I see happening to our country.</p>
<p>I just received word that the government is moving to pass a bill that would <a href="">mandate the coverage of contraception and sterilization by health insurance providers</a>. As I remember from high school biology, the ability to reproduce is one of the <a href="http://infohost.nmt.edu/~klathrop/7characterisitcs_of_life.htm">seven characteristics of life</a>. Contraception/sterilization is a blatant insult to our human dignity—what it means to be a human being. The abortion industry has propagated the notion that pregnancy is a disease to be eradicated rather than the blessing of a child that it should be.</p>
<p>In my mind, this follows as a direct repercussion of the Obamacare bill that was shoved down the throats of the American people <a href="http://blog.heritage.org/2010/03/22/new-cnn-poll-59-oppose-obamacare/" title="New CNN Poll: 59% Oppose Obamacare">against our will</a>. When that happened, I formed a line of succession that resulted in a dystopia like Aldous Huxley’s <em>Brave New World</em> or George Orwell’s <em>1984</em> as a worst-case scenario:</p>
<ol>
<li><strong>Government-regulated health care (“Obamacare”):</strong> the federal government sets the rules for health care and health insurance providers.</li>
<li><strong>Government-mandated health care:</strong> American citizens are <em>required</em> to have health care insurance.</li>
<li><strong>Government-owned health care:</strong> the government releases its own brand of health care.</li>
<li><strong>Government-controlled health care:</strong> the federal health care system drives other privatized health care providers out of business with over-regulation.</li>
<li><strong>Crisis/meltdown phase:</strong> federal health care will be in collapse due to uncontrolled spending and the lack of budgets.</li>
<li><strong>Rationed health care:</strong> due to the limited funding, the government will only provide health care to people deemed “worthy” of it. This phase also comes with other moral issues such as euthanasia, government-mandated abortions, and birth (population) control, which might even result in a subtle ethnic cleansing… horrific.</li>
<li><strong>Brave New Country:</strong> <!-- The federal government, euthanasia, and population control will escalate, resulting in --> a quintessential dystopian environment: The federal government will be the ultimate authority, and all who oppose it or its policies will be reprimanded; children will be either government-sanctioned or grown in “farms”; and people will receive “your time has come” notices (a.k.a “death panels”) once they are labeled hindrances to society (through old age or injury).</li>
</ol>
<p>I fervently pray that we never reach any of the later phases, but the current administration’s recent antics are definitely revealing a sinister plan that (so far) closely parallels this sequence of terrible events. The first amendment (freedom of religion, speech, press, and right to petition the government) is already being challenged, and I fear for the remaining liberties.</p>
<p>Keep in mind that these events are only worst-case scenarios: they do not have to be predictions (I dearly hope they are not), and even so, I do not foresee any “point of no return” because there is always time for redemption and common sense. We can still reshape this country into one that upholds personal freedom—the foremost of which is the right to life—and brings honor to God. Then and only then will this country once again be dignified.</p>
<p>It’s time to wake up, America!</p>
]]></content:encoded>
			<wfw:commentRss>http://matthew.komputerwiz.net/2011/08/brave-new-country/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Symfony Design Patterns</title>
		<link>http://matthew.komputerwiz.net/2011/07/symfony-2-form-design-patterns/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=symfony-2-form-design-patterns</link>
		<comments>http://matthew.komputerwiz.net/2011/07/symfony-2-form-design-patterns/#comments</comments>
		<pubDate>Mon, 25 Jul 2011 01:06:28 +0000</pubDate>
		<dc:creator>Matthew</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[design pattern]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[symfony]]></category>

		<guid isPermaLink="false">http://matthew.komputerwiz.net/?p=439</guid>
		<description><![CDATA[As recommended by Dr. Andreas Klappenecker, my CSCE 222 professor last semester, I have been reading through the Gang of Four’s Design Patterns: Elements of Reusable Object-Oriented Software book this summer. In agreement with Dr. Klappenecker, this is a must-read for anyone who works with code. I’ve previously written about the Symfony 2 PHP framework, [...]]]></description>
			<content:encoded><![CDATA[<p>As recommended by <a href="http://faculty.cs.tamu.edu/klappi/">Dr. Andreas Klappenecker</a>, my CSCE 222 professor last semester, I have been reading through the <a href="http://www.amazon.com/Design-Patterns-Elements-Reusable-Object-Oriented/dp/0201633612">Gang of Four’s <em>Design Patterns: Elements of Reusable Object-Oriented Software</em></a> book this summer. In agreement with Dr. Klappenecker, this is a must-read for anyone who works with code.</p>
<p>I’ve <a href="http://matthew.komputerwiz.net/2011/06/symfony-2-walkthrough/">previously written</a> about the <a href="http://www.symfony.com">Symfony 2</a> PHP framework, and as the release date draws near (currently in RC6—it <em>has</em> to be soon), I’ve been trying to help the Symfony developers solve user-reported issues on their <a href="http://www.github.com/symfony/symfony/">public repository</a>. Many issues are categorized under “Forms”, so I’ve been trying to understand how Symfony’s Form component works. I had attempted to do this prior to reading <em>Design Patterns</em> and was very confused by all of the abstraction and delegation to other classes. Now that I understand more about software design, it’s much easier to fit the pieces together:</p>
<p>In Symfony 2, the Form component is a <strong>Factory Façade</strong> object that provides access to a <strong>Composite</strong> object (enabling embedded forms) that is created via a <strong>Builder</strong> that delegates type-specific configuration to <strong>Flyweight</strong> Type objects… These are just a few of the simple design patterns that I’ve read about!</p>
<p>There are many other design patterns used throughout the Symfony framework: a huge indication that it is well-designed. This is most likely the reason behind its incredible speed and low memory footprint.</p>
]]></content:encoded>
			<wfw:commentRss>http://matthew.komputerwiz.net/2011/07/symfony-2-form-design-patterns/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>One Ocean Wallpaper</title>
		<link>http://matthew.komputerwiz.net/2011/06/one-ocean-wallpaper/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=one-ocean-wallpaper</link>
		<comments>http://matthew.komputerwiz.net/2011/06/one-ocean-wallpaper/#comments</comments>
		<pubDate>Fri, 10 Jun 2011 15:15:52 +0000</pubDate>
		<dc:creator>Matthew</dc:creator>
				<category><![CDATA[Pictures]]></category>
		<category><![CDATA[SeaWorld]]></category>
		<category><![CDATA[orca]]></category>
		<category><![CDATA[shamu]]></category>
		<category><![CDATA[wallpaper]]></category>

		<guid isPermaLink="false">http://matthew.komputerwiz.net/?p=418</guid>
		<description><![CDATA[To commemorate the first showing of One Ocean at SeaWorld San Antonio today, I pieced together some wallpaper that I just had to share. Enjoy! (Click on a thumbnail to view a larger image) Credits Photos by Jason Collier Copyright SeaWorld Parks and Entertainment]]></description>
			<content:encoded><![CDATA[<p>To commemorate the first showing of <em>One Ocean</em> at <a href="http://seaworld.com/sanantonio/default.aspx">SeaWorld San Antonio</a> today, I pieced together some wallpaper that I just had to share. Enjoy!</p>
<p>(Click on a thumbnail to view a larger image)<br />

<a href='http://matthew.komputerwiz.net/2011/06/one-ocean-wallpaper/oneocean-4x3/' title='OneOcean - Normal 4x3'><img width="150" height="150" src="http://matthew.komputerwiz.net/wp-content/uploads/2011/06/OneOcean-4x3-150x150.jpg" class="attachment-thumbnail" alt="Normal (4:3)" title="OneOcean - Normal 4x3" /></a>
<a href='http://matthew.komputerwiz.net/2011/06/one-ocean-wallpaper/oneocean-16x10/' title='OneOcean - Widescreen 16x10'><img width="150" height="150" src="http://matthew.komputerwiz.net/wp-content/uploads/2011/06/OneOcean-16x10-150x150.jpg" class="attachment-thumbnail" alt="Widescreen (16:10)" title="OneOcean - Widescreen 16x10" /></a>
<a href='http://matthew.komputerwiz.net/2011/06/one-ocean-wallpaper/oneocean-16x9/' title='OneOcean - Widescreen 16x9'><img width="150" height="150" src="http://matthew.komputerwiz.net/wp-content/uploads/2011/06/OneOcean-16x9-150x150.jpg" class="attachment-thumbnail" alt="Widescreen (16:9)" title="OneOcean - Widescreen 16x9" /></a>
<a href='http://matthew.komputerwiz.net/2011/06/one-ocean-wallpaper/oneoceon-iphone/' title='OneOceon - iPhone'><img width="150" height="150" src="http://matthew.komputerwiz.net/wp-content/uploads/2011/06/OneOceon-iPhone-150x150.jpg" class="attachment-thumbnail" alt="iPhone (2:3)" title="OneOceon - iPhone" /></a>
<a href='http://matthew.komputerwiz.net/2011/06/one-ocean-wallpaper/oneocean-ipad/' title='OneOcean - iPad'><img width="150" height="150" src="http://matthew.komputerwiz.net/wp-content/uploads/2011/06/OneOcean-iPad-150x150.jpg" class="attachment-thumbnail" alt="iPad (3:4)" title="OneOcean - iPad" /></a>
</p>
<h3>Credits</h3>
<ul>
<li>Photos by Jason Collier</li>
<li>Copyright SeaWorld Parks and Entertainment</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://matthew.komputerwiz.net/2011/06/one-ocean-wallpaper/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Symfony 2 Walkthrough</title>
		<link>http://matthew.komputerwiz.net/2011/06/symfony-2-walkthrough/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=symfony-2-walkthrough</link>
		<comments>http://matthew.komputerwiz.net/2011/06/symfony-2-walkthrough/#comments</comments>
		<pubDate>Thu, 02 Jun 2011 04:59:30 +0000</pubDate>
		<dc:creator>Matthew</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Websites]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[symfony]]></category>

		<guid isPermaLink="false">http://matthew.komputerwiz.net/?p=412</guid>
		<description><![CDATA[Sensio unveiled the first preview releases of the Symfony 2 framework a while ago (note the capital ‘S’). I couldn’t help but think, great, and just after I was getting the hang of symfony 1.4. At the time I was converting from CakePHP to symfony in search of more flexible routing, but even now I [...]]]></description>
			<content:encoded><![CDATA[<p>Sensio unveiled the first preview releases of the Symfony 2 framework a while ago (note the capital ‘S’). I couldn’t help but think, <em>great, and just after I was getting the hang of symfony 1.4</em>. At the time I was converting from CakePHP to symfony in search of more flexible routing, but even now I appreciate Symfony 2 even more than the symfony 1.4 legacy version.</p>
<p>In general, Symfony 2 is much lighter and <em>faster</em> than all of the other PHP frameworks I’ve used (including CakePHP, Zend, and CodeIgnitor).  At the time of writing, the current version is 2.0.0 Beta 3, and as I have learned more about this revolutionary redesign, I have come to understand more about the inner workings of the Internet rather than relying on “automagic” components. Symfony 2 offers a way of dealing with HTTP requests and responses in a familiar, object-oriented, MVC fashion. I won’t bother to explain the exact details, but I will summarize:</p>
<p>An HTTP Request begins its journey when the user performs an action on a web page. For simplicity, suppose the user clicks a link to an “About” page and makes a simple GET request. In a Symfony 2 application, the request is caught by the front controller, a single file that handles all requests and passed to a Kernel for processing.</p>
<p>The Kernel analyzes the request and matches it to a route defined in a cached configuration file. If the route matches a firewall pattern protecting a certain resource, then the user may be asked to provide authentication credentials (i.e. redirected to a login page). The route redirects the response and its parameters to a controller action that resides in a “Bundle”</p>
<p>The Controller handles the request and performs any logic to gather information from a database (if necessary). At this point, the “Model” paradigm has been replaced by <em>Entities</em>—plain-old standalone PHP objects that can be saved (or persisted) to a database by an external entity management service (in Symfony’s case, Doctrine). Symfony 2 also provides support for the Document storage design popularized by the <a href="http://www.mongodb.org">MongoDB</a> database engine.</p>
<p>After performing all necessary logic and processing, the action returns a response object, which could be anything from a redirection to a JSON file to an HTML page. This response is handed back to the client’s web browser. </p>
<p>Traditionally, HTML responses are rendered in templates. Symfony 2 uses a new templating engine called <a href="http://www.twig-project.org">Twig</a>, which uses syntax highly similar to the Python <a href="http://www.djangoproject.com">Django</a> framework. The Twig is rendered as PHP and then cached for easy reuse.</p>
<p>Without any additional logic, a simple GET request in Symfony 2 takes less than 50 milliseconds to process, render, and return a response. A complex POST request that persists information to a database and fetches more information takes slightly longer: usually less than 100 milliseconds.</p>
<p>The <a href="http://symfony.com/doc/current/book/index.html">Symfony 2 documentation</a> offers more information, and I highly recommend reading the first couple parts it even if you aren’t a web developer. If, on the other hand, you are a web developer, Symfony is insanely fast, easy to learn, and powerful/flexible enough to customize your own core components.</p>
]]></content:encoded>
			<wfw:commentRss>http://matthew.komputerwiz.net/2011/06/symfony-2-walkthrough/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Summer Time!</title>
		<link>http://matthew.komputerwiz.net/2011/06/summer-time/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=summer-time</link>
		<comments>http://matthew.komputerwiz.net/2011/06/summer-time/#comments</comments>
		<pubDate>Wed, 01 Jun 2011 17:09:20 +0000</pubDate>
		<dc:creator>Matthew</dc:creator>
				<category><![CDATA[Vacation]]></category>
		<category><![CDATA[portal]]></category>
		<category><![CDATA[project]]></category>
		<category><![CDATA[SeaWorld]]></category>
		<category><![CDATA[summer]]></category>
		<category><![CDATA[swimming]]></category>
		<category><![CDATA[symfony]]></category>
		<category><![CDATA[website]]></category>

		<guid isPermaLink="false">http://matthew.komputerwiz.net/?p=410</guid>
		<description><![CDATA[My first year of college ended only three weeks ago, and I’ve been busy wrapping up projects and defeating Aperture Laboratories’ blunders. Yes, some of my fellow computer scientists introduced me to Portal at the end of last semester, and I’ve been playing both the old and new versions ever since college ended. However, I [...]]]></description>
			<content:encoded><![CDATA[<p>My first year of college ended only three weeks ago, and I’ve been busy wrapping up projects and defeating <em>Aperture Laboratories</em>’ blunders. Yes, some of my fellow computer scientists introduced me to <em>Portal</em> at the end of last semester, and I’ve been playing both the old and new versions ever since college ended. However, I have other adventures in mind for this than wandering through the ruins of Aperture Labs:</p>
<p>I’ve had my eye on the <a href="http://matthew.komputerwiz.net/2011/06/symfony-2-walkthrough/">Symfony 2</a> framework for quite some time. I plan to continue following its development and perhaps make a few contributions on <a href="http://www.github.org">Github</a>. </p>
<p>While I’m thinking about it, Symfony 2 would make a good starting point for the web projects I plan to begin this summer. One of these projects is actually a series of sites for a local non-profit organization. I will be working on it with some of my friends who have amazing artistic talents: It is going to be awesome!</p>
<p>Of course I have to visit SeaWorld: Shamu has a new show <em>One Ocean</em> that promises to be just as breathtaking as <em>Believe</em>. I will definitely speak with some of the trainers I know there.</p>
<p>On the same aquatic note, I have to keep up my swimming endurance: SCUBA classes for the Fall semester require a 500 m swim and 10 minutes treading water. I will try to swim two times each week.</p>
]]></content:encoded>
			<wfw:commentRss>http://matthew.komputerwiz.net/2011/06/summer-time/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ash Wednesday</title>
		<link>http://matthew.komputerwiz.net/2011/03/ash-wednesday/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=ash-wednesday</link>
		<comments>http://matthew.komputerwiz.net/2011/03/ash-wednesday/#comments</comments>
		<pubDate>Wed, 09 Mar 2011 15:15:14 +0000</pubDate>
		<dc:creator>Matthew</dc:creator>
				<category><![CDATA[Religious]]></category>
		<category><![CDATA[ash]]></category>
		<category><![CDATA[Bible]]></category>
		<category><![CDATA[church]]></category>
		<category><![CDATA[Jesus]]></category>
		<category><![CDATA[lent]]></category>
		<category><![CDATA[revelation]]></category>
		<category><![CDATA[teachings]]></category>

		<guid isPermaLink="false">http://matthew.komputerwiz.net/?p=397</guid>
		<description><![CDATA[Today, Ash Wednesday marks the beginning of Lent—40 days of prayer, fasting, and penance—the Church’s remembrance of Jesus’ 40 days in the desert before He began His public ministry. All members of the Church (including non-Catholics) are encouraged to receive the ashen cross on their forehead symbolizing our mortality and as a reminder of our [...]]]></description>
			<content:encoded><![CDATA[<p>Today, Ash Wednesday marks the beginning of Lent—40 days of prayer, fasting, and penance—the Church’s remembrance of Jesus’ 40 days in the desert before He began His public ministry. All members of the Church (including non-Catholics) are encouraged to receive the ashen cross on their forehead symbolizing our mortality and as a reminder of our identity in Christ we receive in baptism:</p>
<blockquote><p>Abraham spoke up again: “See how I am presuming to speak to my Lord, though I am but dust and ashes!” (Gen 18:27)</p></blockquote>
<blockquote><p>Then I looked and there was the Lamb standing on Mount Zion, and with him a hundred and forty-four thousand who had his name and his Father’s name written on their foreheads. (Rev 14:1)</p></blockquote>
<p>Revelation can be a very difficult book to interpret because of it’s apocalyptic style. In this verse, some might interpret the “a hundred and forty-four thousand” to be an exact number. When Revelation was written, a thousand meant an innumerable amount. Villages probably seldom had more than a few hundred people, so a crowd of a thousand would’ve been a very big deal. The number twelve in scripture is a reference to the twelve tribes of Israel. In this case, 144 implies twelve “sub-tribes” for every tribe, each with too many people to be counted. An easy way to remember and visualize the number and quantity is the 12<sup>th</sup> Man. <img src='http://matthew.komputerwiz.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>
<a href='http://matthew.komputerwiz.net/2011/03/ash-wednesday/homeofthe12thman/' title='Home of the 12th Man'><img width="150" height="150" src="http://matthew.komputerwiz.net/wp-content/uploads/2011/03/Homeofthe12thMan-150x150.jpg" class="attachment-thumbnail" alt="Home of the 12th Man" title="Home of the 12th Man" /></a>
<a href='http://matthew.komputerwiz.net/2011/03/ash-wednesday/kyle/' title='Kyle Field'><img width="150" height="150" src="http://matthew.komputerwiz.net/wp-content/uploads/2011/03/kyle-150x150.jpg" class="attachment-thumbnail" alt="Kyle Field" title="Kyle Field" /></a>
</p>
<p>The passage also describes the name of each person and the name of the Father on their foreheads. Each person’s name has two “parts”. First, our name was officially given to us at Baptism, hence an indelible mark that becomes our <em>identity</em> in Christ; second, we are of this world, mortal, <em>dust</em>. The second name, the Father’s name, is an identity for God—<em>the cross</em>. Thus an <em>ashen cross</em> is a physical representation of what Rev 14:1 describes.</p>
<p>For even more information, check out <a href="http://marysaggies.blogspot.com/2011/02/lent-2011.html" target="_blank" title="Aggie Catholics: LENT 2011">this post from St. Mary’s Aggie Catholic Blog</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://matthew.komputerwiz.net/2011/03/ash-wednesday/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>In Memory of Dawn Brancheau — A Year Later</title>
		<link>http://matthew.komputerwiz.net/2011/02/dawn-brancheau/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=dawn-brancheau</link>
		<comments>http://matthew.komputerwiz.net/2011/02/dawn-brancheau/#comments</comments>
		<pubDate>Thu, 24 Feb 2011 13:24:02 +0000</pubDate>
		<dc:creator>Matthew</dc:creator>
				<category><![CDATA[SeaWorld]]></category>
		<category><![CDATA[memorial]]></category>
		<category><![CDATA[prayer]]></category>

		<guid isPermaLink="false">http://matthew.komputerwiz.net/?p=333</guid>
		<description><![CDATA[One year ago today, SeaWorld Orlando orca trainer Dawn Brancheau was tragically drowned by Tilikum, one of the orcas there. This came as a huge shock to the whole world—especially to the SeaWorld Parks and Entertainment system and SeaWorld fans like me. I want Dawn’s family, friends, and coworkers to know that they still have [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://matthew.komputerwiz.net/wp-content/uploads/2011/02/Dawn-Brancheau.jpg"><img src="http://matthew.komputerwiz.net/wp-content/uploads/2011/02/Dawn-Brancheau-150x150.jpg" alt="" title="Dawn Brancheau" width="150" height="150" class="alignright size-thumbnail wp-image-380" /></a>One year ago today, SeaWorld Orlando orca trainer Dawn Brancheau was tragically drowned by Tilikum, one of the orcas there. This came as a huge shock to the whole world—especially to the SeaWorld Parks and Entertainment system and SeaWorld fans like me. <!-- The last year in general has been very tough for SeaWorld: this event coupled with the death of three orcas, Kalina, Sumar, and Taima. --></p>
<p><span id="more-333"></span></p>
<p><div id="attachment_334" class="wp-caption alignleft" style="width: 205px"><a target="_blank" href="http://matthew.komputerwiz.net/wp-content/uploads/2011/02/Brancheau-Ribbon.png"><img src="http://matthew.komputerwiz.net/wp-content/uploads/2011/02/Brancheau-Ribbon-195x300.png" alt="" title="Brancheau Ribbon" width="195" height="300" class="size-medium wp-image-334" /></a><p class="wp-caption-text">In memory of Dawn Brancheau<br />February 24, 2010<br />[<a href='http://matthew.komputerwiz.net/wp-content/uploads/2011/02/dawn-brancheau-ribbon.svg' target='_blank'><abbr title='Scalable Vector Graphic'>SVG</abbr> Version</a>]</p></div></p>
<p>I want Dawn’s family, friends, and coworkers to know that they still have my sympathy and will continue to remain in my prayers. Please keep all of these people in your prayers as well and spread the message that Dawn will never be forgotten.</p>
<p>The memorial ribbon at left is what I remember from a photograph taken at Dawn’s funeral. It is public domain and free for anyone to reuse without citation or attribution.</p>
<p>Ever since this tragic event, SeaWorld trainers have not been allowed to get in the water with the orcas. However, SeaWorld <a href="http://www.orlandosentinel.com/business/os-seaworld-trainers-water-20110223,0,1956999.story" target="_blank">recently announced</a> that trainers will be allowed to do limited “water work” with the orcas in the smaller pools. After investing in special safety floors that can lift out of the water in the event of an emergency, SeaWorld hopes to eventually return the unique breathtaking intimacy to their shows.</p>
]]></content:encoded>
			<wfw:commentRss>http://matthew.komputerwiz.net/2011/02/dawn-brancheau/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

