<?xml version="1.0" encoding="UTF-8"?> <rss
version="2.0"
xmlns:content="http://purl.org/rss/1.0/modules/content/"
xmlns:wfw="http://wellformedweb.org/CommentAPI/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:atom="http://www.w3.org/2005/Atom"
xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
><channel><title>Degrama - Online Superstars</title> <atom:link href="http://www.degrama.com/feed/" rel="self" type="application/rss+xml" /><link>http://www.degrama.com</link> <description></description> <lastBuildDate>Sun, 18 Jul 2010 17:35:18 +0000</lastBuildDate> <language>en</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <generator>http://wordpress.org/?v=3.0</generator> <item><title>Introduction to HTML 5</title><link>http://www.degrama.com/development/introduction-to-html-5/</link> <comments>http://www.degrama.com/development/introduction-to-html-5/#comments</comments> <pubDate>Sun, 18 Jul 2010 16:45:19 +0000</pubDate> <dc:creator>Degrama</dc:creator> <category><![CDATA[Development]]></category> <category><![CDATA[HTML5]]></category><guid
isPermaLink="false">http://www.degrama.com/?p=707</guid> <description><![CDATA[If you want to know what&#8217;s new in HTML 5 but haven&#8217;t had a chance to do much reading on the topic yet, this video by Brad Neuberg provides a solid introduction to HTML 5&#8242;s most powerful capabilities and features. In this presentation he discusses five aspects of the HTML5 spec: (1) Canvas and SVG; [...]]]></description> <content:encoded><![CDATA[<p>If you want to know what&#8217;s new in HTML 5 but haven&#8217;t had a chance to do much reading on the topic yet, this video by Brad Neuberg provides a solid introduction to HTML 5&#8242;s most powerful capabilities and features. In this presentation he discusses five aspects of the HTML5 spec: (1) Canvas and SVG; (2) HTML5 Video; (3) The Geolocation API; (4) The HTML5 database and application cache; and (5) Web Workers.</p><p>This is a great video and a must-see for anyone that wants to start building powerful web apps using HTML5&#8242;s newest features.</p><p><object
width="400" height="300"><param
name="allowfullscreen" value="true" /><param
name="allowscriptaccess" value="always" /><param
name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=6691519&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" /><embed
src="http://vimeo.com/moogaloop.swf?clip_id=6691519&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="400" height="300"></embed></object><p><a
href="http://vimeo.com/6691519">Introduction to HTML 5</a> from <a
href="http://vimeo.com/user1005914">Brad Neuberg</a> on <a
href="http://vimeo.com">Vimeo</a>.</p><p>HTML Cheat sheet [<a
target="_blank" title="HTML Cheat Sheet" href="http://www.degrama.com/wp-content/uploads/HTML5_Canvas_Cheat_Sheet.png">download</a>]</p> ]]></content:encoded> <wfw:commentRss>http://www.degrama.com/development/introduction-to-html-5/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Avoid A Reactionary Workflow</title><link>http://www.degrama.com/workflow/avoid-a-reactionary-workflow/</link> <comments>http://www.degrama.com/workflow/avoid-a-reactionary-workflow/#comments</comments> <pubDate>Sun, 18 Jul 2010 16:38:34 +0000</pubDate> <dc:creator>Degrama</dc:creator> <category><![CDATA[Workflow]]></category> <category><![CDATA[Communication]]></category><guid
isPermaLink="false">http://www.degrama.com/?p=441</guid> <description><![CDATA[Congrats, you are reading this because you are constantly blasted with incoming email, text messages, tweets, Facebook posts, phone calls, instant messages, etc. Most of us spend the majority of our day and energy simply reacting to overwhelming amounts of incoming items. To avoid this massive energy sink, we suggest having two or three hours [...]]]></description> <content:encoded><![CDATA[<p>Congrats, you are reading this because you are constantly blasted with incoming email, text messages, tweets, Facebook posts, phone calls, instant messages, etc. Most of us spend the majority of our day and energy simply reacting to overwhelming amounts of incoming items.</p><p>To avoid this massive energy sink, we suggest having two or three hours per day of &#8220;non-stimulation&#8221; in your day. If you are a busy individual simply try starting off with one hour and test your results.</p><p>To  avoid this reactionary workflow, some of the most productive people I  have met schedule what can be called “windows of non-stimulation” in  their day. For two to three hours per day, these people avoid email and  all other incoming communication. In this time, they focus on their list  of big items: not routine tasks, but long-term projects that require  research and deep thought.</p><p>Another idea is to aggregate all  messages in a central location. Setting your social networks to email  you, and using filters to automatically manage these emails, will reduce  your “hopping time” (when you hop between sources of communication) and  focus your attention. Some people even have their voice mails  transcribed automatically and forwarded by email. In a world of many  inboxes, you have to consolidate.</p> ]]></content:encoded> <wfw:commentRss>http://www.degrama.com/workflow/avoid-a-reactionary-workflow/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Teacher Training Center</title><link>http://www.degrama.com/portfolio/ttc/</link> <comments>http://www.degrama.com/portfolio/ttc/#comments</comments> <pubDate>Thu, 17 Jun 2010 15:30:27 +0000</pubDate> <dc:creator>Degrama</dc:creator> <category><![CDATA[Our Work]]></category> <category><![CDATA[Portfolio]]></category><guid
isPermaLink="false">http://www.degrama.com/?p=443</guid> <description><![CDATA[Teacher Training Center (TTC) required our expert search engine optimization experience. We continue to support and provide excellent customer service to Teacher Training Center. If you like our work please contact us for more information and a free quote. Visit Teacher Training Center Website]]></description> <content:encoded><![CDATA[<p>Teacher Training Center (TTC) required our expert search engine optimization experience. We continue to support and provide excellent customer service to Teacher Training Center. If you like our work please <a
href="http://www.degrama.com/contact/">contact us</a> for more information and a <a
title="Free Quote" href="http://www.degrama.com/free-quote/">free quote</a>.</p><p><a
title="Visit Website" href="http://teachertrainingcenter.org" target="_blank"><strong>Visit Teacher Training Center Website</strong></a></p><p><strong><span
style="font-weight: normal;"><a
class="img rounded" href="http://teachertrainingcenter.org"><img
title="search-engine-optimization-teacher-training-center" src="http://www.degrama.com/wp-content/uploads/search-engine-optimization-teacher-training-center.jpg" alt="Search Engine Optimization" width="556" height="403" /></a></span></strong></p> ]]></content:encoded> <wfw:commentRss>http://www.degrama.com/portfolio/ttc/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Website Architecture</title><link>http://www.degrama.com/development/website-architecture/</link> <comments>http://www.degrama.com/development/website-architecture/#comments</comments> <pubDate>Mon, 22 Mar 2010 03:35:33 +0000</pubDate> <dc:creator>Degrama</dc:creator> <category><![CDATA[Development]]></category><guid
isPermaLink="false">http://www.degrama.com/?p=412</guid> <description><![CDATA[Every website requires users to &#8220;live&#8221; inside that experience for a period of time. Basic real world architecture principles apply to website planning. What&#8217;s it for? What&#8217;s good about it? What&#8217;s bad about it? In Sum A few tips on architecture planning: Organize content according to user needs, not an organizational chart or how the [...]]]></description> <content:encoded><![CDATA[<p>Every website requires users to &#8220;live&#8221; inside that experience for a period of time. Basic real world architecture principles apply to website planning.</p><p><span
id="more-412"></span></p><ul><li>What&#8217;s it for?</li><li>What&#8217;s good about it?</li><li>What&#8217;s bad about it?</li><li>In Sum</li></ul><p><strong>A few tips on architecture planning:</strong></p><ul><li>Organize content according to user needs, not an organizational chart or how the client structures their company.</li><li>Give pages clear and succinct names.</li><li>Be sympathetic. Think of your typical users, called personas, and imagine them navigating the website. What would they be looking for?</li><li>Consider creating auxiliary way-finding pages. These pages would lie beyond the main navigation of your website and structure various pages according to specific user needs.</li><li>If you can’t succinctly explain why a page would be useful to someone, omit it.</li><li>Plan the architecture around the content. Don’t write content to fit the architecture.</li><li>When dealing with clients, especially clients at large companies with many departments, keeping egos in check can be tough. Keep everyone on point with constant reminders of the true goals of the website.</li><li>Not everything has to be a page. Use your hierarchy of content as a guide. Some items might work better as an FAQ entry or as sidebar content. Make sure your architecture-planning method does not blind you to this.</li></ul><h3>Architecture Is The Home, Not The Content Itself</h3><p>Like the website itself, each of your pages has a structure and hierarchy as well. The architecture helps users find the right page. The hierarchy and semantics help users find the right content on that page. Too often, copywriting is an afterthought in Web development. No matter how attractive, clever or interactive a website is, its main purpose is to convey information. A great website is designed around the content.</p><p><img
title="illustrativegraphs-planning" src="http://www.degrama.com/wp-content/uploads/illustrativegraphs-planning.jpg" alt="" width="480" height="361" /></p> ]]></content:encoded> <wfw:commentRss>http://www.degrama.com/development/website-architecture/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Are You Failing Your Client?</title><link>http://www.degrama.com/workflow/are-you-failing-your-client/</link> <comments>http://www.degrama.com/workflow/are-you-failing-your-client/#comments</comments> <pubDate>Wed, 03 Mar 2010 02:43:53 +0000</pubDate> <dc:creator>Degrama</dc:creator> <category><![CDATA[Workflow]]></category><guid
isPermaLink="false">http://www.degrama.com/?p=406</guid> <description><![CDATA[Meet John the client. John runs a reasonably large website. He is a marketer who considers himself smart, articulate and professional. That said, he doesn’t know much about Web design, and so he needs your help. John comes to you with a clear set of business objectives and asks for a quote. But what happens [...]]]></description> <content:encoded><![CDATA[<p>Meet John the client. John runs a reasonably large website. He is a marketer who considers himself smart, articulate and professional. That said, he doesn’t know much about Web design, and so he needs your help. John comes to you with a clear set of business objectives and asks for a quote. But what happens next leaves John confused, frustrated and extremely unhappy.</p><p><span
id="more-406"></span></p><p><strong>Explain Why You Are Asking About Money</strong></p><p>Before giving John his quote, you ask a little more about the project. After chatting for a few minutes, you ask him about his <strong>budget</strong>. A fair question, you think. After all, you could approach the project in so many ways. Without knowing the budget, knowing where to begin is impossible. In your mind, building a website is like building a house. Without knowing the budget, you can’t possibly know how many rooms the client can afford or what materials you should use to build.</p><p>John, on the other hand, is instantly suspicious. Why would you want to know about his budget? The only reason he can think of is that you want to make sure you don’t charge him less than what he is willing to give. Besides, he doesn’t really know his budget. How the heck is he supposed to know how much a website costs?</p><p><img
src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/2010/02/money-20100210-1629242.jpg" alt="Money-20100210-1629242 in Is John The Client Dense or Are You Failing Him?" width="479" height="262" /><br
/> <em>Don’t come across as money-grubbing.</em> (<a
href="http://flic.kr/p/6eyE3T">Image credit</a>)</p><p>John leaves, determined to find a Web designer who doesn’t want to take advantage of him. Fortunately for you, all of the other designers he speaks with also neglect to explain why they need to know about his budget, and so you manage to win the project after all.</p><h3>Justify Your Recommendations In Language John Can Understand</h3><p>Once you have won the job, you arrange a kick-off meeting to <strong>nail down the specifications</strong>. However, John instantly regrets his decision to hire you because his worse fears have been confirmed. In his eyes, you are all of a sudden trying to squeeze more money out of him as you waffle about the importance of usability and accessibility. John doesn’t care about disabled users. He doesn’t expect disabled users to visit his website anyway.</p><p>And as for usability, surely the job of the Web designer is to make the website usable. Why do we need expensive usability testing? He is pretty certain that usability testing involves expensive things like cameras, labs and two-way mirrors. You thought you had explained these issues clearly. You spoke of WCAG 2, and you mentioned Jakob Neilsen. You are beginning to wonder if John is a bit thick.</p><p><img
src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/2010/02/confused-20100210-1632551.jpg" alt="Confused-20100210-1632551 in Is John The Client Dense or Are You Failing Him?" width="480" height="268" /><br
/> <em>Avoid techno-babble if you expect clients to understand what you’re talking about.</em> (<a
href="http://flic.kr/p/frJ48">Image credit</a>)</p><p>Perhaps if you had talked about accessibility in terms of assessing search engine rankings and testing usability as a way to increase conversion, then John might have listened. As it is, John puts his foot down and refuses to pay for any of these “unnecessary extras.”</p><h3>Include John In The Process</h3><p>You walk away from the kick-off meeting pleased to have a signed contract. But that feeling in the pit of your stomach tells you that this might be another one of those projects. Regardless, you try to be optimistic, and you dive into the design process. Almost immediately, you get a phone call from John asking if there is anything for him to see. You explain that it is still early in the process and that you are not ready to present anything. John sounds disappointed but resigned.</p><p>A short while later, you are ready to <strong>present the design</strong> to John. You are pleased with the result. It took you a lot more time than you had budgeted for, but it was worth it. The final design is extremely easy to use and will make for a great portfolio piece.</p><p><img
src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/2010/02/hide-20100210-1637471.jpg" alt="Hide-20100210-1637471 in Is John The Client Dense or Are You Failing Him?" width="480" height="210" /><br
/> <em>Stop hiding from your clients. Show them your work early on, and include them in the process.</em> (<a
href="http://flic.kr/p/4n6M23">Image credit</a>)</p><p>When John sees the design, he is horrified. From his perspective, you have entirely missed the point. The design clashes with his offline marketing materials and doesn’t hit the right selling points. Also, he is convinced that his suppliers will hate it and, although they are not his end users, their opinion matters.</p><p>After a tense conference call, you feel demoralized but have struck a compromise that hopefully will make John happy. You wonder in hindsight whether showing John some of your initial ideas and sketches would have been better. Perhaps you should have presented a wireframe first.</p><h3>Educate John About Design</h3><p>After much agonizing and compromise, you are once again ready to present to John. John is much happier with the new design and feels it is heading in the right direction. However, he does have some concerns. For starters, he has to scroll to see most of the content, and yet white space takes up either side of the design. He tells you to move key content into this wasted space. Also, as he thinks about his young male target audience, he realizes that the color scheme is too effeminate, so he tells you to change it to blue.</p><p>While John feels somewhat happier, you feel crushed. You feel as though he is trying to do the job for you. The instructions to move this there and change this color to that makes you feel like you have been reduced to pushing pixels.</p><p><img
src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/2010/02/Teaching-20100210-164155.jpg" alt="Teaching-20100210-164155 in Is John The Client Dense or Are You Failing Him?" width="480" height="242" /><br
/> <em>Educate your clients so they make more informed decisions.</em> (<a
href="http://flic.kr/p/Hf2E7">Image credit</a>)</p><p>By this point, you are sure the client is dim, and now you just want him to sign off on a design. At no stage do you think to ask John <strong>why he is requesting these changes</strong>. Perhaps if you had appreciated his thinking, you could have explained concepts such as screen resolution and suggested an alternative to corporate blue, which is so over-used on the Web.</p><p>Instead, you wash your hands of the design and just give John what he wants.</p><h3>Communicate With John Regularly</h3><p>Now that the design is complete, you turn your attention to building it. John certainly won’t care about your code. Now you can finally do things right.</p><p>It’s a big job and takes a lot of time. Even though you put too much time into the design and washed your hands of it, you still have your pride. You are not about to cut corners with the code. After all, other designers might look at it and judge you! You work really hard, putting in more work than you probably should have. John even manages to slip in some extra functionality at the scoping phase, which turns out to be a pain in the butt.</p><p>For his part, John is wondering what’s going on. He hasn’t heard from you in weeks. Surely the website must be ready now? He decides to email you to ask how things are progressing. You reply with a short email telling him that everything is progressing smoothly. You never did like project management, and you are sure John would prefer that you spend time building his website instead of writing him detailed reports.</p><p>John receives your email and is becoming increasingly frustrated. What does “progressing smoothly” mean? He writes back asking for an expected date of completion, and you reply with a rough estimate.</p><p>The date comes and goes without a word from you. After all, it was merely an estimate, and several complications have delayed completion by a few days. John finally loses his temper and calls you. He tells you that he has arranged a marketing campaign to coincide with the launch date, and because he hadn’t heard from you, he presumed everything was on schedule.</p><p><img
src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/2010/02/communication-20100210-1645141.jpg" alt="Communication-20100210-1645141 in Is John The Client Dense or Are You Failing Him?" width="479" height="258" /><br
/> <em>Communicate with your client regularly.</em> (<a
href="http://flic.kr/p/691uEj">Image credit</a>)</p><p>You defend yourself, citing “scope creep” and unanticipated delays. But responding is difficult when John says, “All I needed was a weekly email keeping me up to date on progress.”</p><h3>Explain John’s Ongoing Role</h3><p>By this stage, the relationship has broken down entirely. You finish your work, and the website finally launches. Begrudgingly, John pays the invoice after delaying it for as long as possible. What amazes you most is John’s pronouncement that he is bitterly disappointed with the result. How can that be when you gave him exactly what he asked for? This guy isn’t just thick: he’s a jerk!</p><p>Of course, John sees things differently. He came to you with a list of his business objectives, and the website has failed to meet any of them. He had hoped to launch the website, watch it <strong>achieve his objectives</strong> and then move on to the next project. Instead, after an initial spike in interest, the number of users and inquiries dropped over time, and the website stagnated.</p><p><img
src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/2010/02/seedling-20100210-164927.jpg" alt="Seedling-20100210-164927 in Is John The Client Dense or Are You Failing Him?" width="480" height="318" /><br
/> <em>Ensure that your client understands what kind of ongoing care their website will need.</em> (<a
href="http://flic.kr/p/68QFDp">Image credit</a>)</p><p>What John does not realize is that websites need continued love and support. You cannot build a website and then abandon it. John has to nurture it by adding new content, engaging with visitors and planning for ongoing development.</p><p>If only someone had told him.</p><h3>The Moral Of The Story</h3><p>It’s amazing how quick we are to judge our clients.</p><p>As Web designers, we communicate and empathize for a living. Our job is to communicate messages to our clients’ users. We create usable websites by putting ourselves in the position of our users, which allows us to design around their needs.</p><p>Why, then, do we so often seem to be incapable of empathizing or communicating with our clients? Perhaps it is time for us to apply the skills we have cultivated as Web designers to our own customers.</p> ]]></content:encoded> <wfw:commentRss>http://www.degrama.com/workflow/are-you-failing-your-client/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Reduce spam with recaptcha and encryption.</title><link>http://www.degrama.com/development/reduce-spam-with-recaptcha-and-encryption/</link> <comments>http://www.degrama.com/development/reduce-spam-with-recaptcha-and-encryption/#comments</comments> <pubDate>Sun, 31 Jan 2010 02:29:33 +0000</pubDate> <dc:creator>Degrama</dc:creator> <category><![CDATA[Development]]></category><guid
isPermaLink="false">http://www.degrama.com/?p=388</guid> <description><![CDATA[Recently one of our clients was experiencing excessive amounts of spam due to poor captcha. Which I&#8217;m sure happens to anyone who thinks (2+8=) is going to stop spam bots. Anyway onto our solution! [Demo] (right click save as to download) &#8211; Required: [ReCaptcha] What it does » No visible email addresses online. For example [...]]]></description> <content:encoded><![CDATA[<p>Recently one of our clients was experiencing excessive amounts of spam due to poor captcha. Which I&#8217;m sure happens to anyone who thinks (2+8=) is going to stop spam bots. Anyway onto our solution!</p><p><span
id="more-388"></span></p><p><a
href="http://www.degrama.com/examples/email-encrypt.php" target="_blank">[Demo]</a> (right click save as to download) &#8211; Required: <a
href="http://recaptcha.net/whyrecaptcha.html" target="_blank">[ReCaptcha]</a></p><h3>What it does »</h3><p>No visible email addresses online. For example we take an email address like.<br
/> <strong>Email Normal:</strong> bluemans@live.com<br
/> <strong>Email Encrypted:</strong> Ag8bHRQKKxQOCQAYSQwEHg (sexy right?)</p><p><img
style="float: right;" title="Anti Spam with Encryption and Captcha" src="http://www.degrama.com/wp-content/uploads/anti-spam.jpg" alt="" width="125" height="125" /><br
/> The visitor clicks &#8220;Contact Owner&#8221;. Then we are promoted with re-captcha human verification. If the visitor correctly answers the question the email address is then decrypted and the visitor can send a message.</p><h3>How To »</h3><p>I created the test file below &#8220;email-encrypt.php&#8221; for a quick demonstration.</p><div
class="codecolorer-container php default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div
class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span
style="color: #000000; font-weight: bold;">function</span> XOREncryption<span
style="color: #009900;">&#40;</span><span
style="color: #000088;">$InputString</span><span
style="color: #339933;">,</span> <span
style="color: #000088;">$KeyPhrase</span><span
style="color: #009900;">&#41;</span><span
style="color: #009900;">&#123;</span><br
/> <br
/> <span
style="color: #000088;">$KeyPhraseLength</span> <span
style="color: #339933;">=</span> <a
href="http://www.php.net/strlen"><span
style="color: #990000;">strlen</span></a><span
style="color: #009900;">&#40;</span><span
style="color: #000088;">$KeyPhrase</span><span
style="color: #009900;">&#41;</span><span
style="color: #339933;">;</span><br
/> <br
/> <span
style="color: #666666; font-style: italic;">// Loop trough input string</span><br
/> <span
style="color: #b1b100;">for</span> <span
style="color: #009900;">&#40;</span><span
style="color: #000088;">$i</span> <span
style="color: #339933;">=</span> <span
style="color: #cc66cc;">0</span><span
style="color: #339933;">;</span> <span
style="color: #000088;">$i</span> <span
style="color: #339933;">&amp;</span>lt<span
style="color: #339933;">;</span> <a
href="http://www.php.net/strlen"><span
style="color: #990000;">strlen</span></a><span
style="color: #009900;">&#40;</span><span
style="color: #000088;">$InputString</span><span
style="color: #009900;">&#41;</span><span
style="color: #339933;">;</span> <span
style="color: #000088;">$i</span><span
style="color: #339933;">++</span><span
style="color: #009900;">&#41;</span><span
style="color: #009900;">&#123;</span><br
/> <br
/> <span
style="color: #666666; font-style: italic;">// Get key phrase character position</span><br
/> <span
style="color: #000088;">$rPos</span> <span
style="color: #339933;">=</span> <span
style="color: #000088;">$i</span> <span
style="color: #339933;">%</span> <span
style="color: #000088;">$KeyPhraseLength</span><span
style="color: #339933;">;</span><br
/> <br
/> <span
style="color: #666666; font-style: italic;">// Magic happens here:</span><br
/> <span
style="color: #000088;">$r</span> <span
style="color: #339933;">=</span> <a
href="http://www.php.net/ord"><span
style="color: #990000;">ord</span></a><span
style="color: #009900;">&#40;</span><span
style="color: #000088;">$InputString</span><span
style="color: #009900;">&#91;</span><span
style="color: #000088;">$i</span><span
style="color: #009900;">&#93;</span><span
style="color: #009900;">&#41;</span> ^ <a
href="http://www.php.net/ord"><span
style="color: #990000;">ord</span></a><span
style="color: #009900;">&#40;</span><span
style="color: #000088;">$KeyPhrase</span><span
style="color: #009900;">&#91;</span><span
style="color: #000088;">$rPos</span><span
style="color: #009900;">&#93;</span><span
style="color: #009900;">&#41;</span><span
style="color: #339933;">;</span><br
/> <br
/> <span
style="color: #666666; font-style: italic;">// Replace characters</span><br
/> <span
style="color: #000088;">$InputString</span><span
style="color: #009900;">&#91;</span><span
style="color: #000088;">$i</span><span
style="color: #009900;">&#93;</span> <span
style="color: #339933;">=</span> <a
href="http://www.php.net/chr"><span
style="color: #990000;">chr</span></a><span
style="color: #009900;">&#40;</span><span
style="color: #000088;">$r</span><span
style="color: #009900;">&#41;</span><span
style="color: #339933;">;</span><br
/> <span
style="color: #009900;">&#125;</span><br
/> <br
/> <span
style="color: #b1b100;">return</span> <span
style="color: #000088;">$InputString</span><span
style="color: #339933;">;</span><br
/> <span
style="color: #009900;">&#125;</span><br
/> <br
/> <span
style="color: #666666; font-style: italic;">// Helper functions, using base64 to</span><br
/> <span
style="color: #666666; font-style: italic;">// create readable encrypted texts:</span><br
/> <br
/> <span
style="color: #000000; font-weight: bold;">function</span> ecrypt<span
style="color: #009900;">&#40;</span><span
style="color: #000088;">$InputString</span><span
style="color: #339933;">,</span> <span
style="color: #000088;">$KeyPhrase</span><span
style="color: #009900;">&#41;</span><span
style="color: #009900;">&#123;</span><br
/> <span
style="color: #000088;">$InputString</span> <span
style="color: #339933;">=</span> XOREncryption<span
style="color: #009900;">&#40;</span><span
style="color: #000088;">$InputString</span><span
style="color: #339933;">,</span> <span
style="color: #000088;">$KeyPhrase</span><span
style="color: #009900;">&#41;</span><span
style="color: #339933;">;</span><br
/> <span
style="color: #000088;">$InputString</span> <span
style="color: #339933;">=</span> <a
href="http://www.php.net/base64_encode"><span
style="color: #990000;">base64_encode</span></a><span
style="color: #009900;">&#40;</span><span
style="color: #000088;">$InputString</span><span
style="color: #009900;">&#41;</span><span
style="color: #339933;">;</span><br
/> <span
style="color: #000088;">$InputString</span> <span
style="color: #339933;">=</span> <a
href="http://www.php.net/str_replace"><span
style="color: #990000;">str_replace</span></a><span
style="color: #009900;">&#40;</span><a
href="http://www.php.net/array"><span
style="color: #990000;">array</span></a><span
style="color: #009900;">&#40;</span><span
style="color: #0000ff;">'='</span><span
style="color: #339933;">,</span><span
style="color: #0000ff;">'+'</span><span
style="color: #339933;">,</span><span
style="color: #0000ff;">'/'</span><span
style="color: #009900;">&#41;</span><span
style="color: #339933;">,</span><span
style="color: #0000ff;">''</span><span
style="color: #339933;">,</span><span
style="color: #000088;">$InputString</span><span
style="color: #009900;">&#41;</span><span
style="color: #339933;">;</span><br
/> <span
style="color: #b1b100;">return</span> <span
style="color: #000088;">$InputString</span><span
style="color: #339933;">;</span><br
/> <span
style="color: #009900;">&#125;</span><br
/> <br
/> <span
style="color: #000000; font-weight: bold;">function</span> dcrypt<span
style="color: #009900;">&#40;</span><span
style="color: #000088;">$InputString</span><span
style="color: #339933;">,</span> <span
style="color: #000088;">$KeyPhrase</span><span
style="color: #009900;">&#41;</span><span
style="color: #009900;">&#123;</span><br
/> <span
style="color: #000088;">$InputString</span> <span
style="color: #339933;">=</span> <a
href="http://www.php.net/base64_decode"><span
style="color: #990000;">base64_decode</span></a><span
style="color: #009900;">&#40;</span><span
style="color: #000088;">$InputString</span><span
style="color: #009900;">&#41;</span><span
style="color: #339933;">;</span><br
/> <span
style="color: #000088;">$InputString</span> <span
style="color: #339933;">=</span> <a
href="http://www.php.net/strtr"><span
style="color: #990000;">strtr</span></a><span
style="color: #009900;">&#40;</span><span
style="color: #000088;">$InputString</span><span
style="color: #339933;">,</span> <span
style="color: #0000ff;">'+/='</span><span
style="color: #339933;">,</span> <span
style="color: #0000ff;">'-_-'</span><span
style="color: #009900;">&#41;</span><span
style="color: #339933;">;</span><br
/> <span
style="color: #000088;">$InputString</span> <span
style="color: #339933;">=</span> XOREncryption<span
style="color: #009900;">&#40;</span><span
style="color: #000088;">$InputString</span><span
style="color: #339933;">,</span> <span
style="color: #000088;">$KeyPhrase</span><span
style="color: #009900;">&#41;</span><span
style="color: #339933;">;</span><br
/> <span
style="color: #b1b100;">return</span> <span
style="color: #000088;">$InputString</span><span
style="color: #339933;">;</span><br
/> <span
style="color: #009900;">&#125;</span><br
/> <br
/> <span
style="color: #000088;">$Str_Test</span><span
style="color: #339933;">=</span><span
style="color: #000088;">$_POST</span><span
style="color: #009900;">&#91;</span><span
style="color: #0000ff;">'email'</span><span
style="color: #009900;">&#93;</span><span
style="color: #339933;">;</span><br
/> <span
style="color: #000088;">$Str_Test</span> <span
style="color: #339933;">=</span> ecrypt<span
style="color: #009900;">&#40;</span><span
style="color: #000088;">$Str_Test</span><span
style="color: #339933;">,</span> <span
style="color: #0000ff;">&quot;keyphrase&quot;</span><span
style="color: #009900;">&#41;</span><span
style="color: #339933;">;</span><br
/> <br
/> <span
style="color: #b1b100;">ECHO</span> <span
style="color: #0000ff;">'Email Normal: '</span><span
style="color: #339933;">.</span><span
style="color: #000088;">$_POST</span><span
style="color: #009900;">&#91;</span><span
style="color: #0000ff;">'email'</span><span
style="color: #009900;">&#93;</span><span
style="color: #339933;">.</span><span
style="color: #0000ff;">&quot;<br
/> &quot;</span><span
style="color: #339933;">;</span><br
/> <br
/> <span
style="color: #b1b100;">ECHO</span> <span
style="color: #0000ff;">'Email Encrypted: '</span><span
style="color: #339933;">.</span><span
style="color: #000088;">$Str_Test</span><span
style="color: #339933;">.</span><span
style="color: #0000ff;">&quot;<br
/> <br
/> &quot;</span><span
style="color: #339933;">;</span><br
/> <span
style="color: #000088;">$Str_Test2</span> <span
style="color: #339933;">=</span> dcrypt<span
style="color: #009900;">&#40;</span><span
style="color: #000088;">$Str_Test</span><span
style="color: #339933;">,</span> <span
style="color: #0000ff;">&quot;keyphrase&quot;</span><span
style="color: #009900;">&#41;</span><span
style="color: #339933;">;</span><br
/> <br
/> <span
style="color: #b1b100;">ECHO</span> <span
style="color: #0000ff;">&quot;Email Decrypted: &quot;</span><span
style="color: #339933;">.</span><span
style="color: #000088;">$Str_Test2</span><span
style="color: #339933;">.</span><span
style="color: #0000ff;">&quot;<br
/> &quot;</span><span
style="color: #339933;">;</span><br
/> <br
/> ?<span
style="color: #339933;">&amp;</span>gt<span
style="color: #339933;">;</span><br
/> <br
/> <span
style="color: #339933;">&lt;</span>form id<span
style="color: #339933;">=</span><span
style="color: #0000ff;">&quot;form1&quot;</span> action<span
style="color: #339933;">=</span><span
style="color: #0000ff;">&quot;#&quot;</span> method<span
style="color: #339933;">=</span><span
style="color: #0000ff;">&quot;post&quot;</span><span
style="color: #339933;">&gt;&lt;</span>label<span
style="color: #339933;">&gt;</span>Email<span
style="color: #339933;">:</span><br
/> <br
/> <span
style="color: #339933;">&lt;</span>input id<span
style="color: #339933;">=</span><span
style="color: #0000ff;">&quot;email&quot;</span> name<span
style="color: #339933;">=</span><span
style="color: #0000ff;">&quot;email&quot;</span> type<span
style="color: #339933;">=</span><span
style="color: #0000ff;">&quot;text&quot;</span> <span
style="color: #339933;">/&gt;</span><br
/> <br
/> <span
style="color: #339933;">&lt;/</span>label<span
style="color: #339933;">&gt;</span><br
/> <br
/> <span
style="color: #339933;">&lt;</span>label<span
style="color: #339933;">&gt;</span><br
/> <br
/> <span
style="color: #339933;">&lt;</span>input id<span
style="color: #339933;">=</span><span
style="color: #0000ff;">&quot;submit&quot;</span> name<span
style="color: #339933;">=</span><span
style="color: #0000ff;">&quot;submit&quot;</span> type<span
style="color: #339933;">=</span><span
style="color: #0000ff;">&quot;submit&quot;</span> value<span
style="color: #339933;">=</span><span
style="color: #0000ff;">&quot;Submit&quot;</span> <span
style="color: #339933;">/&gt;</span><br
/> <br
/> <span
style="color: #339933;">&lt;/</span>label<span
style="color: #339933;">&gt;</span><br
/> <br
/> <span
style="color: #339933;">&lt;/</span>form<span
style="color: #339933;">&gt;</span></div></div><h3>Conclusion</h3><p>Easy to implement, and results are awesome.<br
/> - Install ReCaptcha<br
/> - Setup Encrypt<br
/> - Test and experiment</p> ]]></content:encoded> <wfw:commentRss>http://www.degrama.com/development/reduce-spam-with-recaptcha-and-encryption/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Friends 4Ever Animal Rescue</title><link>http://www.degrama.com/portfolio/f4e/</link> <comments>http://www.degrama.com/portfolio/f4e/#comments</comments> <pubDate>Sun, 31 Jan 2010 00:20:25 +0000</pubDate> <dc:creator>Degrama</dc:creator> <category><![CDATA[Our Work]]></category> <category><![CDATA[Portfolio]]></category><guid
isPermaLink="false">http://www.degrama.com/?p=382</guid> <description><![CDATA[Friends 4 Ever a non-profit animal rescue in Kelowna, British Columbia. They hired us to create their initial launch page and we are still hard at work creating their permanent website please signup to their website or facebook group.]]></description> <content:encoded><![CDATA[<p><a
title="Friends4ever.ca" href="http://friends4ever.ca" target="_blank">Friends 4 Ever</a> a non-profit animal rescue in Kelowna, British Columbia. They hired us to create their initial launch page and we are still hard at work creating their permanent website please signup to their website or <a
title="Friends 4 Ever Facebook" href="http://www.facebook.com/#!/group.php?gid=202724087445" target="_blank">facebook</a> group.</p> ]]></content:encoded> <wfw:commentRss>http://www.degrama.com/portfolio/f4e/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>WCIS</title><link>http://www.degrama.com/portfolio/wcis/</link> <comments>http://www.degrama.com/portfolio/wcis/#comments</comments> <pubDate>Sat, 30 Jan 2010 23:36:35 +0000</pubDate> <dc:creator>Degrama</dc:creator> <category><![CDATA[Our Work]]></category> <category><![CDATA[Portfolio]]></category><guid
isPermaLink="false">http://www.degrama.com/?p=375</guid> <description><![CDATA[Project: Design, Development and Marketing]]></description> <content:encoded><![CDATA[<p><strong>Project:</strong> Design, Development and Marketing</p> ]]></content:encoded> <wfw:commentRss>http://www.degrama.com/portfolio/wcis/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Customized Navigation Bar in WordPress</title><link>http://www.degrama.com/wordpress/customized-navigation-bar-in-wordpress/</link> <comments>http://www.degrama.com/wordpress/customized-navigation-bar-in-wordpress/#comments</comments> <pubDate>Fri, 29 Jan 2010 20:52:09 +0000</pubDate> <dc:creator>Degrama</dc:creator> <category><![CDATA[Wordpress]]></category> <category><![CDATA[Navigation]]></category><guid
isPermaLink="false">http://www.degrama.com/?p=344</guid> <description><![CDATA[Adding too many pages to a WordPress blog that has a navigation bar in the header can really make your WordPress blog a mess. There are options to control what pages are shown in the navigation bar and even a way to add external links. How To » The Template Tag, wp_list_pages(), displays a list [...]]]></description> <content:encoded><![CDATA[<p>Adding too many pages to a WordPress blog that has a navigation bar in the header can really make your WordPress blog a mess. There are options to control what pages are shown in the navigation bar and even a way to add external links.<br
/> <span
id="more-344"></span></p><h3>How To »</h3><p>The Template Tag, wp_list_pages(), displays a list of WordPress Pages as links. It is often used to customize the Sidebar or Header. So now the code of the top nav bar will look like this:</p><div
class="codecolorer-container php default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div
class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&lt;ul id=&quot;pagenav&quot;&gt;<br
/> &nbsp; &nbsp;&lt;li class=&quot;<span
style="color: #000000; font-weight: bold;">&lt;?php</span> <span
style="color: #b1b100;">if</span> <span
style="color: #009900;">&#40;</span> is_home<span
style="color: #009900;">&#40;</span><span
style="color: #009900;">&#41;</span> <span
style="color: #009900;">&#41;</span> <span
style="color: #009900;">&#123;</span> <span
style="color: #b1b100;">echo</span> <span
style="color: #0000ff;">'current_page_item'</span><span
style="color: #339933;">;</span> <span
style="color: #009900;">&#125;</span> <span
style="color: #000000; font-weight: bold;">?&gt;</span>&quot;&gt; &lt;a title=&quot;<span
style="color: #000000; font-weight: bold;">&lt;?php</span> bloginfo<span
style="color: #009900;">&#40;</span><span
style="color: #0000ff;">'name'</span><span
style="color: #009900;">&#41;</span><span
style="color: #339933;">;</span> <span
style="color: #000000; font-weight: bold;">?&gt;</span>&quot; href=&quot;<span
style="color: #000000; font-weight: bold;">&lt;?php</span> bloginfo<span
style="color: #009900;">&#40;</span><span
style="color: #0000ff;">'url'</span><span
style="color: #009900;">&#41;</span><span
style="color: #339933;">;</span> <span
style="color: #000000; font-weight: bold;">?&gt;</span>&quot;&gt;Home&lt;/a&gt;&lt;/li&gt;<br
/> &lt;/ul&gt;</div></div><p>You can simply edit the header.php file and exclude any page id you want, you can also include the pages you want.</p><h3>Creating Two-Tiered Conditional Navigation in WordPress »</h3><p>A common navigational scheme, parent pages on top and child pages (if they exist) on bottom as seen at the top of this post.</p><p><strong>How To »</strong></p><p>Darren Hoyt goes through a nice solution to help us: 1) query the page, 2) determine if there are child pages, and 3) properly highlight both the .current_page_parent and .current_page_item links.</p><div
class="codecolorer-container php default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div
class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">post_parent<span
style="color: #009900;">&#41;</span><br
/> <span
style="color: #000088;">$children</span> <span
style="color: #339933;">=</span> wp_list_pages<span
style="color: #009900;">&#40;</span><span
style="color: #0000ff;">&quot;title_li=&amp;child_of=&quot;</span><span
style="color: #339933;">.</span><span
style="color: #000088;">$post</span><span
style="color: #339933;">-&gt;</span><span
style="color: #004000;">post_parent</span><span
style="color: #339933;">.</span><span
style="color: #0000ff;">&quot;&amp;echo=0&quot;</span><span
style="color: #009900;">&#41;</span><span
style="color: #339933;">;</span> <span
style="color: #b1b100;">else</span><br
/> <span
style="color: #000088;">$children</span> <span
style="color: #339933;">=</span> wp_list_pages<span
style="color: #009900;">&#40;</span><span
style="color: #0000ff;">&quot;title_li=&amp;child_of=&quot;</span><span
style="color: #339933;">.</span><span
style="color: #000088;">$post</span><span
style="color: #339933;">-&gt;</span><span
style="color: #004000;">ID</span><span
style="color: #339933;">.</span><span
style="color: #0000ff;">&quot;&amp;echo=0&quot;</span><span
style="color: #009900;">&#41;</span><span
style="color: #339933;">;</span><br
/> <span
style="color: #b1b100;">if</span> <span
style="color: #009900;">&#40;</span><span
style="color: #000088;">$children</span><span
style="color: #009900;">&#41;</span> <span
style="color: #009900;">&#123;</span> <span
style="color: #000000; font-weight: bold;">?&gt;</span></div></div><p>And then he show us how to use CSS to make sure the :active and :hover states display correctly whether or not subpages exist — if they do, the primary nav uses current_page_parent, if they don’t, it resorts to simply current_page_item.</p><h3>Use breadcrumbs</h3><p>Breadcrumbs are great for so many reasons: usability, SEO, etc. In terms of plugins, there are many options, my favorite is <a
title="Yoast Breadcrumbs" href="http://yoast.com/wordpress/breadcrumbs/" target="_blank">Yoast’s Breadcrumbs</a>, because it’s easy to implement. Another <a
title="Breadcrumb plugin" href="http://justintadlock.com/archives/2009/04/05/breadcrumb-trail-wordpress-plugin" target="_blank">breadcrumbs plugin</a>, gives you a new template tag called breadcrumb_trail() that you can place anywhere in your theme. Once that’s done, it’ll display a hierarchical menu of where the current visitor is on your site. It’s quite useful if you have more than a few pages or posts.</p><p><a
href="http://www.degrama.com/wp-content/uploads/wordpress-breadcrumbs.jpg"><img
class="alignnone size-full wp-image-327" title="WordPress Breadcrumbs" src="http://www.degrama.com/wp-content/uploads/wordpress-breadcrumbs.jpg" alt="" width="500" height="40" /></a></p> ]]></content:encoded> <wfw:commentRss>http://www.degrama.com/wordpress/customized-navigation-bar-in-wordpress/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Creating a static homepage in WordPress</title><link>http://www.degrama.com/wordpress/creating-a-static-homepage-in-wordpress/</link> <comments>http://www.degrama.com/wordpress/creating-a-static-homepage-in-wordpress/#comments</comments> <pubDate>Fri, 29 Jan 2010 20:46:43 +0000</pubDate> <dc:creator>Degrama</dc:creator> <category><![CDATA[Wordpress]]></category> <category><![CDATA[Pages]]></category><guid
isPermaLink="false">http://www.degrama.com/?p=317</guid> <description><![CDATA[By default, a WordPress home page shows chronological blog post entries — with the most recent post at the top. If your goal is to have a WP-created Page with static information, WordPress will allow you to select a different page as your home page so that you can display more traditional content like information [...]]]></description> <content:encoded><![CDATA[<p>By default, a WordPress home page shows chronological blog post entries — with the most recent post at the top. If your goal is to have a WP-created Page with static information, WordPress will allow you to select a different page as your home page so that you can display more traditional content like information about yourself or your business.<br
/> <span
id="more-317"></span><br
/> <strong>How To »</strong><br
/> In your admin area, just go to Setting » Reading. Here you can decide if your home page will display your blog posts or a static page, if you choose a static page you can also choose which page to be your home page from the select box.</p><p><img
class="alignnone size-medium wp-image-329" title="WordPress Static Homepage How" src="http://www.degrama.com/wp-content/uploads/wordpress-static-homepage-300x120.jpg" alt="" width="300" height="120" /></p><p><strong>Points to take care »</strong><br
/> First problem you may run into when you make a static page your home page is that the link to that page now appears in the main site navigation. Usually the page called “Home” in the main site navigation. This tutorial shows how to remove one of those links from your site navigation so that visitors to your site are not confused by the duplicate link.<br
/> The second problem is you will see that link again in the sidebar widget, the fix is pretty simple. The WordPress Pages navigation widget now allows you to exclude any page from its links by inserting the Page IDs of pages you want to exclude into the “Exclude” box in the Pages widget.</p> ]]></content:encoded> <wfw:commentRss>http://www.degrama.com/wordpress/creating-a-static-homepage-in-wordpress/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> </channel> </rss>
<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk
Page Caching using disk (enhanced) (user agent is rejected)
Database Caching 6/11 queries in 0.006 seconds using disk

Served from: www.degrama.com @ 2010-07-29 14:57:13 -->