<?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/opensearch/1.1/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0' gd:etag='W/&quot;AkECQ3w4eSp7ImA9WhVRFE8.&quot;'><id>tag:blogger.com,1999:blog-4985412203514275539</id><updated>2012-03-22T20:34:22.231+05:30</updated><category term='Development'/><category term='Games'/><category term='Microsoft'/><category term='Layout'/><category term='PS3'/><category term='Spamming'/><category term='Flex'/><category term='Design'/><category term='Basics'/><category term='Tutorial'/><category term='Facebook'/><category term='Web'/><category term='HTML5'/><title>CD Ray - Designer and Developer</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://dilipray.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4985412203514275539/posts/default?redirect=false&amp;v=2'/><link rel='alternate' type='text/html' href='http://dilipray.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Ray CD</name><uri>https://profiles.google.com/102090886766399511065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-ITCEPwabzpY/AAAAAAAAAAI/AAAAAAAAB5Y/JQUCF52robg/s512-c/photo.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>17</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry gd:etag='W/&quot;AkQBQ3w4fCp7ImA9WhVRFE8.&quot;'><id>tag:blogger.com,1999:blog-4985412203514275539.post-5579775151687814540</id><published>2012-03-22T20:24:00.000+05:30</published><updated>2012-03-22T20:29:12.234+05:30</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2012-03-22T20:29:12.234+05:30</app:edited><title>Android Tutorial</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-ugXU2A2nfBo/T2s-NHxeisI/AAAAAAAABmk/TkdKwuCwDrs/s1600/android-developer-labs.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://3.bp.blogspot.com/-ugXU2A2nfBo/T2s-NHxeisI/AAAAAAAABmk/TkdKwuCwDrs/s320/android-developer-labs.png" width="205" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.android.com/"&gt;Android &lt;/a&gt;, an open source operating system for mobiles devices (smartphone and tablet), led by Google. The Android SDK provides a set of tools and APIs to develop Android application, using Java. So, if you know Java, Android programming is easy .&lt;br /&gt;
&lt;br /&gt;
In this series of tutorials, we show you the list of basic tutorials to get you start program Android easily.&lt;br /&gt;
Note&lt;br /&gt;
All Android tutorials are developed in Eclipse 3.7, and tested with Android 2.3.3.&lt;br /&gt;
&lt;br /&gt;
P.S This is just the initial version of Android tutorials, will keep publish more in future.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;

1. Quick Start&lt;/h3&gt;
&lt;br /&gt;
Get you start in Android programming.&lt;br /&gt;
&lt;a href="http://www.mkyong.com/android/android-hello-world-example/"&gt;Android hello world example &lt;/a&gt;&lt;br /&gt;
Tools and SDK to develop Android application.&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;h3&gt;

2. Fundamentals&lt;/h3&gt;
&lt;br /&gt;
Some Android basic stuffs.&lt;br /&gt;
&lt;a href="http://www.mkyong.com/android/android-activity-from-one-screen-to-another-screen/"&gt;Android activity example &lt;/a&gt;&lt;br /&gt;
Understand Android’s activity, a simple example to navigate from one screen (activity) to another screen (activity).&lt;br /&gt;
&lt;a href="http://www.mkyong.com/android/android-wrap_content-and-fill_parent-example/"&gt;Android wrap_content and fill_parent example &lt;/a&gt;&lt;br /&gt;
The different between wrap_content and fill_parent to control the component’s width and height.&lt;br /&gt;
&lt;a href="http://www.mkyong.com/android/attach-android-source-code-to-eclipse-ide/"&gt;Attach Android source code to Eclipse IDE &lt;/a&gt;&lt;br /&gt;
Android source code is important to understand how Android works, a guide to attach Android’s source code to Eclipse IDE.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;

3. User Interface Controls&lt;/h3&gt;
&lt;br /&gt;
Play with Android UI controls.&lt;br /&gt;
&lt;a href="http://www.mkyong.com/android/android-button-example/"&gt;Android button example &lt;/a&gt;&lt;br /&gt;
Use “Button” to display a simple button.&lt;br /&gt;
&lt;a href="http://www.mkyong.com/android/android-textbox-example/"&gt;Android textbox example &lt;/a&gt;&lt;br /&gt;
Use “EditText” to render an editable textbox component.&lt;br /&gt;
&lt;a href="http://www.mkyong.com/android/android-password-field-example/"&gt;Android password example &lt;/a&gt;&lt;br /&gt;
Use “EditText” + inputType=”textPassword” to render a password component.&lt;br /&gt;
&lt;a href="http://www.mkyong.com/android/android-checkbox-example/"&gt;Android checkbox example &lt;/a&gt;&lt;br /&gt;
Use “CheckBox” to render checkbox component.&lt;br /&gt;
&lt;a href="http://www.mkyong.com/android/android-radio-buttons-example/"&gt;Android radio buttons example &lt;/a&gt;&lt;br /&gt;
Use “RadioButton” and “RadioGroup” to render radio buttons component in group.&lt;br /&gt;
&lt;a href="http://www.mkyong.com/android/android-togglebutton-example/"&gt;Android toggle button example &lt;/a&gt;&lt;br /&gt;
Use “ToggleButton” to render a button which has only two states (On and Off).&lt;br /&gt;
&lt;a href="http://www.mkyong.com/android/android-rating-bar-example/"&gt;Android rating bar example &lt;/a&gt;&lt;br /&gt;
Use “RatingBar” to render a rating bar in stars icon.&lt;br /&gt;
&lt;a href="http://www.mkyong.com/android/android-spinner-drop-down-list-example/"&gt;Android spinner (drop down list) example &lt;/a&gt;&lt;br /&gt;
Use “Spinner” to render a drop down box for selecting items.&lt;br /&gt;
&lt;a href="http://www.mkyong.com/android/android-date-picker-example/"&gt;Android date picker example &lt;/a&gt;&lt;br /&gt;
Use “DatePicker” and “DatePickerDialog” to render a date picker component.&lt;br /&gt;
&lt;a href="http://www.mkyong.com/android/android-time-picker-example/"&gt;Android time picker example &lt;/a&gt;&lt;br /&gt;
Use “TimePicker” and “TimePickerDialog” to render a time picker component.&lt;br /&gt;
&lt;a href="http://www.mkyong.com/android/android-analogclock-and-digitalclock-example/"&gt;Android analogclock and digitalclock example &lt;/a&gt;&lt;br /&gt;
Use “AnalogClock” and “DigitalClock” to render a clock like component, which supports hours, minutes and seconds.&lt;br /&gt;
&lt;a href="http://www.mkyong.com/android/android-progress-bar-example/"&gt;Android progress bar example &lt;/a&gt;&lt;br /&gt;
Use “ProgressDialog” to display a progress bar in dialog to tell use that your task is takes time to finish.&lt;br /&gt;
&lt;a href="http://www.mkyong.com/android/android-alert-dialog-example/"&gt;Android alert dialog example &lt;/a&gt;&lt;br /&gt;
How to display a alert box.&lt;br /&gt;
&lt;a href="http://www.mkyong.com/android/android-prompt-user-input-dialog-example/"&gt;Android prompt dialog example &lt;/a&gt;&lt;br /&gt;
Custom AlertDialog example.&lt;br /&gt;
&lt;a href="http://www.mkyong.com/android/android-custom-dialog-example/"&gt;Android custom dialog example &lt;/a&gt;&lt;br /&gt;
Custom Dialog example.&lt;br /&gt;
&lt;a href="http://www.mkyong.com/android/android-toast-example/"&gt;Android Toast example &lt;/a&gt;&lt;br /&gt;
Custom Toast view example.&lt;br /&gt;
&lt;a href="http://www.mkyong.com/android/android-imageview-example/"&gt;Android ImageView example &lt;/a&gt;&lt;br /&gt;
Use “ImageView” to display an image file.&lt;br /&gt;
&lt;a href="http://www.mkyong.com/android/android-imagebutton-example/"&gt;Android ImageButton example &lt;/a&gt;&lt;br /&gt;
Use “ImageButton” to display a button with a customized background image.&lt;br /&gt;
&lt;a href="http://www.mkyong.com/android/android-imagebutton-selector-example/"&gt;Android ImageButton selector example &lt;/a&gt;&lt;br /&gt;
Use “Button” and “selector” tag to display button’s images depend on the button states.&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;h3&gt;

4. Layouts&lt;/h3&gt;
&lt;br /&gt;
Play with Android layout controls.&lt;br /&gt;
&lt;a href="http://www.mkyong.com/android/android-linearlayout-example/"&gt;Android LinearLayout example &lt;/a&gt;&lt;br /&gt;
Most common layout, arranges components in horizontal or vertical order.&lt;br /&gt;
&lt;a href="http://www.mkyong.com/android/android-relativelayout-example/"&gt;Android RelativeLayout example &lt;/a&gt;&lt;br /&gt;
Most flexible layout, arranges components base on the “relative” or sibling component.&lt;br /&gt;
&lt;a href="http://www.mkyong.com/android/android-tablelayout-example/"&gt;Android TableLayout example &lt;/a&gt;&lt;br /&gt;
Most flexible layout, arranges components in row and column format, just like HTML table , &amp;lt;tr&amp;gt; and &amp;lt;td&amp;gt;.&lt;br /&gt;
&lt;a href="http://www.mkyong.com/android/android-listview-example/"&gt;Android ListView example &lt;/a&gt;&lt;br /&gt;
Display components in a vertical scrollable list.&lt;br /&gt;
&lt;a href="http://www.mkyong.com/android/android-gridview-example/"&gt;Android GridView example &lt;/a&gt;&lt;br /&gt;
Display componenets in a two-dimensional scrolling grid.&lt;br /&gt;
&lt;a href="http://www.mkyong.com/android/android-webview-example/"&gt;Android WebView example &lt;/a&gt;&lt;br /&gt;
Allow you to open an own windows for viewing URL or custom html markup page.&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;h3&gt;

5. FAQs&lt;/h3&gt;
&lt;br /&gt;
Some common asked questions in Android.&lt;br /&gt;
&lt;div&gt;
&lt;ul style="background-color: white; font-family: arial, sans-serif; font-size: 14px; line-height: 20px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 18px; padding-right: 0px; padding-top: 0px;"&gt;
&lt;li style="list-style-image: url(http://www.mkyong.com/wp-content/themes/mkyongnew/images/arrow-red.png); list-style-type: square; margin-bottom: 0px; margin-left: 14px; margin-right: 0px; margin-top: 0px; padding-bottom: 10px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://www.mkyong.com/android/how-to-open-an-url-in-androids-web-browser/" style="color: #0f3b68;"&gt;How to open an URL in Android’s web browser&lt;/a&gt;&lt;/li&gt;
&lt;li style="list-style-image: url(http://www.mkyong.com/wp-content/themes/mkyongnew/images/arrow-red.png); list-style-type: square; margin-bottom: 0px; margin-left: 14px; margin-right: 0px; margin-top: 0px; padding-bottom: 10px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://www.mkyong.com/android/how-to-set-default-activity-for-android-application/" style="color: #0f3b68;"&gt;How to set default activity for Android application&lt;/a&gt;&lt;/li&gt;
&lt;li style="list-style-image: url(http://www.mkyong.com/wp-content/themes/mkyongnew/images/arrow-red.png); list-style-type: square; margin-bottom: 0px; margin-left: 14px; margin-right: 0px; margin-top: 0px; padding-bottom: 10px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://www.mkyong.com/android/how-to-make-a-phone-call-in-android/" style="color: #0f3b68;"&gt;How to make a phone call in Android&lt;/a&gt;&lt;/li&gt;
&lt;li style="list-style-image: url(http://www.mkyong.com/wp-content/themes/mkyongnew/images/arrow-red.png); list-style-type: square; margin-bottom: 0px; margin-left: 14px; margin-right: 0px; margin-top: 0px; padding-bottom: 10px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://www.mkyong.com/android/where-to-download-samsung-galaxy-s2-usb-driver/" style="color: #0f3b68;"&gt;Where to download Samsung Galaxy S2 USB driver?&lt;/a&gt;&lt;/li&gt;
&lt;li style="list-style-image: url(http://www.mkyong.com/wp-content/themes/mkyongnew/images/arrow-red.png); list-style-type: square; margin-bottom: 0px; margin-left: 14px; margin-right: 0px; margin-top: 0px; padding-bottom: 10px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://www.mkyong.com/android/android-debugging-on-real-device/" style="color: #0f3b68;"&gt;Android debugging on real device&lt;/a&gt;&lt;/li&gt;
&lt;li style="list-style-image: url(http://www.mkyong.com/wp-content/themes/mkyongnew/images/arrow-red.png); list-style-type: square; margin-bottom: 0px; margin-left: 14px; margin-right: 0px; margin-top: 0px; padding-bottom: 10px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://www.mkyong.com/android/android-how-to-center-button-on-screen/" style="color: #0f3b68;"&gt;Android – How to center button on screen&lt;/a&gt;&lt;/li&gt;
&lt;li style="list-style-image: url(http://www.mkyong.com/wp-content/themes/mkyongnew/images/arrow-red.png); list-style-type: square; margin-bottom: 0px; margin-left: 14px; margin-right: 0px; margin-top: 0px; padding-bottom: 10px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://www.mkyong.com/android/how-to-turn-onoff-camera-ledflashlight-in-android/" style="color: #0f3b68;"&gt;How to turn on/off camera LED/flashlight in Android&lt;/a&gt;&lt;/li&gt;
&lt;li style="list-style-image: url(http://www.mkyong.com/wp-content/themes/mkyongnew/images/arrow-red.png); list-style-type: square; margin-bottom: 0px; margin-left: 14px; margin-right: 0px; margin-top: 0px; padding-bottom: 10px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://www.mkyong.com/android/android-how-to-check-if-device-has-camera/" style="color: #0f3b68;"&gt;Android : how to check if device has camera&lt;/a&gt;&lt;/li&gt;
&lt;li style="list-style-image: url(http://www.mkyong.com/wp-content/themes/mkyongnew/images/arrow-red.png); list-style-type: square; margin-bottom: 0px; margin-left: 14px; margin-right: 0px; margin-top: 0px; padding-bottom: 10px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://www.mkyong.com/android/how-to-send-sms-message-in-android/" style="color: #0f3b68;"&gt;How to send SMS message in Android&lt;/a&gt;&lt;/li&gt;
&lt;li style="list-style-image: url(http://www.mkyong.com/wp-content/themes/mkyongnew/images/arrow-red.png); list-style-type: square; margin-bottom: 0px; margin-left: 14px; margin-right: 0px; margin-top: 0px; padding-bottom: 10px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://www.mkyong.com/android/how-to-send-email-in-android/" style="color: #0f3b68;"&gt;How to send Email in Android&lt;/a&gt;&lt;/li&gt;
&lt;li style="list-style-image: url(http://www.mkyong.com/wp-content/themes/mkyongnew/images/arrow-red.png); list-style-type: square; margin-bottom: 0px; margin-left: 14px; margin-right: 0px; margin-top: 0px; padding-bottom: 10px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://www.mkyong.com/android/android-the-connection-to-adb-is-down-and-a-severe-error-has-occurred/" style="color: #0f3b68;"&gt;Android : The connection to adb is down, and a severe error has occurred.&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
References ,&amp;nbsp;You might also like this tutorials :&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://developer.android.com/"&gt;Android Developer&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://developer.android.com/guide/topics/fundamentals.html"&gt;Android Fundamental&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://en.wikipedia.org/wiki/Android_(operating_system)"&gt;Android in Wikipedia&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4985412203514275539-5579775151687814540?l=dilipray.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dilipray.blogspot.com/feeds/5579775151687814540/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dilipray.blogspot.com/2012/03/android-tutorial.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4985412203514275539/posts/default/5579775151687814540?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4985412203514275539/posts/default/5579775151687814540?v=2'/><link rel='alternate' type='text/html' href='http://dilipray.blogspot.com/2012/03/android-tutorial.html' title='Android Tutorial'/><author><name>Ray CD</name><uri>https://profiles.google.com/102090886766399511065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-ITCEPwabzpY/AAAAAAAAAAI/AAAAAAAAB5Y/JQUCF52robg/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-ugXU2A2nfBo/T2s-NHxeisI/AAAAAAAABmk/TkdKwuCwDrs/s72-c/android-developer-labs.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;C0YHSHgzeCp7ImA9WhVTFUk.&quot;'><id>tag:blogger.com,1999:blog-4985412203514275539.post-8814824033114633477</id><published>2012-03-01T00:15:00.000+05:30</published><updated>2012-03-01T00:15:39.680+05:30</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2012-03-01T00:15:39.680+05:30</app:edited><title>People Around The World</title><content type='html'>&lt;br /&gt;
&lt;div style="background-color: white; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #373737; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 15px; line-height: 24px; margin-bottom: 1.625em; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;
Another one in the ‘series’ of fun and happiness… Some real nice shoots in this video. From the fastest climb on Mt. Eiger (BTW, the Eiger (3970 m (13025 ft)) is a mountain in Switzerland.) to some amazing base jumping. Not to forget some days in the snow that only the true lucky ones are getting the chance to experience.&lt;/div&gt;
&lt;div style="background-color: white; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #373737; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 15px; line-height: 24px; margin-bottom: 1.625em; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="background-color: white; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #373737; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 15px; line-height: 24px; margin-bottom: 1.625em; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;
&lt;/div&gt;
&lt;div id="watch-description-text" style="background-attachment: initial; background-clip: initial; background-color: #ebebeb; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: arial, sans-serif; font-size: 1.09em; line-height: 1.4; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;"&gt;
&lt;div id="eow-description" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 13px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div id="eow-description" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 13px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div id="eow-description" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 13px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div id="eow-description" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 13px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;object class="BLOGGER-youtube-video" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" data-thumbnail-src="http://2.gvt0.com/vi/EEu42L0ufBY/0.jpg" height="266" width="320"&gt;&lt;param name="movie" value="http://www.youtube.com/v/EEu42L0ufBY&amp;fs=1&amp;source=uds" /&gt;


&lt;param name="bgcolor" value="#FFFFFF" /&gt;


&lt;embed width="560" height="315"  src="http://www.youtube.com/v/EEu42L0ufBY&amp;fs=1&amp;source=uds" type="application/x-shockwave-flash"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;
&lt;div id="eow-description" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 13px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;
&lt;/div&gt;
&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;
List of the video is used: PLEASE VISIT THE ORIGINAL VIDEOS:&lt;br /&gt;
Musik: Hans Zimmer - Final Charge (Last Samurai OST)&lt;br /&gt;
Landscape Volume 2&amp;nbsp;&lt;a class="yt-uix-redirect-link" dir="ltr" href="http://vimeo.com/29950141" rel="nofollow" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #1c62b9; cursor: pointer; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none;" target="_blank" title="http://vimeo.com/29950141"&gt;http://vimeo.com/29950141&lt;/a&gt;&lt;br /&gt;
Landscape Volume 1&amp;nbsp;&lt;a class="yt-uix-redirect-link" dir="ltr" href="http://vimeo.com/16198274" rel="nofollow" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #1c62b9; cursor: pointer; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none;" target="_blank" title="http://vimeo.com/16198274"&gt;http://vimeo.com/16198274&lt;/a&gt;&lt;br /&gt;
like there is no tomorrow&amp;nbsp;&lt;a class="yt-uix-redirect-link" dir="ltr" href="http://www.youtube.com/watch?v=jqBkf5ibktU" rel="nofollow" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #1c62b9; cursor: pointer; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none;" target="_blank" title="http://www.youtube.com/watch?v=jqBkf5ibktU"&gt;http://www.youtube.com/watch?v=jqBkf5ibktU&lt;/a&gt;&lt;br /&gt;
blob jump official world record&amp;nbsp;&lt;a class="yt-uix-redirect-link" dir="ltr" href="http://www.youtube.com/watch?v=n8BX6v9k9CU" rel="nofollow" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #1c62b9; cursor: pointer; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none;" target="_blank" title="http://www.youtube.com/watch?v=n8BX6v9k9CU"&gt;http://www.youtube.com/watch?v=n8BX6v9k9CU&lt;/a&gt;&lt;br /&gt;
crazy close shave pass during wingsuit jump in norway crazy close shave pass during wingsuit jump in norway&lt;br /&gt;
Danny MacAskill Way back home&amp;nbsp;&lt;a class="yt-uix-redirect-link" dir="ltr" href="http://www.youtube.com/watch?v=Cj6ho1-G6tw" rel="nofollow" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #1c62b9; cursor: pointer; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none;" target="_blank" title="http://www.youtube.com/watch?v=Cj6ho1-G6tw"&gt;http://www.youtube.com/watch?v=Cj6ho1-G6tw&lt;/a&gt;&lt;br /&gt;
Epic trick shot battle dude perfect&amp;nbsp;&lt;a class="yt-uix-redirect-link" dir="ltr" href="http://www.youtube.com/watch?v=W_2eU1ykV3k" rel="nofollow" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #1c62b9; cursor: pointer; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none;" target="_blank" title="http://www.youtube.com/watch?v=W_2eU1ykV3k"&gt;http://www.youtube.com/watch?v=W_2eU1ykV3k&lt;/a&gt;&lt;br /&gt;
experience zero gravity&amp;nbsp;&lt;a class="yt-uix-redirect-link" dir="ltr" href="http://www.youtube.com/watch?v=NhPqn7MuDy0" rel="nofollow" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #1c62b9; cursor: pointer; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none;" target="_blank" title="http://www.youtube.com/watch?v=NhPqn7MuDy0"&gt;http://www.youtube.com/watch?v=NhPqn7MuDy0&lt;/a&gt;&lt;br /&gt;
freeskier phil meier profile&amp;nbsp;&lt;a class="yt-uix-redirect-link" dir="ltr" href="http://www.youtube.com/watch?v=sqApF3VnzfQ" rel="nofollow" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #1c62b9; cursor: pointer; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none;" target="_blank" title="http://www.youtube.com/watch?v=sqApF3VnzfQ"&gt;http://www.youtube.com/watch?v=sqApF3VnzfQ&lt;/a&gt;&lt;br /&gt;
gopro hd hero - best of&amp;nbsp;&lt;a class="yt-uix-redirect-link" dir="ltr" href="http://www.youtube.com/watch?v=QgPO46D7Eow" rel="nofollow" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #1c62b9; cursor: pointer; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none;" target="_blank" title="http://www.youtube.com/watch?v=QgPO46D7Eow"&gt;http://www.youtube.com/watch?v=QgPO46D7Eow&lt;/a&gt;&lt;br /&gt;
jaxon wong 2011 sampler&amp;nbsp;&lt;a class="yt-uix-redirect-link" dir="ltr" href="http://www.youtube.com/watch?v=nhf_QP3ARF4" rel="nofollow" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #1c62b9; cursor: pointer; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none;" target="_blank" title="http://www.youtube.com/watch?v=nhf_QP3ARF4"&gt;http://www.youtube.com/watch?v=nhf_QP3ARF4&lt;/a&gt;&lt;br /&gt;
just jump skydives&amp;nbsp;&lt;a class="yt-uix-redirect-link" dir="ltr" href="http://www.youtube.com/watch?v=oTvMv2AG6wM" rel="nofollow" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #1c62b9; cursor: pointer; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none;" target="_blank" title="http://www.youtube.com/watch?v=oTvMv2AG6wM"&gt;http://www.youtube.com/watch?v=oTvMv2AG6wM&lt;/a&gt;&lt;br /&gt;
lassi huskainen angry birds&amp;nbsp;&lt;a class="yt-uix-redirect-link" dir="ltr" href="http://www.youtube.com/watch?v=cVzW3OGq7kM" rel="nofollow" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #1c62b9; cursor: pointer; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none;" target="_blank" title="http://www.youtube.com/watch?v=cVzW3OGq7kM"&gt;http://www.youtube.com/watch?v=cVzW3OGq7kM&lt;/a&gt;&lt;br /&gt;
mike wilson 99 foot rope swing quadruple backpflips&lt;a class="yt-uix-redirect-link" dir="ltr" href="http://www.youtube.com/watch?v=ZwoI9t0e11k" rel="nofollow" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #1c62b9; cursor: pointer; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none;" target="_blank" title="http://www.youtube.com/watch?v=ZwoI9t0e11k"&gt;http://www.youtube.com/watch?v=ZwoI9t0e11k&lt;/a&gt;&lt;br /&gt;
pool skateboarding&amp;nbsp;&lt;a class="yt-uix-redirect-link" dir="ltr" href="http://www.youtube.com/watch?v=EH5tpZdkAJY" rel="nofollow" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #1c62b9; cursor: pointer; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none;" target="_blank" title="http://www.youtube.com/watch?v=EH5tpZdkAJY"&gt;http://www.youtube.com/watch?v=EH5tpZdkAJY&lt;/a&gt;&lt;br /&gt;
pro riders in action&amp;nbsp;&lt;a class="yt-uix-redirect-link" dir="ltr" href="http://www.youtube.com/watch?v=FVU0qxNSGjI" rel="nofollow" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #1c62b9; cursor: pointer; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none;" target="_blank" title="http://www.youtube.com/watch?v=FVU0qxNSGjI"&gt;http://www.youtube.com/watch?v=FVU0qxNSGjI&lt;/a&gt;&lt;br /&gt;
reel rock 2010 trailer&amp;nbsp;&lt;a class="yt-uix-redirect-link" dir="ltr" href="http://www.youtube.com/watch?v=UVRDb1CBh58" rel="nofollow" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #1c62b9; cursor: pointer; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none;" target="_blank" title="http://www.youtube.com/watch?v=UVRDb1CBh58"&gt;http://www.youtube.com/watch?v=UVRDb1CBh58&lt;/a&gt;&lt;br /&gt;
sepaktakraw vigo cup 2011&amp;nbsp;&lt;a class="yt-uix-redirect-link" dir="ltr" href="http://www.youtube.com/watch?v=rq_p8_HQ9eE" rel="nofollow" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #1c62b9; cursor: pointer; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none;" target="_blank" title="http://www.youtube.com/watch?v=rq_p8_HQ9eE"&gt;http://www.youtube.com/watch?v=rq_p8_HQ9eE&lt;/a&gt;&lt;br /&gt;
snowscoot euro&amp;nbsp;&lt;a class="yt-uix-redirect-link" dir="ltr" href="http://www.youtube.com/watch?v=RapsKMQXw0w" rel="nofollow" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #1c62b9; cursor: pointer; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none;" target="_blank" title="http://www.youtube.com/watch?v=RapsKMQXw0w"&gt;http://www.youtube.com/watch?v=RapsKMQXw0w&lt;/a&gt;&lt;br /&gt;
speed flying ultimate rush&amp;nbsp;&lt;a class="yt-uix-redirect-link" dir="ltr" href="http://www.youtube.com/watch?v=OAq2P0tEXzA" rel="nofollow" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #1c62b9; cursor: pointer; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none;" target="_blank" title="http://www.youtube.com/watch?v=OAq2P0tEXzA"&gt;http://www.youtube.com/watch?v=OAq2P0tEXzA&lt;/a&gt;&lt;br /&gt;
the art of flight - snowboarding film trailer&amp;nbsp;&lt;a class="yt-uix-redirect-link" dir="ltr" href="http://www.youtube.com/watch?v=kh29_SERH0Y" rel="nofollow" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #1c62b9; cursor: pointer; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none;" target="_blank" title="http://www.youtube.com/watch?v=kh29_SERH0Y"&gt;http://www.youtube.com/watch?v=kh29_SERH0Y&lt;/a&gt;&lt;br /&gt;
the hd hero2_ 2x as poweful in every way&amp;nbsp;&lt;a class="yt-uix-redirect-link" dir="ltr" href="http://www.youtube.com/watch?v=GUEZCxBcM78" rel="nofollow" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #1c62b9; cursor: pointer; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none;" target="_blank" title="http://www.youtube.com/watch?v=GUEZCxBcM78"&gt;http://www.youtube.com/watch?v=GUEZCxBcM78&lt;/a&gt;&lt;br /&gt;
the water&amp;nbsp;&lt;a class="yt-uix-redirect-link" dir="ltr" href="http://www.youtube.com/watch?v=c-gARuGBSdw" rel="nofollow" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #1c62b9; cursor: pointer; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none;" target="_blank" title="http://www.youtube.com/watch?v=c-gARuGBSdw"&gt;http://www.youtube.com/watch?v=c-gARuGBSdw&lt;/a&gt;&lt;br /&gt;
winter x games 15 torsten hogmo triple&amp;nbsp;&lt;a class="yt-uix-redirect-link" dir="ltr" href="http://www.youtube.com/watch?v=cJSzjCJ21CQ" rel="nofollow" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #1c62b9; cursor: pointer; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none;" target="_blank" title="http://www.youtube.com/watch?v=cJSzjCJ21CQ"&gt;http://www.youtube.com/watch?v=cJSzjCJ21CQ&lt;/a&gt;&lt;br /&gt;
worlds widest slip and slide&amp;nbsp;&lt;a class="yt-uix-redirect-link" dir="ltr" href="http://www.youtube.com/watch?v=aF_OQuu3Ap0" rel="nofollow" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #1c62b9; cursor: pointer; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none;" target="_blank" title="http://www.youtube.com/watch?v=aF_OQuu3Ap0"&gt;http://www.youtube.com/watch?v=aF_OQuu3Ap0&lt;/a&gt;&lt;/div&gt;
&lt;div id="watch-description-extras" style="background-attachment: initial; background-clip: initial; background-color: #ebebeb; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: arial, sans-serif; font-size: 12px; line-height: normal; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;"&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;ul id="watch-description-extra-info" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; list-style-image: initial; list-style-position: initial; list-style-type: none; margin-bottom: 0px; margin-left: 475px; margin-right: 0px; margin-top: 0px; min-height: 55px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; width: 165px;"&gt;
&lt;li style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 1px; margin-left: 0px; margin-right: 0px; margin-top: 0px; overflow-x: hidden; overflow-y: hidden; padding-bottom: 2px; padding-left: 0px; padding-right: 0px; padding-top: 2px;"&gt;&lt;span style="color: #666666;"&gt;&lt;span class="watch-likes-dislikes" style="background-attachment: initial; background-clip: initial; background-color: #ebebeb; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: arial, sans-serif; font-size: 0.9166em; line-height: 17px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4985412203514275539-8814824033114633477?l=dilipray.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dilipray.blogspot.com/feeds/8814824033114633477/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dilipray.blogspot.com/2012/03/people-around-world.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4985412203514275539/posts/default/8814824033114633477?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4985412203514275539/posts/default/8814824033114633477?v=2'/><link rel='alternate' type='text/html' href='http://dilipray.blogspot.com/2012/03/people-around-world.html' title='People Around The World'/><author><name>Ray CD</name><uri>https://profiles.google.com/102090886766399511065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-ITCEPwabzpY/AAAAAAAAAAI/AAAAAAAAB5Y/JQUCF52robg/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;AkECQ3w_cSp7ImA9WhVRFE8.&quot;'><id>tag:blogger.com,1999:blog-4985412203514275539.post-2799566889558258167</id><published>2012-02-20T23:57:00.002+05:30</published><updated>2012-03-22T20:34:22.249+05:30</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2012-03-22T20:34:22.249+05:30</app:edited><title>Web Development – Some ‘Good To Great’ Tools</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-fXG4lT-MWQY/T2s_bvSbzqI/AAAAAAAABms/lL2kVXjzo0Q/s1600/html5_css3_javascript_497x190.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="122" src="http://3.bp.blogspot.com/-fXG4lT-MWQY/T2s_bvSbzqI/AAAAAAAABms/lL2kVXjzo0Q/s320/html5_css3_javascript_497x190.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div style="background-color: white; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #373737; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 15px; line-height: 24px; margin-bottom: 1.625em; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;
&lt;br /&gt;
If you got some other good sources please let me know…&amp;nbsp;Here is the list:&lt;/div&gt;
&lt;h2 style="background-color: white; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; clear: both; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 15px; line-height: 24px; margin-bottom: 0.8125em; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;


