<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/atom10full.xsl" type="text/xsl" media="screen"?><?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/itemcontent.css" type="text/css" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" xml:lang="en-us"><title type="text">Godbit Project</title>
<subtitle type="text">The Godbit Project is a collaboration of Christian web developers in an attempt to educate the Church about web standards.</subtitle>

<link rel="alternate" type="text/html" href="http://godbit.com/" />
<id>tag:godbit.com,2005:dba28755a1612b9985194aabbf4789dc</id>
<generator uri="http://textpattern.com/" version="4.0.6">Textpattern</generator>
<updated>2008-09-05T04:47:35Z</updated>
<author>
		<name>Nathan Smith</name>
		
		<uri>http://godbit.com/</uri>
</author>

<link rel="self" href="http://godbit.com/rss/" type="application/atom+xml" /><feedburner:browserFriendly>The Godbit Project is a collaboration of Christian web developers in an attempt to educate the Church about web standards.</feedburner:browserFriendly><entry>
		<author>
			<name>Nathan Smith</name>
		</author>
		<published>2008-09-05T04:37:22Z</published>
		<updated>2008-09-05T04:47:35Z</updated>
		<title type="html">Terry Storch</title>
		<link rel="alternate" type="text/html" href="http://feeds.feedburner.com/~r/godbit/~3/383868156/terry-storch" />
		<id>tag:godbit.com,2008-09-04:dba28755a1612b9985194aabbf4789dc/6d1530991460cbce970c8474b16d68ab</id>
		<category term="Interviews" />
		
		<content type="html">
