<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0.0">
<channel>
<title>mikebernat.com</title>
<language>en-us</language>
<link>http://www.mikebernat.com</link>
<description>Web-Development, Design, Usability</description>

<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/Mikebernatcom" type="application/rss+xml" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item>
<title>Wildflower CMS and Unterminated String Literal Error</title>
<link>http://feedproxy.google.com/~r/Mikebernatcom/~3/vGLf3EtJ-F8/Wildflower_CMS_and_Unterminated_String_Literal_Error</link>
<description>&lt;p&gt;&lt;span&gt;I've been developing a site using &lt;a href="http://wf.klevo.sk/"&gt;Wildflower CMS&lt;/a&gt; developed using &lt;span&gt;CakePHP&lt;/span&gt;
and ran into an infuriating problem. After working on it for several
weeks without issue I started receiving javascript errors that caused
everything to come to a grinding halt. The errors were all reported
using Firebug and the javascript debugger. The culprit:&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;Unterminated String Literal&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #000000;"&gt;After that&lt;/span&gt; in the Firebug console was:&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;$ is not defined&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;I
knew there was a strong possibility that the first error was somehow
causing the second and that top-down debugging was the way to go. After
inspecting the javascript code I discovered that there was a variable
assignment going on that spanned several lines. This might be legal in
PHP but not javascript. &lt;/p&gt;</description>
<pubdate>3/23/2009 8:00pm</pubdate>
<feedburner:origLink>http://www.mikebernat.com/blog/Wildflower_CMS_and_Unterminated_String_Literal_Error</feedburner:origLink></item>
<item>
<title>Taking a ride down the sunshine highway</title>
<link>http://feedproxy.google.com/~r/Mikebernatcom/~3/tykBbrYlr1w/Taking_a_ride_down_the_sunshine_highway</link>
<description>&lt;p&gt;&lt;img style="border: 0pt none; background: #ffffff none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; float: right;" src="http://www.mikebernat.com/images/newcitymedia.jpg" border="0" alt="New City Media" width="153" height="58" /&gt;I
just wanted to let everyone know that there is a big change coming up
in my life. After much thought, discussion, and stress I have decided
to leave &lt;a href="http://www.newcitymedia.com"&gt;New City Media&lt;/a&gt;. I've lived here in &lt;a href="http://maps.google.com/maps?f=q&amp;amp;source=s_q&amp;amp;hl=en&amp;amp;geocode=&amp;amp;q=Blacksburg,+VA&amp;amp;sll=37.0625,-95.677068&amp;amp;sspn=47.704107,79.101563&amp;amp;ie=UTF8&amp;amp;z=12"&gt;Blacksburg, VA&lt;/a&gt;
for nearly six years and worked at NCM for two of them. The
family-like-culture, environment, and surroundings made this a nearly
impossible decision to make. I had the opportunity to work with
industries in nearly every walk of life. From small family-owned
companies to billion-dollar corporations. Tourism, real-estate,
jewelery, industrial manufacturing, education, world-wide non-profits,
biotechnology, New City Media gave me the opportunity to be a part of
all of these.&lt;/p&gt;
&lt;p&gt;&lt;img style="border: 0pt none; background: #ffffff none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; float: left;" src="http://www.mikebernat.com/images/0c4c455.jpg" border="0" alt="NFi Studios" width="80" height="80" /&gt;I have accepted an offer to join the &lt;a href="http://www.nfistudios.com/"&gt;NFi Studios&lt;/a&gt; Interactive Team. NFi develops and maintains several products including &lt;a href="http://www.memberfuse.com/"&gt;MemberFuse&lt;/a&gt;.
They are located in downtown Orlando, FL which means I will be making
my triumphant return to the sunshine state. I spent 9 years in
Jacksonville, Florida before moving up here to Appalachia. The office
environment and culture at NFi appears to be very relaxed and informal,
much like NCM. &lt;/p&gt;
&lt;p&gt;I'm excited to be working with web-application type projects. NFi
uses the Zend Framework for their enterprise applications. I had the
opportunity to take a peak under the hood of one of their projects and
was blown away by the quality of their work. I can't wait to get down
there and join the team.&lt;/p&gt;
&lt;p&gt;Working for New City Media has left me tainted.
I've come to realize that I will never be able to work for
Corporate-America because of the environment that &lt;a href="http://www.newcitymedia.com/team/poteet/"&gt;David Poteet&lt;/a&gt;,
president NCM, has developed. The first thing I found myself asking
companies about was their office environment. Everyone here has been
wonderful to me in good times and bad, and I will never forget these
last two years. &lt;/p&gt;
&lt;p&gt;I'll be moving to Orlando (east side) this weekend and can't wait to jump into the geek-community. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;If
anyone has any tips, suggestions, or interesting tidbits about the
area, happenings, or anything else you think would be useful for my
situation please share them&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
<pubdate>3/3/2009 5:00pm</pubdate>
<feedburner:origLink>http://www.mikebernat.com/blog/Taking_a_ride_down_the_sunshine_highway</feedburner:origLink></item>
<item>
<title>Zend Certified!</title>
<link>http://feedproxy.google.com/~r/Mikebernatcom/~3/WveW-4lfLms/Zend_Certified!</link>
<description>&lt;p&gt;&lt;a href="http://www.zend.com/en/store/education/certification/yellow-pages.php#show-ClientCandidateID=ZEND009811"&gt;&lt;img style="border: 1px solid black; background: #ffffff none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; float: right;" src="http://www.mikebernat.com/images/zend_certified.gif" border="0" alt="Zend Certified Engineer" width="73" height="68" /&gt;&lt;/a&gt;I passed the &lt;a href="http://www.zend.com/en/services/certification/php-5-certification/"&gt;&lt;span&gt;&lt;span&gt;Zend&lt;/span&gt;&lt;/span&gt; PHP5 Certification&lt;/a&gt; Exam last week and thought I would share my experience with it. &lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.zend.com/en/store/education/certification/yellow-pages.php#show-ClientCandidateID=ZEND009811"&gt;Zend Yellow Pages&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I decided that I wanted to take the test about 2 1/2 months ago. The
first thing I did was visit the site and learn more about the exam
itself. I discovered it covers almost every facet of the language and
its use. Here is a breakdown of the major sections:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;PHP Basics&lt;/li&gt;
&lt;li&gt;Functions&lt;/li&gt;
&lt;li&gt;Arrays&lt;/li&gt;
&lt;li&gt;Object Oriented Programming&lt;/li&gt;
&lt;li&gt;Security&lt;/li&gt;
&lt;li&gt;XML &amp;amp; Web Services&lt;/li&gt;
&lt;li&gt;Strings &amp;amp; Patterns&lt;/li&gt;
&lt;li&gt;Databases &amp;amp; SQL&lt;/li&gt;
&lt;li&gt;Web Features&lt;/li&gt;
&lt;li&gt;Streams &amp;amp; Network Programming&lt;/li&gt;
&lt;li&gt;PHP 4/5 Differences&lt;/li&gt;
&lt;li&gt;Design &amp;amp; Theory&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You can get a more details topic list for each section on the &lt;a href="http://www.zend.com/en/services/certification/php-5-certification/"&gt;PHP5 Certification Landing Page&lt;/a&gt;. &lt;/p&gt;
&lt;p&gt;For
the first month I spent time reading e-books and other free material on
the subjects mentioned above that I felt weak in. I was not very
devoted during the first month and only spent a couple hours (3-5) each
week. &lt;/p&gt;
&lt;p&gt;At the beginning of the second month, I purchased two books recommended by a lot of others who passed the exam.&lt;/p&gt;
&lt;h3&gt;&lt;a href="http://www.amazon.com/gp/product/0672327090?ie=UTF8&amp;amp;tag=mikebernatcom-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=390957&amp;amp;creativeASIN=0672327090"&gt;&lt;em&gt;&lt;span&gt;&lt;span&gt;Zend&lt;/span&gt;&lt;/span&gt; PHP Certification Study Guide&lt;/em&gt; - &lt;span&gt;&lt;span&gt;Zend&lt;/span&gt;&lt;/span&gt; Technologies&lt;/a&gt;&lt;br /&gt;
&lt;/h3&gt;
&lt;p&gt;&lt;a href="http://www.amazon.com/gp/product/0672327090?ie=UTF8&amp;amp;tag=mikebernatcom-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=390957&amp;amp;creativeASIN=0672327090"&gt;&lt;img style="border: 1px solid black; background: #ffffff none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; float: left;" src="http://www.mikebernat.com/images/zend_1.jpg" border="0" alt="Zend PHP Certification Study Guide" title="Zend PHP Certification Study Guide" width="125" height="160" /&gt;&lt;/a&gt;The first book is published by &lt;span&gt;&lt;span&gt;Zend&lt;/span&gt;&lt;/span&gt; and is 'the official study guide to prepare for the &lt;span&gt;&lt;span&gt;Zend&lt;/span&gt;&lt;/span&gt;
PHP Certification exam'. I liked this book because it was very focused
and clear about the topics it was covering. It also has a couple of
practice questions at the end of each chapter to prepare you for the
real thing. &lt;/p&gt;
&lt;p&gt;There is also a glossary of terms that help you become familiar with
some of the terminology used. Not sure what a HEREDOC or MTA is? Look
it up quickly with this book.&lt;/p&gt;
&lt;p&gt;This book does have a few technical errors in some examples that you do need to watch out for. &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3&gt;&lt;a href="http://www.amazon.com/gp/product/0973862149?ie=UTF8&amp;amp;tag=mikebernatcom-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=390957&amp;amp;creativeASIN=0973862149"&gt;&lt;em&gt;&lt;span&gt;&lt;span&gt;Zend&lt;/span&gt;&lt;/span&gt; PHP Certification Study Guide 2nd Edition&lt;/em&gt; - Davey &lt;span&gt;&lt;span&gt;Safik&lt;/span&gt;&lt;/span&gt; and Ben Ramsey&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;a href="http://www.amazon.com/gp/product/0973862149?ie=UTF8&amp;amp;tag=mikebernatcom-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=390957&amp;amp;creativeASIN=0973862149"&gt;&lt;img style="border: 1px solid black; background: #ffffff none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; float: left;" src="http://www.mikebernat.com/images/zend_2.jpg" border="0" alt="Zend PHP 5 Certification Study Guide" title="Zend PHP 5 Certification Study Guide" width="130" height="160" /&gt;&lt;/a&gt;I
actually started reading this book first. This book contains more
information about each topic but seems less focused. What I mean is
that the major topics are covered and explained fairly well but it
doesn't go as in-depth when it comes to sub-topics. I frequently caught
myself going to this book when I needed more general information about
something but tended to stay with the aforementioned book because it helped me stay focused.&lt;/p&gt;
&lt;p&gt;This book does not contain any practice questions or glossary, which is a bummer.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 class="alt"&gt;&lt;a href="http://www.zend.com/en/store/php-certification/online-practice-testing"&gt;&lt;span&gt;&lt;span&gt;Zend&lt;/span&gt;&lt;/span&gt; PHP 5 Certification Online Practice Testing&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;My last resource was the online practice tests made available &lt;span&gt;&lt;span&gt;Zend&lt;/span&gt;&lt;/span&gt;.
They are in the same format as the real test: 70 questions with
a 90 minute timer. The layout of the actual test is a little different
than these practice tests but nothing significant. The advantage to
these practice tests is that you can go on past the 90 minutes and it
will give you two scores. One when the time expired and the other is
based on the final submission. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;It's important to note that the practice tests do not tell you how you did on each question&lt;/strong&gt;.
Rather it breaks the test down into each major section and gives you
one of three scores - fail, pass, or passed with flying colors. I found
this to be very annoying but understood the intended benefit. &lt;/p&gt;
&lt;p&gt;I
took a total of 5 exams out of the 10 that I purchased. After the 5th
exam a significant number of questions were repeats which really took
away from the 'fear' and 'anxiety' factor of the test. I heavily
recommend you take the test until you pass with flying colors in each
major section to be ready for the real thing.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3&gt;Overview&lt;/h3&gt;
&lt;p&gt;It's been mentioned before and I agree that none of these resources
alone are enough to make you feel confident going into the test.
Rather, a combination of each resource should be taken advantage of to
feel fully prepared. I took every practice question in &lt;span&gt;&lt;span&gt;Zend's&lt;/span&gt;&lt;/span&gt; book twice and
read the entire book two or three times total. I spent a good deal of
time in PHP Architect's book but probably only read it front-to-back
once. &lt;/p&gt;
&lt;p&gt;I consider the practice test to be the most beneficial. I took one test almost immediately
after I purchased them to have a baseline benchmark. With a general
idea of where I stood in each section I was able to concentrate my
studying in those sections. After I was satisfied that I had improved I
retook the test and repeated the process until I passed every section
with flying colors. &lt;/p&gt;
&lt;p&gt;Even with this I still considered the real
test to be difficult. The practice test claims to be generally harder
than the exam - In my opinion, this is not true. &lt;/p&gt;
&lt;p&gt;The style of
questions was very test-like. They were very obscure blocks of code
that obviously had no real-world use but still covered several very
important concepts. There are four types of questions: &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Single choice questions - Multiple choice, choose one&lt;/li&gt;
&lt;li&gt;Multiple choice questions - Multiple choice, choose several&lt;/li&gt;
&lt;li&gt;Fill in the blank questions - Several blanks in a sentence, choose from multiple possible answers&lt;/li&gt;
&lt;li&gt;Open questions - fill in the blank (text input)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3&gt;Test Day!&lt;br /&gt;
&lt;/h3&gt;
&lt;p&gt;The test was observed by a proctor at a Pearson &lt;span&gt;&lt;span&gt;Vue&lt;/span&gt;&lt;/span&gt;
testing center of my choice. They took all my belongings and stored
them in a secure area (unlocked closet), sat me down in front
of a computer, and gave me a laminated sheet of legal-length paper with
a dry-erase marker (no eraser, although I'm sure I could have asked for
one). The proctor starts the exam and after a few screens explaining
the rules, agreeing to a NDA, andmaking sure I was ready, the test
began. &lt;/p&gt;
&lt;p&gt;I
can't really talk much about the test or specific questions that were
asked but I can say that they were from every topic. A good variety of
mixed-up questions. I don't believe it was the type of test where the
questions adjusted themselves based on whether or not you answered
correctly or not. It is important to note that &lt;strong&gt;there are trick questions&lt;/strong&gt;. &lt;/p&gt;
&lt;p&gt;I
found these questions in the book, practice exam, and the exam itself.
There would be large blocks of code that would never get executed
because of some small detail. I don't believe they are intended to be
tricky just for the sake of amusing the test-authors, rather to see if
you really pay attention to details in the code. I think we can all
agree that attention to detail is of utmost importance in this
profession. &lt;/p&gt;
&lt;p&gt;Once you have completed all 70 questions you are
presented with a chance to go back to any particular question and
re-evaluate your answer. Once you're satisfied with your performance
you submit the test for grading. After a couple seconds (seemed like
days) of plugging and chugging you get a screen with either Pass or
Fail. The proctor hands you a printed certificate with your candidate
number, grade, and sends you on your way.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3&gt;Tough Subjects&lt;/h3&gt;
&lt;p&gt;These were the toughest subjects for me because I do not use them very often:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span&gt;&lt;span&gt;Bitwise&lt;/span&gt;&lt;/span&gt; operators.&lt;/li&gt;
&lt;li&gt;&lt;a href="blog/PHP_Data_Types_-_Octal_Notation"&gt;Data Types&lt;/a&gt;&lt;br /&gt;
  &lt;/li&gt;