&lt;strong style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Browser capability&lt;/strong&gt;&lt;/h2&gt;
&lt;div style="background-color: white; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #373737; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 15px; line-height: 24px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;
&lt;strong style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;/strong&gt;Before you start your project you need to check what is the set of features and which browser will support them. There are few sites that will give you good answers. The lastest one is:&amp;nbsp;&lt;strong style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;a href="http://html5please.us/" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #1982d1; font-family: inherit; font-style: inherit; font-weight: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none; vertical-align: baseline;"&gt;html5please.us&lt;/a&gt;&amp;nbsp;&lt;/strong&gt;and other good sources are&amp;nbsp;&lt;strong style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;a href="http://caniuse.com/" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #1982d1; font-family: inherit; font-style: inherit; font-weight: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none; vertical-align: baseline;"&gt;caniuse.com&lt;/a&gt;&amp;nbsp;&lt;/strong&gt;which include mobile browsers as well and&amp;nbsp;&lt;strong style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;a href="http://mobilehtml5.org/" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #1982d1; font-family: inherit; font-style: inherit; font-weight: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none; vertical-align: baseline;"&gt;mobilehtml5.org&lt;/a&gt;&amp;nbsp;&lt;/strong&gt;that is all about capability for mobile browsers.&lt;/div&gt;
&lt;div style="background-color: white; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #373737; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 15px; line-height: 24px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;
&lt;/div&gt;
&lt;h2 style="background-color: white; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; clear: both; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 15px; line-height: 24px; margin-bottom: 0.8125em; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;


JavaScript MVC frameworks&lt;/h2&gt;
&lt;div style="background-color: white; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #373737; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 15px; line-height: 24px; margin-bottom: 1.625em; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify; vertical-align: baseline;"&gt;
There is a new kid on the block -&amp;nbsp;&lt;a href="http://walmartlabs.github.com/thorax/" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #1982d1; font-family: inherit; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none; vertical-align: baseline;" target="_blank"&gt;Thorax&lt;/a&gt;&amp;nbsp;I like that fact that it is an&amp;nbsp;&lt;strong style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;opinionated&lt;/strong&gt;&amp;nbsp;backbone application framework. It is a combination of several tools:&lt;/div&gt;
&lt;ul style="background-color: white; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #373737; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 15px; line-height: 24px; list-style-image: initial; list-style-position: initial; list-style-type: square; margin-bottom: 1.625em; margin-left: 2.5em; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;
&lt;li style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;a href="http://documentcloud.github.com/backbone/" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #1982d1; font-family: inherit; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none; vertical-align: baseline;"&gt;Backbone&lt;/a&gt;&amp;nbsp;– the core framework&lt;/li&gt;
&lt;li style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;a href="http://documentcloud.github.com/underscore/" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #1982d1; font-family: inherit; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none; vertical-align: baseline;"&gt;Underscore&lt;/a&gt;&amp;nbsp;– JavaScript utility belt with you&lt;/li&gt;
&lt;li style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;a href="https://github.com/madrobby/zepto" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #1982d1; font-family: inherit; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none; vertical-align: baseline;"&gt;Zepto&lt;/a&gt;&amp;nbsp;– jQuery DOM goodness for mobile&lt;/li&gt;
&lt;li style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;a href="http://www.handlebarsjs.com/" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #1982d1; font-family: inherit; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none; vertical-align: baseline;"&gt;Handlebars&lt;/a&gt;&amp;nbsp;– mustache for&amp;nbsp;&lt;a href="http://us.movember.com/" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #1982d1; font-family: inherit; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none; vertical-align: baseline;"&gt;movember&lt;/a&gt;&lt;/li&gt;
&lt;li style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;a href="http://learnboost.github.com/stylus/" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #1982d1; font-family: inherit; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none; vertical-align: baseline;"&gt;Stylus&lt;/a&gt;&amp;nbsp;– Good and clean CSS experience&lt;/li&gt;
&lt;li style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;a href="http://walmartlabs.github.com/lumbar" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #1982d1; font-family: inherit; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none; vertical-align: baseline;"&gt;Lumbar&lt;/a&gt;&amp;nbsp;– packaging utility&lt;/li&gt;
&lt;/ul&gt;
&lt;div style="background-color: white; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #373737; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 15px; line-height: 24px; margin-bottom: 1.625em; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify; vertical-align: baseline;"&gt;
Another framework that is worth the time to look into is:&amp;nbsp;&lt;a href="http://emberjs.com/" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #1982d1; font-family: inherit; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none; vertical-align: baseline;" target="_blank"&gt;emberjs&lt;/a&gt;&amp;nbsp;and&lt;a href="http://www.blogger.com/blogger.g?blogID=4985412203514275539" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #1982d1; font-family: inherit; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&amp;nbsp;Trello tech stack&lt;/a&gt;&amp;nbsp;that is coming from the great dudes of ‘Fog Creek’.&lt;/div&gt;
&lt;div style="background-color: white; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #373737; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 15px; line-height: 24px; margin-bottom: 1.625em; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify; vertical-align: baseline;"&gt;
If you wish to check what other options you have today -&amp;nbsp;I would go to this&amp;nbsp;&lt;a href="http://addyosmani.github.com/todomvc/" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #1982d1; font-family: inherit; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none; vertical-align: baseline;" target="_blank"&gt;site&lt;/a&gt;&amp;nbsp;and check some of the most popular MVC framework that are out there.&lt;/div&gt;
&lt;h2 style="background-color: white; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; clear: both; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 15px; line-height: 24px; margin-bottom: 0.8125em; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;


Work and share javascript online&lt;/h2&gt;
&lt;ul style="background-color: white; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #373737; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 15px; line-height: 24px; list-style-image: initial; list-style-position: initial; list-style-type: square; margin-bottom: 1.625em; margin-left: 2.5em; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;
&lt;li style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;a href="http://jsbin.com/" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #1982d1; font-family: inherit; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none; vertical-align: baseline;" target="_blank"&gt;Jsbin.com&lt;/a&gt;&lt;/li&gt;
&lt;li style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;a href="http://greenido.wordpress.com/2012/01/31/web-development-some-good-to-great-tools/jsfiddle.net" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #1982d1; font-family: inherit; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none; vertical-align: baseline;" target="_blank"&gt;jsfiddle.net&lt;/a&gt;&lt;/li&gt;
&lt;li style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;div style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;
&lt;a href="http://code.google.com/apis/ajax/playground/" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #1982d1; font-family: inherit; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none; vertical-align: baseline;"&gt;Google code playground&lt;/a&gt;&lt;strong style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&amp;nbsp;- which include some good examples of&amp;nbsp;Google and JavaScript APIs.&lt;/strong&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div style="background-color: white; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #373737; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 15px; line-height: 24px; margin-bottom: 1.625em; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;
I also found myself using&amp;nbsp;&lt;a href="http://jsonviewer.stack.hu/" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #1982d1; font-family: inherit; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none; vertical-align: baseline;" target="_blank"&gt;Simple JSON viewer&lt;/a&gt;&amp;nbsp;in cases you wish to find out a specific parameter in a large JSON object.&lt;/div&gt;
&lt;div style="background-color: white; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #373737; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 15px; line-height: 24px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;
&lt;strong style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Playing with CSS3&lt;/strong&gt;&lt;/div&gt;
&lt;ul style="background-color: white; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #373737; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 15px; line-height: 24px; list-style-image: initial; list-style-position: initial; list-style-type: square; margin-bottom: 1.625em; margin-left: 2.5em; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;
&lt;li style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Nice&amp;nbsp;&lt;a href="http://colrd.com/create/gradient/" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #1982d1; font-family: inherit; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none; vertical-align: baseline;" target="_blank"&gt;html5 app to play with gradients&lt;/a&gt;&amp;nbsp;and of course&amp;nbsp;&lt;a href="http://css3please.com/" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #1982d1; font-family: inherit; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none; vertical-align: baseline;" target="_blank"&gt;http://css3please.com&lt;/a&gt;&amp;nbsp;that let you tune your styles online.&lt;/li&gt;
&lt;li style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;a href="http://westciv.com/tools/" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #1982d1; font-family: inherit; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none; vertical-align: baseline;" target="_blank"&gt;http://westciv.com/tools/&lt;/a&gt;&amp;nbsp;-&amp;nbsp;Great collection of tools to improve your CSS/CSS3 capabilities.&lt;/li&gt;
&lt;li style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;http://pageblox.com/ – A tool to help you build your next grid online.&lt;/li&gt;
&lt;li style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Examples for CSS3 usage:&lt;a href="http://leaverou.me/css3patterns/" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #1982d1; font-family: inherit; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none; vertical-align: baseline;"&gt;&amp;nbsp;CSS3 Patterns Gallery&lt;/a&gt;&lt;/li&gt;
&lt;li style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;a href="http://gradients.glrzad.com/" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #1982d1; font-family: inherit; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none; vertical-align: baseline;"&gt;CSS3 Gradient Generator&lt;/a&gt;&amp;nbsp;- The CSS3 Gradient Generator is a showcase for the power of CSS gradients.&lt;/li&gt;
&lt;li style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;a href="http://www.colorzilla.com/gradient-editor/" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #1982d1; font-family: inherit; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none; vertical-align: baseline;"&gt;CSS Gradient Generator&lt;/a&gt;&amp;nbsp;- a powerful Photoshop-like CSS gradient editor from ColorZilla.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 style="background-color: white; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; clear: both; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 15px; line-height: 24px; margin-bottom: 0.8125em; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;


Libraries for Fonts&lt;/h2&gt;
&lt;ul style="background-color: white; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #373737; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 15px; line-height: 24px; list-style-image: initial; list-style-position: initial; list-style-type: square; margin-bottom: 1.625em; margin-left: 2.5em; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;
&lt;li style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;a href="http://www.google.com/webfonts" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #1982d1; font-family: inherit; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none; vertical-align: baseline;"&gt;Google Web Fonts API&lt;/a&gt;&amp;nbsp;– Google Web Fonts makes web fonts quick and easy to use for everyone, including professional designers and developers. We believe that there should not be any barriers to making great websites.&lt;/li&gt;
&lt;li style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;a href="https://typekit.com/" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #1982d1; font-family: inherit; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none; vertical-align: baseline;"&gt;TypeKit&lt;/a&gt;&amp;nbsp;– Simple, bulletproof, standards compliant, accessible, and totally legal fonts for the web.&lt;/li&gt;
&lt;/ul&gt;
&lt;div style="background-color: white; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #373737; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 15px; line-height: 24px; margin-bottom: 1.625em; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;
&lt;strong style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Offline&amp;nbsp;Libraries &amp;amp; Frameworks&lt;/strong&gt;&lt;/div&gt;
&lt;div style="background-color: white; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #373737; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 15px; line-height: 24px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;
&lt;ul id="internal-source-marker_0.9025575066916645" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-style: inherit; list-style-image: initial; list-style-position: initial; list-style-type: square; margin-bottom: 1.625em; margin-left: 2.5em; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;
&lt;li style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;a href="http://westciv.com/tools/manifestR/" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #1982d1; font-family: inherit; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none; vertical-align: baseline;"&gt;ManifestR&lt;/a&gt;&amp;nbsp;– a bookmarklet for creating an AppCache manifest file.&lt;/li&gt;
&lt;li style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;a href="http://westcoastlogic.com/lawnchair/" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #1982d1; font-family: inherit; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none; vertical-align: baseline;"&gt;LawnChair&lt;/a&gt;&amp;nbsp;– a library that provides a lightweight, adaptive, simple and elegant persistence solution.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div style="background-color: white; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #373737; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 15px; line-height: 24px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;
&lt;strong style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;For Mac Web Developers&lt;/strong&gt;&lt;br /&gt;
&lt;div style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-style: inherit; margin-bottom: 1.625em; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;
&lt;/div&gt;
&lt;ul style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-style: inherit; list-style-image: initial; list-style-position: initial; list-style-type: square; margin-bottom: 1.625em; margin-left: 2.5em; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;ul style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-style: inherit; list-style-image: initial; list-style-position: initial; list-style-type: square; margin-bottom: 0px; margin-left: 2.5em; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;
&lt;li style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;LiveReload monitors changes in the file system. As soon as you save a file, it is&amp;nbsp;&lt;a href="http://livereload.com/" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #1982d1; font-family: inherit; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none; vertical-align: baseline;" target="_blank"&gt;preprocessed as needed&lt;/a&gt;, and the browser is&amp;nbsp;refreshed. When you change a&amp;nbsp;CSS file or an&amp;nbsp;image, the browser is updated instantly without reloading the&amp;nbsp;page.&lt;/li&gt;
&lt;li style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;a href="http://incident57.com/codekit/" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #1982d1; font-family: inherit; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none; vertical-align: baseline;" target="_blank"&gt;CodeKit&lt;/a&gt;&amp;nbsp;automatically compiles Less, Sass, Stylus &amp;amp; CoffeeScript files. It effortlessly combines, minifies and error-checks Javascript. It even optimizes images, auto-reloads your browser and lets you use the same files across many projects.&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;div style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;
&lt;/div&gt;
&lt;h2 style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; clear: both; color: black; font-family: inherit; font-size: 15px; font-style: inherit; margin-bottom: 0.8125em; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;


Mobile web development – Some good reads&lt;/h2&gt;
&lt;ul style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-style: inherit; list-style-image: initial; list-style-position: initial; list-style-type: square; margin-bottom: 1.625em; margin-left: 2.5em; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;
&lt;li style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;a href="http://smus.com/mobile-web-app-tech-stack" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #1982d1; font-family: inherit; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none; vertical-align: baseline;" target="_blank"&gt;The mobile web application tech stack&lt;/a&gt;&amp;nbsp;- Good post by&amp;nbsp;&lt;a href="http://twitter.com/borismus" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #1982d1; font-family: inherit; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none; vertical-align: baseline;" target="_blank"&gt;@borismus&lt;/a&gt;&amp;nbsp;on the best tools today for developing mobile web app.&lt;/li&gt;
&lt;li style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;strong style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;a href="http://www.slideshare.net/bryanrieger/rethinking-the-mobile-web-by-yiibu" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #1982d1; font-family: inherit; font-style: inherit; font-weight: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none; vertical-align: baseline;"&gt;Rethinking the mobile web&lt;/a&gt;:&lt;/strong&gt;&amp;nbsp; a good presentation which take a slightly different slant on the responsive web design ethos for mobile devices.&lt;/li&gt;
&lt;li style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;strong style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;a href="http://www.cloudfour.com/css-media-query-for-mobile-is-fools-gold/" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #1982d1; font-family: inherit; font-style: inherit; font-weight: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none; vertical-align: baseline;"&gt;CSS media query for mobile is fool’s gold&lt;/a&gt;&amp;nbsp;-&lt;/strong&gt;&amp;nbsp;Cloud Four’s article sets the record straight regarding claims that responsive web design is perfect for producing mobile-optimised websites.&lt;/li&gt;
&lt;/ul&gt;
&lt;div style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;
It is far from being a full list – just a beach-head to start have a source for some tools that will make you more productive.&lt;/div&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4985412203514275539-2799566889558258167?l=dilipray.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dilipray.blogspot.com/feeds/2799566889558258167/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dilipray.blogspot.com/2012/02/web-development-some-good-to-great.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4985412203514275539/posts/default/2799566889558258167?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4985412203514275539/posts/default/2799566889558258167?v=2'/><link rel='alternate' type='text/html' href='http://dilipray.blogspot.com/2012/02/web-development-some-good-to-great.html' title='Web Development – Some ‘Good To Great’ Tools'/><author><name>Ray CD</name><uri>https://profiles.google.com/102090886766399511065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-ITCEPwabzpY/AAAAAAAAAAI/AAAAAAAAB5Y/JQUCF52robg/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-fXG4lT-MWQY/T2s_bvSbzqI/AAAAAAAABms/lL2kVXjzo0Q/s72-c/html5_css3_javascript_497x190.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;D0ICQX06fSp7ImA9WhRaFEw.&quot;'><id>tag:blogger.com,1999:blog-4985412203514275539.post-9143310450625916163</id><published>2012-02-16T23:36:00.000+05:30</published><updated>2012-02-16T23:36:00.315+05:30</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2012-02-16T23:36:00.315+05:30</app:edited><title>How to work with your closest client : Your Family</title><content type='html'>Doing freelance design work for a family member or friend can be super stressful. While some freelancers have no problem working with family, others would say that family projects are miserable.&lt;br /&gt;
&lt;br /&gt;
There are times, though, when you can’t turn down a friend or family member without causing a major rift. This post provides some pointers to help make friend and family projects go more smoothly.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-size: large;"&gt;Ten Tips for Working with Friends and Family&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
So, you find yourself working for a friend or family member, but you don’t want the project to deteriorate into bickering and fighting. What can you do to keep the project running smoothly and protect your nerves at the same time?&lt;br /&gt;
&lt;br /&gt;
Depending on your family member or friend, some disagreement may be inevitable. If you don’t ordinarily get along well with them, you can’t expect working with them on a design project to be any different. But there are some things you can do to minimize the damage:&lt;br /&gt;
&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;Manage expectations. Explain what you do and how you do it to your family member. Show them some of your samples so that they have an idea of what to expect. Give them a realistic timeframe. Don’t promise more than you can deliver.&lt;/li&gt;
&lt;li&gt;Set limits. While you are managing your friend’s expectations, be sure to explain what you will not do for them. If you don’t work evenings or weekends, let them know that. Make sure that the scope of the project is clearly defined.&lt;/li&gt;
&lt;li&gt;Listen. Listening is a vital part of any freelancer/client relationship, but it’s especially important when you also have a personal relationship with your client. Don’t let familiarity get in the way of hearing what the client is really saying.&lt;/li&gt;
&lt;li&gt;Communicate in writing. Even if your discussion with your relative is verbal, write down the main points and email them to your friend or family member. Ask them to review the email. It will be much easier to remind them later of what you agreed to if it is in writing.&lt;/li&gt;
&lt;li&gt;Pick a project leader. Avoid dealing with a group of friends or family members. Too many bosses always spells trouble. If your project is for more than one friend or family member, make sure only one of them is in charge. Explain that this is how most projects work.&lt;/li&gt;
&lt;li&gt;Stay cool. Nobody can punch your buttons better than a friend or family member. However, the best way to preserve both your personal and professional relationship is to stay calm. If you feel yourself getting angry or upset, give yourself some space until you can recover.&lt;/li&gt;
&lt;li&gt;Charge a fee. If you can, charge your normal rate. If you feel compelled to work for free because of the personal relationship, at least tell them how much you would normally charge. This will help them to see that your time is valuable.&lt;/li&gt;
&lt;li&gt;Don’t gossip. Even if your friends and family members are ordinarily your support group that you talk to when projects go bad, don’t turn to them about this project. Don’t complain about one friend or family member to another friend or family member.&lt;/li&gt;
&lt;li&gt;Separate work. As much as possible, keep work and your personal life separate. No working during family get togethers. Work on the project only during business hours. Don’t let them push you into working on their project 24/7 just because you are related.&lt;/li&gt;
&lt;li&gt;Do your best work. Above all, once you accept a project from them, your friend or family member becomes a client. It is still important to have a happy client. Do your usual good work for them. A satisfied friend or family member may become one of your best references.&lt;/li&gt;
&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4985412203514275539-9143310450625916163?l=dilipray.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dilipray.blogspot.com/feeds/9143310450625916163/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dilipray.blogspot.com/2012/02/how-to-work-with-your-closest-client.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4985412203514275539/posts/default/9143310450625916163?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4985412203514275539/posts/default/9143310450625916163?v=2'/><link rel='alternate' type='text/html' href='http://dilipray.blogspot.com/2012/02/how-to-work-with-your-closest-client.html' title='How to work with your closest client : Your Family'/><author><name>Ray CD</name><uri>https://profiles.google.com/102090886766399511065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-ITCEPwabzpY/AAAAAAAAAAI/AAAAAAAAB5Y/JQUCF52robg/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;CkUDQns4cSp7ImA9WhRaEkg.&quot;'><id>tag:blogger.com,1999:blog-4985412203514275539.post-4350813973190036936</id><published>2012-02-15T01:41:00.000+05:30</published><updated>2012-02-15T01:41:13.539+05:30</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2012-02-15T01:41:13.539+05:30</app:edited><title>The Future Of Screen Typography Is In Your Hands</title><content type='html'>&lt;div style="background-color: white; font-family: arial, sans-serif; font-size: 13px;"&gt;We do more reading on the screen today than we did even a year ago. If we are ever to have a golden age of reading on the screen, this might be the start of it.&lt;/div&gt;&lt;div style="background-color: white; font-family: arial, sans-serif; font-size: 13px;"&gt;Tablets, Nooks and Kindles make buying a book or magazine for the screen almost unavoidable. With smartphones, we carry our reading material with us and enjoy instant Web access, enabling the reading experience to flow smoothly from one device to another. And those devices probably have stunning HD reader-friendly screens. Throw in companion services like Readmill and 24symbols, which allow us to share our reading experiences, and we have perfect screen-based access to all aspects of the written word.&lt;/div&gt;&lt;div style="background-color: white; font-family: arial, sans-serif; font-size: 13px;"&gt;So, why isn’t Web and screen typography keeping up?&lt;/div&gt;&lt;h3 style="background-color: white; font-family: arial, sans-serif;"&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;/h3&gt;&lt;h3 style="background-color: white; font-family: arial, sans-serif;"&gt;Good Typography Cannot Be Handcrafted Anymore&lt;/h3&gt;&lt;div style="background-color: white; font-family: arial, sans-serif; font-size: 13px;"&gt;In the past, typography was viewed as living only when it reached paper. Once a publication was edited, typeset and printed, it was done. Nothing changed after that. Good typography and readability were the result of skilled typesetters and designers.&lt;/div&gt;&lt;div style="background-color: white; font-family: arial, sans-serif; font-size: 13px;"&gt;Today, typography exists not only on paper but on a multitude of screens. It is subject to many unknown and fluctuating parameters, such as operating system, system fonts, the device and screen itself, the viewport and more. Our experience of typography today changes based on how the page is rendered, because typesetting happens in the browser.&lt;/div&gt;&lt;div style="background-color: white; font-family: arial, sans-serif; font-size: 13px;"&gt;In all of this, the browser is probably the most important part of the screen typography equation. Ironically, the lack of support in modern browsers is the single biggest hurdle to good Web typography.&lt;/div&gt;&lt;div style="background-color: white; font-family: arial, sans-serif; font-size: 13px;"&gt;Type-as-service providers are offering an alternative, with an increasing number of fonts that are fairly cheap and easy for us designers to use when typesetting text. But they, too, want better support of Web typography.&lt;/div&gt;&lt;h4 style="background-color: white; font-family: arial, sans-serif; font-size: 13px;"&gt;Identifying What’s Missing&lt;/h4&gt;&lt;div style="background-color: white; font-family: arial, sans-serif; font-size: 13px;"&gt;Let’s look at some of the basic things that are missing from most, if not all, screen-reading experiences. When we say basic, we mean the things that you read and benefit from whenever you look at a book or magazine on paper or screen.&lt;/div&gt;&lt;ul style="background-color: white; font-family: arial, sans-serif; font-size: 13px;"&gt;&lt;li&gt;Kerning and spacing of individual characters;&lt;/li&gt;
&lt;li&gt;Basic ligatures (fi, fl)&lt;/li&gt;
&lt;li&gt;Other ligatures (fj, ffi, ffl, ffj and more);&lt;/li&gt;
&lt;li&gt;Lining and old-style numerals;&lt;/li&gt;
&lt;li&gt;True small-caps;&lt;/li&gt;
&lt;li&gt;Replacing uppercase with small-caps for abbreviations;&lt;/li&gt;
&lt;li&gt;Superscripted symbols such as © and ™;&lt;/li&gt;
&lt;li&gt;Language-based quotation marks;&lt;/li&gt;
&lt;li&gt;Correct replacement of en and em dashes, and the spacing around them;&lt;/li&gt;
&lt;li&gt;Spacing of ! ( ) [ ] / ; :.&lt;/li&gt;
&lt;/ul&gt;&lt;div style="background-color: white; font-family: arial, sans-serif; font-size: 13px;"&gt;Doesn’t seem like much. Except that it is. The elements in this list are some of the things that help us read, process and understand information. They represent in many ways the difference between how a soulless machine would relate to text and how thinking, organic humans do it.&lt;/div&gt;&lt;div style="background-color: white; font-family: arial, sans-serif; font-size: 13px;"&gt;Those of you who were around during the desktop publishing boom might see similarities. In 1999, QuarkXPress did not support OpenType, InDesign was just born, and you had to use “expert” cuts of fonts to be able to work with small-caps and old-style numerals. So, we had to create workarounds for micro-typography — such as Apple-Script frameworks for QuarkXPress, where the script traversed documents and isolated hyphens, dashes, ligatures and small-caps abbreviations, replacing them with the correct typographical equivalents.&lt;/div&gt;&lt;div style="background-color: white; font-family: arial, sans-serif; font-size: 13px;"&gt;In many ways, 2012 is the new 1999. We have the freedom to work with any font we like via the @font-face selector. But our main tool, the browser, does not have any OpenType features to speak of. We have to create workarounds.&lt;/div&gt;&lt;div style="background-color: white; font-family: arial, sans-serif; font-size: 13px;"&gt;Can we use the same type of solution that we used back in the old days of print?&lt;/div&gt;&lt;div style="background-color: white; font-family: arial, sans-serif; font-size: 13px;"&gt;We say yes.&lt;/div&gt;&lt;h4 style="background-color: white; font-family: arial, sans-serif; font-size: 13px;"&gt;Time to Fix the Problem&lt;/h4&gt;&lt;div style="background-color: white; font-family: arial, sans-serif; font-size: 13px;"&gt;We researched existing JavaScript libraries and found a ton of great stuff. But none focused on micro-typography as a whole. When we started the project, we laid out five clear goals:&lt;/div&gt;&lt;ul style="background-color: white; font-family: arial, sans-serif; font-size: 13px;"&gt;&lt;li&gt;Correct micro-typography, including as many of the elements in the list above as possible;&lt;/li&gt;
&lt;li&gt;Degrades so that devices without @font-face or JavaScript support are not negatively affected;&lt;/li&gt;
&lt;li&gt;OS independence;&lt;/li&gt;
&lt;li&gt;Browser independence;&lt;/li&gt;
&lt;li&gt;Correct markup;&lt;/li&gt;
&lt;/ul&gt;&lt;div style="background-color: white; font-family: arial, sans-serif; font-size: 13px;"&gt;We named the project&amp;nbsp;&lt;a href="http://opentypography.org/" style="color: #1155cc;" target="_blank"&gt;OpenTypography&lt;/a&gt;, and we named the solution Typesetter.js.&lt;/div&gt;&lt;div style="background-color: white; font-family: arial, sans-serif; font-size: 13px;"&gt;&lt;img alt="" src="http://media.smashingmagazine.com/wp-content/uploads/2011/12/degrading_1.gif" title="degrading_1" width="500" /&gt;&lt;/div&gt;&lt;div style="background-color: white; font-family: arial, sans-serif; font-size: 13px;"&gt;&lt;em&gt;JavaScript and @font-face and styles disabled.&lt;/em&gt;&lt;/div&gt;&lt;div style="background-color: white; font-family: arial, sans-serif; font-size: 13px;"&gt;&lt;img alt="" src="http://media.smashingmagazine.com/wp-content/uploads/2011/12/degrading_2.gif" title="degrading_2" width="500" /&gt;&lt;/div&gt;&lt;div style="background-color: white; font-family: arial, sans-serif; font-size: 13px;"&gt;&lt;em&gt;JavaScript disabled.&lt;/em&gt;&lt;/div&gt;&lt;div style="background-color: white; font-family: arial, sans-serif; font-size: 13px;"&gt;&lt;img alt="" src="http://media.smashingmagazine.com/wp-content/uploads/2011/12/degrading_3.gif" title="degrading_3" width="500" /&gt;&lt;/div&gt;&lt;div style="background-color: white; font-family: arial, sans-serif; font-size: 13px;"&gt;&lt;em&gt;JavaScript enabled and @font-face-enhanced Web typography.&lt;/em&gt;&lt;/div&gt;&lt;h3 style="background-color: white; font-family: arial, sans-serif;"&gt;Typesetter.js&lt;/h3&gt;&lt;div style="background-color: white; font-family: arial, sans-serif; font-size: 13px;"&gt;Typesetter.js has two ingredients: a JavaScript and a custom font file&lt;/div&gt;&lt;div style="background-color: white; font-family: arial, sans-serif; font-size: 13px;"&gt;The JavaScript traverses the DOM, finding and replacing things like quotation marks, ligatures, en and em dashes, ellipses and more. It also finds ©, ®, ™ and wraps them in&amp;nbsp;&lt;code style="font-size: 11px;"&gt;sup&lt;/code&gt;&amp;nbsp;tags.&lt;/div&gt;&lt;div style="background-color: white; font-family: arial, sans-serif; font-size: 13px;"&gt;Most importantly, it finds uppercase abbreviations and wraps them in&amp;nbsp;&lt;code style="font-size: 11px;"&gt;abbr&lt;/code&gt;&amp;nbsp;tags, giving us true small-caps. This is possible thanks to a bit of CSS and the services of font-on-demand houses such as Fontdeck and Typekit.&lt;/div&gt;&lt;div style="background-color: white; font-family: arial, sans-serif; font-size: 13px;"&gt;&lt;img alt="" height="356" src="http://media.smashingmagazine.com/wp-content/uploads/2011/12/dom_traverse.gif" style="border-bottom-color: rgb(204, 204, 204); border-bottom-style: solid; border-bottom-width: 1px; border-image: initial; border-left-color: rgb(204, 204, 204); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(204, 204, 204); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(204, 204, 204); border-top-style: solid; border-top-width: 1px;" title="dom_traverse" width="500" /&gt;&lt;/div&gt;&lt;div style="background-color: white; font-family: arial, sans-serif; font-size: 13px;"&gt;&lt;em&gt;Finding, replacing and wrapping.&lt;/em&gt;&lt;/div&gt;&lt;div style="background-color: white; font-family: arial, sans-serif; font-size: 13px;"&gt;Here is a rundown of how Typesetter.js works.&lt;/div&gt;&lt;h3 style="background-color: white; font-family: arial, sans-serif;"&gt;1. The JavaScript&lt;/h3&gt;&lt;div style="background-color: white; font-family: arial, sans-serif; font-size: 13px;"&gt;The code is divided into two parts, giving you the option to use the small-caps replacement. But let’s start by looking at how the small-caps replacement works.&lt;/div&gt;&lt;div style="background-color: white; font-family: arial, sans-serif; font-size: 13px;"&gt;Here is the sample HTML that we will use to explain what the script actually does:&lt;/div&gt;&lt;pre style="background-color: white; font-size: 11px;"&gt;&amp;lt;p class="typo"&amp;gt;The fine details of screen typography can be improved with JS-scripts and CSS.&amp;lt;/p&amp;gt;