&lt;p class="notice"&gt;A few months ago, I asked &lt;a href="http://www.terrystorch.com/"&gt;Terry Storch&lt;/a&gt; of &lt;a href="http://lifechurch.tv/"&gt;LifeChurch.tv&lt;/a&gt; if he would field a few questions for Godbit. Busy man that he is, it&amp;#8217;s taken a little while, but I am happy to say that it&amp;#8217;s been worth the wait. Terry&amp;#8217;s is a story of passion for pastoral ministry, the journey of an author, and a true technologist at heart.&lt;/p&gt;

 &lt;hr /&gt;

	&lt;p&gt;&lt;strong&gt;Nathan:&lt;/strong&gt;&lt;/p&gt;

	&lt;p&gt;You have quite an accomplished track record. Formerly the Technology Pastor at a mega church in Dallas, you now spearhead the &lt;a href="http://www.lifechurch.tv/digerati"&gt;Digerati&lt;/a&gt; team at LifeChurch.tv in Oklahoma. You&amp;#8217;ve had to keep abreast of advances in new media, but also manage groups of people in a spiritual setting. Have you found the coexistence of theo-tech to be exhilarating, exhausting, both?&lt;/p&gt;

	&lt;p&gt;&lt;strong&gt;Terry:&lt;/strong&gt;&lt;/p&gt;

	&lt;p&gt;Thank you Nathan, and thank you for the opportunity to be on Godbit. This is a great community, and I am excited to see what is going on here. As for my track record, it truly is a God thing! I am not nearly that good, or talented. For some reason though God keeps showing up in the middle of things that I am working on. It is my continual prayer not to mess up what He is doing.&lt;/p&gt;

	&lt;p&gt;Onto your question&amp;#8230; is theo-tech exhilarating or exhausting? I find theo-tech to be 100 percent exhilarating! It&amp;#8217;s my passion, and I know without a doubt that this is my true calling. It can certainly be exhausting, but I find that is the case with just about everything. Simply having the opportunity to do what I do is truly a blessing and is exhilarating. LifeChurch.tv is so supportive of theo-tech, and understands the mission critical nature of leveraging technology for the Kingdom.&lt;/p&gt;

 &lt;hr /&gt;

	&lt;p&gt;&lt;strong&gt;Nathan:&lt;/strong&gt;&lt;/p&gt;

	&lt;p&gt;Along with &lt;a href="http://www.leaveitbehind.com/"&gt;Brian Bailey&lt;/a&gt;, you co-authored the book &lt;a href="http://amazon.com/dp/0787984876/"&gt;Blogging Church&lt;/a&gt;. It seems an unlikely topic for a printed text, yet is so relevant in our always-on, plugged-in society. What was it like writing that book, and how did the idea come to fruition?&lt;/p&gt;

	&lt;p&gt;&lt;strong&gt;Terry:&lt;/strong&gt;&lt;/p&gt;

	&lt;p&gt;I give Brian all of the credit for &amp;#8220;The Blogging Church.&amp;#8221; Brian was approached with the idea and frankly needed a &amp;#8220;pastor&amp;#8221; to partner with on the project, and there I was. We are great friends, and at that time we working together at &lt;a href="http://fellowshipchurch.com/"&gt;Fellowship Church&lt;/a&gt; in Grapevine, Texas. Our partnership was natural. Brian and I teamed up on the project, but in reality Brian was responsible for writing most of the book. My core role was the interviews, podcasts and some of the more relational necessities. As you can tell from this interview, I am not a writer!&lt;/p&gt;

	&lt;p&gt;When we began breaking down the concept, and really putting structure to the book, it quickly became challenging. We wanted to reach a wider audience than just the technology person, so we narrowed the focus of the book to focus on broader concepts, and higher level information. It was extremely important that we connected with church leaders and pastors. If we could reach and speak to them, we knew the technology geeks would ultimately appreciate it.&lt;/p&gt;

	&lt;p&gt;&amp;#8220;The Blogging Church&amp;#8221; was a great project, and we have seen and heard some awesome stories of how it has positively impacted so many churches and ministries.&lt;/p&gt;

 &lt;hr /&gt;

	&lt;p&gt;&lt;strong&gt;Nathan:&lt;/strong&gt;&lt;/p&gt;

	&lt;p&gt;Aside from being a mentor in a fast paced team environment, you also wear the pastor hat from time to time. How do you fulfill your professional duties and still manage to reserve enough time each week for your family? What advice do you have for other Christian professionals, trying to advance in their careers but also be true to their familial calling?&lt;/p&gt;

	&lt;p&gt;&lt;strong&gt;Terry:&lt;/strong&gt;&lt;/p&gt;

	&lt;p&gt;Honestly, I struggle in this area like so many others do. I am a natural work-a-holic. Then factor in that I love what I do and would be happy to do it 24×7 / 365 without blinking an eye, and you have a recipe for disaster! Nathan, it is sad to say, but after 10 years of marriage, and over a decade of working in ministry I am just now starting to get better. I have a beautiful wife and two young daughters that need me, and frankly they are much more important than my personal ministry or job.&lt;/p&gt;

	&lt;p&gt;Don&amp;#8217;t get me wrong, I still work very hard, and often I work a lot of hours. I think hard work is Biblical! However, several factors help to maintain a better sense of balance.&lt;/p&gt;

	&lt;p&gt;First, I have amazing people who I trust who speak truth to me; call me out when I need it; and mentor me. Some would call this accountability. I simply call them friends. They are guys that will kick my butt when I need it, and will encourage me when I need it. At the end of the day, these are guys that see me lay it all on the table. If you are reading this and you do not have those people in your life… &lt;span class="caps"&gt;YOU&lt;/span&gt; &lt;span class="caps"&gt;NEED&lt;/span&gt; IT!&lt;/p&gt;

	&lt;p&gt;Another key for me is, &amp;#8220;Being where I am.&amp;#8221; That sounds a little strange, but it is so true. I work very hard, and I still work a lot of hours. I have found that one of the most important things for me is to be very concious of when I am home with Robin or with my girls, and to actually &amp;#8220;BE &lt;span class="caps"&gt;THERE&lt;/span&gt;&amp;#8221; with them. It is so easy for me to physically be with them, but to mentally be somewhere else. So in the last 6 months I have been praying about this and working hard to be where I am. I still have a lot of work to do, but wow, this has been great for me.&lt;/p&gt;

 &lt;hr /&gt;

	&lt;p&gt;&lt;strong&gt;Nathan:&lt;/strong&gt;&lt;/p&gt;

	&lt;p&gt;The politics of code platforms can sometimes be as fierce as loyalty to a sports team or alma mater. I know that your team initially settled on &lt;a href="http://codeigniter.com/"&gt;CodeIgniter&lt;/a&gt; for your &lt;a href="http://php.net/"&gt;&lt;span class="caps"&gt;PHP&lt;/span&gt;&lt;/a&gt; needs, but seemed to use a variety of JS libraries. What decisions went into the selection of the various frameworks used at LifeChurch.tv?&lt;/p&gt;

	&lt;p&gt;&lt;strong&gt;Terry:&lt;/strong&gt;&lt;/p&gt;

	&lt;p&gt;I have a great team, and I trust them. I am not a micro-manager, or a granular leader, so most of those decisions involve me from a macro level. The team comes together at a micro level and will pull the trigger on it. My leadership filter usually asks the questions regarding aspects such as scale, speed of development, or whether we can we give it away, but I learned a long time ago to hire talented people and let them do what they do best.&lt;/p&gt;

	&lt;p&gt;We are now a &lt;a href="http://kohanaphp.com/home"&gt;Kohana &lt;span class="caps"&gt;PHP&lt;/span&gt;&lt;/a&gt; + &lt;a href="http://jquery.com/"&gt;jQuery&lt;/a&gt; shop. Technology changes so fast. I often remind the team that we are not married to any technology, and that we must stay focused on what is the best tool for the job, period. As I type this, a few of our developers and I are preparing to fly to San Francisco for a Google developers &lt;a href="http://code.google.com/events/io/"&gt;conference&lt;/a&gt;. So who knows what we will be developing with next week? &lt;a href="http://python.org/"&gt;Python&lt;/a&gt;, &lt;acronym title="Ruby on Rails"&gt;&lt;span class="caps"&gt;ROR&lt;/span&gt;&lt;/acronym&gt;? Who knows? I do know we will not be married to any of them.&lt;/p&gt;

 &lt;hr /&gt;

	&lt;p&gt;&lt;strong&gt;Nathan:&lt;/strong&gt;&lt;/p&gt;

	&lt;p&gt;What sort of planning process goes into the design and development of LifeChurch.tv ideas, including the flagship dot-tv site, as well as some of larger domains and one-off promotional sites? Do you guys use extensive wireframing, or just delve straight into design and code?&lt;/p&gt;

	&lt;p&gt;&lt;strong&gt;Terry:&lt;/strong&gt;&lt;/p&gt;

	&lt;p&gt;That is a great question, and the answer can be different on each project. My personal preference is the rapid development from design, but that does not always work depending on the size and scope of the project. Also, each team member brings their own style. I like that and the flexibility that it brings.&lt;/p&gt;

	&lt;p&gt;One thing that does not change is the &amp;#8220;marinating time&amp;#8221; on the white board. I am very visual, and the best way for me to flush out ideas and concepts requires large white boards with lots of colors. When I start drawing, something magical typically happens. Then we will go from the white board to some sort of high level scope document that will coincide with wireframes. After that, we move to design and to development.&lt;/p&gt;

	&lt;p&gt;I am a &lt;span class="caps"&gt;HUGE&lt;/span&gt; fan of 37signals&amp;#8217; book &lt;a href="https://gettingreal.37signals.com/"&gt;Getting Real&lt;/a&gt;, and recommend it to anyone who as not read it. Jason and his team really gets it, in my humble opinion.&lt;/p&gt;

 &lt;hr /&gt;

	&lt;p&gt;&lt;strong&gt;Nathan:&lt;/strong&gt;&lt;/p&gt;

	&lt;p&gt;I know you&amp;#8217;ve used outside contractors (such as &lt;a href="http://andyknight.com/"&gt;Andy Knight&lt;/a&gt;) to great effect in the past, but are currently on the lookout for in-house web design + JavaScript &lt;a href="http://www.lifechurch.tv/jobs"&gt;Jedi&lt;/a&gt;. How do you balance the workload of what gets handled by the internal LC team, and what you bring in third party resources to handle? What type of technical skills and spiritual maturity do you look for as a tech pastor?&lt;/p&gt;

	&lt;p&gt;&lt;strong&gt;Terry:&lt;/strong&gt;&lt;/p&gt;

	&lt;p&gt;As a team we often say we have more ideas than we have the ability to execute. I think that is just part of the &lt;acronym title="Deoxyribo Nucleic Acid"&gt;&lt;span class="caps"&gt;DNA&lt;/span&gt;&lt;/acronym&gt; when you in an innovative environment like LifeChurch.tv. What I have found in this type of environment, is that there is not a one size fits all model for project execution. We try to balance all aspects and ultimately strive toward being good stewards of the resources we have. That being said, I typically use insourcing mixed with outsourcing to achieve optimal results.&lt;/p&gt;

	&lt;p&gt;Frankly, we are always hiring for the Digerati team. Even when there are no official job openings posted we are always going to hire gifted and talented people that are passionate about leveraging technology to impact the Kingdom. If you are reading this right now and are interested in learning more, hit me on Twitter &lt;a href="http://twitter.com/terrystorch/"&gt;@terrystorch&lt;/a&gt;.&lt;/p&gt;

 &lt;hr /&gt;

	&lt;p&gt;&lt;strong&gt;Nathan:&lt;/strong&gt;&lt;/p&gt;

	&lt;p&gt;Your current focus is on &lt;a href="http://youversion.com/"&gt;YouVersion&lt;/a&gt;, which is a way for people to take and share notes on Bible verses, virtually writing in the margins their scriptural insights. Please share more of the vision behind this project, and where you see it going: mobile, and beyond.&lt;/p&gt;

	&lt;p&gt;&lt;strong&gt;Terry:&lt;/strong&gt;&lt;/p&gt;

	&lt;p&gt;Wow, YouVersion has blown our mind over the past year! This project started as a thought, and it quickly blew up into reality. Actually, it was less than 90 days quickly!&lt;/p&gt;

	&lt;p&gt;Honestly, YouVersion is one of the most exciting, and one of the most frustrating projects I&amp;#8217;ve worked on. It has had indescribable impact. The short version of the mission for YouVersion is &amp;#8220;scripture engagement.&amp;#8221; Over the past year we have seen the YouVersion.com website gain a lot of traction, and it has grown in an overwhelming way. Just yesterday we pushed out an update that took YouVersion to 31 Bible translations in 16 different languages.&lt;/p&gt;

	&lt;p&gt;Right now, a huge focus for the YouVersion team is language localization for all three current YouVersion properties (Web, Mobile, and iPhone). We are so passionate about localization we had to stop development for a bit, and build a dynamic localization tool for YouVersion. We needed a tool that would help us empower volunteers from around the globe to translate in a simple fashion. That tool is now functional and in the hands of our volunteer team, and we plan on rolling out localization to YV Mobile and the YV iPhone app really soon.&lt;/p&gt;

	&lt;p&gt;YouVersion Mobile is major effort for us because we believe there is great power when people have the Bible in the palm of their hands all the time, everywhere. A common statement we make is: &amp;#8220;The future is mobile, and the future is now!&amp;#8221; &lt;a href="http://m.youversion.com/"&gt;YouVersion Mobile&lt;/a&gt; debuted April 29th, and adoption has been lightning fast. I am not aware of any other Bibles available on your mobile device that are &lt;span class="caps"&gt;FREE&lt;/span&gt; and offer 31 Translations in 16 languages.&lt;/p&gt;

	&lt;p&gt;Then we have to look at the YouVersion iPhone Bible App! The only words that come to mind are &lt;span class="caps"&gt;HOLY&lt;/span&gt; &lt;span class="caps"&gt;COW&lt;/span&gt;! Here are the quick facts about the app as of Aug 30th. We launched July 11th, with 274,512 unique users who have spent 485,326 hours reading scripture.&lt;/p&gt;

	&lt;p&gt;Version 1.2 should release from the Apple App store very soon, and will include all currently available Bible Translations and languages. It will also be localized to English, French, German and Spanish and have A &lt;span class="caps"&gt;LOT&lt;/span&gt; of new and cool features. We have some amazing things coming down the pipe with the app, but our big focus is offline. We plan on releasing an offline version very, very soon.&lt;/p&gt;

 &lt;hr /&gt;

	&lt;p&gt;&lt;strong&gt;Nathan:&lt;/strong&gt;&lt;/p&gt;

	&lt;p&gt;Last but not least, please share your testimony. How did God get your attention, and show you the calling he had for your life? What has changed since you accepted Jesus as your Lord and Savior?&lt;/p&gt;

	&lt;p&gt;&lt;strong&gt;Terry:&lt;/strong&gt;&lt;/p&gt;

	&lt;p&gt;This be a long response, but I will try to make it as brief as possible. The bottom line for me is that I did not grow up in a Christian home. I didn&amp;#8217;t become a Christ follower until 1994, when I was 21. I was very, very spiritually lost, living a very, very spiritually lost life and found myself in a very, very empty parking lot of Ed Young&amp;#8217;s church on accident late one Saturday night. Sunday morning rolled around, and I decided to try it out. I had tried just about everything else, so what the heck. It was that day, my first day in church in who knows how many years that God used Ed to speak directly to me. I gave my life to Him, and my journey with Christ began.&lt;/p&gt;

	&lt;p&gt;Jesus messed me up! I started volunteering at the church like crazy. At the same time my business career was taking off like a rocket. The dotCOM days were really good to me those next few years, but there was just something &amp;#8220;different&amp;#8221; about volunteering at the church. I loved it!&lt;/p&gt;

	&lt;p&gt;After volunteering for almost 5 years, I joined the staff at Fellowship Church. FC was amazing, and the opportunity to serve under the leadership of &lt;a href="http://www.edyoung.com/"&gt;Ed Young&lt;/a&gt; was priceless. My passion for Christ grew, and my passion for leveraging technology to impact the world for Christ grew. In 2007 God &amp;#8220;moved&amp;#8221; our family, and we joined the LifeChurch.tv team, and Jesus is messing me up again. 6.684 billion people on this Earth, and they all need Jesus&amp;#8230; Thus begins the journey to leverage technology to reach them all!&lt;/p&gt;