&lt;li&gt;XML &amp;amp; Web Services.&lt;/li&gt;
&lt;li&gt;Type Hinting&lt;br /&gt;
  &lt;/li&gt;
&lt;li&gt;Database topics - PDO, &lt;span&gt;&lt;span&gt;mysqli&lt;/span&gt;&lt;/span&gt;, transactions, and other database technologies.&lt;/li&gt;
&lt;li&gt;A lot of functions. I had to memorize a lot of functions that I
forgot about or used often yet never seemed to remember the parameter
order or particular definition. I've become conditioned to pull up the
PHP manual and look something up in my sleep. The function you need to
know pulled from every corner of PHP. Strings, arrays, files, and
network streams just to name a few.&lt;/li&gt;
&lt;li&gt;Nuances of &lt;span&gt;&lt;span&gt;PHP's&lt;/span&gt;&lt;/span&gt; variable juggling.&lt;/li&gt;
&lt;li&gt;And more!&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3&gt;Conclusion&lt;/h3&gt;
&lt;p&gt;I spent a lot of time studying at my leisure but really buckled down
the last two weeks leading up to the exam. As I said before, none of
the resources I found are enough to make you feelconfident going into
the test. Rather, all of them together do a nice job preparing you.
There are a lot of questions on subjects that you probably have never
used in the past and may never use in the future. I recommend spending
some extra time as you may have to memorize several key functions and
their parameters for the exam.&lt;/p&gt;
&lt;p&gt;I'm glad I spent the time and effort to earn the certification. I
know that there are those out there who question its usefulness
but I found it extremely helpful. Not only do I find myself more
confident in my abilities to use the language properly, but I get to
use the &lt;span&gt;&lt;span&gt;Zend&lt;/span&gt;&lt;/span&gt; logo on my site :)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
<pubdate>2/9/2009 4:00pm</pubdate>
<feedburner:origLink>http://www.mikebernat.com/blog/Zend_Certified!</feedburner:origLink></item>
<item>
<title>Feedburner - Account Moving Headaches</title>
<link>http://feedproxy.google.com/~r/Mikebernatcom/~3/t0z2c7h3yV4/Feedburner_-_Account_Moving_Headaches</link>
<description>&lt;p&gt;So, if you didn't know already, I use &lt;a href="http://www.feedburner.com"&gt;Feedburner&lt;/a&gt;&lt;span&gt;
for my article feeds. They have a lot of really awesome features and I
have been happy with their service thus far. A year or two ago, Google
boughtFeedburner and provided everyone free upgrades to their 'Pro' package. However, just recently they started migrating the Feedburner accounts to Google. This means your feeds would be associated with your Google account and you could  &lt;span&gt;login&lt;/span&gt; with the same &lt;span&gt;username&lt;/span&gt;/password as you use to get into Gmail or Google Docs. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;I signed in last night for the first time in a while and was prompted with a request
to go ahead and perform the migration. I didn't see any downside so I
went ahead and clicked Yes. The next screen informed me this would take
a few minutes and that I would receive an email when it was finished.
Sure enough, about five minutes later I got the email. I signed back
intoFeedburner with my Google account info and everything looked like
it was moved successfully. I had roughly the same number of subscribers
and all my settings were the same. The only noticeable difference was my account name changed to my Google  &lt;span&gt;username&lt;/span&gt;. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Pretty cool, everything seemed to be &lt;span&gt;ok&lt;/span&gt;
- not that I expected anything different from Google. However, I
decided to check my RSS Reader before heading off to bed and discovered
that every single one of my articles was there waiting for me (I
subscribe to my own feed just to make sure that it's working properly).
How could this be? Would everyone get all my articles in their reader
again like it was brand new? Sure enough, some sites whichaggregate my feed into a super-feed were also showing all my of articles.  &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;So
to everyone who got ~34 new items in their feed because of me - Sorry.
I'm not sure if this is my fault or what happened but I just wanted to
forwarn everyone before they upgrade. &lt;/p&gt;</description>
<pubdate>2/3/2009 9:00am</pubdate>
<feedburner:origLink>http://www.mikebernat.com/blog/Feedburner_-_Account_Moving_Headaches</feedburner:origLink></item>
<item>
<title>PHP Data Types - Octal Notation</title>
<link>http://feedproxy.google.com/~r/Mikebernatcom/~3/9foQVuDHelY/PHP_Data_Types_-_Octal_Notation</link>
<description>&lt;p&gt;I just ran into an interesting question while studying for the Zend
certification, and I thought I would share because I was very confused.&lt;/p&gt;
&lt;p&gt;What is the output of the following:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&lt;span style="color: #000000;"&gt;
&lt;span style="color: #0000bb;"&gt;&amp;lt;?php&lt;br /&gt;$a&amp;nbsp;&lt;/span&gt;&lt;span style="color: #007700;"&gt;=&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000bb;"&gt;010&lt;/span&gt;&lt;span style="color: #007700;"&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000bb;"&gt;$b&amp;nbsp;&lt;/span&gt;&lt;span style="color: #007700;"&gt;=&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000bb;"&gt;0xA&lt;/span&gt;&lt;span style="color: #007700;"&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000bb;"&gt;$c&amp;nbsp;&lt;/span&gt;&lt;span style="color: #007700;"&gt;=&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000bb;"&gt;2&lt;/span&gt;&lt;span style="color: #007700;"&gt;;&lt;br /&gt;&lt;br /&gt;print&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000bb;"&gt;$a&amp;nbsp;&lt;/span&gt;&lt;span style="color: #007700;"&gt;+&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000bb;"&gt;$b&amp;nbsp;&lt;/span&gt;&lt;span style="color: #007700;"&gt;+&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000bb;"&gt;$c&lt;/span&gt;&lt;span style="color: #007700;"&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000bb;"&gt;?&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/p&gt;</description>
<pubdate>2/1/2009 2:30pm</pubdate>
<feedburner:origLink>http://www.mikebernat.com/blog/PHP_Data_Types_-_Octal_Notation</feedburner:origLink></item>
<item>
<title>Design Patterns - An Introduction</title>
<link>http://feedproxy.google.com/~r/Mikebernatcom/~3/RrjbDguj7pA/Design_Patterns_-_An_Introduction</link>
<description>&lt;p&gt;Over the next couple weeks I'm going to be writing a series on
programming design patterns and their applications. I plan to cover the
popular patterns as well as the lesser-known, yet still insanely
useful, ones too. This first article will go over the background and
basics of a design pattern - What they are, why you should care, and
how to implement one into your application.&amp;nbsp; &lt;/p&gt;</description>
<pubdate>1/27/2009 9:00am</pubdate>
<feedburner:origLink>http://www.mikebernat.com/blog/Design_Patterns_-_An_Introduction</feedburner:origLink></item>
<item>
<title>Design Patterns - The Singleton</title>
<link>http://feedproxy.google.com/~r/Mikebernatcom/~3/h7ELMuS3fXI/Design_Patterns_-_The_Singleton</link>
<description>&lt;p&gt;Often one of the first patterns that young developers encounter, the
singleton solves a very sloppy, dangerous, and nightmarish practice
known as global variables. There are components in nearly every
application that need to be accessed everywhere. Configuration
variables are a perfect example of this. The younger developers might
be tempted to declare a debug variable as global, and just access it
where he/she pleases. You will learn later on in the project that this
makes maintaining the application very frustrating.&lt;/p&gt;</description>
<pubdate>1/27/2009 9:00am</pubdate>
<feedburner:origLink>http://www.mikebernat.com/blog/Design_Patterns_-_The_Singleton</feedburner:origLink></item>
<item>
<title>Code Refactoring - Freaking Awesome</title>
<link>http://feedproxy.google.com/~r/Mikebernatcom/~3/JmSTvlC7bu0/Code_Refactoring_-_Freaking_Awesome</link>
<description>&lt;p&gt;We have all gone back and looked at code we wrote in the past and
thought "Wow, this is ugly.", or "wtf was I thinking?", or even "I
wrote this yesterday, and I have no idea what it does." Refactoring is
the process of going back over already-working code and cleaning it up
for the sole purpose of understandability, maintainability, and
preserving your self-worth if anyone else were to take a peak. No one
likes to be humiliated by their own code.&lt;/p&gt;</description>
<pubdate>1/2/2009 12:00pm</pubdate>
<feedburner:origLink>http://www.mikebernat.com/blog/Code_Refactoring_-_Freaking_Awesome</feedburner:origLink></item>
<item>
<title>CakePHP - Web Test Cases with SimpleTest</title>
<link>http://feedproxy.google.com/~r/Mikebernatcom/~3/WxRZ7t0qu70/CakePHP_-_Web_Test_Cases_with_SimpleTest</link>
<description>&lt;p&gt;&lt;img style="border: 1px solid black; background: #ffffff none repeat scroll 0% 0%; float: right; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" src="http://www.mikebernat.com/images/cake/cake-logo.jpg" border="0" alt="CakePHP" width="100" height="104" /&gt;I have fallen in love with CakePHP's integration of the SimpleTest
libraries. With the type of work that I normally do, unit-testing is
hard to utilize successfully. That is to say, most of the applications
I work on have very straight-forward components and not a lot of
complex functions/methods. I would only be testing whether or not they
worked at all, rather than if they worked in a wide-array of
situations. 
&lt;/p&gt;
&lt;p&gt;For example, unit-testing a simple news list and detail page is
probably overkill. Sure, you can test your classes by simple
instantiating them but that only goes so far. My new method involves
using SimpleTest's Scriptable Browser to actually crawl webpages and
ensure that the proper data is being displayed. That way, I can catch
all my php errors, including notices and warnings, insure that the
proper headers are being sent, and assert that certain text is
appearing on the page. Unit-testing will rarely catch a poorly coded
method that throws a PHP notice whereas the Scriptable Browser will.&lt;img style="border: 1px solid black; background: #ffffff none repeat scroll 0% 0%; float: right; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" src="http://www.mikebernat.com/images/simpletest-logo.png" border="0" alt="SimpleTest" width="150" height="57" /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
<pubdate>12/10/2008 12:00pm</pubdate>
<feedburner:origLink>http://www.mikebernat.com/blog/CakePHP_-_Web_Test_Cases_with_SimpleTest</feedburner:origLink></item>
<item>
<title>CakePHP - Changing the Default Value of a Date-Time Input</title>
<link>http://feedproxy.google.com/~r/Mikebernatcom/~3/Ug-w7kL3vks/CakePHP_-_Changing_the_Default_Value_of_a_Date-Time_Input</link>
<description>&lt;p&gt;Automagically generated date/time input fields normally default to
the current date and time. For a couple of reasons, I had to change
this to another default value. For example's sake, let's say I needed a
time field to always select 1:30 pm in an add action.&lt;/p&gt;
&lt;p&gt;Run of the mill example:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&lt;span style="color: #000000;"&gt;
&lt;span style="color: #0000bb;"&gt;&amp;lt;?php&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #007700;"&gt;echo&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000bb;"&gt;$form&lt;/span&gt;&lt;span style="color: #007700;"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color: #0000bb;"&gt;input&lt;/span&gt;&lt;span style="color: #007700;"&gt;(&lt;/span&gt;&lt;span style="color: #0000bb;"&gt;'start_dt&lt;/span&gt;&lt;span style="color: #007700;"&gt;');&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000bb;"&gt;?&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;This
will output 3 select boxes; one for hours, minutes, and the merdian
(am/pm) with the current time pre-selected. So if it was 3:04 pm, that
would be selected.&lt;/p&gt;
&lt;p&gt;So lets change this so that 1:30 pm is always pre-selected:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&lt;span style="color: #000000;"&gt;
&lt;span style="color: #0000bb;"&gt;&amp;lt;?php&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #007700;"&gt;echo&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000bb;"&gt;$form&lt;/span&gt;&lt;span style="color: #007700;"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color: #0000bb;"&gt;input&lt;/span&gt;&lt;span style="color: #007700;"&gt;(&lt;/span&gt;&lt;span style="color: #0000bb;"&gt;'start_dt&lt;/span&gt;&lt;span style="color: #007700;"&gt;',&amp;nbsp;array(&lt;/span&gt;&lt;span style="color: #0000bb;"&gt;'selected' &lt;/span&gt;&lt;span style="color: #007700;"&gt;=&amp;gt;&amp;nbsp;array(&lt;/span&gt;&lt;span style="color: #0000bb;"&gt;'hour' &lt;/span&gt;&lt;span style="color: #007700;"&gt;=&amp;gt; &lt;/span&gt;&lt;span style="color: #0000bb;"&gt;'1&lt;/span&gt;&lt;span style="color: #007700;"&gt;', &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style="color: #0000bb;"&gt;'minute' &lt;/span&gt;&lt;span style="color: #007700;"&gt;=&amp;gt; &lt;/span&gt;&lt;span style="color: #0000bb;"&gt;'30'&lt;/span&gt;&lt;span style="color: #007700;"&gt;, &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style="color: #0000bb;"&gt;'meridian' &lt;/span&gt;&lt;span style="color: #007700;"&gt;=&amp;gt; &lt;/span&gt;&lt;span style="color: #0000bb;"&gt;'pm'&lt;/span&gt;&lt;span style="color: #007700;"&gt;)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; )&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; );&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000bb;"&gt;?&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;That's all there is to it! Cake's automagic owns. Hope this helps someone else :)&lt;/p&gt;</description>
<pubdate>12/8/2008 11:30am</pubdate>
<feedburner:origLink>http://www.mikebernat.com/blog/CakePHP_-_Changing_the_Default_Value_of_a_Date-Time_Input</feedburner:origLink></item>
<item>
<title>MVC - Fat Models and Skinny Controllers </title>
<link>http://feedproxy.google.com/~r/Mikebernatcom/~3/2RVB-DkYeyw/MVC_-_Fat_Models_and_Skinny_Controllers_</link>
<description>&lt;p&gt;&lt;img style="border: 1px solid black; background: #ffffff none repeat scroll 0% 0%; float: right; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" src="http://www.mikebernat.com/images/cake/cake-logo.jpg" border="0" alt="CakePHP" width="100" height="104" /&gt;&lt;span&gt;I've been doing a lot of work with CakePHP lately and it has been amazingly satisfying developing in a framework that encourages great coding practices. More on CakePHP, specifically, later. Right now, I'd like to present some things I've learned about the architecture that CakePHP is built on. I'm talking about the Model-View-Controller (MVC) architecture of course. &lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;&lt;span&gt;I'm hoping most of you reading know already know a thing or two about MVC but if you don't, here is a quick overview from wikipedia.&lt;/span&gt;&lt;/p&gt;
&lt;blockquote&gt;&lt;strong&gt;Model-view-controller&lt;/strong&gt; (&lt;strong&gt;MVC&lt;/strong&gt;) is an &lt;a href="http://en.wikipedia.org/wiki/Architectural_pattern_%28computer_science%29" title="Architectural pattern (computer science)"&gt;architectural pattern&lt;/a&gt; used in &lt;a href="http://en.wikipedia.org/wiki/Software_engineering" title="Software engineering"&gt;software engineering&lt;/a&gt;. Successful use of the pattern isolates &lt;a href="http://en.wikipedia.org/wiki/Business_logic" title="Business logic"&gt;business logic&lt;/a&gt; from &lt;a href="http://en.wikipedia.org/wiki/User_interface" title="User interface"&gt;user interface&lt;/a&gt;
considerations, resulting in an application where it is easier to
modify either the visual appearance of the application or the
underlying business rules without affecting the other. In MVC, the &lt;em&gt;model&lt;/em&gt; represents the information (the data) of the application and the business rules used to manipulate the data; the &lt;em&gt;view&lt;/em&gt;&lt;span&gt; corresponds to elements of the user interface such as text, &lt;span&gt;checkbox&lt;/span&gt; items, and so forth; and the &lt;/span&gt;&lt;em&gt;controller&lt;/em&gt; manages details involving the communication to the model of user actions such as keystrokes and &lt;a href="http://en.wikipedia.org/wiki/Mouse_%28computing%29" title="Mouse (computing)"&gt;mouse&lt;/a&gt; movements.&lt;/blockquote&gt;</description>
<pubdate>12/5/2008 6:00pm</pubdate>
<feedburner:origLink>http://www.mikebernat.com/blog/MVC_-_Fat_Models_and_Skinny_Controllers_</feedburner:origLink></item>
<item>
<title>My PHP Best Practices</title>
<link>http://feedproxy.google.com/~r/Mikebernatcom/~3/jNXlAKp9OyU/My_PHP_Best_Practices</link>
<description>&lt;p&gt;&lt;img style="float: right; padding 3px; border: 1px solid #333; background: #fff;" src="http://www.mikebernat.com/images/practice/keyboard.jpg" border="0" alt="Keyboard" width="250" height="158" /&gt;PHP's greatest strength is also its greatest weakness. Flexibility.
There are an infinite number of ways to perform the same task which PHP
will happily do without so much as a peep as to how poor the code
really is. Sadly, most developers endure a trial by fire where they
only learn from their mistakes after it's too late. &lt;/p&gt;
&lt;p&gt;I suggest a
more retro-active apprach. Studying, surrounding, and forcing yourself
to abide by best-practice coding standards will yield surprising
results in your applications despite the fact that it may seem like
more work than it's worth. &lt;/p&gt;
&lt;p&gt;I've come up with a list of things that I feel are most important to me when it comes to coding. So, without further adieu:&lt;/p&gt;</description>
<pubdate>10/7/2008 12:00pm</pubdate>
<feedburner:origLink>http://www.mikebernat.com/blog/My_PHP_Best_Practices</feedburner:origLink></item>
<item>
<title>Things I Hate - People Who Do-Not Know How to Report Bugs</title>
<link>http://feedproxy.google.com/~r/Mikebernatcom/~3/8mqDwkKWSA8/Things_I_Hate_-_People_Who_Do-Not_Know_How_to_Report_Bugs</link>
<description>&lt;p&gt;&lt;img style="float: right; padding 3px; border: 1px solid #333; background: #fff;" src="http://www.mikebernat.com/images/confused-computer-user.jpg" border="0" alt="Bugs" width="150" height="100" /&gt;Bugs are an inevitable part of any development project that most
people loath or at least generally dislike. If you take the time to
examine this phase of a project you will find that it's not the bugs
that really irk you, but the way they are presented, described, and
handled.
&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;span&gt;Ok&lt;/span&gt;,
so maybe bugs are not the worst part about my job but they can be very
effective at frustrating the hell out of me. After you get over the
fact that you are not the &lt;/span&gt;&lt;a href="http://mikebernat.com/blog/Egoless_Programming_-_Developing_Without_the_Attitude"&gt;world's greatest programmer and are indeed as fallible as the rest of us&lt;/a&gt;,
you can begin to look at bug reports as an opportunity to better
yourself. Learning from your mistakes is a huge part of the job and can
be extremely beneficial. However, no matter how vetted any particular
programmer may be, most will cringe when they see a bug drop into their
inbox. &lt;/p&gt;</description>
<pubdate>10/1/2008 1:00pm</pubdate>
<feedburner:origLink>http://www.mikebernat.com/blog/Things_I_Hate_-_People_Who_Do-Not_Know_How_to_Report_Bugs</feedburner:origLink></item>
<item>
<title>Installing Bad Behavior Generic - Anti-Spam Solution</title>
<link>http://feedproxy.google.com/~r/Mikebernatcom/~3/xkHNKV4t3DY/Installing_Bad_Behavior_Generic_-_Anti-Spam_Solution</link>
<description>&lt;p&gt;&lt;span&gt;Site spam sucks, no doubt about it. I was
getting tired of fighting it manually in hand-to-hand combat and
decided to get some help. I'd heard about different techniques for thwarting
comment, and other types of form, spam but none of them seemed to make
a big enough dent in the problem for my liking. That is, until I tried &lt;/span&gt;&lt;a href="http://www.bad-behavior.ioerror.us/"&gt;Bad Behavior&lt;/a&gt;. &lt;/p&gt;</description>
<pubdate>7/28/2008 12:00pm</pubdate>
<feedburner:origLink>http://www.mikebernat.com/blog/Installing_Bad_Behavior_Generic_-_Anti-Spam_Solution</feedburner:origLink></item>
<item>
<title>Egoless Programming - Developing Without the Attitude</title>
<link>http://feedproxy.google.com/~r/Mikebernatcom/~3/J0gsIHyreBc/Egoless_Programming_-_Developing_Without_the_Attitude</link>
<description>&lt;p&gt;One of the most common threads that all programmers share is that of an
ego. Some are much worse than others and some have found a way to
control or manipulate their ego into a great benefit. Beyond skill-sets
and other programming-specific talents I believe the greatest room for
personal improvement in programmers as a whole is that of the ego.&lt;/p&gt;
&lt;p&gt;A quote by &lt;a href="http://www.amazon.com/exec/obidos/search-handle-url?_encoding=UTF8&amp;amp;search-type=ss&amp;amp;index=books&amp;amp;field-author=Gerald%20M.%20Weinberg"&gt;&lt;span&gt;&lt;span&gt;GeraldWeinberg&lt;/span&gt;&lt;/span&gt;&lt;/a&gt; from &lt;a href="http://www.amazon.com/exec/obidos/ISBN=0932633420/portlandpatternrA/"&gt;The Psychology Of Computer Programming&lt;/a&gt;.&lt;/p&gt;
&lt;blockquote&gt;The idea is that programmers must fight the natural tendency to treat
their programs as part of themselves, and therefore to reject all
criticism. Rather, they should do their best to treat their designs
&amp;amp; implementations as objects independent of themselves, and to view
criticism dispassionately on its merits. It's a spiritual discipline
that we all fall short of, but that's worth attempting.&lt;/blockquote&gt;</description>
<pubdate>7/15/2008 12:00am</pubdate>
<feedburner:origLink>http://www.mikebernat.com/blog/Egoless_Programming_-_Developing_Without_the_Attitude</feedburner:origLink></item>
<item>
<title>Installing Xdebug - Best Decision You Will Ever Make</title>
<link>http://feedproxy.google.com/~r/Mikebernatcom/~3/39OG2VnupKw/Installing_Xdebug_-_Best_Decision_You_Will_Ever_Make</link>
<description>&lt;p&gt;&lt;img style="float: right; padding 3px; border: 1px solid #333; background: #fff;" src="http://www.mikebernat.com/images/Xdebug/xdebug.png" border="0" alt="xdebug" width="130" height="75" /&gt;I finally got around to installing xdebug on my development
environment and have decided it is the best thing since sliced bread.Installation was a breeze and the information it provides when something has gone wrong is incredibly helpful during debugging. What I didn't know, and hope to help others by documenting it here, was the amount of configuration options Xdebug has. The base install has some irritating limitations that are easily addressed with a few simple lines in the php.ini file. &lt;/p&gt;</description>
<pubdate>7/1/2008 9:00am</pubdate>
<feedburner:origLink>http://www.mikebernat.com/blog/Installing_Xdebug_-_Best_Decision_You_Will_Ever_Make</feedburner:origLink></item>
<item>
<title>PHP - Opening and Saving Files over FTP</title>
<link>http://feedproxy.google.com/~r/Mikebernatcom/~3/q9Wyr4FNNCM/PHP_-_Opening_and_Saving_Files_over_FTP</link>
<description>&lt;p&gt;&lt;span&gt;PHP makes file system manipulation easy with its variety of
built-in functions. One thing I always knew, but never got the chance
to try, is that many of those same functions worked over FTP instead of
the local file system. I finally got my excuse to give it the ole'
college try and I found a few things that may help others with the same
task.&lt;/span&gt;&lt;/p&gt;</description>
<pubdate>6/25/2008 6:00pm</pubdate>
<feedburner:origLink>http://www.mikebernat.com/blog/PHP_-_Opening_and_Saving_Files_over_FTP</feedburner:origLink></item>
<item>
<title>The Ternary Operator</title>
<link>http://feedproxy.google.com/~r/Mikebernatcom/~3/EqWruS_L7Zg/The_Ternary_Operator</link>
<description>&lt;p&gt;&lt;img style="float: right; padding 3px; border: 1px solid #333; background: #fff;" src="http://www.mikebernat.com/images/php_logo.gif" border="0" alt="PHP" width="70" height="36" /&gt;Every good programmer should constantly be looking for ways to
improve the look and readability of their code. One of my favorite ways
to reduce vertical length while maintaining readability is to use the
lesser-known ternary comparison operator. &lt;/p&gt;
&lt;p&gt;The Ternary Operator is unique when it comes to PHP's available
comparison options. Not in the sense that it does something that the
other operators don't, but that the functionality it offers is not seen
anywhere else. &lt;/p&gt;
&lt;p&gt;&lt;code&gt;&lt;span style="color: #000000;"&gt;
&lt;span style="color: #0000bb;"&gt;&amp;lt;?php&lt;br /&gt;&amp;nbsp;&amp;nbsp;$myvar&amp;nbsp;&lt;/span&gt;&lt;span style="color: #007700;"&gt;=&amp;nbsp;(&lt;/span&gt;&lt;span style="color: #0000bb;"&gt;$x&amp;nbsp;&lt;/span&gt;&lt;span style="color: #007700;"&gt;==&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000bb;"&gt;$y&lt;/span&gt;&lt;span style="color: #007700;"&gt;)&amp;nbsp;?&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000bb;"&gt;TRUE&amp;nbsp;&lt;/span&gt;&lt;span style="color: #007700;"&gt;:&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000bb;"&gt;FALSE&lt;/span&gt;&lt;span style="color: #007700;"&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000bb;"&gt;?&amp;gt;&lt;/span&gt;
&lt;/span&gt;
&lt;/code&gt;
&lt;/p&gt;</description>
<pubdate>6/23/2008 12:00pm</pubdate>
<feedburner:origLink>http://www.mikebernat.com/blog/The_Ternary_Operator</feedburner:origLink></item>
<item>
<title>Caching PHP Pages with Output Buffering</title>
<link>http://feedproxy.google.com/~r/Mikebernatcom/~3/7oKihpzDj8s/Caching_PHP_Pages_with_Output_Buffering</link>
<description>&lt;p&gt;&lt;img style="border: 1px solid black; background: #ffffff none repeat scroll 0% 0%; float: right; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; padding: 3px;" src="http://www.mikebernat.com/images/php_logo.gif" border="0" alt="PHP" width="70" height="36" /&gt;&lt;span&gt;Noticing your pages are loading slowly or just don't like using extra &lt;span&gt;cpu&lt;/span&gt;
cycles when you don't have to? PHP makes caching very easy with their
variety of Output Control Functions. In this article I'll go over
complete page caching which is the easiest to implement and understand.&lt;/span&gt;&lt;/p&gt;</description>
<pubdate>6/18/2008 12:00pm</pubdate>
<feedburner:origLink>http://www.mikebernat.com/blog/Caching_PHP_Pages_with_Output_Buffering</feedburner:origLink></item>
<item>
<title>Setting-Up a Relational Database in MySQL</title>
<link>http://feedproxy.google.com/~r/Mikebernatcom/~3/DZB5xXMpJGQ/Setting-Up_a_Relational_Database_in_MySQL</link>
<description>&lt;p&gt;&lt;img style="border: 1px solid black; padding: 3px; background: #fff; float: right;" src="http://www.mikebernat.com/images/mysql_logo.gif" border="0" alt="MySQL" /&gt;Relational Database Design is one of the most powerful ways to ensure
data integrity and a great way to kick-off any project. Very often the
first thing developers do when starting a new project, or stub-project,
is to design the database. This way the structure of the application is
already in place and we just have to fill in the pieces with some
server-side code. I've found when adding relational constraints to your
database design you add in a very powerful error reporting tool that
will let you know during the development process that you have allowed
something to happen that shouldn't have. In this article, I go through,
step by step, showing how to set up a simple relational database and
discuss the benefits that are enjoyed.&lt;/p&gt;</description>
<pubdate>6/17/2008 10:30am</pubdate>
<feedburner:origLink>http://www.mikebernat.com/blog/Setting-Up_a_Relational_Database_in_MySQL</feedburner:origLink></item>
<item>
<title>Adding Virtual Hosts to Apache &amp; Wampserver</title>
<link>http://feedproxy.google.com/~r/Mikebernatcom/~3/swC8HC21E4M/Adding_Virtual_Hosts_to_Apache_&amp;_Wampserver</link>
<description>&lt;p&gt;&lt;img style="float: right;border: 0px" src="http://www.mikebernat.com/images/wampserver.png" border="0" alt="Wamp Server" width="116" height="96" /&gt;Being able to develop on my local machine with urls like
htto://testsite/index.php has been a godsend. Mostly because I am able
to take full advantage of the document root. If I were to develop on
something like http://localhost/testsite/index.php I would be extremely
limited and forced to used relative urls. In this article I've listed
the steps in order to enable this functionality in a wamp server
environment.&lt;/p&gt;</description>
<pubdate>6/15/2008 9:00am</pubdate>
<feedburner:origLink>http://www.mikebernat.com/blog/Adding_Virtual_Hosts_to_Apache_&amp;_Wampserver</feedburner:origLink></item>
<item>
<title>How fast can you spot PHP Bugs?</title>
<link>http://feedproxy.google.com/~r/Mikebernatcom/~3/iniBAaeb3EQ/How_fast_can_you_spot_PHP_Bugs</link>
<description>&lt;p&gt;&lt;a href="http://www.phpvs.net/2008/06/04/ten-php-best-practices-tips-that-will-get-you-a-job/"&gt;Blake&lt;/a&gt; over at &lt;a href="http://www.phpvs.net"&gt;PHP vs .NET&lt;/a&gt;
has written up a very nice article to prepare those who are
interviewing for a php job soon. He basically gives a bunch of php
snippets and asks where the bugs are. The article somewhat morphs into
a mish-mash of good-practice/bad-practice comparison and explains why
one way is better than the other.&lt;/p&gt;
&lt;p&gt;From the article: &lt;/p&gt;
&lt;p&gt;Find the errors in the following code:
&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&lt;span style="color: #000000;"&gt;
&lt;span style="color: #0000bb;"&gt;&amp;lt;?php
&lt;/span&gt;&lt;span style="color: #007700;"&gt;&lt;br /&gt;function&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000bb;"&gt;baz&lt;/span&gt;&lt;span style="color: #007700;"&gt;(&lt;/span&gt;&lt;span style="color: #0000bb;"&gt;$y&amp;nbsp;$z&lt;/span&gt;&lt;span style="color: #007700;"&gt;)&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000bb;"&gt;$x&amp;nbsp;&lt;/span&gt;&lt;span style="color: #007700;"&gt;=&amp;nbsp;new&amp;nbsp;Array();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000bb;"&gt;$x&lt;/span&gt;&lt;span style="color: #007700;"&gt;[&lt;/span&gt;&lt;span style="color: #0000bb;"&gt;sales&lt;/span&gt;&lt;span style="color: #007700;"&gt;]&amp;nbsp;&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000bb;"&gt;60&lt;/span&gt;&lt;span style="color: #007700;"&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000bb;"&gt;$x&lt;/span&gt;&lt;span style="color: #007700;"&gt;[&lt;/span&gt;&lt;span style="color: #0000bb;"&gt;profit&lt;/span&gt;&lt;span style="color: #007700;"&gt;]&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000bb;"&gt;20&lt;/span&gt;&lt;span style="color: #007700;"&gt;:&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;foreach(&lt;/span&gt;&lt;span style="color: #0000bb;"&gt;$x&amp;nbsp;&lt;/span&gt;&lt;span style="color: #007700;"&gt;as&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000bb;"&gt;$key&amp;nbsp;&lt;/span&gt;&lt;span style="color: #007700;"&gt;=&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000bb;"&gt;$value&lt;/span&gt;&lt;span style="color: #007700;"&gt;)&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;echo&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000bb;"&gt;$key&lt;/span&gt;&lt;span style="color: #007700;"&gt;+&lt;/span&gt;&lt;span style="color: #dd0000;"&gt;"&amp;nbsp;\"+$value+\"&amp;lt;BR&amp;gt;\";&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;}&amp;nbsp;&lt;br /&gt;?&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/p&gt;</description>
<pubdate>6/14/2008 10:00pm</pubdate>
<feedburner:origLink>http://www.mikebernat.com/blog/How_fast_can_you_spot_PHP_Bugs?</feedburner:origLink></item>
<item>
<title>MySQL - InnoDB vs MyISAM</title>
<link>http://feedproxy.google.com/~r/Mikebernatcom/~3/6P0Nh0xa9dA/MySQL_-_InnoDB_vs_MyISAM</link>
<description>&lt;p&gt;Most people who use MySQL know that MyISAM and InnoDB are the two
most-common database engines available with the popular opensource
datbase provider. I would be that most of those people don't even take
the time to select a storage-engine and just accept the database
default. Those of you who are left probably heard from a friend who saw
something online that said one of the two is better than the other.
Those of you who are left will still probably learn a thing or two here
:)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;img style="border: 0px;" src="http://www.mikebernat.com/images/mysql-logo.png" border="0" alt="MySQL" width="200" height="103" /&gt;&lt;/p&gt;</description>
<pubdate>6/14/2008 7:00pm</pubdate>
<feedburner:origLink>http://www.mikebernat.com/blog/MySQL_-_InnoDB_vs_MyISAM</feedburner:origLink></item>
<item>
<title>Image Styles Not Working in TinyMCE?</title>
<link>http://feedproxy.google.com/~r/Mikebernatcom/~3/iCzicrYax0g/Image_Styles_Not_Working_in_TinyMCE</link>
<description>&lt;p&gt;&lt;img style="float: right;" src="http://www.mikebernat.com/images/moxie.gif" border="0" alt="TinyMCE" /&gt;I had an issue lately where image styles that I inputted through &lt;a href="http://tinymce.moxiecode.com/"&gt;TinyMCE&lt;/a&gt;
weren't working. For example, my images would not align right or left,
my borders weren't appearing, and even padding wasn't working. I
checked the HTML source and found that no styles at all were making it
from the popup Image Dialog to the editor!&lt;/p&gt;</description>
<pubdate>6/14/2008 1:00pm</pubdate>
<feedburner:origLink>http://www.mikebernat.com/blog/Image_Styles_Not_Working_in_TinyMCE?</feedburner:origLink></item>
<item>
<title>Funny Names for ASCII Symbols</title>
<link>http://feedproxy.google.com/~r/Mikebernatcom/~3/VXl-ZKx1fEk/Funny_Names_for_ASCII_Symbols</link>
<description>&lt;p&gt;&lt;a href="http://www.codinghorror.com/blog/archives/001133.html"&gt;Coding Horror&lt;/a&gt;&lt;span&gt; has a pretty amusing article on the infinite number of names programmers give common &lt;span&gt;ascii&lt;/span&gt; symbols. $, %, &amp;amp;, |, etc are seen across a lot of languages but somehow they have accumulated more names than the entire &lt;span&gt;ascii&lt;/span&gt; library combined.&lt;/span&gt;&lt;/p&gt;
&lt;p style="text-align: center;"&gt;&lt;img src="http://uploads.screenshot-program.com/upl3018220683.png" border="0" alt="ASCII Names" width="550" height="126" /&gt;&lt;/p&gt;</description>
<pubdate>6/14/2008 10:00am</pubdate>
<feedburner:origLink>http://www.mikebernat.com/blog/Funny_Names_for_ASCII_Symbols</feedburner:origLink></item>
<item>
<title>Optimization - PHP Benchmarks</title>
<link>http://feedproxy.google.com/~r/Mikebernatcom/~3/kR2munZwfGE/Optimization_-_PHP_Benchmarks</link>
<description>&lt;p&gt;A lot of the gripes about PHP as a language come down to the fact that there are a million ways to accomplish the same task, but only a couple are truely 'correct' - as in significantly better for one reason or another. Out of all those reasons script efficiency and speed are the driving force behind all experienced programmers.&amp;nbsp; That being said it's hard to know what the right way to do things are. Sure there are 100 ways to do something but all but 2 or 3 of those take an obscene amount of time. Normally, during development, you won't notice long load times because it's not getting hammered by thousands of users requesting the same page. &lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.chrisvincent.com.au/" target="_blank"&gt;Chris Vincent &lt;/a&gt;has set up &lt;a href="http://www.phpbench.com/" target="_blank"&gt;The PHP Benchmark&lt;/a&gt; to help visually show how some methods are more effecient than others. &lt;/p&gt;
&lt;blockquote&gt;PHPBench.com was constructed as a way to open people's eyes to the fact that not every PHP code snippet will run at the same speed. &lt;/blockquote&gt;
&lt;p&gt;A few highlights:&lt;/p&gt;
&lt;p class="code"&gt;&lt;code&gt;&lt;span style="color: #000000;"&gt;
&lt;span style="color: #0000bb;"&gt;&amp;lt;?php
&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #007700;"&gt;foreach(&lt;/span&gt;&lt;span style="color: #0000bb;"&gt;$aHash&amp;nbsp;&lt;/span&gt;&lt;span style="color: #007700;"&gt;as&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000bb;"&gt;$val&lt;/span&gt;&lt;span style="color: #007700;"&gt;);&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #ff8000;"&gt;//&amp;nbsp;VS&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #007700;"&gt;while(list(,&lt;/span&gt;&lt;span style="color: #0000bb;"&gt;$val&lt;/span&gt;&lt;span style="color: #007700;"&gt;)&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000bb;"&gt;each&lt;/span&gt;&lt;span style="color: #007700;"&gt;(&lt;/span&gt;&lt;span style="color: #0000bb;"&gt;$aHash&lt;/span&gt;&lt;span style="color: #007700;"&gt;));
&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000bb;"&gt;?&amp;gt;&lt;/span&gt;
&lt;/span&gt;
&lt;/code&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;foreach($array as $value) is the fastest way to loop through an array.&lt;/li&gt;
&lt;li&gt;foreach($array as $key =&amp;gt; $value) is slightly slower by about 10-15% so use it only when necassary.&lt;/li&gt;
&lt;li&gt;Using while() and for() loops dramatically increases the server load especially when used in conjuction with list() and each().&lt;/li&gt;
&lt;/ul&gt;</description>
<pubdate>6/10/2008 8:00am</pubdate>
<feedburner:origLink>http://www.mikebernat.com/blog/Optimization_-_PHP_Benchmarks</feedburner:origLink></item>
<item>
<title>Making Your Tables Easier on the Eyes</title>
<link>http://feedproxy.google.com/~r/Mikebernatcom/~3/PZufRy9b7z0/Making_Your_Tables_Easier_on_the_Eyes</link>
<description>&lt;p&gt;&lt;a href="http://www.richardoneill.com.au"&gt;Richard O'Neill&lt;/a&gt; has written a short article on improving user-interface by polishing-up your grids and tables. By making a few simple modifications your information can be easily read and understood. &lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;&lt;em&gt;&amp;quot;It's not hard making interfaces look professional. I've found that some good looking icons and a bit of cell padding makes all the difference.&lt;br /&gt;Using the example below, we can apply small changes to the design which will improve usability and make this ugly interface look a lot better.&amp;quot;&lt;/em&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;img src="http://www.richardoneill.com.au/img/articles/emailclient5.jpg" border="0" alt=" Making Your Tables Easier on the Eyes" width="532" height="254" /&gt; &lt;/p&gt;</description>
<pubdate>9/11/2007 8:00am</pubdate>
<feedburner:origLink>http://www.mikebernat.com/blog/Making_Your_Tables_Easier_on_the_Eyes</feedburner:origLink></item>
<item>
<title>Creating a Users Online Script using PHP</title>
<link>http://feedproxy.google.com/~r/Mikebernatcom/~3/CeBwVaHo6hk/Creating_a_Users_Online_Script_using_PHP</link>
<description>&lt;p&gt;Creating a way to show how many users are currently visiting your website has become a fad amongst webmasters. It's a cool way to show off your skills has a coder and to show your visitors how many other people are looking at the same thing they are. You don't want to miss the bandwagon again do you? This script is also an excuse to brush up on some mildly advanced MySQL queries.&lt;/p&gt;</description>
<pubdate>9/10/2007 8:00am</pubdate>
<feedburner:origLink>http://www.mikebernat.com/blog/Creating_a_Users_Online_Script_using_PHP</feedburner:origLink></item>
<item>
<title>Making Magic with .htaccess Files</title>
<link>http://feedproxy.google.com/~r/Mikebernatcom/~3/uIHW6hI2BnY/Making_Magic_with_.htaccess_Files</link>
<description>&lt;p&gt;.htaccess files are one of the most underused and underrated forms of web development. They are very easily overlooked or dismissed as unimportant by the amateur programmer. The reality of it is that .htaccess has some of the coolest and ridiculously easy features to offer.&lt;/p&gt;</description>
<pubdate>9/9/2007 8:00am</pubdate>
<feedburner:origLink>http://www.mikebernat.com/blog/Making_Magic_with_.htaccess_Files</feedburner:origLink></item>
<item>
<title>Creating a Simple Registration Script using PHP</title>
<link>http://feedproxy.google.com/~r/Mikebernatcom/~3/ysg1_ygavD4/Creating_a_Simple_Registration_Script_using_PHP</link>
<description>&lt;p&gt;The most useful and almost necessary feature of any interactive website is a registration form. A way to give users access to features while keeping out the riff-raff. While a registration script can be the perfect time for an amateur to grab the bull by the horns it can also leave lots of pitfalls for a more experienced programmer.&lt;/p&gt;</description>
<pubdate>9/8/2007 8:00am</pubdate>
<feedburner:origLink>http://www.mikebernat.com/blog/Creating_a_Simple_Registration_Script_using_PHP</feedburner:origLink></item>
<item>
<title>Creating Static RSS Feeds</title>
<link>http://feedproxy.google.com/~r/Mikebernatcom/~3/k8oMLEyTE90/Creating_Static_RSS_Feeds</link>
<description>&lt;p&gt;&lt;img style="border: 0pt none; float: right;" src="images/rss.png" border="0" alt="rss" /&gt;Providing RSS Feeds for your website is fast becoming a necessity in today's web2.0 world. The amount of surfers taking advantage of everything RSS Feeds has to offer has exploded in recent history, and it's easy to see why. The amount gained from offering a RSS Feed far outweigh the effort needed to create one.&lt;/p&gt;</description>
<pubdate>9/7/2007 8:00am</pubdate>
<feedburner:origLink>http://www.mikebernat.com/blog/Creating_Static_RSS_Feeds</feedburner:origLink></item>
<item>
<title>Using PayPal in your Site - Easier than you Think</title>
<link>http://feedproxy.google.com/~r/Mikebernatcom/~3/BcDMyG7x8OU/Using_PayPal_in_your_Site_-_Easier_than_you_Think</link>
<description>&lt;p&gt;&lt;img style="float: right; border: 0px;" src="http://www.paypal.com/en_US/i/btn/x-click-but01.gif" border="0" alt="PayPal" width="62" height="31" /&gt;Integrating PayPal into your site may seem intimidating to those who have never put together a serious project before. It might seem like everything changes when you start dealing with money. You always hear about someone else who has been scammed or in some kind of nightmare involving some sort of online transaction. When you realize how easy PayPal makes it to utilize their services it really puts any anxiety you have to rest.&lt;/p&gt;</description>
<pubdate>9/5/2007 8:00am</pubdate>
<feedburner:origLink>http://www.mikebernat.com/blog/Using_PayPal_in_your_Site_-_Easier_than_you_Think</feedburner:origLink></item>
<item>
<title>How to Create a Simple PHP Text Counter</title>
<link>http://feedproxy.google.com/~r/Mikebernatcom/~3/Jf4EJgxEQdE/How_to_Create_a_Simple_PHP_Text_Counter</link>
<description>&lt;p&gt;After learning the basics of PHP's basic file system functions, the first thing you'll want to do is put it to use. One of the easiest and flashiest things you can create is a page counting script. I'll show you how to create a page hit script that is easy to create and even easier to implement.&lt;/p&gt;</description>
<pubdate>9/4/2007 8:00am</pubdate>
<feedburner:origLink>http://www.mikebernat.com/blog/How_to_Create_a_Simple_PHP_Text_Counter</feedburner:origLink></item>
<item>
<title>PHP Cookies vs Sessions - The Breakdown</title>
<link>http://feedproxy.google.com/~r/Mikebernatcom/~3/jiUVvax2cPI/PHP_Cookies_vs_Sessions_-_The_Breakdown</link>
<description>&lt;p&gt;Knowing the basics of cookies and sessions is essential to any successful PHP programmer. It is useful to store pieces information on the users computer for later use. Things like when they laste visited, language of choice, age, etc. Cookies and Sessions are the perfect solution to our needs.&lt;/p&gt;
&lt;table border="0" cellspacing="0" cellpadding="1"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;td style="background-color: #46647c; border: 1px solid"&gt;&lt;strong&gt;Browser needs Cookies Enabled? &lt;/strong&gt;&lt;/td&gt;
&lt;td style="background-color: #46647c; border: 1px solid"&gt;&lt;strong&gt;Can User Edit Information?&lt;/strong&gt;&lt;/td&gt;
&lt;td style="background-color: #46647c; border: 1px solid"&gt;
&lt;p&gt;&lt;strong&gt;Information Lasts Between Browser Sessions?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;(Leaving site and coming back)&amp;nbsp;&lt;/strong&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="background-color: #46647c; border: 1px solid"&gt;&lt;strong&gt;Information Location&amp;nbsp;&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="background-color: #46647c; border: 1px solid"&gt;&lt;strong&gt;Cookies&lt;/strong&gt; &lt;br /&gt;&lt;/td&gt;
&lt;td style="background-color: #b3babf; border: 1px solid"&gt;&amp;nbsp;Yes&lt;/td&gt;
&lt;td style="background-color: #b3babf; border: 1px solid"&gt;&amp;nbsp;Yes, easily&lt;br /&gt;&lt;/td&gt;
&lt;td style="background-color: #b3babf; border: 1px solid"&gt;&amp;nbsp;Yes&lt;/td&gt;
&lt;td style="background-color: #b3babf; border: 1px solid"&gt;&amp;nbsp;User's Browser&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="background-color: #46647c; border: 1px solid"&gt;&lt;strong&gt;Sessions&lt;/strong&gt;&lt;br /&gt;&lt;/td&gt;
&lt;td style="background-color: #c0c0c0; border: 1px solid"&gt;&amp;nbsp;No&lt;br /&gt;&lt;/td&gt;
&lt;td style="background-color: #c0c0c0; border: 1px solid"&gt;&amp;nbsp;No* &lt;/td&gt;
&lt;td style="background-color: #c0c0c0; border: 1px solid"&gt;&amp;nbsp;No&lt;/td&gt;
&lt;td style="background-color: #c0c0c0; border: 1px solid"&gt;&amp;nbsp;Server, except for session ID&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;</description>
<pubdate>9/3/2007 8:00am</pubdate>
<feedburner:origLink>http://www.mikebernat.com/blog/PHP_Cookies_vs_Sessions_-_The_Breakdown</feedburner:origLink></item>
<item>
<title>Using PHP to Access Files - The Basics</title>
<link>http://feedproxy.google.com/~r/Mikebernatcom/~3/l53gcEHTA7k/Using_PHP_to_Access_Files_-_The_Basics</link>
<description>&lt;p&gt;The first thing I wanted to know after learning the basics of PHP was how to store my data on a more permanent basis. PHP is all well and good but without the ability to store data between browser sessions it has limited functionality. After learning how to store and retrieve data, your PHP scripts really come to life.&lt;/p&gt;</description>
<pubdate>9/2/2007 8:00am</pubdate>
<feedburner:origLink>http://www.mikebernat.com/blog/Using_PHP_to_Access_Files_-_The_Basics</feedburner:origLink></item>
<item>
<title>Making your MySQL Tables More Effecient by Using Correct Fieldtypes</title>
<link>http://feedproxy.google.com/~r/Mikebernatcom/~3/4fGY85iL0Eg/Making_your_MySQL_Tables_More_Effecient_by_Using_Correct_Fieldtypes</link>
<description>&lt;p&gt;&lt;span style="font-size: x-small;"&gt;One of the biggest mistakes of today's fledgling MySQL programmers is their field type definitions, also known as data type or column type. Many are too quick to set up their tables, flying through the different options without giving it much thought. The time you spend setting up your tables will save you from many headaches later on down the road.&lt;/span&gt;&lt;/p&gt;</description>
<pubdate>9/1/2007 8:00am</pubdate>
<feedburner:origLink>http://www.mikebernat.com/blog/Making_your_MySQL_Tables_More_Effecient_by_Using_Correct_Fieldtypes</feedburner:origLink></item>

</channel>
</rss>