&amp;lt;p class="typo"&amp;gt;That is the goal of "Typesetter.js" — an open-source solution by Andreas Carlsson and Jaan Orvet © 2011&amp;lt;/p&amp;gt;&lt;/pre&gt;&lt;div style="background-color: white; font-family: arial, sans-serif; font-size: 13px;"&gt;&lt;img alt="" src="http://media.smashingmagazine.com/wp-content/uploads/2011/12/example_default.gif" title="example_default" width="500" /&gt;&lt;/div&gt;&lt;div style="background-color: white; font-family: arial, sans-serif; font-size: 13px;"&gt;&lt;em&gt;Our sample text rendered with Georgia and browser-native typographic features.&lt;/em&gt;&lt;/div&gt;&lt;div style="background-color: white; font-family: arial, sans-serif; font-size: 13px;"&gt;In this text, we want to find all-uppercase words.&lt;/div&gt;&lt;div style="background-color: white; font-family: arial, sans-serif; font-size: 13px;"&gt;The code starts by getting all elements of a user-chosen class, in this case&amp;nbsp;&lt;code style="font-size: 11px;"&gt;.typo&lt;/code&gt;. These elements are stored in an array.&lt;/div&gt;&lt;pre style="background-color: white; font-size: 11px;"&gt;mainArray[0] = 'The fine details of screen typography can be improved with JS-scripts and CSS.';
mainArray[1] = 'That is the goal of "Typesetter.js" — an open-source solution by Andreas Carlsson and Jaan Orvet © 2011';&lt;/pre&gt;&lt;div style="background-color: white; font-family: arial, sans-serif; font-size: 13px;"&gt;Each array element is then looped one at a time and split into a sub-array containing each word as a string.&lt;/div&gt;&lt;pre style="background-color: white; font-size: 11px;"&gt;subArray[0] = 'The';
subArray[1] = 'fine';
subArray[2] = 'details';
subArray[3] = 'of';
subArray[4] = 'screen';
subArray[5] = 'typography';
subArray[6] = 'can';
subArray[7] = 'be';
subArray[8] = 'improved';
subArray[9] = 'with';
subArray[10] = 'JS-scripts';
subArray[11] = 'and';
subArray[12] = 'CSS.';&lt;/pre&gt;&lt;div style="background-color: white; font-family: arial, sans-serif; font-size: 13px;"&gt;Each item in the sub-array is tested to see whether the character count of the word and the count of the uppercase letters (ASCII values between 65 and 90) are equal. If so, the word is treated as an uppercase abbreviation.&lt;/div&gt;&lt;div style="background-color: white; font-family: arial, sans-serif; font-size: 13px;"&gt;The test actually checks the first and last character of the sub-array item. If they are uppercase, then it is fair to assume that the whole word is an uppercase abbreviation, and then we would run a more specific test. Here is what the script returns from our sample text:&lt;/div&gt;&lt;ul style="background-color: white; font-family: arial, sans-serif; font-size: 13px;"&gt;&lt;li&gt;“The” =&amp;nbsp;&lt;code style="font-size: 11px;"&gt;false&lt;/code&gt;&amp;nbsp;(do not run specific test)&lt;/li&gt;
&lt;li&gt;“details” =&amp;nbsp;&lt;code style="font-size: 11px;"&gt;false&lt;/code&gt;&amp;nbsp;(do not run specific test)&lt;/li&gt;
&lt;li&gt;“Andreas” =&amp;nbsp;&lt;code style="font-size: 11px;"&gt;false&lt;/code&gt;&amp;nbsp;(do not run specific test)&lt;/li&gt;
&lt;li&gt;“CSS.” =&amp;nbsp;&lt;code style="font-size: 11px;"&gt;true&lt;/code&gt;&amp;nbsp;(run specific test)&lt;/li&gt;
&lt;li&gt;“JS-scripts” =&amp;nbsp;&lt;code style="font-size: 11px;"&gt;true&lt;/code&gt;&amp;nbsp;(run specific test)&lt;/li&gt;
&lt;/ul&gt;&lt;div style="background-color: white; font-family: arial, sans-serif; font-size: 13px;"&gt;As you can see, the test also spots uppercase words when they are used with a hyphen or have an trailing period.&lt;/div&gt;&lt;div style="background-color: white; font-family: arial, sans-serif; font-size: 13px;"&gt;Our special uppercase test creates an index array that holds the indexes of the uppercase words (i.e. it identifies where in the full sentence they occur). After the whole sub-array is tested, we would have the sub-array and the index array containing the all-uppercase indexes.&lt;/div&gt;&lt;pre style="background-color: white; font-size: 11px;"&gt;indexArray[0] = '10';
indexArray[1] = '12';&lt;/pre&gt;&lt;div style="background-color: white; font-family: arial, sans-serif; font-size: 13px;"&gt;Now that we know where all of the uppercase words are in the string (i.e. sentence), we can prepare them for small-caps replacement.&lt;/div&gt;&lt;div style="background-color: white; font-family: arial, sans-serif; font-size: 13px;"&gt;Small-caps replacement is done by extracting the word, converting the letters to lowercase, wrapping the whole word in an&amp;nbsp;&lt;code style="font-size: 11px;"&gt;abbr&lt;/code&gt;&amp;nbsp;tag and inserting it into the sub-array again.&lt;/div&gt;&lt;pre style="background-color: white; font-size: 11px;"&gt;subArray[0] = 'The';
subArray[1] = 'fine';
subArray[2] = 'details';
subArray[3] = 'of';
subArray[4] = 'screen';
subArray[5] = 'typography';
subArray[6] = 'can';
subArray[7] = 'be';
subArray[8] = 'improved';
subArray[9] = 'with';
subArray[10] = '&lt;abbr&gt;js&lt;/abbr&gt;-scripts';
subArray[11] = 'and';
subArray[12] = '&lt;abbr&gt;css&lt;/abbr&gt;.';&lt;/pre&gt;&lt;div style="background-color: white; font-family: arial, sans-serif; font-size: 13px;"&gt;Now we only need to convert that array into a string and replace the original HTML element with the new small-caps-ified HTML element.&lt;/div&gt;&lt;div style="background-color: white; font-family: arial, sans-serif; font-size: 13px;"&gt;&lt;strong&gt;Before:&lt;/strong&gt;&lt;/div&gt;&lt;pre style="background-color: white; font-size: 11px;"&gt;&amp;lt;p class="typo"&amp;gt;The fine details of screen typography can be improved with JS-scripts and CSS.&amp;lt;/p&amp;gt;

&amp;lt;p class="typo"&amp;gt;That is the goal of "Typesetter.js" — an open-source solution by Andreas Carlsson and Jaan Orvet © 2011&amp;lt;/p&amp;gt;&lt;/pre&gt;&lt;div style="background-color: white; font-family: arial, sans-serif; font-size: 13px;"&gt;&lt;strong&gt;After:&lt;/strong&gt;&lt;/div&gt;&lt;pre style="background-color: white; font-size: 11px;"&gt;&amp;lt;p class="typo"&amp;gt;The fine details of screen typography can be improved with &lt;abbr&gt;js&lt;/abbr&gt;-scripts and &lt;abbr&gt;css&lt;/abbr&gt;.&amp;lt;/p&amp;gt;