&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/godbit?a=tkjvkL"&gt;&lt;img src="http://feeds.feedburner.com/~f/godbit?i=tkjvkL" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/godbit?a=SA1WKL"&gt;&lt;img src="http://feeds.feedburner.com/~f/godbit?i=SA1WKL" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content>
<feedburner:origLink>http://godbit.com/article/terry-storch</feedburner:origLink></entry>
<entry>
		<author>
			<name>Michael Montgomery</name>
		</author>
		<published>2008-08-11T19:10:28Z</published>
		<updated>2008-08-11T21:35:03Z</updated>
		<title type="html">EdgePoint Church</title>
		<link rel="alternate" type="text/html" href="http://feeds.feedburner.com/~r/godbit/~3/362311180/edgepoint-church" />
		<id>tag:godbit.com,2008-08-07:dba28755a1612b9985194aabbf4789dc/a6e9f7842f3574d7102a40f3a6a58fcb</id>
		
		
		<content type="html">
&lt;p class="align_center"&gt;&lt;strong&gt;&lt;span class="caps"&gt;URL&lt;/span&gt;:&lt;/strong&gt; &lt;a href="http://www.edgepointchurch.com/"&gt;edgepointchurch.com&lt;/a&gt;&lt;/p&gt;

	&lt;p&gt;&lt;a href="http://www.edgepointchurch.com/"&gt;EdgePoint Church&lt;/a&gt; are clearly going for a theme of &amp;#8220;church can be cool&amp;#8221;, and the website conveys this message well. The visual design is textured, layered and a bit grungy, presenting a cohesive atmosphere without going too far over the top.&lt;/p&gt;

	&lt;p&gt;The home page call-out &lt;strong&gt;(&amp;#8220;Don&amp;#8217;t Come Here&amp;#8212;For Regular Church&amp;#8221;)&lt;/strong&gt; is a bit edgy. That may not be my personal preference, but it works with the theme of the site.&lt;/p&gt;

	&lt;p&gt;The color palette sings in harmony and matches the theme. Typography is also well done, with effective and careful use of sIFR for headings. Images include transparent &lt;span class="caps"&gt;PNG&lt;/span&gt;s, with fixes for Internet Explorer. &lt;/p&gt;

	&lt;p&gt;Information architecture is clear and sensible, with obvious navigation throughout. One navigational challenge might be that two of the main nav bar items are duplicated in the three subsidiary call-outs (&lt;a href="http://www.edgepointchurch.com/directions"&gt;When &amp;amp; Where&lt;/a&gt;, &lt;a href="http://www.edgepointchurch.com/about"&gt;Are Jeans Evil?&lt;/a&gt;). Also, &lt;a href="http://www.edgepointchurch.com/about/kids"&gt;Kids Rock&lt;/a&gt; doesn&amp;#8217;t seem to match with the others.&lt;/p&gt;

	&lt;p&gt;The content is good overall, and the tone matches the theme perfectly. Some examples of nice touches: blog entries (which might not be frequent) are dated only by month. The photo gallery on many pages has snapshots of &amp;#8220;real people&amp;#8221;; always a plus. The lightbox effect attracts attention, and podcasts are well done. Same for the blog section: love that sticky note treatment.&lt;/p&gt;

	&lt;p&gt;&lt;a href="http://www.edgepointchurch.com/contact"&gt;Contact&lt;/a&gt; and &lt;a href="http://www.edgepointchurch.com/directions"&gt;Directions&lt;/a&gt; are well done, but I&amp;#8217;d add the contact information in &lt;span class="caps"&gt;SEO&lt;/span&gt;-friendly text somewhere on every page.&lt;/p&gt;

	&lt;p&gt;Some items for consideration:&lt;/p&gt;

	&lt;ul&gt;
		&lt;li&gt;Visual richness comes at a cost in page weight, with the &lt;a href="http://www.edgepointchurch.com/index.php"&gt;home page&lt;/a&gt; for example at over 950kb. Even with broadband, it takes a while for the main logo to render.&lt;/li&gt;
		&lt;li&gt;The &lt;a href="http://www.edgepointchurch.com/media"&gt;Media&lt;/a&gt; landing page seems a bit sparse, so perhaps add some thumbnails of each media type to the landing page?&lt;/li&gt;
		&lt;li&gt;Add some future events to the &amp;#8220;events&amp;#8221; box, or cause that box to disappear otherwise.&lt;/li&gt;
		&lt;li&gt;Without &lt;span class="caps"&gt;CSS&lt;/span&gt; support or images enabled, the primary name of the church doesn&amp;#8217;t show up.&lt;/li&gt;
		&lt;li&gt;A print stylesheet would be helpful, especially on the &lt;a href="http://www.edgepointchurch.com/blog"&gt;Blog&lt;/a&gt; section.&lt;/li&gt;
	&lt;/ul&gt;

	&lt;p&gt;Jonathan Longnecker and Nate Croft from &lt;a href="http://fortysevenmedia.com/"&gt;FortySeven Media&lt;/a&gt; built the site using Expression Engine, which is clearly used to their advantage.&lt;/p&gt;

	&lt;p&gt;Under the hood, the code is good throughout, with at least the home page valid to &lt;span class="caps"&gt;XHTML&lt;/span&gt; 1.0 Transitional. A few minor errors are scattered about some pages, including an some empty &lt;code&gt;ul&lt;/code&gt; elements, and the &lt;a href="http://www.edgepointchurch.com/blog"&gt;Blog&lt;/a&gt; has some extraneous ending &lt;code&gt;p&lt;/code&gt; tags. Personally, I&amp;#8217;d also prefer not to use class names like &amp;#8220;leftcol&amp;#8221; and &amp;#8220;rightbox&amp;#8221;. Of course, the site was launched a while ago, so many of these considerations might be handled differently now.&lt;/p&gt;

	&lt;p&gt;In an e-mail, Jonathan mentioned a few back-end features that aren&amp;#8217;t apparent from the outside:&lt;/p&gt;

	&lt;blockquote&gt;
		&lt;p&gt;The podcasting and Youtube integration is pretty cool. Podcasts can be uploaded and tagged in EE and that info feeds in to iTunes automatically. And for YouTube all they have to do is put in the 11 character identifier and EE takes care of the rest. &lt;/p&gt;
		&lt;p&gt;I&amp;#8217;m using the gallery modules for the pictures and lightbox to display them. Also a handy thumbnailing &lt;span class="caps"&gt;CSS&lt;/span&gt; trick so the thumbnails are all the same size. sIFR for the headlines, too.&lt;/p&gt;
	&lt;/blockquote&gt;

	&lt;p&gt;All in all, excellent work and a good job to Jon and Nate.&lt;/p&gt;

	&lt;p class="notice"&gt;&lt;strong&gt;Note:&lt;/strong&gt; Like all the church sites &lt;a href="http://godbit.com/featured"&gt;Featured&lt;/a&gt; here in the Godbit Project, &lt;a href="http://www.edgepointchurch.com/"&gt;edgepointchurch.com&lt;/a&gt; is a good example of a site that is well-designed and built. Any suggestions are hopefully constructive, and shouldn&amp;#8217;t imply that this reviewer could do any better. Personally, I have learned from each of the featured sites.&lt;/p&gt;
&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/godbit?a=hOeEzK"&gt;&lt;img src="http://feeds.feedburner.com/~f/godbit?i=hOeEzK" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/godbit?a=IIMZrK"&gt;&lt;img src="http://feeds.feedburner.com/~f/godbit?i=IIMZrK" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content>
<feedburner:origLink>http://godbit.com/featured/edgepoint-church</feedburner:origLink></entry>
<entry>
		<author>
			<name>Nathan Smith</name>
		</author>
		<published>2008-08-02T18:04:50Z</published>
		<updated>2008-08-02T18:12:59Z</updated>
		<title type="html">ALA Survey 2008</title>
		<link rel="alternate" type="text/html" href="http://feeds.feedburner.com/~r/godbit/~3/353731571/ala-survey-2008" />
		<id>tag:godbit.com,2008-08-02:dba28755a1612b9985194aabbf4789dc/a1ee0a263d44f055aa6e5a344a3447e2</id>
		<category term="General" />
		
		<content type="html">
&lt;p class="align_center"&gt;&lt;a href="http://alistapart.com/articles/survey2008"&gt;&lt;img src="http://godbit.com/images/191.gif" title="ALA Survey 2008" alt="ALA Survey 2008" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://alistapart.com/articles/survey2008"&gt;A List Apart &amp;#8211; 2008 Survey&lt;/a&gt;&lt;/p&gt;

	&lt;p&gt;If you work in information architecture, web design or development, be sure to take the A List Apart survey. Last year&amp;#8217;s was the first of its kind, and they are continuing the annual tradition. Maybe it&amp;#8217;s just me, but the questions seem a lot more streamlined this time around. So, just like &lt;a href="http://godbit.com/article/web-design-survey"&gt;last year&lt;/a&gt;, I am urging you to take about ten minutes and make sure to give your professional feedback. Your anonymous information will be used to compile an overview our industry. For instance, this is the distribution of job titles from last year&amp;#8217;s participants.&lt;/p&gt;

	&lt;p&gt;&lt;a href="http://www.alistapart.com/articles/2007surveyresults"&gt;&lt;img src="http://godbit.com/images/193.gif" title="2007 Job Titles" alt="2007 Job Titles" /&gt;&lt;/a&gt;&lt;/p&gt;

	&lt;p&gt;The findings of the 2007 survey were pretty cool, showing overall demographics such as age, salary breakdown, and education levels. The results of the survey were all bundled into a comprehensive &lt;acronym title="Portable Document Format"&gt;&lt;span class="caps"&gt;PDF&lt;/span&gt;&lt;/acronym&gt; &lt;a href="http://www.alistapart.com/articles/2007surveyresults"&gt;report&lt;/a&gt; that anyone can download. Here is an example of the varying degrees that people hold in our sector.&lt;/p&gt;

	&lt;p&gt;&lt;a href="http://www.alistapart.com/articles/2007surveyresults"&gt;&lt;img src="http://godbit.com/images/192.gif" title="2007 Education" alt="2007 Education" /&gt;&lt;/a&gt;&lt;/p&gt;

	&lt;p&gt;Personally, I am excited to see the results of this year&amp;#8217;s study, as they&amp;#8217;ve had time to refine their questions and iron out some of the kinks in the survey process. I also think it&amp;#8217;s good to have hard statistics to better understand what we do, and elevate the level of perceived esteem to that of other IT and creative jobs. If you work in a full time, part time, or volunteer capacity in or around web related processes, please ensure that your voice is heard. &lt;a href="http://alistapart.com/articles/survey2008"&gt;Take the survey&lt;/a&gt;.&lt;/p&gt;
&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/godbit?a=JA97dK"&gt;&lt;img src="http://feeds.feedburner.com/~f/godbit?i=JA97dK" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/godbit?a=V5NhsK"&gt;&lt;img src="http://feeds.feedburner.com/~f/godbit?i=V5NhsK" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content>
<feedburner:origLink>http://godbit.com/article/ala-survey-2008</feedburner:origLink></entry>
<entry>
		<author>
			<name>Yannick Lyn Fatt</name>
		</author>
		<published>2008-07-01T05:31:13Z</published>
		<updated>2008-07-01T05:31:13Z</updated>
		<title type="html">CodeIgniter Session Class</title>
		<link rel="alternate" type="text/html" href="http://feeds.feedburner.com/~r/godbit/~3/323793923/codeigniter-session-class" />
		<id>tag:godbit.com,2008-03-30:dba28755a1612b9985194aabbf4789dc/726c54dd2a6cb696358ffbe5cd5e727c</id>
		<category term="Tutorials" />
		
		<content type="html">
&lt;p&gt;In this tutorial we are going to take a look at the &lt;a href="http://codeigniter.com/user_guide/libraries/sessions.html"&gt;CodeIgniter Session Class&lt;/a&gt;, another core library that comes with CodeIgniter. From the CI Session class documentation:&lt;/p&gt;

	&lt;blockquote&gt;
		&lt;p&gt;The Session class permits you maintain a user&amp;#8217;s &amp;#8220;state&amp;#8221; and track their activity while they browse your site.&lt;/p&gt;
	&lt;/blockquote&gt;

	&lt;p&gt;An interesting point to note is that CI, does not use &lt;span class="caps"&gt;PHP&lt;/span&gt;&amp;#8217;s native session functions. Instead CI generates its own session data, which they say offers more flexibility to developers.&lt;/p&gt;

	&lt;p&gt;Today, we will be building a simple application which we will call &amp;#8220;MyCoolBibleApp&amp;#8221; and I&amp;#8217;ll demonstrate the usage of the Session class to store and retrieve data and also introduce Flashdata. Flashdata is simply session data that you only need for a single server request. Once that request is complete the flashdata is removed. Persons familiar with Ruby on Rails may know this as a &amp;#8216;Flash message&amp;#8217;.&lt;/p&gt;

	&lt;h2&gt;Initial Setup&lt;/h2&gt;

	&lt;p&gt;To begin, &lt;a href="http://codeigniter.com/download.php"&gt;get the latest version of CodeIgniter&lt;/a&gt;. At the time of this tutorial, CI 1.6.3 is the latest. Copy the files to a folder on your webserver and call it &lt;strong&gt;&amp;#8216;bibleapp&amp;#8217;&lt;/strong&gt;. Next, let us make a few changes to the &lt;strong&gt;config.php&lt;/strong&gt; and &lt;strong&gt;autoload.php&lt;/strong&gt; files. In config.php we need to tell CI the base &lt;span class="caps"&gt;URL&lt;/span&gt; of our application.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;$config[&amp;#39;base_url&amp;#39;]	= &amp;quot;http://localhost/bibleapp/&amp;quot;;
&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;and in &lt;strong&gt;autoload.php&lt;/strong&gt;, we will autoload the &amp;#8216;Session Class&amp;#8217; and the &amp;#8216;&lt;span class="caps"&gt;URL&lt;/span&gt;&amp;#8217; and &amp;#8216;Form&amp;#8217; helpers:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;$autoload[&amp;#39;libraries&amp;#39;] = array(&amp;#39;session&amp;#39;);
&lt;/code&gt;&lt;/pre&gt;

&lt;pre&gt;&lt;code&gt;$autoload[&amp;#39;helper&amp;#39;] = array(&amp;#39;form&amp;#39;, &amp;#39;url&amp;#39;);
&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;If you don&amp;#8217;t want to autoload the session class, you can instantiate it in your controllers as follows:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;$this-&amp;gt;load-&amp;gt;library(&amp;#39;session&amp;#39;);
&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;Now that we have the initial setup complete, let&amp;#8217;s move on to creating our controllers.&lt;/p&gt;

	&lt;h2&gt;Controllers&lt;/h2&gt;

	&lt;p&gt;For this tutorial we will only be needing two controllers. One for Login/Logout and the other to represent requests to the Dashboard of the application. Let us first look at the Login controller. Create a new controller called &lt;strong&gt;&amp;#8216;login.php&amp;#8217;&lt;/strong&gt; and place it in your &lt;strong&gt;system/application/controllers&lt;/strong&gt; folder. The code should look like this:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;&amp;lt;?php
class Login extends Controller {
&lt;/code&gt;
&lt;code&gt;	function Login()
	{
		parent::Controller();	
	}
&lt;/code&gt;
&lt;code&gt;	function index()
	{
	    if ($this-&amp;gt;session-&amp;gt;userdata(&amp;#39;logged_in&amp;#39;) == TRUE)
	    {
	        redirect(&amp;#39;dashboard/index&amp;#39;);
	    }
&lt;/code&gt;
&lt;code&gt;	    $data[&amp;#39;title&amp;#39;] = &amp;#39;MyCoolBibleApp&amp;#39;;
	    $data[&amp;#39;username&amp;#39;] = array(&amp;#39;id&amp;#39; =&amp;gt; &amp;#39;username&amp;#39;, &amp;#39;name&amp;#39; =&amp;gt; &amp;#39;username&amp;#39;);
	    $data[&amp;#39;password&amp;#39;] = array(&amp;#39;id&amp;#39; =&amp;gt; &amp;#39;password&amp;#39;, &amp;#39;name&amp;#39; =&amp;gt; &amp;#39;password&amp;#39;);	        
	    $this-&amp;gt;load-&amp;gt;view(&amp;#39;login&amp;#39;, $data);
	}
&lt;/code&gt;
&lt;code&gt;	function process_login()
	{
	    $username = $this-&amp;gt;input-&amp;gt;post(&amp;#39;username&amp;#39;);    
	    $password  = $this-&amp;gt;input-&amp;gt;post(&amp;#39;password&amp;#39;);
&lt;/code&gt;
&lt;code&gt;	    if ($username == &amp;#39;James&amp;#39; AND $password == &amp;#39;James1:12&amp;#39;)
	    {
	        $data = array(
                   &amp;#39;username&amp;#39;  =&amp;gt; $username,
                   &amp;#39;logged_in&amp;#39;  =&amp;gt; TRUE
                );
&lt;/code&gt;
&lt;code&gt;                $this-&amp;gt;session-&amp;gt;set_userdata($data);
&lt;/code&gt;
&lt;code&gt;                redirect(&amp;#39;dashboard/index&amp;#39;);
	    } 
	    else 
	    {
	        $this-&amp;gt;session-&amp;gt;set_flashdata(&amp;#39;message&amp;#39;, &amp;#39;&amp;lt;div id=&amp;quot;message&amp;quot;&amp;gt;Oopsie, it seems your username or password is incorrect, please try again.&amp;lt;/div&amp;gt;&amp;#39;);
	        redirect(&amp;#39;login/index&amp;#39;);
	    }
	}
&lt;/code&gt;
&lt;code&gt;	function logout()
	{
	    $this-&amp;gt;session-&amp;gt;sess_destroy();
&lt;/code&gt;
&lt;code&gt;	    redirect(&amp;#39;login/index&amp;#39;);
	}
}
?&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;Let&amp;#8217;s break that down. First you may notice we have three (3) methods, &lt;code&gt;index()&lt;/code&gt;, &lt;code&gt;process_login()&lt;/code&gt; and &lt;code&gt;logout()&lt;/code&gt;. The &lt;code&gt;index()&lt;/code&gt; method will contain our login form, &lt;code&gt;process_login()&lt;/code&gt; will handle and process the login attempt and &lt;code&gt;logout()&lt;/code&gt; will take care of logging the user out of the application.&lt;/p&gt;

	&lt;p&gt;In &lt;code&gt;index()&lt;/code&gt;, it checks a session variable called &lt;code&gt;logged_in&lt;/code&gt; to see if it is set to &lt;code&gt;TRUE&lt;/code&gt;. If it is, then we are already logged in and can proceed to the dashboard of the application. However, if it is &lt;code&gt;FALSE&lt;/code&gt;, then it continues and displays the login form.&lt;/p&gt;

	&lt;p&gt;While for &lt;code&gt;process_login()&lt;/code&gt;, we get the username and password typed in by the user and check if it matches the ones we&amp;#8217;ve hard coded into our application. Usually you would check a database, however, since this is just a simple example, we&amp;#8217;ll stick with the hard coded values. If the username and password are correct, we add some data to our session array and then redirect the user to the dashboard.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;$data = array(
                   &amp;#39;username&amp;#39;  =&amp;gt; $username,
                   &amp;#39;logged_in&amp;#39;  =&amp;gt; TRUE
                );
&lt;/code&gt;
&lt;code&gt;$this-&amp;gt;session-&amp;gt;set_userdata($data);
&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;The above code is what stores our session data. Here we store the username of the user and also assign &lt;code&gt;TRUE&lt;/code&gt; to our &lt;code&gt;logged_in&lt;/code&gt; variable so that the application knows that we have successfully logged in. While the &lt;code&gt;else&lt;/code&gt; condition sets the Flashdata which is used to display a message to the user if the username or password is incorrect:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;$this-&amp;gt;session-&amp;gt;set_flashdata(&amp;#39;message&amp;#39;, &amp;#39;&amp;lt;div id=&amp;quot;message&amp;quot;&amp;gt;Oopsie, it seems your username or password is incorrect, please try again.&amp;lt;/div&amp;gt;&amp;#39;);
&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;Note that the first parameter &amp;#8216;message&amp;#8217; is simply a key (or name) that we can use later to identify and retrieve the Flashdata from in our views. Also note that while I&amp;#8217;ve used Flashdata in this case to display an error message at logon, it is typically used for status messages such as &amp;#8216;Record 2 deleted&amp;#8217; or &amp;#8216;Verse successfully added&amp;#8217;.&lt;/p&gt;

	&lt;p&gt;The last method in our Login controller is &lt;code&gt;logout()&lt;/code&gt;. This method simply destroys the current session, thus, logging the user out of the application.&lt;/p&gt;

	&lt;p&gt;Next we create the Dashboard controller &lt;strong&gt;&amp;#8216;dashboard.php&amp;#8217;&lt;/strong&gt; again in our system/application/controllers/ folder. The code should be as follows:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;&amp;lt;?php
class Dashboard extends Controller {
&lt;/code&gt;
&lt;code&gt;	function Dashboard()
	{
		parent::Controller();	
	}
&lt;/code&gt;
&lt;code&gt;	function index()
	{
	    if ($this-&amp;gt;session-&amp;gt;userdata(&amp;#39;logged_in&amp;#39;) != TRUE)
	    {
	        redirect(&amp;#39;login/index&amp;#39;);
	    }
&lt;/code&gt;
&lt;code&gt;	    $data[&amp;#39;title&amp;#39;]  = &amp;#39;Dashboard | MyCoolBibleApp&amp;#39;;    
	    $this-&amp;gt;load-&amp;gt;view(&amp;#39;dashboard&amp;#39;, $data);
	}
}
?&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;This controller is pretty straightforward as we only have a single method called &lt;strong&gt;&amp;#8216;index()&amp;#8217;&lt;/strong&gt;. All this method does is check to see if the user is logged in. It checks the &lt;code&gt;logged_in&lt;/code&gt; session variable we set earlier in our Login class. If that variable is not equal to &lt;code&gt;TRUE&lt;/code&gt;, then redirect them to the login page, else, continue and display the dashboard for the application.&lt;/p&gt;

	&lt;p&gt;With our controllers now complete, let us create our views. This is what the user will see when they use our application.&lt;/p&gt;

	&lt;h2&gt;Views&lt;/h2&gt;

	&lt;p&gt;As the views are basically just (x)HTML with a few functions from the CI Form and &lt;span class="caps"&gt;URL&lt;/span&gt; helpers (which have been discussed in the &lt;a href="http://godbit.com/article/introduction-to-code-igniter"&gt;Introduction to CodeIgniter series&lt;/a&gt;), I won&amp;#8217;t go into too much detail. Also note that both the &amp;#8216;header.php&amp;#8217; and &amp;#8216;footer.php&amp;#8217; views just contain the &lt;span class="caps"&gt;HTML&lt;/span&gt; code that would be common to all pages in the application (which can be found in the sample code available for this tutorial).&lt;/p&gt;

	&lt;p&gt;Our &lt;strong&gt;login.php&lt;/strong&gt; view is as follows:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;&amp;lt;?php echo $this-&amp;gt;load-&amp;gt;view(&amp;#39;header&amp;#39;); ?&amp;gt;
&amp;lt;?php echo form_open(&amp;#39;login/process_login&amp;#39;) . &amp;quot;\n&amp;quot;; ?&amp;gt;
    &amp;lt;?php echo form_fieldset(&amp;#39;Login&amp;#39;) . &amp;quot;\n&amp;quot;; ?&amp;gt;
&lt;/code&gt;
&lt;code&gt;        &amp;lt;?php echo $this-&amp;gt;session-&amp;gt;flashdata(&amp;#39;message&amp;#39;); ?&amp;gt;
&lt;/code&gt;
&lt;code&gt;        &amp;lt;p&amp;gt;&amp;lt;label for=&amp;quot;username&amp;quot;&amp;gt;Username: &amp;lt;/label&amp;gt;&amp;lt;?php echo form_input($username); ?&amp;gt;&amp;lt;/p&amp;gt;
        &amp;lt;p&amp;gt;&amp;lt;label for=&amp;quot;password&amp;quot;&amp;gt;Password: &amp;lt;/label&amp;gt;&amp;lt;?php echo form_password($password); ?&amp;gt;&amp;lt;/p&amp;gt;
        &amp;lt;p&amp;gt;&amp;lt;?php echo form_submit(&amp;#39;login&amp;#39;, &amp;#39;Login&amp;#39;); ?&amp;gt;&amp;lt;/p&amp;gt;
    &amp;lt;?php echo form_fieldset_close(); ?&amp;gt;
&amp;lt;?php echo form_close(); ?&amp;gt;
&amp;lt;?php echo $this-&amp;gt;load-&amp;gt;view(&amp;#39;footer&amp;#39;); ?&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;The only thing new here is how we retrieve our session flashdata. As you may recall, if the user&amp;#8217;s login credentials are incorrect they are sent back to the login page and a message is displayed letting them know what went wrong. To retrieve that session flashdata, CI uses the following:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;$this-&amp;gt;session-&amp;gt;flashdata(&amp;#39;message&amp;#39;);
&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;The key &amp;#8216;message&amp;#8217; here represents the key which was assigned to the flashdata in our Login controller.&lt;/p&gt;

	&lt;p&gt;Our &lt;strong&gt;dashboard.php&lt;/strong&gt; view is as follows;&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;&amp;lt;?php echo $this-&amp;gt;load-&amp;gt;view(&amp;#39;header&amp;#39;); ?&amp;gt;
    &amp;lt;h3&amp;gt;Current Memory Verse &amp;lt;span&amp;gt;08.04.2008&amp;lt;/span&amp;gt;&amp;lt;/h3&amp;gt;
    &amp;lt;blockquote&amp;gt;&amp;amp;ldquo;Blessed is the man who perseveres under trial, because when he has stood the test, he will receive the crown of life that God has promised to those who love him.&amp;amp;rdquo;&amp;lt;/blockquote&amp;gt;
    &amp;lt;p&amp;gt;&amp;lt;a href=&amp;quot;http://www.biblegateway.com/passage/?search=James%201:12;&amp;amp;version=31;&amp;quot; class=&amp;quot;bibleref&amp;quot;&amp;gt;James 1:12&amp;lt;/a&amp;gt; &amp;lt;acronym title=&amp;quot;New International Version&amp;quot;&amp;gt;NIV&amp;lt;/acronym&amp;gt;&amp;lt;/p&amp;gt;
&lt;/code&gt;
&lt;code&gt;    &amp;lt;p&amp;gt;&amp;lt;img src=&amp;quot;&amp;lt;?php echo base_url(); ?&amp;gt;images/bible.jpg&amp;quot; alt=&amp;quot;Bible&amp;quot; /&amp;gt;&amp;lt;/p&amp;gt;
&lt;/code&gt;
&lt;code&gt;    &amp;lt;h4&amp;gt;Previous Verses&amp;lt;/h4&amp;gt;
    &amp;lt;dl id=&amp;quot;archives&amp;quot;&amp;gt;
        &amp;lt;dt&amp;gt;31.03.2008&amp;lt;/dt&amp;gt;&amp;lt;dd&amp;gt;&amp;lt;a href=&amp;quot;http://www.biblegateway.com/passage/?version=31&amp;amp;search=1%20John%203:16&amp;quot; class=&amp;quot;bibleref&amp;quot;&amp;gt;1 John 3:16&amp;lt;/a&amp;gt;&amp;lt;/dd&amp;gt;
        &amp;lt;dt&amp;gt;24.03.2008&amp;lt;/dt&amp;gt;&amp;lt;dd&amp;gt;&amp;lt;a href=&amp;quot;http://www.biblegateway.com/passage/?book_id=5&amp;amp;chapter=9&amp;amp;verse=19&amp;amp;version=31&amp;quot; class=&amp;quot;bibleref&amp;quot;&amp;gt;Deuteronomy 9:19&amp;lt;/a&amp;gt;&amp;lt;/dd&amp;gt;
        &amp;lt;dt&amp;gt;17.04.2008&amp;lt;/dt&amp;gt;&amp;lt;dd&amp;gt;&amp;lt;a href=&amp;quot;http://www.biblegateway.com/passage/?search=Psalm+37%3A7&amp;amp;version=31&amp;quot; class=&amp;quot;bibleref&amp;quot;&amp;gt;Psalm 37:7&amp;lt;/a&amp;gt;&amp;lt;/dd&amp;gt;
        &amp;lt;dt&amp;gt;10.04.2008&amp;lt;/dt&amp;gt;&amp;lt;dd&amp;gt;&amp;lt;a href=&amp;quot;http://www.biblegateway.com/passage/?search=John+12%3A46&amp;amp;version=31&amp;quot; class=&amp;quot;bibleref&amp;quot;&amp;gt;John 12:46&amp;lt;/a&amp;gt;&amp;lt;/dd&amp;gt;
        &amp;lt;dt&amp;gt;03.04.2008&amp;lt;/dt&amp;gt;&amp;lt;dd&amp;gt;&amp;lt;a href=&amp;quot;http://www.biblegateway.com/passage/?search=Exodus+20%3A2-3&amp;amp;version=31&amp;quot; class=&amp;quot;bibleref&amp;quot;&amp;gt;Exodus 20:2-3&amp;lt;/a&amp;gt;&amp;lt;/dd&amp;gt;
    &amp;lt;/dl&amp;gt;
&amp;lt;?php echo $this-&amp;gt;load-&amp;gt;view(&amp;#39;footer&amp;#39;); ?&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;Again this is pretty easy to follow. The only thing new is how we retrieve and display the username of the user who just signed in. We do this by using the following:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;$this-&amp;gt;session-&amp;gt;userdata(&amp;#39;username&amp;#39;);
&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;Now that our views are complete, let us give our application a try.&lt;/p&gt;

	&lt;h2&gt;Running the Application&lt;/h2&gt;

	&lt;p&gt;To run the applcation, open your browser and visit the &lt;span class="caps"&gt;URL&lt;/span&gt; of the application. You might remember that we had set the base &lt;span class="caps"&gt;URL&lt;/span&gt; in our configuration earlier. So head to that address:&lt;/p&gt;

	&lt;p&gt;&lt;a href="http://localhost/bibleapp/"&gt;http://localhost/bibleapp/&lt;/a&gt;&lt;/p&gt;

	&lt;p&gt;You should see the standard welcome page that comes with CI. As we want our login page to show up by default, we have to change the default controller used by our application. To do this open &lt;strong&gt;&amp;#8216;routes.php&amp;#8217;&lt;/strong&gt; located in &lt;strong&gt;system/application/config/&lt;/strong&gt; and change &lt;code&gt;$route[&amp;#39;default_controller&amp;#39;]&lt;/code&gt; to the following:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;$route[&amp;#39;default_controller&amp;#39;] = &amp;quot;login&amp;quot;;
&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;Now if you visit the above &lt;span class="caps"&gt;URL&lt;/span&gt; again you should see your login form.&lt;/p&gt;

	&lt;p&gt;Next try to login. Enter an incorrect username and password so we can see the flashdata display our error message. The following message should show up:&lt;/p&gt;

	&lt;blockquote&gt;
		&lt;p&gt;Oopsie, it seems your username or password is incorrect, please try again.&lt;/p&gt;
	&lt;/blockquote&gt;

	&lt;p&gt;Now try entering the correct username and password. In the case of this application we hard coded the credentials to be username &amp;#8216;James&amp;#8217; and password &amp;#8216;James1:12&amp;#8217; (without the quotes). In a real application you would of course allow the user to have their own username and password and probably check their credentials in a database.&lt;/p&gt;

	&lt;p&gt;If all goes well you should now see the application dashboard, displaying a picture of the user, the username, current memory verse and some previous verses. Pretty cool huh?&lt;/p&gt;

	&lt;p&gt;Before we close this tutorial, log out of the application using the &lt;strong&gt;Log out&lt;/strong&gt; link and you should be sent back to the login page and the session data should now be removed. If you then attempt to go directly to the dashboard without logging in again, it will send you back to the login screen.&lt;/p&gt;

	&lt;h2&gt;Summary&lt;/h2&gt;

	&lt;p&gt;So what have we learnt today? We learnt how to build a simple application that stores and retrieves session data using CI&amp;#8217;s Session Class. We also used flashdata to display a message to the user if an incorrect username or password was entered on the login page.&lt;/p&gt;

	&lt;p&gt;While we didn&amp;#8217;t cover storing session data in a database in this tutorial, it is certainly worth looking into and you can read more about doing this via the &lt;a href="http://codeigniter.com/user_guide/libraries/sessions.html"&gt;CI Session class documentation&lt;/a&gt; .&lt;/p&gt;

	&lt;p&gt;I hope you found this tutorial helpful. Peace and God bless.&lt;/p&gt;

	&lt;p&gt;The code for this tutorial is also available for download: &lt;a href="http://www.godbit.com/files/codeigniter-bibleapp.zip"&gt;codeigniter-bibleapp.zip&lt;/a&gt;&lt;/p&gt;
&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/godbit?a=pOMs1J"&gt;&lt;img src="http://feeds.feedburner.com/~f/godbit?i=pOMs1J" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/godbit?a=kQJYMJ"&gt;&lt;img src="http://feeds.feedburner.com/~f/godbit?i=kQJYMJ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content>
<feedburner:origLink>http://godbit.com/article/codeigniter-session-class</feedburner:origLink></entry>
<entry>
		<author>
			<name>Nathan Smith</name>
		</author>
		<published>2008-06-30T01:47:04Z</published>
		<updated>2008-06-30T01:47:04Z</updated>
		<title type="html">Nate Klaiber</title>
		<link rel="alternate" type="text/html" href="http://feeds.feedburner.com/~r/godbit/~3/322903477/nate-klaiber" />
		<id>tag:godbit.com,2008-06-29:dba28755a1612b9985194aabbf4789dc/564edce919246f7e1db5e6d2cd062638</id>
		<category term="Interviews" />
		
		<content type="html">
&lt;p&gt;&lt;a href="http://www.nateklaiber.com/"&gt;&lt;img src="http://godbit.com/images/189.jpg" class="picture" title="Nate Klaiber" alt="Nate Klaiber" /&gt;&lt;/a&gt; &lt;a href="http://www.nateklaiber.com/"&gt;Nate Klaiber&lt;/a&gt; is marketing director at &lt;a href="http://www.clearfunction.com/"&gt;Clear Function&lt;/a&gt;, the company behind the content management system &lt;a href="http://reflectyoursite.com/"&gt;Reflect&lt;/a&gt;, and finance flow tracking application &lt;a href="http://pulseapp.com/"&gt;Pulse&lt;/a&gt;. He is also a &lt;a href="http://www.zend.com/en/services/certification/"&gt;Zend&lt;/a&gt; certified &lt;span class="caps"&gt;PHP&lt;/span&gt; engineer, but these days mainly works in Ruby on Rails. Though he is quite a busy guy, I asked if he would spare some time to answer a few questions for a Godbit interview. Thankfully, he obliged. Here are his thoughts on ministry, business and web development.&lt;/p&gt;

 &lt;hr /&gt;

	&lt;p&gt;&lt;strong&gt;Nathan:&lt;/strong&gt;&lt;/p&gt;

	&lt;p&gt;You attended &lt;a href="http://www.mvnu.edu/"&gt;Mt. Vernon Nazarene University&lt;/a&gt;, and graduated with a degree in Youth Ministries and a minor in Business Administration. How exactly did you get your start as a web developer, and what prompted the change in career focus?&lt;/p&gt;

	&lt;p&gt;&lt;strong&gt;Nate K:&lt;/strong&gt;&lt;/p&gt;

	&lt;p&gt;My roommate in college worked at a local church that his brother-in-law started. The worship leader there was active with Christian Endeavor International and was the founder of &lt;a href="http://teamce.com/"&gt;teamce.com&lt;/a&gt;. TeamCE was a resource for youth leaders around the globe and the main office was in Mount Vernon, OH. I was initially hired to help with some small graphical work and doing some photography for some of the marketing materials. This then led into working on their website. I started working on their website right about the time they were re-building it from scratch, so it was good experience to be a part of that process. My passion for the web grew from that point forward.&lt;/p&gt;

 &lt;hr /&gt;

	&lt;p&gt;&lt;strong&gt;Nathan:&lt;/strong&gt;&lt;/p&gt;

	&lt;p&gt;Your current job title is Marketing Director at Clear Function. Given your programming background, how does this work? Do you still write a fair amount of code, or is it all fancy client lunches and cushy leather sofas?&lt;/p&gt;

	&lt;p&gt;&lt;strong&gt;Nate K:&lt;/strong&gt;&lt;/p&gt;

	&lt;p&gt;Clear Function is comprised of three people. Aaron is our interface designer, &lt;span class="caps"&gt;HTML&lt;/span&gt; and &lt;span class="caps"&gt;CSS&lt;/span&gt; guy. Stephen (who I met through my years working at TeamCE) is a programmer and sysadmin/hardware guy. While working at &lt;a href="http://www.barbourbooks.com/"&gt;Barbour Publishing&lt;/a&gt;, I worked directly with the marketing department to help achieve our business goals. I guess my role there led to my title at Clear Function. However, my real background and passion lies in the programming side of things. I made the transition from &lt;a href="http://php.net/"&gt;&lt;span class="caps"&gt;PHP&lt;/span&gt;&lt;/a&gt; to &lt;a href="http://www.ruby-lang.org/"&gt;Ruby&lt;/a&gt; when I came on board with Clear Function, and fell in love with the language. So, to answer your question &amp;#8211; I spend the majority of my time actually writing code. Our fancy lunches consist of Gus&amp;#8217;s Chicken and our chairs fall apart most of the time.&lt;/p&gt;

 &lt;hr /&gt;

	&lt;p&gt;&lt;a href="http://reflectyoursite.com/"&gt;&lt;img src="http://godbit.com/images/190.jpg" title="Reflect CMS" alt="Reflect CMS" /&gt;&lt;/a&gt;&lt;/p&gt;

	&lt;p&gt;&lt;strong&gt;Nathan:&lt;/strong&gt;&lt;/p&gt;

	&lt;p&gt;What is this &lt;a href="http://reflectyoursite.com/"&gt;Reflect&lt;/a&gt; &lt;span class="caps"&gt;CMS&lt;/span&gt; that I keep hearing about? How does it stack up against popular commercial &lt;span class="caps"&gt;PHP&lt;/span&gt; driven systems, such as &lt;a href="http://expressionengine.com/"&gt;ExpressionEngine&lt;/a&gt;? Also, compare and contrast hosted platforms versus installed content management solutions.&lt;/p&gt;

	&lt;p&gt;&lt;strong&gt;Nate K:&lt;/strong&gt;&lt;/p&gt;

	&lt;p&gt;Reflect was built out of our need for something more intuitive. The idea started and blossomed with Stephen and Aaron, and then when I came on board I jumped head first into the project. As a designer, Aaron had tried out many different &lt;span class="caps"&gt;CMS&lt;/span&gt;&amp;#8217;s available. It&amp;#8217;s not that they are bad &lt;span class="caps"&gt;CMS&lt;/span&gt;&amp;#8217;s, they just didn&amp;#8217;t fill the need that we had with our client sites. We built it to sort of scratch our own itch and to help streamline our development processes.&lt;/p&gt;

	&lt;p&gt;&lt;span class="caps"&gt;PHP&lt;/span&gt; &lt;span class="caps"&gt;CMS&lt;/span&gt;&amp;#8217;s are in abundance. That is a good thing. There are many that fit a specific content need, and others that extend a little further. I would put ExpressionEngine in the category that goes a little further. Reflect is a niche &lt;span class="caps"&gt;CMS&lt;/span&gt;. It won&amp;#8217;t be suited for everyone. We believe we have a solid product with the necessary features to handle things like blogging, photo galleries, video galleries, and even the ability to create your own custom modules. Reflect doesn&amp;#8217;t mix different templating options. We use &lt;a href="http://www.liquidmarkup.org/"&gt;Liquid Markup&lt;/a&gt; for our templating language which we feel is very powerful and intuitive to the designer. Aaron needs to spend time on putting the designs and templates together, not figuring out how to make a language work for him &amp;#8211; so he has enjoyed working with Liquid as a designer.&lt;/p&gt;

	&lt;p&gt;As a small team this was sort of a no-brainer for us. The hosted solution is the much better option. When you deal with installed systems, you have to deal with much more maintenance. You have to deal with backwards compatibility. You have to deal with an array of different hardware and software configurations. You have to deal with different versions of whatever language you choose to write the application in. You have to deal with security at a different level.&lt;/p&gt;

	&lt;p&gt;Being the small team we are, we have to be protective of our time and investment into this project. Going the hosted solution route allows us to avoid the conflicts presented above. We have control of the application and it&amp;#8217;s intended use. We have control over the hardware used to run the system. We have control over the software and language used to build the application. We have control over the source code and security mechanisms. It helps us stay on task, and keeps everyone using Reflect on a level playing field.&lt;/p&gt;

 &lt;hr /&gt;

	&lt;p&gt;&lt;strong&gt;Nathan:&lt;/strong&gt;&lt;/p&gt;

	&lt;p&gt;You are a Zend Certified Engineer, basically a member of the knighthood of &lt;span class="caps"&gt;PHP&lt;/span&gt; gurus. Now that you&amp;#8217;re working primarily with Ruby on Rails, how has your experience been? Any scalability issues, or has it all been smooth sailing? Is there anything you miss about &lt;span class="caps"&gt;PHP&lt;/span&gt;?&lt;/p&gt;

	&lt;p&gt;&lt;strong&gt;Nate K:&lt;/strong&gt;&lt;/p&gt;

	&lt;p&gt;Working with Ruby has really helped me to become a better &lt;span class="caps"&gt;PHP&lt;/span&gt; programmer. I still enjoy &lt;span class="caps"&gt;PHP&lt;/span&gt; and think it is an incredibly powerful language. I think amidst language wars people miss the point of the languages and what they were created to do. I have yet to see any scalability issues with the Rails apps we have deployed. I think that is attributed to several things. First off is finding a good host that is solid and offers you the flexibility you desire. Second is having the knowledge of how to best deploy the different applications.&lt;/p&gt;

	&lt;p&gt;Deployment and scaling are things that Stephen takes care of, and I think he does an incredible job of knowing the tools available and utilizing them in the proper context. This goes for any language. &lt;span class="caps"&gt;PHP&lt;/span&gt; can be put on a sub-par host with a poor setup and fail just as fast as a Rails app could when not configured properly. I still consider Ruby to be in its infancy on the web compared to a language like &lt;span class="caps"&gt;PHP&lt;/span&gt;. &lt;span class="caps"&gt;PHP&lt;/span&gt; had to jump through some of the same hoops and solve some problems of their own. &lt;/p&gt;

	&lt;p&gt;At the end of the day, it is about using the right tools for the job. And, while I enjoy &lt;span class="caps"&gt;PHP&lt;/span&gt;, I can&amp;#8217;t say there is much I miss about it. Working with Ruby inspires me to translate some of it&amp;#8217;s features to &lt;span class="caps"&gt;PHP&lt;/span&gt;. I think this is where &lt;a href="http://cakephp.org/"&gt;CakePHP&lt;/a&gt; stems from, working from the Ruby on Rails model and translating it to &lt;span class="caps"&gt;PHP&lt;/span&gt;.&lt;/p&gt;

 &lt;hr /&gt;

	&lt;p&gt;&lt;strong&gt;Nathan:&lt;/strong&gt;&lt;/p&gt;

	&lt;p&gt;Having worked for a Christian publishing company in the past, how did you strike a balance between using new media to facilitate the sales of more classical texts? Was there ever tension between the worlds of digital and print?&lt;/p&gt;

	&lt;p&gt;&lt;strong&gt;Nate K:&lt;/strong&gt;&lt;/p&gt;

	&lt;p&gt;That balance wasn&amp;#8217;t always easy to find. The nature of the web allowed us to be more flexible in accordance with our business goals and needs. We had to be careful in how we utilized different tools, as our target market was not always one on the cutting edge of things. If we tried to stay on the bleeding edge of things, we would have been doing a disservice to our target market. &lt;/p&gt;

	&lt;p&gt;There were different tensions between the two. That is why it was extremely important to work closely with our marketing department to correlate our online and offline strategies. Even smaller marketing campaigns had to be coordinated effectively with special entry &lt;span class="caps"&gt;URL&lt;/span&gt;&amp;#8217;s so we could do our best to track our offline marketing efforts and translate them to our online traffic and website usage.&lt;/p&gt;

 &lt;hr /&gt;

	&lt;p&gt;&lt;strong&gt;Nathan:&lt;/strong&gt;&lt;/p&gt;

	&lt;p&gt;Please describe how a relationship with Jesus has shaped your life, and describe what you think that might look like in the future.&lt;/p&gt;

	&lt;p&gt;&lt;strong&gt;Nate K:&lt;/strong&gt;&lt;/p&gt;

	&lt;p&gt;Without writing a book on the topic, I will say this: I try and live my life with love and care for others. My relationship with Jesus is translated in my relationship with others. This was the example of Jesus in the New Testament. This was the Redemption story. I try not to get hung up on the political and legalistic side of things. That just isn&amp;#8217;t me. &lt;/p&gt;

	&lt;p&gt;While in college I had some great professors/mentors who constantly stretched me philosophically and theologically. Now that I have been out of college, I strive to continually learn and stretch myself. My philosophy of ministry now is drastically different from what it was 5-8 years ago. &lt;/p&gt;

	&lt;p&gt;I have always been a very passionate person no matter what I was doing. Just as in my professional life, I strive to continually learn and stretch myself. All of this comes from relationships and dialogue with others. It comes from reading. It comes from writing. It comes from listening. What will this look like in the future? I am not sure at this point. I do know that the core of my beliefs stem from solid relationships with people. Really getting to know and understand people. Being able to put myself in other people&amp;#8217;s shoes and understand things from a different context. This aspect of my life will never change.&lt;/p&gt;
&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/godbit?a=t0jOxI"&gt;&lt;img src="http://feeds.feedburner.com/~f/godbit?i=t0jOxI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/godbit?a=bfZdII"&gt;&lt;img src="http://feeds.feedburner.com/~f/godbit?i=bfZdII" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content>
<feedburner:origLink>http://godbit.com/article/nate-klaiber</feedburner:origLink></entry></feed>
