<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Blog posts from Oshyn, Inc</title>
	<atom:link href="http://oshyninc.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://oshyninc.wordpress.com</link>
	<description>Innovative business solutions for the web, mobile &#38; enterprise technology platforms.</description>
	<lastBuildDate>Wed, 25 Jan 2012 20:10:10 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='oshyninc.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://1.gravatar.com/blavatar/783879e3204ff266653ecdc48ecb7e7f?s=96&#038;d=http%3A%2F%2Fs2.wp.com%2Fi%2Fbuttonw-com.png</url>
		<title>Blog posts from Oshyn, Inc</title>
		<link>http://oshyninc.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://oshyninc.wordpress.com/osd.xml" title="Blog posts from Oshyn, Inc" />
	<atom:link rel='hub' href='http://oshyninc.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Using Sitecore WebControl to Customize Google Calendar Reminder Button</title>
		<link>http://oshyninc.wordpress.com/2012/01/25/using-sitecore-webcontrol-to-customize-google-calendar-reminder-button/</link>
		<comments>http://oshyninc.wordpress.com/2012/01/25/using-sitecore-webcontrol-to-customize-google-calendar-reminder-button/#comments</comments>
		<pubDate>Wed, 25 Jan 2012 20:09:59 +0000</pubDate>
		<dc:creator>The Oshyn Team</dc:creator>
				<category><![CDATA[sitecore]]></category>
		<category><![CDATA[google calendar]]></category>
		<category><![CDATA[webcontrol]]></category>

		<guid isPermaLink="false">http://oshyninc.wordpress.com/?p=781</guid>
		<description><![CDATA[WebControls allow the creation of reusable atomic components that fits well with the needs of semi-static HTML components. For this example of how to use WebControls in semi-static HTML components, we have created a Google Calendar Reminder button that can easily be reused/expanded. The code is a basic Sitecore WebControl with some custom parameters for [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=oshyninc.wordpress.com&amp;blog=7413847&amp;post=781&amp;subd=oshyninc&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<div>
<div>
<p><img class="alignright" src="http://oshyn.com/blogResources/AlexandraBarcelona/sitecore-webcontrols-google-calendar_New.png" alt="Oshyn WebControls Sitecore Google Calendar" longdesc="WebControls Sitecore Google Calendar" width="175" height="116" />WebControls allow the creation of reusable atomic components that fits well with the needs of semi-static HTML components. For this example of how to use WebControls in semi-static HTML components, we have created a Google Calendar Reminder button that can easily be reused/expanded. The code is a basic Sitecore WebControl with some custom parameters for setting the start/end times, location, details, title and item of the event.</p>
<p>Here is the code:</p>
<div>
<div id="highlighter_943347">
<div></div>
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td>
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div>5</div>
<div>6</div>
<div>7</div>
<div>8</div>
<div>9</div>
<div>10</div>
<div>11</div>
<div>12</div>
<div>13</div>
<div>14</div>
<div>15</div>
<div>16</div>
<div>17</div>
<div>18</div>
<div>19</div>
<div>20</div>
<div>21</div>
<div>22</div>
<div>23</div>
<div>24</div>
<div>25</div>
<div>26</div>
<div>27</div>
<div>28</div>
<div>29</div>
<div>30</div>
<div>31</div>
<div>32</div>
<div>33</div>
<div>34</div>
<div>35</div>
<div>36</div>
<div>37</div>
<div>38</div>
<div>39</div>
<div>40</div>
<div>41</div>
<div>42</div>
<div>43</div>
<div>44</div>
<div>45</div>
<div>46</div>
<div>47</div>
<div>48</div>
<div>49</div>
<div>50</div>
<div>51</div>
<div>52</div>
<div>53</div>
<div>54</div>
<div>55</div>
<div>56</div>
<div>57</div>
<div>58</div>
<div>59</div>
<div>60</div>
<div>61</div>
<div>62</div>
<div>63</div>
<div>64</div>
<div>65</div>
<div>66</div>
<div>67</div>
<div>68</div>
<div>69</div>
<div>70</div>
<div>71</div>
<div>72</div>
<div>73</div>
<div>74</div>
<div>75</div>
<div>76</div>
<div>77</div>
<div>78</div>
<div>79</div>
<div>80</div>
<div>81</div>
<div>82</div>
<div>83</div>
<div>84</div>
<div>85</div>
<div>86</div>
<div>87</div>
<div>88</div>
<div>89</div>
<div>90</div>
<div>91</div>
<div>92</div>
<div>93</div>
<div>94</div>
<div>95</div>
<div>96</div>
<div>97</div>
<div>98</div>
<div>99</div>
<div>100</div>
<div>101</div>
<div>102</div>
<div>103</div>
<div>104</div>
<div>105</div>
<div>106</div>
<div>107</div>
<div>108</div>
<div>109</div>
<div>110</div>
<div>111</div>
<div>112</div>
<div>113</div>
<div>114</div>
<div>115</div>
<div>116</div>
<div>117</div>
<div>118</div>
<div>119</div>
<div>120</div>
</td>
<td>
<div>
<div><code>using</code> <code>System;</code></div>
<div><code>using</code> <code>System.Collections.Generic;</code></div>
<div><code>using</code> <code>System.Linq;</code></div>
<div><code>using</code> <code>System.Web;</code></div>
<div><code>using</code> <code>Sitecore.Web.UI;</code></div>
<div><code>using</code> <code>System.ComponentModel;</code></div>
<div><code>using</code> <code>System.Collections.Specialized;</code></div>
<div><code>using</code> <code>Sitecore.Data.Items;</code></div>
<div><code>using</code> <code>Sitecore.Data.Fields;</code></div>
<div><code>using</code> <code>Sitecore.Diagnostics;</code></div>
<div><code>using</code> <code>Sitecore.Data;</code></div>
<div></div>
<div><code>namespace</code> <code>Oshyn.Sitecore.WebControls</code></div>
<div><code>{</code></div>
<div><code>    </code><code>public</code> <code>class</code> <code>GoogleCalendarReminder : WebControl</code></div>
<div><code>    </code><code>{</code></div>
<div><code>        </code><code>private</code> <code>readonly</code> <code>string</code> <code>googleCalendarReminderHtml = </code><code>"&lt;a href="</code><code>http:</code><code>//www.google.com/calendar/event%7B0%7D"&gt;&lt;img alt="" src="%7B1%7D"&gt;&lt;/a&gt;";</code></div>
<div><code>        </code><code>private</code> <code>readonly</code> <code>string</code> <code>googleCalendarButton = </code><code>"<a href="http://www.google.com/calendar/images/ext/gc_button2.gif">http://www.google.com/calendar/images/ext/gc_button2.gif</a>"</code><code>;</code></div>
<div><code>        </code><code>private</code> <code>string</code> <code>startDateTime = </code><code>string</code><code>.Empty;</code></div>
<div><code>        </code><code>private</code> <code>string</code> <code>endDateTime = </code><code>string</code><code>.Empty;</code></div>
<div><code>        </code><code>private</code> <code>string</code> <code>title = </code><code>string</code><code>.Empty;</code></div>
<div><code>        </code><code>private</code> <code>string</code> <code>location = </code><code>string</code><code>.Empty;</code></div>
<div><code>        </code><code>private</code> <code>string</code> <code>details = </code><code>string</code><code>.Empty;</code></div>
<div><code>        </code><code>private</code> <code>string</code> <code>itemId = </code><code>string</code><code>.Empty;</code></div>
<div></div>
<div><code>        </code><code>[Category(</code><code>"Method"</code><code>), Description(</code><code>"Start DateTime for the Event"</code><code>)]</code></div>
<div><code>        </code><code>public</code> <code>String StartDateTime</code></div>
<div><code>        </code><code>{</code></div>
<div><code>            </code><code>get</code> <code>{ </code><code>return</code> <code>startDateTime; }</code></div>
<div><code>            </code><code>set</code> <code>{ startDateTime = value; }</code></div>
<div><code>        </code><code>}</code></div>
<div></div>
<div><code>        </code><code>[Category(</code><code>"Method"</code><code>), Description(</code><code>"End DateTime for the Event"</code><code>)]</code></div>
<div><code>        </code><code>public</code> <code>String EndDateTime</code></div>
<div><code>        </code><code>{</code></div>
<div><code>            </code><code>get</code> <code>{ </code><code>return</code> <code>endDateTime; }</code></div>
<div><code>            </code><code>set</code> <code>{ endDateTime = value; }</code></div>
<div><code>        </code><code>}</code></div>
<div></div>
<div><code>        </code><code>[Category(</code><code>"Method"</code><code>), Description(</code><code>"Title for the Event"</code><code>)]</code></div>
<div><code>        </code><code>public</code> <code>String Title</code></div>
<div><code>        </code><code>{</code></div>
<div><code>            </code><code>get</code> <code>{ </code><code>return</code> <code>title; }</code></div>
<div><code>            </code><code>set</code> <code>{ title = value; }</code></div>
<div><code>        </code><code>}</code></div>
<div></div>
<div><code>        </code><code>[Category(</code><code>"Method"</code><code>), Description(</code><code>"Location for the Event"</code><code>)]</code></div>
<div><code>        </code><code>public</code> <code>String Location</code></div>
<div><code>        </code><code>{</code></div>
<div><code>            </code><code>get</code> <code>{ </code><code>return</code> <code>location; }</code></div>
<div><code>            </code><code>set</code> <code>{ location = value; }</code></div>
<div><code>        </code><code>}</code></div>
<div></div>
<div><code>        </code><code>[Category(</code><code>"Method"</code><code>), Description(</code><code>"Details of the Event"</code><code>)]</code></div>
<div><code>        </code><code>public</code> <code>String Details</code></div>
<div><code>        </code><code>{</code></div>
<div><code>            </code><code>get</code> <code>{ </code><code>return</code> <code>details; }</code></div>
<div><code>            </code><code>set</code> <code>{ details = value; }</code></div>
<div><code>        </code><code>}</code></div>
<div></div>
<div><code>        </code><code>[Category(</code><code>"Method"</code><code>), Description(</code><code>"Item Id of the Event"</code><code>)]</code></div>
<div><code>        </code><code>public</code> <code>String ItemId</code></div>
<div><code>        </code><code>{</code></div>
<div><code>            </code><code>get</code> <code>{ </code><code>return</code> <code>itemId; }</code></div>
<div><code>            </code><code>set</code> <code>{ itemId = value; }</code></div>
<div><code>        </code><code>}</code></div>
<div></div>
<div><code>        </code><code>protected</code> <code>override</code> <code>void</code> <code>DoRender(System.Web.UI.HtmlTextWriter output)</code></div>
<div><code>        </code><code>{</code></div>
<div><code>            </code><code>NameValueCollection googleCalendarParams = </code><code>new</code> <code>NameValueCollection();</code></div>
<div></div>
<div><code>            </code><code>if</code> <code>(</code><code>string</code><code>.IsNullOrEmpty(startDateTime)) </code><code>//required value</code></div>
<div><code>                </code><code>return</code><code>;</code></div>
<div></div>
<div><code>            </code><code>if</code> <code>(</code><code>string</code><code>.IsNullOrEmpty(endDateTime)) </code><code>//required value</code></div>
<div><code>                </code><code>return</code><code>;</code></div>
<div></div>
<div><code>            </code><code>if</code> <code>(</code><code>string</code><code>.IsNullOrEmpty(title)) </code><code>//required value</code></div>
<div><code>                </code><code>return</code><code>;</code></div>
<div><code>            </code><code>try</code></div>
<div><code>            </code><code>{</code></div>
<div><code>                </code><code>Item cEvent = GetItem();</code></div>
<div></div>
<div><code>                </code><code>if</code> <code>(!</code><code>string</code><code>.IsNullOrEmpty(itemId) &amp;&amp; global::Sitecore.Data.ID.IsID(itemId))</code></div>
<div><code>                    </code><code>cEvent = Sitecore.Context.Database.GetItem(</code><code>new</code> <code>ID(itemId));</code></div>
<div></div>
<div><code>                </code><code>DateField start = cEvent.Fields[startDateTime];</code></div>
<div><code>                </code><code>DateField end = cEvent.Fields[endDateTime];</code></div>
<div><code>                </code><code>string</code> <code>gLocation = cEvent[location];</code></div>
<div><code>                </code><code>string</code> <code>gDetails = cEvent[details];</code></div>
<div></div>
<div><code>                </code><code>googleCalendarParams.Add(</code><code>"dates"</code><code>, </code><code>string</code><code>.Format(</code><code>"{0:yyyyMMdd'T'HHmmss'Z'}/{1:yyyyMMdd'T'HHmmss'Z'}"</code><code>, start.DateTime.ToUniversalTime(), end.DateTime.ToUniversalTime()));</code></div>
<div><code>                </code><code>googleCalendarParams.Add(</code><code>"action"</code><code>, </code><code>"TEMPLATE"</code><code>);</code></div>
<div><code>                </code><code>googleCalendarParams.Add(</code><code>"text"</code><code>, HttpUtility.HtmlEncode(cEvent[title]));</code></div>
<div><code>                </code><code>googleCalendarParams.Add(</code><code>"sprop"</code><code>, Context.Request.Url.Host);</code></div>
<div></div>
<div><code>                </code><code>if</code> <code>(!</code><code>string</code><code>.IsNullOrEmpty(gDetails))</code></div>
<div><code>                    </code><code>googleCalendarParams.Add(</code><code>"details"</code><code>, HttpUtility.HtmlEncode(gDetails));</code></div>
<div></div>
<div><code>                </code><code>if</code> <code>(!</code><code>string</code><code>.IsNullOrEmpty(gLocation))</code></div>
<div><code>                    </code><code>googleCalendarParams.Add(</code><code>"location"</code><code>, HttpUtility.HtmlEncode(gLocation));</code></div>
<div></div>
<div><code>                </code><code>var response = </code><code>string</code><code>.Format(googleCalendarReminderHtml, ToQueryString(googleCalendarParams), googleCalendarButton);</code></div>
<div></div>
<div><code>                </code><code>output.Write(response);</code></div>
<div><code>            </code><code>}</code></div>
<div><code>            </code><code>catch</code> <code>(Exception ex)</code></div>
<div><code>            </code><code>{</code></div>
<div><code>                </code><code>Log.Error(</code><code>"Error on Google Calendar Reminder, method: DoRemder"</code><code>, ex, </code><code>this</code><code>);</code></div>
<div><code>            </code><code>}</code></div>
<div><code>        </code><code>}</code></div>
<div></div>
<div><code>        </code><code>// code from <a href="http://stackoverflow.com/questions/829080/how-to-build-a-query-string-for-a-url-in-c">http://stackoverflow.com/questions/829080/how-to-build-a-query-string-for-a-url-in-c</a></code></div>
<div><code>        </code><code>private</code> <code>string</code> <code>ToQueryString(NameValueCollection nvc)</code></div>
<div><code>        </code><code>{</code></div>
<div><code>            </code><code>return</code> <code>"?"</code> <code>+ </code><code>string</code><code>.Join(</code><code>"&amp;"</code><code>, Array.ConvertAll(nvc.AllKeys, key =&gt; </code><code>string</code><code>.Format(</code><code>"{0}={1}"</code><code>, HttpUtility.UrlEncode(key), HttpUtility.UrlEncode(nvc[key]))));</code></div>
<div><code>        </code><code>}</code></div>
<div></div>
<div><code>    </code><code>}</code></div>
<div><code>}</code></div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<p>To use this code, add the registration section in your aspx/ascx file and then set the control with the necessary parameters for it to display the button. Once that is done, it will look something like this:</p>
<div>
<div id="highlighter_896695">
<div></div>
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td>
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
</td>
<td>
<div>
<div><code>&lt;%@ register tagprefix=</code><code>"gcal"</code> <code>namespace</code><code>=</code><code>"Oshyn.Sitecore.WebControls"</code> <code>assembly=</code><code>"Oshyn.Sitecore"</code><code>&gt;</code></div>
<div></div>
<div><code>        </code><code>&lt;gcal:googlecalendarreminder details=</code><code>"Description"</code> <code>location=</code><code>"Location"</code> <code>title=</code><code>"Title"</code> <code>enddatetime=</code><code>"End Date"</code> <code>startdatetime=</code><code>"Start Date"</code> <code>itemid=</code><code>"{2A37207A-E546-4016-9ED5-1250B199C6DC}"</code> <code>runat=</code><code>"server"</code><code>&gt;</code></div>
<div><code>&lt;/gcal:googlecalendarreminder&gt;</code></div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<p>For simple, semi-static HTML integrations, it is a good idea to use WebControls which give you the ability to be reuse them in multiple locations. To check out how to build more controls, check out these links:</p>
<p>- Sitecore Introduction (3 parts serie): http://sdn.sitecore.net/Articles/Web%20Controls/Building%20Web%20Controls%20-%20Part%201.aspx</p>
<p>- Stackoverflow : http://stackoverflow.com/questions/7070006/where-can-sitecore-webcontrol-examples-be-found</p>
<p>- Google Calendar Reminder Button: http://www.google.com/googlecalendar/event_publisher_guide_detail.html</p>
</div>
</div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/oshyninc.wordpress.com/781/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/oshyninc.wordpress.com/781/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/oshyninc.wordpress.com/781/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/oshyninc.wordpress.com/781/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/oshyninc.wordpress.com/781/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/oshyninc.wordpress.com/781/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/oshyninc.wordpress.com/781/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/oshyninc.wordpress.com/781/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/oshyninc.wordpress.com/781/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/oshyninc.wordpress.com/781/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/oshyninc.wordpress.com/781/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/oshyninc.wordpress.com/781/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/oshyninc.wordpress.com/781/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/oshyninc.wordpress.com/781/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=oshyninc.wordpress.com&amp;blog=7413847&amp;post=781&amp;subd=oshyninc&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://oshyninc.wordpress.com/2012/01/25/using-sitecore-webcontrol-to-customize-google-calendar-reminder-button/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1723025d8566b7467d77a82ef281d511?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">oshyninc</media:title>
		</media:content>

		<media:content url="http://oshyn.com/blogResources/AlexandraBarcelona/sitecore-webcontrols-google-calendar_New.png" medium="image">
			<media:title type="html">Oshyn WebControls Sitecore Google Calendar</media:title>
		</media:content>
	</item>
		<item>
		<title>Websites on Smartphones, iPad &amp; Tablets – Using Touch Events for Image Scrolling on your site</title>
		<link>http://oshyninc.wordpress.com/2012/01/17/websites-on-smartphones-ipad-tablets-using-touch-events-for-image-scrolling-on-your-site-2/</link>
		<comments>http://oshyninc.wordpress.com/2012/01/17/websites-on-smartphones-ipad-tablets-using-touch-events-for-image-scrolling-on-your-site-2/#comments</comments>
		<pubDate>Tue, 17 Jan 2012 12:07:11 +0000</pubDate>
		<dc:creator>The Oshyn Team</dc:creator>
				<category><![CDATA[mobile]]></category>
		<category><![CDATA[gesture events]]></category>
		<category><![CDATA[oshyn]]></category>

		<guid isPermaLink="false">http://oshyninc.wordpress.com/?p=779</guid>
		<description><![CDATA[A requirement for every website is an easy and intuitive way for users to browse and navigate around a website. This requirement is also true when the user navigates in a mobile device, like a smart phone or tablet. Features like using a finger to swipe the content or using multi-touch gestures to zoom or [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=oshyninc.wordpress.com&amp;blog=7413847&amp;post=779&amp;subd=oshyninc&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<div>
<div><img class="alignright" src="http://oshyn.com/blogResources/AlexandraBarcelona/touch-screen-pinch_New.png" alt="Oshyn Gesture Events: Pinch" longdesc="Pinch" width="175" height="175" />A requirement for every website is an easy and intuitive way for users to browse and navigate around a website. This requirement is also true when the user navigates in a mobile device, like a smart phone or tablet. Features like using a finger to swipe the content or using multi-touch gestures to zoom or rotate the content should be available on your site. These gestures can be modified to perform any different actions in a website.In this article we will overwrite the default behavior for the pinch gesture to execute a “go back” function in an image gallery.</p>
<h2>Gesture Events</h2>
<p>Gesture events are events that are triggered during a multi-touch sequence, typically pinching and rotating gestures. Gesture events contain scaling and rotation information, allowing gestures to be combined.</p>
<p>Apple supports gestures that are multi-touch events such as &#8220;pinching&#8221; and &#8220;rotating&#8221;:</p>
<ul>
<li><strong>gesturestart</strong> - triggered when initiating a multi-touch event</li>
<li><strong>gesturechange</strong> - triggered when multiple touches move</li>
<li><strong>gestureend</strong> - triggered when a multi-touch event ends</li>
</ul>
<p>The event object for gesture events looks very different. It contains scale and rotation values and no touch objects. The <code>event</code> object has the properties:</p>
<ul>
<li>event.scale &#8211; a value of 1 when there’s no scaling, less than 1 when zooming out (such as making our div smaller), and greater than 1 when zooming in.</li>
<li>event.rotate- the rotation angle in degrees.</li>
</ul>
<p>Note: The default behavior of Safari on iOS can interfere with your application’s custom multi-touch and gesture input. You can disable the default browser behavior by sending the <code>preventDefault </code>message to the event object.</p>
<p>For more information on how to do this, visit this <a href="http://developer.apple.com/library/safari/#documentation/AppleApplications/Reference/SafariWebContent/HandlingEvents/HandlingEvents.html">link</a></p>
<p>Example:</p>
<div>
<div id="highlighter_983540">
<div></div>
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td>
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
</td>
<td>
<div>
<div><code>document.addEventListener(</code><code>'gesturechange'</code><code>, </code><code>function</code><code>(event) {</code></div>
<div><code>   </code><code>event.preventDefault();</code></div>
<div><code>   </code><code>console.log(</code><code>"Scale: "</code> <code>+ event.scale + </code><code>", Rotation: "</code> <code>+ event.rotation);</code></div>
<div><code> </code><code>}, </code><code>false</code><code>);</code></div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<h2>Event Table</h2>
<table width="472" border="1" cellpadding="0">
<thead>
<tr>
<td valign="bottom"></td>
<td valign="bottom">GESTURESTART</td>
<td valign="bottom">GESTUREMOVE</td>
<td valign="bottom">GESTUREEND</td>
</tr>
</thead>
<tbody>
<tr>
<td valign="bottom">Android</td>
<td valign="bottom">n</td>
<td valign="bottom">n</td>
<td valign="bottom">n</td>
</tr>
<tr>
<td valign="bottom">iPhone</td>
<td valign="bottom">y</td>
<td valign="bottom">y</td>
<td valign="bottom">y</td>
</tr>
<tr>
<td valign="bottom">has event.touches</td>
<td valign="bottom">n</td>
<td valign="bottom">n</td>
<td valign="bottom">n</td>
</tr>
<tr>
<td valign="bottom">(iPhone) has event.scale and event.rotation</td>
<td valign="bottom">y</td>
<td valign="bottom">y</td>
<td valign="bottom">y</td>
</tr>
<tr>
<td valign="bottom">(iPhone) touch in event.touches</td>
<td valign="bottom">-</td>
<td valign="bottom">-</td>
<td valign="bottom">-</td>
</tr>
<tr>
<td valign="bottom">(iPhone) touch in event.changedTouches</td>
<td valign="bottom">-</td>
<td valign="bottom">-</td>
<td valign="bottom">-</td>
</tr>
</tbody>
</table>
<h2>The code</h2>
<p>To implement these functions we are going to use jQuery</p>
<p>First, we would need to include the jQuery library:</p>
<div>
<div id="highlighter_884235">
<div></div>
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td>
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div>5</div>
<div>6</div>
<div>7</div>
<div>8</div>
<div>9</div>
<div>10</div>
<div>11</div>
</td>
<td>
<div>
<div><code>&lt;!DOCTYPE html&gt;</code></div>
<div><code>&lt;</code><code>html</code> <code>lang</code><code>=</code><code>"es"</code><code>&gt;</code></div>
<div><code>&lt;</code><code>head</code><code>&gt;</code></div>
<div><code> </code></div>
<div><code>&lt;</code><code>script</code> <code>src</code><code>=</code><code>"js/jquery.min.js"</code> <code>type</code><code>=</code><code>"text/javascript"</code><code>&gt;&lt;/</code><code>script</code><code>&gt;</code></div>
<div><code> </code></div>
<div><code>&lt;/</code><code>head</code><code>&gt;</code></div>
<div><code>&lt;</code><code>body</code><code>&gt;</code></div>
<div><code> </code></div>
<div><code>&lt;/</code><code>body</code><code>&gt;</code></div>
<div><code>&lt;/</code><code>html</code><code>&gt;</code></div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<p>After that we will need to add the HTML structure:</p>
<div>
<div id="highlighter_402646">
<div></div>
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td>
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div>5</div>
<div>6</div>
<div>7</div>
<div>8</div>
<div>9</div>
<div>10</div>
<div>11</div>
<div>12</div>
<div>13</div>
<div>14</div>
<div>15</div>
<div>16</div>
<div>17</div>
<div>18</div>
<div>19</div>
<div>20</div>
<div>21</div>
<div>22</div>
<div>23</div>
<div>24</div>
<div>25</div>
<div>26</div>
<div>27</div>
<div>28</div>
<div>29</div>
<div>30</div>
<div>31</div>
<div>32</div>
<div>33</div>
<div>34</div>
<div>35</div>
<div>36</div>
<div>37</div>
<div>38</div>
<div>39</div>
<div>40</div>
<div>41</div>
<div>42</div>
<div>43</div>
<div>44</div>
<div>45</div>
<div>46</div>
<div>47</div>
<div>48</div>
<div>49</div>
<div>50</div>
</td>
<td>
<div>
<div><code>&lt;!DOCTYPE html&gt;</code></div>
<div><code>&lt;</code><code>html</code> <code>lang</code><code>=</code><code>"es"</code><code>&gt;</code></div>
<div><code>&lt;</code><code>head</code><code>&gt;</code></div>
<div><code> </code></div>
<div><code>&lt;</code><code>script</code> <code>src</code><code>=</code><code>"js/jquery.min.js"</code> <code>type</code><code>=</code><code>"text/javascript"</code><code>&gt;&lt;/</code><code>script</code><code>&gt;</code></div>
<div><code> </code></div>
<div><code>&lt;/</code><code>head</code><code>&gt;</code></div>
<div><code>&lt;</code><code>body</code><code>&gt;</code></div>
<div><code>&lt;</code><code>div</code> <code>style</code><code>=</code><code>"width: 500px; margin: 0pt auto;"</code><code>&gt;</code></div>
<div><code>        </code><code>&lt;</code><code>div</code><code>&gt;</code></div>
<div><code>             </code><code>&lt;</code><code>h1</code><code>&gt;click on an image&lt;/</code><code>h1</code><code>&gt;</code></div>
<div><code>        </code><code>&lt;/</code><code>div</code><code>&gt;</code></div>
<div><code>        </code><code>&lt;</code><code>div</code> <code>id</code><code>=</code><code>"demos"</code> <code>class</code><code>=</code><code>"content"</code><code>&gt;</code></div>
<div><code>        </code><code>&lt;</code><code>div</code> <code>class</code><code>=</code><code>"pics"</code> <code>id</code><code>=</code><code>"slideshow"</code><code>&gt;</code></div>
<div><code> </code></div>
<div><code>        </code><code>&lt;</code><code>a</code> <code>href</code><code>=</code><code>"#overlay01"</code> <code>&gt;&lt;</code><code>img</code>  <code>alt</code><code>=</code><code>""</code> <code>src</code><code>=</code><code>"Images/logo001.png"</code> <code>/&gt;&lt;/</code><code>a</code><code>&gt;</code></div>
<div><code>        </code><code>&lt;</code><code>a</code> <code>href</code><code>=</code><code>"#overlay02"</code> <code>&gt;&lt;</code><code>img</code>  <code>alt</code><code>=</code><code>""</code> <code>src</code><code>=</code><code>"Images/logo002.png"</code> <code>/&gt;&lt;/</code><code>a</code><code>&gt;</code></div>
<div><code>        </code><code>&lt;</code><code>a</code> <code>href</code><code>=</code><code>"#overlay03"</code> <code>&gt;&lt;</code><code>img</code>  <code>alt</code><code>=</code><code>""</code> <code>src</code><code>=</code><code>"Images/logo003.png"</code> <code>/&gt;&lt;/</code><code>a</code><code>&gt;</code></div>
<div><code>        </code><code>&lt;/</code><code>div</code><code>&gt;</code></div>
<div><code>        </code><code>&lt;/</code><code>div</code><code>&gt;</code></div>
<div><code>    </code><code>&lt;/</code><code>div</code><code>&gt;</code></div>
<div><code>      </code></div>
<div><code>      </code><code>&lt;</code><code>div</code> <code>class</code><code>=</code><code>"overlays"</code> <code>style</code><code>=</code><code>"width: 500px; margin: 0pt auto;"</code><code>&gt;</code></div>
<div><code>      </code><code>&lt;</code><code>div</code> <code>class</code><code>=</code><code>"item"</code> <code>id</code><code>=</code><code>"overlay01"</code> <code>&gt;</code></div>
<div><code>        </code></div>
<div><code>             </code><code>&lt;</code><code>img</code> <code>alt</code><code>=</code><code>""</code> <code>src</code><code>=</code><code>"Images/logo001.png"</code> <code>/&gt;</code></div>
<div><code>             </code><code>&lt;</code><code>p</code> <code>class</code><code>=</code><code>"text"</code><code>&gt;</code></div>
<div><code>             </code><code>pinch to close pinch to close pinch to close pinch to close</code></div>
<div><code>             </code><code>&lt;/</code><code>p</code><code>&gt;</code></div>
<div><code>        </code></div>
<div><code>      </code><code>&lt;/</code><code>div</code><code>&gt;</code></div>
<div><code>             </code></div>
<div><code>      </code><code>&lt;</code><code>div</code> <code>class</code><code>=</code><code>"item"</code> <code>id</code><code>=</code><code>"overlay02"</code> <code>&gt;</code></div>
<div><code>        </code></div>
<div><code>             </code><code>&lt;</code><code>img</code> <code>alt</code><code>=</code><code>""</code> <code>src</code><code>=</code><code>"Images/logo002.png"</code> <code>/&gt;</code></div>
<div><code>             </code><code>&lt;</code><code>p</code> <code>class</code><code>=</code><code>"text"</code><code>&gt;</code></div>
<div><code>             </code><code>pinch to close pinch to close pinch to close pinch to close</code></div>
<div><code>             </code><code>&lt;/</code><code>p</code><code>&gt;</code></div>
<div><code>      </code></div>
<div><code>      </code><code>&lt;/</code><code>div</code><code>&gt;</code></div>
<div><code>             </code></div>
<div><code>      </code><code>&lt;</code><code>div</code> <code>class</code><code>=</code><code>"item"</code> <code>id</code><code>=</code><code>"overlay03"</code> <code>&gt;</code></div>
<div><code>             </code><code>&lt;</code><code>img</code> <code>alt</code><code>=</code><code>""</code> <code>src</code><code>=</code><code>"Images/logo003.png"</code> <code>/&gt;</code></div>
<div><code>             </code><code>&lt;</code><code>p</code> <code>class</code><code>=</code><code>"text"</code><code>&gt;</code></div>
<div><code>             </code><code>pinch to close pinch to close pinch to close pinch to close</code></div>
<div><code>             </code><code>&lt;/</code><code>p</code><code>&gt;</code></div>
<div><code>        </code></div>
<div><code>     </code><code>&lt;/</code><code>div</code><code>&gt;</code></div>
<div><code>   </code><code>&lt;/</code><code>div</code><code>&gt;</code></div>
<div><code>&lt;/</code><code>body</code><code>&gt;&lt;/</code><code>html</code><code>&gt;</code></div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<p>In the body structure we have a div with the class “pics” which holds the a set of images and a div with the class “overlays” which holds the overlay elements that are going to be shown when an image is clicked</p>
<p>Now we have to define the JavaScript code:</p>
<div>
<div id="highlighter_677022">
<div></div>
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td>
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div>5</div>
<div>6</div>
<div>7</div>
<div>8</div>
<div>9</div>
<div>10</div>
<div>11</div>
<div>12</div>
<div>13</div>
<div>14</div>
<div>15</div>
<div>16</div>
<div>17</div>
<div>18</div>
<div>19</div>
<div>20</div>
<div>21</div>
<div>22</div>
<div>23</div>
<div>24</div>
<div>25</div>
<div>26</div>
<div>27</div>
<div>28</div>
<div>29</div>
<div>30</div>
<div>31</div>
<div>32</div>
</td>
<td>
<div>
<div><code>&lt;script type=</code><code>"text/javascript"</code><code>&gt;</code></div>
<div><code>$(</code><code>function</code><code>() {</code></div>
<div></div>
<div><code>    </code><code>$(</code><code>".pics a"</code><code>).each(</code><code>function</code><code>(){</code></div>
<div><code>        </code><code>$(</code><code>this</code><code>).click(</code><code>function</code><code>(){</code></div>
<div><code>            </code><code>var</code> <code>overlay = $(</code><code>this</code><code>).attr(</code><code>'href'</code><code>);</code></div>
<div><code>            </code><code>$(overlay).show();</code></div>
<div><code>        </code><code>});</code></div>
<div><code>    </code><code>});</code></div>
<div></div>
<div><code>//bind events to swipe and pinch in overlay</code></div>
<div><code>    </code><code>$(</code><code>'.item'</code><code>).each(</code><code>function</code><code>(){</code></div>
<div><code>        </code><code>$(</code><code>this</code><code>).bind(</code><code>'gesturestart'</code><code>,</code><code>function</code><code>(){gestureStart(event);});</code></div>
<div><code>        </code><code>$(</code><code>this</code><code>).bind(</code><code>'gesturechange'</code><code>,</code><code>function</code><code>(){closeGesture(event);});</code></div>
<div><code>        </code><code>$(</code><code>this</code><code>).bind(</code><code>'gestureend'</code><code>,</code><code>function</code><code>(){gestureEnd(event);});</code></div>
<div><code>    </code><code>});</code></div>
<div></div>
<div><code>});</code></div>
<div></div>
<div><code> </code><code>function</code> <code>gestureStart( e ) {</code></div>
<div><code>    </code><code>e.preventDefault();</code></div>
<div><code> </code><code>}</code></div>
<div></div>
<div><code> </code><code>function</code> <code>closeGesture( e ) {</code></div>
<div><code>    </code><code>e.preventDefault();</code></div>
<div><code>    </code><code>$(</code><code>'.item'</code><code>).hide();</code></div>
<div><code> </code><code>}</code></div>
<div><code> </code></div>
<div><code> </code><code>function</code> <code>gestureEnd( e ) {</code></div>
<div></div>
<div><code> </code><code>}</code></div>
<div><code>&lt;/script&gt;</code></div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<p>The JavaScript code will:</p>
<ul>
<li>Set up the click event for each image, with this code we are showing the corresponding overlay when the image is clicked:</li>
</ul>
<div>
<div id="highlighter_579796">
<div></div>
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td>
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div>5</div>
<div>6</div>
</td>
<td>
<div>
<div><code>$(</code><code>".pics a"</code><code>).each(</code><code>function</code><code>(){</code></div>
<div><code>    </code><code>$(</code><code>this</code><code>).click(</code><code>function</code><code>(){</code></div>
<div><code>        </code><code>var</code> <code>overlay = $(</code><code>this</code><code>).attr(</code><code>'href'</code><code>);</code></div>
<div><code>        </code><code>$(overlay).show();</code></div>
<div><code>    </code><code>});</code></div>
<div><code>});</code></div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<ul>
<li>Set up the event listener for each overlay, when zoom event is detected in an item overlay, we capture it and we change the default behavior with our custom functions:</li>
</ul>
<div>
<div id="highlighter_963458">
<div></div>
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td>
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div>5</div>
</td>
<td>
<div>
<div><code>$(</code><code>'.item'</code><code>).each(</code><code>function</code><code>(){</code></div>
<div><code>    </code><code>$(</code><code>this</code><code>).bind(</code><code>'gesturestart'</code><code>,</code><code>function</code><code>(){gestureStart(event);});</code></div>
<div><code>    </code><code>$(</code><code>this</code><code>).bind(</code><code>'gesturechange'</code><code>,</code><code>function</code><code>(){closeGesture(event);});</code></div>
<div><code>    </code><code>$(</code><code>this</code><code>).bind(</code><code>'gestureend'</code><code>,</code><code>function</code><code>(){gestureEnd(event);});</code></div>
<div><code>});</code></div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<ul>
<li>Define our custom functions that are going to be executed in each step of the zoom events:</li>
</ul>
<div>
<div id="highlighter_387721">
<div></div>
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td>
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div>5</div>
<div>6</div>
<div>7</div>
<div>8</div>
<div>9</div>
<div>10</div>
<div>11</div>
</td>
<td>
<div>
<div><code>function</code> <code>gestureStart( e ) {</code></div>
<div><code>    </code><code>e.preventDefault();</code></div>
<div><code>}</code></div>
<div><code> </code></div>
<div><code>function</code> <code>closeGesture( e ) {</code></div>
<div><code>    </code><code>e.preventDefault();</code></div>
<div><code>    </code><code>$(</code><code>'.item'</code><code>).hide();</code></div>
<div><code>}</code></div>
<div></div>
<div><code>function</code> <code>gestureEnd( e ) {</code></div>
<div><code>}</code></div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<p><strong>NOTE:</strong> that when the gesture starts we execute e.preventDefault(); this is done to prevent the default behavior of the browser (zoom in/out)</p>
<p><a href="http://oshyn.com/blogResources/dmora/event-capture.html" target="_blank">Check out the demo on your ipad/iphone here </a><br />
Using this method, we can detect the zoom in/out of an element of the web page and execute a custom code.</p>
<p><a title="Oshyn Customizing Gesture Events for Mobile Devices" href="http://oshyn.com/_blog/General/post/Customizing_Gesture_Events_for_Mobile_Devices/">Original post</a>.</p>
</div>
</div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/oshyninc.wordpress.com/779/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/oshyninc.wordpress.com/779/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/oshyninc.wordpress.com/779/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/oshyninc.wordpress.com/779/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/oshyninc.wordpress.com/779/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/oshyninc.wordpress.com/779/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/oshyninc.wordpress.com/779/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/oshyninc.wordpress.com/779/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/oshyninc.wordpress.com/779/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/oshyninc.wordpress.com/779/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/oshyninc.wordpress.com/779/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/oshyninc.wordpress.com/779/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/oshyninc.wordpress.com/779/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/oshyninc.wordpress.com/779/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=oshyninc.wordpress.com&amp;blog=7413847&amp;post=779&amp;subd=oshyninc&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://oshyninc.wordpress.com/2012/01/17/websites-on-smartphones-ipad-tablets-using-touch-events-for-image-scrolling-on-your-site-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1723025d8566b7467d77a82ef281d511?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">oshyninc</media:title>
		</media:content>

		<media:content url="http://oshyn.com/blogResources/AlexandraBarcelona/touch-screen-pinch_New.png" medium="image">
			<media:title type="html">Oshyn Gesture Events: Pinch</media:title>
		</media:content>
	</item>
		<item>
		<title>Making Your Content Consumable on Mobile Devices</title>
		<link>http://oshyninc.wordpress.com/2012/01/03/making-your-content-consumable-on-mobile-devices/</link>
		<comments>http://oshyninc.wordpress.com/2012/01/03/making-your-content-consumable-on-mobile-devices/#comments</comments>
		<pubDate>Tue, 03 Jan 2012 22:59:02 +0000</pubDate>
		<dc:creator>The Oshyn Team</dc:creator>
				<category><![CDATA[mobile]]></category>
		<category><![CDATA[cms]]></category>
		<category><![CDATA[content]]></category>
		<category><![CDATA[mobile content]]></category>
		<category><![CDATA[mobile devices]]></category>
		<category><![CDATA[mobile strategy]]></category>
		<category><![CDATA[oshyn]]></category>
		<category><![CDATA[wcm]]></category>

		<guid isPermaLink="false">http://oshyninc.wordpress.com/?p=769</guid>
		<description><![CDATA[How many times have you walked into a waiting room and whipped out your smartphone to kill the time until your name is called?  Or maybe you’ve gotten into a crowded elevator and your fellow travelers are all engrossed in their mobile devices – emailing, texting, checking sports scores, playing games, etc.  While smartphones have [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=oshyninc.wordpress.com&amp;blog=7413847&amp;post=769&amp;subd=oshyninc&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<div>
<div>
<p><img class="alignleft" src="http://oshyn.com/blogResources/AlexandraBarcelona/iphone%20shell_New.png" alt="Oshyn Social Media &amp; Mobile Blog" longdesc="Making your content consumable on mobile devices" width="107" height="200" />How many times have you walked into a waiting room and whipped out your smartphone to kill the time until your name is called?  Or maybe you’ve gotten into a crowded elevator and your fellow travelers are all engrossed in their mobile devices – emailing, texting, checking sports scores, playing games, etc.  While smartphones have all but changed the way we kill time, these situations are just the scenarios users will find themselves in when they find your mobile content.</p>
<p>In January of 2011, users spent an average of 422 minutes browsing the web on their mobile devices each month<sup>1</sup>.  Most people who spend time browsing the web on a mobile device do so because they’re on a break from something else or they need something right now.  Either way, they’re likely to have a limited amount of time to find and consume your content.  Keeping that in mind, there are things you can do to ensure your content is easily consumable by mobile users.</p>
<p>What do you have to offer that people need “right now”?  Mobile users are more likely to have content in mind when they pick up their mobile device; they want to check their account balance, they want to purchase something, they want to research something quickly, or they want something to entertain them.  Now think about everything you have on your site – how much of it is relevant to a mobile user?  If you’ve got a lot of content that is better served on a full-size screen or can’t be viewed on a non-flash supported device, that content is probably better off being left out of the mobile site.  Content that isn’t essential should be reconsidered when filtering content to your mobile site.  Sift through your analytics to see what content is most viewed by visitors to your full site to determine what would be ideal to include in your mobile version.</p>
<p><strong>Keep it simple.</strong></p>
<p>Along with sorting through your content to filter what a mobile user is likely to need, try to keep the mobile content brief.  Not only are most mobile users usually in between other tasks, but they’re trying to read your content on a small screen.  If the content is long, they’re not going to stick around to scroll through long pages of text.</p>
<p><strong>Surface your content.</strong></p>
<p>Websites are filled with functionality that isn’t necessarily mobile friendly (think, hover states and deep layers of categorization).  People looking for content on your mobile site can’t hover and they don’t want to sort through layer upon layer of categorization to find the information they’re looking for.  Keep your categories simple and make sure that content is organized clearly to keep clicks to a minimum.</p>
<p><strong>Only include essential images.</strong></p>
<p>Many users will be accessing your content in places where they don’t have access to a wireless connection, which makes loading images a longer process than some users may be willing to wait through.  You don’t want to serve the same images on your mobile site as you do on your full site, they’re probably going to be far bigger than you really need on a mobile device.  However, if images are critical to the user experience, include them, but make sure they’re optimized for mobile devices and they’re used only where necessary.</p>
<p><strong>Finally, have a way out.</strong></p>
<p>There will always be someone out there who wants access to your full site, even if they know that they’re going to have to pinch, zoom, scroll, etc.  Chances are, these users know what they want to gain from your site and, if they can’t get to it on their mobile device, they may leave and go somewhere else to find the content they’re looking for.</p>
<p><strong>REFERENCES</strong></p>
<p><a href="https://www.wirelessintelligence.com/analysis/2011/03/smartphone-users-spending-more-face-time-on-apps-than-voice-calls-or-web-browsing/">https://www.wirelessintelligence.com/analysis/2011/03/smartphone-users-spending-more-face-time-on-apps-than-voice-calls-or-web-browsing/</a></p>
<p>Original post can be found <a title="Making your content consumable on mobile devices" href="http://oshyn.com/_blog/Social_Media_and_Mobile/post/Making_your_Content_Consumable_on_Mobile_Devices/">here</a>.</p>
</div>
</div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/oshyninc.wordpress.com/769/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/oshyninc.wordpress.com/769/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/oshyninc.wordpress.com/769/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/oshyninc.wordpress.com/769/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/oshyninc.wordpress.com/769/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/oshyninc.wordpress.com/769/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/oshyninc.wordpress.com/769/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/oshyninc.wordpress.com/769/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/oshyninc.wordpress.com/769/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/oshyninc.wordpress.com/769/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/oshyninc.wordpress.com/769/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/oshyninc.wordpress.com/769/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/oshyninc.wordpress.com/769/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/oshyninc.wordpress.com/769/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=oshyninc.wordpress.com&amp;blog=7413847&amp;post=769&amp;subd=oshyninc&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://oshyninc.wordpress.com/2012/01/03/making-your-content-consumable-on-mobile-devices/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1723025d8566b7467d77a82ef281d511?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">oshyninc</media:title>
		</media:content>

		<media:content url="http://oshyn.com/blogResources/AlexandraBarcelona/iphone%20shell_New.png" medium="image">
			<media:title type="html">Oshyn Social Media &#38; Mobile Blog</media:title>
		</media:content>
	</item>
		<item>
		<title>CSS3 Best Practices</title>
		<link>http://oshyninc.wordpress.com/2011/12/29/css3-best-practices/</link>
		<comments>http://oshyninc.wordpress.com/2011/12/29/css3-best-practices/#comments</comments>
		<pubDate>Thu, 29 Dec 2011 22:57:12 +0000</pubDate>
		<dc:creator>The Oshyn Team</dc:creator>
				<category><![CDATA[content management]]></category>
		<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[cms]]></category>
		<category><![CDATA[CSS3]]></category>
		<category><![CDATA[oshyn]]></category>
		<category><![CDATA[wcm]]></category>

		<guid isPermaLink="false">http://oshyninc.wordpress.com/?p=767</guid>
		<description><![CDATA[Always keep in mind that CSS3 is by no means supported by all browsers, every browser has different support for each CSS3 element and we need to be very careful when using these new features. Introduction The first thing you need to do when using a CSS3 property is do a little research. You will [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=oshyninc.wordpress.com&amp;blog=7413847&amp;post=767&amp;subd=oshyninc&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<div>
<p>Always keep in mind that CSS3 is by no means supported by all browsers, every browser has different support for each CSS3 element and we need to be very careful when using these new features.</p>
<h2>Introduction</h2>
<p>The first thing you need to do when using a CSS3 property is do a little research. You will always find some resource online that tells you what you need to know about browser support for any CSS3 property, so be sure to Google it FIRST.</p>
<p>Secondly, do not get carried away with all the great stuff that you can achieve using CSS3. We are not trying to replace great designs and coding. We want to try to achieve the perfect cross-browser markup and styling.</p>
<p>Right now I like to think of CSS3 as “enhancements” for your website’s look. The most important thing on your site is functionality and accessibility. Never sacrifice any of these two for a “nicer” look. You need to keep in mind that everything should be fully functional if you remove all your CSS3 and your site should still look good.</p>
<h2>Fallback</h2>
<p>One of the most important best practices when using CSS3 is to provide fallback options every time it’s possible. You will find the ability to do this when using backgrounds or fonts, among other things.</p>
<h2>Animations</h2>
<p>I do not recommend using animations quite yet, but if you totally want to use them, make sure that your element will look just fine without the animation, because it is very likely that it won’t work.</p>
<h2>Code Maintenance</h2>
<p>We need to think on the future when coding CSS3. To achieve a certain cross-browser property you will need to add some vendor-specific code. I recommend adding comments or creating a file where you keep track of these lines of code. This way you will be able to remove them when supported on all browsers. I don’t know when, but I really hope a standard gets out for all browsers soon.</p>
<h2>Fonts</h2>
<p>@Font-face property is one of the more supported elements and you can achieve a cross-browser behavior, this is why a lot of programmers are using @font-face. We need to be sure that the declared fonts are totally legible on our websites. And one more thing, always declare a fallback font that approximately matches your font in size. <a href="http://oshyn.com/_blog/General/post/FontFaceCrossBrowser">Click here to read my post about how to make your @font-face compatible across multiple browsers (link to post).</a></p>
<h2>Conclusion</h2>
<p>CSS3 is not quite complete yet, so be very careful when using CSS3 properties. And most important of all, test your styles on all major browsers (Internet Explorer, Safari, Chrome, Firefox, Opera) before permanently applying them to your website. A good rule of thumb is: the more versions, the better.</p>
<p>Original post can be found <a title="CSS3 Best Practices" href="http://oshyn.com/_blog/General/post/CSS3_BEST_PRACTICES/">here</a>.</p>
</div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/oshyninc.wordpress.com/767/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/oshyninc.wordpress.com/767/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/oshyninc.wordpress.com/767/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/oshyninc.wordpress.com/767/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/oshyninc.wordpress.com/767/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/oshyninc.wordpress.com/767/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/oshyninc.wordpress.com/767/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/oshyninc.wordpress.com/767/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/oshyninc.wordpress.com/767/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/oshyninc.wordpress.com/767/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/oshyninc.wordpress.com/767/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/oshyninc.wordpress.com/767/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/oshyninc.wordpress.com/767/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/oshyninc.wordpress.com/767/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=oshyninc.wordpress.com&amp;blog=7413847&amp;post=767&amp;subd=oshyninc&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://oshyninc.wordpress.com/2011/12/29/css3-best-practices/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1723025d8566b7467d77a82ef281d511?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">oshyninc</media:title>
		</media:content>
	</item>
		<item>
		<title>HTML5 Video Browser Compatibility</title>
		<link>http://oshyninc.wordpress.com/2011/12/27/html5-video-browser-compatibility/</link>
		<comments>http://oshyninc.wordpress.com/2011/12/27/html5-video-browser-compatibility/#comments</comments>
		<pubDate>Tue, 27 Dec 2011 22:53:54 +0000</pubDate>
		<dc:creator>The Oshyn Team</dc:creator>
				<category><![CDATA[content management]]></category>
		<category><![CDATA[cms]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[HTML browsers]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[HTML5 Browsers]]></category>
		<category><![CDATA[HTML5 video]]></category>
		<category><![CDATA[oshyn]]></category>
		<category><![CDATA[wcm]]></category>

		<guid isPermaLink="false">http://oshyninc.wordpress.com/?p=765</guid>
		<description><![CDATA[Most of modern versions of web browsers support HTML5 video feature. However, at the moment the main issue is the lack of agreement especially with video codecs and different type of formats. &#160; The following table explains which formats are supported: Table extracted from: http://www.808.dk/?code-html-5-video You can also check which video formats are supported in [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=oshyninc.wordpress.com&amp;blog=7413847&amp;post=765&amp;subd=oshyninc&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Most of modern versions of web browsers support HTML5 video feature. However, at the moment the main issue is the lack of agreement especially with video codecs and different type of formats.</p>
<p>&nbsp;</p>
<p>The following table explains which formats are supported:</p>
<p><img src="http://oshyn.com/video_table.jpg" alt="" /></p>
<p>Table extracted from: <a href="http://www.808.dk/?code-html-5-video" target="_blank">http://www.808.dk/?code-html-5-video</a></p>
<p>You can also check which video formats are supported in different browsers in the following link:<br />
<a href="http://en.wikipedia.org/wiki/HTML5_video" target="_blank">http://en.wikipedia.org/wiki/HTML5_video</a></p>
<p><strong>Fallback if video is not supported</strong></p>
<p>There are many things that you can do if your browser doesn’t support your current video format, here are some fallback options:</p>
<p><strong>Place a Text or Html </strong></p>
<div>
<div id="highlighter_73865">
<div></div>
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td>
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div>5</div>
<div>6</div>
<div>7</div>
</td>
<td>
<div>
<div><code>&lt;video src=</code><code>"video.mp4"</code> <code>poster=</code><code>"video.jpg"</code> <code>controls&gt;</code></div>
<div><code>You browser does not support video feature</code></div>
<div><code>&lt;/video&gt;</code></div>
<div><code>&lt;video src=</code><code>"video.mp4"</code> <code>poster=</code><code>"video.jpg"</code> <code>controls&gt;</code></div>
<div><code>&lt;!— html code here--&gt;</code></div>
<div><code>&lt;img src=</code><code>"img/video_not_supported.png"</code><code>/&gt;</code></div>
<div><code>&lt;/video&gt;</code></div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<p><strong>Provide Multiple Sources</strong></p>
<p>You can have different types of video formats so if the browser doesn’t recognize the first source  it will skip to the next one  until it finds a source it can play.</p>
<div>
<div id="highlighter_862724">
<div></div>
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td>
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div>5</div>
<div>6</div>
</td>
<td>
<div>
<div><code>&lt;video poster=</code><code>"video.jpg"</code> <code>controls&gt;</code></div>
<div><code>        </code><code>&lt;source src=</code><code>'video.webm'</code> <code>type=</code><code>'video/webm'</code><code>&gt;</code></div>
<div><code>        </code><code>&lt;source src=</code><code>'video.ogv'</code> <code>type=</code><code>'video/ogg'</code><code>&gt;</code></div>
<div><code>        </code><code>&lt;source src=</code><code>'video.mp4'</code> <code>type=</code><code>'video/mp4'</code><code>&gt;</code></div>
<div><code>        </code><code>&lt;p&gt;This is fallback content&lt;/p&gt;</code></div>
<div><code>&lt;/video&gt;</code></div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<p><strong>Flash Fallback for Older Browsers</strong></p>
<p>We can also embed a flash player inside de &lt;video&gt; element to bring support to older browsers.</p>
<div>
<div id="highlighter_597786">
<div></div>
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td>
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div>5</div>
<div>6</div>
<div>7</div>
<div>8</div>
<div>9</div>
<div>10</div>
</td>
<td>
<div>
<div><code>&lt;video controls poster=</code><code>"video.jpg"</code> <code>width=</code><code>"800"</code> <code>height=</code><code>"400"</code><code>&gt;</code></div>
<div><code>  </code><code>&lt;source src=</code><code>"video.mp4"</code> <code>type=</code><code>"video/mp4"</code><code>&gt;</code></div>
<div><code>  </code><code>&lt;source src=</code><code>"video.webm"</code> <code>type=</code><code>"video/webm"</code><code>&gt;</code></div>
<div><code>  </code><code>&lt;object type=</code><code>"application/x-shockwave-flash"</code> <code>data=</code><code>"flash_player.swf"</code></div>
<div><code>width=</code><code>"800"</code> <code>height=</code><code>"400"</code><code>&gt;</code></div>
<div><code>    </code><code>&lt;param name=</code><code>"allowfullscreen"</code> <code>value=</code><code>"true"</code><code>&gt;</code></div>
<div><code>    </code><code>&lt;param name=</code><code>"allowscriptaccess"</code> <code>value=</code><code>"always"</code><code>&gt;</code></div>
<div><code>    </code><code>&lt;param name=</code><code>"flashvars"</code> <code>value=</code><code>"file=video.mp4"</code><code>&gt;</code></div>
<div><code>  </code><code>&lt;/object&gt;</code></div>
<div><code>&lt;/video&gt;</code></div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<p><strong>Checking if your browser supports video element</strong></p>
<p>If you need to check which HTML5 features are available to your browser including &lt;video &gt; element you can test it on this site:<br />
<a href="http://html5test.com/" target="_blank">http://html5test.com</a></p>
<p>Original post can be found <a title="HTML5 Video Browser Compatibility" href="http://oshyn.com/_blog/General/post/HTML5_Video_Browser_Compatibility/">here</a>.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/oshyninc.wordpress.com/765/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/oshyninc.wordpress.com/765/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/oshyninc.wordpress.com/765/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/oshyninc.wordpress.com/765/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/oshyninc.wordpress.com/765/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/oshyninc.wordpress.com/765/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/oshyninc.wordpress.com/765/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/oshyninc.wordpress.com/765/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/oshyninc.wordpress.com/765/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/oshyninc.wordpress.com/765/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/oshyninc.wordpress.com/765/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/oshyninc.wordpress.com/765/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/oshyninc.wordpress.com/765/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/oshyninc.wordpress.com/765/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=oshyninc.wordpress.com&amp;blog=7413847&amp;post=765&amp;subd=oshyninc&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://oshyninc.wordpress.com/2011/12/27/html5-video-browser-compatibility/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1723025d8566b7467d77a82ef281d511?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">oshyninc</media:title>
		</media:content>

		<media:content url="http://oshyn.com/video_table.jpg" medium="image" />
	</item>
		<item>
		<title>IE Fallback Strategy Using Google HTML5Shiv</title>
		<link>http://oshyninc.wordpress.com/2011/12/22/ie-fallback-strategy-using-google-html5shiv/</link>
		<comments>http://oshyninc.wordpress.com/2011/12/22/ie-fallback-strategy-using-google-html5shiv/#comments</comments>
		<pubDate>Thu, 22 Dec 2011 01:17:02 +0000</pubDate>
		<dc:creator>The Oshyn Team</dc:creator>
				<category><![CDATA[software development]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[HTML5 Shiv]]></category>
		<category><![CDATA[HTML5Shiv]]></category>
		<category><![CDATA[Internet explorer]]></category>
		<category><![CDATA[oshyn]]></category>
		<category><![CDATA[Oshyn_Inc]]></category>

		<guid isPermaLink="false">http://oshyninc.wordpress.com/?p=758</guid>
		<description><![CDATA[When you start building your website using HTML5 markup you will be surprised at the amount of issues you experience, especially with older versions of Internet Explorer. Older versions of Internet Explorer (IE 6,7 or 8) don’t have the support needed for the new HTML5 structural elements such as: header, footer, section, aside, article, etc [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=oshyninc.wordpress.com&amp;blog=7413847&amp;post=758&amp;subd=oshyninc&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>When you start building your website using HTML5 markup you will be surprised at the amount of issues you experience, especially with older versions of Internet Explorer.</p>
<p>Older versions of Internet Explorer (IE 6,7 or 8) don’t have the support needed for the new HTML5 structural elements such as: header, footer, section, aside, article, etc .</p>
<p>These browsers don’t understand those elements so when they render a page that is built in HTML5 they will omit them, thus-creating layout and styling issues.</p>
<p><img src="http://oshyn.com/div-structure.jpg" alt="" /></p>
<p>There are many JavaScript workarounds that allow your older IE to understand the new semantic elements. In my research I found one that is very useful:<br />
<a href="http://code.google.com/p/html5shiv/" target="_blank"><br />
HTML5shiv</a></p>
<p><strong>How to use it:</strong><br />
-   Go to  <a href="http://oshyn.com/_blog/General/post/HTML_5_IE_Fallback_Strategy_Using_Google_Shiv/http://code.google.com/p/html5shiv/">http://code.google.com/p/html5shiv/</a> to find the latest release</p>
<p>-   Include the following script before &lt;body&gt; in the &lt;head&gt; tag like this:</p>
<div>
<div id="highlighter_978587">
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td>
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div>5</div>
</td>
<td>
<div>
<div><code>&lt;head&gt;</code></div>
<div><code>&lt;!--[</code><code>if</code> <code>lt IE 9]&gt;</code></div>
<div><code>&lt;script src=</code><code>"<a href="http://html5shiv.googlecode.com/svn/trunk/html5.js">http://html5shiv.googlecode.com/svn/trunk/html5.js</a>"</code><code>&gt;&lt;/script&gt;</code></div>
<div><code>&lt;![endif]--&gt;</code></div>
<div><code>&lt;/head&gt;</code></div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<p>-   Now it is ready to use. You must have JavaScript enabled in your browser or it will not work.</p>
<p><strong>Issues when appending content</strong><br />
Keep in mind that your page can break if you append content using innerHTML like this:</p>
<div>
<div id="highlighter_968773">
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td>
<div>1</div>
<div>2</div>
<div>3</div>
</td>
<td>
<div>
<div><code>var</code> <code>x = document.createElement(</code><code>"div"</code><code>);</code></div>
<div><code>x.innerHTML = </code><code>"&lt;section&gt;content here&lt;/section&gt;"</code><code>;</code></div>
<div><code>document.body.appendChild(s);</code></div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<p>You can fix this with jQuery using a second parameter as false in this function:</p>
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td>
<div>1</div>
</td>
<td>
<div>
<div><code>$(</code><code>"div"</code><code>).append(innerShiv(</code><code>"&lt;section&gt;content here&lt;/section&gt;"</code><code>, </code><code>false</code></div>
</div>
</td>
</tr>
</tbody>
</table>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/oshyninc.wordpress.com/758/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/oshyninc.wordpress.com/758/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/oshyninc.wordpress.com/758/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/oshyninc.wordpress.com/758/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/oshyninc.wordpress.com/758/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/oshyninc.wordpress.com/758/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/oshyninc.wordpress.com/758/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/oshyninc.wordpress.com/758/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/oshyninc.wordpress.com/758/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/oshyninc.wordpress.com/758/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/oshyninc.wordpress.com/758/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/oshyninc.wordpress.com/758/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/oshyninc.wordpress.com/758/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/oshyninc.wordpress.com/758/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=oshyninc.wordpress.com&amp;blog=7413847&amp;post=758&amp;subd=oshyninc&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://oshyninc.wordpress.com/2011/12/22/ie-fallback-strategy-using-google-html5shiv/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1723025d8566b7467d77a82ef281d511?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">oshyninc</media:title>
		</media:content>

		<media:content url="http://oshyn.com/div-structure.jpg" medium="image" />
	</item>
		<item>
		<title>Making “@font-face” Cross Browser Compatible</title>
		<link>http://oshyninc.wordpress.com/2011/12/19/making-%e2%80%9cfont-face%e2%80%9d-cross-browser-compatible/</link>
		<comments>http://oshyninc.wordpress.com/2011/12/19/making-%e2%80%9cfont-face%e2%80%9d-cross-browser-compatible/#comments</comments>
		<pubDate>Mon, 19 Dec 2011 01:15:32 +0000</pubDate>
		<dc:creator>The Oshyn Team</dc:creator>
				<category><![CDATA[content management]]></category>
		<category><![CDATA[browser compatibility]]></category>
		<category><![CDATA[cms]]></category>
		<category><![CDATA[font face]]></category>
		<category><![CDATA[oshyn]]></category>
		<category><![CDATA[Oshyn_Inc]]></category>
		<category><![CDATA[wcm]]></category>
		<category><![CDATA[web content management]]></category>

		<guid isPermaLink="false">http://oshyninc.wordpress.com/?p=756</guid>
		<description><![CDATA[@Font-face is a CSS3 property that allows you to embed any font and use it on your website. It was actually introduced with CSS2, but only supported by Internet Explorer with EOT (Embedded Open Type) font files. Nowadays “@font-face” can be used on all major browsers, but you will need to follow this easy process. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=oshyninc.wordpress.com&amp;blog=7413847&amp;post=756&amp;subd=oshyninc&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>@Font-face is a CSS3 property that allows you to embed any font and use it on your website. It was actually introduced with CSS2, but only supported by Internet Explorer with EOT (Embedded Open Type) font files.</p>
<div>
<p>Nowadays “@font-face” can be used on all major browsers, but you will need to follow this easy process.</p>
<h2>Support</h2>
<p><img src="http://oshyn.com/Images/FontFacePost/support_New.png" alt="" /></p>
<h2>Process</h2>
<p>One thing you must keep in mind before following this process is that many fonts are licensed, and you must buy them to obtain the rights to use them. Please do not use a licensed font if you haven’t purchased it.</p>
<p>You can find hundreds of downloadable free fonts on the web to use on your website.</p>
<p>First, you need to convert your font file and generate files with all the different extensions. For this you can use several tools; in this particular example we will use a tool provided here:</p>
<ul>
<li><a href="http://www.fontsquirrel.com/fontface/generator">http://www.fontsquirrel.com/fontface/generator</a></li>
</ul>
<p><img src="http://oshyn.com/Images/FontFacePost/fontgenerator_New.png" alt="" /><br />
Click on “Add Fonts”</p>
<p>Browse for the font file on your file system</p>
<p><img src="http://oshyn.com/Images/FontFacePost/browse_New.png" alt="" /><br />
Once your font completes the upload, click the “Download Your Kit” button.</p>
<p>Extract the file contents to any folder you want. You should have the following files:</p>
<p><img src="http://oshyn.com/Images/FontFacePost/files_New.png" alt="" /><br />
Now you need to declare the font on your project’s CSS. Open the stylesheet.css file with any editor. You will see that all the required styles are provided. Copy those styles to your project’s CSS.</p>
<p><img src="http://oshyn.com/Images/FontFacePost/declare_New.png" alt="" /><br />
Copy all the font files generated (.eot, .woff, .ttf, .svg) to whatever directory you want on your project and make sure that the paths to the font files are correct.</p>
<p>Once you’ve done this, you’re ready to use your new font cross-browser. Just use any CSS selector and apply the “font-family” property. Use the exact same name as the declaration.</p>
<p>It is also a good idea to provide fall back content in case the browser does not support this property. In this particular case we have 3 fallback options: the first is “Helvetica”, the second “Arial”, and the third is “sans-serif”.</p>
<p><img src="http://oshyn.com/Images/FontFacePost/css.png" alt="" /></p>
<h2>Conclusion</h2>
<p>The desired cross-browser @font-face CAN be achieved! It will require some effort, but it’s totally worth it and you’ll be very happy with the results.</p>
<p>My only recommendation is to be sure that the font you picked is 100% readable, and that you won’t harm the user’s experience.</p>
<p>Enjoy!</p>
<p>&nbsp;</p>
<p>Original post can be found <a title="Making font face cross browser compatible" href="http://oshyn.com/_blog/General/post/FontFaceCrossBrowser/">here</a>.</p>
</div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/oshyninc.wordpress.com/756/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/oshyninc.wordpress.com/756/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/oshyninc.wordpress.com/756/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/oshyninc.wordpress.com/756/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/oshyninc.wordpress.com/756/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/oshyninc.wordpress.com/756/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/oshyninc.wordpress.com/756/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/oshyninc.wordpress.com/756/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/oshyninc.wordpress.com/756/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/oshyninc.wordpress.com/756/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/oshyninc.wordpress.com/756/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/oshyninc.wordpress.com/756/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/oshyninc.wordpress.com/756/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/oshyninc.wordpress.com/756/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=oshyninc.wordpress.com&amp;blog=7413847&amp;post=756&amp;subd=oshyninc&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://oshyninc.wordpress.com/2011/12/19/making-%e2%80%9cfont-face%e2%80%9d-cross-browser-compatible/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1723025d8566b7467d77a82ef281d511?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">oshyninc</media:title>
		</media:content>

		<media:content url="http://oshyn.com/Images/FontFacePost/support_New.png" medium="image" />

		<media:content url="http://oshyn.com/Images/FontFacePost/fontgenerator_New.png" medium="image" />

		<media:content url="http://oshyn.com/Images/FontFacePost/browse_New.png" medium="image" />

		<media:content url="http://oshyn.com/Images/FontFacePost/files_New.png" medium="image" />

		<media:content url="http://oshyn.com/Images/FontFacePost/declare_New.png" medium="image" />

		<media:content url="http://oshyn.com/Images/FontFacePost/css.png" medium="image" />
	</item>
		<item>
		<title>Agile Project Management Using JIRA and Greenhopper</title>
		<link>http://oshyninc.wordpress.com/2011/12/15/agile-project-management-using-jira-and-greenhopper/</link>
		<comments>http://oshyninc.wordpress.com/2011/12/15/agile-project-management-using-jira-and-greenhopper/#comments</comments>
		<pubDate>Thu, 15 Dec 2011 01:13:54 +0000</pubDate>
		<dc:creator>The Oshyn Team</dc:creator>
				<category><![CDATA[content management]]></category>
		<category><![CDATA[Agile project management]]></category>
		<category><![CDATA[cms]]></category>
		<category><![CDATA[greenhopper]]></category>
		<category><![CDATA[Jira]]></category>
		<category><![CDATA[oshyn]]></category>
		<category><![CDATA[Oshyn_Inc]]></category>
		<category><![CDATA[wcm]]></category>
		<category><![CDATA[web content management]]></category>

		<guid isPermaLink="false">http://oshyninc.wordpress.com/?p=753</guid>
		<description><![CDATA[If you have never heard of JIRA, JIRA is an issue and project-tracking tool for software development. GreenHopper is an Agile extension that you can add to JIRA. At Oshyn, we see a lot of benefits in using GreenHopper, which is why it is our preferred Agile software development tool. While we also use it [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=oshyninc.wordpress.com&amp;blog=7413847&amp;post=753&amp;subd=oshyninc&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<div>
<p>If you have never heard of JIRA, JIRA is an issue and project-tracking tool for software development. GreenHopper is an Agile extension that you can add to JIRA.</p>
<p>At Oshyn, we see a lot of benefits in using GreenHopper, which is why it is our preferred Agile software development tool. While we also use it for non-Scrum projects, this post focuses on how we use this powerful and ever-evolving tool to manage our Scrum projects.</p>
<h2>Project Setup</h2>
<p>So how do you get started? Start by creating a new project: set project name, permissions, notifications, workflow, etc. Now set project components (e.g. Business Analysis, Information Architecture, Visual Design, Front-End Development, Back-End Development and Project Development). While on the same screen, set your project Versions as well. For example: Sprint 1 = Discovery, Sprint 2 = Design, Sprint 3 = Build and so on.</p>
<p><img src="http://oshyn.com/blogResources/AlexandraBarcelona/Project%20Setup%20Screen.jpg" alt="" /></p>
<p><em>Project Setup Screen</em></p>
<h2>Product Backlog</h2>
<p>Now that your basic project settings are done you can start creating project backlog tasks, or alternatively import them to your Planning Board.</p>
<p>When creating project tasks try to use Epics, Stories and sub-tasks. NOTE: Epics are large user stories that can be dissected into several smaller user stories. Use them if your project has complex functionality that is yet to be defined in more detail.</p>
<h2>Sprint Planning</h2>
<p>Start you sprint planning by going to the Planning Board (unassigned tasks) and try to identify what can and can&#8217;t be completed during your first Sprint. You can use drag and drop to assign your product backlog tasks to corresponding Sprints.</p>
<p>When planning your Sprints be realistic and try to think of best and worst case scenarios. Also, keep in mind that some requirements might not be fully documented, so Sprint 1 will probably have a lot of unknowns.   There is also a good chance that some of your estimates will be wrong, but that’s ok, you will get better with subsequent Sprints.</p>
<p>The following examples show Sprint 3 (Build Phase):</p>
<p><em>Please note: if this was a real project you would obviously have more tasks, your task descriptions would be more informative and you would also have more than one assignee.</em></p>
<p><img src="http://oshyn.com/blogResources/AlexandraBarcelona/Planning%20Board.jpg" alt="" /></p>
<p><em>Planning board</em></p>
<h2>Task Board</h2>
<p>By this stage most of your initial setup should be done and you can shift your focus from setup to controlling and monitoring. This is where GreenHopper&#8217;s Task and Chat Boards will come into play, allowing you to monitor individual tasks, dependencies and overall progress. Having this visibility will make your job a lot easier and it will also make your team more productive. If your team hates some of those annoying interruptions (e.g. “What are you working on”, how are you progressing”, or “what are you working on next”) you will love GreenHopper, because all that good information is available in JIRA. Task board clearly displays Sprint tasks, status, remaining hours, team members/resource and next to-dos.</p>
<p><img src="http://oshyn.com/blogResources/AlexandraBarcelona/Task%20Board.jpg" alt="" /></p>
<p><em>Task Board</em></p>
<h2>Chart Board</h2>
<p>Chart Board provides a graphical representation of the progress of your current Sprint. Being able to see: team effort, guideline, trends and required daily burndown rate helps us monitor our Sprint more effectively.</p>
<p><img src="http://oshyn.com/blogResources/AlexandraBarcelona/Chart%20Board.jpg" alt="" /></p>
<p><em>Chart Board</em></p>
<h2>Release Board</h2>
<p>The Released Board is another useful feature, giving you a high level view of previous/released Sprints, so if you need a quick overview of what you’ve completed so far (e.g. Sprint 1, 2 and 3) and what is still outstanding (e.g. Spring 4,5 and 6) this is good place to start.</p>
<p><img src="http://oshyn.com/blogResources/AlexandraBarcelona/release%20board.jpg" alt="" /></p>
<p><em>Release Board</em></p>
<h2>Setting up Search Queries</h2>
<p>Issue Navigator allows you to see all issues/tasks in the system. Start by creating custom search filters (using simple or advance view) which allow you to display search results by component/version, issue type, status, priorities etc… For example, you might only want to see high priority tasks in Sprint 3 that are still outstanding. Creating and saving multiple filters will allow you to quickly find issues or tasks, and they will also make your project dashboard a lot more useful and informative. NOTE: A lot of Project Dashboard Gadgets are powered by your saved search queries.</p>
<p><img src="http://oshyn.com/blogResources/AlexandraBarcelona/Issue%20Navigator.jpg" alt="" /></p>
<p><em>Issue Navigator</em></p>
<h2>Project Dashboard</h2>
<p>My next step is usually to set up a Project Dashboard. You can go crazy and create as many gadgets as you&#8217;d like, but I usually try to keep my dashboard relatively clean with 4-6 gadgets; I usually use the following gadgets:</p>
<ul>
<li>Agile – basic Sprint information and Burndown chart</li>
<li>Days remaining – countdown of days remaining</li>
<li>Project progress – progress bar (to-do, in progress and done)</li>
<li>Issues/tasks statistics &#8211; grouped by resource</li>
<li>Group time sheet – hours logged (per team member)</li>
</ul>
<p>NOTE: When deciding on gadgets think about your Audience (Business Team, Developers, Stakeholders etc…).</p>
<p><img src="http://oshyn.com/blogResources/AlexandraBarcelona/Project%20Dashboard.jpg" alt="" /></p>
<p><em>Project Dashboard</em></p>
<p>JIRA also has a number of useful reports that you can use to stay on top of your project. For example, you can use Project Pivot and Timesheet reports to extract data on actual hours.</p>
<p><img src="http://oshyn.com/blogResources/AlexandraBarcelona/Project%20reports.jpg" alt="" /></p>
<p><em>Project Reports</em></p>
<p>I should also point out that JIRA has some nice alerts, instantly notifying you of any updates (e.g. new comment or status update). This is especially useful when dealing with risks, critical path items and dependencies.</p>
<p>To sum it all up, JIRA Greenhopper is a great tool for managing scrum projects, but like any other tool you will need to be diligent in keeping it up to date.</p>
<p>&nbsp;</p>
<p>Original post can be found <a title="Agile project management using JIRA and Greenhopper" href="http://oshyn.com/_blog/Web_Content_Management/post/Agile_Project_Management_Using_JIRA_and_Greenhopper/">here</a>.</p>
</div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/oshyninc.wordpress.com/753/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/oshyninc.wordpress.com/753/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/oshyninc.wordpress.com/753/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/oshyninc.wordpress.com/753/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/oshyninc.wordpress.com/753/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/oshyninc.wordpress.com/753/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/oshyninc.wordpress.com/753/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/oshyninc.wordpress.com/753/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/oshyninc.wordpress.com/753/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/oshyninc.wordpress.com/753/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/oshyninc.wordpress.com/753/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/oshyninc.wordpress.com/753/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/oshyninc.wordpress.com/753/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/oshyninc.wordpress.com/753/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=oshyninc.wordpress.com&amp;blog=7413847&amp;post=753&amp;subd=oshyninc&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://oshyninc.wordpress.com/2011/12/15/agile-project-management-using-jira-and-greenhopper/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1723025d8566b7467d77a82ef281d511?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">oshyninc</media:title>
		</media:content>

		<media:content url="http://oshyn.com/blogResources/AlexandraBarcelona/Project%20Setup%20Screen.jpg" medium="image" />

		<media:content url="http://oshyn.com/blogResources/AlexandraBarcelona/Planning%20Board.jpg" medium="image" />

		<media:content url="http://oshyn.com/blogResources/AlexandraBarcelona/Task%20Board.jpg" medium="image" />

		<media:content url="http://oshyn.com/blogResources/AlexandraBarcelona/Chart%20Board.jpg" medium="image" />

		<media:content url="http://oshyn.com/blogResources/AlexandraBarcelona/release%20board.jpg" medium="image" />

		<media:content url="http://oshyn.com/blogResources/AlexandraBarcelona/Issue%20Navigator.jpg" medium="image" />

		<media:content url="http://oshyn.com/blogResources/AlexandraBarcelona/Project%20Dashboard.jpg" medium="image" />

		<media:content url="http://oshyn.com/blogResources/AlexandraBarcelona/Project%20reports.jpg" medium="image" />
	</item>
		<item>
		<title>The Mobile Decision &#8211; Native App vs Mobile Optimized Website</title>
		<link>http://oshyninc.wordpress.com/2011/12/12/the-mobile-decision-native-app-vs-mobile-optimized-website/</link>
		<comments>http://oshyninc.wordpress.com/2011/12/12/the-mobile-decision-native-app-vs-mobile-optimized-website/#comments</comments>
		<pubDate>Mon, 12 Dec 2011 01:12:11 +0000</pubDate>
		<dc:creator>The Oshyn Team</dc:creator>
				<category><![CDATA[mobile]]></category>
		<category><![CDATA[app]]></category>
		<category><![CDATA[mobile development]]></category>
		<category><![CDATA[mobile site]]></category>
		<category><![CDATA[mobile website]]></category>
		<category><![CDATA[native app]]></category>
		<category><![CDATA[oshyn]]></category>
		<category><![CDATA[Oshyn_Inc]]></category>

		<guid isPermaLink="false">http://oshyninc.wordpress.com/?p=751</guid>
		<description><![CDATA[Nearly everyone with a smartphone has at least a handful of apps and sites they love and use or visit every day. With over 82.2 million smartphone owners in the US alone1, many businesses are planning their mobile strategy and trying to determine whether that strategy should include a native app or a mobile website. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=oshyninc.wordpress.com&amp;blog=7413847&amp;post=751&amp;subd=oshyninc&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Nearly everyone with a smartphone has at least a handful of apps and sites they love and use or visit every day. With over 82.2 million smartphone owners in the US alone<sup>1</sup>, many businesses are planning their mobile strategy and trying to determine whether that strategy should include a native app or a mobile website.</p>
<p>There are many things to consider when deciding between a native app and a mobile website. Each offers benefits and disadvantages, so it&#8217;s important to incorporate the following considerations into your decision:</p>
<p><strong>Who are you targeting?</strong><br />
Is your goal to keep your brand top-of-mind with existing consumers or do you want to reach a broader audience? If you already have a fanbase or large foundation of existing customers, a native app would keep you at the forefront of their minds when they&#8217;re ready to purchase or consume content. However, if your goal is to broaden your audience, a mobile website with a strong SEO strategy may be more beneficial.</p>
<p><strong>Your Content</strong><br />
What are you offering to your potential mobile customers? The most popular downloaded apps are typically games, weather, social networking, maps/navigation, and music &#8211; apps that have content users crave on a regular basis.</p>
<p>&nbsp;</p>
<p><img src="http://oshyn.com/img/Nielsen%20Report%20Image.PNG" alt="" /></p>
<p>&nbsp;</p>
<p>Additionally, people are becoming increasingly hesitant to take up precious space on their mobile devices unless they&#8217;re certain the app will be something they&#8217;ll use on a regular basis. If you update your content regularly (hourly, daily), an app would provide your potential users with easy access to your information above the competitors. However, if your content is updated less frequently (monthly, bi-monthly, or less), a native app would have a much higher likelihood of getting erased from the user&#8217;s phone and forgotten.</p>
<p><strong>The Smartphone Market and Cost</strong><br />
While Apple dominates the app market with over 500,000 apps in their store<sup>2</sup> (as opposed to Android&#8217;s 200,000<sup>3</sup>), they don&#8217;t dominate the smartphone market.</p>
<p><strong>Smartphone Marketshare by Operating System as of 2011 &#8211; Q1</strong><sup>4</sup><br />
Android &#8211; 36.0%<br />
Nokia/Symbian &#8211; 27.4%<br />
Apple/iOs &#8211; 16.8%<br />
Blackberry &#8211; 12.9%<br />
Microsoft &#8211; 3.6%<br />
Other &#8211; 3.3%</p>
<p>This means that, though Apple has the largest app store, if you want to target more users, your mobile app will have to be developed for multiple devices. Since native app development is so unique from platform to platform, each app needs to be built from the ground up for their respective operating system. On the flipside, developing a mobile website can be significantly less expensive in development costs because it can be optimized to work across multiple platforms.</p>
<p><strong>User Experience</strong><br />
While there are ways to simulate the native app experience with a mobile website (check out Oshyn&#8217;s <a href="http://oshyn.com/work.html">Work page</a> on your mobile device), HTML5 doesn’t quite offer the same UX that smartphone users have come to expect. However, there are ways to optimize the mobile experience using HTML5 and mobile browser detection to serve a high-end mobile site to more modern smartphones and a more simplified version to older smartphones.</p>
<p>With the mobile web projected to surpass desktop usage by 2015<sup>5</sup>, it&#8217;s hard to ignore the need for your business to have a mobile presence. Incorporating a native app or mobile website into your overall digital strategy will become increasingly important over the next few years as the market continues to develop.</p>
<p>*****<br />
REFERENCES</p>
<p>&nbsp;</p>
<p><sup>1</sup><a href="http://www.comscore.com/Press_Events/Press_Releases/2011/8/comScore_Reports_July_2011_U.S._Mobile_Subscriber_Market_Share">http://www.comscore.com</a></p>
<p><sup>2</sup> <a href="http://www.apple.com/iphone/built-in-apps/app-store.html">http://www.apple.com</a></p>
<p><sup>3</sup><a href="https://market.android.com/apps?utm_source=en-us-ha&amp;utm_medium=ha&amp;utm_term=android%20market%20apps">https://market.android.com</a></p>
<p><sup>4</sup><a href="http://www.gartner.com/it/page.jsp?id=1689814">http://www.gartner.com</a></p>
<p><sup>5</sup> <a href="http://mashable.com/2010/04/13/mobile-web-stats/">http://mashable.com</a></p>
<p>Original post can be found <a title="The mobile decision - native app vs mobile optimized website" href="http://oshyn.com/_blog/Social_Media_and_Mobile/post/The_Mobile_Decision_-_Native_App_vs_Mobile_Optimized_Website/">here</a>.</p>
<p>&nbsp;</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/oshyninc.wordpress.com/751/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/oshyninc.wordpress.com/751/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/oshyninc.wordpress.com/751/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/oshyninc.wordpress.com/751/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/oshyninc.wordpress.com/751/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/oshyninc.wordpress.com/751/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/oshyninc.wordpress.com/751/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/oshyninc.wordpress.com/751/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/oshyninc.wordpress.com/751/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/oshyninc.wordpress.com/751/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/oshyninc.wordpress.com/751/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/oshyninc.wordpress.com/751/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/oshyninc.wordpress.com/751/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/oshyninc.wordpress.com/751/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=oshyninc.wordpress.com&amp;blog=7413847&amp;post=751&amp;subd=oshyninc&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://oshyninc.wordpress.com/2011/12/12/the-mobile-decision-native-app-vs-mobile-optimized-website/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1723025d8566b7467d77a82ef281d511?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">oshyninc</media:title>
		</media:content>

		<media:content url="http://oshyn.com/img/Nielsen%20Report%20Image.PNG" medium="image" />
	</item>
		<item>
		<title>Content in OpenText Delivery Server &amp; Moderation in Management Server</title>
		<link>http://oshyninc.wordpress.com/2011/12/08/content-in-opentext-delivery-server-moderation-in-management-server/</link>
		<comments>http://oshyninc.wordpress.com/2011/12/08/content-in-opentext-delivery-server-moderation-in-management-server/#comments</comments>
		<pubDate>Thu, 08 Dec 2011 01:10:56 +0000</pubDate>
		<dc:creator>The Oshyn Team</dc:creator>
				<category><![CDATA[OpenText]]></category>
		<category><![CDATA[cms]]></category>
		<category><![CDATA[content management]]></category>
		<category><![CDATA[Delivery server]]></category>
		<category><![CDATA[management server]]></category>
		<category><![CDATA[open text]]></category>
		<category><![CDATA[opentext]]></category>
		<category><![CDATA[oshyn]]></category>
		<category><![CDATA[Oshyn_Inc]]></category>
		<category><![CDATA[wcm]]></category>
		<category><![CDATA[web content management]]></category>

		<guid isPermaLink="false">http://oshyninc.wordpress.com/?p=749</guid>
		<description><![CDATA[Building User Generated Content in OT Web Solutions Delivery Server is fairly easy using dynaments. However, if you&#8217;d like that content to be moderated by Editors, it&#8217;s much more tricky. This requires the content to be submitted on the external website (Delivery Server), travel back to the Management Server for workflow, editing and moderation, then [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=oshyninc.wordpress.com&amp;blog=7413847&amp;post=749&amp;subd=oshyninc&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<div>
<p>Building User Generated Content in OT Web Solutions Delivery Server is fairly easy using dynaments. However, if you&#8217;d like that content to be moderated by Editors, it&#8217;s much more tricky. This requires the content to be submitted on the external website (Delivery Server), travel back to the Management Server for workflow, editing and moderation, then published back out to Delivery Server. This post shows an example of this pattern.</p>
<p>Our client needed to provide a group of content generators the ability to upload their content into the CMS for an editorial review and approval process through controlled workflows.</p>
<p>&nbsp;</p>
<p>Each of these users has their own page in the site where they provide their content to viewers.</p>
<p>The issue, however, was that this small group of individuals could not be given access to the CMS for various reasons:</p>
<ul>
<li>It would require CMS training</li>
<li>It might require a new license with an increased number of editorial acces (Smart Edit users )</li>
<li>Policy restrictions put in place by the client did not allow everyone to have access to the CMS.</li>
</ul>
<p>&nbsp;</p>
<p>Our purposed solution allows this group of users to upload files on their respective pages yet still following the regular CMS workflow approval process.</p>
<h1>Our Solution</h1>
<p>The content generators were given access to a specific section of the site. This area is restricted to individuals of this particular group using an LS constraint.</p>
<p>&nbsp;</p>
<p>The login page:</p>
<p><img src="http://oshyn.com/blogResources/jcanadas/O231-1.jpg" alt="" /></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>Figure 1: Portal Login</p>
<p>&nbsp;</p>
<p>Once inside, they are presented with a simple interface that allows them to edit properties of the file:</p>
<p><img src="http://oshyn.com/blogResources/jcanadas/O231-2.png" alt="" /></p>
<p>&nbsp;</p>
<p>Figure 2: Main editing interface</p>
<p>&nbsp;</p>
<p>They can select a file to upload, select the date (defaults as ‘today’), and edit the document title and description. Upon submitting the form the user is prompted to confirm the upload by an overlay:</p>
<p><img src="http://oshyn.com/blogResources/jcanadas/O231-3.png" alt="" /></p>
<p>&nbsp;</p>
<p>Figure 3: Confirm upload overlay</p>
<p>&nbsp;</p>
<p>The editor can chose to edit the parameters if desired. Once they confirm the upload, they’ll be presented with the following page:</p>
<p><img src="http://oshyn.com/blogResources/jcanadas/O231-4.PNG" alt="" /></p>
<p>Figure 4: Upload success page</p>
<p>&nbsp;</p>
<p>Here they’ll be given the following information/options:</p>
<ul>
<li>Direct URL of where their file will be when the workflow approval process is completed and the page is published</li>
<li>Link to upload another presentation</li>
<li>Link to their page (User ID attribute is linked to page through CMS / dynaments interaction)</li>
<li>Option to logout</li>
</ul>
<p>The user’s uploaded document goes through the assigned workflow approval process and review and eventually gets published to the live site.</p>
<p>&nbsp;</p>
<h1>Technical Overview</h1>
<p>Here is a rough diagram of what happens when the editor uploads the file:</p>
<p><img src="http://oshyn.com/blogResources/jcanadas/O231-5.png" alt="" /></p>
<p>&nbsp;</p>
<p>Figure 5: Rough Tech Diagram of the Solution</p>
<p>&nbsp;</p>
<p>The file goes through a dynament which forwards the packet data directly to a Web Service server that handles all requests (to remove load from the Delivery Servers).</p>
<p>&nbsp;</p>
<p>The Services box will do two things:</p>
<ul>
<li>First, it will send the file information through WebDav so the file is created in the CMS server under a specific asset manager folder.</li>
<li>Second, after the file is created, it will update the user’s page and submit it to the workflow process.</li>
</ul>
<p>If the page is approved, it will be published to Delivery Server and the document will be published to the web servers.</p>
<h1>The Result</h1>
<p>As part of the workflow process, once approved, the user who uploaded the file will receive a confirmation message and their page will be published with the updated document links:</p>
<p><img src="http://oshyn.com/blogResources/jcanadas/O231-6.jpg" alt="" /></p>
<p>&nbsp;</p>
<p>Figure 6: Presentation User Page</p>
<p>&nbsp;</p>
<div>
<hr align="left" size="1" width="33%" />
</div>
</div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/oshyninc.wordpress.com/749/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/oshyninc.wordpress.com/749/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/oshyninc.wordpress.com/749/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/oshyninc.wordpress.com/749/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/oshyninc.wordpress.com/749/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/oshyninc.wordpress.com/749/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/oshyninc.wordpress.com/749/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/oshyninc.wordpress.com/749/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/oshyninc.wordpress.com/749/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/oshyninc.wordpress.com/749/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/oshyninc.wordpress.com/749/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/oshyninc.wordpress.com/749/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/oshyninc.wordpress.com/749/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/oshyninc.wordpress.com/749/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=oshyninc.wordpress.com&amp;blog=7413847&amp;post=749&amp;subd=oshyninc&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://oshyninc.wordpress.com/2011/12/08/content-in-opentext-delivery-server-moderation-in-management-server/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1723025d8566b7467d77a82ef281d511?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">oshyninc</media:title>
		</media:content>

		<media:content url="http://oshyn.com/blogResources/jcanadas/O231-1.jpg" medium="image" />

		<media:content url="http://oshyn.com/blogResources/jcanadas/O231-2.png" medium="image" />

		<media:content url="http://oshyn.com/blogResources/jcanadas/O231-3.png" medium="image" />

		<media:content url="http://oshyn.com/blogResources/jcanadas/O231-4.PNG" medium="image" />

		<media:content url="http://oshyn.com/blogResources/jcanadas/O231-5.png" medium="image" />

		<media:content url="http://oshyn.com/blogResources/jcanadas/O231-6.jpg" medium="image" />
	</item>
	</channel>
</rss>