&amp;lt;p class="typo"&amp;gt;That is the goal of "Typesetter.js" — an open-source solution by Andreas Carlsson and Jaan Orvet © 2011&amp;lt;/p&amp;gt;&lt;/pre&gt;&lt;div style="background-color: white; font-family: arial, sans-serif; font-size: 13px;"&gt;&lt;img alt="" src="http://media.smashingmagazine.com/wp-content/uploads/2011/12/example_smallcaps_replaced.gif" title="example_smallcaps_replaced" width="500" /&gt;&lt;/div&gt;&lt;div style="background-color: white; font-family: arial, sans-serif; font-size: 13px;"&gt;&lt;em&gt;Our sample text set with Tanger Serif from Typolar, using the @font-face rule. Uppercase words are now wrapped in&amp;nbsp;&lt;code style="font-size: 11px;"&gt;abbr&lt;/code&gt;&amp;nbsp;tags.&lt;/em&gt;&lt;/div&gt;&lt;div style="background-color: white; font-family: arial, sans-serif; font-size: 13px;"&gt;Nice and neat. Now for the second part of the script, the one that replaces quotation marks, ligatures, en and em dashes, and ellipses; renders characters such as © in superscript; and converts numerals to old style by wrapping them in a user-defined class.&lt;/div&gt;&lt;div style="background-color: white; font-family: arial, sans-serif; font-size: 13px;"&gt;The code is fairly self-explanatory:&lt;/div&gt;&lt;pre style="background-color: white; font-size: 11px;"&gt;var charReplacements = function() {

/* Quotationmarks
‹ = ‹
› = ›
« = «
» = »
‘ = ‘
’ = ’
“ = “
” = ”
*/

var quoteCharClose = "»";
var quoteCharOpen = "«";
var triggerID = "#display";
var smallcapsClass = "old-style"

$(triggerID).each(function() {
$(this).find('*').each(function() {
 if (($(this).html()) != 0) {
  if (($(this).find('img').length) === 0) {
  // Performs replaces on any element that is not an&lt;/pre&gt;&lt;div style="background-color: white; font-family: arial, sans-serif; font-size: 13px;"&gt;&lt;img alt="" /&gt;&lt;/div&gt;&lt;pre style="background-color: white; font-size: 11px;"&gt;$(this).html( $(this).html().replace(/(\.\.\.(\.)?)|(\.\s\.\s(\.\s)?|(\.\.(\.)?))/g, "…"));
  // Finds and replaces .. | ... | .... with an elipsis

  $(this).html( $(this).html().replace(/fl/g, "ﬂ"));
  // Replaces fl with ligature

  $(this).html( $(this).html().replace(/fi/g, "ﬁ"));
  // Replaces fi with ligature

  $(this).html( $(this).html().replace(/\s-\s/g, " ‒ "));
  // Replaces | space en-dash space | with: | space em-dash space |

      $(this).html( $(this).html().replace(/"([\s\.\,])/g, quoteCharClose + "$1"));
  // Replaces | " space | with | » space |

  $(this).html( $(this).html().replace(/\s"/g, " " +  quoteCharOpen));
  // Replaces | space " | with | space « |

  $(this).html( $(this).html().replace(/(\d+)(?=((?!).)*(-tag with the .old-style-class but ignores digits within a a-tag. Read full explanation here http://www.phpbuilder.com/board/archive/index.php/t-10221442.html

  if ( (($(this).children().length) === 0) || ($('this:contains("u00a9")')) ) {

   $(this).html( $(this).html().replace(/\u00a9/g, "&lt;/pre&gt;&lt;div style="background-color: white; font-family: arial, sans-serif; font-size: 13px;"&gt;&lt;sup&gt;©&lt;/sup&gt;&lt;/div&gt;&lt;pre style="background-color: white; font-size: 11px;"&gt;") );
   // Superscripts (c)

   $(this).html( $(this).html().replace(/\u00ae/g, "&lt;/pre&gt;&lt;div style="background-color: white; font-family: arial, sans-serif; font-size: 13px;"&gt;&lt;sup&gt;®&lt;/sup&gt;&lt;/div&gt;&lt;pre style="background-color: white; font-size: 11px;"&gt;") );
   // Superscripts (R)
  };
 };
   };

});
});
};&lt;/pre&gt;&lt;div style="background-color: white; font-family: arial, sans-serif; font-size: 13px;"&gt;Most of the typographic details in the script are declared in the variables at the beginning. This is the beginning of a “settings” type of solution that we are working towards building.&lt;/div&gt;&lt;div style="background-color: white; font-family: arial, sans-serif; font-size: 13px;"&gt;”Settings” is a pretty important feature because typographic rules change depending on the language; for example, quotation marks and the spacing of em dashes. English, French and German each use different quotation marks, so the designer needs to be able to easily change the typographic settings.&lt;/div&gt;&lt;div style="background-color: white; font-family: arial, sans-serif; font-size: 13px;"&gt;Now we have pretty decent typography in our example:&lt;/div&gt;&lt;pre style="background-color: white; font-size: 11px;"&gt;&amp;lt;p class="typo"&amp;gt;The fine details of screen typography can be improved with &lt;abbr&gt;js&lt;/abbr&gt;-scripts and &lt;abbr&gt;css&lt;/abbr&gt;.&amp;lt;/p&amp;gt;

&amp;lt;p class="typo"&amp;gt;That is the goal of «Typesetter.js» — an open-source solution by Andreas Carlsson and Jaan Orvet&lt;/pre&gt;&lt;div style="background-color: white; font-family: arial, sans-serif; font-size: 13px;"&gt;&lt;sup&gt;©&lt;/sup&gt;&lt;/div&gt;&lt;pre style="background-color: white; font-size: 11px;"&gt;2011&amp;lt;/p&amp;gt;&lt;/pre&gt;&lt;div style="background-color: white; font-family: arial, sans-serif; font-size: 13px;"&gt;&lt;img alt="" height="133" src="http://media.smashingmagazine.com/wp-content/uploads/2011/12/example_complete.gif" title="example_complete" width="500" /&gt;&lt;/div&gt;&lt;div style="background-color: white; font-family: arial, sans-serif; font-size: 13px;"&gt;&lt;em&gt;Our sample text with much better micro-typography than what the browser supports natively.&lt;/em&gt;&lt;/div&gt;&lt;div style="background-color: white; font-family: arial, sans-serif; font-size: 13px;"&gt;We have covered a lot, but the most important part is still to come!&lt;/div&gt;&lt;h3 style="background-color: white; font-family: arial, sans-serif;"&gt;2. The Custom Font File&lt;/h3&gt;&lt;div style="background-color: white; font-family: arial, sans-serif; font-size: 13px;"&gt;Let’s move on to the font file itself.&lt;/div&gt;&lt;h4 style="background-color: white; font-family: arial, sans-serif; font-size: 13px;"&gt;Putting Small-Caps and Old-Style Numerals in Place&lt;/h4&gt;&lt;div style="background-color: white; font-family: arial, sans-serif; font-size: 13px;"&gt;Our text is now wrapped in classes; we can use CSS to set it in small-caps and old-style numerals. Since no browser supports OpenType, we cannot use the regular&amp;nbsp;&lt;code style="font-size: 11px;"&gt;font-variant: small-caps&lt;/code&gt;&amp;nbsp;rule, because this would only shrink the uppercase letters, resulting in thinner and lighter characters.&lt;/div&gt;&lt;div style="background-color: white; font-family: arial, sans-serif; font-size: 13px;"&gt;&lt;img alt="" src="http://media.smashingmagazine.com/wp-content/uploads/2011/12/fake_smallcaps.gif" title="fake_smallcaps" width="500" /&gt;&lt;/div&gt;&lt;div style="background-color: white; font-family: arial, sans-serif; font-size: 13px;"&gt;&lt;em&gt;The&amp;nbsp;&lt;code style="font-size: 11px;"&gt;font-variant: small-caps&lt;/code&gt;&amp;nbsp;rule merely shrinks uppercase letters, resulting in thinner and lighter characters. To get real small-caps, we have to use our custom subsetted font file.&lt;/em&gt;&lt;/div&gt;&lt;div style="background-color: white; font-family: arial, sans-serif; font-size: 13px;"&gt;The font file we need is a subset of the regular cut; in it, the uppercase characters have been replaced with small-caps characters, and the lining numerals have been replaced with old-style numerals. (Remember the days of “expert set fonts”? It’s a bit like that. If you don’t remember, you’re better off for it.)&lt;/div&gt;&lt;div style="background-color: white; font-family: arial, sans-serif; font-size: 13px;"&gt;We can now specify in our CSS files to use the subset for&amp;nbsp;&lt;code style="font-size: 11px;"&gt;abbr&lt;/code&gt;&amp;nbsp;tags. This will give us true small-caps on the Web and allow us to choose between old-style and lining numerals in our text.&lt;/div&gt;&lt;pre style="background-color: white; font-size: 11px;"&gt;abbr {
   font-family: "Tanger Serif Expert", Cambria, Georgia, serif;
   letter-spacing: 0.15em;
   text-transform: lowercase;
   font-variant: small-caps;
   font-weight: 650;
}&lt;/pre&gt;&lt;h4 style="background-color: white; font-family: arial, sans-serif; font-size: 13px;"&gt;Get the Font File&lt;/h4&gt;&lt;div style="background-color: white; font-family: arial, sans-serif; font-size: 13px;"&gt;&lt;a href="http://www.fontdeck.com/" style="color: #1155cc;" target="_blank"&gt;Fontdeck&lt;/a&gt;&amp;nbsp;supports the OpenTypography project by kindly serving subsetted fonts in addition to its main fonts.&lt;/div&gt;&lt;div style="background-color: white; font-family: arial, sans-serif; font-size: 13px;"&gt;Other type services and foundries make subsets available as well. We keep an updated list with examples at&lt;a href="http://opentypography.org/" style="color: #1155cc;" target="_blank"&gt;OpenTypography&lt;/a&gt;.&lt;/div&gt;&lt;h4 style="background-color: white; font-family: arial, sans-serif; font-size: 13px;"&gt;Create Your Own Font File&lt;/h4&gt;&lt;div style="background-color: white; font-family: arial, sans-serif; font-size: 13px;"&gt;If you have experience working with fonts, then creating your own subsetted font files is fairly straightforward.&lt;/div&gt;&lt;div style="background-color: white; font-family: arial, sans-serif; font-size: 13px;"&gt;Open the regular cut in your favorite font editor. Copy the small-caps glyphs, and paste them where the uppercase and lowercase glyphs are. Copy the old-style numerals to where the lining numerals are. Once this is done, you only have to generate a new font file and convert it to all the required Web font formats: TTF, OTF, WOFF, EOT, SVG.&lt;/div&gt;&lt;div style="background-color: white; font-family: arial, sans-serif; font-size: 13px;"&gt;&lt;img alt="" src="http://media.smashingmagazine.com/wp-content/uploads/2011/12/replace_uppercase.gif" title="replace_uppercase" width="500" /&gt;&lt;/div&gt;&lt;div style="background-color: white; font-family: arial, sans-serif; font-size: 13px;"&gt;&lt;em&gt;You can easily create your own subsetted custom font file. Just replace uppercase and lowercase glyphs with the small-caps versions and the lining numerals with the old-style ones.&lt;/em&gt;&lt;/div&gt;&lt;div style="background-color: white; font-family: arial, sans-serif; font-size: 13px;"&gt;Now you have your own custom Web font ready to be used with Typesetter.js&lt;/div&gt;&lt;div style="background-color: white; font-family: arial, sans-serif; font-size: 13px;"&gt;But be sure to check the license to make sure you are permitted to adjust the font file and to embed it via the @font-face selector.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4985412203514275539-4350813973190036936?l=dilipray.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dilipray.blogspot.com/feeds/4350813973190036936/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dilipray.blogspot.com/2012/02/future-of-screen-typography-is-in-your.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4985412203514275539/posts/default/4350813973190036936?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4985412203514275539/posts/default/4350813973190036936?v=2'/><link rel='alternate' type='text/html' href='http://dilipray.blogspot.com/2012/02/future-of-screen-typography-is-in-your.html' title='The Future Of Screen Typography Is In Your Hands'/><author><name>Ray CD</name><uri>https://profiles.google.com/102090886766399511065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-ITCEPwabzpY/AAAAAAAAAAI/AAAAAAAAB5Y/JQUCF52robg/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;A04DQXk9eyp7ImA9WhRaEkk.&quot;'><id>tag:blogger.com,1999:blog-4985412203514275539.post-4675503857178874231</id><published>2012-02-15T01:36:00.000+05:30</published><updated>2012-02-15T01:36:10.763+05:30</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2012-02-15T01:36:10.763+05:30</app:edited><title>A Beginner’s Guide To jQuery-Based JSON API Clients</title><content type='html'>&lt;div style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: 'Skolar Regular', 'Times New Roman', serif; font-size: 1.25em; line-height: 1.35em; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0.5em; vertical-align: baseline;"&gt;Are you fascinated by dynamic data? Do you go green with envy when you see tweets pulled magically into websites? Trust me, I’ve been there.&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: 'Proxima Nova Regular', 'Helvetica Neue', Arial, Helvetica, sans-serif; font-size: 16px; line-height: 22px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0.5em; vertical-align: baseline;"&gt;The goal of today’s tutorial is to create a simple Web app for grabbing movie posters from&amp;nbsp;&lt;a href="http://www.themoviedb.org/" style="-webkit-tap-highlight-color: rgb(229, 59, 44); background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; border-bottom-color: rgba(0, 0, 0, 0.0976563); border-bottom-style: solid; border-bottom-width: 1px; color: #41b7d8; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 1px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none; vertical-align: baseline;"&gt;TMDb&lt;/a&gt;. We’ll use jQuery and the user’s input to query a JSON-based API and deal with the returned data appropriately.&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: 'Proxima Nova Regular', 'Helvetica Neue', Arial, Helvetica, sans-serif; font-size: 16px; line-height: 22px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0.5em; vertical-align: baseline;"&gt;I hope to convince you that APIs aren’t scary and that most of the time they can be a developer’s best friend.&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: 'Proxima Nova Regular', 'Helvetica Neue', Arial, Helvetica, sans-serif; font-size: 16px; line-height: 22px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0.5em; vertical-align: baseline;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: 'Proxima Nova Regular', 'Helvetica Neue', Arial, Helvetica, sans-serif; font-size: 16px; line-height: 22px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0.5em; vertical-align: baseline;"&gt;&lt;a href="http://coding.smashingmagazine.com/2012/02/09/beginners-guide-jquery-based-json-api-clients/"&gt;Read More @ Smashing Magazine&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4985412203514275539-4675503857178874231?l=dilipray.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dilipray.blogspot.com/feeds/4675503857178874231/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dilipray.blogspot.com/2012/02/beginners-guide-to-jquery-based-json.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4985412203514275539/posts/default/4675503857178874231?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4985412203514275539/posts/default/4675503857178874231?v=2'/><link rel='alternate' type='text/html' href='http://dilipray.blogspot.com/2012/02/beginners-guide-to-jquery-based-json.html' title='A Beginner’s Guide To jQuery-Based JSON API Clients'/><author><name>Ray CD</name><uri>https://profiles.google.com/102090886766399511065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-ITCEPwabzpY/AAAAAAAAAAI/AAAAAAAAB5Y/JQUCF52robg/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;A0ABQX85fip7ImA9WhRaEkk.&quot;'><id>tag:blogger.com,1999:blog-4985412203514275539.post-5771229612611808525</id><published>2012-02-15T01:32:00.000+05:30</published><updated>2012-02-15T01:32:30.126+05:30</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2012-02-15T01:32:30.126+05:30</app:edited><title>Progressive And Responsive Navigation By Jeremy Hixon</title><content type='html'>Developing for the Web can be a difficult yet rewarding job. Given the number of browsers across the number of platforms, it can sometimes be a bit overwhelming. But if we start coding with a little forethought and apply the principles of progressive enhancement from the beginning and apply some responsive practices at the end, we can easily accommodate for less-capable browsers and reward those with modern browsers in both desktop and mobile environments.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;img alt="screenshot" src="http://media.smashingmagazine.com/wp-content/uploads/2011/09/compass.jpg" /&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://coding.smashingmagazine.com/2012/02/13/progressive-and-responsive-navigation/"&gt;Read More @ Smashing Magazine&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4985412203514275539-5771229612611808525?l=dilipray.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dilipray.blogspot.com/feeds/5771229612611808525/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dilipray.blogspot.com/2012/02/progressive-and-responsive-navigation.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4985412203514275539/posts/default/5771229612611808525?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4985412203514275539/posts/default/5771229612611808525?v=2'/><link rel='alternate' type='text/html' href='http://dilipray.blogspot.com/2012/02/progressive-and-responsive-navigation.html' title='Progressive And Responsive Navigation By Jeremy Hixon'/><author><name>Ray CD</name><uri>https://profiles.google.com/102090886766399511065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-ITCEPwabzpY/AAAAAAAAAAI/AAAAAAAAB5Y/JQUCF52robg/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;DUQCQHs9eSp7ImA9WhRaEkk.&quot;'><id>tag:blogger.com,1999:blog-4985412203514275539.post-524601765612195020</id><published>2012-02-15T00:52:00.000+05:30</published><updated>2012-02-15T00:52:41.561+05:30</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2012-02-15T00:52:41.561+05:30</app:edited><title>Tutorial : How to install django on App engine</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://gigaom.files.wordpress.com/2010/06/app-engine-voice.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="183" src="http://gigaom.files.wordpress.com/2010/06/app-engine-voice.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
It took me three day to completely work on the making django run on google app engine and thats awesome.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
And the Final Message for which i'm excited about is&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote class="tr_bq"&gt;&lt;div class="columns"&gt;&lt;div class="column" id="content"&gt;&lt;h1&gt;It works!&lt;/h1&gt;Your Django-nonrel installation is working fine. Now go and build something useful with it. :)&lt;br /&gt;
Also, make sure you follow the&amp;nbsp;&lt;a href="http://www.allbuttonspressed.com/blog/django"&gt;Django-nonrel &amp;amp; webdev blog&lt;/a&gt;, so you don't miss any new features and improvements.&lt;br /&gt;
If you're new to Django you should take a look at the&amp;nbsp;&lt;a href="http://docs.djangoproject.com/en/dev/"&gt;Django documentation&lt;/a&gt;&amp;nbsp;and the&amp;nbsp;&lt;a href="http://www.djangobook.com/"&gt;Django book&lt;/a&gt;. You'll also find&amp;nbsp;&lt;a href="http://djangosnippets.org/"&gt;djangosnippets&lt;/a&gt;&amp;nbsp;very useful.&lt;br /&gt;
If you search for reusable apps that work with Django-nonrel here's a list to get you started:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.allbuttonspressed.com/projects/django-mediagenerator"&gt;django-mediagenerator&lt;/a&gt;: Combines and compresses your JS and CSS files&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.allbuttonspressed.com/projects/django-dbindexer"&gt;django-dbindexer&lt;/a&gt;: Adds extra DB features (e.g., __iexact, JOINs, etc.) beyond the native DB API&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.allbuttonspressed.com/projects/nonrel-search"&gt;nonrel-search&lt;/a&gt;: A simple full-text search engine for App Engine and other non-relational DBs&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.allbuttonspressed.com/projects/django-filetransfers"&gt;django-filetransfers&lt;/a&gt;: Generic API for file uploads/downloads (e.g. via App Engine Blobstore)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.allbuttonspressed.com/projects/allbuttonspressed"&gt;allbuttonspressed&lt;/a&gt;: The simple CMS/blog that powers the&amp;nbsp;&lt;a href="http://www.allbuttonspressed.com/"&gt;Django-nonrel website&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.allbuttonspressed.com/projects"&gt;...and our other projects...&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;Finally, take a look at the apps listed on&amp;nbsp;&lt;a href="http://djangopackages.com/"&gt;Django Packages&lt;/a&gt;. Many simple Django apps (e.g.,&amp;nbsp;&lt;a href="https://bitbucket.org/ubernostrum/django-registration"&gt;django-registration&lt;/a&gt;) should work unmodified. If you want to use&amp;nbsp;&lt;a href="http://robhudson.github.com/django-debug-toolbar/"&gt;django-debug-toolbar&lt;/a&gt;&amp;nbsp;you need to disable the SQLDebugPanel in your settings.&lt;/div&gt;&lt;div class="column" id="sidebar"&gt;&lt;/div&gt;&lt;/div&gt;&lt;div id="footer"&gt;Powered by&amp;nbsp;&lt;a href="http://www.allbuttonspressed.com/projects/django-nonrel"&gt;Django-nonrel&lt;/a&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;br /&gt;
That is really awesome . How did i do it ? all by one link i mean two links&lt;br /&gt;
&lt;blockquote class="tr_bq"&gt;&lt;a href="http://www.allbuttonspressed.com/projects/djangoappengine"&gt;djangoappengine - Django App Engine backends (DB, email, etc.)&lt;/a&gt;&lt;/blockquote&gt;&lt;blockquote class="tr_bq"&gt;&lt;a href="http://code.google.com/appengine/articles/django-nonrel.html%C2%A0"&gt;Running Pure Django Projects on Google App Engine&lt;/a&gt;&lt;/blockquote&gt;The awesome thing i find you find links one in one pages.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
And BTW the tutorial is in this link :&amp;nbsp;&lt;a href="http://www.allbuttonspressed.com/projects/djangoappengine"&gt;djangoappengine - Django App Engine backends (DB, email, etc.)&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote class="tr_bq"&gt;&lt;br /&gt;
&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4985412203514275539-524601765612195020?l=dilipray.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dilipray.blogspot.com/feeds/524601765612195020/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dilipray.blogspot.com/2012/02/tutorial-how-to-install-django-on-app.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4985412203514275539/posts/default/524601765612195020?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4985412203514275539/posts/default/524601765612195020?v=2'/><link rel='alternate' type='text/html' href='http://dilipray.blogspot.com/2012/02/tutorial-how-to-install-django-on-app.html' title='Tutorial : How to install django on App engine'/><author><name>Ray CD</name><uri>https://profiles.google.com/102090886766399511065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-ITCEPwabzpY/AAAAAAAAAAI/AAAAAAAAB5Y/JQUCF52robg/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;D0EGRnwzeSp7ImA9WhRaEUg.&quot;'><id>tag:blogger.com,1999:blog-4985412203514275539.post-8413770449505516509</id><published>2012-02-13T23:23:00.000+05:30</published><updated>2012-02-13T23:23:47.281+05:30</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2012-02-13T23:23:47.281+05:30</app:edited><title>Using Google App Engine</title><content type='html'>These are supporting materials for the O'Reilly book titled &lt;a href="http://shop.oreilly.com/product/9780596801601.do"&gt;Using Google App Engine&lt;/a&gt;. This book is aimed at people who want to gain skill in web programming in general and the Google App Engine. The book has been used to support many beginning web programming courses.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Installing Google App Engine&lt;/li&gt;
&lt;ul&gt;&lt;li&gt;Macintosh: (&lt;a href="https://docs.google.com/open?id=1rM8acs6bZQjkcDwsOyRQSDd_f1USoXJrjUREYf_mIKEx7j-W_BUvv3tlvXoh"&gt;Handout&lt;/a&gt;, &lt;a href="http://www.youtube.com/watch?v=pXXpvBSd5b4"&gt;YouTube&lt;/a&gt;,&lt;a href="http://www-personal.umich.edu/~csev/books/gae/podcasts/appengine-install-mac.mov"&gt; Download Screencast&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Windows: (&lt;a href="https://docs.google.com/open?id=1rdXRWJyJkcQBxht0irL8Ex-c0JA_9G_zym9AZ_HDdGDAsZBC6rygkNsWdoR5"&gt;Handout&lt;/a&gt;, &lt;a href="http://www.youtube.com/watch?v=Ehl8O2Y6edk"&gt;YouTube&lt;/a&gt;, &lt;a href="http://www-personal.umich.edu/~csev/books/gae/podcasts/appengine-install-windows.mov"&gt;Download Screencast&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;You can download the &lt;a href="http://www-personal.umich.edu/~csev/books/gae/files/sample-appengine-apps.zip"&gt;Sample Applications&lt;/a&gt; from the book to use as guidance for your projects.&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;ul style="font-family: arial, san-serif;"&gt;&lt;li class="toplevel"&gt;Chapter 1 - Programming on the Web (&lt;a href="http://www-personal.umich.edu/~csev/books/gae/lectures/01-AppEngine-Intro.pdf" style="color: blue;" target="_new"&gt;Slides&lt;/a&gt;,&amp;nbsp;&lt;a href="http://www-personal.umich.edu/~csev/books/gae/lectures/01-AppEngine-Intro-Print.pdf" style="color: blue;" target="_new"&gt;Printable Slides&lt;/a&gt;,&amp;nbsp;&lt;a href="http://www-personal.umich.edu/~csev/books/gae/podcasts/gae-01.mp3" style="color: blue;" target="_new"&gt;Lecture Audio&lt;/a&gt;)&lt;/li&gt;
&lt;li class="toplevel"&gt;Chapter 2 - HTML and CSS&lt;ul&gt;&lt;li&gt;Hypertext Markup Language - (&lt;a href="http://www-personal.umich.edu/~csev/books/gae/lectures/02-HTML.pdf" style="color: blue;" target="_new"&gt;Slides&lt;/a&gt;,&amp;nbsp;&lt;a href="http://www-personal.umich.edu/~csev/books/gae/lectures/02-HTML-Print.pdf" style="color: blue;" target="_new"&gt;Printable Slides&lt;/a&gt;,&amp;nbsp;&lt;a href="http://www-personal.umich.edu/~csev/books/gae/podcasts/gae-02-html.mp3" style="color: blue;" target="_new"&gt;Lecture Audio&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Cascading Style Sheets (&lt;a href="http://www-personal.umich.edu/~csev/books/gae/lectures/02-CSS.pdf" style="color: blue;" target="_new"&gt;Slides&lt;/a&gt;,&amp;nbsp;&lt;a href="http://www-personal.umich.edu/~csev/books/gae/lectures/02-CSS-Print.pdf" style="color: blue;" target="_new"&gt;Printable Slides&lt;/a&gt;,&amp;nbsp;&lt;a href="http://www-personal.umich.edu/~csev/books/gae/podcasts/gae-02-css.mp3" style="color: blue;" target="_new"&gt;Lecture Audio&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li class="toplevel"&gt;Chapter 3 - Python (&lt;a href="http://www-personal.umich.edu/~csev/books/gae/lectures/03-Python.pdf" style="color: blue;" target="_new"&gt;Slides&lt;/a&gt;,&amp;nbsp;&lt;a href="http://www-personal.umich.edu/~csev/books/gae/lectures/03-Python-Print.pdf" style="color: blue;" target="_new"&gt;Printable Slides&lt;/a&gt;,&amp;nbsp;&lt;a href="http://www-personal.umich.edu/~csev/books/gae/podcasts/gae-03-python-A.mp3" style="color: blue;" target="_new"&gt;Lecture Audio Part 1&lt;/a&gt;,&amp;nbsp;&lt;a href="http://www-personal.umich.edu/~csev/books/gae/podcasts/gae-03-python-B.mp3" style="color: blue;" target="_new"&gt;Lecture Audio Part 2&lt;/a&gt;)&lt;/li&gt;
&lt;li class="toplevel"&gt;Chapter 4 - Hypertext Transport Protocol (HTTP) (&lt;a href="http://www-personal.umich.edu/~csev/books/gae/lectures/04-Forms-HTTP.pdf" style="color: blue;" target="_new"&gt;Slides&lt;/a&gt;,&amp;nbsp;&lt;a href="http://www-personal.umich.edu/~csev/books/gae/lectures/04-Forms-HTTP-Print.pdf" style="color: blue;" target="_new"&gt;Printable Slides&lt;/a&gt;,&amp;nbsp;&lt;a href="http://www-personal.umich.edu/~csev/books/gae/podcasts/gae-04-http-A.mp3" style="color: blue;" target="_new"&gt;Lecture Audio Part 1&lt;/a&gt;,&amp;nbsp;&lt;a href="http://www-personal.umich.edu/~csev/books/gae/podcasts/gae-04-http-B.mp3" style="color: blue;" target="_new"&gt;Lecture Audio Part 2&lt;/a&gt;)&lt;/li&gt;
&lt;li class="toplevel"&gt;Chapter 5 - Web Applications and Python Objects&lt;ul&gt;&lt;li&gt;Web Applications (&lt;a href="http://www-personal.umich.edu/~csev/books/gae/lectures/05-Webapp.pdf" style="color: blue;" target="_new"&gt;Slides&lt;/a&gt;,&amp;nbsp;&lt;a href="http://www-personal.umich.edu/~csev/books/gae/lectures/05-Webapp-Print.pdf" style="color: blue;" target="_new"&gt;Printable Slides&lt;/a&gt;,&amp;nbsp;&lt;a href="http://www-personal.umich.edu/~csev/books/gae/podcasts/gae-05-webapp.mp3" style="color: blue;" target="_new"&gt;Lecture Audio&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Python Objects (Reading Chapter 3) (&lt;a href="http://www-personal.umich.edu/~csev/books/gae/lectures/05-Python-Objects.pdf" style="color: blue;" target="_new"&gt;Slides&lt;/a&gt;,&amp;nbsp;&lt;a href="http://www-personal.umich.edu/~csev/books/gae/lectures/05-Python-Objects-Print.pdf" style="color: blue;" target="_new"&gt;Printable Slides&lt;/a&gt;,&amp;nbsp;&lt;a href="http://www-personal.umich.edu/~csev/books/gae/podcasts/gae-05-objects.mp3" style="color: blue;" target="_new"&gt;Lecture Audio&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li class="toplevel"&gt;Chapter 6 - Templates&lt;ul&gt;&lt;li&gt;Templates (&lt;a href="http://www-personal.umich.edu/~csev/books/gae/lectures/06-Templates.pdf" style="color: blue;" target="_new"&gt;Slides&lt;/a&gt;,&amp;nbsp;&lt;a href="http://www-personal.umich.edu/~csev/books/gae/lectures/06-Templates-Print.pdf" style="color: blue;" target="_new"&gt;Printable Slides&lt;/a&gt;,&amp;nbsp;&lt;a href="http://www-personal.umich.edu/~csev/books/gae/podcasts/gae-06-templates-A.mp3" style="color: blue;" target="_new"&gt;Lecture Audio Part 1&lt;/a&gt;,&amp;nbsp;&lt;a href="http://www-personal.umich.edu/~csev/books/gae/podcasts/gae-06-templates-B.mp3" style="color: blue;" target="_new"&gt;Lecture Audio Part 2&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;The Login Application (&lt;a href="http://www-personal.umich.edu/~csev/books/gae/lectures/06-Templates-Login.pdf" style="color: blue;" target="_new"&gt;Slides&lt;/a&gt;,&amp;nbsp;&lt;a href="http://www-personal.umich.edu/~csev/books/gae/lectures/06-Templates-Login-Print.pdf" style="color: blue;" target="_new"&gt;Printable Slides&lt;/a&gt;,&amp;nbsp;&lt;a href="http://www-personal.umich.edu/~csev/books/gae/podcasts/gae-06-templates-login.mp3" style="color: blue;" target="_new"&gt;Lecture Audio&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li class="toplevel"&gt;Chapter 7 - Cookies and Session&lt;ul&gt;&lt;li&gt;Cookies and Session (&lt;a href="http://www-personal.umich.edu/~csev/books/gae/lectures/07-Cookie-Session.pdf" style="color: blue;" target="_new"&gt;Slides&lt;/a&gt;,&amp;nbsp;&lt;a href="http://www-personal.umich.edu/~csev/books/gae/lectures/07-Cookie-Session-Print.pdf" style="color: blue;" target="_new"&gt;Printable Slides&lt;/a&gt;,&amp;nbsp;&lt;a href="http://www-personal.umich.edu/~csev/books/gae/podcasts/gae-07-session.mp3" style="color: blue;" target="_new"&gt;Lecture Audio&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;The Login Application using Sessions (&lt;a href="http://www-personal.umich.edu/~csev/books/gae/lectures/07-Sessions-Code.pdf" style="color: blue;" target="_new"&gt;Slides&lt;/a&gt;,&amp;nbsp;&lt;a href="http://www-personal.umich.edu/~csev/books/gae/lectures/07-Sessions-Code-Print.pdf" style="color: blue;" target="_new"&gt;Printable Slides&lt;/a&gt;,&amp;nbsp;&lt;a href="http://www-personal.umich.edu/~csev/books/gae/podcasts/gae-07-login.mp3" style="color: blue;" target="_new"&gt;Lecture Audio&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li class="toplevel"&gt;Chapter 8 - Datastore&lt;ul&gt;&lt;li&gt;Datastore (&lt;a href="http://www-personal.umich.edu/~csev/books/gae/lectures/08-Datastore.pdf" style="color: blue;" target="_new"&gt;Slides&lt;/a&gt;,&amp;nbsp;&lt;a href="http://www-personal.umich.edu/~csev/books/gae/lectures/08-Datastore-Print.pdf" style="color: blue;" target="_new"&gt;Printable Slides&lt;/a&gt;,&amp;nbsp;&lt;a href="http://www-personal.umich.edu/~csev/books/gae/podcasts/gae-08-datastore-A.mp3" style="color: blue;" target="_new"&gt;Lecture Audio Part 1&lt;/a&gt;,&amp;nbsp;&lt;a href="http://www-personal.umich.edu/~csev/books/gae/podcasts/gae-08-datastore-B.mp3" style="color: blue;" target="_new"&gt;Lecture Audio Part 2&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Chat Application (ae-11-chat) (&lt;a href="http://www-personal.umich.edu/~csev/books/gae/podcasts/ae-11-chat.mov" style="color: blue;" target="_new"&gt;Screencast&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li class="toplevel"&gt;Chapter 9 - JavaScript and Ajax&lt;ul&gt;&lt;li&gt;Lecture (&lt;a href="http://www-personal.umich.edu/~csev/books/gae/lectures/09-JavaScript-Ajax.pdf" style="color: blue;" target="_new"&gt;Slides&lt;/a&gt;,&amp;nbsp;&lt;a href="http://www-personal.umich.edu/~csev/books/gae/lectures/09-JavaScript-Ajax-Print.pdf" style="color: blue;" target="_new"&gt;Printable Slides&lt;/a&gt;,&amp;nbsp;&lt;a href="http://www-personal.umich.edu/~csev/books/gae/podcasts/gae-09-ajax-A.mp3" style="color: blue;" target="_new"&gt;Lecture Audio Part 1&lt;/a&gt;,&amp;nbsp;&lt;a href="http://www-personal.umich.edu/~csev/books/gae/podcasts/gae-09-ajax-B.mp3" style="color: blue;" target="_new"&gt;Lecture Audio Part 2&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Ajax Chat Application (ae-12-ajax) (&lt;a href="http://www-personal.umich.edu/~csev/books/gae/podcasts/ae-12-ajax.mov" style="color: blue;" target="_new"&gt;Screencast&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li class="toplevel"&gt;Chapter 10 - Going into Production (&lt;a href="http://www-personal.umich.edu/~csev/books/gae/lectures/10-Production.pdf" style="color: blue;" target="_new"&gt;Slides&lt;/a&gt;,&amp;nbsp;&lt;a href="http://www-personal.umich.edu/~csev/books/gae/lectures/10-Production-Print.pdf" style="color: blue;" target="_new"&gt;Printable Slides&lt;/a&gt;,&amp;nbsp;&lt;a href="http://www-personal.umich.edu/~csev/books/gae/podcasts/gae-10-production.mp3" style="color: blue;" target="_new"&gt;Lecture Audio&lt;/a&gt;)&lt;/li&gt;
&lt;li class="toplevel"&gt;Chapter 11: Simple Session Implementation: (&lt;a href="http://www-personal.umich.edu/~csev/books/gae/files/util.zip" style="color: blue;"&gt;Utility Code&lt;/a&gt;&amp;nbsp;and&amp;nbsp;&lt;a href="http://www-personal.umich.edu/~csev/books/gae/files/util-readme.txt" style="color: blue;" target="_new"&gt;Documentation&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4985412203514275539-8413770449505516509?l=dilipray.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dilipray.blogspot.com/feeds/8413770449505516509/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dilipray.blogspot.com/2012/02/using-google-app-engine.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4985412203514275539/posts/default/8413770449505516509?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4985412203514275539/posts/default/8413770449505516509?v=2'/><link rel='alternate' type='text/html' href='http://dilipray.blogspot.com/2012/02/using-google-app-engine.html' title='Using Google App Engine'/><author><name>Ray CD</name><uri>https://profiles.google.com/102090886766399511065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-ITCEPwabzpY/AAAAAAAAAAI/AAAAAAAAB5Y/JQUCF52robg/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;DkUEQ3o4fSp7ImA9WhRaEUg.&quot;'><id>tag:blogger.com,1999:blog-4985412203514275539.post-7551394441268593627</id><published>2012-02-13T23:00:00.000+05:30</published><updated>2012-02-13T23:00:02.435+05:30</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2012-02-13T23:00:02.435+05:30</app:edited><title>What are the best productivity tools for entrepreneurs?</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://www.inc.com/uploaded_files/image/multitasking-pano_12371.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="187" src="http://www.inc.com/uploaded_files/image/multitasking-pano_12371.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;b&gt;Software / Web&lt;/b&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Dropbox (most popular answer, others suggested Box.net as an alternative)&lt;/li&gt;
&lt;li&gt;Evernote&lt;/li&gt;
&lt;li&gt;Gmail&lt;/li&gt;
&lt;li&gt;Google Chrome&lt;/li&gt;
&lt;li&gt;Google Docs&lt;/li&gt;
&lt;li&gt;LinkedIn&lt;/li&gt;
&lt;li&gt;Mailchimp&lt;/li&gt;
&lt;li&gt;Mindmaps (Freemind or Mindmanager)&lt;/li&gt;
&lt;li&gt;Skype&lt;/li&gt;
&lt;li&gt;Wunderlist&lt;/li&gt;
&lt;li&gt;Xobni&lt;/li&gt;
&lt;li&gt;Expensify&lt;/li&gt;
&lt;li&gt;Asana&lt;/li&gt;
&lt;li&gt;Basecamp&lt;/li&gt;
&lt;li&gt;KeyRocket (keyboard shortcut trainer)&lt;/li&gt;
&lt;li&gt;Helpjuice.com (knowledge base)&lt;/li&gt;
&lt;li&gt;Remember The Milk&lt;/li&gt;
&lt;li&gt;Redmine&lt;/li&gt;
&lt;/ul&gt;&lt;div&gt;&lt;b&gt;Real World&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Whiteboards&lt;/li&gt;
&lt;li&gt;Smartphone&lt;/li&gt;
&lt;li&gt;Moleskin notebook&lt;/li&gt;
&lt;li&gt;Skinny Pen&lt;/li&gt;
&lt;li&gt;GoToMeeting or equivalent&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4985412203514275539-7551394441268593627?l=dilipray.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dilipray.blogspot.com/feeds/7551394441268593627/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dilipray.blogspot.com/2012/02/what-are-best-productivity-tools-for.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4985412203514275539/posts/default/7551394441268593627?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4985412203514275539/posts/default/7551394441268593627?v=2'/><link rel='alternate' type='text/html' href='http://dilipray.blogspot.com/2012/02/what-are-best-productivity-tools-for.html' title='What are the best productivity tools for entrepreneurs?'/><author><name>Ray CD</name><uri>https://profiles.google.com/102090886766399511065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-ITCEPwabzpY/AAAAAAAAAAI/AAAAAAAAB5Y/JQUCF52robg/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;D0IFQ3k7cCp7ImA9WhRbGUo.&quot;'><id>tag:blogger.com,1999:blog-4985412203514275539.post-2320123119673812243</id><published>2012-02-11T21:21:00.000+05:30</published><updated>2012-02-11T21:21:52.708+05:30</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2012-02-11T21:21:52.708+05:30</app:edited><category scheme='http://www.blogger.com/atom/ns#' term='Games'/><category scheme='http://www.blogger.com/atom/ns#' term='Development'/><category scheme='http://www.blogger.com/atom/ns#' term='PS3'/><title>PS3 Games development</title><content type='html'>&lt;div&gt;This is the current state of affairs with indie-type PS3 programming that I know of.&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;br /&gt;
There is no equivalent to what Microsoft has with XNA, a framework that allows you to create games for the XBox 360 (albeit in C# and .NET, not with C++ and all that).&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;&lt;br /&gt;
Sony has a free game engine called&amp;nbsp;&lt;a href="http://en.wikipedia.org/wiki/PhyreEngine" rel="nofollow"&gt;PhyreEngine&lt;/a&gt;, but it's only available to its developer network and schools with an agreement with Sony.&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;&lt;br /&gt;
No public SDKs / documentation for specifically PS3 programming (complete with GPU programming and such) that I encountered.&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;&lt;div&gt;Most resources on the net will discuss Cell programming, but not the whole package.&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://groups.csail.mit.edu/cag/ps3/"&gt;MIT's PS3 Lectures&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.kernel.org/pub/linux/kernel/people/geoff/cell/ps3-linux-docs/ps3-linux-docs-latest/CellProgrammingPrimer.html"&gt;Cell programming&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;div&gt;Access to even becoming a PSN developer requires you to go through approval process (and maybe a cost of $1200), and the approval process looks at your finances, business statements, and experience in industry&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;&lt;div&gt;Back when you could still load Linux on the PS3, you could use the Linux environment to program for the PS3, except that you did not have access to the RSX GPU.&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;&lt;div&gt;In short: you likely have to&amp;nbsp;&lt;a href="http://gamedev.stackexchange.com/questions/1548/how-to-start-development-for-psn"&gt;pay to play&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;&lt;div&gt;Edit:&amp;nbsp;&lt;a href="https://www.unity3d.com/"&gt;Unity3d&lt;/a&gt;&amp;nbsp;can be used to develop for PS3 now too, but since I don't have access to its documentation, I don't know how it really works with loading on the PS3. I also think to get the PS3 functionality, you need to buy the Pro license which costs $1500/seat. And more info here:&lt;a href="http://answers.unity3d.com/questions/18628/unity-to-ps3-or-360"&gt;http://answers.unity3d.com/questions/18628/unity-to-ps3-or-360&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4985412203514275539-2320123119673812243?l=dilipray.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dilipray.blogspot.com/feeds/2320123119673812243/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dilipray.blogspot.com/2012/02/ps3-games-development.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4985412203514275539/posts/default/2320123119673812243?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4985412203514275539/posts/default/2320123119673812243?v=2'/><link rel='alternate' type='text/html' href='http://dilipray.blogspot.com/2012/02/ps3-games-development.html' title='PS3 Games development'/><author><name>Ray CD</name><uri>https://profiles.google.com/102090886766399511065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-ITCEPwabzpY/AAAAAAAAAAI/AAAAAAAAB5Y/JQUCF52robg/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;AkcBQHY8eSp7ImA9WhRbFk8.&quot;'><id>tag:blogger.com,1999:blog-4985412203514275539.post-316622009047675831</id><published>2012-02-07T20:50:00.000+05:30</published><updated>2012-02-07T20:50:51.871+05:30</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2012-02-07T20:50:51.871+05:30</app:edited><category scheme='http://www.blogger.com/atom/ns#' term='Web'/><category scheme='http://www.blogger.com/atom/ns#' term='HTML5'/><category scheme='http://www.blogger.com/atom/ns#' term='Basics'/><category scheme='http://www.blogger.com/atom/ns#' term='Flex'/><title>After 6 years doing Flex, am I moving to HTML5? by João Saleiro</title><content type='html'>&lt;b style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;After 6 years doing Flex, am I moving to HTML5?&lt;/b&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;Short answer: no. But I'm investing in HTML5.&amp;nbsp;&lt;/span&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;(really) Long answer: see below.&lt;/span&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;After returning from the Flex Summit, many people have contacted me asking what was going to happen with Flex and if I was going to "migrate" our projects (like&amp;nbsp;&lt;/span&gt;&lt;a class="ot-anchor" href="http://airgile.com/" style="background-color: white; color: #3366cc; cursor: pointer; font-family: arial, sans-serif; font-size: 13px; line-height: 18px; text-decoration: none;"&gt;http://airgile.com&lt;/a&gt;&lt;span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;&amp;nbsp;) and services to HTML5. After plenty of exchanged emails and dozens of long talks, I decided to write down and share some notes of my first steps in the HTML5 world regarding the development of Enterprise RIAs (or not). These notes are not organized, they have typos and - as I said above - they are only my first steps so more experienced people might (and will) prove me wrong in some topics.&lt;/span&gt;&lt;br /&gt;
&lt;a name='more'&gt;&lt;/a&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;b style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;Background&lt;/b&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;I founded Webfuel in 2004 and since then we've specialized in building long-term (&amp;gt; 6 months) enterprise-grade RIAs that had to scale well and be prepared for constantly changing requirements with a low cost in maintainability, while simultaneously providing a top-notch user experience. We've managed to offer our services comfortably with a very limited number of resources and small development teams (3-5 persons per project), much thanks to the way we leveraged existing knowledge on Software Engineering and applied it to our platform of choice - Adobe Flex (now fortunately called Apache Flex).&lt;/span&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;Our decision was purely technical and we have never regretted our choice, until it got badly affected by the bad PR around the Flash platform.&lt;/span&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;b style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;Worse PR ever in November 2011&lt;/b&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;The Flash platform was already in bad shape, much thanks to one year of chaotic PR and there were already some inconsistent signs from Adobe hinting what was going to happen. While disappointed, I was not very surprised when all hell broke loose in November 2011 with Adobe destroying the very last credibility that Flash still had, directly affecting Flex, our businesses and careers. Long story short, Adobe wasn't able to monetize the Flash Platform and the top managers who don't really care or understand its power simply decided to put the money where their mouth was: HTML5. I happen to strongly agree with the move on investing in HTML5, but they could and should have done it without destroying (the perception of) Flash. Especially because in the meantime it had turned into the platform of choice for Enterprise Development.&amp;nbsp;&lt;/span&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;In December '11 Adobe has donated Flex to Apache. While this might end up in being the best thing that could happen to Flex, the initial reaction from the Enterprise was that Adobe was getting rid of Flex. Like someone said during the Flex Summit - "it seems to me that Adobe has built the best platform for creating enterprise-grade applications by accident". Adobe understands design; creativity; marketing; publishing; Adobe doesn't seem to understand Enterprise. Example #1: all corporate companies I worked with in the last 6 years complained about the lack decent support from Adobe and they were willing to pay big money. Example #2: the pricing of LCDS.&lt;/span&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;Did Adobe kill Flex? No! A technology doesn't have a heart attack and drops dead on the floor. Flex is still alive and the reasons why we chose it are still&amp;nbsp;&lt;/span&gt;&lt;b style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;perfectly valid&lt;/b&gt;&lt;span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;. Flex didn't get worse suddenly - it's still the same robust platform for enterprise RIA development.&lt;/span&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;What was destroyed was the perception of the Flash Platform. And the perception is what matters on business. You can have the best product of the world, but if people believe it's bad they won't buy it (and they'll even be happy on telling everyone how much your product - that they never used - sucks). But if they think it's good - even if it actually sucks - they'll probably buy it (and complain later). Perception. That's what sells. Perception.&lt;/span&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;Will the perception around Apache Flex (&amp;nbsp;&lt;/span&gt;&lt;a class="ot-anchor" href="http://incubator.apache.org/flex/" style="background-color: white; color: #3366cc; cursor: pointer; font-family: arial, sans-serif; font-size: 13px; line-height: 18px; text-decoration: none;"&gt;http://incubator.apache.org/flex/&lt;/a&gt;&lt;span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;&amp;nbsp;) improve? Most likely, yes. In 9 days, there were more than 1.4 thousand emails exchanged on the Flex Mailing List (&lt;/span&gt;&lt;a class="ot-anchor" href="http://incubator.apache.org/flex/mailing-lists.html" style="background-color: white; color: #3366cc; cursor: pointer; font-family: arial, sans-serif; font-size: 13px; line-height: 18px; text-decoration: none;"&gt;http://incubator.apache.org/flex/mailing-lists.html&lt;/a&gt;&lt;span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;&amp;nbsp;) ! It's pretty impressive the number of people that are now involved in pushing Flex forward and this number will most likely keep rising. But Apache Flex still relies (or, at least for now) on the Flash Platform and I'm not seeing the bad perception on the Flash Player changing in a near future. Of course there's still AIR, but what concerns me are browser applications.&lt;/span&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;b style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;We are desktop-developers-working-on-the-web&lt;/b&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;An important side note, is that I see Webfuel as a team of desktop developers working on the web. In other words, we use desktop development paradigms, best-practices and design patterns borrowed from the JAVA world and we've applied them to build applications that happen to run inside the browser. Our work consists normally in building at least two loosely coupled applications, connected by an RPC API: a client application (running inside the web-browser) and a server application that only exposes services and is not aware of the client application.&lt;/span&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;Most Flex developers out there think on themselves as web-developers, but in most cases the mindset of a Flex developer is closer to a desktop developer than to a web developer. IMHO, this is the single-most-important reason on why we, Flex developers, dislike so much the "normal" web development approaches.&lt;/span&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;We work with "views", web developers work with "documents". We do old-school MVC, DI, loosely coupled approaches, dependency management, RPC, code coverage, continuous integration [...], and when we're forced to do web-development these are the first concepts that we try to investigate and replicate... before we get frustrated and enter in "denial".&lt;/span&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;To be good at typical web-development, we have to&amp;nbsp;&lt;/span&gt;&lt;b style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;change our mindset&lt;/b&gt;&lt;span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;.&lt;/span&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;b style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;Is "HTML5" ready?&lt;/b&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;According to Twitter, online magazines, blogs, Apple, Microsoft and even Adobe, HTML5 is the silver-bullet for everything. It can be used to build websites, webapps, games, software, mobile applications, doing laundry and cooking. The focus is all on HTML5 right now. Is it the right moment to use it?&lt;/span&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;From the point of view of a web-developer - of course it is!!! For a typical web-developer, HTML5 means more tools, more power and much better cross-browser compatibility than what they had before. If you're working on the web, HTML5 and the storm of JS frameworks is simply the best thing that has happened to the web since.... humm... Flash. :o) Bottom line, HTML5 is for sure a giant step forward.&lt;/span&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;From the point of view of a desktop-developer-working-on-the-web - hell no! WTF? We work on the enterprise and enterprise means stability. We can't afford to have too many moving pieces all the time. We can't afford to deal with un-structured languages. If you've used Flash or Flex for the last 5 years, you'll feel that in HTML5 there's nothing new or better than what you already have. Worse, you'll feel that there still are hundreds of needed capabilities and tools missing. Exception to the rule, happens if you're targeting the browser of Mobile devices, where HTML5 is king.&lt;/span&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;It's quite understandable that a Flex developer feels frustrated. You feel you're going backwards 4 or 5 years. It happens that, as Ted Patrick stated (&amp;nbsp;&lt;/span&gt;&lt;a class="ot-anchor" href="http://tedpatrick.com/2011/11/12/living-in-the-future/" style="background-color: white; color: #3366cc; cursor: pointer; font-family: arial, sans-serif; font-size: 13px; line-height: 18px; text-decoration: none;"&gt;http://tedpatrick.com/2011/11/12/living-in-the-future/&lt;/a&gt;&lt;span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;&amp;nbsp;) , we were living in the future...&lt;/span&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;b style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;Ignore the PR shit storm. Ignore fanboys. Choose the right tools. Ask the right questions to the right developers&lt;/b&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;People like to take sides. If I like and use something, for sure it's because it's the best thing ever and all the rest sucks or is dead. That's how it works for most fanboys.&amp;nbsp;&lt;/span&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;Newsflash: if 10.000 persons say that something sucks, it doesn't really mean that it really sucks. It means that they believe it sucks. It's like believing in a religion - each follower defends his religion, but which one is the "right" religion (or, is there a "right" religion)? The irony is that developers should be pragmatic people but we often see them becoming fanatic about their technology choices. "Infidel, infidel", they yell with their pitchforks in the air when you say the name of a "competitor" technology. WTF?&lt;/span&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;For me, technologies are just tools. Obviously I would like to have as many good tools as possible so I can be able to choose the right one for each task. Be it Flex, HTML5, Javascript, Actionscript, JAVA, PHP, whatever.&lt;/span&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;Bottom line: ignore the PR shit storm. Ignore fanboys. Choose your tools based on logic. You wouldn't choose a hammer to cut wood, would you?&lt;/span&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;Last year, when I started digging seriously into Javascript, I had many questions. I took for granted that someone who defends a technology with so much conviction, probably understands it pretty well. So I placed several questions to these guys expecting to learn new stuff and understand their best practices. It happens that I haven't learnt shit. It was like if me and they were from different planets, speaking different languages. Even similar words have different meanings (their MVC is not our MVC. their dependency management is not our dependency management... etc).&lt;/span&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;I've sent a couple of emails to mailing lists of HTML5 and JS development asking people what they were using for MVC, IoC, Unit Testing, Code Coverage, Compiling, Continuous Integration, etc, etc. The answers were like "WTF dude, IoC? What are you talking about?". I now know that I was doing the wrong questions, as you'll see below.&lt;/span&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;Since I couldn't get (or understand) answers from the gurus of the JS world, I started trying to find people who were doing both large-scale Actionscript and Javascript. They would understand me. :o) It happens that there aren't many and most of them were more or less at the same point I was. The best single advice I got was: "accept web dev for what it is and don't try to change it. Don't do RIAs. Do simple web development. Then improve.". Good advice!.&lt;/span&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;b style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;Redefining our focus&lt;/b&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;As I said above, technology-wise, Flex is still perfectly valid. But it's perception is at its lowest level and clients are quite confused and started asking us to use HTML5 to build the same type of solutions we were building with Flex.&lt;/span&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;So we had to rethink our business, and considering our desktop-developers-working-on-the-web mindset, we've decided to:&lt;/span&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;1- return to our roots: desktop development. That's what we're good at and we can still keep using Flex to build AIR applications, either for the desktop or mobile. Since we can embed the AIR runtime, those applications will be future-proof to any other crazy-game-changing decisions made by Adobe.&lt;/span&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;2- increase our investment in developing (simple) HTML(5) webapps, while accepting the web for what it is: broken. In other words, we have to be humble about what we can provide on the web. It's too hard and expensive to build the same type of applications we were building, so we're starting with just simple webapps.&amp;nbsp;&lt;/span&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;We won't be accepting huge enterprise-grade projects if they're meant to be built in HTML(5). This is actually the hardest problem to manage. There are expectations from clients. They've gotten used to our beautiful RIA applications, with almost no waiting times, with beautiful and pixel-perfect interactive user interfaces. And now they want the same, but in HTML5, because Flash is "dead" and HTML5 will also run on their Mobile devices (all of them), faster and without consuming battery. At least, it's what they heard.... The solution for this problem is to say "No, we are not ready to develop it in HTML5". We'll be restricting our development to simpler web-apps, until we feel that we (and the web) are ready.&lt;/span&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;b style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;First steps in JS and HTML5&lt;/b&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;During 2011, I've read&amp;nbsp;&lt;/span&gt;&lt;b style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;A LOT&lt;/b&gt;&lt;span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;&amp;nbsp;about JS frameworks, libraries, approaches, etc. Sometimes after finishing reading something, it was already outdated and a better library was available.&lt;/span&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;My first impression was that most docs were "meh": in most cases you have an excellent "Getting Started" guide, but as soon you start getting your hands dirty in more complicated scenarios, things start falling apart and you'll see none or outdated advanced documentation.&amp;nbsp;&lt;/span&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;Another trend that I hated in my readings was the lack of objectivity: instead of the typical website and docs saying "this framework does A,B,C,D" , I saw a lot of "THIS IS THA MOTHA-FUCKA FRAMEWORK THAT WILL SAVE UR LIFE!", "MEGA-HYPA-SHIZZLA-FRAMEWORK". This type of communication felt weird and suspicious to me until I got used to it.&lt;/span&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;I've also seen several frameworks being dropped in favor of others, which was actually what scared me the most. I felt insecure choosing the "right" libs and frameworks, so most choices I did at start were the safe ones, as you'll see below.&lt;/span&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;Another irony was that most of the JS frameworks exist to overcome the limitations of the web development (normally, the crossbrowser issues). Coming from an environment where a framework tries to abstract application concepts, it felt weird to me to use frameworks to abstract technical limitations. Today, I've learnt to enjoy and welcome these frameworks. Accept them for what they are, because the technical limitations actually&amp;nbsp;&lt;/span&gt;&lt;b style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;exist&lt;/b&gt;&lt;span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;&amp;nbsp;and without those frameworks you're screwed.&lt;/span&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;In October 2011, I decided to start a medium sized real-life HTML5 webapp with a partner company, so we could test the knowledge I gathered. (A medium-sized project in the point of view of a web-developer; as a desktop-developer I see it as simple stuff&amp;nbsp;&lt;/span&gt;&lt;a class="ot-hashtag" href="https://plus.google.com/s/%23notBeingHumble" style="background-color: white; color: #3366cc; cursor: pointer; font-family: arial, sans-serif; font-size: 13px; line-height: 18px; text-decoration: none;"&gt;#notBeingHumble&lt;/a&gt;&lt;span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;&amp;nbsp;). I've allocated two developers to the project - with myself being one of them. Below are the choices we made.&lt;/span&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;b style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;Knockout.js&lt;/b&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;Despite having read about Backbone, Spine and other more complex frameworks, I've decided to start small and simple with Knockout.JS . I just wanted simple data-binding to start with, so I could get some separation between the data model and the view. Later, when we were more experienced, I would re-evaluate the choice of the framework and choose between Backbone, Spine, or another.&lt;/span&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;My choice has proven to be worthy since Knockout is actually quite simple - but far more complicated and intrusive than the ultra-easy and powerful binding we're used to in Flex.&amp;nbsp;&lt;/span&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;The documentation of Knockout is quite good, with plenty of tutorials available. On Google you won't find as many resources on Knockout as you would like, but fortunately the website covers most of the important topics. The mailing list is pretty good, despite not being as active as the MLs I'm used to in the Flex world with dozens or hundreds of experts. Anyway, in the Knockout ML, there were always one or two people kind enough to point you in the right direction, which is great.&lt;/span&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;b style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;jQuery&lt;/b&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;I had already a good impression on jQuery, but even still it turned up to be even better than what I expected. jQuery not only hides a lot of the crossbrowser issues - not all -, but also boosts up a lot your productivity with dozens of shortcut functions to most of the stuff people normally need to do on the web. Use it (can you live without it?).&lt;/span&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;b style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;SaaS&lt;/b&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;Managing CSS can easily turn into a pain especially if you need to do many changes to an existing stylesheet with hundreds of CSS declarations. When Googling for best practices, I met SaaS. SaaS is actually pretty simple: it lets you define CSS stylesheets with declaration hierarchy, variables and mathematic expressions, saving them on a scss file. Then you start a command line task that listens for changes in your scss file and converts it to a CSS file on the fly.&amp;nbsp;&lt;/span&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;I haven't looked at Less, so I don't really know which one is better.&lt;/span&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;b style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;Lab.JS&lt;/b&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;I also discovered (the hard way) the pain that it can be to manage dependencies in Javascript. I was used to having all class definitions packaged for me in a single SWF and the Flash VM would take care of embedding and managing dependencies for me (pretty most like all bytecode VMs do). In the Javascript world, there's nothing taking care of this for you. You start by setting in the HTML file the location of the scripts needed, but then you cannot control the order they are loaded and run. So you can be calling a function myFunction() in fileB.js that was defined in fileA.js that was not loaded yet - resulting in errors.&amp;nbsp;&lt;/span&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;I've chosen Lab.JS to solve the issue of loading dependencies on the right order. I'm also making sure that any initialization code only runs AFTER all the needed files are loaded.&lt;/span&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;I've found a problem with Lab.JS: if your code throws exceptions, they will be swallowed by the library and nothing happens. My workaround (read: ugly hack) was to do a " setTimeout(initialize, 1); " after the scripts are loaded. This way exceptions are now caught by the browser, as you would expect.&lt;/span&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;b style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;IDEs&lt;/b&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;This was one of the biggest disappointments in the beginning. The biggest problem of JS is that due to its dynamic nature it's hard to be tooled around. For building large scale complex systems, especially in a team environment, I needed good refactoring capabilities. It happens that refactoring doesn't exist in the IDEs I tried.&lt;/span&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;Ok, there is something called "rename" in WebStorm but it works for very simple cases and I've seen it resulting in unexpected results (so I always use the "preview").&amp;nbsp;&lt;/span&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;Flash Builder is a complete beast (in a good sense). I've seen many people ranting on Flash Builder and even I had some disappointments a couple of years ago. But after FB 4 it just got awesome, with its serious refactoring capabilities, find usages, metadata completion, autocomplete, inline docs, content assist, etc. Most of the best tricks from the JAVA world are available on FB. If you expect to find those in JS editors, I have bad news for you.&amp;nbsp;&lt;/span&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;I've started with Aptana. It's free. It's based on Eclipse, so I felt at home at least with the shortcuts and the structure of the IDE, but with a black editor (wtf? is this the "fashion-color" for supa-dupa-web-developers?). Anyway, after two months I got tired of it. I couldn't do refactoring. I couldn't jump properly to a function definition with CTRL+click (and this was REALLY annoying). It didn't have decent auto-complete. I've tried making the debugging work but it only worked properly 15% of the time.&lt;/span&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;Then I've decided to give PHPStorm a try - which is the same as WebStorm, but also supports PHP. At first, I was lost: I couldn't find half of the stuff I needed. After one day, I was pretty comfortable with it and now I feel it's actually pretty well built. Ok, it's NOT Eclipse, but even still it's quite powerful. What those guys did was to implement&amp;nbsp;&lt;/span&gt;&lt;b style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;really well&lt;/b&gt;&lt;span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;&amp;nbsp;the things you use most while developing and packaged all of them in a clean and objective interface. Kudos to JetBrains (&lt;/span&gt;&lt;a class="ot-anchor" href="http://www.jetbrains.com/" style="background-color: white; color: #3366cc; cursor: pointer; font-family: arial, sans-serif; font-size: 13px; line-height: 18px; text-decoration: none;"&gt;http://www.jetbrains.com/&lt;/a&gt;&lt;span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;&amp;nbsp;)!&lt;/span&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;In PHPStorm, refactoring "sorta" works in simple scenarios. If you complicate too much (like when you try to mimic packaging for your objects), it won't work. Click and jump to a function definition works. Debugging... works!! Autocomplete works a lot better than I expected. Actually, it works quite well. The catch: comparing to Aptana, it's not free.&amp;nbsp;&lt;/span&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;Coming from Flash Builder, will you be happy with PHPStorm? No. But currently it seems to me that it is probably the best IDE for Web development.&lt;/span&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;b style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;Debugging&lt;/b&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;I feel ashamed to say that I couldn't debug properly during the first two to three weeks. Every tool I tried didn't work as expected. It happens I was using the wrong tools, browsers and approaches.&amp;nbsp;&lt;/span&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;I ended up using the debugging capabilities of both Firebug (in Firefox!) and PHPStorm. Firebug is also pretty helpful to inspect the DOM of the document, something you'll be doing every 5 minutes. Both Firebug and PHPStorm allow you to place a breakpoint in JS code and then run your code step by step, as expected. PHPStorm looks more comfortable to me, also because it's where I'm writing my code.&lt;/span&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;Bottom line: If your debugging is not working, don't blame JS: you're simply using the wrong tools.&lt;/span&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;b style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;Javascript&lt;/b&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;This was probably my biggest pain point. I'll start with the conclusions: accept Javascript for what it is and don't try to mimic your common OOP techniques and classes. There.are.no.real.classes.in.javascript.&amp;nbsp;&lt;/span&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;Of course, you can&amp;nbsp;&lt;/span&gt;&lt;b style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;try&lt;/b&gt;&lt;span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;&amp;nbsp;to mimic them - I've read half of a book teaching how to do that. But I've come to the conclusion that the complexity that you're adding to get you closer to your comfort zone ends up not being comfortable at all...&lt;/span&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;You have objects in Javascript. Some might argue that they're not "real objects", but wtf, they are what they are and bitching around all the time won't turn them into real objects. They are objects. It's the definition of "real" that is subjective :o)&lt;/span&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;The problems with JS:&amp;nbsp;&lt;/span&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;- Silent errors. They happen. Get ready for them.&lt;/span&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;- Hard coupling everywhere. It's pretty hard to do loosely coupled architectures. It's quite easy to end up with a web of dependencies between different objects. I've read there are techniques to avoid hard-coupling, but I haven't had time to dig up more, so this might be my fault.&lt;/span&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;- Ugliness. I'm used to a HUGE-ULTRA-CLEAN separation between classes, libraries, modules, components and applications. In the webdev world, get ready to see PHP spitting HTML that has JS code spitting more HTML... Or function a() that creates another function in object b, that knows about object c and changes how c behaves. Things like that. In many known js libraries.&lt;/span&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;- It's not built for team work. At Webfuel we normally don't need to talk much with each other about development. Half a dozen guys can be working together for half a year on the same project, committing code every 5 minutes to the same SVN, without breaking the code of others. This was quite easy to achieve much thanks to the structured nature of Actionscript, on top of some very simple practices borrowed from the JAVA world. Enter Javascript and you'll see your code breaking the code of someone else. While developing JS in a team, it's normal that developers need to talk a lot about what each one is doing, warning the other to be careful about X or Y, or asking the other "where did you put the code for...". Actionscript makes teamwork a joy almost since moment zero - there's no rocket science for a healthy teamwork environment, especially if you're using a micro-framework. In Javascript, the trick is to put people working in very different unrelated parts of the projects and use techniques to encapsulate their code - I have yet to learn them, but I will soon. I've asked some JS developers about this but the ones I know are all lone-wolves so they didn't understand what I was talking about (apart from the reaction "SVN?? WTF?? Use GIT!".. hum... that wasn't my question...)&amp;nbsp;&lt;/span&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;- Unpredictable. In AS3, the "this" refers to the instance where the method is defined. In JS, "this" can mean pretty much anything (remember AS2?). This was one of my biggest pain-points at first. Another problem is guessing by looking at the code the properties and functions of an Object. You can't. A function in an object can be defined pretty most anywhere. It's up to you (and your team; and your partners; and your library-providers) to make sure that you keep your house clean with everything organized in the right place.&lt;/span&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;- Code practices. These are completely different from everything you know. I taught everyone here at Webfuel to not be afraid of writing many lines of code. I want them to write self-explanatory code, like if they were writing English. Enter Javascript. And cry. By some weird reason, people like to write as much code as possible in a single line, making it not only very hard to read, but also very hard to maintain. I've got used to seeing the #('huge').line({of: code, that: function() { looks() }).like('a').train(); . And this practice is everywhere, pretty most in all examples, libraries and worse: in books! One of the books I read had one line that took me around 5 minutes to understand! The fun part is that I had the book with me in San Francisco on the Flex Summit and I showed that line of code to several people just to scare the shit out of them. It worked!&lt;/span&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;Bottom line: if you're an OOP purist, with many years of experience on software engineering on Flex and/or JAVA, you're going to be scared. The mindset is different. The problems are different. The solutions are different. Even the slang is different. The good part: no compiling times. Which is actually a very good part...&lt;/span&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;There's so many people betting in JS, shouldn't it be good?&lt;/span&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;This is actually the question that confuses me the most. I simply don't have an answer... Some people seem to be able to pretty much do anything they need but that doesn't mean their needs are the same as mine. At the same time the language certainly has its fundamental problems that can frighten anyone who has a one-year-project ahead.&lt;/span&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;One thing is certain: it's being pushed forward and you can't deny that.&lt;/span&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;b style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;CoffeeScript&lt;/b&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;I haven't tried yet CoffeeScript. After reading a bit about CoffeeScript, I've learnt that you still need to be comfortable with Javascript to use CoffeeScript properly. And that's what I'm doing. On the next project I might give CS (or other language that cross-compiles to JS) a try.&lt;/span&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;b style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;Layouting and the DOM&lt;/b&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;This was actually my biggest disappointment. Flex (&amp;gt;4) is amazingly simple and powerful concerning pixel perfect skinning and layouting. You have pretty much no constraints in Flex regarding layouting, giving you immense freedom in creating perfectionist user-experiences. You don't think "how am I going to implement this?" because there's not much to know about Spark skinning: it's really powerful and simple.&lt;/span&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;The HTML world is different. You have to be aware of the constraints before creating the design and setting the user experience. I wasn't aware of these constraints so we had to change the designs of the product we're building a couple of times on the middle of the project to turn them into something possible/easier to achieve in HTML. I really hate constraints that end up affecting the user experience, but that's how it is.&lt;/span&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;You have also to be prepared to accept small (and big) cross-browser rendering differences. They will happen. A lot. But that's another topic...&lt;/span&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;b style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;Optimizations/Preloading content&lt;/b&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;Coming from the Flash world I was used to have to build one single application (the SWF) that has all (static) assets embedded. This results in pretty small files (yes, a SWF is smaller than it's HTML+JS+CSS+Assets equivalent, even after minimization and gzip, and etc), only one request to the server (which ends up in a very low load on the server) and the assumption that all the content you need is available at runtime since moment 0. If you want to achieve a similar result in JS, you have to do it by hand - there's nothing taking care of that for you. You have to join and minify Javascript and CSS files and resort to image sprites to reduce the number of requests to the server and the user perceived speed.&lt;/span&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;An image sprite is simply one PNG file with all the images and icons you use in your webapp. Then you simply apply that image as the background image of your UI component, using CSS to set a translation so it shows the icon/image you need. It's quite simple, but make sure you load this image before your content appears on screen. The same applies to other content, in case you don't want the user to see "glitches" on the layout while things load.&lt;/span&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;During loading I am hiding most divs (display: none) in the DOM, showing a preloader and after all content is ready (JS files through Lab.JS, Image Sprite, etc), I'm using jQuery to show stuff. It's quite simple, actually, but of course, Flex did take care of all that for you... BTW, I saw this today, but I haven't tried it yet:&amp;nbsp;&lt;/span&gt;&lt;a class="ot-anchor" href="https://github.com/thinkpixellab/PxLoader" style="background-color: white; color: #3366cc; cursor: pointer; font-family: arial, sans-serif; font-size: 13px; line-height: 18px; text-decoration: none;"&gt;https://github.com/thinkpixellab/PxLoader&lt;/a&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;I've started today looking for a Javascript minifier. I need something that can automatically watch a folder with several JS files and merge them in a single minified file. If possible, assigning a revision number to the generated file. I haven't yet found anything, but I'll update this post if I have positive results.&lt;/span&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;b style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;HTML(5), JS and Mobile&lt;/b&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;If you think you're going to build something in HTML(5)+JS that will work seamlessly and without problems in desktop AND mobile browsers, think again. Document based websites usually work without problems on both types of environments. But if you're doing a more or less advanced user experience that relies in some CSS and JS magic, then be prepared to be disappointed when you open your content in your Mobile device. Not that the mobile browsers are bad - they're actually pretty good. The problem is that the Mobile experience needs to be thought from the start - people will be using their huge clumsy fingers to interact, the screen will be smaller and the hardware resources are more limited. So at the end, you have to implement at least two different user experiences and switch between them according to the device capabilities using Media Queries. I haven't yet tried Media Queries, so there's not much I can say about this. I just mentioned this topic because I've seen several people getting frustrated after migrating their Flash applications to HTML expecting them to work right away on iOS. When in most cases it's probably cheaper to keep the Flash version on the desktop and build a dedicated version for iOS.&amp;nbsp;&lt;/span&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;b style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;UI Components&lt;/b&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;DateChooser, NumericStepper, TextInput, DropDownList, RadioButton, Panels, Accordions, HGroup, Charts, Lists with Renderers, DataGrid, etc, etc, etc, almost all types of components you can imagine are available in Flex. And they are extendable and completely skinnable. You have great control in your hands. In the HTML world, either you go with the limited browser components - that are not extendable and are hard to skin but they integrate with the browser and the device -, or you have to choose a component library like jQuery UI, ExtJS or zkoss, among other - that are more or less powerful, but don't integrate with the browser or device.&lt;/span&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;After exploring dozens of options, all of them with their cons and cons, I felt unsecure on choosing one option, spending time and money learning it and teaching it to my team, to later conclude that I might have chosen the wrong one. So I've decided&amp;nbsp;&lt;/span&gt;&lt;b style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;NOT&lt;/b&gt;&lt;span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;&amp;nbsp;to try any component library - apart from the limited jQuery UI -, simply because there are too many things changing right now and it's very hard to predict which libraries will succeed and which ones will not. I'm going to be lazy (also because I can't study thousands of stuff at the same time) and wait to see what other Flex developers will choose. In the meantime, as I said above I won't be using HTML(5) to build RIAs, but only simple webapps. And for that, jQuery UI is up to the task (with some quirks here and there).&lt;/span&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;b style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;Crossbrowser issues&lt;/b&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;Heck, this is my biggest nightmare. I tremble everytime someone says the word "web browser". Ok, I'm exaggerating a bit. Crossbrowser issues exist, they are a PITA and they will consume&amp;nbsp;&lt;/span&gt;&lt;b style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;at least&lt;/b&gt;&lt;span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;&amp;nbsp;30% of your time in a project (consider that when budgeting). But to be honest, at first I was expecting it would be a lot worse. Don't take me wrong here, crossbrowser issues&amp;nbsp;&lt;/span&gt;&lt;b style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;are&lt;/b&gt;&lt;span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;&amp;nbsp;a nightmare. Simply, they're not as scary as I thought. If you follow me on twitter (&lt;/span&gt;&lt;a class="ot-anchor" href="https://twitter.com/#!/joaosaleiro" style="background-color: white; color: #3366cc; cursor: pointer; font-family: arial, sans-serif; font-size: 13px; line-height: 18px; text-decoration: none;"&gt;https://twitter.com/#!/joaosaleiro&lt;/a&gt;&lt;span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;&amp;nbsp;) you've probably seen me cursing some web-browsers (hint: has two letters, starts with an I, ends with an E). Get ready to having to test something in several browsers and to change plans in the middle of the project because your approach doesn't work as expected in one or two major browsers - especially if you're building edge-cases and using HTML5 stuff.&amp;nbsp;&lt;/span&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;You can't miss this article:&amp;nbsp;&lt;/span&gt;&lt;a class="ot-anchor" href="http://www.joelonsoftware.com/items/2008/03/17.html" style="background-color: white; color: #3366cc; cursor: pointer; font-family: arial, sans-serif; font-size: 13px; line-height: 18px; text-decoration: none;"&gt;http://www.joelonsoftware.com/items/2008/03/17.html&lt;/a&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;We had one crossbrowser issue this week that almost killed our current project. We needed to override the browser URL while the user was navigating the application and we couldn't rely in simple URL hashes. We were hoping that history.pushState was up the task, but it happens that it is&amp;nbsp;&lt;/span&gt;&lt;b style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;not&lt;/b&gt;&lt;span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;. Erratic behavior in Safari, doesn't work in IE, worked in Android until 2.3.3 and stopped working in 3.0 and 4.0 (WTF?)... Fortunately, we've found History.js which was built exactly to fix our problem and reduce (not fix) the cross-browser issues. See, the good thing is that crossbrowser issues happen to everyone, so there's a high chance you'll find a workaround on the web.&lt;/span&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;If you're doing HTML5 you probably know about&amp;nbsp;&lt;/span&gt;&lt;a class="ot-anchor" href="http://caniuse.com/" style="background-color: white; color: #3366cc; cursor: pointer; font-family: arial, sans-serif; font-size: 13px; line-height: 18px; text-decoration: none;"&gt;http://caniuse.com/&lt;/a&gt;&lt;span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;&amp;nbsp;. If you don't, go there.&lt;/span&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;b style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;Productivity&lt;/b&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;Our productivity is pretty bad right now (but we are getting better!). We've spent 11 weeks of two resources to build something in HTML(5)+JS that we would have built in 3 weeks with the same resources in Flex, without any stress at all. Of course, I take a big part of the guilt here: we're still learning and during the first weeks there were a lot of readings, plan changes, tests and bumps on the road.&amp;nbsp;&lt;/span&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;The real issue is how tight the relation between productivity and your experience with the tech is: the bumps on the road are there, they happen to everyone and you won't be able to predict them. So the only solution to be productive is to be experienced and be aware of those issues. They will simply happen, you'll curse them, search the internet for hours, fix/hack them and the next time you'll meet them, THEN, you'll be prepared and productive.&amp;nbsp;&lt;/span&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;You'll end up implementing workarounds and hacks (on top of other hacks) constantly. Coming from the Flex world, you'll feel ashamed of your hack - don't be. It's normal. Most of the times, you won't have another choice but to accept the hack and move on.&amp;nbsp;&lt;/span&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;Coming from a rapid development environment as Flex, productivity in JS and HTML can be quite frustrating until you get used to the bumps on the road. After you're experienced, it will get better, but I don't expect it to come any close to the productivity of Flex development in a near future.&lt;/span&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;b style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;Conclusions&lt;/b&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;The first conclusion is that we'll keep using Flex in long-term enterprise RIAs projects, especially targeting installable desktop and mobile applications. Neither the open-standards nor us are ready to build the same type of experiences that our clients expect us to.&amp;nbsp;&lt;/span&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;At the same time, we'll be accepting smaller webapps. At this point, after three months, we're already pretty comfortable building web experiences, so it's a matter of raising the bar slowly, webapp after webapp. But I don't think we'll be able to do the same type of RIAs we were doing with Flex at least not in the next two years. Also, maintainability and its cost scare the shit out of me. And all the moving parts of HTML5 - new libraries appearing, others disappearing, browsers adding or dropping support of features, etc. There are lots of "ands", "ifs" and "nots".&lt;/span&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;I know I've missed half a dozen important topics and I know I'll have dozens of other to write about in a couple of months. Actually, there are no real conclusions here - only open subjects. There's much to be investigated and learned. I'm sure I'm not completely right in some of the above topics and I would love to get your feedback, pointing me in the right directions where I got it wrong. I can only hope that most of the stuff I pointed above won't look as bad in a couple of months as it looks now. Or that browser vendors shake hands and decide to stop fragmenting the web. Maybe they could all be friends and adopt the same rendering engine and VM (&amp;nbsp;&lt;/span&gt;&lt;i style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;giggles&lt;/i&gt;&lt;span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;&amp;nbsp;). For example, Google Dart. (&amp;nbsp;&lt;/span&gt;&lt;i style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;yeah, right&lt;/i&gt;&lt;span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;&amp;nbsp;...)&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;About Author :&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;a class="cs2K7c qk is" href="https://plus.google.com/109047477151984864676" oid="109047477151984864676" style="background-color: white; color: #3366cc; cursor: pointer; font-family: arial, sans-serif; font-size: 13px; font-weight: bold; line-height: 18px; text-decoration: none;"&gt;João Saleiro&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class="aYm0te c-wa-Da note" style="background-color: white; color: #333333; display: inline-block; font-family: arial, sans-serif; font-size: 13px; line-height: 1.39em; padding-bottom: 0px; padding-left: 15px; padding-right: 0px; padding-top: 0px; position: relative; text-align: left; vertical-align: top; width: 382px;"&gt;Project Manager / Software Engineer / Partner @ Webfuel&lt;div&gt;Graduated in Computers and Telecommunications Engineering @ ISCTE, Portugal&lt;/div&gt;&lt;div&gt;Certified Instructor&lt;/div&gt;&lt;div&gt;Adobe Certified Expert in Flex, Adobe Community Professional, etc&lt;/div&gt;&lt;div&gt;Loves sports, cinema, researching and engineering. &amp;nbsp;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4985412203514275539-316622009047675831?l=dilipray.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dilipray.blogspot.com/feeds/316622009047675831/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dilipray.blogspot.com/2012/02/after-6-years-doing-flex-am-i-moving-to.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4985412203514275539/posts/default/316622009047675831?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4985412203514275539/posts/default/316622009047675831?v=2'/><link rel='alternate' type='text/html' href='http://dilipray.blogspot.com/2012/02/after-6-years-doing-flex-am-i-moving-to.html' title='After 6 years doing Flex, am I moving to HTML5? by João Saleiro'/><author><name>Ray CD</name><uri>https://profiles.google.com/102090886766399511065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-ITCEPwabzpY/AAAAAAAAAAI/AAAAAAAAB5Y/JQUCF52robg/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;CkcGR3g8fCp7ImA9WhRbFk4.&quot;'><id>tag:blogger.com,1999:blog-4985412203514275539.post-476766018421063099</id><published>2012-02-06T22:36:00.001+05:30</published><updated>2012-02-07T21:23:46.674+05:30</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2012-02-07T21:23:46.674+05:30</app:edited><title>8 things you should know before building a mobile app</title><content type='html'>&lt;div style="background-color: #fdfdfa; color: #080000; font-family: Georgia, 'Times New Roman', serif; line-height: 1.55em; margin-bottom: 1.2em; margin-top: 1.2em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;"&gt;The upshot of producing the next Angry Birds or beer-chug simulator? So high!&lt;/div&gt;&lt;div style="background-color: #fdfdfa; color: #080000; font-family: Georgia, 'Times New Roman', serif; line-height: 1.55em; margin-bottom: 1.2em; margin-top: 1.2em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;"&gt;Heck, with just a small investment of time and cash, it's not hard for would-be mobile moguls to turn a concept into a steady stream of cash. And thanks to today's app stores, it's never been easier to try your hand at becoming the next tech tycoon.&lt;/div&gt;&lt;div style="background-color: #fdfdfa; color: #080000; font-family: Georgia, 'Times New Roman', serif; line-height: 1.55em; margin-bottom: 1.2em; margin-top: 1.2em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;"&gt;Here's (almost) everything you need to know before you get started on your own app -- and what I wish I knew before I got into the game.&lt;/div&gt;&lt;div style="background-color: #fdfdfa; color: #080000; font-family: Georgia, 'Times New Roman', serif; line-height: 1.55em; margin-bottom: 1.2em; margin-top: 1.2em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;br /&gt;
&lt;a name='more'&gt;&lt;/a&gt;&lt;strong&gt;&lt;br /&gt;
&lt;/strong&gt;&lt;br /&gt;
&lt;strong&gt;1. What does it cost to make an app?&lt;/strong&gt;&lt;/div&gt;&lt;div style="background-color: #fdfdfa; color: #080000; font-family: Georgia, 'Times New Roman', serif; line-height: 1.55em; margin-bottom: 1.2em; margin-top: 1.2em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;"&gt;If you're new to the app game, prepare for some sticker shock. Making an app will cost you, at the very minimum, around $10,000. This is for a super-simple program — none of that fancy enterprise or social networking jibber-jabber. Even still, any app worth its weight in code will likely cost you closer to $20,000.&lt;/div&gt;&lt;div style="background-color: #fdfdfa; color: #080000; font-family: Georgia, 'Times New Roman', serif; line-height: 1.55em; margin-bottom: 1.2em; margin-top: 1.2em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;"&gt;Unless you have some basic design skills, you'll need to enlist the help of both a programmer and a designer. And these guys ain't cheap — particularly programmers who, thanks to a pronounced shortage of qualified coders, can pretty much name their prices. (A suggestion for those low on funds: Find some creative way to come up with the cash. I funded my app through Airbnb income.)&lt;/div&gt;&lt;div style="background-color: #fdfdfa; color: #080000; font-family: Georgia, 'Times New Roman', serif; line-height: 1.55em; margin-bottom: 1.2em; margin-top: 1.2em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;"&gt;You can try to offload some of your costs by offering your guys equity; on the other hand, everybody tries to get free (or close to free) apps by offering developers equity. So unless you can really sell them on the strength of your idea (or bring something totally rad to the table, such as a celebrity), you better be prepared to pony up some cash. Of course, adding in some equity as a bonus is never a bad idea, so you'll probably want to dish out some shares too.&lt;/div&gt;&lt;div style="background-color: #fdfdfa; color: #080000; font-family: Georgia, 'Times New Roman', serif; line-height: 1.55em; margin-bottom: 1.2em; margin-top: 1.2em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;"&gt;This basic supply/demand dynamic also means that many developers ask for some pretty insane terms. Some demand deals that involve a huge upfront payment in exchange for a few weeks (or even just days) of work. And if a decent developer isn't already working full time, it's not unreasonable to assume he's at least a little commitment-averse. So, if you're serious about making something beyond a quickie cash grab, find a developer you are sure will stay with the project for updates, and not abandon it the second it hits the store.&lt;/div&gt;&lt;div style="background-color: #fdfdfa; color: #080000; font-family: Georgia, 'Times New Roman', serif; line-height: 1.55em; margin-bottom: 1.2em; margin-top: 1.2em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;"&gt;And get it all in writing. If you don't want to hire a lawyer, find a boilerplate contract online or get one from somebody else who's gone through the process, and just swap in your names and numbers.&lt;/div&gt;&lt;div style="background-color: #fdfdfa; color: #080000; font-family: Georgia, 'Times New Roman', serif; line-height: 1.55em; margin-bottom: 1.2em; margin-top: 1.2em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;"&gt;If you can, you'll also want to work with people who are local to you -- or at least with people who are willing to join you for regular Skype chats or&amp;nbsp;&lt;a class="rdb-footnoted" href="http://mashable.com/category/google?cnn=yes" name="rdb-footnote-link-4" rel="nofollow" style="-webkit-tap-highlight-color: rgb(215, 220, 223); color: #9c0001; text-decoration: none;" target="_blank"&gt;Google&lt;/a&gt;&amp;nbsp;Hangouts. I had weekly beer summits with my coder and designer, which proved super helpful as we continued to fine-tune our app well into its development.&lt;/div&gt;&lt;div style="background-color: #fdfdfa; color: #080000; font-family: Georgia, 'Times New Roman', serif; line-height: 1.55em; margin-bottom: 1.2em; margin-top: 1.2em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;"&gt;One more unavoidable cost:&amp;nbsp;&lt;a class="rdb-footnoted" href="http://mashable.com/follow/topics/apple?cnn=yes" name="rdb-footnote-link-5" rel="nofollow" style="-webkit-tap-highlight-color: rgb(215, 220, 223); color: #9c0001; text-decoration: none;" target="_blank"&gt;Apple&lt;/a&gt;&amp;nbsp;charges $100 per year to hold onto a developer's account (which you need to publish your app). So be sure to reserve an extra Benjamin for your budget.&lt;/div&gt;&lt;div style="background-color: #fdfdfa; color: #080000; font-family: Georgia, 'Times New Roman', serif; line-height: 1.55em; margin-bottom: 1.2em; margin-top: 1.2em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;"&gt;&lt;strong&gt;2. What should you charge for your app?&lt;/strong&gt;&lt;/div&gt;&lt;div style="background-color: #fdfdfa; color: #080000; font-family: Georgia, 'Times New Roman', serif; line-height: 1.55em; margin-bottom: 1.2em; margin-top: 1.2em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;"&gt;I would consider starting one's app at or near $1.99. It's premium price, but it's also immensely satisfying to get more than a buck per download after Apple takes away its 30%. And, as with most things, it's a lot easier to lower the price later than it is to raise it.&lt;/div&gt;&lt;div style="background-color: #fdfdfa; color: #080000; font-family: Georgia, 'Times New Roman', serif; line-height: 1.55em; margin-bottom: 1.2em; margin-top: 1.2em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;"&gt;During the holiday period, we briefly played around with a special promotion that dropped our app price to $0.99. Predictably, this spiked our downloads, but it didn't actually raise our total revenue. Even on Christmas Day -- the single biggest download day for just about everybody — our revenue was actually higher a week or so later, once we had raised the price back to $1.99.&lt;/div&gt;&lt;div style="background-color: #fdfdfa; color: #080000; font-family: Georgia, 'Times New Roman', serif; line-height: 1.55em; margin-bottom: 1.2em; margin-top: 1.2em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;"&gt;The obvious exception: If your primary business model involves in-app purchases, ads or the like, you'll probably want to give your app away for free. After all, a quick glance at&amp;nbsp;&lt;a class="rdb-footnoted" href="http://mashable.com/2011/12/08/app-store-rewind-2011?cnn=yes" name="rdb-footnote-link-6" rel="nofollow" style="-webkit-tap-highlight-color: rgb(215, 220, 223); color: #9c0001; text-decoration: none;" target="_blank"&gt;Apple's top grossing charts&lt;/a&gt;&amp;nbsp;shows a whole bunch of free apps.&lt;/div&gt;&lt;div style="background-color: #fdfdfa; color: #080000; font-family: Georgia, 'Times New Roman', serif; line-height: 1.55em; margin-bottom: 1.2em; margin-top: 1.2em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;"&gt;&lt;strong&gt;3. When will you get paid?&lt;/strong&gt;&lt;/div&gt;&lt;div style="background-color: #fdfdfa; color: #080000; font-family: Georgia, 'Times New Roman', serif; line-height: 1.55em; margin-bottom: 1.2em; margin-top: 1.2em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;"&gt;Apple sends you cash one month at a time, up to 45 days after the month has ended. So, if your app goes live in January, you can expect your first kickback sometime in early March. Oh, and Apple only pays you if your earned amount totals at least $150, so you may have to wait before getting your first payment. Keep in mind, Apple only pays you through direct deposit.&lt;/div&gt;&lt;div style="background-color: #fdfdfa; color: #080000; font-family: Georgia, 'Times New Roman', serif; line-height: 1.55em; margin-bottom: 1.2em; margin-top: 1.2em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;"&gt;&lt;strong&gt;4. How do you write your iTunes description?&lt;/strong&gt;&lt;/div&gt;&lt;div style="background-color: #fdfdfa; color: #080000; font-family: Georgia, 'Times New Roman', serif; line-height: 1.55em; margin-bottom: 1.2em; margin-top: 1.2em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;"&gt;Don't try to rock the boat here. Take a look at a bunch of hit apps, and crib their formats. If it works for them, it'll work for you. Typically, this involves a quickie intro statement, press blurbs and a list of your key features. Then add some screenshots (the most interesting ones first) and call it a day.&lt;/div&gt;&lt;div style="background-color: #fdfdfa; color: #080000; font-family: Georgia, 'Times New Roman', serif; line-height: 1.55em; margin-bottom: 1.2em; margin-top: 1.2em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;"&gt;&lt;strong&gt;5. What's the best way to beta test?&lt;/strong&gt;&lt;/div&gt;&lt;div style="background-color: #fdfdfa; color: #080000; font-family: Georgia, 'Times New Roman', serif; line-height: 1.55em; margin-bottom: 1.2em; margin-top: 1.2em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;"&gt;Getting an unreleased app onto your friends' iPhones isn't the easiest thing in the world. My developer and I are in total agreement that the best method is a program called TestFlight, which makes it very easy to send build updates to registered devices, over the air.&lt;/div&gt;&lt;div style="background-color: #fdfdfa; color: #080000; font-family: Georgia, 'Times New Roman', serif; line-height: 1.55em; margin-bottom: 1.2em; margin-top: 1.2em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;"&gt;&lt;strong&gt;6. What happens when you get featured on iTunes?&lt;/strong&gt;&lt;/div&gt;&lt;div style="background-color: #fdfdfa; color: #080000; font-family: Georgia, 'Times New Roman', serif; line-height: 1.55em; margin-bottom: 1.2em; margin-top: 1.2em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;"&gt;Getting featured on iTunes is obviously awesome, but what exactly does it get you? When Apple included our app on its featured lists, we enjoyed a predictable flow of downloads almost identical in volume every single day we were parked there. Especially fascinating, the "New &amp;amp; Notable" list gave us almost exactly twice as many daily downloads as the "What's Hot" list. I'm assuming this is because, when you tap the "Featured" tab on the "App Store" app, "New &amp;amp; Notable" pops up by default.&lt;/div&gt;&lt;div style="background-color: #fdfdfa; color: #080000; font-family: Georgia, 'Times New Roman', serif; line-height: 1.55em; margin-bottom: 1.2em; margin-top: 1.2em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;"&gt;&lt;strong&gt;7. How do you get press?&lt;/strong&gt;&lt;/div&gt;&lt;div style="background-color: #fdfdfa; color: #080000; font-family: Georgia, 'Times New Roman', serif; line-height: 1.55em; margin-bottom: 1.2em; margin-top: 1.2em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;"&gt;As a longtime tech writer, the main advice I can give you in your pursuit for press is that less is more. If you think a site or publication would be into your app, don't e-mail the entire staff or the big boss — just find the writer who covers your category, briefly summarize your app in an email, and attach a download code (Apple gives you 50 for every update). Smaller sites may be more responsive than the big guys, and if you build up enough buzz, you can rest assured that the majors will come knocking.&lt;/div&gt;&lt;div style="background-color: #fdfdfa; color: #080000; font-family: Georgia, 'Times New Roman', serif; line-height: 1.55em; margin-bottom: 1.2em; margin-top: 1.2em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;"&gt;If a journalist doesn't get back to you, move on. And don't even touch that phone or personal e-mail address (unless that person is a freelancer) -- writers hate nothing more than phone or personal-inbox press pitches.&lt;/div&gt;&lt;div style="background-color: #fdfdfa; color: #080000; font-family: Georgia, 'Times New Roman', serif; line-height: 1.55em; margin-bottom: 1.2em; margin-top: 1.2em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;"&gt;Consider also producing an embeddable YouTube or Vimeo ad of some sort. Not only does this provide one more avenue for people to stumble upon your app, but it also gives bloggers something alive and colorful to toss into posts, which could increase the chances that they'll write about you. Keep it simple, and preferably, well under two minutes. And don't forget to promote over Twitter, Facebook, etc.&lt;/div&gt;&lt;div style="background-color: #fdfdfa; color: #080000; font-family: Georgia, 'Times New Roman', serif; line-height: 1.55em; margin-bottom: 1.2em; margin-top: 1.2em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;"&gt;&lt;strong&gt;8. How do you avoid the spam?&lt;/strong&gt;&lt;/div&gt;&lt;div style="background-color: #fdfdfa; color: #080000; font-family: Georgia, 'Times New Roman', serif; line-height: 1.55em; margin-bottom: 1.2em; margin-top: 1.2em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;"&gt;Within days of hitting the App Store, expect whichever email you linked to your iTunes developer's account to be pounded with spam. Most try to lure you into ponying over money in exchange for positive reviews, under the guise of "mobile marketing." Let's put it this way: If you don't regularly buy Viagra pills online, then you probably shouldn't give cash to these guys. Of course, if you're smart enough to make an app, you're smart enough to know this already.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4985412203514275539-476766018421063099?l=dilipray.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dilipray.blogspot.com/feeds/476766018421063099/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dilipray.blogspot.com/2012/02/8-things-you-should-know-before.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4985412203514275539/posts/default/476766018421063099?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4985412203514275539/posts/default/476766018421063099?v=2'/><link rel='alternate' type='text/html' href='http://dilipray.blogspot.com/2012/02/8-things-you-should-know-before.html' title='8 things you should know before building a mobile app'/><author><name>Ray CD</name><uri>https://profiles.google.com/102090886766399511065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-ITCEPwabzpY/AAAAAAAAAAI/AAAAAAAAB5Y/JQUCF52robg/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;DUUCQ304eyp7ImA9WhRbFU4.&quot;'><id>tag:blogger.com,1999:blog-4985412203514275539.post-6885059979672126560</id><published>2012-02-06T19:36:00.000+05:30</published><updated>2012-02-06T19:37:42.333+05:30</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2012-02-06T19:37:42.333+05:30</app:edited><category scheme='http://www.blogger.com/atom/ns#' term='Web'/><category scheme='http://www.blogger.com/atom/ns#' term='Basics'/><title>6 levels of web app interactivity</title><content type='html'>&lt;b style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;Level 0: Static&lt;/b&gt;&lt;span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;&amp;nbsp;A pure, read-only, static HTML experience. e.g.:&lt;/span&gt;&lt;a class="ot-anchor" href="http://isthewebdead.com/" style="background-color: white; color: #3366cc; cursor: pointer; font-family: arial, sans-serif; font-size: 13px; line-height: 18px; text-decoration: none;"&gt;http://isthewebdead.com&lt;/a&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;b style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;Level 1: CGI&lt;/b&gt;&lt;span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;&amp;nbsp;Any dynamic behaviour requires clicking on a link or submitting a form, then waiting for the server to produce a new page. e.g.&amp;nbsp;&lt;/span&gt;&lt;a class="ot-anchor" href="http://hackerne.ws/" style="background-color: white; color: #3366cc; cursor: pointer; font-family: arial, sans-serif; font-size: 13px; line-height: 18px; text-decoration: none;"&gt;http://hackerne.ws&lt;/a&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;b style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;Level 2: DHTML&lt;/b&gt;&lt;span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;&amp;nbsp;Lightweight JavaScript enhancement which doesn't impact on core functionality, such as client-side validation, visual effects, or analytics tags. e.g.&amp;nbsp;&lt;/span&gt;&lt;a class="ot-anchor" href="http://wikipedia.org/" style="background-color: white; color: #3366cc; cursor: pointer; font-family: arial, sans-serif; font-size: 13px; line-height: 18px; text-decoration: none;"&gt;http://wikipedia.org&lt;/a&gt;&lt;span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;.&lt;/span&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;b style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;Level 3: Hijax&lt;/b&gt;&lt;span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;&amp;nbsp;The progressive-enhancement approach where the server outputs full web pages, but they are enhanced ("hijacked") by client-side JavaScript to produce functionality not available to static clients. e.g.&amp;nbsp;&lt;/span&gt;&lt;a class="ot-anchor" href="http://flickr.com/" style="background-color: white; color: #3366cc; cursor: pointer; font-family: arial, sans-serif; font-size: 13px; line-height: 18px; text-decoration: none;"&gt;http://flickr.com&lt;/a&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;b style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;Level 4: Single Page App&lt;/b&gt;&lt;span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;&amp;nbsp;All UI logic and usually large chunks of business logic in the client. The server provides a purely RESTful exposure with no UI logic or state. e.g.&amp;nbsp;&lt;/span&gt;&lt;a class="ot-anchor" href="http://webwait.com/" style="background-color: white; color: #3366cc; cursor: pointer; font-family: arial, sans-serif; font-size: 13px; line-height: 18px; text-decoration: none;"&gt;http://webwait.com&lt;/a&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" /&gt;&lt;b style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;Level 5: Live App&lt;/b&gt;&lt;span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;&amp;nbsp;A single-page app reflecting live server state using Comet (specifically, XHR hacks, WebSockets, Server-Sent Events, or Flash/Java equivalents). e.g.&amp;nbsp;&lt;/span&gt;&lt;a class="ot-anchor" href="http://trello.com/" style="background-color: white; color: #3366cc; cursor: pointer; font-family: arial, sans-serif; font-size: 13px; line-height: 18px; text-decoration: none;"&gt;http://trello.com&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4985412203514275539-6885059979672126560?l=dilipray.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dilipray.blogspot.com/feeds/6885059979672126560/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dilipray.blogspot.com/2012/02/6-levels-of-web-app-interactivity.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4985412203514275539/posts/default/6885059979672126560?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4985412203514275539/posts/default/6885059979672126560?v=2'/><link rel='alternate' type='text/html' href='http://dilipray.blogspot.com/2012/02/6-levels-of-web-app-interactivity.html' title='6 levels of web app interactivity'/><author><name>Ray CD</name><uri>https://profiles.google.com/102090886766399511065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-ITCEPwabzpY/AAAAAAAAAAI/AAAAAAAAB5Y/JQUCF52robg/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;DU8HRnc_eSp7ImA9WhRbFU4.&quot;'><id>tag:blogger.com,1999:blog-4985412203514275539.post-8307898688946881299</id><published>2012-02-06T00:37:00.000+05:30</published><updated>2012-02-06T19:47:17.941+05:30</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2012-02-06T19:47:17.941+05:30</app:edited><category scheme='http://www.blogger.com/atom/ns#' term='Web'/><category scheme='http://www.blogger.com/atom/ns#' term='Layout'/><category scheme='http://www.blogger.com/atom/ns#' term='Design'/><title>40 Eye-Catching Dark Website Layouts</title><content type='html'>Web designers are constantly looking for hot new trends to catch their visitor’s attention. This list of exciting design trends has changed dramatically in the past 10 years, but dark-themed websites have always been in style. This color swatch combined with many different web elements is a surefire way to draw in attention. If you’re a fan of these deep-rich color schemes please spend some time perusing my design gallery.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h4 style="background-color: #fdfdfa; color: #080000; font-family: Georgia, 'Times New Roman', serif; font-size: 1.125em; line-height: 1.2778em; margin-bottom: 1.2778em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;"&gt;&lt;a class="rdb-footnoted" href="http://kiskolabs.com/#home" name="rdb-footnote-link-1" rel="nofollow" style="-webkit-tap-highlight-color: rgb(215, 220, 223); color: #9c0001; text-decoration: none;"&gt;Kisko Labs&lt;/a&gt;&lt;/h4&gt;&lt;div style="background-color: #fdfdfa; color: #080000; font-family: Georgia, 'Times New Roman', serif; font-size: 19px; line-height: 1.55em; margin-bottom: 1.2em; margin-top: 1.2em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;"&gt;&lt;a href="http://kiskolabs.com/#home" rel="nofollow" style="-webkit-tap-highlight-color: rgb(215, 220, 223); color: #cd0001; text-decoration: none;"&gt;&lt;img class="blockImage" src="http://spyrestudios.com/wp-content/uploads/01-kisko-labs.jpg" style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-color: rgb(212, 212, 212); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-color: rgb(212, 212, 212); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(212, 212, 212); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(212, 212, 212); border-top-style: solid; border-top-width: 1px; border-width: initial; clear: both; display: block; float: none; margin-left: auto; margin-right: auto; max-width: 100%; padding-bottom: 0.25em; padding-left: 0.25em; padding-right: 0.25em; padding-top: 0.25em; position: static;" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;h4 style="background-color: #fdfdfa; color: #080000; font-family: Georgia, 'Times New Roman', serif; font-size: 1.125em; line-height: 1.2778em; margin-bottom: 1.2778em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;"&gt;&lt;a class="rdb-footnoted" href="http://crafton.eu/outsource/index.html" name="rdb-footnote-link-2" rel="nofollow" style="-webkit-tap-highlight-color: rgb(215, 220, 223); color: #9c0001; text-decoration: none;"&gt;Crafton&lt;/a&gt;&lt;/h4&gt;&lt;div style="background-color: #fdfdfa; color: #080000; font-family: Georgia, 'Times New Roman', serif; font-size: 19px; line-height: 1.55em; margin-bottom: 1.2em; margin-top: 1.2em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;"&gt;&lt;a href="http://crafton.eu/outsource/index.html" rel="nofollow" style="-webkit-tap-highlight-color: rgb(215, 220, 223); color: #9c0001; text-decoration: none;"&gt;&lt;img class="blockImage" src="http://spyrestudios.com/wp-content/uploads/02-crafton.jpg" style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-color: rgb(212, 212, 212); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-color: rgb(212, 212, 212); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(212, 212, 212); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(212, 212, 212); border-top-style: solid; border-top-width: 1px; border-width: initial; clear: both; display: block; float: none; margin-left: auto; margin-right: auto; max-width: 100%; padding-bottom: 0.25em; padding-left: 0.25em; padding-right: 0.25em; padding-top: 0.25em; position: static;" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;h4 style="background-color: #fdfdfa; color: #080000; font-family: Georgia, 'Times New Roman', serif; font-size: 1.125em; line-height: 1.2778em; margin-bottom: 1.2778em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;"&gt;&lt;a class="rdb-footnoted" href="http://imga.me/" name="rdb-footnote-link-3" rel="nofollow" style="-webkit-tap-highlight-color: rgb(215, 220, 223); color: #9c0001; text-decoration: none;"&gt;ImGame for iOS&lt;/a&gt;&lt;/h4&gt;&lt;div style="background-color: #fdfdfa; color: #080000; font-family: Georgia, 'Times New Roman', serif; font-size: 19px; line-height: 1.55em; margin-bottom: 1.2em; margin-top: 1.2em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;"&gt;&lt;a href="http://imga.me/" rel="nofollow" style="-webkit-tap-highlight-color: rgb(215, 220, 223); color: #9c0001; text-decoration: none;"&gt;&lt;img class="blockImage" src="http://spyrestudios.com/wp-content/uploads/03-im-game.jpg" style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-color: rgb(212, 212, 212); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-color: rgb(212, 212, 212); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(212, 212, 212); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(212, 212, 212); border-top-style: solid; border-top-width: 1px; border-width: initial; clear: both; display: block; float: none; margin-left: auto; margin-right: auto; max-width: 100%; padding-bottom: 0.25em; padding-left: 0.25em; padding-right: 0.25em; padding-top: 0.25em; position: static;" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;h4 style="background-color: #fdfdfa; color: #080000; font-family: Georgia, 'Times New Roman', serif; font-size: 1.125em; line-height: 1.2778em; margin-bottom: 1.2778em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;"&gt;&lt;a class="rdb-footnoted" href="http://www.casavaello.com/en/index.php" name="rdb-footnote-link-4" rel="nofollow" style="-webkit-tap-highlight-color: rgb(215, 220, 223); color: #9c0001; text-decoration: none;"&gt;Casa Vaello&lt;/a&gt;&lt;/h4&gt;&lt;div style="background-color: #fdfdfa; color: #080000; font-family: Georgia, 'Times New Roman', serif; font-size: 19px; line-height: 1.55em; margin-bottom: 1.2em; margin-top: 1.2em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;"&gt;&lt;a href="http://www.casavaello.com/en/index.php" rel="nofollow" style="-webkit-tap-highlight-color: rgb(215, 220, 223); color: #9c0001; text-decoration: none;"&gt;&lt;img class="blockImage" src="http://spyrestudios.com/wp-content/uploads/04-cassa-vaello.jpg" style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-color: rgb(212, 212, 212); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-color: rgb(212, 212, 212); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(212, 212, 212); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(212, 212, 212); border-top-style: solid; border-top-width: 1px; border-width: initial; clear: both; display: block; float: none; margin-left: auto; margin-right: auto; max-width: 100%; padding-bottom: 0.25em; padding-left: 0.25em; padding-right: 0.25em; padding-top: 0.25em; position: static;" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;h4 style="background-color: #fdfdfa; color: #080000; font-family: Georgia, 'Times New Roman', serif; font-size: 1.125em; line-height: 1.2778em; margin-bottom: 1.2778em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;"&gt;&lt;a class="rdb-footnoted" href="http://ffffallback.com/" name="rdb-footnote-link-5" rel="nofollow" style="-webkit-tap-highlight-color: rgb(215, 220, 223); color: #9c0001; text-decoration: none;"&gt;FFFFALLBACK&lt;/a&gt;&lt;/h4&gt;&lt;div style="background-color: #fdfdfa; color: #080000; font-family: Georgia, 'Times New Roman', serif; font-size: 19px; line-height: 1.55em; margin-bottom: 1.2em; margin-top: 1.2em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;"&gt;&lt;a href="http://ffffallback.com/" rel="nofollow" style="-webkit-tap-highlight-color: rgb(215, 220, 223); color: #9c0001; text-decoration: none;"&gt;&lt;img class="blockImage" src="http://spyrestudios.com/wp-content/uploads/05-ffffallback.jpg" style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-color: rgb(212, 212, 212); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-color: rgb(212, 212, 212); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(212, 212, 212); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(212, 212, 212); border-top-style: solid; border-top-width: 1px; border-width: initial; clear: both; display: block; float: none; margin-left: auto; margin-right: auto; max-width: 100%; padding-bottom: 0.25em; padding-left: 0.25em; padding-right: 0.25em; padding-top: 0.25em; position: static;" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;h4 style="background-color: #fdfdfa; color: #080000; font-family: Georgia, 'Times New Roman', serif; font-size: 1.125em; line-height: 1.2778em; margin-bottom: 1.2778em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;"&gt;&lt;a class="rdb-footnoted" href="http://supermegaultragroovy.com/products/Capo/" name="rdb-footnote-link-6" rel="nofollow" style="-webkit-tap-highlight-color: rgb(215, 220, 223); color: #9c0001; text-decoration: none;"&gt;Capo for OSX&lt;/a&gt;&lt;/h4&gt;&lt;div style="background-color: #fdfdfa; color: #080000; font-family: Georgia, 'Times New Roman', serif; font-size: 19px; line-height: 1.55em; margin-bottom: 1.2em; margin-top: 1.2em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;"&gt;&lt;a href="http://supermegaultragroovy.com/products/Capo/" rel="nofollow" style="-webkit-tap-highlight-color: rgb(215, 220, 223); color: #9c0001; text-decoration: none;"&gt;&lt;img class="blockImage" src="http://spyrestudios.com/wp-content/uploads/06-capo-software-mac.jpg" style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-color: rgb(212, 212, 212); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-color: rgb(212, 212, 212); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(212, 212, 212); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(212, 212, 212); border-top-style: solid; border-top-width: 1px; border-width: initial; clear: both; display: block; float: none; margin-left: auto; margin-right: auto; max-width: 100%; padding-bottom: 0.25em; padding-left: 0.25em; padding-right: 0.25em; padding-top: 0.25em; position: static;" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;h4 style="background-color: #fdfdfa; color: #080000; font-family: Georgia, 'Times New Roman', serif; font-size: 1.125em; line-height: 1.2778em; margin-bottom: 1.2778em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;"&gt;&lt;a class="rdb-footnoted" href="http://abduzeedo.com/" name="rdb-footnote-link-7" rel="nofollow" style="-webkit-tap-highlight-color: rgb(215, 220, 223); color: #9c0001; text-decoration: none;"&gt;Abduzeedo&lt;/a&gt;&lt;/h4&gt;&lt;div style="background-color: #fdfdfa; color: #080000; font-family: Georgia, 'Times New Roman', serif; font-size: 19px; line-height: 1.55em; margin-bottom: 1.2em; margin-top: 1.2em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;"&gt;&lt;a href="http://abduzeedo.com/" rel="nofollow" style="-webkit-tap-highlight-color: rgb(215, 220, 223); color: #9c0001; text-decoration: none;"&gt;&lt;img class="blockImage" src="http://spyrestudios.com/wp-content/uploads/07-abduzeedo.jpg" style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-color: rgb(212, 212, 212); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-color: rgb(212, 212, 212); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(212, 212, 212); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(212, 212, 212); border-top-style: solid; border-top-width: 1px; border-width: initial; clear: both; display: block; float: none; margin-left: auto; margin-right: auto; max-width: 100%; padding-bottom: 0.25em; padding-left: 0.25em; padding-right: 0.25em; padding-top: 0.25em; position: static;" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;h4 style="background-color: #fdfdfa; color: #080000; font-family: Georgia, 'Times New Roman', serif; font-size: 1.125em; line-height: 1.2778em; margin-bottom: 1.2778em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;"&gt;&lt;a class="rdb-footnoted" href="http://www.grpackaging.it/" name="rdb-footnote-link-8" rel="nofollow" style="-webkit-tap-highlight-color: rgb(215, 220, 223); color: #9c0001; text-decoration: none;"&gt;GR Packaging&lt;/a&gt;&lt;/h4&gt;&lt;div style="background-color: #fdfdfa; color: #080000; font-family: Georgia, 'Times New Roman', serif; font-size: 19px; line-height: 1.55em; margin-bottom: 1.2em; margin-top: 1.2em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;"&gt;&lt;a href="http://www.grpackaging.it/" rel="nofollow" style="-webkit-tap-highlight-color: rgb(215, 220, 223); color: #9c0001; text-decoration: none;"&gt;&lt;img class="blockImage" src="http://spyrestudios.com/wp-content/uploads/08-gr-packaging.jpg" style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-color: rgb(212, 212, 212); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-color: rgb(212, 212, 212); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(212, 212, 212); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(212, 212, 212); border-top-style: solid; border-top-width: 1px; border-width: initial; clear: both; display: block; float: none; margin-left: auto; margin-right: auto; max-width: 100%; padding-bottom: 0.25em; padding-left: 0.25em; padding-right: 0.25em; padding-top: 0.25em; position: static;" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;h4 style="background-color: #fdfdfa; color: #080000; font-family: Georgia, 'Times New Roman', serif; font-size: 1.125em; line-height: 1.2778em; margin-bottom: 1.2778em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;"&gt;&lt;a class="rdb-footnoted" href="http://www.riffraff.tv/" name="rdb-footnote-link-9" rel="nofollow" style="-webkit-tap-highlight-color: rgb(215, 220, 223); color: #9c0001; text-decoration: none;"&gt;Riff Raff Web Design&lt;/a&gt;&lt;/h4&gt;&lt;div style="background-color: #fdfdfa; color: #080000; font-family: Georgia, 'Times New Roman', serif; font-size: 19px; line-height: 1.55em; margin-bottom: 1.2em; margin-top: 1.2em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;"&gt;&lt;a href="http://www.riffraff.tv/" rel="nofollow" style="-webkit-tap-highlight-color: rgb(215, 220, 223); color: #9c0001; text-decoration: none;"&gt;&lt;img class="blockImage" src="http://spyrestudios.com/wp-content/uploads/09-riff-raff-tv.jpg" style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-color: rgb(212, 212, 212); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-color: rgb(212, 212, 212); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(212, 212, 212); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(212, 212, 212); border-top-style: solid; border-top-width: 1px; border-width: initial; clear: both; display: block; float: none; margin-left: auto; margin-right: auto; max-width: 100%; padding-bottom: 0.25em; padding-left: 0.25em; padding-right: 0.25em; padding-top: 0.25em; position: static;" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;h4 style="background-color: #fdfdfa; color: #080000; font-family: Georgia, 'Times New Roman', serif; font-size: 1.125em; line-height: 1.2778em; margin-bottom: 1.2778em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;"&gt;&lt;a class="rdb-footnoted" href="http://abstraktion.co.uk/" name="rdb-footnote-link-10" rel="nofollow" style="-webkit-tap-highlight-color: rgb(215, 220, 223); color: #9c0001; text-decoration: none;"&gt;Abstraktion&lt;/a&gt;&lt;/h4&gt;&lt;div style="background-color: #fdfdfa; color: #080000; font-family: Georgia, 'Times New Roman', serif; font-size: 19px; line-height: 1.55em; margin-bottom: 1.2em; margin-top: 1.2em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;"&gt;&lt;a href="http://abstraktion.co.uk/" rel="nofollow" style="-webkit-tap-highlight-color: rgb(215, 220, 223); color: #9c0001; text-decoration: none;"&gt;&lt;img class="blockImage" src="http://spyrestudios.com/wp-content/uploads/10-abstraktion.jpg" style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-color: rgb(212, 212, 212); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-color: rgb(212, 212, 212); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(212, 212, 212); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(212, 212, 212); border-top-style: solid; border-top-width: 1px; border-width: initial; clear: both; display: block; float: none; margin-left: auto; margin-right: auto; max-width: 100%; padding-bottom: 0.25em; padding-left: 0.25em; padding-right: 0.25em; padding-top: 0.25em; position: static;" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;h4 style="background-color: #fdfdfa; color: #080000; font-family: Georgia, 'Times New Roman', serif; font-size: 1.125em; line-height: 1.2778em; margin-bottom: 1.2778em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;"&gt;&lt;a class="rdb-footnoted" href="http://www.cidesign.com.au/" name="rdb-footnote-link-11" rel="nofollow" style="-webkit-tap-highlight-color: rgb(215, 220, 223); color: #9c0001; text-decoration: none;"&gt;ci design&lt;/a&gt;&lt;/h4&gt;&lt;div style="background-color: #fdfdfa; color: #080000; font-family: Georgia, 'Times New Roman', serif; font-size: 19px; line-height: 1.55em; margin-bottom: 1.2em; margin-top: 1.2em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;"&gt;&lt;a href="http://www.cidesign.com.au/" rel="nofollow" style="-webkit-tap-highlight-color: rgb(215, 220, 223); color: #9c0001; text-decoration: none;"&gt;&lt;img class="blockImage" src="http://spyrestudios.com/wp-content/uploads/11-ci-design.jpg" style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-color: rgb(212, 212, 212); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-color: rgb(212, 212, 212); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(212, 212, 212); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(212, 212, 212); border-top-style: solid; border-top-width: 1px; border-width: initial; clear: both; display: block; float: none; margin-left: auto; margin-right: auto; max-width: 100%; padding-bottom: 0.25em; padding-left: 0.25em; padding-right: 0.25em; padding-top: 0.25em; position: static;" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;h4 style="background-color: #fdfdfa; color: #080000; font-family: Georgia, 'Times New Roman', serif; font-size: 1.125em; line-height: 1.2778em; margin-bottom: 1.2778em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;"&gt;&lt;a class="rdb-footnoted" href="http://www.wo-pro.net/" name="rdb-footnote-link-12" rel="nofollow" style="-webkit-tap-highlight-color: rgb(215, 220, 223); color: #9c0001; text-decoration: none;"&gt;wopro&lt;/a&gt;&lt;/h4&gt;&lt;div style="background-color: #fdfdfa; color: #080000; font-family: Georgia, 'Times New Roman', serif; font-size: 19px; line-height: 1.55em; margin-bottom: 1.2em; margin-top: 1.2em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;"&gt;&lt;a href="http://www.wo-pro.net/" rel="nofollow" style="-webkit-tap-highlight-color: rgb(215, 220, 223); color: #9c0001; text-decoration: none;"&gt;&lt;img class="blockImage" src="http://spyrestudios.com/wp-content/uploads/12-wo-pro.jpg" style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-color: rgb(212, 212, 212); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-color: rgb(212, 212, 212); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(212, 212, 212); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(212, 212, 212); border-top-style: solid; border-top-width: 1px; border-width: initial; clear: both; display: block; float: none; margin-left: auto; margin-right: auto; max-width: 100%; padding-bottom: 0.25em; padding-left: 0.25em; padding-right: 0.25em; padding-top: 0.25em; position: static;" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;h4 style="background-color: #fdfdfa; color: #080000; font-family: Georgia, 'Times New Roman', serif; font-size: 1.125em; line-height: 1.2778em; margin-bottom: 1.2778em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;"&gt;&lt;a class="rdb-footnoted" href="http://www.cockpitapp.com/" name="rdb-footnote-link-13" rel="nofollow" style="-webkit-tap-highlight-color: rgb(215, 220, 223); color: #9c0001; text-decoration: none;"&gt;Cockpit for Mac OS X&lt;/a&gt;&lt;/h4&gt;&lt;div style="background-color: #fdfdfa; color: #080000; font-family: Georgia, 'Times New Roman', serif; font-size: 19px; line-height: 1.55em; margin-bottom: 1.2em; margin-top: 1.2em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;"&gt;&lt;a href="http://www.cockpitapp.com/" rel="nofollow" style="-webkit-tap-highlight-color: rgb(215, 220, 223); color: #9c0001; text-decoration: none;"&gt;&lt;img class="blockImage" src="http://spyrestudios.com/wp-content/uploads/13-cockpit-app.jpg" style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-color: rgb(212, 212, 212); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-color: rgb(212, 212, 212); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(212, 212, 212); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(212, 212, 212); border-top-style: solid; border-top-width: 1px; border-width: initial; clear: both; display: block; float: none; margin-left: auto; margin-right: auto; max-width: 100%; padding-bottom: 0.25em; padding-left: 0.25em; padding-right: 0.25em; padding-top: 0.25em; position: static;" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;h4 style="background-color: #fdfdfa; color: #080000; font-family: Georgia, 'Times New Roman', serif; font-size: 1.125em; line-height: 1.2778em; margin-bottom: 1.2778em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;"&gt;&lt;a class="rdb-footnoted" href="http://versionsapp.com/" name="rdb-footnote-link-14" rel="nofollow" style="-webkit-tap-highlight-color: rgb(215, 220, 223); color: #9c0001; text-decoration: none;"&gt;Versions App&lt;/a&gt;&lt;/h4&gt;&lt;div style="background-color: #fdfdfa; color: #080000; font-family: Georgia, 'Times New Roman', serif; font-size: 19px; line-height: 1.55em; margin-bottom: 1.2em; margin-top: 1.2em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;"&gt;&lt;a href="http://versionsapp.com/" rel="nofollow" style="-webkit-tap-highlight-color: rgb(215, 220, 223); color: #9c0001; text-decoration: none;"&gt;&lt;img class="blockImage" src="http://spyrestudios.com/wp-content/uploads/14-versions-for-osx-subversion.jpg" style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-color: rgb(212, 212, 212); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-color: rgb(212, 212, 212); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(212, 212, 212); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(212, 212, 212); border-top-style: solid; border-top-width: 1px; border-width: initial; clear: both; display: block; float: none; margin-left: auto; margin-right: auto; max-width: 100%; padding-bottom: 0.25em; padding-left: 0.25em; padding-right: 0.25em; padding-top: 0.25em; position: static;" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;h4 style="background-color: #fdfdfa; color: #080000; font-family: Georgia, 'Times New Roman', serif; font-size: 1.125em; line-height: 1.2778em; margin-bottom: 1.2778em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;"&gt;&lt;a class="rdb-footnoted" href="http://www.taoeffect.com/espionage/" name="rdb-footnote-link-15" rel="nofollow" style="-webkit-tap-highlight-color: rgb(215, 220, 223); color: #9c0001; text-decoration: none;"&gt;Espionage&lt;/a&gt;&lt;/h4&gt;&lt;div style="background-color: #fdfdfa; color: #080000; font-family: Georgia, 'Times New Roman', serif; font-size: 19px; line-height: 1.55em; margin-bottom: 1.2em; margin-top: 1.2em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;"&gt;&lt;a href="http://www.taoeffect.com/espionage/" rel="nofollow" style="-webkit-tap-highlight-color: rgb(215, 220, 223); color: #9c0001; text-decoration: none;"&gt;&lt;img class="blockImage" src="http://spyrestudios.com/wp-content/uploads/15-espionage2-app.jpg" style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-color: rgb(212, 212, 212); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-color: rgb(212, 212, 212); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(212, 212, 212); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(212, 212, 212); border-top-style: solid; border-top-width: 1px; border-width: initial; clear: both; display: block; float: none; margin-left: auto; margin-right: auto; max-width: 100%; padding-bottom: 0.25em; padding-left: 0.25em; padding-right: 0.25em; padding-top: 0.25em; position: static;" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;h4 style="background-color: #fdfdfa; color: #080000; font-family: Georgia, 'Times New Roman', serif; font-size: 1.125em; line-height: 1.2778em; margin-bottom: 1.2778em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;"&gt;&lt;a class="rdb-footnoted" href="http://www.zennaware.com/cornerstone/index.php" name="rdb-footnote-link-16" rel="nofollow" style="-webkit-tap-highlight-color: rgb(215, 220, 223); color: #9c0001; text-decoration: none;"&gt;Cornerstone&lt;/a&gt;&lt;/h4&gt;&lt;div style="background-color: #fdfdfa; color: #080000; font-family: Georgia, 'Times New Roman', serif; font-size: 19px; line-height: 1.55em; margin-bottom: 1.2em; margin-top: 1.2em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;"&gt;&lt;a href="http://www.zennaware.com/cornerstone/index.php" rel="nofollow" style="-webkit-tap-highlight-color: rgb(215, 220, 223); color: #9c0001; text-decoration: none;"&gt;&lt;img class="blockImage" src="http://spyrestudios.com/wp-content/uploads/16-cornerstone-app.jpg" style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-color: rgb(212, 212, 212); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-color: rgb(212, 212, 212); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(212, 212, 212); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(212, 212, 212); border-top-style: solid; border-top-width: 1px; border-width: initial; clear: both; display: block; float: none; margin-left: auto; margin-right: auto; max-width: 100%; padding-bottom: 0.25em; padding-left: 0.25em; padding-right: 0.25em; padding-top: 0.25em; position: static;" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;h4 style="background-color: #fdfdfa; color: #080000; font-family: Georgia, 'Times New Roman', serif; font-size: 1.125em; line-height: 1.2778em; margin-bottom: 1.2778em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;"&gt;&lt;a class="rdb-footnoted" href="http://www.plexapp.com/" name="rdb-footnote-link-17" rel="nofollow" style="-webkit-tap-highlight-color: rgb(215, 220, 223); color: #9c0001; text-decoration: none;"&gt;Plex&lt;/a&gt;&lt;/h4&gt;&lt;div style="background-color: #fdfdfa; color: #080000; font-family: Georgia, 'Times New Roman', serif; font-size: 19px; line-height: 1.55em; margin-bottom: 1.2em; margin-top: 1.2em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;"&gt;&lt;a href="http://www.plexapp.com/" rel="nofollow" style="-webkit-tap-highlight-color: rgb(215, 220, 223); color: #9c0001; text-decoration: none;"&gt;&lt;img class="blockImage" src="http://spyrestudios.com/wp-content/uploads/17-plexapp.jpg" style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-color: rgb(212, 212, 212); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-color: rgb(212, 212, 212); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(212, 212, 212); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(212, 212, 212); border-top-style: solid; border-top-width: 1px; border-width: initial; clear: both; display: block; float: none; margin-left: auto; margin-right: auto; max-width: 100%; padding-bottom: 0.25em; padding-left: 0.25em; padding-right: 0.25em; padding-top: 0.25em; position: static;" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;h4 style="background-color: #fdfdfa; color: #080000; font-family: Georgia, 'Times New Roman', serif; font-size: 1.125em; line-height: 1.2778em; margin-bottom: 1.2778em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;"&gt;&lt;a class="rdb-footnoted" href="http://www.jetcooper.com/" name="rdb-footnote-link-18" rel="nofollow" style="-webkit-tap-highlight-color: rgb(215, 220, 223); color: #9c0001; text-decoration: none;"&gt;Jet Cooper&lt;/a&gt;&lt;/h4&gt;&lt;div style="background-color: #fdfdfa; color: #080000; font-family: Georgia, 'Times New Roman', serif; font-size: 19px; line-height: 1.55em; margin-bottom: 1.2em; margin-top: 1.2em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;"&gt;&lt;a href="http://www.jetcooper.com/" rel="nofollow" style="-webkit-tap-highlight-color: rgb(215, 220, 223); color: #9c0001; text-decoration: none;"&gt;&lt;img class="blockImage" src="http://spyrestudios.com/wp-content/uploads/18-jet-cooper.jpg" style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-color: rgb(212, 212, 212); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-color: rgb(212, 212, 212); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(212, 212, 212); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(212, 212, 212); border-top-style: solid; border-top-width: 1px; border-width: initial; clear: both; display: block; float: none; margin-left: auto; margin-right: auto; max-width: 100%; padding-bottom: 0.25em; padding-left: 0.25em; padding-right: 0.25em; padding-top: 0.25em; position: static;" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;h4 style="background-color: #fdfdfa; color: #080000; font-family: Georgia, 'Times New Roman', serif; font-size: 1.125em; line-height: 1.2778em; margin-bottom: 1.2778em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;"&gt;&lt;a class="rdb-footnoted" href="http://designers.mx/" name="rdb-footnote-link-19" rel="nofollow" style="-webkit-tap-highlight-color: rgb(215, 220, 223); color: #9c0001; text-decoration: none;"&gt;Designers MX&lt;/a&gt;&lt;/h4&gt;&lt;div style="background-color: #fdfdfa; color: #080000; font-family: Georgia, 'Times New Roman', serif; font-size: 19px; line-height: 1.55em; margin-bottom: 1.2em; margin-top: 1.2em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;"&gt;&lt;a href="http://designers.mx/" rel="nofollow" style="-webkit-tap-highlight-color: rgb(215, 220, 223); color: #9c0001; text-decoration: none;"&gt;&lt;img class="blockImage" src="http://spyrestudios.com/wp-content/uploads/19-designersmx.jpg" style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-color: rgb(212, 212, 212); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-color: rgb(212, 212, 212); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(212, 212, 212); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(212, 212, 212); border-top-style: solid; border-top-width: 1px; border-width: initial; clear: both; display: block; float: none; margin-left: auto; margin-right: auto; max-width: 100%; padding-bottom: 0.25em; padding-left: 0.25em; padding-right: 0.25em; padding-top: 0.25em; position: static;" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;h4 style="background-color: #fdfdfa; color: #080000; font-family: Georgia, 'Times New Roman', serif; font-size: 1.125em; line-height: 1.2778em; margin-bottom: 1.2778em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;"&gt;&lt;a class="rdb-footnoted" href="http://labubbly.com/" name="rdb-footnote-link-20" rel="nofollow" style="-webkit-tap-highlight-color: rgb(215, 220, 223); color: #9c0001; text-decoration: none;"&gt;LA Bubbly&lt;/a&gt;&lt;/h4&gt;&lt;div style="background-color: #fdfdfa; color: #080000; font-family: Georgia, 'Times New Roman', serif; font-size: 19px; line-height: 1.55em; margin-bottom: 1.2em; margin-top: 1.2em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;"&gt;&lt;a href="http://labubbly.com/" rel="nofollow" style="-webkit-tap-highlight-color: rgb(215, 220, 223); color: #9c0001; text-decoration: none;"&gt;&lt;img class="blockImage" src="http://spyrestudios.com/wp-content/uploads/20-labubbly.jpg" style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-color: rgb(212, 212, 212); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-color: rgb(212, 212, 212); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(212, 212, 212); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(212, 212, 212); border-top-style: solid; border-top-width: 1px; border-width: initial; clear: both; display: block; float: none; margin-left: auto; margin-right: auto; max-width: 100%; padding-bottom: 0.25em; padding-left: 0.25em; padding-right: 0.25em; padding-top: 0.25em; position: static;" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;h4 style="background-color: #fdfdfa; color: #080000; font-family: Georgia, 'Times New Roman', serif; font-size: 1.125em; line-height: 1.2778em; margin-bottom: 1.2778em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;"&gt;&lt;a class="rdb-footnoted" href="http://www.thismanslife.co.uk/" name="rdb-footnote-link-21" rel="nofollow" style="-webkit-tap-highlight-color: rgb(215, 220, 223); color: #9c0001; text-decoration: none;"&gt;This man’s life&lt;/a&gt;&lt;/h4&gt;&lt;div style="background-color: #fdfdfa; color: #080000; font-family: Georgia, 'Times New Roman', serif; font-size: 19px; line-height: 1.55em; margin-bottom: 1.2em; margin-top: 1.2em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;"&gt;&lt;a href="http://www.thismanslife.co.uk/" rel="nofollow" style="-webkit-tap-highlight-color: rgb(215, 220, 223); color: #9c0001; text-decoration: none;"&gt;&lt;img class="blockImage" src="http://spyrestudios.com/wp-content/uploads/21-thismanslife.jpg" style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-color: rgb(212, 212, 212); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-color: rgb(212, 212, 212); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(212, 212, 212); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(212, 212, 212); border-top-style: solid; border-top-width: 1px; border-width: initial; clear: both; display: block; float: none; margin-left: auto; margin-right: auto; max-width: 100%; padding-bottom: 0.25em; padding-left: 0.25em; padding-right: 0.25em; padding-top: 0.25em; position: static;" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;h4 style="background-color: #fdfdfa; color: #080000; font-family: Georgia, 'Times New Roman', serif; font-size: 1.125em; line-height: 1.2778em; margin-bottom: 1.2778em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;"&gt;&lt;a class="rdb-footnoted" href="http://donq.com/" name="rdb-footnote-link-22" rel="nofollow" style="-webkit-tap-highlight-color: rgb(215, 220, 223); color: #9c0001; text-decoration: none;"&gt;DonQ Rum&lt;/a&gt;&lt;/h4&gt;&lt;div style="background-color: #fdfdfa; color: #080000; font-family: Georgia, 'Times New Roman', serif; font-size: 19px; line-height: 1.55em; margin-bottom: 1.2em; margin-top: 1.2em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;"&gt;&lt;a href="http://donq.com/" rel="nofollow" style="-webkit-tap-highlight-color: rgb(215, 220, 223); color: #9c0001; text-decoration: none;"&gt;&lt;img class="blockImage" src="http://spyrestudios.com/wp-content/uploads/22-donq-rum.jpg" style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-color: rgb(212, 212, 212); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-color: rgb(212, 212, 212); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(212, 212, 212); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(212, 212, 212); border-top-style: solid; border-top-width: 1px; border-width: initial; clear: both; display: block; float: none; margin-left: auto; margin-right: auto; max-width: 100%; padding-bottom: 0.25em; padding-left: 0.25em; padding-right: 0.25em; padding-top: 0.25em; position: static;" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;h4 style="background-color: #fdfdfa; color: #080000; font-family: Georgia, 'Times New Roman', serif; font-size: 1.125em; line-height: 1.2778em; margin-bottom: 1.2778em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;"&gt;&lt;a class="rdb-footnoted" href="http://www.roggeundpott.de/" name="rdb-footnote-link-23" rel="nofollow" style="-webkit-tap-highlight-color: rgb(215, 220, 223); color: #9c0001; text-decoration: none;"&gt;Rogge &amp;amp; Pott&lt;/a&gt;&lt;/h4&gt;&lt;div style="background-color: #fdfdfa; color: #080000; font-family: Georgia, 'Times New Roman', serif; font-size: 19px; line-height: 1.55em; margin-bottom: 1.2em; margin-top: 1.2em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;"&gt;&lt;a href="http://www.roggeundpott.de/" rel="nofollow" style="-webkit-tap-highlight-color: rgb(215, 220, 223); color: #9c0001; text-decoration: none;"&gt;&lt;img class="blockImage" src="http://spyrestudios.com/wp-content/uploads/23-rogge-pott.jpg" style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-color: rgb(212, 212, 212); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-color: rgb(212, 212, 212); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(212, 212, 212); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(212, 212, 212); border-top-style: solid; border-top-width: 1px; border-width: initial; clear: both; display: block; float: none; margin-left: auto; margin-right: auto; max-width: 100%; padding-bottom: 0.25em; padding-left: 0.25em; padding-right: 0.25em; padding-top: 0.25em; position: static;" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;h4 style="background-color: #fdfdfa; color: #080000; font-family: Georgia, 'Times New Roman', serif; font-size: 1.125em; line-height: 1.2778em; margin-bottom: 1.2778em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;"&gt;&lt;a class="rdb-footnoted" href="http://alienbikes.com/" name="rdb-footnote-link-24" rel="nofollow" style="-webkit-tap-highlight-color: rgb(215, 220, 223); color: #9c0001; text-decoration: none;"&gt;Alien Bikes&lt;/a&gt;&lt;/h4&gt;&lt;div style="background-color: #fdfdfa; color: #080000; font-family: Georgia, 'Times New Roman', serif; font-size: 19px; line-height: 1.55em; margin-bottom: 1.2em; margin-top: 1.2em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;"&gt;&lt;a href="http://alienbikes.com/" rel="nofollow" style="-webkit-tap-highlight-color: rgb(215, 220, 223); color: #9c0001; text-decoration: none;"&gt;&lt;img class="blockImage" src="http://spyrestudios.com/wp-content/uploads/24-alien-bikes.jpg" style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-color: rgb(212, 212, 212); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-color: rgb(212, 212, 212); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(212, 212, 212); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(212, 212, 212); border-top-style: solid; border-top-width: 1px; border-width: initial; clear: both; display: block; float: none; margin-left: auto; margin-right: auto; max-width: 100%; padding-bottom: 0.25em; padding-left: 0.25em; padding-right: 0.25em; padding-top: 0.25em; position: static;" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;h4 style="background-color: #fdfdfa; color: #080000; font-family: Georgia, 'Times New Roman', serif; font-size: 1.125em; line-height: 1.2778em; margin-bottom: 1.2778em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;"&gt;&lt;a class="rdb-footnoted" href="http://www.jamesgarner.co.uk/" name="rdb-footnote-link-25" rel="nofollow" style="-webkit-tap-highlight-color: rgb(215, 220, 223); color: #9c0001; text-decoration: none;"&gt;James Garner portfolio&lt;/a&gt;&lt;/h4&gt;&lt;div style="background-color: #fdfdfa; color: #080000; font-family: Georgia, 'Times New Roman', serif; font-size: 19px; line-height: 1.55em; margin-bottom: 1.2em; margin-top: 1.2em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;"&gt;&lt;a href="http://www.jamesgarner.co.uk/" rel="nofollow" style="-webkit-tap-highlight-color: rgb(215, 220, 223); color: #9c0001; text-decoration: none;"&gt;&lt;img class="blockImage" src="http://spyrestudios.com/wp-content/uploads/25-james-garner.jpg" style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-color: rgb(212, 212, 212); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-color: rgb(212, 212, 212); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(212, 212, 212); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(212, 212, 212); border-top-style: solid; border-top-width: 1px; border-width: initial; clear: both; display: block; float: none; margin-left: auto; margin-right: auto; max-width: 100%; padding-bottom: 0.25em; padding-left: 0.25em; padding-right: 0.25em; padding-top: 0.25em; position: static;" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;h4 style="background-color: #fdfdfa; color: #080000; font-family: Georgia, 'Times New Roman', serif; font-size: 1.125em; line-height: 1.2778em; margin-bottom: 1.2778em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;"&gt;&lt;a class="rdb-footnoted" href="http://blog.pokkisam.com/" name="rdb-footnote-link-26" rel="nofollow" style="-webkit-tap-highlight-color: rgb(215, 220, 223); color: #9c0001; text-decoration: none;"&gt;Pokkisam&lt;/a&gt;&lt;/h4&gt;&lt;div style="background-color: #fdfdfa; color: #080000; font-family: Georgia, 'Times New Roman', serif; font-size: 19px; line-height: 1.55em; margin-bottom: 1.2em; margin-top: 1.2em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;"&gt;&lt;a href="http://blog.pokkisam.com/" rel="nofollow" style="-webkit-tap-highlight-color: rgb(215, 220, 223); color: #9c0001; text-decoration: none;"&gt;&lt;img class="blockImage" src="http://spyrestudios.com/wp-content/uploads/26-pokkisam-blog.jpg" style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-color: rgb(212, 212, 212); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-color: rgb(212, 212, 212); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(212, 212, 212); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(212, 212, 212); border-top-style: solid; border-top-width: 1px; border-width: initial; clear: both; display: block; float: none; margin-left: auto; margin-right: auto; max-width: 100%; padding-bottom: 0.25em; padding-left: 0.25em; padding-right: 0.25em; padding-top: 0.25em; position: static;" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;h4 style="background-color: #fdfdfa; color: #080000; font-family: Georgia, 'Times New Roman', serif; font-size: 1.125em; line-height: 1.2778em; margin-bottom: 1.2778em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;"&gt;&lt;a class="rdb-footnoted" href="http://piratalondon.com/" name="rdb-footnote-link-27" rel="nofollow" style="-webkit-tap-highlight-color: rgb(215, 220, 223); color: #9c0001; text-decoration: none;"&gt;Pirata Digital&lt;/a&gt;&lt;/h4&gt;&lt;div style="background-color: #fdfdfa; color: #080000; font-family: Georgia, 'Times New Roman', serif; font-size: 19px; line-height: 1.55em; margin-bottom: 1.2em; margin-top: 1.2em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;"&gt;&lt;a href="http://piratalondon.com/" rel="nofollow" style="-webkit-tap-highlight-color: rgb(215, 220, 223); color: #9c0001; text-decoration: none;"&gt;&lt;img class="blockImage" src="http://spyrestudios.com/wp-content/uploads/27-pirata-london.jpg" style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-color: rgb(212, 212, 212); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-color: rgb(212, 212, 212); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(212, 212, 212); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(212, 212, 212); border-top-style: solid; border-top-width: 1px; border-width: initial; clear: both; display: block; float: none; margin-left: auto; margin-right: auto; max-width: 100%; padding-bottom: 0.25em; padding-left: 0.25em; padding-right: 0.25em; padding-top: 0.25em; position: static;" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;h4 style="background-color: #fdfdfa; color: #080000; font-family: Georgia, 'Times New Roman', serif; font-size: 1.125em; line-height: 1.2778em; margin-bottom: 1.2778em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;"&gt;&lt;a class="rdb-footnoted" href="http://www.madetokill.com/" name="rdb-footnote-link-28" rel="nofollow" style="-webkit-tap-highlight-color: rgb(215, 220, 223); color: #9c0001; text-decoration: none;"&gt;MadeToKill&lt;/a&gt;&lt;/h4&gt;&lt;div style="background-color: #fdfdfa; color: #080000; font-family: Georgia, 'Times New Roman', serif; font-size: 19px; line-height: 1.55em; margin-bottom: 1.2em; margin-top: 1.2em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;"&gt;&lt;a href="http://www.madetokill.com/" rel="nofollow" style="-webkit-tap-highlight-color: rgb(215, 220, 223); color: #9c0001; text-decoration: none;"&gt;&lt;img class="blockImage" src="http://spyrestudios.com/wp-content/uploads/28-made-to-kill.jpg" style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-color: rgb(212, 212, 212); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-color: rgb(212, 212, 212); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(212, 212, 212); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(212, 212, 212); border-top-style: solid; border-top-width: 1px; border-width: initial; clear: both; display: block; float: none; margin-left: auto; margin-right: auto; max-width: 100%; padding-bottom: 0.25em; padding-left: 0.25em; padding-right: 0.25em; padding-top: 0.25em; position: static;" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;h4 style="background-color: #fdfdfa; color: #080000; font-family: Georgia, 'Times New Roman', serif; font-size: 1.125em; line-height: 1.2778em; margin-bottom: 1.2778em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;"&gt;&lt;a class="rdb-footnoted" href="https://youzee.com/es/the-show-must-go-home" name="rdb-footnote-link-29" rel="nofollow" style="-webkit-tap-highlight-color: rgb(215, 220, 223); color: #9c0001; text-decoration: none;"&gt;Youzee&lt;/a&gt;&lt;/h4&gt;&lt;div style="background-color: #fdfdfa; color: #080000; font-family: Georgia, 'Times New Roman', serif; font-size: 19px; line-height: 1.55em; margin-bottom: 1.2em; margin-top: 1.2em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;"&gt;&lt;a href="https://youzee.com/es/the-show-must-go-home" rel="nofollow" style="-webkit-tap-highlight-color: rgb(215, 220, 223); color: #9c0001; text-decoration: none;"&gt;&lt;img class="blockImage" src="http://spyrestudios.com/wp-content/uploads/29-youzee.jpg" style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-color: rgb(212, 212, 212); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-color: rgb(212, 212, 212); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(212, 212, 212); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(212, 212, 212); border-top-style: solid; border-top-width: 1px; border-width: initial; clear: both; display: block; float: none; margin-left: auto; margin-right: auto; max-width: 100%; padding-bottom: 0.25em; padding-left: 0.25em; padding-right: 0.25em; padding-top: 0.25em; position: static;" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;h4 style="background-color: #fdfdfa; color: #080000; font-family: Georgia, 'Times New Roman', serif; font-size: 1.125em; line-height: 1.2778em; margin-bottom: 1.2778em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;"&gt;&lt;a class="rdb-footnoted" href="http://www.kineda.com/" name="rdb-footnote-link-30" rel="nofollow" style="-webkit-tap-highlight-color: rgb(215, 220, 223); color: #9c0001; text-decoration: none;"&gt;Kineda&lt;/a&gt;&lt;/h4&gt;&lt;div style="background-color: #fdfdfa; color: #080000; font-family: Georgia, 'Times New Roman', serif; font-size: 19px; line-height: 1.55em; margin-bottom: 1.2em; margin-top: 1.2em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;"&gt;&lt;a href="http://www.kineda.com/" rel="nofollow" style="-webkit-tap-highlight-color: rgb(215, 220, 223); color: #9c0001; text-decoration: none;"&gt;&lt;img class="blockImage" src="http://spyrestudios.com/wp-content/uploads/30-kineda.jpg" style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-color: rgb(212, 212, 212); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-color: rgb(212, 212, 212); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(212, 212, 212); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(212, 212, 212); border-top-style: solid; border-top-width: 1px; border-width: initial; clear: both; display: block; float: none; margin-left: auto; margin-right: auto; max-width: 100%; padding-bottom: 0.25em; padding-left: 0.25em; padding-right: 0.25em; padding-top: 0.25em; position: static;" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;h4 style="background-color: #fdfdfa; color: #080000; font-family: Georgia, 'Times New Roman', serif; font-size: 1.125em; line-height: 1.2778em; margin-bottom: 1.2778em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;"&gt;&lt;a class="rdb-footnoted" href="http://www.cobracreative.com/" name="rdb-footnote-link-31" rel="nofollow" style="-webkit-tap-highlight-color: rgb(215, 220, 223); color: #9c0001; text-decoration: none;"&gt;Cobra Creative&lt;/a&gt;&lt;/h4&gt;&lt;div style="background-color: #fdfdfa; color: #080000; font-family: Georgia, 'Times New Roman', serif; font-size: 19px; line-height: 1.55em; margin-bottom: 1.2em; margin-top: 1.2em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;"&gt;&lt;a href="http://www.cobracreative.com/" rel="nofollow" style="-webkit-tap-highlight-color: rgb(215, 220, 223); color: #9c0001; text-decoration: none;"&gt;&lt;img class="blockImage" src="http://spyrestudios.com/wp-content/uploads/31-cobra-creative.jpg" style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-color: rgb(212, 212, 212); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-color: rgb(212, 212, 212); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(212, 212, 212); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(212, 212, 212); border-top-style: solid; border-top-width: 1px; border-width: initial; clear: both; display: block; float: none; margin-left: auto; margin-right: auto; max-width: 100%; padding-bottom: 0.25em; padding-left: 0.25em; padding-right: 0.25em; padding-top: 0.25em; position: static;" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;h4 style="background-color: #fdfdfa; color: #080000; font-family: Georgia, 'Times New Roman', serif; font-size: 1.125em; line-height: 1.2778em; margin-bottom: 1.2778em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;"&gt;&lt;a class="rdb-footnoted" href="http://www.indubitablee.com/skewedicons/index.html" name="rdb-footnote-link-32" rel="nofollow" style="-webkit-tap-highlight-color: rgb(215, 220, 223); color: #9c0001; text-decoration: none;"&gt;Skewed Icons&lt;/a&gt;&lt;/h4&gt;&lt;div style="background-color: #fdfdfa; color: #080000; font-family: Georgia, 'Times New Roman', serif; font-size: 19px; line-height: 1.55em; margin-bottom: 1.2em; margin-top: 1.2em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;"&gt;&lt;a href="http://www.indubitablee.com/skewedicons/index.html" rel="nofollow" style="-webkit-tap-highlight-color: rgb(215, 220, 223); color: #9c0001; text-decoration: none;"&gt;&lt;img class="blockImage" src="http://spyrestudios.com/wp-content/uploads/32-skewed-icons.jpg" style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-color: rgb(212, 212, 212); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-color: rgb(212, 212, 212); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(212, 212, 212); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(212, 212, 212); border-top-style: solid; border-top-width: 1px; border-width: initial; clear: both; display: block; float: none; margin-left: auto; margin-right: auto; max-width: 100%; padding-bottom: 0.25em; padding-left: 0.25em; padding-right: 0.25em; padding-top: 0.25em; position: static;" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;h4 style="background-color: #fdfdfa; color: #080000; font-family: Georgia, 'Times New Roman', serif; font-size: 1.125em; line-height: 1.2778em; margin-bottom: 1.2778em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;"&gt;&lt;a class="rdb-footnoted" href="http://www.justdot.gr/" name="rdb-footnote-link-33" rel="nofollow" style="-webkit-tap-highlight-color: rgb(215, 220, 223); color: #9c0001; text-decoration: none;"&gt;Justdot&lt;/a&gt;&lt;/h4&gt;&lt;div style="background-color: #fdfdfa; color: #080000; font-family: Georgia, 'Times New Roman', serif; font-size: 19px; line-height: 1.55em; margin-bottom: 1.2em; margin-top: 1.2em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;"&gt;&lt;a href="http://www.justdot.gr/" rel="nofollow" style="-webkit-tap-highlight-color: rgb(215, 220, 223); color: #9c0001; text-decoration: none;"&gt;&lt;img class="blockImage" src="http://spyrestudios.com/wp-content/uploads/33-just-dot.jpg" style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-color: rgb(212, 212, 212); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-color: rgb(212, 212, 212); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(212, 212, 212); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(212, 212, 212); border-top-style: solid; border-top-width: 1px; border-width: initial; clear: both; display: block; float: none; margin-left: auto; margin-right: auto; max-width: 100%; padding-bottom: 0.25em; padding-left: 0.25em; padding-right: 0.25em; padding-top: 0.25em; position: static;" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;h4 style="background-color: #fdfdfa; color: #080000; font-family: Georgia, 'Times New Roman', serif; font-size: 1.125em; line-height: 1.2778em; margin-bottom: 1.2778em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;"&gt;&lt;a class="rdb-footnoted" href="http://www.vyniknite.sk/" name="rdb-footnote-link-34" rel="nofollow" style="-webkit-tap-highlight-color: rgb(215, 220, 223); color: #9c0001; text-decoration: none;"&gt;vyniknite.sk&lt;/a&gt;&lt;/h4&gt;&lt;div style="background-color: #fdfdfa; color: #080000; font-family: Georgia, 'Times New Roman', serif; font-size: 19px; line-height: 1.55em; margin-bottom: 1.2em; margin-top: 1.2em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;"&gt;&lt;a href="http://www.vyniknite.sk/" rel="nofollow" style="-webkit-tap-highlight-color: rgb(215, 220, 223); color: #9c0001; text-decoration: none;"&gt;&lt;img class="blockImage" src="http://spyrestudios.com/wp-content/uploads/34-vyniknite.jpg" style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-color: rgb(212, 212, 212); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-color: rgb(212, 212, 212); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(212, 212, 212); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(212, 212, 212); border-top-style: solid; border-top-width: 1px; border-width: initial; clear: both; display: block; float: none; margin-left: auto; margin-right: auto; max-width: 100%; padding-bottom: 0.25em; padding-left: 0.25em; padding-right: 0.25em; padding-top: 0.25em; position: static;" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;h4 style="background-color: #fdfdfa; color: #080000; font-family: Georgia, 'Times New Roman', serif; font-size: 1.125em; line-height: 1.2778em; margin-bottom: 1.2778em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;"&gt;&lt;a class="rdb-footnoted" href="http://lubuskihiphop.com/" name="rdb-footnote-link-35" rel="nofollow" style="-webkit-tap-highlight-color: rgb(215, 220, 223); color: #9c0001; text-decoration: none;"&gt;Lubuski Hip Hop&lt;/a&gt;&lt;/h4&gt;&lt;div style="background-color: #fdfdfa; color: #080000; font-family: Georgia, 'Times New Roman', serif; font-size: 19px; line-height: 1.55em; margin-bottom: 1.2em; margin-top: 1.2em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;"&gt;&lt;a href="http://lubuskihiphop.com/" rel="nofollow" style="-webkit-tap-highlight-color: rgb(215, 220, 223); color: #9c0001; text-decoration: none;"&gt;&lt;img class="blockImage" src="http://spyrestudios.com/wp-content/uploads/35-lubuski-hip-hop.jpg" style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-color: rgb(212, 212, 212); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-color: rgb(212, 212, 212); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(212, 212, 212); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(212, 212, 212); border-top-style: solid; border-top-width: 1px; border-width: initial; clear: both; display: block; float: none; margin-left: auto; margin-right: auto; max-width: 100%; padding-bottom: 0.25em; padding-left: 0.25em; padding-right: 0.25em; padding-top: 0.25em; position: static;" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;h4 style="background-color: #fdfdfa; color: #080000; font-family: Georgia, 'Times New Roman', serif; font-size: 1.125em; line-height: 1.2778em; margin-bottom: 1.2778em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;"&gt;&lt;a class="rdb-footnoted" href="http://www.ne-web.com/" name="rdb-footnote-link-36" rel="nofollow" style="-webkit-tap-highlight-color: rgb(215, 220, 223); color: #9c0001; text-decoration: none;"&gt;Newcastle Web Design&lt;/a&gt;&lt;/h4&gt;&lt;div style="background-color: #fdfdfa; color: #080000; font-family: Georgia, 'Times New Roman', serif; font-size: 19px; line-height: 1.55em; margin-bottom: 1.2em; margin-top: 1.2em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;"&gt;&lt;a href="http://www.ne-web.com/" rel="nofollow" style="-webkit-tap-highlight-color: rgb(215, 220, 223); color: #9c0001; text-decoration: none;"&gt;&lt;img class="blockImage" src="http://spyrestudios.com/wp-content/uploads/36-newcastle-web-design.jpg" style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-color: rgb(212, 212, 212); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-color: rgb(212, 212, 212); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(212, 212, 212); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(212, 212, 212); border-top-style: solid; border-top-width: 1px; border-width: initial; clear: both; display: block; float: none; margin-left: auto; margin-right: auto; max-width: 100%; padding-bottom: 0.25em; padding-left: 0.25em; padding-right: 0.25em; padding-top: 0.25em; position: static;" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;h4 style="background-color: #fdfdfa; color: #080000; font-family: Georgia, 'Times New Roman', serif; font-size: 1.125em; line-height: 1.2778em; margin-bottom: 1.2778em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;"&gt;&lt;a class="rdb-footnoted" href="http://www.42angels.com/" name="rdb-footnote-link-37" rel="nofollow" style="-webkit-tap-highlight-color: rgb(215, 220, 223); color: #9c0001; text-decoration: none;"&gt;42 Angels&lt;/a&gt;&lt;/h4&gt;&lt;div style="background-color: #fdfdfa; color: #080000; font-family: Georgia, 'Times New Roman', serif; font-size: 19px; line-height: 1.55em; margin-bottom: 1.2em; margin-top: 1.2em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;"&gt;&lt;a href="http://www.42angels.com/" rel="nofollow" style="-webkit-tap-highlight-color: rgb(215, 220, 223); color: #9c0001; text-decoration: none;"&gt;&lt;img class="blockImage" src="http://spyrestudios.com/wp-content/uploads/37-42-angels.jpg" style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-color: rgb(212, 212, 212); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-color: rgb(212, 212, 212); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(212, 212, 212); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(212, 212, 212); border-top-style: solid; border-top-width: 1px; border-width: initial; clear: both; display: block; float: none; margin-left: auto; margin-right: auto; max-width: 100%; padding-bottom: 0.25em; padding-left: 0.25em; padding-right: 0.25em; padding-top: 0.25em; position: static;" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;h4 style="background-color: #fdfdfa; color: #080000; font-family: Georgia, 'Times New Roman', serif; font-size: 1.125em; line-height: 1.2778em; margin-bottom: 1.2778em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;"&gt;&lt;a class="rdb-footnoted" href="http://kettlenyc.com/" name="rdb-footnote-link-38" rel="nofollow" style="-webkit-tap-highlight-color: rgb(215, 220, 223); color: #9c0001; text-decoration: none;"&gt;Kettle NYC&lt;/a&gt;&lt;/h4&gt;&lt;div style="background-color: #fdfdfa; color: #080000; font-family: Georgia, 'Times New Roman', serif; font-size: 19px; line-height: 1.55em; margin-bottom: 1.2em; margin-top: 1.2em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;"&gt;&lt;a href="http://kettlenyc.com/" rel="nofollow" style="-webkit-tap-highlight-color: rgb(215, 220, 223); color: #9c0001; text-decoration: none;"&gt;&lt;img class="blockImage" src="http://spyrestudios.com/wp-content/uploads/38-kettle-nyc.jpg" style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-color: rgb(212, 212, 212); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-color: rgb(212, 212, 212); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(212, 212, 212); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(212, 212, 212); border-top-style: solid; border-top-width: 1px; border-width: initial; clear: both; display: block; float: none; margin-left: auto; margin-right: auto; max-width: 100%; padding-bottom: 0.25em; padding-left: 0.25em; padding-right: 0.25em; padding-top: 0.25em; position: static;" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;h4 style="background-color: #fdfdfa; color: #080000; font-family: Georgia, 'Times New Roman', serif; font-size: 1.125em; line-height: 1.2778em; margin-bottom: 1.2778em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;"&gt;&lt;a class="rdb-footnoted" href="http://www.carbonads.net/" name="rdb-footnote-link-39" rel="nofollow" style="-webkit-tap-highlight-color: rgb(215, 220, 223); color: #9c0001; text-decoration: none;"&gt;Carbon Ads&lt;/a&gt;&lt;/h4&gt;&lt;div style="background-color: #fdfdfa; color: #080000; font-family: Georgia, 'Times New Roman', serif; font-size: 19px; line-height: 1.55em; margin-bottom: 1.2em; margin-top: 1.2em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;"&gt;&lt;a href="http://www.carbonads.net/" rel="nofollow" style="-webkit-tap-highlight-color: rgb(215, 220, 223); color: #9c0001; text-decoration: none;"&gt;&lt;img class="blockImage" src="http://spyrestudios.com/wp-content/uploads/39-ads-via-carbon.jpg" style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-color: rgb(212, 212, 212); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-color: rgb(212, 212, 212); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(212, 212, 212); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(212, 212, 212); border-top-style: solid; border-top-width: 1px; border-width: initial; clear: both; display: block; float: none; margin-left: auto; margin-right: auto; max-width: 100%; padding-bottom: 0.25em; padding-left: 0.25em; padding-right: 0.25em; padding-top: 0.25em; position: static;" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;h4 style="background-color: #fdfdfa; color: #080000; font-family: Georgia, 'Times New Roman', serif; font-size: 1.125em; line-height: 1.2778em; margin-bottom: 1.2778em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;"&gt;&lt;a class="rdb-footnoted" href="http://www.visualboxsite.com/" name="rdb-footnote-link-40" rel="nofollow" style="-webkit-tap-highlight-color: rgb(215, 220, 223); color: #9c0001; text-decoration: none;"&gt;Visualbox&lt;/a&gt;&lt;/h4&gt;&lt;div style="background-color: #fdfdfa; color: #080000; font-family: Georgia, 'Times New Roman', serif; font-size: 19px; line-height: 1.55em; margin-bottom: 1.2em; margin-top: 1.2em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;"&gt;&lt;a href="http://www.visualboxsite.com/" rel="nofollow" style="-webkit-tap-highlight-color: rgb(215, 220, 223); color: #9c0001; text-decoration: none;"&gt;&lt;img class="blockImage" src="http://spyrestudios.com/wp-content/uploads/40-visual-box.jpg" style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-color: rgb(212, 212, 212); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-color: rgb(212, 212, 212); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(212, 212, 212); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(212, 212, 212); border-top-style: solid; border-top-width: 1px; border-width: initial; clear: both; display: block; float: none; margin-left: auto; margin-right: auto; max-width: 100%; padding-bottom: 0.25em; padding-left: 0.25em; padding-right: 0.25em; padding-top: 0.25em; position: static;" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4985412203514275539-8307898688946881299?l=dilipray.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dilipray.blogspot.com/feeds/8307898688946881299/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dilipray.blogspot.com/2012/02/40-eye-catching-dark-website-layouts.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4985412203514275539/posts/default/8307898688946881299?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4985412203514275539/posts/default/8307898688946881299?v=2'/><link rel='alternate' type='text/html' href='http://dilipray.blogspot.com/2012/02/40-eye-catching-dark-website-layouts.html' title='40 Eye-Catching Dark Website Layouts'/><author><name>Ray CD</name><uri>https://profiles.google.com/102090886766399511065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-ITCEPwabzpY/AAAAAAAAAAI/AAAAAAAAB5Y/JQUCF52robg/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;AkEAQnc9eip7ImA9WhRbFEs.&quot;'><id>tag:blogger.com,1999:blog-4985412203514275539.post-1925087024101012238</id><published>2012-02-06T00:06:00.001+05:30</published><updated>2012-02-06T00:34:03.962+05:30</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2012-02-06T00:34:03.962+05:30</app:edited><category scheme='http://www.blogger.com/atom/ns#' term='Spamming'/><category scheme='http://www.blogger.com/atom/ns#' term='Facebook'/><category scheme='http://www.blogger.com/atom/ns#' term='Basics'/><title>My First Year Fighting Spam by Clément Genzmer</title><content type='html'>Fighting spam is really an arms race. As technology evolves, new threats emerge and keeping up is an absolute necessity. The Site Integrity team at Facebook works to protect people from spam, scams, account compromises, and other forms of abuse by building real-time classification systems that process millions of interactions per second and investigate and respond to new threats.&lt;br /&gt;
&lt;br /&gt;
At the beginning of 2011, I joined a new sub-team on the very front line of the war against spam—Recon &amp;amp; Response (SI-RAR). This team is constantly fighting against the biggest and most pressing threats out there, and when things are quiet, we build more defenses. Here's a look at some of the attacks we worked on last year and the new systems we built to combat emerging threats.&lt;br /&gt;
&lt;br /&gt;
&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-size: large;"&gt;Fake accounts&lt;/span&gt;&lt;br /&gt;
When I first joined SI-RAR, I immediately started battling a fake account attack. Typically, spammers pose as attractive women to have their friend requests accepted and then use this friendship to send spam. Spammers will go to great lengths to create accounts that look as real as possible, &amp;nbsp;generating fake backgrounds, fake photos, and even fake conversations. In this particular case, a website for Russian brides created fake accounts to promote its services. We had already done a considerable amount of work to identify and shut down these accounts before a single friend request could be sent, but this case was different because these accounts would not send friend requests, but rather comment on some public threads in hopes of receiving a friend request. I learned very quickly that it is very common for attackers to react promptly to the protection we put in place—sometimes within hours. So, I cut my SI-RAR teeth by tweaking our systems often and disabling all of these fake accounts.&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-size: large;"&gt;Social engineering attacks&lt;/span&gt;&lt;br /&gt;
In May, we faced a new form of an attack now known as "self-XSS." Security engineers have known for a while that social engineering attacks (where you trick or deceive people) have the potential to be bigger and more dangerous than attacks leveraging an actual security hole. Normally, one of these attackers will use a fraudulent hook to lure people (shocking Justin Bieber video, free iPad 3s, gift cards, free airline tickets, etc.) and then ask them to copy and paste code to access these special items. However, this code is a piece of malicious JavaScript that allows the spammer to post on person's profile and their friends' profiles.&lt;br /&gt;
&lt;br /&gt;
Contrary to a typical cross-site scripting (XSS) vulnerability, which is a security vulnerability in Facebook's code that would have to be fixed, with self-XSS there is nothing to "fix". We've talked to browser teams across the web and they have made progress, but so have the spammers. Right now, the attacker directly asks people to open the JavaScript console, thereby circumventing some of the newer browser protections. Whenever we detect that someone has been tricked, we put them in a special flow to explain what happened to their browser during this attack and at what point their account was compromised. One important lesson I learned here is that you really cannot take for granted that everyone knows what Javascript is. And as a result, security cannot be an afterthought, it has to be carefully designed within the product.&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-size: large;"&gt;Monitoring&lt;/span&gt;&lt;br /&gt;
As you can imagine, attacks do not spike on Wednesdays at 2:00 p.m. when everyone is at their desks, ready for the smallest incident—that would be too simple. They usually start on Friday night, and by the time you open your computer on Saturday, the attack is well under way. Spammers are located all over the world, especially in countries where it is hard to prosecute them. They have day jobs, very often in computer security, and they are always planning strikes around times we are less likely to be at work. Data and automation are our best friends in this world and we use these tools to constantly monitor all negative interactions happening on the site (friend requests being declined, messages reported as spam, etc.). On top of that, an important part of my job is to research and predict what is going to come next and plan for the attacks that we don't know about yet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-size: large;"&gt;Malicious extension&lt;/span&gt;&lt;br /&gt;
Last month, we noticed a significant change from self-XSS to malicious browser extension. The upside is that we blocked self-XSS well enough that the attackers had to find a new vector for spam and changed to something with a lot more friction. This browser extension is essentially a virus that people install on their computer under the illusion they are installing a video plugin. We have been working with the browser vendors to fight these extensions and are deploying more advanced counter measures all the time.&lt;br /&gt;
&lt;br /&gt;
And so this was 2011. We saw old attacks declining (drive-by download) and new attacks showing up (self-XSS), and we've put new protections in place that we will continue to iterate on this year. However, a team of security engineers will never be as effective as millions of users aware of security issues. To learn more about how to better leverage our tools to secure your account, check out ways to take action here &amp;lt;https:&amp;gt;.&amp;lt;/https:&amp;gt;&lt;br /&gt;
&lt;br /&gt;
My team works hard to build spam protection that will secure everyone's account, and with more than 800 million people using Facebook, this is a considerable challenge. But everyone on my team is always on-call, ready to fight. I joined Site Integrity because I liked ML problems and thought I could have a big impact working on security, and two years later, every day still brings a new set of challenges.&lt;br /&gt;
&lt;br /&gt;
About the Author :&lt;br /&gt;
&lt;br /&gt;
&lt;div class="instant_search_title fsl fwb fcb" style="background-color: white; color: #333333; font-family: 'lucida grande', tahoma, verdana, arial, sans-serif; font-size: 13px; font-weight: bold; text-align: left;"&gt;&lt;a data-hovercard="/ajax/hovercard/user.php?id=787218879" href="http://www.facebook.com/clement.genzmer" style="color: #3b5998; cursor: pointer; text-decoration: none;"&gt;Clément Genzmer&lt;/a&gt;&lt;/div&gt;&lt;div class="fsm fwn fcg" style="background-color: white; color: grey; font-family: 'lucida grande', tahoma, verdana, arial, sans-serif; font-size: 11px; line-height: 14px; text-align: left;"&gt;&lt;div class="fsm fwn fcg"&gt;École Polytechnique · Facebook&amp;nbsp;&lt;/div&gt;&lt;div class="fsm fwn fcg"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="fsm fwn fcg"&gt;&lt;span style="color: #333333; font-size: 13px; line-height: 18px;"&gt;Here is a post he wrote a post for the facebook engineering blog. It is a sneak peek in the world of spam fighting&lt;/span&gt;&lt;/div&gt;&lt;div class="fsm fwn fcg"&gt;&lt;span style="color: #333333; font-size: 13px; line-height: 18px;"&gt;- Thanks to Frederic Wolens,&amp;nbsp;&lt;/span&gt;&lt;a data-hovercard="/ajax/hovercard/user.php?id=216105" href="http://www.facebook.com/pedram" style="color: #3b5998; cursor: pointer; font-size: 13px; line-height: 18px; text-decoration: none;"&gt;Pedram Keyani&lt;/a&gt;&lt;span style="color: #333333; font-size: 13px; line-height: 18px;"&gt;&amp;nbsp;and Alex Hollander for their feedback and edits!&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4985412203514275539-1925087024101012238?l=dilipray.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dilipray.blogspot.com/feeds/1925087024101012238/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dilipray.blogspot.com/2012/02/my-first-year-fighting-spam-by-clement.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4985412203514275539/posts/default/1925087024101012238?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4985412203514275539/posts/default/1925087024101012238?v=2'/><link rel='alternate' type='text/html' href='http://dilipray.blogspot.com/2012/02/my-first-year-fighting-spam-by-clement.html' title='My First Year Fighting Spam by Clément Genzmer'/><author><name>Ray CD</name><uri>https://profiles.google.com/102090886766399511065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-ITCEPwabzpY/AAAAAAAAAAI/AAAAAAAAB5Y/JQUCF52robg/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;D0IGQ385fip7ImA9WhRbGUo.&quot;'><id>tag:blogger.com,1999:blog-4985412203514275539.post-1498120374766094920</id><published>2012-02-01T22:57:00.001+05:30</published><updated>2012-02-11T21:22:02.126+05:30</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2012-02-11T21:22:02.126+05:30</app:edited><category scheme='http://www.blogger.com/atom/ns#' term='Tutorial'/><category scheme='http://www.blogger.com/atom/ns#' term='Development'/><category scheme='http://www.blogger.com/atom/ns#' term='Basics'/><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft'/><title>Developing basic Metro style apps (JavaScript)</title><content type='html'>&lt;span style="color: #2a2a2a; font-family: 'Segoe UI', 'Lucida Grande', Verdana, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 18px;"&gt;This section walks you through the steps to create a complete but basic Metro style app using JavaScript. Metro style apps are focused, fluid, and elegant. From the new Start screen to new UI layout and controls, the presentation of your app is about showing off what it's great at.&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #2a2a2a; font-family: 'Segoe UI', 'Lucida Grande', Verdana, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 18px;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;ol style="font-family: 'Segoe UI', 'Lucida Grande', Verdana, Arial, Helvetica, sans-serif; font-size: 12px; margin-bottom: 0px; margin-left: 40px; margin-right: 0px; margin-top: 0px; padding-bottom: 15px; padding-left: 0px; padding-top: 15px;"&gt;&lt;li style="padding-bottom: 10px;"&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/windows/apps/br211362.aspx" style="color: #03697a; text-decoration: none;"&gt;Creating a UI&lt;/a&gt;&lt;div style="color: #2a2a2a; line-height: 18px; padding-bottom: 15px;"&gt;Learn how to create a user interface for your app.&lt;/div&gt;&lt;/li&gt;
&lt;li style="padding-bottom: 10px;"&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/windows/apps/br211372.aspx" style="color: #03697a; text-decoration: none;"&gt;Responding to user input&lt;/a&gt;&lt;div style="color: #2a2a2a; line-height: 18px; padding-bottom: 15px;"&gt;Learn how to respond to touch, keyboard, mouse, and ink.&lt;/div&gt;&lt;/li&gt;
&lt;li style="padding-bottom: 10px;"&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/windows/apps/br229561.aspx" style="color: #03697a; text-decoration: none;"&gt;Accessing files and data&lt;/a&gt;&lt;div style="color: #2a2a2a; line-height: 18px; padding-bottom: 15px;"&gt;Learn how to read, write, and save to files, as well as how to manipulate XML data.&lt;/div&gt;&lt;/li&gt;
&lt;li style="padding-bottom: 10px;"&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/windows/apps/br229540.aspx" style="color: #03697a; text-decoration: none;"&gt;Using async programming patterns&lt;/a&gt;&lt;div style="color: #2a2a2a; line-height: 18px; padding-bottom: 15px;"&gt;Learn how to keep your app responsive with asynchronous programming.&lt;/div&gt;&lt;/li&gt;
&lt;li style="padding-bottom: 10px;"&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/windows/apps/hh465145.aspx" style="color: #03697a; text-decoration: none;"&gt;Managing the application lifecycle&lt;/a&gt;&lt;div style="color: #2a2a2a; line-height: 18px; padding-bottom: 15px;"&gt;Learn how to launch, suspend, and resume your app while keeping app data safe and fresh.&lt;/div&gt;&lt;/li&gt;
&lt;li style="padding-bottom: 10px;"&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/windows/apps/hh465228.aspx" style="color: #03697a; text-decoration: none;"&gt;Defining application resources&lt;/a&gt;&lt;div style="color: #2a2a2a; line-height: 18px; padding-bottom: 15px;"&gt;Learn how to define your app's resources to improve maintainability and localization.&lt;/div&gt;&lt;/li&gt;
&lt;li style="padding-bottom: 10px;"&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/windows/apps/hh454036.aspx" style="color: #03697a; text-decoration: none;"&gt;Packaging your app&lt;/a&gt;&lt;div style="color: #2a2a2a; line-height: 18px; padding-bottom: 15px;"&gt;Learn how to use Visual Studio to create an app manifest and package your app.&lt;/div&gt;&lt;/li&gt;
&lt;li style="padding-bottom: 10px;"&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/windows/apps/hh441481.aspx" style="color: #03697a; text-decoration: none;"&gt;Debugging and testing apps&lt;/a&gt;&lt;div style="color: #2a2a2a; line-height: 18px; padding-bottom: 15px;"&gt;Learn how to use tools to debug and test your app.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4985412203514275539-1498120374766094920?l=dilipray.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dilipray.blogspot.com/feeds/1498120374766094920/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dilipray.blogspot.com/2012/02/developing-basic-metro-style-apps.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4985412203514275539/posts/default/1498120374766094920?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4985412203514275539/posts/default/1498120374766094920?v=2'/><link rel='alternate' type='text/html' href='http://dilipray.blogspot.com/2012/02/developing-basic-metro-style-apps.html' title='Developing basic Metro style apps (JavaScript)'/><author><name>Ray CD</name><uri>https://profiles.google.com/102090886766399511065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-ITCEPwabzpY/AAAAAAAAAAI/AAAAAAAAB5Y/JQUCF52robg/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry></feed>