<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-3228799232951198165</id><updated>2012-01-20T13:40:31.859-08:00</updated><category term='wrightsville beach'/><category term='mobile'/><category term='Slow Carb Diet'/><category term='technology'/><category term='jamie oliver'/><category term='javascript'/><category term='funny'/><category term='personal'/><category term='lifehack'/><category term='golf'/><category term='ajax'/><category term='security'/><category term='programming'/><category term='rants'/><category term='2010'/><category term='Tim Ferriss'/><category term='Apple'/><category term='mafiawars'/><category term='iPhone'/><category term='Apps'/><category term='user interface'/><category term='farmville'/><category term='true story'/><category term='food pics'/><category term='health'/><category term='Four-Hour Body'/><title type='text'>CMS Forum</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://latenightcms.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3228799232951198165/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://latenightcms.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Late Night CMS Junkie</name><uri>http://www.blogger.com/profile/06799426777907100854</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>41</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-3228799232951198165.post-6545216624652517791</id><published>2012-01-20T13:40:00.001-08:00</published><updated>2012-01-20T13:40:31.883-08:00</updated><title type='text'>New Project Starting - Animatronic Door Greeter</title><content type='html'>&lt;div class='posterous_autopost'&gt;&lt;p&gt;So we moved into a new house that has a space just crying out for something geeky and fun. What better solution could their be than an animatronic door greeter.&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: large;"&gt;I'll call him "Edgar"&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;The alcove in the foyer is used right now for a fake plant, mostly because we have nothing else to put there.It was designed put put artwork, but it's too small and we have small kids that make artwork in a kid-reachable location a poor choice. However, it does have a built-in light, so I have power available for Edgar. With Wifi throughout the house and good signal everywhere, Edgar will be able to be just the input and output of the system. The rest will be an old PC that I will convert to a Linux server. And with a line of sight to the front door, I plan on implementing IR and video cameras to detect who is coming and going.&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: large;"&gt;Edgar's capabilties&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;My plan is that Egar will be able to determine who opened the door whether entering or leaving and map that to a profile on the server and respond appropriately. Linking with weather feeds Edgar will be able to remind us to take a jacket, an umbrella, etc.&lt;/p&gt;  &lt;p&gt;I want to design a complete face in rubber for Edgar so I can blend him into the alcove - Edgar should be a face in the wall. When we pass through the foyer, he should wake up (if it's night time). Eyes and mouth should move correctly.&lt;/p&gt;  &lt;p&gt;I'm planning on using IR sensors to be able to detect family members based on size. This will probably be the most difficult part, as the IR signature would change based on other factors.&lt;/p&gt;  &lt;p&gt;I also want to incorporate voice commands for all the family. Probably keep it basic like "Hello Edgar", "What's the weather?" -- limited. Edgar will respond vocally.&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p style="font-size: 10px;"&gt; &lt;a href="http://posterous.com"&gt;Posted via email&lt;/a&gt;  from &lt;a href="http://rogergwyatt.com/new-project-starting-animatronic-door-greeter"&gt;From the mind of Roger Wyatt&lt;/a&gt; &lt;/p&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3228799232951198165-6545216624652517791?l=latenightcms.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://latenightcms.blogspot.com/feeds/6545216624652517791/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://latenightcms.blogspot.com/2012/01/new-project-starting-animatronic-door.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3228799232951198165/posts/default/6545216624652517791'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3228799232951198165/posts/default/6545216624652517791'/><link rel='alternate' type='text/html' href='http://latenightcms.blogspot.com/2012/01/new-project-starting-animatronic-door.html' title='New Project Starting - Animatronic Door Greeter'/><author><name>Late Night CMS Junkie</name><uri>http://www.blogger.com/profile/06799426777907100854</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3228799232951198165.post-6894338481614613553</id><published>2011-12-14T11:03:00.001-08:00</published><updated>2011-12-14T11:03:47.856-08:00</updated><title type='text'>PHP Unit Testing Zend_Framework Controllers With ExtJS</title><content type='html'>&lt;div class='posterous_autopost'&gt;&lt;p&gt;I have an application that uses Zend_Framework for the Controller and Model, and uses ExtJS to handle the view. All of the user interface handling is managed on the client. Therefore my controllers return only JSON data to communicate with the stores&lt;/p&gt;  &lt;p&gt;In setting up my PHPUnit test environment I found I had a couple of hurdles to overcome. First was the usual issues with getting the Zend Framework parts to work by setting up the bootstrap.php file correctly. The other issues had to do with retrieving the JSON data to compare for the results.&lt;/p&gt;  &lt;p&gt;If you are setting up PHPUnit testing against a Controller that returns JSON you are going to need to:&lt;/p&gt;  &lt;p&gt;1) Make sure your post format is correct. Remember, ExtJS sends JSON encoded form data in the form submittal.&lt;/p&gt;  &lt;p style="text-align: left; padding-left: 30px;"&gt;$this-&amp;gt;request-&amp;gt;setPost(&lt;/p&gt;  &lt;p style="text-align: left; padding-left: 60px;"&gt;array(&lt;br /&gt;"data"=&amp;gt;Zend_Json::encode(array(&lt;/p&gt;  &lt;p style="text-align: left; padding-left: 90px;"&gt;"field1"=&amp;gt;value1&lt;br /&gt;"field2"=&amp;gt;value2&lt;/p&gt;  &lt;p style="text-align: left; padding-left: 90px;"&gt;))&lt;/p&gt;  &lt;p style="text-align: left; padding-left: 60px;"&gt;)&lt;/p&gt;  &lt;p style="text-align: left; padding-left: 30px;"&gt;)&lt;/p&gt;  &lt;p style="text-align: left;"&gt;This assumes you use "data" as the parameter to pass the form data.&lt;/p&gt;  &lt;p style="text-align: left;"&gt;2) You need to capture the results and decode them&lt;/p&gt;  &lt;p style="text-align: left; padding-left: 30px;"&gt;$results = $this-&amp;gt;getFrontController()-&amp;gt;getResponse()-&amp;gt;getBody();&lt;/p&gt;  &lt;p style="text-align: left; padding-left: 30px;"&gt;$resultsArray = Zend_Json::decode($results);&lt;/p&gt;  &lt;p style="text-align: left; padding-left: 30px;"&gt;// now do your assertions, such as checking the success flag&lt;/p&gt;  &lt;p style="text-align: left; padding-left: 30px;"&gt;&amp;nbsp;&lt;/p&gt; &lt;p style="font-size: 10px;"&gt; &lt;a href="http://posterous.com"&gt;Posted via email&lt;/a&gt;  from &lt;a href="http://rogergwyatt.com/php-unit-testing-zendframework-controllers-wi"&gt;From the mind of Roger Wyatt&lt;/a&gt; &lt;/p&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3228799232951198165-6894338481614613553?l=latenightcms.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://latenightcms.blogspot.com/feeds/6894338481614613553/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://latenightcms.blogspot.com/2011/12/php-unit-testing-zendframework.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3228799232951198165/posts/default/6894338481614613553'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3228799232951198165/posts/default/6894338481614613553'/><link rel='alternate' type='text/html' href='http://latenightcms.blogspot.com/2011/12/php-unit-testing-zendframework.html' title='PHP Unit Testing Zend_Framework Controllers With ExtJS'/><author><name>Late Night CMS Junkie</name><uri>http://www.blogger.com/profile/06799426777907100854</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3228799232951198165.post-7207875655539444205</id><published>2011-07-20T07:20:00.001-07:00</published><updated>2011-07-20T07:20:24.347-07:00</updated><title type='text'>Spotify is as good as they said it was #spotify #itunes</title><content type='html'>&lt;div class='posterous_autopost'&gt;After playing around with Spotify over the weekend, I REALLY like it. If you don't know what it is, think of a radio station where you can pick any song they have and play it when you want to hear it as much as you like. From a UI standpoint, it's iTunes without purchasing the song. Downside is that the mobile platform is only for paying subscribers, but as an application to use while I'm programming, it's awesome. &lt;p /&gt; The UI is easily navigable, since it's set up like iTunes. Search works really well. &lt;p /&gt; The sound quality is much better than Pandora. In Pandora, the low frequencies are sometimes thin, in Spotify bass booms through the headphones like it should and the sound is full, rich, and wonderful. &lt;p /&gt; So, Spotify is everything I had heard it was and I'm stoked to be using it in the USA! &lt;p style="font-size: 10px;"&gt; &lt;a href="http://posterous.com"&gt;Posted via email&lt;/a&gt;  from &lt;a href="http://rogergwyatt.com/spotify-is-as-good-as-they-said-it-was-spotif"&gt;From the mind of Roger Wyatt&lt;/a&gt; &lt;/p&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3228799232951198165-7207875655539444205?l=latenightcms.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://latenightcms.blogspot.com/feeds/7207875655539444205/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://latenightcms.blogspot.com/2011/07/spotify-is-as-good-as-they-said-it-was.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3228799232951198165/posts/default/7207875655539444205'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3228799232951198165/posts/default/7207875655539444205'/><link rel='alternate' type='text/html' href='http://latenightcms.blogspot.com/2011/07/spotify-is-as-good-as-they-said-it-was.html' title='Spotify is as good as they said it was #spotify #itunes'/><author><name>Late Night CMS Junkie</name><uri>http://www.blogger.com/profile/06799426777907100854</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3228799232951198165.post-5776637181175294486</id><published>2011-03-14T11:43:00.001-07:00</published><updated>2011-03-14T11:43:07.965-07:00</updated><title type='text'>Thinking about the MacBook Air</title><content type='html'>&lt;div class='posterous_autopost'&gt;&lt;p&gt; I looked at it again, paused, and looked at it again. Was all that really necessary? Maybe it was all my changing needs, but lugging around two laptops had reached the end of my tolerance.&lt;/p&gt;&lt;p&gt;Okay, so I really don't need to lug around two laptops, but thanks to Microsoft ditching their software vault and me not realizing that I had my copy of Visual Studio in the vault when it ended, I can't transfer the software to my new laptop. So, I lug around the old laptop for doing Visual Studio work, which is less and less each day as the project that needed that tool fades into the distance. I'm onto Ruby and Android development now and even my new laptop has become a drag - literally.&lt;/p&gt;&lt;h2&gt;Let me go back in time&lt;/h2&gt;&lt;p&gt;When my less-than-recent laptop started acting funny, I thought it best to invest in a new one before the old one died. I wanted more screen so I got a 17&amp;quot; HP. I really liked it even though it was quite heavy. More screen = better. However, now I'm reconsidering the decision. &lt;/p&gt;&lt;h2&gt;Enter the thoughts of MacBook Air&lt;/h2&gt;&lt;p&gt;So now I'm thinking lighter is better and I'm looking at the MacBook Air (13&amp;quot; model) and I'm seriously considering it. It's about twice as much as I would spend on a Windows laptop, but there are other things that I want to do (Garageband is one of the bonuses in which I'm interested). &lt;/p&gt; &lt;p style="font-size: 10px;"&gt; &lt;a href="http://posterous.com"&gt;Posted via email&lt;/a&gt;  from &lt;a href="http://rogergwyatt.com/thinking-about-the-macbook-air"&gt;From the mind of Roger Wyatt&lt;/a&gt; &lt;/p&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3228799232951198165-5776637181175294486?l=latenightcms.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://latenightcms.blogspot.com/feeds/5776637181175294486/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://latenightcms.blogspot.com/2011/03/thinking-about-macbook-air.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3228799232951198165/posts/default/5776637181175294486'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3228799232951198165/posts/default/5776637181175294486'/><link rel='alternate' type='text/html' href='http://latenightcms.blogspot.com/2011/03/thinking-about-macbook-air.html' title='Thinking about the MacBook Air'/><author><name>Late Night CMS Junkie</name><uri>http://www.blogger.com/profile/06799426777907100854</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3228799232951198165.post-3738038943283849097</id><published>2011-01-25T22:14:00.001-08:00</published><updated>2011-01-25T22:14:50.712-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Slow Carb Diet'/><category scheme='http://www.blogger.com/atom/ns#' term='Four-Hour Body'/><category scheme='http://www.blogger.com/atom/ns#' term='Tim Ferriss'/><title type='text'>My Experience with The Four-hour Body's Slow-Carb Diet</title><content type='html'>&lt;div class='posterous_autopost'&gt;&lt;p&gt;The mirror didn't lie, I had really let myself go. After seven months working my new job, living out of hotels did a number on me and it was time for a change. Living on restaurant food and working 12 hour days was adding up. In seven months, I had gained 15 pounds. Add that to the 30 pounds I had gained over the past 8 years running my own company (entrepreneurs seem to put on the weight), and I was a mess.&lt;/p&gt;  &lt;p&gt;I also had had enough.&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: large;"&gt;Enter The Four Hour Body&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;I had already read The Four Hour Workweek and really liked the concept of identifying the core elements necessary to achieve desired results. When Tim's new book came out, I glanced through it then added it to my Nook (BTW, love the Nook, I'll write about that later). I decided that January was the start of a new chapter. My birthday in right after Christmas, and who was I kidding, there was no way I would be able to start something during my week away from the road. So January I started following the Slow-Carb Diet.&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: large;"&gt;The Road is a Tough Challenge&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;Until we move to the new job, I live in hotels for 4 nights a week. I don't have a kitchen because I really don't want to mess with all of that, but I had to start eating differently. I discovered several ways to eat the Four-Hour Body way with only a micro-fridge and a microwave. You can too, but you need a few things to get started.&lt;/p&gt;  &lt;p&gt;1. Pick up a set of Ziploc microwaveable containers with lids. 3-4 should do you just fine&lt;/p&gt;  &lt;p&gt;2. Pick up one good divided plastic container with lid. This makes it easy to heat up everything without making a bunch of dirty dishes to clean&lt;/p&gt;  &lt;p&gt;3. A scale. I got one for $15 from Wal-Mart. It's thin, and packs in my suitecase. If I track my weight, I pay attention to what I eat.&lt;/p&gt;  &lt;p&gt;4. A can opener. I forgot this one so now I carry it with me.&lt;/p&gt;  &lt;p&gt;5. Pepper and cinnamon for some basic flavoring. Go out and buy spices that you like. Personally, I don't salt anything&lt;/p&gt;  &lt;p&gt;Okay, now you have the basics and it's time to go shopping.&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: large;"&gt;My Shopping List For the Road&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;3 packs of Tyson Grilled &amp;amp; Ready steak and chicken strips. Flavor is pretty good. It's not gourmet by any stretch, but it's pre-cooked, tasty and comes in a microwaveable pouch. I buy 3 because I don't do dinner in the hotel on Thursdays, I'm heading home.&lt;/p&gt;  &lt;p&gt;1 six-pack of eggs&lt;/p&gt;  &lt;p&gt;1 small container of Eggbeaters&lt;/p&gt;  &lt;p&gt;Canned veggies and/or Mixed veggies in a steam pouch (from the freezer section). If I can get the small cans, I prefer them because it's pretty much a single serving. Remember, the less washing up the better and I don't have to store anything. I don't find lots of variety in the small cans so that's what the Ziploc containers are for.&lt;/p&gt;  &lt;p&gt;1 jar of Salsa (great for breakfast)&lt;/p&gt;  &lt;p&gt;A 12-pack of bottles water. I hate the tap water and usually drink 2 bottles each evening.&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: large;"&gt;Microwaving My Way To Success&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;So now that I have my groceries, it's time to put them to use. The Slow-carb diet say to have protein within 1 hour of waking, preferably within 30 minutes of waking. So breakfast consists of:&lt;/p&gt;  &lt;p&gt;Eggbeaters in one of the Ziploc containers with one egg mixed in. Microwave for 2-3 minutes. Be prepared to see the eggs inflate like a ballon while in the microwave. Looks weird the first time. When done, take them out, splash on some Salsa, maybe throw in some black beans and gobble it down. Grab a bottle of water and down it before leaving the room for work.&lt;/p&gt;  &lt;p&gt;Lunch is usually El Pollo Loco (Love it!) or Boston Market (get the mixed vegatables and a 1/4 White - doubled up on the veggies and no cornbread).&lt;/p&gt;  &lt;p&gt;Dinner is where I mix things up. I take one of the packages of Tyson meat. Heat it up a bit (it's more dense so it takes more heating up than the veggies). Dump it in one of the sections of the divided container. Pop open my choice of veggies for the evening - one in each of the other two sections. Cap and nuke it. Add some spices and a bottle of water and dinner is over.&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: large;"&gt;How To Tackle Eating On The Road&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;Well, that takes care of my breakfast and dinner, I eat those in my room. Lunch is usually eating at a restaurant. However, when I'm travelling, I need to be able to eat without eating the bad carbs and it's not easy, but it's not THAT hard. Here are my favorites at common pitstops:&lt;/p&gt;  &lt;p&gt;El Pollo Loco: The Chicken Caesar Salad (my typical lunch)&lt;/p&gt;  &lt;p&gt;Wendy's: The Baja Chicken Salad - comes with Chili and the salad veggies. There is a small amount of cheese, but it's not piled on there&lt;/p&gt;  &lt;p&gt;McDonald's: They have several salad choices, but one of my favorite tips is for the afternoon snack. I get two of their Grilled Chicken Snack Wraps, unroll them and eat the chicken, lettuce, etc and leave the tortilla.&lt;/p&gt;  &lt;p&gt;Burger King: The new BK Garden Salad blows, don't buy it unless you are desperate.&lt;/p&gt;  &lt;p&gt;Taco Bell: I haven't found anything at Taco Bell that isn't mostly rice so I pretty much have ditched it.&lt;/p&gt;  &lt;p&gt;KFC: actually a choice on the road. They have a grilled chicken option now and when paired with corn or beans, you get your veggies without the starches.&lt;/p&gt;  &lt;p&gt;Subway: No offense to Jared, but when I think Subway, I think a big, honking hunk of white bread. I know you can Saladify anything, but I haven't explored that.&lt;/p&gt;  &lt;p&gt;Boston Market: If you run into one, the quality of the food makes it one of my favorite choices. Just stay away from the Creamed Spinach, Sweet Potatos or other bad carbs. Takes some willpower because their food is so good.&lt;/p&gt;  &lt;p&gt;One thing I've noticed is that nothing that's appropriate for the Slow-Carb diet can be eaten while driving. This is a good thing. Makes you slow down which makes you eat better.&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: large;"&gt;Results? You Bet&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;Three weeks into it and I've lost 10 pounds. I haven't exercised a bit because 1) It's too cold and 2) I'm working too much on this project. Each morning I weigh myself and I lose about 1.2 pounds per day. I set up a Google Docs spreadsheet to track it, and I can update via my Android phone so it's no problem to gather the data.&lt;/p&gt;  &lt;p&gt;Unlike the Zone Diet or other diets, I'm never hungry. I also find that because I don't have to measure, count calories, or any of that nonsense it's easy to make it a habit. The core rules are:&lt;/p&gt;  &lt;p&gt;1) Don't eat white foods or anything that can be turned into a white food.&lt;/p&gt;  &lt;p&gt;2) Eat protein when you get up.&lt;/p&gt;  &lt;p&gt;3) Eat every four hours.&lt;/p&gt;  &lt;p&gt;4) Once per week, throw out the rules and eat whatever you want. Last weekend I had Mellow Mushroom's Pizza among other things. My weight went up all of 1.5 pounds for about 48 hours before my body got rid of the excess water.&lt;/p&gt;  &lt;p&gt;Sure, Tim has six rules in the book and they improve the results. But if you remember those three you will have success.&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;p&gt;So, there you go. An easy way to live for someone who has battled maintaining weight their entire life. Thanks, Tim!&lt;/p&gt; &lt;p style="font-size: 10px;"&gt; &lt;a href="http://posterous.com"&gt;Posted via email&lt;/a&gt;  from &lt;a href="http://rogergwyatt.com/my-experience-with-the-four-hour-bodys-slow-c"&gt;From the mind of Roger Wyatt&lt;/a&gt; &lt;/p&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3228799232951198165-3738038943283849097?l=latenightcms.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://latenightcms.blogspot.com/feeds/3738038943283849097/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://latenightcms.blogspot.com/2011/01/my-experience-with-four-hour-body-slow.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3228799232951198165/posts/default/3738038943283849097'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3228799232951198165/posts/default/3738038943283849097'/><link rel='alternate' type='text/html' href='http://latenightcms.blogspot.com/2011/01/my-experience-with-four-hour-body-slow.html' title='My Experience with The Four-hour Body&amp;#39;s Slow-Carb Diet'/><author><name>Late Night CMS Junkie</name><uri>http://www.blogger.com/profile/06799426777907100854</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3228799232951198165.post-7681172632252888810</id><published>2011-01-15T14:28:00.001-08:00</published><updated>2011-01-15T14:28:00.926-08:00</updated><title type='text'>Redo online is awesome</title><content type='html'>&lt;div class='posterous_autopost'&gt;Easy to use and it beats the heck out of standing at the kiosk. &lt;p style="font-size: 10px;"&gt; &lt;a href="http://posterous.com"&gt;Posted via email&lt;/a&gt;  from &lt;a href="http://rogergwyatt.com/redo-online-is-awesome"&gt;From the mind of Roger Wyatt&lt;/a&gt; &lt;/p&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3228799232951198165-7681172632252888810?l=latenightcms.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://latenightcms.blogspot.com/feeds/7681172632252888810/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://latenightcms.blogspot.com/2011/01/redo-online-is-awesome.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3228799232951198165/posts/default/7681172632252888810'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3228799232951198165/posts/default/7681172632252888810'/><link rel='alternate' type='text/html' href='http://latenightcms.blogspot.com/2011/01/redo-online-is-awesome.html' title='Redo online is awesome'/><author><name>Late Night CMS Junkie</name><uri>http://www.blogger.com/profile/06799426777907100854</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3228799232951198165.post-2170919116818766289</id><published>2010-07-20T19:15:00.001-07:00</published><updated>2010-07-20T19:15:23.367-07:00</updated><title type='text'>Anticipation - it keeps me waitin'</title><content type='html'>&lt;div class='posterous_autopost'&gt;I'm now second on the waiting list at my local Sprint store for my Evo. I was hoping it would come in today, but was told today that it would be Friday. I feel like a kid waiting for Christmas.&lt;p&gt;&lt;a href='http://posterous.com/getfile/files.posterous.com/tynken/CNbPaOSPCBiK11BC44UX9yjxJrVABKZQurjFgyeIgjjrTbCgu8hcNS4dTGVc/htc-evo-4g.jpg'&gt;&lt;img src="http://posterous.com/getfile/files.posterous.com/tynken/TAGLY7dIvAcV4iOqjVs7Fpdu5Z9l897qfr3vg3mpogASU4c0evnDmNPD7QJI/htc-evo-4g.jpg.scaled.500.jpg" width="500" height="323"/&gt;&lt;/a&gt; &lt;/p&gt; &lt;p style="font-size: 10px;"&gt; &lt;a href="http://posterous.com"&gt;Posted via email&lt;/a&gt;  from &lt;a href="http://rogergwyatt.com/anticipation-it-keeps-me-waitin"&gt;From the mind of Roger Wyatt&lt;/a&gt; &lt;/p&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3228799232951198165-2170919116818766289?l=latenightcms.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://latenightcms.blogspot.com/feeds/2170919116818766289/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://latenightcms.blogspot.com/2010/07/anticipation-it-keeps-me-waitin.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3228799232951198165/posts/default/2170919116818766289'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3228799232951198165/posts/default/2170919116818766289'/><link rel='alternate' type='text/html' href='http://latenightcms.blogspot.com/2010/07/anticipation-it-keeps-me-waitin.html' title='Anticipation - it keeps me waitin&amp;#39;'/><author><name>Late Night CMS Junkie</name><uri>http://www.blogger.com/profile/06799426777907100854</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3228799232951198165.post-2770757996458815865</id><published>2010-07-06T17:40:00.001-07:00</published><updated>2010-07-06T17:40:47.793-07:00</updated><title type='text'>... maybe not, the Evo looks pretty darn good</title><content type='html'>&lt;div class='posterous_autopost'&gt;     So I previously posted that I was going to go to the dark side, and pick up and iPhone and maybe a mac to start playing with. The iPhone would be my primary phone, but I've been really struggling with going through the hassles to leave Sprint, where I KNOW what my charges are going to be each month to the convoluted billing of AT&amp;amp;T. Really, the phone is great and although the Sith Lord Steve Jobs does pull the strings the gear is nice. &lt;p /&gt;  Then came the Evo 4g. What can I say - it is an incredible device and provides all the functionality I want. I can develop on it without paying $100/year. So, I think I'm going to belay the move to iPhone and AT&amp;amp;T. &lt;p style="font-size: 10px;"&gt; &lt;a href="http://posterous.com"&gt;Posted via email&lt;/a&gt;  from &lt;a href="http://rogergwyatt.com/-maybe-not-the-evo-looks-pretty-darn-good"&gt;From the mind of Roger Wyatt&lt;/a&gt; &lt;/p&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3228799232951198165-2770757996458815865?l=latenightcms.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://latenightcms.blogspot.com/feeds/2770757996458815865/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://latenightcms.blogspot.com/2010/07/maybe-not-evo-looks-pretty-darn-good.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3228799232951198165/posts/default/2770757996458815865'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3228799232951198165/posts/default/2770757996458815865'/><link rel='alternate' type='text/html' href='http://latenightcms.blogspot.com/2010/07/maybe-not-evo-looks-pretty-darn-good.html' title='... maybe not, the Evo looks pretty darn good'/><author><name>Late Night CMS Junkie</name><uri>http://www.blogger.com/profile/06799426777907100854</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3228799232951198165.post-4400256418280842457</id><published>2010-06-27T18:14:00.001-07:00</published><updated>2010-06-27T18:14:52.652-07:00</updated><title type='text'>Going to the Dark Side</title><content type='html'>&lt;div class='posterous_autopost'&gt;     After much back and forth, I've decided to go to the dark side - I'm going to buy an IPhone and a Mac. I still have my issues with the Sith Lord Steve Jobs control freakishness over apps, but their loosening of the provisioning rules for the IPhone apps, so I can develop apps and make them available to my customers to provision to their employees without going through the app store has made me really lean in Apple's direction.&lt;br /&gt; &lt;h3&gt;iPhone Pros (iPhone 4)&lt;/h3&gt; &lt;ul&gt; &lt;li&gt;what hasn't already been written about it. Great camera with flash, HD video, dual cameras, dual mics, etc. &lt;br /&gt; &lt;/li&gt; &lt;li&gt;WiFi connectivity when it's available so I'm not using my minutes or bandwidth most of the time&lt;/li&gt; &lt;li&gt;Great app SDK&lt;/li&gt; &lt;li&gt;Multi-tasking&lt;br /&gt; &lt;/li&gt; &lt;/ul&gt; &lt;h3&gt;iPhone Cons&lt;/h3&gt; &lt;ul&gt; &lt;li&gt;Sith Lord Steve Jobs &lt;br /&gt; &lt;/li&gt; &lt;li&gt;Objective-C (have to learn it, but I write in a slew of languages anyway)&lt;/li&gt; &lt;li&gt;Can only develop apps on a Mac (have to buy a Mac)&lt;/li&gt; &lt;li&gt;Non-replaceable battery by me&lt;br /&gt; &lt;/li&gt; &lt;/ul&gt; So the alternative is an Android phone, but I haven't been blown away by anything on them. I'll be developing apps for it, but for my own phone, I'm going iPhone.&lt;p /&gt;  UPDATE&lt;br /&gt; The issue with the reception on the phone (see Gizmodo, and just about any other outlet) hasn't made me rethink it. However, see Jobs' replies to his customers - typical Sith Lord response. &lt;p style="font-size: 10px;"&gt; &lt;a href="http://posterous.com"&gt;Posted via email&lt;/a&gt;  from &lt;a href="http://rogergwyatt.com/going-to-the-dark-side"&gt;From the mind of Roger Wyatt&lt;/a&gt; &lt;/p&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3228799232951198165-4400256418280842457?l=latenightcms.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://latenightcms.blogspot.com/feeds/4400256418280842457/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://latenightcms.blogspot.com/2010/06/going-to-dark-side.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3228799232951198165/posts/default/4400256418280842457'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3228799232951198165/posts/default/4400256418280842457'/><link rel='alternate' type='text/html' href='http://latenightcms.blogspot.com/2010/06/going-to-dark-side.html' title='Going to the Dark Side'/><author><name>Late Night CMS Junkie</name><uri>http://www.blogger.com/profile/06799426777907100854</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3228799232951198165.post-1990022562856216146</id><published>2010-05-25T17:07:00.001-07:00</published><updated>2010-05-25T17:07:53.229-07:00</updated><title type='text'>The coolest flash fun website I've ever seen</title><content type='html'>&lt;div class='posterous_autopost'&gt;&lt;div class="posterous_bookmarklet_entry"&gt; &lt;embed name="incredibox" src="http://www.incredibox.fr/index.swf" type="application/x-shockwave-flash" height="400" quality="high" width="500" /&gt;    &lt;div class="posterous_quote_citation"&gt;via &lt;a href="http://www.incredibox.fr/"&gt;incredibox.fr&lt;/a&gt;&lt;/div&gt; &lt;p&gt;Make your own beatbox group and change it as you go along. Really easy to use and really easy to create amazing loops.&lt;/p&gt;&lt;/div&gt; &lt;p style="font-size: 10px;"&gt; &lt;a href="http://posterous.com"&gt;Posted via web&lt;/a&gt;  from &lt;a href="http://rogergwyatt.com/the-coolest-flash-fun-website-ive-ever-seen"&gt;From the mind of Roger Wyatt&lt;/a&gt; &lt;/p&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3228799232951198165-1990022562856216146?l=latenightcms.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://latenightcms.blogspot.com/feeds/1990022562856216146/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://latenightcms.blogspot.com/2010/05/coolest-flash-fun-website-i-ever-seen.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3228799232951198165/posts/default/1990022562856216146'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3228799232951198165/posts/default/1990022562856216146'/><link rel='alternate' type='text/html' href='http://latenightcms.blogspot.com/2010/05/coolest-flash-fun-website-i-ever-seen.html' title='The coolest flash fun website I&amp;#39;ve ever seen'/><author><name>Late Night CMS Junkie</name><uri>http://www.blogger.com/profile/06799426777907100854</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3228799232951198165.post-908437579229237187</id><published>2010-05-09T18:42:00.001-07:00</published><updated>2010-05-09T18:42:19.657-07:00</updated><title type='text'>Virality is all about making your users look awesome in front of their friends - Henrik Werdelin</title><content type='html'>&lt;div class='posterous_autopost'&gt;&lt;div class="posterous_bookmarklet_entry"&gt; &lt;blockquote&gt;&lt;div&gt;  				&lt;p&gt;A national &lt;a href="http://mashable.com/2009/08/25/gen-y-social-media-study/" target="_blank"&gt;study out of SDSU&lt;/a&gt; shows that 57% of young people believe their generation uses social networking sites for self-promotion, narcissism and attention seeking. This is important for you as a product developer/designer because this emotional-need forms the basis for creating virality in your products. People don’t just share messages to be nice to their friends. Take a look at Facebook or Twitter, for instance – often status messages are equally about saying something about the sender, so the important question you should ask yourself is: “How will the message I want spread make my audience look cool or clever to their friends, colleagues or customers?”&lt;/p&gt;  &lt;p&gt;A few examples:&lt;/p&gt;  &lt;ol&gt;  &lt;li&gt;&lt;strong&gt;Make them show they are early adopters.&lt;/strong&gt; Make users feel important by giving them something to say about themselves, e.g. I am a user of this new cool software – it’s still in closed beta – but I can try to get you an invite.&lt;/li&gt;  &lt;li&gt;&lt;strong&gt;Make them seem funny or interesting.&lt;/strong&gt; When adding a&amp;nbsp; ‘tell/invite a friend’ into your sign-up flow be sure to spend extra time making your invite email interesting. You are essentially the ghost-writer for your users. Make them sound funny or interesting – they will want to share your story with more people.&lt;/li&gt;  &lt;li&gt;&lt;strong&gt;Allow people to add their personal touch to your story. &lt;/strong&gt;Users are more likely to spread stories that have their own personal touch. So leave room for them to add their fingerprint to your narrative easily. I guess my best example is to always allow for a bit of space when you do tweets – so people can add their own comment to your narrative. By doing that, you allow your audience to become co-senders. If that fails, then piggyback your message on to something entertaining, as a last resort, in case there is no other way to make the message itself cool to communicate. Just think of how OfficeMax have made you Elfyourself.com&lt;/li&gt;  &lt;li&gt;&lt;strong&gt;Make people better storytellers by giving them templates or ‘guide them’.&lt;/strong&gt; Facebook’s initial status update did this delicately by adding the ‘Henrik is…’ to each update. This forced users to write a certain type of update and allowed them to be more creative by working within the template of the ‘Henrik is…’ template. A new trend is to give people personal information about themselves to share via &lt;a href="http://blog.hellohenrik.com/?p=268" target="_blank"&gt;Behaviour Generated Content&lt;/a&gt; generation.&lt;/li&gt;  &lt;/ol&gt;  &lt;p&gt;Any other examples?&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blog.hellohenrik.com/?p=1870#" target="_blank"&gt;@werdelin&lt;/a&gt;&lt;/p&gt;  			&lt;/div&gt;&lt;/blockquote&gt;    &lt;div class="posterous_quote_citation"&gt;via &lt;a href="http://blog.hellohenrik.com/?p=1870"&gt;blog.hellohenrik.com&lt;/a&gt;&lt;/div&gt; &lt;p&gt;Very interesting post by Henrik Werdelin. This is especially true for Twitter retweets, I believe.&lt;/p&gt;&lt;/div&gt; &lt;p style="font-size: 10px;"&gt; &lt;a href="http://posterous.com"&gt;Posted via web&lt;/a&gt;  from &lt;a href="http://rogergwyatt.com/virality-is-all-about-making-your-users-look-1"&gt;From the mind of Roger Wyatt&lt;/a&gt; &lt;/p&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3228799232951198165-908437579229237187?l=latenightcms.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://latenightcms.blogspot.com/feeds/908437579229237187/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://latenightcms.blogspot.com/2010/05/virality-is-all-about-making-your-users.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3228799232951198165/posts/default/908437579229237187'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3228799232951198165/posts/default/908437579229237187'/><link rel='alternate' type='text/html' href='http://latenightcms.blogspot.com/2010/05/virality-is-all-about-making-your-users.html' title='Virality is all about making your users look awesome in front of their friends - Henrik Werdelin'/><author><name>Late Night CMS Junkie</name><uri>http://www.blogger.com/profile/06799426777907100854</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3228799232951198165.post-1514408232649603534</id><published>2010-05-08T19:18:00.001-07:00</published><updated>2010-05-08T19:18:13.788-07:00</updated><title type='text'>A Single Molecule Computes Thousands of Times Faster than Your PC | Popular Science</title><content type='html'>&lt;div class='posterous_autopost'&gt;&lt;div class="posterous_bookmarklet_entry"&gt; &lt;img src="http://posterous.com/getfile/files.posterous.com/tynken/eaGqiBAsnliisEqxorhzkAxClavxejrpuJbtJIoEAoisJFHfBdyqchfrDfpI/media_httpwwwpopscico_oFhHt.jpg.scaled500.jpg" width="452" height="292"/&gt;     &lt;div class="posterous_quote_citation"&gt;via &lt;a href="http://www.popsci.com/science/article/2010-05/single-molecule-computes-thousands-times-faster-your-pc"&gt;popsci.com&lt;/a&gt;&lt;/div&gt; &lt;p&gt;We need to combine this with some incredible leaps in memory. So many applications are more memory access intensive (whether RAM or disk) that great leaps like this in Quantum Processing need a corresponding leap in storage access.&lt;/p&gt;&lt;/div&gt; &lt;p style="font-size: 10px;"&gt; &lt;a href="http://posterous.com"&gt;Posted via web&lt;/a&gt;  from &lt;a href="http://rogergwyatt.com/a-single-molecule-computes-thousands-of-times"&gt;From the mind of Roger Wyatt&lt;/a&gt; &lt;/p&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3228799232951198165-1514408232649603534?l=latenightcms.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://latenightcms.blogspot.com/feeds/1514408232649603534/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://latenightcms.blogspot.com/2010/05/single-molecule-computes-thousands-of.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3228799232951198165/posts/default/1514408232649603534'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3228799232951198165/posts/default/1514408232649603534'/><link rel='alternate' type='text/html' href='http://latenightcms.blogspot.com/2010/05/single-molecule-computes-thousands-of.html' title='A Single Molecule Computes Thousands of Times Faster than Your PC | Popular Science'/><author><name>Late Night CMS Junkie</name><uri>http://www.blogger.com/profile/06799426777907100854</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3228799232951198165.post-4021702610982583291</id><published>2010-05-08T05:15:00.001-07:00</published><updated>2010-05-08T05:15:25.491-07:00</updated><title type='text'>Modern CSS Layouts, Part 2: The Essential Techniques - Smashing Magazine</title><content type='html'>&lt;div class='posterous_autopost'&gt;&lt;div class="posterous_bookmarklet_entry"&gt; &lt;blockquote&gt;&lt;div&gt;&lt;h3&gt;&lt;a href="http://www.smashingmagazine.com" title="Smashing Magazine Homepage"&gt;Smashing Magazine - we smash you with the information that will make your life easier. really.&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;&lt;/p&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.smashingmagazine.com/2010/05/06/modern-css-layouts-part-2-the-essential-techniques#"&gt;&lt;strong&gt;Smashing Magazine&lt;/strong&gt;&lt;span&gt; &lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.smashingmagazine.com/2010/05/06/modern-css-layouts-part-2-the-essential-techniques#"&gt;&lt;strong&gt;Smashing Network&lt;/strong&gt;&lt;span&gt; &lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;div&gt;&lt;h3&gt;&lt;a href="http://www.smashingmagazine.com/2010/05/06/modern-css-layouts-part-2-the-essential-techniques/"&gt;Modern CSS Layouts, Part 2: The Essential Techniques&lt;/a&gt;&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;By &lt;a href="http://www.smashingmagazine.com/author/zoe-mickley-gillenwater/" title="Posts by Zoe Mickley Gillenwater"&gt;Zoe Mickley Gillenwater&lt;/a&gt;&lt;/li&gt;&lt;li&gt;May 6th, 2010&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.smashingmagazine.com/category/coding/" title="View all posts in Coding" rel="category tag"&gt;Coding&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.smashingmagazine.com/2010/05/06/modern-css-layouts-part-2-the-essential-techniques/#comments" title="Comment on Modern CSS Layouts, Part 2: The Essential Techniques"&gt;34 Comments&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;div&gt; &lt;span&gt;Advertisement&lt;/span&gt;&lt;p&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;In &lt;a href="http://www.smashingmagazine.com/2009/10/26/modern-css-layouts-the-essential-characteristics/"&gt;Modern CSS Layouts, Part 1: The Essential Characteristics&lt;/a&gt;, you learned that modern, CSS-based web sites should be progressively enhanced, adaptive to diverse users, modular, efficient and typographically rich. Now that you know &lt;em&gt;what&lt;/em&gt; characterizes a modern CSS web site, &lt;em&gt;how&lt;/em&gt; do you build one? Here are dozens of essential techniques and tools to learn and use to achieve the characteristics of today’s most successful CSS-based web pages.&lt;/p&gt;&lt;p&gt;Just as in the previous article, we’re not going to be talking about design trends and styles; these styles are always changing. Instead, we’re focusing on the specific techniques that you need to know to create modern CSS-based web pages of any style. For each technique or tool, we’ll indicate which of the five characteristics it helps meet. To keep this shorter than an encyclopedia, we’ll also just cover the basics of each technique, then point you to some useful, hand-picked resources to learn the full details.&lt;/p&gt;&lt;p&gt;You can jump straight to:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.smashingmagazine.com/2010/05/06/modern-css-layouts-part-2-the-essential-techniques#moderncss-css3"&gt;CSS3&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.smashingmagazine.com/2010/05/06/modern-css-layouts-part-2-the-essential-techniques#moderncss-html5"&gt;HTML5&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.smashingmagazine.com/2010/05/06/modern-css-layouts-part-2-the-essential-techniques#moderncss-ie"&gt;IE Filtering&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.smashingmagazine.com/2010/05/06/modern-css-layouts-part-2-the-essential-techniques#moderncss-flexible"&gt;Flexible Layouts&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.smashingmagazine.com/2010/05/06/modern-css-layouts-part-2-the-essential-techniques#moderncss-grids"&gt;Layout Grids&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.smashingmagazine.com/2010/05/06/modern-css-layouts-part-2-the-essential-techniques#moderncss-efficient"&gt;Efficient CSS Development Practices&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.smashingmagazine.com/2010/05/06/modern-css-layouts-part-2-the-essential-techniques#moderncss-performance"&gt;CSS Performance&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.smashingmagazine.com/2010/05/06/modern-css-layouts-part-2-the-essential-techniques#moderncss-fonts"&gt;Font Embedding and Replacement&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;CSS3&lt;/h3&gt;&lt;p&gt;CSS3, the newest version of CSS that is now being partially supported by most browsers, is the primary thing you need to know in order to create modern CSS web sites, of course. CSS is a styling language, so it’s no surprise that most of what’s new in CSS3 is all about visual effects.  But CSS3 is about more than progressive enhancement and pretty typography. It can also aid usability by making content easier to read, as well as improve efficiency in development and page performance.&lt;/p&gt;&lt;p&gt;There are too many CSS3 techniques to cover in a single article, let alone an article that isn’t just about CSS3! So, we’ll go through the basics of the most important or supported CSS3 techniques and point you to some great resources to learn more in-depth.&lt;/p&gt;&lt;h4&gt;CSS3 Visual Effects&lt;/h4&gt;&lt;p&gt;&lt;strong&gt;Semi-transparent Color&lt;/strong&gt;&lt;br /&gt;&lt;em&gt;Aids in: progressive enhancement, efficiency&lt;/em&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.w3.org/TR/css3-color/#rgba-color"&gt;RGBA&lt;/a&gt; allows you to specify a color by not only setting the values of red, green, and blue that it’s comprised of, but also the level of opacity it should have. An alternative to RGBA is &lt;a href="http://www.w3.org/TR/css3-color/#hsla-color"&gt;HSLA&lt;/a&gt;, which works the same way, but allows you to set values of hue, saturation, and lightness, instead of values of red, green, and blue. The article &lt;a href="http://dev.opera.com/articles/view/color-in-opera-10-hsl-rgb-and-alpha-transparency/"&gt;Color in Opera 10  —  HSL, RGB and Alpha Transparency&lt;/a&gt; explains how HSLA can be more intuitive to use than RGBA.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.24ways.org/"&gt;&lt;img src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/2010/05/part2_rgba.jpg" height="315" alt="Part2 Rgba in Modern CSS Layouts, Part 2: The Essential Techniques" width="500" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;The &lt;a href="http://www.24ways.org/"&gt;24 Ways web site&lt;/a&gt; makes extensive use of RGBA to layer semi-transparent boxes and text over each other.&lt;/em&gt;&lt;/p&gt;&lt;p&gt;RGBA or HSLA isn’t just about making things look cool; it can also improve your web site’s efficiency. You don’t have to take time to make alpha-transparent PNGs to use as backgrounds, since you can just use a color in the CSS, and the user agent doesn’t have to download those images when loading the site.&lt;/p&gt;&lt;p&gt;For more on how to use RGBA and HSLA, including fallback methods for browsers that don’t support it, see:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://24ways.org/2009/working-with-rgba-colour"&gt;Working With RGBA Colour&lt;/a&gt; (24 ways)&lt;/li&gt;&lt;li&gt;&lt;a href="http://css-tricks.com/rgba-browser-support/"&gt;RGBa Browser Support&lt;/a&gt; (includes a hack for IE, by CSS-Tricks)&lt;/li&gt;&lt;li&gt;&lt;a href="http://buildinternet.com/2010/02/flexible-color-schemes-in-layouts-with-rgba/"&gt;Flexible Color Schemes in Layouts with RGBa&lt;/a&gt; (Build Internet!)&lt;/li&gt;&lt;li&gt;&lt;a href="http://forabeautifulweb.com/blog/about/is_css3_rgba_ready_to_rock"&gt;Is CSS3 RGBa ready to rock? (screencast)&lt;/a&gt; (For a Beautiful Web)&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.lateralcode.com/playing-with-css3-colors/"&gt;Playing Around with CSS3 Colors&lt;/a&gt; (Lateral Code)&lt;/li&gt;&lt;li&gt;&lt;a href="http://dev.opera.com/articles/view/color-in-opera-10-hsl-rgb-and-alpha-transparency/"&gt;Color in Opera 10  —  HSL, RGB and Alpha Transparency&lt;/a&gt; (Opera Developer Community)&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.zenelements.com/blog/css3-hsl-hsla-color-opacity/"&gt;CSS3 HSL &amp;amp; HSLA&lt;/a&gt; (Zen Elements)&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Styling Backgrounds and Borders&lt;/strong&gt;&lt;br /&gt;&lt;em&gt;Aids in: progressive enhancement, efficiency&lt;/em&gt;&lt;/p&gt;&lt;p&gt;CSS3 offers a whole host of new ways to style backgrounds and borders, often without having to use images or add extra &lt;code&gt;div&lt;/code&gt;s. Most of these new techniques already have good browser support, and since they’re mainly used for purely cosmetic changes, they’re a good way to get some progressive enhancement goodness going in your sites right away.&lt;/p&gt;&lt;p&gt;Here are some of the new things CSS3 lets you do with backgrounds:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Multiple backgrounds on a single element:&lt;/strong&gt; You can now add &lt;a href="http://www.w3.org/TR/css3-background/#layering"&gt;more than one background image&lt;/a&gt; to an element by listing each image, separated by commas, in the &lt;code&gt;background-image&lt;/code&gt; property. No more nesting extra &lt;code&gt;div&lt;/code&gt;s just to have more elements to attach background images onto!&lt;/li&gt;&lt;li&gt;&lt;strong&gt;More control over where backgrounds are placed:&lt;/strong&gt; The new &lt;a href="http://www.w3.org/TR/css3-background/#the-background-clip"&gt;&lt;code&gt;background-clip&lt;/code&gt;&lt;/a&gt; and &lt;a href="http://www.w3.org/TR/css3-background/#the-background-origin"&gt;&lt;code&gt;background-origin&lt;/code&gt;&lt;/a&gt; properties let you control if backgrounds are displayed under borders, padding, or just content, as well as where the origin point for &lt;code&gt;background-position&lt;/code&gt; should be.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Background sizing:&lt;/strong&gt; You can scale background images using the new &lt;a href="http://www.w3.org/TR/css3-background/#background-size"&gt;&lt;code&gt;background-size&lt;/code&gt; property&lt;/a&gt;. While scaling won’t look good on many background images, it could be really handy on abstract, grunge-type backgrounds, where tiling can be difficult and where some image distortion would be unnoticeable.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Gradients:&lt;/strong&gt; While just part of a CSS3 &lt;a href="http://dev.w3.org/csswg/css3-images/#gradients-"&gt;draft spec&lt;/a&gt;, Safari, Chrome and Firefox support declaring multiple color and placement values in the &lt;code&gt;background-image&lt;/code&gt; property to create gradients without images. This allows the gradients to scale with their container — unlike image gradients — and eliminates the need for page users to download yet another image while viewing your site.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;CSS3 lets you do the following with borders:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Rounded corners:&lt;/strong&gt; Use the &lt;a href="http://www.w3.org/TR/css3-background/#the-border-radius"&gt;&lt;code&gt;border-radius&lt;/code&gt;-property&lt;/a&gt; to get rounded corners on &lt;code&gt;div&lt;/code&gt;s, buttons, and whatever else your heart desires — all without using images or JavaScript.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Images for borders:&lt;/strong&gt; With CSS 2.1, the only way to create a graphic border was to fake it with background images, often multiple ones pieced together on multiple &lt;code&gt;div&lt;/code&gt;s. You can now add unique borders without having to use background images by adding the images to the borders directly, using the new &lt;a href="http://www.w3.org/TR/css3-background/#border-images"&gt;&lt;code&gt;border-image&lt;/code&gt; property&lt;/a&gt;, which also allows you to control how the images scale and tile.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;a href="http://www.stunningcss3.com/"&gt;&lt;img src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/2010/05/part2_borderradius.jpg" height="183" alt="Part2 Borderradius in Modern CSS Layouts, Part 2: The Essential Techniques" width="500" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;The &lt;code&gt;border-radius&lt;/code&gt; property can be used to round corners and even create circles out of pure CSS, with no images needed. (&lt;a href="http://www.stunningcss3.com/"&gt;Stunning CSS3 web site&lt;/a&gt;)&lt;/em&gt;&lt;/p&gt;&lt;p&gt;These background and border techniques have already been covered well in a lot of great articles and tutorials, so check these out for the details:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.smashingmagazine.com/2009/09/02/backgrounds-in-css-everything-you-need-to-know/"&gt;Backgrounds In CSS: Everything You Need To Know&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.smashingmagazine.com/2009/06/15/take-your-design-to-the-next-level-with-css3/"&gt;Take Your Design To The Next Level With CSS3&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://dev.opera.com/articles/view/css3-border-background-boxshadow/"&gt;CSS3 borders, backgrounds and box-shadows&lt;/a&gt; (Opera Developer Community)&lt;/li&gt;&lt;li&gt;&lt;a href="https://developer.mozilla.org/web-tech/2009/08/04/background-images-no-longer-restricted-to-original-size-explore-the-space-with-background-size/"&gt;Background images no longer restricted to original size: explore the space with background-size&lt;/a&gt; (Mozilla Developer Center)&lt;/li&gt;&lt;li&gt;&lt;a href="http://snook.ca/archives/html_and_css/multiple-bg-css-gradients"&gt;Multiple Backgrounds and CSS Gradients&lt;/a&gt; (Snook.ca)&lt;/li&gt;&lt;li&gt;&lt;a href="http://net.tutsplus.com/tutorials/html-css-techniques/quick-tip-understanding-css3-gradients/"&gt;Quick Tip: Understanding CSS3 Gradients&lt;/a&gt; (Nettuts+)&lt;/li&gt;&lt;li&gt;&lt;a href="https://developer.mozilla.org/en/Using_gradients"&gt;Using gradients&lt;/a&gt; (Mozilla Developer Center)&lt;/li&gt;&lt;li&gt;&lt;a href="http://css-tricks.com/css3-gradients/"&gt;Speed Up with CSS3 Gradients&lt;/a&gt; (CSS-Tricks)&lt;/li&gt;&lt;li&gt;Gradient syntax generators are available from westciv.com (&lt;a href="http://westciv.com/tools/gradients/index.html"&gt;linear&lt;/a&gt; and &lt;a href="http://westciv.com/tools/radialgradients/index.html"&gt;radial&lt;/a&gt;) and &lt;a href="http://gradients.glrzad.com/"&gt;glrzad.com&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.bloggingcss.com/en/tutorials/the-css3-border-radius-property/"&gt;The CSS3 border-radius property&lt;/a&gt; (Blogging CSS)&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.the-art-of-web.com/css/border-radius/"&gt;CSS: border-radius and -moz-border-radius&lt;/a&gt; (The Art of Web)&lt;/li&gt;&lt;li&gt;&lt;a href="http://muddledramblings.com/table-of-css3-border-radius-compliance"&gt;Table of CSS3 border-radius Compliance&lt;/a&gt; (Muddled Ramblings and Half-Baked Ideas)&lt;/li&gt;&lt;li&gt;&lt;a href="http://ejohn.org/blog/border-image-in-firefox/"&gt;border-image in Firefox&lt;/a&gt; (John Resig)&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.lrbabe.com/sdoms/borderImage/index.html"&gt;Meet a ninja living in browsers&lt;/a&gt; (on &lt;code&gt;border-image&lt;/code&gt;, from lrbabe.com)&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.smashingmagazine.com/2010/01/25/the-new-hotness-using-css3-visual-effects/"&gt;The New Hotness: Using CSS3 Visual Effects&lt;/a&gt; (see third tutorial on &lt;code&gt;border-image&lt;/code&gt;)&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Drop Shadows&lt;/strong&gt;&lt;br /&gt;&lt;em&gt;Aids in: progressive enhancement, adaptability, efficiency&lt;/em&gt;&lt;/p&gt;&lt;p&gt;Drop shadows can provide some visual polish to your design, and now they’re possible to achieve without images, both on boxes and on text.&lt;/p&gt;&lt;p&gt;The &lt;a href="http://www.w3.org/TR/css3-background/#the-box-shadow"&gt;&lt;code&gt;box-shadow&lt;/code&gt; property&lt;/a&gt; has been temporarily removed from the CSS3 spec, but is supposed to be making its re-appearance soon. In the meantime, it’s still possible to get image-free drop shadows on boxes in Firefox and Safari/Chrome using the &lt;code&gt;-moz-box-shadow&lt;/code&gt; and &lt;code&gt;-webkit-box-shadow&lt;/code&gt; properties, respectively, and in Opera 10.5 using the regular &lt;code&gt;box-shadow&lt;/code&gt; property with no prefix. In the property, you set the the shadow’s horizontal and vertical offsets from the box, color, and can optionally set blur radius and/or spread radius.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.becherry.be/"&gt;&lt;img src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/2010/05/part2_boxshadow.jpg" height="214" alt="Part2 Boxshadow in Modern CSS Layouts, Part 2: The Essential Techniques" width="500" style="display: inline;" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;The &lt;a href="http://www.becherry.be/"&gt;Cherry web site&lt;/a&gt; uses drop shadows created with &lt;code&gt;box-shadow&lt;/code&gt; on many boxes and buttons.&lt;/em&gt;&lt;/p&gt;&lt;p&gt;The &lt;a href="http://www.w3.org/TR/css3-text/#text-shadow"&gt;&lt;code&gt;text-shadow&lt;/code&gt; property&lt;/a&gt; adds drop shadows on — you guessed it — text. It’s supported by all the major browsers except — you guessed it — Internet Explorer. This makes it the perfect progressive enhancement candidate — it’s simply a visual effect, with no harm done if some users don’t see it. Similarly to &lt;code&gt;box-shadow&lt;/code&gt;, it takes a horizontal offset, vertical offset, blur radius and color.&lt;/p&gt;&lt;p&gt;Using &lt;code&gt;text-shadow&lt;/code&gt; keeps you from resorting to Flash or images for your text. This can speed up the time it takes you to develop the site, as well as speed up your pages. Avoiding Flash and image text can also aid accessibility and usability; just make sure your text is still legible with the drop shadow behind it, so you don’t inadvertently &lt;em&gt;hurt&lt;/em&gt; usability instead!&lt;/p&gt;&lt;p&gt;For more on box and text drop shadows, see:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.smashingmagazine.com/2009/06/15/take-your-design-to-the-next-level-with-css3/"&gt;Take Your Design To The Next Level With CSS3&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://hacks.mozilla.org/2009/06/moz-box-shadow/"&gt;Shadow boxing with -moz-box-shadow&lt;/a&gt; (relevant to non-Mozilla browsers to, from hacks.mozilla.org)&lt;/li&gt;&lt;li&gt;&lt;a href="http://placenamehere.com/article/372/CSS3TrialsBoxShadowAndMore"&gt;CSS3 Trials: Box-Shadow And More&lt;/a&gt; (Chris Casciano’s Place Name Here)&lt;/li&gt;&lt;li&gt;&lt;a href="http://placenamehere.com/article/384/CSS3BoxShadowinInternetExplorerBlurShadow"&gt;CSS3 Box Shadow in Internet Explorer [Blur-Shadow]&lt;/a&gt; (Chris Casciano’s Place Name Here)&lt;/li&gt;&lt;li&gt;&lt;a href="https://developer.mozilla.org/en/CSS/text-shadow"&gt;Mozilla Developer Center text-shadow&lt;/a&gt; (includes browser support chart and notes)&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.kremalicious.com/2008/04/make-cool-and-clever-text-effects-with-css-text-shadow/"&gt;Text-Shadow Exposed: Make cool and clever text effects with css text-shadow&lt;/a&gt; (Kremalicious)&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.admixweb.com/2009/12/04/using-text-shadow-in-htmlcss/"&gt;Using Text Shadow in HTML/CSS&lt;/a&gt; (includes a hack for IE, by admixWeb)&lt;/li&gt;&lt;li&gt;Westciv’s &lt;a href="http://westciv.com/tools/boxshadows/index.html"&gt;box-shadow&lt;/a&gt; and &lt;a href="http://westciv.com/tools/shadows/index.html"&gt;text-shadow generators&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Transforms&lt;/strong&gt;&lt;br /&gt;&lt;em&gt;Aids in: progressive enhancement, adaptability, efficiency&lt;/em&gt;&lt;/p&gt;&lt;p&gt;CSS3 makes it possible to do things like rotate, scale, and skew the objects in your pages without resorting to images, Flash, or JavaScript. All of these effects are called &lt;a href="http://www.w3.org/TR/css3-3d-transforms/"&gt;“transforms.”&lt;/a&gt; They’re supported in Firefox, Safari, Chrome, and Opera 10.5.&lt;/p&gt;&lt;p&gt;You apply a transform using the &lt;code&gt;transform&lt;/code&gt; property, naturally (though for now you’ll need to use the browser-specific equivalents: &lt;code&gt;-moz-transform&lt;/code&gt;, &lt;code&gt;-webkit-transform&lt;/code&gt;, and &lt;code&gt;-o-transform&lt;/code&gt;). You can also use the &lt;code&gt;transform-origin&lt;/code&gt; property to specify the point of origin from which the transform takes place, such as the center or top right corner of the object.&lt;/p&gt;&lt;p&gt;In the &lt;code&gt;transform&lt;/code&gt; property, you specify the type of transform (called “transform functions”), and then in parentheses write the measurements needed for that particular transform. For instance, a value of &lt;code&gt;translate(10px, 20px)&lt;/code&gt; would move the element 10 pixels to the right and 20 pixels down from its original location in the flow. Other supported transform functions are &lt;code&gt;scale&lt;/code&gt;, &lt;code&gt;rotate&lt;/code&gt;, and &lt;code&gt;skew&lt;/code&gt;.&lt;/p&gt;&lt;p&gt;&lt;a href="http://sxsw.beercamp.com/"&gt;&lt;img src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/2010/05/part2_transform.gif" height="245" alt="Part2 Transform in Modern CSS Layouts, Part 2: The Essential Techniques" width="500" style="display: inline;" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;The &lt;a href="http://sxsw.beercamp.com/"&gt;BeerCamp SXSW 2010 site&lt;/a&gt; scales and rotates the sponsor logos on hover.&lt;/em&gt;&lt;/p&gt;&lt;p&gt;For the full syntax on these transform functions, as well as examples of how to use them, see:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.smashingmagazine.com/2009/12/19/what-you-need-to-know-about-behavioral-css/"&gt;What You Need To Know About Behavioral CSS&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://dev.opera.com/articles/view/css3-transitions-and-2d-transforms/"&gt;CSS3 transitions and 2D transforms&lt;/a&gt; (Opera Developer Community)&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.the-art-of-web.com/css/css-animation/"&gt;CSS: Animation Using CSS Transforms&lt;/a&gt; (The Art of Web)&lt;/li&gt;&lt;li&gt;&lt;a href="https://developer.mozilla.org/en/CSS/-moz-transform"&gt;Mozilla Developer Center -moz-transform&lt;/a&gt; (includes notes and links on using the more complicated matrix function)&lt;/li&gt;&lt;li&gt;&lt;a href="http://24ways.org/2009/going-nuts-with-css-transitions"&gt;Going Nuts with CSS Transitions&lt;/a&gt; (24 Ways)&lt;/li&gt;&lt;li&gt;&lt;a href="http://snook.ca/archives/html_and_css/css-text-rotation"&gt;Text Rotation with CSS&lt;/a&gt; (Snook.ca)&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.smashingmagazine.com/2010/01/25/the-new-hotness-using-css3-visual-effects/"&gt;The New Hotness: Using CSS3 Visual Effects&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://webkit.org/blog/386/3d-transforms/"&gt;3D Transforms&lt;/a&gt; (Surfin’ Safari)&lt;/li&gt;&lt;li&gt;&lt;a href="http://westciv.com/tools/transforms/index.html"&gt;Westciv’s transforms generator&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Animation and Transitions&lt;/strong&gt;&lt;br /&gt;&lt;em&gt;Aids in: progressive enhancement, efficiency&lt;/em&gt;&lt;/p&gt;&lt;p&gt;Animation is now no longer the solely the domain of Flash or JavaScript — you can now create animation in pure HTML and CSS. Unfortunately, CSS3 animation and transitions do not have very good browser support, but as with most of the effects we’ve talked about so far, they’re great for adding a little non-essential flair.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.w3.org/TR/css3-transitions/"&gt;CSS3 transitions&lt;/a&gt; are essentially the simplest type of animation. They smoothly ease the change between one CSS value to another over a specified duration of time. They’re triggered by changing element states, such as hovering. They’re supported by Safari, Chrome, and Opera 10.5.&lt;/p&gt;&lt;p&gt;To create a transition, all you have to do is specify which elements you want to apply the transition to and which CSS properties will transition, using the &lt;code&gt;transition-property&lt;/code&gt; property. You’ll also need to add a &lt;code&gt;transition-duration&lt;/code&gt; value in seconds (“s” is the unit), since the default time a transition takes is 0 seconds. You can add them both in the &lt;code&gt;transition&lt;/code&gt; shorthand property. You can also specify a delay or a timing function to more finely tune how the two values switch.&lt;/p&gt;&lt;p&gt;Transitions are easiest to understand with live examples, so check out:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.smashingmagazine.com/2009/12/19/what-you-need-to-know-about-behavioral-css/"&gt;What You Need To Know About Behavioral CSS&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://samuli.hakoniemi.net/css3-transitions-are-we-there-yet/"&gt;CSS3 Transitions – Are We There Yet?&lt;/a&gt; (hakoniemi)&lt;/li&gt;&lt;li&gt;&lt;a href="http://dev.opera.com/articles/view/css3-transitions-and-2d-transforms/"&gt;CSS3 transitions and 2D transforms&lt;/a&gt; (Opera Developer Community)&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.webdesignerdepot.com/2010/01/css-transitions-101/"&gt;CSS Transitions 101&lt;/a&gt; (Webdesigner Depot)&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.the-art-of-web.com/css/timing-function/"&gt;CSS: Transition Timing Functions&lt;/a&gt; (The Art of Web)&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.smashingmagazine.com/2010/01/25/the-new-hotness-using-css3-visual-effects/"&gt;The New Hotness: Using CSS3 Visual Effects&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Beyond transitions, full-fledged &lt;a href="http://www.w3.org/TR/css3-animations/"&gt;animations&lt;/a&gt; with multiple keyframes are also possible with CSS3 (but currently only supported in Safari/Chrome). First, you give the animation a name and define what the animation will do at different points (keyframes, indicated with percentages) through its duration. Next, you apply this animation to an element using the &lt;code&gt;animation-name&lt;/code&gt;, &lt;code&gt;animation-duration&lt;/code&gt;, and &lt;code&gt;animation-interation-count&lt;/code&gt; properties. You could also set a delay and timing function, just like with transitions. For details, see:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.smashingmagazine.com/2009/12/19/what-you-need-to-know-about-behavioral-css/"&gt;What You Need To Know About Behavioral CSS&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.smashingmagazine.com/2009/12/02/pushing-your-buttons-with-practical-css3/"&gt;Pushing Your Buttons With Practical CSS3&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://24ways.org/2009/css-animations"&gt;CSS Animations&lt;/a&gt; (24 Ways)&lt;/li&gt;&lt;li&gt;&lt;a href="http://webkit.org/blog/324/css-animation-2/"&gt;CSS Animation&lt;/a&gt; (Surfin’ Safari)&lt;/li&gt;&lt;li&gt;&lt;a href="http://trentwalton.com/2010/03/22/css3-in-transition/"&gt;CSS3 In Transition&lt;/a&gt; (a brief article on the usability considerations of animation and transitions, by Trent Walton)&lt;/li&gt;&lt;li&gt; &lt;a href="http://www.1stwebdesigner.com/development/50-awesome-css3-animations/" title="50 Awesome Animations made with CSS3" rel="bookmark"&gt;50 Awesome   Animations made with CSS3&lt;/a&gt; &lt;a href="http://designshack.co.uk/articles/css/10-amazing-examples-of-innovative-css3-animation"&gt;&lt;/a&gt; (1stwebdesigner)&lt;/li&gt;&lt;/ul&gt;&lt;h4&gt;CSS3 Usability / Readability Enhancements&lt;/h4&gt;&lt;p&gt;Most the CSS3 techniques we’ve gone over so far have been purely cosmetic effects that aid progressive enhancement. But CSS3 can also be used to improve the usability of your pages.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Creating Multiple Columns of Text&lt;/strong&gt;&lt;br /&gt;&lt;em&gt;Aids in: progressive enhancement, adaptability&lt;/em&gt;&lt;/p&gt;&lt;p&gt;Some pieces of text are more readable in narrow, side-by-side columns, similar to traditional newspaper layout. You can tell the browser to arrange your text into &lt;a href="http://www.w3.org/TR/css3-multicol/"&gt;columns&lt;/a&gt; by either defining a width for each column (the &lt;code&gt;column-width&lt;/code&gt; property) or by defining a number of columns (the &lt;code&gt;column-count&lt;/code&gt; property). Other new properties let you control gutters/gaps, rule lines, breaking between columns and spanning across columns. (For now, you need to use the browser-specific prefixes of &lt;code&gt;-moz&lt;/code&gt; and &lt;code&gt;-webkit&lt;/code&gt;.) This is another one of those techniques that can harm instead of aid usability if used improperly, as explained in “&lt;a href="http://www.456bereastreet.com/archive/200509/css3_multicolumn_layout_considered_harmful/"&gt;CSS3 Multi-column layout considered harmful&lt;/a&gt;,” so use it judiciously.&lt;/p&gt;&lt;p&gt;For details, see:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://webdesignernotebook.com/css/remembering-the-css3-multi-column-layout-module/"&gt;Remembering: The CSS3 Multi-Column Layout Module&lt;/a&gt; (Web Designer Notebook)&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.quirksmode.org/css/multicolumn.html"&gt;Columns&lt;/a&gt; (quirksmode)&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.smashingmagazine.com/2009/06/15/take-your-design-to-the-next-level-with-css3/"&gt;Take Your Design To The Next Level With CSS3&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Controlling Text Wrapping and Breaking&lt;/strong&gt;&lt;br /&gt;&lt;em&gt;Aids in: adaptability&lt;/em&gt;&lt;/p&gt;&lt;p&gt;CSS3 gives you more control over how blocks of text and individual words break and wrap if they’re too long to fit in their containers. Setting &lt;a href="http://www.w3.org/TR/css3-text/#word-wrap"&gt;&lt;code&gt;word-wrap&lt;/code&gt;&lt;/a&gt; to &lt;code&gt;break-word&lt;/code&gt; will break a long word and wrap it onto a new line (particularly handy for long URLs in your text). The &lt;a href="http://www.w3.org/TR/css3-text/#text-wrap"&gt;&lt;code&gt;text-wrap&lt;/code&gt;&lt;/a&gt; property gives you a number of options for where breaks may and may not occur between words in your text. The CSS2 &lt;a href="http://www.w3.org/TR/css3-text/#white-space"&gt;&lt;code&gt;white-space&lt;/code&gt;&lt;/a&gt; property has now in CSS3 become a shorthand property for the new &lt;a href="http://www.w3.org/TR/css3-text/#white-space-collapse"&gt;&lt;code&gt;white-space-collapse&lt;/code&gt;&lt;/a&gt; and &lt;code&gt;text-wrap&lt;/code&gt; properties, giving you more control over what spaces and line breaks are preserved from your markup to the rendered page. Another property worth mentioning, even though&lt;br /&gt; it’s not currently in the CSS3 specification, is &lt;code&gt;text-overflow&lt;/code&gt;, which allows the browser to add an ellipsis character (…) to the end of a long string of text instead of letting it overflow.&lt;/p&gt;&lt;p&gt;For details, see:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Mozilla Developer Center’s reference on &lt;a href="https://developer.mozilla.org/en/CSS/word-wrap"&gt;&lt;code&gt;word-wrap&lt;/code&gt;&lt;/a&gt; and &lt;a href="https://developer.mozilla.org/En/CSS/white-space"&gt;&lt;code&gt;white-space&lt;/code&gt;&lt;/a&gt; (relevant to non-Mozilla browsers, and includes notes on browser compatibility)&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.456bereastreet.com/archive/200704/how_to_prevent_html_tables_from_becoming_too_wide/"&gt;How to prevent HTML tables from becoming too wide&lt;/a&gt; (using &lt;code&gt;word-wrap&lt;/code&gt; and &lt;code&gt;overflow&lt;/code&gt; for various browsers, from 456 Berea Street)&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.longren.org/2006/09/27/wrapping-text-inside-pre-tags/"&gt;Wrapping Text Inside Pre Tags&lt;/a&gt; (using &lt;code&gt;white-space&lt;/code&gt; and &lt;code&gt;word-wrap&lt;/code&gt; for various browsers, from Unwakeable)&lt;/li&gt;&lt;li&gt;&lt;a href="http://safalra.com/web-design/html-and-css/white-space-property/"&gt;The ‘white-space’ Property In CSS&lt;/a&gt; (Safalra’s Website)&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.css3.com/css-text-overflow/"&gt;CSS text-overflow&lt;/a&gt; (css3.com)&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.electrictoolbox.com/ellipsis-html-css/"&gt;Using ellipsis with HTML and CSS&lt;/a&gt; (The Electric Toolbox)&lt;/li&gt;&lt;li&gt; &lt;a href="http://www.smashingmagazine.com/2010/03/01/css-and-the-future-of-text/"&gt;The   Future Of CSS Typography&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Media Queries&lt;/strong&gt;&lt;br /&gt;&lt;em&gt;Aids in: adaptability, efficiency&lt;/em&gt;&lt;/p&gt;&lt;p&gt;CSS2 let you apply different styles to different media types — screen, print, and so on. CSS3’s &lt;a href="http://www.w3.org/TR/css3-mediaqueries/"&gt;media queries&lt;/a&gt; take this a step further by letting you customize styles based on the user’s viewport width, display aspect ratio, whether or not his display shows color, and more. For instance, you could detect the user’s viewport width and change a horizontal nav bar into a vertical menu on wide viewports, where there is room for an extra column. Or you could change the colors of your text and backgrounds on non-color displays.&lt;/p&gt;&lt;p&gt;&lt;a href="http://devfiles.myopera.com/articles/1541/mediaqueries-example-basic.html"&gt;&lt;img src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/2010/05/part2_mediaqueries1.jpg" height="339" alt="Part2 Mediaqueries1 in Modern CSS Layouts, Part 2: The Essential Techniques" width="500" style="display: inline;" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://devfiles.myopera.com/articles/1541/mediaqueries-example-basic.html"&gt;&lt;img src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/2010/05/part2_mediaqueries2.jpg" height="297" alt="Part2 Mediaqueries2 in Modern CSS Layouts, Part 2: The Essential Techniques" width="327" style="display: inline;" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;This &lt;a href="http://devfiles.myopera.com/articles/1541/mediaqueries-example-basic.html"&gt;demo file from Opera&lt;/a&gt; uses media queries to rearrange elements and resize text and images based on viewport size.&lt;/em&gt;&lt;/p&gt;&lt;p&gt;Media queries couldn’t come at a better time — there is more variety in the devices and settings people use to browse the web than ever before. You can now optimize your designs more precisely for these variations to provide a more usable and attractive design, but without having to write completely separate style sheets, use JavaScript redirects, and other less efficient development practices.&lt;/p&gt;&lt;p&gt;Media queries are supported to some degree by all the major browsers except IE, and there are lots of great articles and tutorials explaining how to use them right now:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://hacks.mozilla.org/2009/06/media-queries/"&gt;A short introduction to media queries in Firefox 3.5&lt;/a&gt; (applies to other browsers too, from Mozilla Hacks)&lt;/li&gt;&lt;li&gt;&lt;a href="http://dev.opera.com/articles/view/safe-media-queries/"&gt;Safe media queries&lt;/a&gt; (Opera Developer Community)&lt;/li&gt;&lt;li&gt;&lt;a href="http://helephant.com/2008/07/the-bleeding-edge-of-web-media-queries/"&gt;The bleeding edge of web: media queries&lt;/a&gt; (Helephant.com)&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.unintentionallyblank.co.uk/2007/11/27/media-queries-and-css3-experiments-varying-columns/"&gt;Media Queries and CSS3 Experiments  —  Varying Columns&lt;/a&gt; (Unintentionally Blank)&lt;/li&gt;&lt;li&gt;&lt;a href="http://reinholdweber.com/css/css3-a-big-storm-is-coming/"&gt;CSS3 – a big storm is coming&lt;/a&gt; (Reinhold Weber) and &lt;a href="http://mindgarden.de/combining-css3-media-queries-and-multi-columns"&gt;Using CSS3 media queries to achieve multiple columns on browser resize&lt;/a&gt; (mindgarden) show how to use the new multiple columns technique described above in conjunction with media queries&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.smashingmagazine.com/2009/06/15/take-your-design-to-the-next-level-with-css3/"&gt;Take Your Design To The Next Level With CSS3&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Test your browser’s media queries support at &lt;a href="http://virtuelvis.com/gallery/mediaqueries/"&gt;Virtuelvis&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Media queries are particularly helpful in serving alternate styles to small-screen mobile devices, as these articles and tutorials explain:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.alistapart.com/articles/return-of-the-mobile-stylesheet/"&gt;Return of the Mobile Stylesheet&lt;/a&gt; (A List Apart)&lt;/li&gt;&lt;li&gt;&lt;a href="http://carsonified.com/blog/mobile/coding-for-the-mobile-web/"&gt;Coding for the mobile web&lt;/a&gt; (Think Vitamin)&lt;/li&gt;&lt;li&gt;&lt;a href="http://dev.opera.com/articles/view/how-to-serve-the-right-content-to-mobile/"&gt;How to serve the right content to mobile browsers&lt;/a&gt; (Opera Developer Community)&lt;/li&gt;&lt;li&gt;&lt;a href="http://developer.apple.com/safari/library/documentation/AppleApplications/Reference/SafariWebContent/OptimizingforSafarioniPhone/OptimizingforSafarioniPhone.html"&gt;Optimizing Web Content&lt;/a&gt; (on iPhone, from Safari Web Content Guide)&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.alexgdesign.co.uk/articles/mobile-optimised-websites-using-css3-media-queries/"&gt;Mobile optimised websites using CSS3 Media Queries&lt;/a&gt; (Alex Gibson)&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.thecssninja.com/css/iphone-orientation-css"&gt;Determine iPhone orientation using CSS&lt;/a&gt; (The CSS Ninja)&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;For other options on how to deal with mobile devices, see &lt;a href="http://www.smashingmagazine.com/2009/01/13/mobile-web-design-trends-2009/"&gt;Mobile Web Design Trends For 2009&lt;/a&gt;.&lt;/p&gt;&lt;h4&gt;Improving Efficiency Through CSS3&lt;/h4&gt;&lt;p&gt;Many of the visual effect properties of CSS3 that we’ve gone over have a great bonus in addition to making your design look great: they can improve efficiency, both in your development process and in the performance of the pages themselves.&lt;/p&gt;&lt;p&gt;Any CSS3 property that keeps you from having to create and add extra images is going to reduce the time it takes you to create new pages as well as re-skin existing ones. Less images also mean less stuff for the server to have to send out and less stuff for the users to download, both of which increase page loading speed.&lt;/p&gt;&lt;p&gt;CSS3 properties that keep you from having to add extra &lt;code&gt;div&lt;/code&gt;s or extra classes can also reduce your development time as well as file size. We’ve already gone over some great techniques that help with this, but there are a few more worth mentioning.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;The &lt;code&gt;box-sizing&lt;/code&gt; Property&lt;/strong&gt;&lt;br /&gt;&lt;em&gt;Aids in: efficiency&lt;/em&gt;&lt;/p&gt;&lt;p&gt;In addition to the &lt;code&gt;div&lt;/code&gt;-conserving properties we’ve already talked about, the &lt;a href="http://www.w3.org/TR/css3-ui/#box-sizing"&gt;&lt;code&gt;box-sizing&lt;/code&gt;&lt;/a&gt; property can also help limit your &lt;code&gt;div&lt;/code&gt; use in certain situations.&lt;/p&gt;&lt;p&gt;In the traditional W3C box model of CSS 2.1, the value you declare for a width or height controls the width or height of the &lt;em&gt;content area&lt;/em&gt; only, and then the padding and border are &lt;em&gt;added&lt;/em&gt; onto it. (This is called the content-box model.) If you’ve worked with CSS for a while, you’re probably used to the content-box box model and don’t really think much about it. But, it can lead you to add extra &lt;code&gt;div&lt;/code&gt;s from time to time. For instance, if you want to set a box’s width and padding in different units of measurement from each other, like ems for the width and pixels for the padding, it’s often easiest to nest another &lt;code&gt;div&lt;/code&gt; and apply the padding to this instead, to make sure you know how much total space the box will take up. In small doses, nesting additional &lt;code&gt;div&lt;/code&gt;s simply to add padding or borders is not a great sin. But in complicated designs, the number of extra &lt;code&gt;div&lt;/code&gt;s can really add up, which adds to both your development&lt;br /&gt; time and the file size of the HTML and CSS.&lt;/p&gt;&lt;p&gt;Setting the new &lt;code&gt;box-sizing&lt;/code&gt; property to &lt;code&gt;border-box&lt;/code&gt; instead of &lt;code&gt;content-box&lt;/code&gt; solves this problem so you can get rid of all those extra &lt;code&gt;div&lt;/code&gt;s. When a box is using the border-box box model, the browser will &lt;em&gt;subtract&lt;/em&gt; the padding and border from the width of the box instead of adding it. You always know that the total space the box takes up equals the width value you’ve declared.&lt;/p&gt;&lt;p&gt;&lt;img src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/2010/05/part2_boxsizing.gif" height="248" alt="Part2 Boxsizing in Modern CSS Layouts, Part 2: The Essential Techniques" width="500" style="display: inline;" /&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;In the traditional box model (bottom image), padding and border are added onto the declared width. By setting &lt;code&gt;box-sizing&lt;/code&gt; to &lt;code&gt;border-box&lt;/code&gt; (top image), the padding and border are subtracted from the declared width.&lt;/em&gt;&lt;/p&gt;&lt;p&gt;The &lt;code&gt;box-sizing&lt;/code&gt; property has good &lt;a href="http://a.deveria.com/caniuse/#eat=css3-boxsizing"&gt;browser support&lt;/a&gt;, with the exception of IE 6 and IE 7. Unlike the more decorative CSS3 properties, however, lack of support for &lt;code&gt;box-sizing&lt;/code&gt; could cause your entire layout to fall apart. You’ll have to determine how serious the problem would be in your particular case, whether it’s worth living with or hacking, or whether you should avoid using &lt;code&gt;box-sizing&lt;/code&gt; for now.&lt;/p&gt;&lt;p&gt;For details, see:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://helephant.com/2008/10/css3-box-sizing-attribute/"&gt;CSS3 box-sizing attribute&lt;/a&gt; (Helephant.com)&lt;/li&gt;&lt;li&gt;&lt;a href="http://jhop.me/css/css3/the-css3-box-sizing-concept-a-solution-to-a-longstanding-problem"&gt;CSS3 ‘box-sizing’ concept&lt;/a&gt; (James Hopkins)&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;CSS3 Pseudo-Classes and Attribute Selectors&lt;/strong&gt;&lt;br /&gt;&lt;em&gt;Aids in: progressive enhancement, efficiency, modularity, rich typography&lt;/em&gt;&lt;/p&gt;&lt;p&gt;CSS has several really useful &lt;a href="http://www.w3.org/TR/css3-selectors/"&gt;selectors&lt;/a&gt; that are only now coming into common use. Many of these are new in CSS3, but others have been around since CSS2, just not supported by all browsers (read: IE) until recently, and thus largely ignored. IE still doesn’t support them all, but they can be used to add non-essential visual effects.&lt;/p&gt;&lt;p&gt;Taking advantage of these newer, more advanced selectors can improve your efficiency and make your pages more modular because they can reduce the need for lots of extra classes, &lt;code&gt;div&lt;/code&gt;s, and &lt;code&gt;span&lt;/code&gt;s to create the effects you want to see. Some selectors even make certain effects possible that you can’t  do with classes, such as styling the first line of a block of text differently. These types of visual effects can improve the typography of your site and aid progressive enhancement.&lt;/p&gt;&lt;p&gt;[IMAGE?]&lt;/p&gt;&lt;p&gt;For details, see:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.smashingmagazine.com/2009/06/15/take-your-design-to-the-next-level-with-css3/"&gt;Take Your Design To The Next Level With CSS3&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.smashingmagazine.com/2009/08/17/taming-advanced-css-selectors/"&gt;Taming Advanced CSS Selectors&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.smashingmagazine.com/2009/06/15/take-your-design-to-the-next-level-with-css3/"&gt;CSS 3 selectors explained&lt;/a&gt; (456 Berea Street)&lt;/li&gt;&lt;li&gt;Browser support charts from &lt;a href="http://kimblim.dk/css-tests/selectors/"&gt;kimblim.dk&lt;/a&gt; and &lt;a href="http://dev.l-c-n.com/CSS3-selectors/browser-support.php"&gt;l-c-n.com&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Keith Clark’s &lt;a href="http://www.keithclark.co.uk/labs/ie-css3/"&gt;ie-css3.js&lt;/a&gt; emulates support for all CSS3 pseudo selectors to IE, via JavaScript&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Read these articles and tutorials for examples of how to put advanced selectors to practical use right now:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://24ways.org/2009/cleaner-code-with-css3-selectors"&gt;Cleaner Code with CSS3 Selectors&lt;/a&gt; (24 Ways)&lt;/li&gt;&lt;li&gt;&lt;a href="http://inspectelement.com/tutorials/a-look-at-some-of-the-new-selectors-introduced-in-css3/"&gt;A Look at Some of the New Selectors Introduced in CSS3&lt;/a&gt; (Inspect Element)&lt;/li&gt;&lt;li&gt;&lt;a href="http://forabeautifulweb.com/blog/about/image_management_naming_and_attribute_selectors/"&gt;Image management, naming and attribute selectors&lt;/a&gt; (For a Beautiful Web)&lt;/li&gt;&lt;li&gt;&lt;a href="http://dev.opera.com/articles/view/css-3-attribute-selectors/"&gt;CSS 3 attribute selectors&lt;/a&gt; (Opera Developer Community)&lt;/li&gt;&lt;li&gt;&lt;a href="http://webdesignernotebook.com/css/styling-a-poem-with-advanced-css-selectors/"&gt;Styling a Poem with Advanced CSS Selectors&lt;/a&gt; (Web Designer Notebook)&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;HTML5&lt;/h3&gt;&lt;p&gt;Although this article is focused on modern CSS techniques, you can’t have great CSS-based web pages without great markup behind them. Although &lt;a href="http://dev.w3.org/html5/spec/Overview.html"&gt;HTML5&lt;/a&gt; is still in development, and although debate continues about its strengths and weaknesses, some web developers are already using it in their web pages. While HTML 4.01 and XHTML 1.0 are still great choices for the markup of your pages, it’s a good idea to start learning what HTML5 has to offer so you can work with it comfortably in the future and perhaps start taking advantage of some of its features now. So, here is a brief overview of how HTML5 can help with our five modern CSS-based web design characteristics (progressive enrichment, adaptive to diverse users, modular, efficient, typographically rich).&lt;/p&gt;&lt;p&gt;Note: Many  of these techniques are not supported in enough browsers yet to make their benefits really tangible, so think of this section as, perhaps, “here’s how HTML5 &lt;em&gt;can&lt;/em&gt; aid these five characteristics in the &lt;em&gt;future&lt;/em&gt;.”&lt;/p&gt;&lt;h4&gt;New Structural Markup&lt;/h4&gt;&lt;p&gt;&lt;em&gt;Aids: adaptability, modularity, efficiency&lt;/em&gt;&lt;/p&gt;&lt;p&gt; HTML5 introduces a number of new semantic elements that can add more structure to your markup to increase modularity. For instance, inside your main content &lt;code&gt;div&lt;/code&gt; you can have several &lt;code&gt;article&lt;/code&gt; elements, each a standalone chunk of content, and each can have its own &lt;code&gt;header&lt;/code&gt;, &lt;code&gt;footer&lt;/code&gt;, and heading hierarchy (&lt;code&gt;h1&lt;/code&gt; through &lt;code&gt;h6&lt;/code&gt;). You can further divide up an &lt;code&gt;article&lt;/code&gt; element with &lt;code&gt;section&lt;/code&gt; elements, again with their own &lt;code&gt;header&lt;/code&gt;s and &lt;code&gt;footer&lt;/code&gt;s. Having clearer, more semantic markup makes it easier to shuffle independent chunks of content around your site if needed, or syndicate them through RSS on other sites and blogs.&lt;/p&gt;&lt;p&gt;In the future, as user agents build features to take advantage of HTML5, these new elements could also make pages more adaptable to different user scenarios. For instance, web pages or browsers could generate table of contents based on the richer hierarchy provided by HTML5, to assist navigation within a page or across a site. Assistive technology like screen readers could use the elements to help users jump around the page to get straight to the important content without needing “skip nav” links.&lt;/p&gt;&lt;p&gt;Although many of these benefits won’t be realized until some unforeseen time in the future, you can start adding these new elements now, so that as soon as tools pop up that can take full advantage of them, you’ll be ready. Even if your browser doesn’t recognize an element, you can still style it — that’s standard browser behavior. Well, in every browser but IE. Luckily, you can easily trick IE into styling these elements using a very simple piece of JavaScript, handily provided by &lt;a href="http://remysharp.com/2009/01/07/html5-enabling-script/"&gt;Remy Sharp&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;Of course, you usually can’t depend on all your users having JavaScript enabled, so the very safest and most conservative option is to not use these new structural elements just yet, but use &lt;code&gt;div&lt;/code&gt;s with corresponding &lt;code&gt;class&lt;/code&gt; names as if they were these new elements. For instance, where you would use an &lt;code&gt;article&lt;/code&gt; element, use a &lt;code&gt;div&lt;/code&gt; with a &lt;code&gt;class&lt;/code&gt; name of “article.” You can still use the HTML5 doctype — HTML5 pages work fine in IE, as long as you don’t use the new elements. You can then later convert to the new HTML5 elements easily if desired, and in the meantime, you can take advantage of the more detailed &lt;a href="http://html5.validator.nu/"&gt;HTML5 validators&lt;/a&gt;. Also, using these standardized class names can make updating the styles easier for both you and others in your team, and having consistent naming conventions across sites makes it easier for users with special needs to set up user style sheets that&lt;br /&gt; can style certain elements in a needed way.&lt;/p&gt;&lt;p&gt;For more on HTML5 markup, see:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.smashingmagazine.com/2009/07/16/html5-and-the-future-of-the-web/"&gt;HTML5 and The Future of the Web&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.smashingmagazine.com/2009/07/06/html-5-cheat-sheet-pdf/"&gt;HTML 5 Cheat Sheet (PDF)&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.smashingmagazine.com/2009/08/04/designing-a-html-5-layout-from-scratch/"&gt;Coding A HTML 5 Layout From Scratch&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://boblet.tumblr.com/post/60552152/html5"&gt;HTML5 id/class name cheatsheet&lt;/a&gt; (@boblet)&lt;/li&gt;&lt;li&gt;&lt;a href="http://boblet.tumblr.com/post/141239118/html5-structure4"&gt;HTML 5 structure — HTML 4 and XHTML 1 to HTML 5&lt;/a&gt; (@boblet)&lt;/li&gt;&lt;li&gt;HTML5 Doctor’s articles on &lt;a href="http://html5doctor.com/the-header-element/"&gt;header&lt;/a&gt;, &lt;a href="http://html5doctor.com/the-section-element/"&gt;section&lt;/a&gt;, &lt;a href="http://html5doctor.com/aside-revisited/"&gt;aside&lt;/a&gt;, &lt;a href="http://html5doctor.com/nav-element/"&gt;nav&lt;/a&gt;, &lt;a href="http://html5doctor.com/the-footer-element-update/"&gt;footer&lt;/a&gt;&lt;/li&gt;&lt;li&gt;@boblet’s articles on &lt;a href="http://boblet.tumblr.com/post/130610820/html5-structure1"&gt;div, section, and article&lt;/a&gt;; &lt;a href="http://boblet.tumblr.com/post/134732913/html5-structure3"&gt;nav, aside, figure, and footer&lt;/a&gt;; and &lt;a href="http://boblet.tumblr.com/post/134276674/html5-structure2"&gt;header, hgroup, and h1-h6&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Bruce Lawson’s articles on converting his blog to HTML5, &lt;a href="http://www.brucelawson.co.uk/2009/redesigning-with-html-5-wai-aria/"&gt;part 1&lt;/a&gt; and &lt;a href="http://www.brucelawson.co.uk/2009/marking-up-a-blog-with-html-5-part-2/"&gt;part 2&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h4&gt;Reducing JavaScript and Plug-in Dependence&lt;/h4&gt;&lt;p&gt;&lt;em&gt;Aids in: adaptability, efficiency&lt;/em&gt;&lt;/p&gt;&lt;p&gt;A number of the new elements and features in HTML5 make effects possible with pure markup that used to be possible only with JavaScript or various third-party plug-ins, like Flash or Java. By removing the need for JavaScript and plug-ins, you can make your pages work on a wider variety of devices and for a wider variety of users. You may also make your development process quicker and more efficient, since you don’t have to take the time to find the right script or plug-in and get it all set up. Finally, these techniques may be able to boost the speed of your pages, since extra files don’t have to be downloaded by the users. (On the other hand, some may decrease performance, if the built-in browser version is slower than a third-party version. We’ll have to wait and see how browsers handle each option now and in the future.)&lt;/p&gt;&lt;p&gt;Some of the features that reduce JavaScript and plug-in dependence are:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;New form elements and attributes.&lt;/strong&gt; HTML5 offers a bunch of new &lt;code&gt;input&lt;/code&gt; types, such as &lt;code&gt;email&lt;/code&gt;, &lt;code&gt;url&lt;/code&gt;, and &lt;code&gt;date&lt;/code&gt;, that come with built-in client-side validation without the need for JavaScript. There are also many new form attributes that can accomplish what JavaScript used to be required for, like &lt;code&gt;placeholder&lt;/code&gt; to add suggestive placeholder text to a field or &lt;code&gt;autofocus&lt;/code&gt; to make the browser jump to a field. The new &lt;code&gt;input&lt;/code&gt; types degrade to regular inputs in browsers that don’t support them, and the new attributes are just ignored, so it doesn’t hurt unsupporting browsers to start using them now.&lt;/p&gt;&lt;p&gt;Of course, you’ll have to put in fallback JavaScript for unsupporting browsers, negating the “no JavaScript” benefits for the time being. (Or, depend on server-side validation—which you always ought to have in place as a backup behind client-side validation anyway—to catch the submissions from unsupporting browsers.) Still, they offer a nice usability boost for users with the most up to date browsers, so they’re good for progressive enhancement.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;The &lt;code&gt;canvas&lt;/code&gt; element.&lt;/strong&gt; The &lt;code&gt;canvas&lt;/code&gt; element creates a blank area of the screen that you can create drawings on with JavaScript. So, it &lt;em&gt;does&lt;/em&gt; require the use of JavaScript, &lt;em&gt;but&lt;/em&gt; it removes the need for Flash or Java plug-ins. It’s supported in every major browser but IE, but you can make it work in IE easily using the &lt;a href="http://code.google.com/p/explorercanvas/"&gt;ExplorerCanvas&lt;/a&gt; script.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;The &lt;code&gt;video&lt;/code&gt; and &lt;code&gt;audio&lt;/code&gt; elements.&lt;/strong&gt; HTML5 can embed &lt;a href="http://dev.w3.org/html5/spec/Overview.html#video"&gt;video&lt;/a&gt; and &lt;a href="http://dev.w3.org/html5/spec/Overview.html#audio"&gt;audio&lt;/a&gt; files directly, just as easily as you would add an image to a page, without the need for any additional plug-ins.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;a href="http://www.456bereastreet.com/lab/html5-input-types/"&gt;&lt;img src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/2010/05/part2_html5form.png" height="250" alt="Part2 Html5form in Modern CSS Layouts, Part 2: The Essential Techniques" width="290" style="display: inline;" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;Some of the new input types in HTML5 will bring up widgets, such as the calendar date picker seen with the &lt;code&gt;datetime&lt;/code&gt; &lt;code&gt;input&lt;/code&gt; type in Opera, without needing any JavaScript. (&lt;a href="http://www.456bereastreet.com/lab/html5-input-types/"&gt;HTML5 input types test page&lt;/a&gt;)&lt;/em&gt;&lt;/p&gt;&lt;p&gt;For more on these features, see:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.alistapart.com/articles/get-ready-for-html-5/"&gt;Get Ready for HTML 5&lt;/a&gt; (covers forms and &lt;code&gt;canvas&lt;/code&gt;, from A List Apart)&lt;/li&gt;&lt;li&gt;&lt;a href="http://diveintohtml5.org/forms.html"&gt;A Form of Madness&lt;/a&gt; (Dive Into HTML5)&lt;/li&gt;&lt;li&gt;&lt;a href="http://24ways.org/2009/have-a-field-day-with-html5-forms"&gt;Have a Field Day with HTML5 Forms&lt;/a&gt; (24 Ways)&lt;/li&gt;&lt;li&gt;The &lt;a href="http://code.google.com/p/webforms2/"&gt;webforms2&lt;/a&gt; script adds support for the new form elements and attributes to browsers that don’t currently support them.&lt;/li&gt;&lt;li&gt;&lt;a href="http://carsonified.com/blog/dev/html-5-dev/how-to-draw-with-html-5-canvas/"&gt;How to Draw with HTML 5 Canvas&lt;/a&gt; (Carsonified)&lt;/li&gt;&lt;li&gt;&lt;a href="https://developer.mozilla.org/en/Canvas_tutorial"&gt;Canvas tutorial&lt;/a&gt; (Mozilla Developer Center)&lt;/li&gt;&lt;li&gt;&lt;a href="http://dev.opera.com/articles/view/html-5-canvas-the-basics/"&gt;HTML 5 canvas – the basics&lt;/a&gt; (Opera Developer Community)&lt;/li&gt;&lt;li&gt;&lt;a href="http://html5doctor.com/the-video-element/"&gt;The video element&lt;/a&gt; (HTML5 Doctor)&lt;/li&gt;&lt;li&gt;&lt;a href="http://dev.opera.com/articles/view/introduction-html5-video/"&gt;Introduction to HTML5 video&lt;/a&gt; (Opera Developer Community)&lt;/li&gt;&lt;li&gt;&lt;a href="http://html5doctor.com/native-audio-in-the-browser/"&gt;Native audio in the browser&lt;/a&gt; (HTML5 Doctor)&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;IE Filtering&lt;/h3&gt;&lt;p&gt;&lt;em&gt;Aids in: progressive enhancement&lt;/em&gt;&lt;/p&gt;&lt;p&gt;IE 6 doesn’t seem to be going away anytime soon, so if you want to really make sure your pages are progressively enhanced, you’re going to have to learn how to handle it. Beyond ignoring the problem or blocking IE 6 altogether, there are a number of stances you can take:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Use &lt;a href="http://msdn.microsoft.com/en-us/library/ms537512%28VS.85%29.aspx"&gt;conditional comments&lt;/a&gt; to fix IE’s bugs:&lt;/strong&gt; You can create separate style sheets for each version of IE you’re having problems with and make sure only that version sees its sheet. The IE sheets contain only a few rules with hacks and workarounds that the browser needs.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Hide all main styles from IE and feed it very minimal styles only:&lt;/strong&gt; This is another conditional comment method, but instead of fixing the bugs, it takes the approach of hiding all the complex CSS from IE 6 to begin with, and only feeding it very simple CSS to style text and the like. Andy Clarke calls this &lt;a href="http://forabeautifulweb.com/blog/about/universal_internet_explorer_6_css/"&gt;Universal Internet Explorer 6 CSS&lt;/a&gt;.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Use JavaScript to “fix” IE:&lt;/strong&gt; There are a number of scripts out there that can make IE 6 emulate CSS3, alpha-transparent PNGs, and other things that IE 6 doesn’t support. Some of the most popular are &lt;a href="http://code.google.com/p/ie7-js/"&gt;ie7-js&lt;/a&gt;, &lt;a href="http://www.modernizr.com/"&gt;Modernizr&lt;/a&gt;, and &lt;a href="http://www.keithclark.co.uk/labs/ie-css3/"&gt;ie-css3.js&lt;/a&gt;.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;In addition to the resources linked in the text above, you can learn more about how to handle IE at:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.smashingmagazine.com/2009/12/01/how-to-support-internet-explorer-and-still-be-cutting-edge/"&gt;How To Support Internet Explorer and Still Be Cutting Edge&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.smashingmagazine.com/2010/04/28/css3-solutions-for-internet-explorer/"&gt;CSS3   Solutions for Internet Explorer&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://mondaybynoon.com/2009/09/21/aggressive-graceful-degradation/"&gt;How to Handle IE6: Aggressive Graceful Degradation&lt;/a&gt; (Monday by Noon)&lt;/li&gt;&lt;li&gt;&lt;a href="http://sixrevisions.com/web-development/definitive-guide-to-taming-the-ie6-beast/"&gt;Definitive Guide to Taming the IE6 Beast&lt;/a&gt; (Six Revisions)&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.virtuosimedia.com/tutorials/ultimate-ie6-cheatsheet-how-to-fix-25-internet-explorer-6-bugs"&gt;Ultimate IE6 Cheatsheet: How To Fix 25+ Internet Explorer 6 Bugs&lt;/a&gt; (Virtuosi Media)&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.quirksmode.org/css/condcom.html"&gt;Conditional comments&lt;/a&gt; (quirksmode)&lt;/li&gt;&lt;li&gt;&lt;a href="http://perishablepress.com/press/2007/07/18/wrapping-your-head-around-downlevel-conditional-comments/"&gt;Wrapping Your Head around Downlevel Conditional Comments&lt;/a&gt; (Perishable Press)&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Flexible Layouts&lt;/h3&gt;&lt;p&gt;&lt;em&gt;Aids in: adaptability&lt;/em&gt;&lt;/p&gt;&lt;p&gt;One of the main ways you can make your sites adaptable to your users’ preferences is to create flexible instead of fixed-width layouts. We’ve already gone over how media queries can make your pages more adaptable to different viewport widths, but creating liquid, elastic, or resolution-dependent layouts can be used instead of or in conjunction with media queries to further optimize the design for as large a segment of your users as possible.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Liquid layouts:&lt;/strong&gt; Monitor sizes and screen resolutions cover a much larger range than they used to, and mobile devices like the iPhone and iPad let the user switch between portrait and landscape mode, changing their viewport width on the fly. Liquid layouts, also called fluid, change in width based on the user’s viewport (eg, window) width so that the entire design always fits on the screen without horizontal scrollbars appearing. The &lt;code&gt;min-width&lt;/code&gt; and &lt;code&gt;max-width&lt;/code&gt; properties and/or media queries can and should be used to keep the design from getting too stretched out or too squished at extreme dimensions.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Elastic layouts:&lt;/strong&gt; If you want to optimize for a particular number of text characters per line, you can use an elastic layout, which changes in width based on the user’s text size. Again, you can use &lt;code&gt;min-&lt;/code&gt; and &lt;code&gt;max-width&lt;/code&gt; and/or media queries to limit the degree of elasticity.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Resolution-dependent layouts:&lt;/strong&gt; This type of layout, also called adaptive layout, is similar to media queries, but uses JavaScript to switch between different style sheets and rearrange boxes to accommodate different viewport widths.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;For details on creating flexible layouts, see:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://zomigi.com/blog/essential-resources-for-creating-liquid-and-elastic-layouts/"&gt;70+ essential resources for creating liquid and elastic layouts&lt;/a&gt; (zomigi.com)&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.smashingmagazine.com/2009/06/02/fixed-vs-fluid-vs-elastic-layout-whats-the-right-one-for-you/"&gt;Fixed vs. Fluid vs. Elastic Layout: What’s The Right One For You?&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.smashingmagazine.com/2009/06/09/smart-fixes-for-fluid-layouts/"&gt;Adaptive CSS-Layouts: New Era In Fluid Layouts?&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.themaninblue.com/writing/perspective/2006/01/19/"&gt;Resolution dependent layout update&lt;/a&gt; (The Man in Blue)&lt;/li&gt;&lt;li&gt;&lt;a href="http://fortes.com/projects/dynamiclayout/"&gt;Dynamic Layout&lt;/a&gt; (Fortes)&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.zackgrossbart.com/hackito/slidegrid/"&gt;Create Your Own Sliding Resizable Grid&lt;/a&gt; (Hackito Ergo Sum)&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Layout Grids&lt;/h3&gt;&lt;p&gt;&lt;em&gt;Aids in: modularity, efficiency&lt;/em&gt;&lt;/p&gt;&lt;p&gt;Designing on a grid of (usually invisible) consistent horizontal and vertical lines is not new — it goes back for centuries — but its application to web design has gained in popularity in recent years. And for good reason: a layout grid can create visual rhythm to guide the user’s eye, make the design look more clean and ordered, and enforce design consistency.&lt;/p&gt;&lt;p&gt;Grids can also make your designs more modular and your development more efficient because they create a known, consistent structure into which you can easily drop new elements and rearrange existing ones without as much thought and time as it would take in a non-grid layout. For instance, all of your elements must be as wide as your grid’s column measurement, or some multiple of it, so you can easily move an element to another spot on the page or to another page and be assured that it will fit and look consistent with the rest of the design. At worst, you’ll need to adjust the other elements’ widths around it to a different multiple of the column measurements to get the new element to fit, but even this is not too work-intensive, as there is only a handful of pre-determined widths that any element can have.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.nytimes.com/"&gt;&lt;img src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/2010/05/part2_grid.jpg" height="292" alt="Part2 Grid in Modern CSS Layouts, Part 2: The Essential Techniques" width="500" style="display: inline;" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;All of the content of &lt;a href="http://www.nytimes.com/"&gt;The New York Times site&lt;/a&gt; falls into a grid of five columns, plus a thin column on the left for navigation.&lt;/em&gt;&lt;/p&gt;&lt;p&gt;To learn how to use grids, see:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.smashingmagazine.com/2007/04/14/designing-with-grid-based-approach/"&gt;Designing With Grid-Based Approach&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.smashingmagazine.com/2008/03/26/grid-based-design-six-creative-column-techniques/"&gt;Grid-Based Design: Six Creative Column Techniques&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://dev.opera.com/articles/view/grid-design-basics-grids-for-web-page-l/"&gt;Grid design basics: Grids for Web page layouts&lt;/a&gt; (Opera Developer Community)&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.markboulton.co.uk/journal/comments/five-simple-steps-to-designing-grid-systems-preface"&gt;Five simple steps to designing grid systems  —  Preface&lt;/a&gt; (five-part series, with tutorials on how to create fixed-width and fluid grids, by Mark Boulton)&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.alistapart.com/articles/fluidgrids"&gt;Fluid Grids&lt;/a&gt; (A List Apart)&lt;/li&gt;&lt;li&gt;&lt;a href="http://designinformer.com/grid-based-web-design-simplified/"&gt;Grid-Based Web Design, Simplified&lt;/a&gt; (Design Informer)&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.thegridsystem.org/"&gt;The Grid System&lt;/a&gt; (portal to articles, tools, templates, forum, and more)&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.noupe.com/design/ultimate-guide-to-grid-based-web-design.html"&gt;Ultimate Guide To Grid-Based Web Design: Techniques and Tools&lt;/a&gt; (Noupe)&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.webdesigntoolslist.com/2009/07/webmastertools/roundup-of-css-grid-generators-css-grid-layout-generators/"&gt;Roundup of CSS Grid Generators &amp;amp; CSS Grid Layout Generators&lt;/a&gt; (also includes list of grid articles, from Web Design Tools)&lt;/li&gt;&lt;li&gt;Inspiration galleries &lt;a href="http://www.designbygrid.com/"&gt;Design By Grid&lt;/a&gt; and &lt;a href="http://www.grid-based.com/"&gt;Grid Based Designs&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Efficient CSS Development Practices&lt;/h3&gt;&lt;p&gt;&lt;em&gt;Aids in: modularity, efficiency&lt;/em&gt;&lt;/p&gt;&lt;p&gt;Layout grids and many of the CSS3 techniques we’ve gone over have the side benefit of making your CSS more modular and helping you write and maintain CSS more efficiently. There are also a few CSS development practices that you can use with &lt;em&gt;any&lt;/em&gt; of the techniques we’ve already covered in order to reduce the time it takes you to write the CSS for those techniques in the first place, as well as save you time reusing components in your pages.&lt;/p&gt;&lt;h4&gt;CSS Frameworks&lt;/h4&gt;&lt;p&gt;A CSS framework is a library of styles that act as building blocks to create the standard pieces you might need in your site. While CSS frameworks differ greatly in depth and breadth, most popular, publicly-distributed frameworks contain some sort of layout grid, as well as standard styles for text, navigation, forms, images, and more. It’s a good idea to create your own CSS framework, perhaps based on one of the most popular ones; it can be as simple as standardizing the IDs and classes you tend to use on every project and creating a starter style sheet for yourself.&lt;/p&gt;&lt;p&gt;Good CSS frameworks provide you with a solid starting point for your designs, cutting down your time  spent developing, testing, tweaking, and updating. They can also reduce the time others (your team members or those who inherit your sites) spend modifying your CSS, as everyone is working from a standard set of conventions. Frameworks can make your designs more modular by giving you a standard set of classes that can be reused from page to page easily, breaking the styles down into separate sheets that can be applied independently to pages on an as-needed basis, or allowing you to plug in various types of content without needing to invent new classes for it.&lt;/p&gt;&lt;p&gt;But, frameworks have their share of problems too. For instance, publicly-distributed (as opposed to your own private) frameworks tend to have large file sizes, as they need to work for any type of site with any type of content; if they’re separated into multiple sheets, they can further damage page speed since every HTTP request takes time. We won’t get into the full list of pros and cons here, but there are ways to work around many of them, so check out the following articles for the details. You’ll also find links to the most popular CSS frameworks.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.smashingmagazine.com/2007/09/21/css-frameworks-css-reset-design-from-scratch/"&gt;CSS Frameworks + CSS Reset: Design From Scratch&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.cssnewbie.com/css-frameworks-described/"&gt;Jump-start Your Development With CSS Frameworks&lt;/a&gt; (CSS Newbie)&lt;/li&gt;&lt;li&gt;&lt;a href="http://css-tricks.com/what-are-the-benefits-of-using-a-css-framework/"&gt;What Are The Benefits of Using a CSS Framework?&lt;/a&gt; (CSS-Tricks)&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.webdirections.org/resources/kevin-yank-css-frameworks/"&gt;CSS Frameworks&lt;/a&gt; (presentation from Web Directions South 2009)&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.noupe.com/css/5-popular-css-frameworks-tutorials-tools-for-getting-started.html"&gt;5 Popular CSS Frameworks + Tutorials &amp;amp; Tools for Getting Started&lt;/a&gt; (Noupe)&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.alistapart.com/articles/frameworksfordesigners/"&gt;Frameworks for Designers&lt;/a&gt; (considerations when making your own framework, from A List Apart)&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.w3avenue.com/2009/04/01/guidelines-for-developing-your-own-css-framework/"&gt;Guidelines for Developing Your Own CSS Framework&lt;/a&gt; (W3Avenue)&lt;/li&gt;&lt;li&gt;&lt;a href="http://arbent.net/blog/creating-a-time-saving-css-template" title="Creating a Time Saving CSS Template"&gt;Creating a Time Saving CSS   Template&lt;/a&gt; (Arbenting)&lt;/li&gt;&lt;li&gt;&lt;a href="http://warpspire.com/features/css-frameworks/"&gt;Why I don’t use CSS Frameworks&lt;/a&gt; (Warpspire)&lt;/li&gt;&lt;li&gt;&lt;a href="http://mondaybynoon.com/2007/08/27/please-do-not-use-css-frameworks/"&gt;Please do not Use CSS Frameworks&lt;/a&gt; (Monday by Noon)&lt;/li&gt;&lt;li&gt;&lt;a href="http://jeffcroft.com/blog/2007/nov/17/whats-not-love-about-css-frameworks/"&gt;What’s not to love about CSS frameworks?&lt;/a&gt; (JeffCroft.com)&lt;/li&gt;&lt;li&gt;&lt;a href="http://24ways.org/2008/making-modular-layout-systems"&gt;Making Modular Layout Systems&lt;/a&gt; (24 Ways)&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.w3avenue.com/2009/04/29/definitive-list-of-css-frameworks-pick-your-style/"&gt;Definitive List of CSS Frameworks – Pick Your Style&lt;/a&gt; (W3Avenue)&lt;/li&gt;&lt;li&gt;Compare CSS frameworks at &lt;a href="http://www.bestwebframeworks.com/css/"&gt;bestwebframeworks.com&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h4&gt;Object-oriented CSS (OOCSS)&lt;/h4&gt;&lt;p&gt;Nicole Sullivan coined the term &lt;a href="http://www.stubbornella.org/content/2009/02/28/object-oriented-css-grids-on-github/"&gt;object-oriented CSS (OOCSS)&lt;/a&gt; for her method of creating self-contained chunks of HTML (modules) that can be reused anywhere in the page or site and that any class can be applied to. Some of the main principles of OOCSS are:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;using primarily classes instead of IDs&lt;/li&gt;&lt;li&gt;creating default classes with multiple, more specific classes added on to elements&lt;/li&gt;&lt;li&gt;avoiding dependent selectors and class names that are location-specific&lt;/li&gt;&lt;li&gt;leaving dimensions off module styles so the modules can be moved anywhere and fit&lt;/li&gt;&lt;li&gt;styling containers separately from content&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;OOCSS aims to make your CSS development more efficient, as well as to make the CSS itself more modular and less redundant, which reduces file sizes and loading speed.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.stubbornella.org/content/2009/02/28/object-oriented-css-grids-on-github/"&gt;Object Oriented CSS&lt;/a&gt; (the original blog post, presentation, and framework, at stubbornella.com)&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.typesett.com/2010/01/object-oriented-css-oocss-the-lowdown/"&gt;Object Oriented CSS (OOCSS): The Lowdown&lt;/a&gt; (TY &lt;p style="font-size: 10px;"&gt; &lt;a href="http://posterous.com"&gt;Posted via web&lt;/a&gt;  from &lt;a href="http://rogergwyatt.com/modern-css-layouts-part-2-the-essential-techn-0"&gt;From the mind of Roger Wyatt&lt;/a&gt; &lt;/p&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3228799232951198165-4021702610982583291?l=latenightcms.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://latenightcms.blogspot.com/feeds/4021702610982583291/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://latenightcms.blogspot.com/2010/05/modern-css-layouts-part-2-essential.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3228799232951198165/posts/default/4021702610982583291'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3228799232951198165/posts/default/4021702610982583291'/><link rel='alternate' type='text/html' href='http://latenightcms.blogspot.com/2010/05/modern-css-layouts-part-2-essential.html' title='Modern CSS Layouts, Part 2: The Essential Techniques - Smashing Magazine'/><author><name>Late Night CMS Junkie</name><uri>http://www.blogger.com/profile/06799426777907100854</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3228799232951198165.post-8268356148886446206</id><published>2010-04-30T13:02:00.001-07:00</published><updated>2010-04-30T13:02:34.907-07:00</updated><title type='text'>Lies, damned lies and statistics (about TEDTalks)</title><content type='html'>&lt;div class='posterous_autopost'&gt;&lt;div class="posterous_bookmarklet_entry"&gt; &lt;object height="326" width="446"&gt;&lt;param name="movie" value="http://video.ted.com/assets/player/swf/EmbedPlayer.swf" /&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true" /&gt;&lt;param name="wmode" value="transparent" /&gt;&lt;/param&gt;&lt;param name="bgColor" value="#ffffff" /&gt;&lt;/param&gt; &lt;param name="flashvars" value="vu=http://video.ted.com/talks/dynamic/SebastianWernicke_2010A-high.flv&amp;su=http://images.ted.com/images/ted/tedindex/embed-posters/SebastianWernicke-2010A.embed_thumbnail.jpg&amp;vw=432&amp;vh=240&amp;ap=0&amp;ti=846" /&gt;&lt;embed allowfullscreen="true" src="http://video.ted.com/assets/player/swf/EmbedPlayer.swf" wmode="transparent" type="application/x-shockwave-flash" height="326" flashvars="vu=http://video.ted.com/talks/dynamic/SebastianWernicke_2010A-high.flv&amp;amp;su=http://images.ted.com/images/ted/tedindex/embed-posters/SebastianWernicke-2010A.embed_thumbnail.jpg&amp;amp;vw=432&amp;amp;vh=240&amp;amp;ap=0&amp;amp;ti=846" width="446"&gt;&lt;/embed&gt;&lt;/param&gt;&lt;/param&gt;&lt;/object&gt;    &lt;div class="posterous_quote_citation"&gt;via &lt;a href="http://www.ted.com/talks/lies_damned_lies_and_statistics_about_tedtalks.html"&gt;ted.com&lt;/a&gt;&lt;/div&gt; &lt;p&gt;I so need to get the tedpad to prepare for my one-day TED presentation&lt;/p&gt;&lt;/div&gt; &lt;p style="font-size: 10px;"&gt; &lt;a href="http://posterous.com"&gt;Posted via web&lt;/a&gt;  from &lt;a href="http://rogergwyatt.com/lies-damned-lies-and-statistics-about-tedtalk"&gt;From the mind of Roger Wyatt&lt;/a&gt; &lt;/p&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3228799232951198165-8268356148886446206?l=latenightcms.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://latenightcms.blogspot.com/feeds/8268356148886446206/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://latenightcms.blogspot.com/2010/04/lies-damned-lies-and-statistics-about.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3228799232951198165/posts/default/8268356148886446206'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3228799232951198165/posts/default/8268356148886446206'/><link rel='alternate' type='text/html' href='http://latenightcms.blogspot.com/2010/04/lies-damned-lies-and-statistics-about.html' title='Lies, damned lies and statistics (about TEDTalks)'/><author><name>Late Night CMS Junkie</name><uri>http://www.blogger.com/profile/06799426777907100854</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3228799232951198165.post-3141985622512866206</id><published>2010-04-26T10:05:00.001-07:00</published><updated>2010-04-26T10:05:52.909-07:00</updated><title type='text'>David Merrill demos Siftables</title><content type='html'>&lt;div class='posterous_autopost'&gt;&lt;div class="posterous_bookmarklet_entry"&gt; &lt;object height="326" width="446"&gt;&lt;param name="movie" value="http://video.ted.com/assets/player/swf/EmbedPlayer.swf" /&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true" /&gt;&lt;param name="wmode" value="transparent" /&gt;&lt;/param&gt;&lt;param name="bgColor" value="#ffffff" /&gt;&lt;/param&gt; &lt;param name="flashvars" value="vu=http://video.ted.com/talks/dynamic/DavidMerrill_2009-high.flv&amp;su=http://images.ted.com/images/ted/tedindex/embed-posters/DavidMerrill-2009.embed_thumbnail.jpg&amp;vw=432&amp;vh=240&amp;ap=0&amp;ti=457" /&gt;&lt;embed allowfullscreen="true" src="http://video.ted.com/assets/player/swf/EmbedPlayer.swf" wmode="transparent" type="application/x-shockwave-flash" height="326" flashvars="vu=http://video.ted.com/talks/dynamic/DavidMerrill_2009-high.flv&amp;amp;su=http://images.ted.com/images/ted/tedindex/embed-posters/DavidMerrill-2009.embed_thumbnail.jpg&amp;amp;vw=432&amp;amp;vh=240&amp;amp;ap=0&amp;amp;ti=457" width="446"&gt;&lt;/embed&gt;&lt;/param&gt;&lt;/param&gt;&lt;/object&gt;    &lt;div class="posterous_quote_citation"&gt;via &lt;a href="http://www.ted.com/talks/david_merrill_demos_siftables_the_smart_blocks.html"&gt;ted.com&lt;/a&gt;&lt;/div&gt; &lt;p&gt;I have been thinking a lot lately about the concept of software "flocks". Specifically, using the behavior of flocking birds and schooling fish in solving computational problems. Siftables are really cool tech and with some of the same concepts (though not quite a flock).&lt;/p&gt;&lt;/div&gt; &lt;p style="font-size: 10px;"&gt; &lt;a href="http://posterous.com"&gt;Posted via web&lt;/a&gt;  from &lt;a href="http://rogergwyatt.com/david-merrill-demos-siftables-12"&gt;From the mind of Roger Wyatt&lt;/a&gt; &lt;/p&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3228799232951198165-3141985622512866206?l=latenightcms.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://latenightcms.blogspot.com/feeds/3141985622512866206/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://latenightcms.blogspot.com/2010/04/david-merrill-demos-siftables.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3228799232951198165/posts/default/3141985622512866206'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3228799232951198165/posts/default/3141985622512866206'/><link rel='alternate' type='text/html' href='http://latenightcms.blogspot.com/2010/04/david-merrill-demos-siftables.html' title='David Merrill demos Siftables'/><author><name>Late Night CMS Junkie</name><uri>http://www.blogger.com/profile/06799426777907100854</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3228799232951198165.post-4520918644414667958</id><published>2010-04-23T09:24:00.001-07:00</published><updated>2010-04-23T09:24:15.423-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='personal'/><category scheme='http://www.blogger.com/atom/ns#' term='golf'/><title type='text'>Recovering My Golf Swing</title><content type='html'>&lt;div class='posterous_autopost'&gt;     &lt;h2&gt;I've been revamping my swing for a while now&lt;/h2&gt; Ever since I went to a practice round at the Masters in 2008, I have been revamping my swing to improve my distance. I had always been a relatively short hitter, having started playing late in life, but very accurate. However, I reached a point where no amount of improved accuracy would overcome the lack of distance off the tee and with my irons. I was hitting mid and long irons into too many greens which challenged me with getting close to the hole. Very rarely was I hitting wedge or 9-iron into a green. More common for me was 5-7 irons. The only time I hit 9 or wedge was on a par-5 - on my 3rd shot. I had my handicap down to 10 and was pretty happy about that fact considering I only took up the game 2 years earlier. &lt;p /&gt;  &lt;h2&gt;Ian Poulter Ruined My Golf Game&lt;/h2&gt; Okay, not entirely fair to Ian. My wife going on bedrest with my 3rd child ruined my game, but it was a video of Ian's swing that caused me to revamp my own swing. I discovered where Ian and other pro's get their incredible distance with such apparent minimal effort. Ian destroyed my swing by degrees - the angle between his forearm and the club. I put the video of his swing into V1Home and carefully measured the angles at different points in the swing. Then I put my own video in and did the same. I found that while I was accurate, I was not storing up enough energy in the clubhead properly. So I set out to rework my swing to gain more distance while keeping the accuracy.&lt;p /&gt;  &lt;h2&gt;Something Had To Give&lt;/h2&gt; I worked on growing my ability to let my wrists stay flexible throughout the swing. It meant that my forearm strength had to get better. You see, I realized the physics involved meant that the closer the clubhead (the heavy part) could stay to the center of rotation, the more whip I could generate in the club. Looking at my old video, the clubhead was leaving the center of rotation early and it meant that I was working way too hard. In no time, I gained 10yds with every club in my bag - and my swing was getting more and more effortless. That's the funny thing about golf, it's a game of opposites. Swing harder, hit shorter - swing easier, hit farther. I have kept working on it and now I am up to 20+ yds more with each club, but in the ensuing time my accuracy had dropped. &lt;p /&gt;  &lt;h2&gt;More Video Provided The Answer&lt;/h2&gt; I got sloppy in 2 areas - I started swaying my hips (see my 6 rules to hit the ball straight, and I started coming over the top. It was obvious and should have been obvious as my sloppiness increased, but since I was getting 20yds more with an easier swing I didn't really notice. I didn't notice until I looked at my divots. It was clear. So I had work to do. I went back to my 6 rules and added in my new ability to keep my clubhead under control and everything popped into place. My divots are now straight down the line, my distance picked up a few more yards, my accuracy came back, and I still can control the ball flight like I want. I am working on getting the accuracy back with the driver now before I get back to playing.&lt;p /&gt;  &lt;h2&gt;How Far I have Come&lt;/h2&gt; When I was a 10 handicap, I got there by being very accurate with every club in the bag, but I was not a long hitter. It put a lot of pressure on my short game so I had to be good chipping and putting to make par. Well, I also changed my game attitude which resulted in more birdies and less bogeys. I'll write about that later.&lt;p /&gt;  Here the chart with the old and new distances.&lt;br /&gt; PW - 100 - 130&lt;br /&gt; 9i - 120 - 150&lt;br /&gt; 8i - 130 - 157&lt;br /&gt; 7i - 140 - 165&lt;br /&gt; 6i - 150 - 175&lt;br /&gt; 5i - 160 - 185&lt;br /&gt; 4i - 170 - 195&lt;br /&gt; 3hyrid - 180 - 210 &lt;p /&gt;  I think I could still stretch the 8i a bit, don't know why it didn't move up more. I'm pleased with the PW and 9i having made the most jump in those clubs - probably because I work with them more. It is nice that I have extended my clubs and have been able to maintain my accuracy. Once I start playing regularly again, we'll see how it affects my handicap. I'm still not super long, but I'm comfortable with the results. It was a long road, but a fun one. The first time I hit 15 balls from 175 with a 6i and had 10 on the green (where I practice has a green to hit to) and I never felt like I was swinging hard was such a revelation. I knew then I was on the right track - I just needed to get it ingrained in my.&lt;p /&gt;  ... and it's not too bad for a guy who has had 2 lessons and only been playing for 4 years &lt;p style="font-size: 10px;"&gt; &lt;a href="http://posterous.com"&gt;Posted via email&lt;/a&gt;  from &lt;a href="http://rogergwyatt.com/recovering-my-golf-swing"&gt;From the mind of Roger Wyatt&lt;/a&gt; &lt;/p&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3228799232951198165-4520918644414667958?l=latenightcms.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://latenightcms.blogspot.com/feeds/4520918644414667958/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://latenightcms.blogspot.com/2010/04/recovering-my-golf-swing.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3228799232951198165/posts/default/4520918644414667958'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3228799232951198165/posts/default/4520918644414667958'/><link rel='alternate' type='text/html' href='http://latenightcms.blogspot.com/2010/04/recovering-my-golf-swing.html' title='Recovering My Golf Swing'/><author><name>Late Night CMS Junkie</name><uri>http://www.blogger.com/profile/06799426777907100854</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3228799232951198165.post-6044399351445843760</id><published>2010-04-15T18:30:00.001-07:00</published><updated>2010-04-15T18:30:15.627-07:00</updated><title type='text'>7,500 Online Shoppers Unknowingly Sold Their Souls</title><content type='html'>&lt;div class='posterous_autopost'&gt;&lt;div class="posterous_bookmarklet_entry"&gt; &lt;img src="http://posterous.com/getfile/files.posterous.com/tynken/diBaGkhyzvzBxlBHmCrnkipEflfrdckpJhpvcJieInduJthDxxjrllAFvhoE/media_httpwwwfoxnewsc_uvbqr.jpg.scaled500.jpg" width="397" height="223"/&gt;     &lt;div class="posterous_quote_citation"&gt;via &lt;a href="http://www.foxnews.com/scitech/2010/04/15/online-shoppers-unknowingly-sold-souls/"&gt;foxnews.com&lt;/a&gt;&lt;/div&gt; &lt;p&gt;I'm guessing they also played WoW....so how much soul could they really have had left?&lt;/p&gt;&lt;/div&gt; &lt;p style="font-size: 10px;"&gt; &lt;a href="http://posterous.com"&gt;Posted via web&lt;/a&gt;  from &lt;a href="http://rogergwyatt.com/7500-online-shoppers-unknowingly-sold-their-s"&gt;From the mind of Roger Wyatt&lt;/a&gt; &lt;/p&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3228799232951198165-6044399351445843760?l=latenightcms.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://latenightcms.blogspot.com/feeds/6044399351445843760/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://latenightcms.blogspot.com/2010/04/7500-online-shoppers-unknowingly-sold.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3228799232951198165/posts/default/6044399351445843760'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3228799232951198165/posts/default/6044399351445843760'/><link rel='alternate' type='text/html' href='http://latenightcms.blogspot.com/2010/04/7500-online-shoppers-unknowingly-sold.html' title='7,500 Online Shoppers Unknowingly Sold Their Souls'/><author><name>Late Night CMS Junkie</name><uri>http://www.blogger.com/profile/06799426777907100854</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3228799232951198165.post-8751420838003621215</id><published>2010-04-11T08:36:00.001-07:00</published><updated>2010-04-11T08:36:48.937-07:00</updated><title type='text'>An Assortment of Underachieving AT-ATs</title><content type='html'>&lt;div class='posterous_autopost'&gt;&lt;div class="posterous_bookmarklet_entry"&gt; &lt;img src="http://posterous.com/getfile/files.posterous.com/tynken/BBcImDHvalorpmokqFxcmEkiAldfeAgmikfFbzscejshHIvoCeaDvCbsbDHz/media_httpfarm5static_rudAG.jpg.scaled500.jpg" width="329" height="500"/&gt;     &lt;div class="posterous_quote_citation"&gt;via &lt;a href="http://www.flickr.com/photos/lunchbreath/4495894979/in/set-72157623783942676/"&gt;flickr.com&lt;/a&gt;&lt;/div&gt; &lt;p&gt;Sometimes the geek in me is overwhelming.&lt;/p&gt;&lt;/div&gt; &lt;p style="font-size: 10px;"&gt; &lt;a href="http://posterous.com"&gt;Posted via web&lt;/a&gt;  from &lt;a href="http://rogergwyatt.com/an-assortment-of-underachieving-at-ats-3"&gt;From the mind of Roger Wyatt&lt;/a&gt; &lt;/p&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3228799232951198165-8751420838003621215?l=latenightcms.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://latenightcms.blogspot.com/feeds/8751420838003621215/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://latenightcms.blogspot.com/2010/04/assortment-of-underachieving-at-ats.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3228799232951198165/posts/default/8751420838003621215'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3228799232951198165/posts/default/8751420838003621215'/><link rel='alternate' type='text/html' href='http://latenightcms.blogspot.com/2010/04/assortment-of-underachieving-at-ats.html' title='An Assortment of Underachieving AT-ATs'/><author><name>Late Night CMS Junkie</name><uri>http://www.blogger.com/profile/06799426777907100854</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3228799232951198165.post-4606930446797629370</id><published>2010-04-07T07:34:00.001-07:00</published><updated>2010-04-07T07:34:23.172-07:00</updated><title type='text'>CSI Miami - Endless Caruso One Liners</title><content type='html'>&lt;div class='posterous_autopost'&gt;&lt;div class="posterous_bookmarklet_entry"&gt; &lt;object height="417" width="500"&gt;&lt;param name="movie" value="http://www.youtube.com/v/_sarYH0z948&amp;hl=en&amp;fs=1" /&gt;&lt;/param&gt;&lt;param name="wmode" value="window" /&gt;&lt;param name="allowFullScreen" value="true" /&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always" /&gt;&lt;/param&gt;&lt;embed allowfullscreen="true" src="http://www.youtube.com/v/_sarYH0z948&amp;hl=en&amp;fs=1" wmode="window" allowscriptaccess="always" type="application/x-shockwave-flash" height="417" width="500"&gt;&lt;/embed&gt;&lt;/param&gt;&lt;/object&gt;    &lt;div class="posterous_quote_citation"&gt;via &lt;a href="http://www.youtube.com/watch?v=_sarYH0z948"&gt;youtube.com&lt;/a&gt;&lt;/div&gt; &lt;p&gt;How many ways can you say corny one-liners while putting on sunglasses. David Caruso has the answer.&lt;/p&gt;&lt;/div&gt; &lt;p style="font-size: 10px;"&gt; &lt;a href="http://posterous.com"&gt;Posted via web&lt;/a&gt;  from &lt;a href="http://rogergwyatt.com/csi-miami-endless-caruso-one-liners-6"&gt;From the mind of Roger Wyatt&lt;/a&gt; &lt;/p&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3228799232951198165-4606930446797629370?l=latenightcms.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://latenightcms.blogspot.com/feeds/4606930446797629370/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://latenightcms.blogspot.com/2010/04/csi-miami-endless-caruso-one-liners.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3228799232951198165/posts/default/4606930446797629370'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3228799232951198165/posts/default/4606930446797629370'/><link rel='alternate' type='text/html' href='http://latenightcms.blogspot.com/2010/04/csi-miami-endless-caruso-one-liners.html' title='CSI Miami - Endless Caruso One Liners'/><author><name>Late Night CMS Junkie</name><uri>http://www.blogger.com/profile/06799426777907100854</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3228799232951198165.post-95565079699480439</id><published>2010-04-06T18:59:00.001-07:00</published><updated>2010-04-06T18:59:03.749-07:00</updated><title type='text'>A Short Love Story in Stop Motion</title><content type='html'>&lt;div class='posterous_autopost'&gt;&lt;div class="posterous_bookmarklet_entry"&gt; &lt;object data="http://vimeo.com/moogaloop.swf" type="application/x-shockwave-flash" height="281" width="500"&gt;&lt;param name="allowscriptaccess" value="always" /&gt;&lt;param name="allowfullscreen" value="true" /&gt;&lt;param name="movie" value="http://vimeo.com/moogaloop.swf" /&gt;&lt;param name="flashvars" value="clip_id=877053&amp;server=vimeo.com&amp;fullscreen=1&amp;show_title=1&amp;show_byline=1&amp;show_portrait=1&amp;color=00ADEF" /&gt;&lt;/param&gt;&lt;/param&gt;&lt;/param&gt;&lt;/param&gt;&lt;/object&gt;    &lt;div class="posterous_quote_citation"&gt;via &lt;a href="http://www.vimeo.com/877053"&gt;vimeo.com&lt;/a&gt;&lt;/div&gt; &lt;p&gt;This is, by far, one of the best stop-motion shorts I have ever seen. I like the style, and how the story bookmarks on the edges.&lt;/p&gt;&lt;/div&gt; &lt;p style="font-size: 10px;"&gt; &lt;a href="http://posterous.com"&gt;Posted via web&lt;/a&gt;  from &lt;a href="http://rogergwyatt.com/a-short-love-story-in-stop-motion-13"&gt;From the mind of Roger Wyatt&lt;/a&gt; &lt;/p&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3228799232951198165-95565079699480439?l=latenightcms.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://latenightcms.blogspot.com/feeds/95565079699480439/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://latenightcms.blogspot.com/2010/04/short-love-story-in-stop-motion.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3228799232951198165/posts/default/95565079699480439'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3228799232951198165/posts/default/95565079699480439'/><link rel='alternate' type='text/html' href='http://latenightcms.blogspot.com/2010/04/short-love-story-in-stop-motion.html' title='A Short Love Story in Stop Motion'/><author><name>Late Night CMS Junkie</name><uri>http://www.blogger.com/profile/06799426777907100854</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3228799232951198165.post-7185329547416659617</id><published>2010-04-06T12:16:00.001-07:00</published><updated>2010-04-06T12:16:52.613-07:00</updated><title type='text'>Why I won't buy an iPad (and think you shouldn't, either) - Boing Boing</title><content type='html'>&lt;div class='posterous_autopost'&gt;&lt;div class="posterous_bookmarklet_entry"&gt; &lt;blockquote class="posterous_long_quote"&gt;&lt;div class="asset-header"&gt;&lt;h2 class="asset-name entry-title"&gt;Why I won't buy an iPad (and think you shouldn't, either)&lt;/h2&gt;  		  	    		&lt;p class="metabig"&gt;&lt;a href="http://dynamic.boingboing.net/cgi-bin/mt/mt-cp.cgi?__mode=view&amp;amp;blog_id=1&amp;amp;id=1"&gt;Cory Doctorow&lt;/a&gt; at  5:23 AM April  2, 2010  		  		    	  &lt;/p&gt;&lt;/div&gt;  &lt;div class="asset-content entry-content"&gt;    		&lt;div class="asset-body"&gt;&lt;p&gt;  		  		  		  		  			  			  			&lt;img src="http://craphound.com/images/ipad-420x0.jpg" height="339" style="margin: 0px 0px 10px 15px; float: right;" width="250" /&gt;  I've spent ten years now on Boing Boing, finding cool things that people have done and made and writing about them. Most of the really exciting stuff hasn't come from big corporations with enormous budgets, it's come from experimentalist amateurs. These people were able to make stuff and put it in the public's eye and even sell it without having to submit to the whims of a single company that had declared itself gatekeeper for your phone and other personal technology.   &lt;/p&gt;&lt;p&gt;  &lt;a href="http://www.oblomovka.com/wp/2010/04/01/cd-roms-and-ipads/"&gt;Danny O'Brien does a very good job of explaining&lt;/a&gt; why I'm completely uninterested in buying an iPad -- it really feels like the second coming of the CD-ROM "revolution" in which "content" people proclaimed that they were going to remake media by producing expensive (to make and to buy) products. I was a CD-ROM programmer at the start of my tech career, and I felt that excitement, too, and lived through it to see how wrong I was, how open platforms and experimental amateurs would eventually beat out the spendy, slick pros.  &lt;/p&gt;&lt;p&gt;  I remember the early days of the web -- and the last days of CD ROM -- when there was this mainstream consensus that the web and PCs were too durned geeky and difficult and unpredictable for "my mom" (it's amazing how many tech people have an incredibly low opinion of their mothers). If I had a share of AOL for every time someone told me that the web would die because AOL was so easy and the web was full of garbage, I'd have a lot of AOL shares.  &lt;/p&gt;&lt;p&gt;  And they wouldn't be worth much.&lt;i&gt;&lt;/i&gt;&lt;em&gt;&lt;/em&gt;&lt;strong&gt;&lt;/strong&gt;&lt;b&gt;&lt;/b&gt;  			  			  			  			  			&lt;a name="more"&gt;&lt;/a&gt;  &lt;/p&gt;&lt;p&gt;  &lt;b&gt;Incumbents made bad revolutionaries&lt;/b&gt;&lt;br /&gt;  Relying on incumbents to produce your revolutions is not a good strategy. They're apt to take all the stuff that makes their products great and try to use technology to charge you extra for it, or prohibit it altogether.  &lt;/p&gt;&lt;p&gt;  I mean, &lt;a href="http://www.boingboing.net/2010/04/01/marvel-comics-for-ip.html"&gt;look at that Marvel app&lt;/a&gt; (just look at it). I was a comic-book kid, and I'm a comic-book grownup, and the thing that &lt;em&gt;made&lt;/em&gt; comics for me was sharing them. If there was ever a medium that relied on kids swapping their purchases around to build an audience, it was comics. And the used market for comics! It was -- and is -- huge, and vital. I can't even count how many times I've gone spelunking in the used comic-bins at a great and musty store to find back issues that I'd missed, or sample new titles on the cheap. (It's part of a multigenerational tradition in my family -- my mom's father used to take her and her sibs down to Dragon Lady Comics on Queen Street in Toronto every weekend to swap their old comics for credit and get new ones).  &lt;/p&gt;&lt;p&gt;  So what does Marvel do to "enhance" its comics? They take away the right to give, sell or loan your comics. What an improvement. Way to take the joyous, marvellous sharing and bonding experience of comic reading and turn it into a passive, lonely undertaking that isolates, rather than unites. Nice one, Misney.  &lt;/p&gt;&lt;p&gt;  &lt;b&gt;Infantalizing hardware&lt;/b&gt;&lt;br /&gt;  Then there's the device itself: clearly there's a lot of thoughtfulness and smarts that went into the design. But there's also a palpable contempt for the owner. I believe -- really believe -- in the stirring words of the &lt;a href="http://makezine.com/04/ownyourown/"&gt;Maker Manifesto&lt;/a&gt;: if you can't open it, you don't own it. Screws not glue. The original Apple ][+ came with &lt;em&gt;schematics&lt;/em&gt; for the circuit boards, and birthed a generation of hardware and software hackers who upended the world for the better. If you wanted your kid to grow up to be a confident, entrepreneurial, and firmly in the camp that believes that you should forever be rearranging the world to make it better, you bought her an Apple ][+.  &lt;/p&gt;&lt;p&gt;  But with the iPad, it seems like &lt;a href="http://www.boingboing.net/2010/03/16/tim-bray-on-the-ipho.html"&gt;Apple's model customer is that same stupid stereotype of a technophobic, timid, scatterbrained mother&lt;/a&gt; as appears in a billion renditions of "that's too complicated for my mom" (listen to the pundits extol the virtues of the iPad and time how long it takes for them to explain that here, finally, is something that isn't too complicated for their poor old mothers).  &lt;/p&gt;&lt;p&gt;  The model of interaction with the iPad is to be a "consumer," what William Gibson memorably described as "something the size of a baby hippo, the color of a week-old boiled potato, that lives by itself, in the dark, in a double-wide on the outskirts of Topeka. It's covered with eyes and it sweats constantly. The sweat runs into those eyes and makes them sting. It has no mouth... no genitals, and can only express its mute extremes of murderous rage and infantile desire by changing the channels on a universal remote."   &lt;/p&gt;&lt;p&gt;  The way you improve your iPad isn't to figure out how it works and making it better. The way you improve the iPad is to buy iApps. Buying an iPad for your kids isn't a means of jump-starting the realization that the world is yours to take apart and reassemble; it's a way of telling your offspring that even changing the batteries is something you have to leave to the professionals.  &lt;/p&gt;&lt;p&gt;  &lt;a href="http://www.google.com/search?q=doherty+hypercard+ipad&amp;amp;ie=utf-8&amp;amp;oe=utf-8&amp;amp;aq=t&amp;amp;rls=com.ubuntu:en-US:official&amp;amp;client=firefox-a"&gt;Dale Dougherty's&lt;/a&gt; piece on Hypercard and its influence on a generation of young hackers is a must-read on this. I got my start as a Hypercard programmer, and it was Hypercard's gentle and intuitive introduction to the idea of remaking the world that made me consider a career in computers.  &lt;/p&gt;&lt;p&gt;  &lt;b&gt;Wal-Martization of the software channel&lt;/b&gt;&lt;br /&gt;  And let's look at the iStore. For a company whose CEO professes a hatred of DRM, Apple sure has made DRM its alpha and omega. Having gotten into business with the two industries that most believe that you shouldn't be able to modify your hardware, load your own software on it, write software for it, override instructions given to it by the mothership (the entertainment industry and the phone companies), Apple has defined its business around these principles. It uses DRM to control what can run on your devices, which means that Apple's customers can't take their "iContent" with them to competing devices, and Apple developers can't sell on their own terms.  &lt;/p&gt;&lt;p&gt;  The iStore lock-in doesn't make life better for Apple's customers or Apple's developers. As an adult, I want to be able to choose whose stuff I buy and whom I trust to evaluate that stuff. I don't want my universe of apps constrained to the stuff that the Cupertino Politburo decides to allow for its platform. And as a copyright holder and creator, I don't want a single, Wal-Mart-like channel that controls access to my audience and dictates what is and is not acceptable material for me to create. The &lt;a href="http://boingboing.net/2010/03/08/iphone-developer-eul.html"&gt;last time I posted about this&lt;/a&gt;, we got a string of apologies for Apple's abusive contractual terms for developers, but the best one was, "Did you think that access to a platform where you can make a fortune would come without strings attached?" I read it in Don Corleone's voice and it sounded just right. Of &lt;em&gt;course&lt;/em&gt; I believe in a market where competition can take place without bending my knee to a company that has erected a drawbridge between me and my customers!   &lt;/p&gt;&lt;p&gt;  &lt;b&gt;Journalism is looking for a daddy figure&lt;/b&gt;&lt;br /&gt;  I think that the press has been all over the iPad because Apple puts on a good show, and because everyone in journalism-land is looking for a daddy figure who'll promise them that their audience will go back to paying for their stuff. The reason people have stopped paying for a lot of "content" isn't just that they can get it for free, though: &lt;em&gt;it's that they can get lots of competing stuff for free&lt;/em&gt;, too. The open platform has allowed for an explosion of new material, some of it rough-hewn, some of it slick as the pros, most of it targetted more narrowly than the old media ever managed. Rupert Murdoch can rattle his saber all he likes about &lt;a href="http://boingboing.net/2009/11/08/rupert-murdoch-vows.html"&gt;taking his content out of Google&lt;/a&gt;, but I say &lt;em&gt;do it, Rupert&lt;/em&gt;. We'll miss your fraction of a fraction of a fraction of a percent of the Web so little that we'll hardly notice it, and we'll have no trouble finding material to fill the void.   &lt;/p&gt;&lt;p&gt;  Just like the gadget press is full of devices that gadget bloggers need (and that no one else cares about), the mainstream press is full of stories that affirm the internal media consensus. Yesterday's empires do something sacred and vital and most of all &lt;em&gt;grown up&lt;/em&gt;, and that other adults will eventually come along to move us all away from the kids' playground that is the wild web, with its amateur content and lack of proprietary channels where exclusive deals can be made. We'll move back into the walled gardens that best return shareholder value to the investors who haven't updated their portfolios since before eTrade came online.  &lt;/p&gt;&lt;p&gt;  But the &lt;a href="http://www.tbiresearch.com/here-is-why-the-ipad-wont-save-the-magazine-industry-2010-3"&gt;real economics&lt;/a&gt; of iPad publishing tell a different story: even a stellar iPad sales performance isn't going to do much to stanch the bleeding from traditional publishing. Wishful thinking and a nostalgia for the good old days of lockdown won't bring customers back through the door.   &lt;/p&gt;&lt;p&gt;  &lt;b&gt;Gadgets come and gadgets go&lt;/b&gt;&lt;br /&gt;  Gadgets come and gadgets go. The iPad you buy today will be e-waste in a year or two (less, if you decide not to pay to have the battery changed for you). The real issue isn't the capabilities of the piece of plastic you unwrap today, but the technical and social infrastructure that accompanies it.   &lt;/p&gt;&lt;p&gt;  If you want to live in the creative universe where anyone with a cool idea can make it and give it to you to run on your hardware, the iPad isn't for you.  &lt;/p&gt;&lt;p&gt;  If you want to live in the fair world where you get to keep (or give away) the stuff you buy, the iPad isn't for you.  &lt;/p&gt;&lt;p&gt;  If you want to write code for a platform where the only thing that determines whether you're going to succeed with it is whether your audience loves it, the iPad isn't for you.  &lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/blockquote&gt;    &lt;div class="posterous_quote_citation"&gt;via &lt;a href="http://www.boingboing.net/2010/04/02/why-i-wont-buy-an-ipad-and-think-you-shouldnt-either.html"&gt;boingboing.net&lt;/a&gt;&lt;/div&gt; &lt;p&gt;My biggest beef with Apple is the way they want to control EVERYTHING and treat their customers like idiots. They are the "geniuses", you are not.&lt;/p&gt;&lt;/div&gt; &lt;p style="font-size: 10px;"&gt; &lt;a href="http://posterous.com"&gt;Posted via web&lt;/a&gt;  from &lt;a href="http://rogergwyatt.com/why-i-wont-buy-an-ipad-and-think-you-shouldnt-13"&gt;From the mind of Roger Wyatt&lt;/a&gt; &lt;/p&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3228799232951198165-7185329547416659617?l=latenightcms.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://latenightcms.blogspot.com/feeds/7185329547416659617/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://latenightcms.blogspot.com/2010/04/why-i-won-buy-ipad-and-think-you.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3228799232951198165/posts/default/7185329547416659617'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3228799232951198165/posts/default/7185329547416659617'/><link rel='alternate' type='text/html' href='http://latenightcms.blogspot.com/2010/04/why-i-won-buy-ipad-and-think-you.html' title='Why I won&amp;#39;t buy an iPad (and think you shouldn&amp;#39;t, either) - Boing Boing'/><author><name>Late Night CMS Junkie</name><uri>http://www.blogger.com/profile/06799426777907100854</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3228799232951198165.post-4143573400389194855</id><published>2010-04-06T10:57:00.001-07:00</published><updated>2010-04-06T10:57:05.328-07:00</updated><title type='text'>Pollen like snow</title><content type='html'>&lt;div class='posterous_autopost'&gt;&lt;a href='http://posterous.com/getfile/files.posterous.com/tynken/4yyREhKUhxU8dy3CQND021Tmghp4wpDUqbTFQQ4qPHkspiluIIR7yIFC3wqq/SSPX0226.jpg.scaled.1000.jpg'&gt;&lt;img src="http://posterous.com/getfile/files.posterous.com/tynken/Ke1riImGRx2rTauGzyH6YldSnN066zAOeaYY86iN8EGqNn9xwLddNjPtf16V/SSPX0226.jpg.scaled.500.jpg" width="500" height="375"/&gt;&lt;/a&gt; &lt;a href='http://posterous.com/getfile/files.posterous.com/tynken/cPtMf3VVOmfgIRQci2vmsvYqhOeeQbDUugzT9jq25E1n8YirSUqoSFuMtR1K/SSPX0227.jpg.scaled.1000.jpg'&gt;&lt;img src="http://posterous.com/getfile/files.posterous.com/tynken/ZGYhujLeTLBr1xp30RaPvUmOha10qWCxtxL7TL0FEd24PnyZhAGZldIfbvM4/SSPX0227.jpg.scaled.500.jpg" width="500" height="375"/&gt;&lt;/a&gt; &lt;div&gt;&lt;a href='http://rogergwyatt.com/pollen-like-snow'&gt;See and download the full gallery on posterous&lt;/a&gt;&lt;/div&gt; &lt;p style="font-size: 10px;"&gt; &lt;a href="http://posterous.com"&gt;Posted via email&lt;/a&gt;  from &lt;a href="http://rogergwyatt.com/pollen-like-snow"&gt;From the mind of Roger Wyatt&lt;/a&gt; &lt;/p&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3228799232951198165-4143573400389194855?l=latenightcms.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://latenightcms.blogspot.com/feeds/4143573400389194855/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://latenightcms.blogspot.com/2010/04/pollen-like-snow.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3228799232951198165/posts/default/4143573400389194855'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3228799232951198165/posts/default/4143573400389194855'/><link rel='alternate' type='text/html' href='http://latenightcms.blogspot.com/2010/04/pollen-like-snow.html' title='Pollen like snow'/><author><name>Late Night CMS Junkie</name><uri>http://www.blogger.com/profile/06799426777907100854</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3228799232951198165.post-5954897230866314409</id><published>2010-04-02T12:57:00.001-07:00</published><updated>2010-04-02T12:57:00.790-07:00</updated><title type='text'>My afternoon workspace</title><content type='html'>&lt;div class='posterous_autopost'&gt;&lt;a href='http://posterous.com/getfile/files.posterous.com/tynken/2Yz0P4zdkx8Bw59fdSuN8OwIePrADhK4I3PC5n6gjSsJGGN8WjAzZh3v9Zzn/SSPX0218.jpg.scaled.1000.jpg'&gt;&lt;img src="http://posterous.com/getfile/files.posterous.com/tynken/0XT4NyHVMusEGT9LcJdg6xhZbcO7ddqCvpjqguat1KgWxrO39docJdIp2d0P/SSPX0218.jpg.scaled.500.jpg" width="500" height="375"/&gt;&lt;/a&gt;  &lt;p style="font-size: 10px;"&gt; &lt;a href="http://posterous.com"&gt;Posted via email&lt;/a&gt;  from &lt;a href="http://rogergwyatt.com/my-afternoon-workspace"&gt;From the mind of Roger Wyatt&lt;/a&gt; &lt;/p&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3228799232951198165-5954897230866314409?l=latenightcms.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://latenightcms.blogspot.com/feeds/5954897230866314409/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://latenightcms.blogspot.com/2010/04/my-afternoon-workspace.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3228799232951198165/posts/default/5954897230866314409'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3228799232951198165/posts/default/5954897230866314409'/><link rel='alternate' type='text/html' href='http://latenightcms.blogspot.com/2010/04/my-afternoon-workspace.html' title='My afternoon workspace'/><author><name>Late Night CMS Junkie</name><uri>http://www.blogger.com/profile/06799426777907100854</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3228799232951198165.post-5012300562400934233</id><published>2010-04-02T12:53:00.001-07:00</published><updated>2010-04-02T12:53:34.763-07:00</updated><title type='text'>Designing new course catalog interface</title><content type='html'>&lt;div class='posterous_autopost'&gt;New expansion of Frequency. Course catalog module will enhance the awesomeness. &lt;p style="font-size: 10px;"&gt; &lt;a href="http://posterous.com"&gt;Posted via email&lt;/a&gt;  from &lt;a href="http://rogergwyatt.com/designing-new-course-catalog-interface"&gt;From the mind of Roger Wyatt&lt;/a&gt; &lt;/p&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3228799232951198165-5012300562400934233?l=latenightcms.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://latenightcms.blogspot.com/feeds/5012300562400934233/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://latenightcms.blogspot.com/2010/04/designing-new-course-catalog-interface.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3228799232951198165/posts/default/5012300562400934233'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3228799232951198165/posts/default/5012300562400934233'/><link rel='alternate' type='text/html' href='http://latenightcms.blogspot.com/2010/04/designing-new-course-catalog-interface.html' title='Designing new course catalog interface'/><author><name>Late Night CMS Junkie</name><uri>http://www.blogger.com/profile/06799426777907100854</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3228799232951198165.post-5946553040673314904</id><published>2010-03-31T13:11:00.001-07:00</published><updated>2010-03-31T13:11:54.488-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='funny'/><category scheme='http://www.blogger.com/atom/ns#' term='true story'/><title type='text'>Momma, I done gots me a TROLL!</title><content type='html'>&lt;div class='posterous_autopost'&gt;&lt;p&gt;What follows is an absolutely true story.&lt;/p&gt;  &lt;p&gt;My wife's friend works with a lady who has a mentally challenged adult son. The son is 26 years old, 6ft 4in, close to 300lbs and is mentally challenged, but capable of staying alone while his mom work. So the other day the mom calls home and the son answers excitedly telling her "Momma! I done gots me a Troll, Momma! He's in the closet and I'm feeding him Skittles!". Well, the mom didn't think much about it, and made sure that the son was okay and went back to work.Sitting at her desk for a few hours, she began to wonder what he could be talking about. Thinking there might be an animal in the house she decided that perhaps she should go home and check it out.&lt;/p&gt;  &lt;p&gt;After leaving work and driving home, she was greeted by her still excited son who again said "I done gots me a Troll! He came to the door and I caught him and put him in the closet. I put Skittles under the door for him!".&lt;/p&gt;  &lt;p&gt;Wondering what in the world she would find she opened the closet door. There, in the closet, just like her son said, was a US Census Worker who just happened to be a little person who had been snatched up from doorstep and shoved into the closet - 4 hours earlier!&lt;/p&gt;  &lt;p&gt;Yes, it's true.&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p style="font-size: 10px;"&gt; &lt;a href="http://posterous.com"&gt;Posted via web&lt;/a&gt;  from &lt;a href="http://rogergwyatt.com/momma-i-done-gots-me-a-troll"&gt;From the mind of Roger Wyatt&lt;/a&gt; &lt;/p&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3228799232951198165-5946553040673314904?l=latenightcms.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://latenightcms.blogspot.com/feeds/5946553040673314904/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://latenightcms.blogspot.com/2010/03/momma-i-done-gots-me-troll.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3228799232951198165/posts/default/5946553040673314904'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3228799232951198165/posts/default/5946553040673314904'/><link rel='alternate' type='text/html' href='http://latenightcms.blogspot.com/2010/03/momma-i-done-gots-me-troll.html' title='Momma, I done gots me a TROLL!'/><author><name>Late Night CMS Junkie</name><uri>http://www.blogger.com/profile/06799426777907100854</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3228799232951198165.post-6050252201076558233</id><published>2010-03-28T17:04:00.001-07:00</published><updated>2010-03-28T17:04:17.366-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='health'/><category scheme='http://www.blogger.com/atom/ns#' term='lifehack'/><category scheme='http://www.blogger.com/atom/ns#' term='jamie oliver'/><title type='text'>Thanks Jamie Oliver</title><content type='html'>&lt;div class='posterous_autopost'&gt;     My wife was out at a scrapbook night and I was home with the kids. After getting them in bed, I was doing some channel surfing trying hard to keep my promise of having 1 night that I didn't turn on the laptop. I spend ungodly amount of hours working on software, doing support, and keeping up with new trends (I'm on my third laptop in 5 years now). I ended up turning on Jamie Oliver's program. &lt;p /&gt;  &lt;h2&gt;Thank you Jamie Oliver - you really opened my eyes.&lt;/h2&gt; &lt;br /&gt; So Jamie went to Huntington, W.V. to try and start a revolution in school nutrition. I was interested because I am trying to start a communication revolution in schools. Well, that was the start, but it definitely got me thinking. It got me thinking because when he went to the cafeteria to see what was being prepared, it was what I expected. "Is my daughter getting fed that kind of food?" I wondered. Then, when he turned to the family and cooked everything they eat in a week I was slapped upside my face. My family isn't in the bad physical shape that the family on his program was in, nor do we eat what they eat. However, we aren't immune to needing to get SOMETHING that two small children will eat and many times in the past that has been chicken nuggets (never again after that program), taquitos, and fish sticks are foods that they will always eat. What I realized was the convenience that I was falling victim to at home was the same convenience that the schools had fallen victim to - reheatable junk that resembles food. &lt;p /&gt;  &lt;h2&gt;That night I decided that things were going to change in our house&lt;/h2&gt; &lt;br /&gt; I told all of this to Kymmie who does most of the cooking. She is very good about giving us healthy food and we cook many nights. However, what we haven't been doing is getting Tynker involved in it. She's 6 and it's about time we started getting her used to new foods.&amp;nbsp; After I told Kymmie what I had seen about the manufacturing of chicken nuggets and how I realized that the shortcut foods were the same foods that the schools prepare, I asked that we change our ways a bit.&lt;p /&gt;  &lt;h2&gt;The creation of our Signature Recipes&lt;/h2&gt; &lt;br /&gt; Last night we created our first Signature Recipe. Tynker and I created a grilled chicken dish with oranges, spinach, mushrooms, and noodles that she helped create and prepare. All fresh ingredients. We named it "Chicken Tynker" and it's now in the family recipe book. She ate every bit of it because she helped cook it. Of course, the mushrooms were a little new, but one taste and she was all over it. Now she talks about creating more recipes.&lt;p /&gt;  &lt;h2&gt;Quick lunches&lt;/h2&gt; &lt;br /&gt; Weekend lunches have been the hardest because you want to make it quick. Today's lunch was a grilled barbeque chicken with mac &amp;amp; cheese which they both ate. If I can learn to change my own habits about eating good food prepared quickly, I think we will have a great beginning.&lt;p /&gt;  So thanks, Jamie. You opened my eyes. Good luck with the Revolution. Count me in!&lt;br /&gt; (you can find Jamie's TED presentation at &lt;a href="http://www.ted.com"&gt;ted.com&lt;/a&gt;) &lt;p style="font-size: 10px;"&gt; &lt;a href="http://posterous.com"&gt;Posted via email&lt;/a&gt;  from &lt;a href="http://rogergwyatt.com/thanks-jamie-oliver"&gt;From the mind of Roger Wyatt&lt;/a&gt; &lt;/p&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3228799232951198165-6050252201076558233?l=latenightcms.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://latenightcms.blogspot.com/feeds/6050252201076558233/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://latenightcms.blogspot.com/2010/03/thanks-jamie-oliver.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3228799232951198165/posts/default/6050252201076558233'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3228799232951198165/posts/default/6050252201076558233'/><link rel='alternate' type='text/html' href='http://latenightcms.blogspot.com/2010/03/thanks-jamie-oliver.html' title='Thanks Jamie Oliver'/><author><name>Late Night CMS Junkie</name><uri>http://www.blogger.com/profile/06799426777907100854</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3228799232951198165.post-5294611997260215544</id><published>2010-03-13T14:06:00.001-08:00</published><updated>2010-03-13T14:06:31.351-08:00</updated><title type='text'>Sand man buried</title><content type='html'>&lt;div class='posterous_autopost'&gt;&lt;a href='http://posterous.com/getfile/files.posterous.com/tynken/7SVGB7rISTu6nFHfqLtHaUUrp1XBLwV4UoD9NMtpGdtdtUuegaHDLotlJqT6/SSPX0206.jpg.scaled.1000.jpg'&gt;&lt;img src="http://posterous.com/getfile/files.posterous.com/tynken/HLNAxnyajM3PpIkATFzWxcSrfj0R5QGeo0m9KQQEcYw5oBhZqy1LPcrPKdd0/SSPX0206.jpg.scaled.500.jpg" width="500" height="375"/&gt;&lt;/a&gt; &lt;a href='http://posterous.com/getfile/files.posterous.com/tynken/8azAKN4IgYiHYaxirFvXUJz9ZYkPiy3uIfdizO0ODEI5vss7nNkK9nMtCoEE/SSPX0208.jpg.scaled.1000.jpg'&gt;&lt;img src="http://posterous.com/getfile/files.posterous.com/tynken/IVuEvnPVNWR3bRTLKRGIDiBnoZxXeFhFV40rT3M83857Ov5yAIi6i0zWZosp/SSPX0208.jpg.scaled.500.jpg" width="500" height="375"/&gt;&lt;/a&gt; &lt;div&gt;&lt;a href='http://rogergwyatt.com/sand-man-buried'&gt;See and download the full gallery on posterous&lt;/a&gt;&lt;/div&gt; &lt;p style="font-size: 10px;"&gt; &lt;a href="http://posterous.com"&gt;Posted via email&lt;/a&gt;  from &lt;a href="http://rogergwyatt.com/sand-man-buried"&gt;From the mind of Roger Wyatt&lt;/a&gt; &lt;/p&gt; &lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3228799232951198165-5294611997260215544?l=latenightcms.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://latenightcms.blogspot.com/feeds/5294611997260215544/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://latenightcms.blogspot.com/2010/03/sand-man-buried.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3228799232951198165/posts/default/5294611997260215544'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3228799232951198165/posts/default/5294611997260215544'/><link rel='alternate' type='text/html' href='http://latenightcms.blogspot.com/2010/03/sand-man-buried.html' title='Sand man buried'/><author><name>Late Night CMS Junkie</name><uri>http://www.blogger.com/profile/06799426777907100854</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3228799232951198165.post-683993779934287018</id><published>2010-03-06T17:21:00.001-08:00</published><updated>2010-03-06T17:21:38.955-08:00</updated><title type='text'>Amazing. Simply amazing what is going on with integration of data sources</title><content type='html'>&lt;div class='posterous_autopost'&gt;&lt;p&gt;  &lt;object height="326" width="446"&gt;  &lt;param name="movie" value="http://video.ted.com/assets/player/swf/EmbedPlayer.swf" /&gt;  &lt;param name="allowFullScreen" value="true" /&gt;  &lt;param name="wmode" value="transparent" /&gt;  &lt;param name="bgColor" value="#ffffff" /&gt;  &lt;param name="flashvars" value="vu=http://video.ted.com/talks/dynamic/BlaiseAguerayArcas_2010-medium.mp4&amp;amp;su=http://images.ted.com/images/ted/tedindex/embed-posters/BlaiseAgueraYArcas-2010.embed_thumbnail.jpg&amp;amp;vw=432&amp;amp;vh=240&amp;amp;ap=0&amp;amp;ti=766&amp;amp;introDuration=16500&amp;amp;adDuration=4000&amp;amp;postAdDuration=2000&amp;amp;adKeys=talk=blaise_aguera;year=2010;theme=new_on_ted_com;theme=the_creative_spark;theme=a_taste_of_ted2010;event=TED2010;&amp;amp;preAdTag=tconf.ted/embed;tile=1;sz=512x288;" /&gt;&lt;embed type="application/x-shockwave-flash" src="http://video.ted.com/assets/player/swf/EmbedPlayer.swf" flashvars="vu=http://video.ted.com/talks/dynamic/BlaiseAguerayArcas_2010-medium.mp4&amp;amp;su=http://images.ted.com/images/ted/tedindex/embed-posters/BlaiseAgueraYArcas-2010.embed_thumbnail.jpg&amp;amp;vw=432&amp;amp;vh=240&amp;amp;ap=0&amp;amp;ti=766&amp;amp;introDuration=16500&amp;amp;adDuration=4000&amp;amp;postAdDuration=2000&amp;amp;adKeys=talk=blaise_aguera;year=2010;theme=new_on_ted_com;theme=the_creative_spark;theme=a_taste_of_ted2010;event=TED2010;" height="326" wmode="transparent" width="446"&gt;&lt;/embed&gt;  &lt;/param&gt;&lt;/param&gt;&lt;/param&gt;&lt;/param&gt;&lt;/param&gt;&lt;/object&gt;  &lt;/p&gt;  &lt;p&gt;This presentation just blew me away. I really need to rethink my default Google Maps choice because it looks like Microsoft is getting back in the game of creating great tools again (rather than sticking to just Enterprise apps) for everyone.&lt;/p&gt; &lt;p style="font-size: 10px;"&gt; &lt;a href="http://posterous.com"&gt;Posted via web&lt;/a&gt;  from &lt;a href="http://rogergwyatt.com/amazing-simply-amazing-what-is-going-on-with"&gt;From the mind of Roger Wyatt&lt;/a&gt; &lt;/p&gt; &lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3228799232951198165-683993779934287018?l=latenightcms.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://latenightcms.blogspot.com/feeds/683993779934287018/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://latenightcms.blogspot.com/2010/03/amazing-simply-amazing-what-is-going-on.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3228799232951198165/posts/default/683993779934287018'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3228799232951198165/posts/default/683993779934287018'/><link rel='alternate' type='text/html' href='http://latenightcms.blogspot.com/2010/03/amazing-simply-amazing-what-is-going-on.html' title='Amazing. Simply amazing what is going on with integration of data sources'/><author><name>Late Night CMS Junkie</name><uri>http://www.blogger.com/profile/06799426777907100854</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3228799232951198165.post-5737677895240174701</id><published>2010-02-25T08:41:00.001-08:00</published><updated>2010-02-25T08:41:55.100-08:00</updated><title type='text'>The Integration of Gaming and Life</title><content type='html'>&lt;div class='posterous_autopost'&gt;&lt;p&gt;  &lt;object height="418" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="480"&gt;  &lt;param name="movie" value="http://g4tv.com/lv3/44277" /&gt;  &lt;param name="allowScriptAccess" value="always" /&gt;  &lt;param name="allowFullScreen" value="true" /&gt;&lt;embed type="application/x-shockwave-flash" src="http://g4tv.com/lv3/44277" height="382" width="480"&gt;&lt;/embed&gt;  &lt;/param&gt;&lt;/param&gt;&lt;/param&gt;&lt;/object&gt;  &lt;/p&gt;  &lt;div style="margin: 0; text-align: center; font-family: Arial,sans-serif; font-size: 12px; color: #ff9b00;"&gt;&lt;a href="http://g4tv.com/games/xbox-360/index" target="_blank" style="color: #ff9b00;"&gt;Xbox 360 Games&lt;/a&gt; - &lt;a href="http://g4tv.com/e32010" target="_blank" style="color: #ff9b00;"&gt;E3 2010&lt;/a&gt; - &lt;a href="http://g4tv.com/games/ps3/61899/guitar-hero-5/index" target="_blank" style="color: #ff9b00;"&gt;Guitar Hero 5&lt;/a&gt;&lt;/div&gt;  &lt;p&gt;This is both very entertaining and very informative. It's also very scary if you are one who is concerned with maintaining freedom. The idea of a future, where integrated sensors that give us "points" for activities is very frightening. The manipulation of human behavior through the rewarding of "points" isn't something that needs to be understood. I think this guy has a handle on it and, while he thinks it could be used for good, that is a small, almost microscopic chance because it's too easy to use for evil.&lt;/p&gt; &lt;p style="font-size: 10px;"&gt; &lt;a href="http://posterous.com"&gt;Posted via web&lt;/a&gt;  from &lt;a href="http://rogergwyatt.com/the-integration-of-gaming-and-life"&gt;From the mind of Roger Wyatt&lt;/a&gt; &lt;/p&gt; &lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3228799232951198165-5737677895240174701?l=latenightcms.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://latenightcms.blogspot.com/feeds/5737677895240174701/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://latenightcms.blogspot.com/2010/02/integration-of-gaming-and-life.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3228799232951198165/posts/default/5737677895240174701'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3228799232951198165/posts/default/5737677895240174701'/><link rel='alternate' type='text/html' href='http://latenightcms.blogspot.com/2010/02/integration-of-gaming-and-life.html' title='The Integration of Gaming and Life'/><author><name>Late Night CMS Junkie</name><uri>http://www.blogger.com/profile/06799426777907100854</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3228799232951198165.post-5883469201192213082</id><published>2010-02-23T12:17:00.001-08:00</published><updated>2010-02-23T12:17:14.190-08:00</updated><title type='text'>Wonderful day at Wrightsville Beach</title><content type='html'>&lt;div class='posterous_autopost'&gt;&lt;a href='http://posterous.com/getfile/files.posterous.com/tynken/rxWiFOG9L34osFPp3C3rOAwH7NG70M5P8MsnWQaRLTT0FDHNNAU0f1taj9GE/SSPX0196.jpg.scaled.1000.jpg'&gt;&lt;img src="http://posterous.com/getfile/files.posterous.com/tynken/49e5976QMUFBHJCNule1xd64KS72owRzBkr0k9wKopHDjeMgLBHhKETIMbe6/SSPX0196.jpg.scaled.500.jpg" width="500" height="375"/&gt;&lt;/a&gt; &lt;a href='http://posterous.com/getfile/files.posterous.com/tynken/X8CarNMhvGkFm06JAL5uESlDmu4bzTp4yT32eYjiNIdhGPE10GcJoGa7B6D5/SSPX0197.jpg.scaled.1000.jpg'&gt;&lt;img src="http://posterous.com/getfile/files.posterous.com/tynken/2cTme4SkJv3LekVCo5hncBKTnpPioVG6XWqqKPH8ceSFLE8iM8q5iD54krJJ/SSPX0197.jpg.scaled.500.jpg" width="500" height="375"/&gt;&lt;/a&gt; &lt;div&gt;&lt;a href='http://rogergwyatt.com/wonderful-day-at-wrightsville-beach'&gt;See and download the full gallery on posterous&lt;/a&gt;&lt;/div&gt; &lt;p style="font-size: 10px;"&gt; &lt;a href="http://posterous.com"&gt;Posted via email&lt;/a&gt;  from &lt;a href="http://rogergwyatt.com/wonderful-day-at-wrightsville-beach"&gt;From the mind of Roger Wyatt&lt;/a&gt; &lt;/p&gt; &lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3228799232951198165-5883469201192213082?l=latenightcms.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://latenightcms.blogspot.com/feeds/5883469201192213082/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://latenightcms.blogspot.com/2010/02/wonderful-day-at-wrightsville-beach.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3228799232951198165/posts/default/5883469201192213082'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3228799232951198165/posts/default/5883469201192213082'/><link rel='alternate' type='text/html' href='http://latenightcms.blogspot.com/2010/02/wonderful-day-at-wrightsville-beach.html' title='Wonderful day at Wrightsville Beach'/><author><name>Late Night CMS Junkie</name><uri>http://www.blogger.com/profile/06799426777907100854</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3228799232951198165.post-4890738856111271426</id><published>2010-02-17T13:22:00.001-08:00</published><updated>2010-02-17T13:22:11.596-08:00</updated><title type='text'>My desk version</title><content type='html'>&lt;div class='posterous_autopost'&gt;&lt;a href='http://posterous.com/getfile/files.posterous.com/tynken/YClSPNiUTpotT3CwEAnqLR5QUktCXgQZjg5KyjXP67vRvZHrUHB00JedgAES/SSPX0195.jpg.scaled.1000.jpg'&gt;&lt;img src="http://posterous.com/getfile/files.posterous.com/tynken/9M7xSwM4NNk7Lp0tahirGQlkY3fBwJQ89t64gxVrQGFrjntrkxkuzoqa9wC4/SSPX0195.jpg.scaled.500.jpg" width="500" height="375"/&gt;&lt;/a&gt; &lt;p&gt;A bit messy, but no Lord Vader issues.&lt;/p&gt; &lt;p style="font-size: 10px;"&gt; &lt;a href="http://posterous.com"&gt;Posted via email&lt;/a&gt;  from &lt;a href="http://rogergwyatt.com/my-desk-version"&gt;From the mind of Roger Wyatt&lt;/a&gt; &lt;/p&gt; &lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3228799232951198165-4890738856111271426?l=latenightcms.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://latenightcms.blogspot.com/feeds/4890738856111271426/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://latenightcms.blogspot.com/2010/02/my-desk-version.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3228799232951198165/posts/default/4890738856111271426'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3228799232951198165/posts/default/4890738856111271426'/><link rel='alternate' type='text/html' href='http://latenightcms.blogspot.com/2010/02/my-desk-version.html' title='My desk version'/><author><name>Late Night CMS Junkie</name><uri>http://www.blogger.com/profile/06799426777907100854</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3228799232951198165.post-8352392544047926827</id><published>2010-02-17T12:57:00.001-08:00</published><updated>2010-02-17T12:57:03.371-08:00</updated><title type='text'>For some reason I can't decide if this is funny or really, really sad.</title><content type='html'>&lt;div class='posterous_autopost'&gt;     &lt;img src="http://posterous.com/getfile/files.posterous.com/tynken/niwPqraFp5UOhFlYjOWVB2JMtrv0qaPaLG7ui3bhQ71UeK9IrHiL8cSCf4TW/moz-screenshot-1.jpg" width="500" height="322"/&gt;  &lt;p style="font-size: 10px;"&gt; &lt;a href="http://posterous.com"&gt;Posted via email&lt;/a&gt;  from &lt;a href="http://rogergwyatt.com/for-some-reason-i-cant-decide-if-this-is-funn"&gt;From the mind of Roger Wyatt&lt;/a&gt; &lt;/p&gt; &lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3228799232951198165-8352392544047926827?l=latenightcms.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://latenightcms.blogspot.com/feeds/8352392544047926827/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://latenightcms.blogspot.com/2010/02/for-some-reason-i-can-decide-if-this-is.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3228799232951198165/posts/default/8352392544047926827'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3228799232951198165/posts/default/8352392544047926827'/><link rel='alternate' type='text/html' href='http://latenightcms.blogspot.com/2010/02/for-some-reason-i-can-decide-if-this-is.html' title='For some reason I can&amp;#39;t decide if this is funny or really, really sad.'/><author><name>Late Night CMS Junkie</name><uri>http://www.blogger.com/profile/06799426777907100854</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3228799232951198165.post-869715645149272143</id><published>2010-02-04T08:45:00.001-08:00</published><updated>2010-02-04T08:45:56.993-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='farmville'/><category scheme='http://www.blogger.com/atom/ns#' term='mafiawars'/><category scheme='http://www.blogger.com/atom/ns#' term='food pics'/><category scheme='http://www.blogger.com/atom/ns#' term='rants'/><title type='text'>Why the fascination with taking cell phone pics of your meal?</title><content type='html'>&lt;div class='posterous_autopost'&gt;&lt;p&gt;I'm really having problems understanding this one. Go through Posterous.com/explore a couple of times and you are nearly guaranteed to see somebody's post of their lunch - or breakfast - or coffee. What is it with this trend?&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: large;"&gt;"My lunch is more interesting than my thoughts"&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;That's what it says to me. At least now. Heck, I did it in my first post here as a test. But I've seen people who regularly post their dining choices. It's getting about as trite and cliche as taking a picture of yourself in front of a mirror with the heading "What I'm wearing today", or that you've been bitten by a vampire. Are you really contributing anything with these posts?&lt;/p&gt;  &lt;p&gt;I really don't care about your sushi lunch, your burger, your outfit you pulled out of your closet (btw, most of the time your camera blocks the view of your shirt - just thought I'd help).&lt;/p&gt;  &lt;p&gt;It's not that I think we should only post intellectually heavy articles. I love coming across great photography, interesting graphics, funny videos that just brighten my day. A picture where you have to "excuse my messy room" in order to show off your latest fashion choice does nothing to brighten anyone's day but your own.&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: large;"&gt;Some key points to remember&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;1. Are you putting this online because you think it will make you Net-famous? If so, you are wrong. Stop immediately. &lt;br /&gt;2. Are you putting this online because you think the world can't go on without knowing what you ate for lunch? If so, see #1. Stop immediately.&lt;br /&gt;3. Is your post: a. intellectually interesting, b: artistically interesting, c: entertaining on it's own merits?&amp;nbsp; If so, post away, somebody may read it.&lt;br /&gt;4. Is your post showing how you just got bit by a vampire? If so, do everyone a favor and check yourself into an insane asylum because you have lost your mind. You are one step away from telling everyone on Facebook about your Farmville crop or your lastest MafiaWars success.&lt;/p&gt;  &lt;p&gt;Thanks for posting....&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p style="font-size: 10px;"&gt; &lt;a href="http://posterous.com"&gt;Posted via web&lt;/a&gt;  from &lt;a href="http://rogergwyatt.com/why-the-fascination-with-taking-cell-phone-pi"&gt;From the mind of Roger Wyatt&lt;/a&gt; &lt;/p&gt; &lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3228799232951198165-869715645149272143?l=latenightcms.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://latenightcms.blogspot.com/feeds/869715645149272143/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://latenightcms.blogspot.com/2010/02/why-fascination-with-taking-cell-phone.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3228799232951198165/posts/default/869715645149272143'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3228799232951198165/posts/default/869715645149272143'/><link rel='alternate' type='text/html' href='http://latenightcms.blogspot.com/2010/02/why-fascination-with-taking-cell-phone.html' title='Why the fascination with taking cell phone pics of your meal?'/><author><name>Late Night CMS Junkie</name><uri>http://www.blogger.com/profile/06799426777907100854</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3228799232951198165.post-8992337072580717760</id><published>2010-01-25T12:02:00.001-08:00</published><updated>2010-01-25T12:02:02.046-08:00</updated><title type='text'>Quaint little town is Columbia, NC</title><content type='html'>&lt;div class='posterous_autopost'&gt;A few pics from the waterfront on the Scuppernong River&lt;p&gt;&lt;a href='http://posterous.com/getfile/files.posterous.com/tynken/39ETRWKa25qZvzQgvIZuqJ61RXG1qMmr4EsIM0KFnaUUKFzFTKpuBi26stkW/SSPX0177.jpg.scaled.1000.jpg'&gt;&lt;img src="http://posterous.com/getfile/files.posterous.com/tynken/tvigyyXxcoA7Raz0ImCEFaguM54IsiHAyjVlSXULEG6tcJmfhdvxY7MU4Ufb/SSPX0177.jpg.scaled.500.jpg" width="500" height="375"/&gt;&lt;/a&gt; &lt;a href='http://posterous.com/getfile/files.posterous.com/tynken/b8GUmHLX0pzVXX1E0gArQhgjXZBJuCysfwzWFsCXkKC1sVSaxHqTo7Q9DtD6/SSPX0179.jpg.scaled.1000.jpg'&gt;&lt;img src="http://posterous.com/getfile/files.posterous.com/tynken/MHBGnnxem3Sbq8lls99EE8amf7Vz4WumpBXrAPYJCz4I1D8IjsoqkSFjJXh8/SSPX0179.jpg.scaled.500.jpg" width="500" height="375"/&gt;&lt;/a&gt; &lt;a href='http://posterous.com/getfile/files.posterous.com/tynken/kb0Ifv3I5rDNtSOItiliI43fTk2euFBjgboKG9RrB1pDsECzn8Wq0qCzyRaI/SSPX0180.jpg.scaled.1000.jpg'&gt;&lt;img src="http://posterous.com/getfile/files.posterous.com/tynken/6w83G46JsygDnUXzrR6tP2DZc9RwguD2oRFC3KZeulq7yYo7PgzHTKLllVmB/SSPX0180.jpg.scaled.500.jpg" width="500" height="375"/&gt;&lt;/a&gt; &lt;a href='http://posterous.com/getfile/files.posterous.com/tynken/5YUndMOCTCAKY5NTZQ4wTuJOvw07rniV1o0j82OYnUEhJeK6JDAfb4eGfAul/SSPX0181.jpg.scaled.1000.jpg'&gt;&lt;img src="http://posterous.com/getfile/files.posterous.com/tynken/gd6mm3iodAzoXkgBMd8s5TxGTD37G6ozTdKn9GRDvE9InxiNUgEglC30FIWy/SSPX0181.jpg.scaled.500.jpg" width="500" height="375"/&gt;&lt;/a&gt; &lt;a href='http://posterous.com/getfile/files.posterous.com/tynken/cDIgOzy7mHwV25HG1QpTI576l9bHtnCYE0YG6LYxlKVVblI6RecgKmrqR7BJ/SSPX0182.jpg.scaled.1000.jpg'&gt;&lt;img src="http://posterous.com/getfile/files.posterous.com/tynken/8FyhV3u905Mqz09L4g5eEyy8dnQwcLvjNA0jYxg4yvdnhsUk37YOEHuaqnYO/SSPX0182.jpg.scaled.500.jpg" width="500" height="375"/&gt;&lt;/a&gt; &lt;div&gt;&lt;a href='http://rogergwyatt.com/quaint-little-town-is-columbia-nc'&gt;See and download the full gallery on posterous&lt;/a&gt;&lt;/div&gt;&lt;/p&gt; &lt;p style="font-size: 10px;"&gt; &lt;a href="http://posterous.com"&gt;Posted via email&lt;/a&gt;  from &lt;a href="http://rogergwyatt.com/quaint-little-town-is-columbia-nc"&gt;From the mind of Roger Wyatt&lt;/a&gt; &lt;/p&gt; &lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3228799232951198165-8992337072580717760?l=latenightcms.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://latenightcms.blogspot.com/feeds/8992337072580717760/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://latenightcms.blogspot.com/2010/01/quaint-little-town-is-columbia-nc.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3228799232951198165/posts/default/8992337072580717760'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3228799232951198165/posts/default/8992337072580717760'/><link rel='alternate' type='text/html' href='http://latenightcms.blogspot.com/2010/01/quaint-little-town-is-columbia-nc.html' title='Quaint little town is Columbia, NC'/><author><name>Late Night CMS Junkie</name><uri>http://www.blogger.com/profile/06799426777907100854</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3228799232951198165.post-1887414076295047056</id><published>2010-01-21T10:02:00.001-08:00</published><updated>2010-01-21T10:02:46.493-08:00</updated><title type='text'>Seven Actionable Marketing Trends</title><content type='html'>&lt;div class='posterous_autopost'&gt;     &lt;div style="text-align: left;"&gt;&lt;a href="http://www.slideshare.net/helgetenno/expanded-version-seven-actionable-marketing-trends" title="Expanded Version - Seven Actionable Marketing Trends" style="margin: 12px 0pt 3px; font-family: Helvetica,Arial,Sans-serif; font-style: normal; font-variant: normal; font-weight: normal; font-size: 14px; line-height: normal; display: block; text-decoration: underline;"&gt;Expanded Version - Seven Actionable Marketing Trends&lt;/a&gt;&lt;object height="355" width="425" style="margin: 0px;"&gt;&lt;param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=sevenexp-100116195447-phpapp02&amp;amp;stripped_title=expanded-version-seven-actionable-marketing-trends" /&gt;&lt;param name="allowFullScreen" value="true" /&gt;&lt;param name="allowScriptAccess" value="always" /&gt; &lt;embed allowfullscreen="true" type="application/x-shockwave-flash" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=sevenexp-100116195447-phpapp02&amp;amp;stripped_title=expanded-version-seven-actionable-marketing-trends" allowscriptaccess="always" height="355" width="425" /&gt;&lt;/embed&gt;&lt;/param&gt;&lt;/param&gt;&lt;/param&gt;&lt;/object&gt; &lt;div style="font-size: 11px; font-family: tahoma,arial; height: 26px; padding-top: 2px;"&gt;View more &lt;a href="http://www.slideshare.net/" style="text-decoration: underline;"&gt;documents&lt;/a&gt; from &lt;a href="http://www.slideshare.net/helgetenno" style="text-decoration: underline;"&gt;Helge Tenn&amp;oslash;&lt;/a&gt;.&lt;br /&gt; &lt;/div&gt; &lt;/div&gt; I found both the substance very interesting and the presentation graphics well done and captivating. Interesting insight into thinking about social media versus traditional media. &lt;p style="font-size: 10px;"&gt; &lt;a href="http://posterous.com"&gt;Posted via email&lt;/a&gt;  from &lt;a href="http://rogergwyatt.com/seven-actionable-marketing-trends-4"&gt;From the mind of Roger Wyatt&lt;/a&gt; &lt;/p&gt; &lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3228799232951198165-1887414076295047056?l=latenightcms.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://latenightcms.blogspot.com/feeds/1887414076295047056/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://latenightcms.blogspot.com/2010/01/seven-actionable-marketing-trends.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3228799232951198165/posts/default/1887414076295047056'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3228799232951198165/posts/default/1887414076295047056'/><link rel='alternate' type='text/html' href='http://latenightcms.blogspot.com/2010/01/seven-actionable-marketing-trends.html' title='Seven Actionable Marketing Trends'/><author><name>Late Night CMS Junkie</name><uri>http://www.blogger.com/profile/06799426777907100854</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3228799232951198165.post-1847388178092598560</id><published>2010-01-17T11:36:00.001-08:00</published><updated>2010-01-17T11:36:17.526-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Apps'/><category scheme='http://www.blogger.com/atom/ns#' term='iPhone'/><category scheme='http://www.blogger.com/atom/ns#' term='Apple'/><title type='text'>iPhone Developer Positions Available</title><content type='html'>&lt;div class='posterous_autopost'&gt;&lt;p&gt;&lt;span style="font-size: large;"&gt;Apple iPhone Developer Position&lt;/span&gt;&lt;br /&gt;&lt;strong&gt;Employment Terms&lt;/strong&gt;: 1099 Contract Position&lt;br /&gt;&lt;strong&gt;Term&lt;/strong&gt; 1 year&lt;br /&gt;&lt;strong&gt;Duties&lt;/strong&gt;: Develop applications for the iPhone and iPod. Once applications are developed, you must submit them to your &lt;span style="text-decoration: line-through;"&gt;master &lt;/span&gt;supervisor for approval. If your application is rejected, you will receive no compensation for your work, nor any compensation for any expenses incurred. If your application is accepted, you will pay Apple 30% of your salary for the priviledge of being able to work for Apple. &lt;br /&gt;&lt;strong&gt;Net Pay&lt;/strong&gt; (after paying Apple 30%): $6,250 /year&lt;p /&gt;Signup today and be one of their 28,000 contract developers who are generating $75,000,000 income to Apple (and only $6,250.00 to you)&lt;p /&gt;That&amp;rsquo;s the truth: Apple iPhone/iPod developers earned $175,000,000 last year. Divided between 28,000 developers. Apple made $75,000,000&lt;br /&gt;for doing nothing more than setting up a closed distribution system and giving developers no where to turn. They have to sell through Apple and pay 30% for the priviledge. For that 30% Apple does no marketing for your application, does no support for your application, does no development on your application, they run a website and restrict access - that's it.&lt;/p&gt;  &lt;p&gt;One of the reasons the iPhone and iPod/touch got so popular was that applications could be developed. Without Apps, the iPhone would be just another smart phone. So the development community has been duped into spending tons of cash developing applications that make the iPhone popular while receiving an average of $6250/year each all the while paying $75,000,000 into Apple for the priviledge of having an application on their platform.&lt;/p&gt;  &lt;p&gt;Apple the greedy, corporate thug? You bet! I really can't figure out why more developers don't abandon Apple - they are losing their shirts while making Apple rich. Even the suzziest Hollywood agents only take 15%.&lt;/p&gt; &lt;p style="font-size: 10px;"&gt; &lt;a href="http://posterous.com"&gt;Posted via web&lt;/a&gt;  from &lt;a href="http://rogergwyatt.com/iphone-developer-positions-available"&gt;From the mind of Roger Wyatt&lt;/a&gt; &lt;/p&gt; &lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3228799232951198165-1847388178092598560?l=latenightcms.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://latenightcms.blogspot.com/feeds/1847388178092598560/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://latenightcms.blogspot.com/2010/01/iphone-developer-positions-available.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3228799232951198165/posts/default/1847388178092598560'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3228799232951198165/posts/default/1847388178092598560'/><link rel='alternate' type='text/html' href='http://latenightcms.blogspot.com/2010/01/iphone-developer-positions-available.html' title='iPhone Developer Positions Available'/><author><name>Late Night CMS Junkie</name><uri>http://www.blogger.com/profile/06799426777907100854</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3228799232951198165.post-726458973750158291</id><published>2010-01-06T19:33:00.001-08:00</published><updated>2010-01-06T19:33:12.079-08:00</updated><title type='text'>Periodic Table of Typefaces</title><content type='html'>From Squidspot. This is a really cool way to think about typefaces and typeface families.&lt;p&gt;&lt;a href='http://posterous.com/getfile/files.posterous.com/tynken/LwYsvy7ELFj5ttkYOuc1HbZMNuXGg8x8UiJlQzdrUSxH0Gxy7XKu7e4RvGl8/Periodic_Table_of_Typefaces_la.jpg.scaled.1000.jpg'&gt;&lt;img src="http://posterous.com/getfile/files.posterous.com/tynken/bTPS4VjgGr2tBuSbLLX9lYvtNosyL2udFT8APc4VLk9IiDL8Z9UKEw1FbQCi/Periodic_Table_of_Typefaces_la.jpg.scaled.500.jpg" width="500" height="333"/&gt;&lt;/a&gt; &lt;/p&gt; &lt;p style="font-size: 10px;"&gt; &lt;a href="http://posterous.com"&gt;Posted via email&lt;/a&gt;  from &lt;a href="http://rogergwyatt.com/periodic-table-of-typefaces-49"&gt;From the mind of Roger Wyatt&lt;/a&gt; &lt;/p&gt;   &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3228799232951198165-726458973750158291?l=latenightcms.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://latenightcms.blogspot.com/feeds/726458973750158291/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://latenightcms.blogspot.com/2010/01/periodic-table-of-typefaces.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3228799232951198165/posts/default/726458973750158291'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3228799232951198165/posts/default/726458973750158291'/><link rel='alternate' type='text/html' href='http://latenightcms.blogspot.com/2010/01/periodic-table-of-typefaces.html' title='Periodic Table of Typefaces'/><author><name>Late Night CMS Junkie</name><uri>http://www.blogger.com/profile/06799426777907100854</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3228799232951198165.post-6466649251005803330</id><published>2010-01-01T11:34:00.001-08:00</published><updated>2010-01-01T11:34:59.890-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mobile'/><category scheme='http://www.blogger.com/atom/ns#' term='technology'/><category scheme='http://www.blogger.com/atom/ns#' term='2010'/><category scheme='http://www.blogger.com/atom/ns#' term='ajax'/><category scheme='http://www.blogger.com/atom/ns#' term='user interface'/><title type='text'>Four predictions for technology in 2010</title><content type='html'>&lt;p&gt;2009 was really a tough year and I, for one, am finally glad to see it behind me. Highlights were really tough to come by and lowlights were everywhere. Of course, the economy and lack of any recovery is the greatest lowlight of the year. Politically, 2009 was a total disaster and not looking to improve in the immediate future which will prolong the poor economic recovery.&lt;/p&gt;  &lt;p&gt;But I don't want to talk politics or talk about looking backward - everyone is doing that. I want to look ahead at what is coming down the pike. Call it predictions, call it looking ahead, call it what you will. Here is what I see coming soon.&lt;/p&gt;  &lt;h2&gt;Social Media will begin a transformation&lt;/h2&gt;  &lt;p&gt;It simply must. There are already jokes being posted on blogs everywhere about the "Social Media Guru" bloat. There are many problems with Social Media that need to be worked out. It's extraordinarily labor-intensive to get and stay connected. Some people (read "so-called gurus") are trying to automate their twitter postings by recycling things over and over again. There are some twitterers who's postings I can time like a top-40 station's rotation. This is just the symptom of the problem. The problem is that it takes so much effort to get above the background noise of social media that business is having a very hard time with it. Whenever something is labor-intensive it gets automated or outsourced - both result in the legitimacy of the results coming into question.&lt;/p&gt;  &lt;p&gt;I think people view social media in the same way they tried to push "eyeballs" during the dot-com bubble. It's new, no one really knows what works, so they promote anything as the answer.&lt;/p&gt;  &lt;p&gt;Already the early adopters are beginning to withdraw from the platforms (see those leaving Twitter behind, facebook becoming "uncool", etc). In order to stay current, this platform will need to find a way to show real results - not simply counting followers.&lt;/p&gt;  &lt;h2&gt;More Powerful Web Applications&lt;/h2&gt;  &lt;p&gt;Alright, so I'm a bit biased here since I write web applications, but I think we will see an explosion of really user-friendly web applications. Going beyond the idea of tabbed navigation (yawn), but into application that follow a more free-form user experience. AJAX is the heart of things here and while we see bits and pieces everywhere (popup boxes, etc), 2010 will be the true start of an explosion of new web-based application UI development&lt;/p&gt;  &lt;p&gt;Look at Google Wave for a start. It's a good beginning, but suffers from a real need for a broad user base to make the collaboration work well. The real-time updates from all collaborators is a really good start. I'm looking to see more multi-tasking applications. Not in the CPU sense, but in the user sense. Almost all applications confine users into doing a single task at a time (see &lt;a href="http://www.tynken.com"&gt;www.tynken.com&lt;/a&gt; for an application that doesn't confine users that way).&lt;/p&gt;  &lt;p&gt;While this isn't a ground-breaking prediction, after all we have been seening more powerful web applications every year, I think the broad acceptance and use of AJAX by the development community and support in the browsers means we are about to see a real breakout year.&lt;/p&gt;  &lt;h2&gt;Use of old applications in new ways&lt;/h2&gt;  &lt;p&gt;In order to gain faster adoption, applications will be written to piggy-back on existing applications. Not mashups, but using an existing application in a new way. Posterous is one example - using email to post blog entries. &lt;a href="http://www.tynken.com"&gt;Signal&lt;/a&gt; is another - using email to update database applications. These types of reuse of application knowledge means that it's going to be easier to get users online.&lt;/p&gt;  &lt;h2&gt;Mobile, mobile, mobile&lt;/h2&gt;  &lt;p&gt;I think the appStore is getting in the way of itself. There are beginning to be signals that developers are frustrated with Apple's stranglehold on distribution of their product. Android is growing a developer base, but lacks a good single-point application distribution channel. Sound schizo? You bet. On one hand, the appStore is a good thing - single point to promote and distribute. On the other hand, Apple's handling of the appStore means there is opportunity. I was really dissapointed with Sprint's handling of the application potential for the Instinct. I like the phone, hate the lack of developer support and promotion.&lt;/p&gt;  &lt;p&gt;Developers can no longer just be concerned about browser compatibility, we now must be developing multi-platform applications so that users can access our software on the users terms, not ours.&lt;/p&gt;  &lt;p&gt;I think that is a good start. Let's go out and make 2010 a year to remember for technology! Got more predictions? Leave them here.&lt;/p&gt; &lt;p style="font-size: 10px;"&gt; &lt;a href="http://posterous.com"&gt;Posted via web&lt;/a&gt;  from &lt;a href="http://rogergwyatt.com/four-predictions-for-technology-in-2010"&gt;From the mind of Roger Wyatt&lt;/a&gt; &lt;/p&gt;   &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3228799232951198165-6466649251005803330?l=latenightcms.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://latenightcms.blogspot.com/feeds/6466649251005803330/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://latenightcms.blogspot.com/2010/01/four-predictions-for-technology-in-2010.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3228799232951198165/posts/default/6466649251005803330'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3228799232951198165/posts/default/6466649251005803330'/><link rel='alternate' type='text/html' href='http://latenightcms.blogspot.com/2010/01/four-predictions-for-technology-in-2010.html' title='Four predictions for technology in 2010'/><author><name>Late Night CMS Junkie</name><uri>http://www.blogger.com/profile/06799426777907100854</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3228799232951198165.post-2765810136168853541</id><published>2009-12-09T10:16:00.001-08:00</published><updated>2009-12-09T10:16:19.111-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='personal'/><category scheme='http://www.blogger.com/atom/ns#' term='wrightsville beach'/><title type='text'>It's a rough day at Wrightsville Beach</title><content type='html'>       &lt;div style='padding: 5px 5px 10px 5px; margin-top: 5px; border: 1px solid #ddd; background-color: #fff;line-height: 16px;'&gt;       &lt;div style="float: left; margin-right: 5px; overflow: visible;"&gt;&lt;a href='http://posterous.com/getfile/files.posterous.com/tynken/mbvP7dsRUkSmXvMZZlboaUPEixkzZLyp4Q4xIEZopU5Ik9iOM66osNtsjNeN/SSPX0161.3g2' style='color: #bc7134;'&gt;&lt;img src='http://posterous.com/images/filetypes/unknown.png' style='border: none;'/&gt;&lt;/a&gt;&lt;/div&gt;       &lt;div style="font-size: 10px; color: #424037;line-height: 16px;"&gt;Download now or &lt;a href='http://rogergwyatt.com/its-a-rough-day-at-wrightsville-beach' style='color: #bc7134;'&gt;watch on posterous&lt;/a&gt;&lt;/div&gt;       &lt;b&gt;&lt;a href='http://posterous.com/getfile/files.posterous.com/tynken/mbvP7dsRUkSmXvMZZlboaUPEixkzZLyp4Q4xIEZopU5Ik9iOM66osNtsjNeN/SSPX0161.3g2' style='color: #bc7134;'&gt;SSPX0161.3g2&lt;/a&gt;&lt;/b&gt; &lt;span style="font-size: 10px; color: #424037;"&gt;(1402 KB)&lt;/span&gt;       &lt;br style="clear: both;"/&gt;&lt;/div&gt;       &lt;p style="font-size: 10px;"&gt; &lt;a href="http://posterous.com"&gt;Posted via email&lt;/a&gt;  from &lt;a href="http://rogergwyatt.com/its-a-rough-day-at-wrightsville-beach"&gt;From the mind of Roger Wyatt&lt;/a&gt; &lt;/p&gt;   &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3228799232951198165-2765810136168853541?l=latenightcms.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://latenightcms.blogspot.com/feeds/2765810136168853541/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://latenightcms.blogspot.com/2009/12/it-rough-day-at-wrightsville-beach.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3228799232951198165/posts/default/2765810136168853541'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3228799232951198165/posts/default/2765810136168853541'/><link rel='alternate' type='text/html' href='http://latenightcms.blogspot.com/2009/12/it-rough-day-at-wrightsville-beach.html' title='It&amp;#39;s a rough day at Wrightsville Beach'/><author><name>Late Night CMS Junkie</name><uri>http://www.blogger.com/profile/06799426777907100854</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3228799232951198165.post-4916086031818277761</id><published>2009-11-22T20:25:00.001-08:00</published><updated>2009-11-22T20:25:30.780-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='ajax'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><title type='text'>AJAX applications and data security</title><content type='html'>     AJAX is a great tool and has provided web developers with the opportunity to create wonderful, engaging applications that work better than anything else preceding them. By requesting information asynchronously, one can develop applications that function very much like traditional, installed applications. The resulting application has lower development costs, no distribution costs, lower support costs, and can be integrated with more, 3&lt;sup&gt;rd&lt;/sup&gt; party applications than a traditional installed application. &lt;p&gt;However, AJAX has a new set of problems to be handled in order to have a safe, secure application.&lt;span style=""&gt;&amp;nbsp; &lt;/span&gt;Let&amp;#8217;s look at two basic things that have to be done in order to make it work right.&lt;/p&gt; &lt;h1&gt;Request Hijacking and Spoofing&lt;/h1&gt; &lt;p&gt;One of the most basic attacks and problems to an AJAX system is simply the sending of requests to the server directly. While this doesn&amp;#8217;t seem to be an issue &amp;#8211; it&amp;#8217;s huge. Why? Because they can screw up your database, put items in a shopping cart, change pricing, and more.&lt;/p&gt; &lt;p&gt;Let&amp;#8217;s look at a quick example, you are running Bob&amp;#8217;s Micro-Dog Supplies website. It has a great AJAX interface that is smooth and beautiful. When people add items to the cart it is all done in AJAX. Here&amp;#8217;s where the problem comes in. When they check out, you call the following URL&lt;span style=""&gt;&amp;nbsp; &lt;/span&gt;&lt;a href="https://www.bobsmicrodog.com/checkout.php"&gt;&lt;span style=""&gt;https://www.bobsmicrodog.com/checkout.php&lt;/span&gt;&lt;/a&gt;. In the POST variables you list the products, the quantity, the price each, and the total price. Sounds great, right? Wrong.&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;By submitting to the URL with different POST data I could buy the entire order for pennies. Remember, your URL&amp;#8217;s are only slightly hidden.&lt;br /&gt; &lt;/p&gt; &lt;blockquote&gt; &lt;blockquote&gt; &lt;h2&gt;How to fix it&lt;/h2&gt; &lt;/blockquote&gt; &lt;/blockquote&gt; &lt;blockquote&gt; &lt;blockquote&gt;Use AJAX for user interface and non-consequential data management. Pricing and ordering are not inconsequential. A better way would be for the server to have the cart and data and the AJAX version simply make references to it. Anything that is of consequence should be maintained and controlled by the server.&lt;br /&gt; &lt;/blockquote&gt; &lt;/blockquote&gt; &lt;p&gt;&lt;/p&gt; &lt;h1&gt;Authentication&lt;/h1&gt; &lt;p&gt;The next issue is maintaining authentication. Unfortunately for bobsmicrodog.com, their application had a login script that returned the rights via JSON to the browser. This allowed for a great user experience &amp;#8211; it was fast. However, bobsmicrodog.com never checked anything again. If the user could click on a link the server would accept the information. Too bad, that little Johnny learned the URL to send and now they have all the customer information because little Johnny Hacker got into the private side of the site.&lt;br /&gt; &lt;/p&gt; &lt;blockquote&gt; &lt;blockquote&gt; &lt;h2&gt;How to fix it&lt;/h2&gt; Not only must you store all information of consequence on the server, you must also assume that every request to the server is illegitimate. Store security information in a database on the server and verify that the user is who they say they are and that they have the rights to do what they are requesting. Don&amp;#8217;t assume that the request can&amp;#8217;t be sent via any other method.&lt;/blockquote&gt; &lt;/blockquote&gt; &lt;p&gt;You&amp;#8217;re not there yet. Because there are sneaky people around, you need to go another step forward. One of bobsmicrodog.com visitors is ordering information while at a coffee shop with wifi. Little Johnny Hacker is sitting in the coffee shop with a sniffer and discovers the customer. Now they have session info, and user keys, and whatever else was posted on the requests. So they form a URL with the session information and maybe other details in the query string or in post data. Bobsmicrodog has modified their system so they check the session and recheck the rights for that user. Oops, now they have Little Johnny Hacker masquerading as the legitimate customer.&lt;/p&gt; &lt;h2 style="margin-left: 1in;"&gt;How to fix it&lt;/h2&gt; &lt;p style="margin-left: 1in;"&gt;You not only have to check the session information, you need to make sure you know where the requests are coming from. Verify the IP address along with the session information. You may have a case, however where the IP address is shared among all users (like behind a proxy server). In that case, checking IP may not be sufficient and you are going to have to be more creative.&lt;/p&gt; &lt;p style="margin-left: 1in;"&gt;The best thing to do is to not use the standard session mechanism but set up your own authentication system to keep track of who is logged in and where. Sessions are automatically created by the server which makes spoofing a session ID easy. Avoiding using sessions in the traditional sense prevents this issue from coming up. &lt;/p&gt; &lt;p style="margin-left: 1in;"&gt;&lt;/p&gt; &lt;h1&gt;Summary&lt;/h1&gt; &lt;p&gt;AJAX applications need to be rethought. It&amp;#8217;s not a matter of just calling your standard processing script using AJAX calls. The security issues are more numerous with an AJAX application. You need to do more verification of access rights than you would do with a standard application. You need to have a much safer method of verification user identity than you would do with a standard web application. &lt;/p&gt; &lt;p style="font-size: 10px;"&gt; &lt;a href="http://posterous.com"&gt;Posted via email&lt;/a&gt;  from &lt;a href="http://rogergwyatt.com/ajax-applications-and-data-security"&gt;From the mind of Roger Wyatt&lt;/a&gt; &lt;/p&gt;   &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3228799232951198165-4916086031818277761?l=latenightcms.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://latenightcms.blogspot.com/feeds/4916086031818277761/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://latenightcms.blogspot.com/2009/11/ajax-applications-and-data-security.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3228799232951198165/posts/default/4916086031818277761'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3228799232951198165/posts/default/4916086031818277761'/><link rel='alternate' type='text/html' href='http://latenightcms.blogspot.com/2009/11/ajax-applications-and-data-security.html' title='AJAX applications and data security'/><author><name>Late Night CMS Junkie</name><uri>http://www.blogger.com/profile/06799426777907100854</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3228799232951198165.post-903661796966543601</id><published>2009-07-22T17:19:00.001-07:00</published><updated>2009-07-22T17:19:46.644-07:00</updated><title type='text'>Frequency CMS User Interface</title><content type='html'>&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/PYsukjFYDIw&amp;amp;hl=en&amp;amp;fs=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/PYsukjFYDIw&amp;amp;hl=en&amp;amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3228799232951198165-903661796966543601?l=latenightcms.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://latenightcms.blogspot.com/feeds/903661796966543601/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://latenightcms.blogspot.com/2009/07/frequency-cms-user-interface.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3228799232951198165/posts/default/903661796966543601'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3228799232951198165/posts/default/903661796966543601'/><link rel='alternate' type='text/html' href='http://latenightcms.blogspot.com/2009/07/frequency-cms-user-interface.html' title='Frequency CMS User Interface'/><author><name>Late Night CMS Junkie</name><uri>http://www.blogger.com/profile/06799426777907100854</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
