<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>WebLinc Labs</title>
	<atom:link href="http://www.weblinc.com/labs/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.weblinc.com/labs</link>
	<description></description>
	<lastBuildDate>Tue, 03 Jun 2014 18:23:48 +0000</lastBuildDate>
	<language>en-US</language>
		<sy:updatePeriod>hourly</sy:updatePeriod>
		<sy:updateFrequency>1</sy:updateFrequency>
	
	<item>
		<title>Testing your front-end for i18n with the pseudolocalization widget</title>
		<link>http://www.weblinc.com/labs/testing-your-front-end-for-i18n-with-the-pseudolocalization-widget/</link>
		<comments>http://www.weblinc.com/labs/testing-your-front-end-for-i18n-with-the-pseudolocalization-widget/#comments</comments>
		<pubDate>Tue, 03 Jun 2014 18:23:48 +0000</pubDate>
		<dc:creator><![CDATA[Rodrigo Gualberto]]></dc:creator>
				<category><![CDATA[Lab Experiments]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://www.weblinc.com/labs/?p=1799</guid>
		<description><![CDATA[When websites reach a critical mass in popularity, the need for localization becomes apparent, as it is the best way to reach a larger audience. To accomplish this, site owners often commission third parties to assist in the site translation. The question few seem to consider is “Will my site look as clean and polished, [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>When websites reach a critical mass in popularity, the need for localization becomes apparent, as it is the best way to reach a larger audience. To accomplish this, site owners often commission third parties to assist in the site translation. The question few seem to consider is “Will my site look as clean and polished, or even similar once translated?”  The answer is almost universally &#8216;no&#8217;, with few exceptions.  We have developed an application for pseudo-localizing that will test all of the common problems encountered with localization, letter accents, word length, directional display, and text node anomalies.  Instructions for downloading the extension are included at the end of this post.</p>
<p>There may not be many issues translating the site into a similar language that derives from a source language close to the original. But as the goal is to drive diverse traffic, this is often not the case.</p>
<p>Some phrases, when translated, are much longer or shorter than the source language. This alone wreaks havoc on a site&#8217;s carefully designed UI. Elements often extend further than they should, or worse, the text overflows and is either hidden or layering over other text.</p>
<p>Another unexpected change occurs when the new language is read in a different direction than the original. Arabic script and Hebrew are both read from right to left, which can directly impact the user&#8217;s interpretation of the site&#8217;s structure and confuse them in their navigation attempts. Finally, characters and font glyphs may be unavailable to some users; it is important to avoid a translation containing an errant glyph that disrupts the user&#8217;s interpretation.</p>
<p>So how do we deal with these problems? Developers need a tool that will allow them to preview the state of a site once all of these issues have been applied in order to write in a fix for them. Enter pseudoL10N.</p>
<h2>Pseudo localizing</h2>
<p>Our app is a one-stop shop for pseudo localizing needs, as it can test all of these common problems individually or at once. An explanation of how each option functions and why it is important follows.</p>
<p><a href="http://www.weblinc.com/labs/files/2014/05/basepage.png" target="_blank"><img class="alignnone size-large wp-image-1802" src="http://www.weblinc.com/labs/files/2014/05/basepage-300x260.png" alt="pseudo-basepage" width="300" height="260" /></a></p>
<p><span style="color: #b2b2b2">Base page with no alterations</span></p>
<h2>Accenter</h2>
<p>The accenter iterates each character in a text node, matching it with its accented counterpart using a predefined unicode dictionary. The value is then converted from unicode to readable text and output.</p>
<p>The accented value helps developers see which characters may display improperly due to font-size and available glyphs for the specific font used.</p>
<p><a href="http://www.weblinc.com/labs/files/2014/05/accenter.png" target="_blank"><img class="alignnone size-large wp-image-1800" src="http://www.weblinc.com/labs/files/2014/05/accenter-300x260.png" alt="pseudo-accenter" width="300" height="260" /></a></p>
<h2>Length Modifier</h2>
<p>The length modifier takes each text node that is passed into it and calculates its length. It then uses this value to multiply against the specified difference. If the length is greater, it adds in the proper amount &#8216;equal&#8217; characters on either side of the text node and outputs it. Conversely, if the length is smaller, the output is reduced from either side of the text node.</p>
<p>The length modifier simulates the appearance of a site when phrases are translated into languages with different average lengths. Percentages are used as there are often pre-existing data on comparable phrase lengths for different languages that a developer can use to test.</p>
<p><a href="http://www.weblinc.com/labs/files/2014/05/length-mod.png" target="_blank"><img class="alignnone size-large wp-image-1805" src="http://www.weblinc.com/labs/files/2014/05/length-mod-300x260.png" alt="pseudo-length-mod" width="300" height="260" /></a></p>
<h2>Fake Bidirectional</h2>
<p>The page is simply told to display text from right to left rather than left to right. It is an attribute added to the body element.</p>
<p>Fake Bidirectional is simple in that it only affects default alignment for most elements. Useful in that it often reveals the flaws in floated elements when they start to crash into text nodes.</p>
<p><a href="http://www.weblinc.com/labs/files/2014/05/fake-bidi.png" target="_blank"><img class="alignnone size-large wp-image-1804" src="http://www.weblinc.com/labs/files/2014/05/fake-bidi-300x260.png" alt="pseudo-fake-bidi" width="300" height="260" /></a></p>
<h2>Brackets</h2>
<p>This option inserts a pair of brackets into each text node: an opening bracket at the beginning and a closing one at the end.</p>
<p>The brackets encapsulate each text node so that any unintended truncations of nodes or any other anomalies are immediately apparent.</p>
<p><a href="http://www.weblinc.com/labs/files/2014/05/brackets.png" target="_blank"><img class="alignnone size-large wp-image-1803" src="http://www.weblinc.com/labs/files/2014/05/brackets-300x260.png" alt="pseudo-brackets" width="300" height="260" /></a></p>
<p><a href="http://www.weblinc.com/labs/files/2014/05/all.png" target="_blank"><img class="alignnone size-large wp-image-1801" src="http://www.weblinc.com/labs/files/2014/05/all-300x260.png" alt="pseudo-all" width="300" height="260" /></a></p>
<p><span style="color: #b2b2b2">All pseudolocalizations at once</span></p>
<h2>Localization</h2>
<p>Finally, the localization of a site itself is also essential. While being able to preview the appearance of a site in a variety of technical aspects is invaluable, the ability to see the actual language on the page is important as well. The widget allows the user to quickly run their page through Google Translate and get machine translated text back. Additionally, it would be wise to apply the pseudo localization to this translated page so that the end representation is as accurate as possible.</p>
<h2>Final Thoughts</h2>
<p>In order to use the extension, you can pull it down from the github link provided below and install it as a &#8216;developer extension&#8217;. The instructions to do this are also below.</p>
<ul>
<li><a class="external-link" style="color: #006daf" href="https://github.com/weblinc/pseudoL10N" rel="nofollow"><strong>Github</strong></a> </li>
<li><a class="external-link" style="color: #006daf" href="https://chrome.google.com/webstore/detail/pseudol10n/oolldafdejgpnhnciahfaiaonjinfamk" rel="nofollow"><strong>Install for Google Chrome</strong></a> </li>
</ul>
<p>If you find any bugs or simply want to add to/contribute to the project, feel free to either submit a report or fork the project and work on it yourself. Just submit a pull request once you&#8217;re finished.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.weblinc.com/labs/testing-your-front-end-for-i18n-with-the-pseudolocalization-widget/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Be like a newb</title>
		<link>http://www.weblinc.com/labs/be-like-a-newb/</link>
		<comments>http://www.weblinc.com/labs/be-like-a-newb/#comments</comments>
		<pubDate>Thu, 22 May 2014 19:00:36 +0000</pubDate>
		<dc:creator><![CDATA[Miguel Ángel Pérez]]></dc:creator>
				<category><![CDATA[Digital Culture]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://www.weblinc.com/labs/?p=1790</guid>
		<description><![CDATA[It’s quite embarrassing when the bright spotlight of our peers&#8217; attention shines on our gaps of knowledge. Many people quickly formulate a white lie to avoid this embarrassment. We work in a competitive and advancing industry: we need to prove our technical worth in hopes of maintaining our relevance as craftsmen. We don’t want to [&#8230;]]]></description>
				<content:encoded><![CDATA[<p><a href="http://www.weblinc.com/labs/files/2014/05/questions.png"><img src="http://www.weblinc.com/labs/files/2014/05/questions.png" alt="Picture of cartoon character proposing a question." width="250" height="250" class="alignleft size-full wp-image-1792" /></a></p>
<p>It’s quite embarrassing when the bright spotlight of our peers&#8217; attention shines on our gaps of knowledge. Many people quickly formulate a white lie to avoid this embarrassment. We work in a competitive and advancing industry: we need to prove our technical worth in hopes of maintaining our relevance as craftsmen. We don’t want to admit when we don&#8217;t know something. Nodding our heads when we don’t understand is a big mistake. Covering up lack of knowledge only keeps us from the answers; instead, we need to fill in those gaps of insight.</p>
<h2>Being like a newb makes you a better expert</h2>
<p>We were once novices full of questions and hungry for answers. Our modest view of our own skills forced us to listen and learn, which allowed us to grow. As we become experts we often mistakenly abandon these behaviors. Acting like a novice means re-acquiring humility, that is, understanding that our own skills may not be equal to those of our peers. Humility enables consistent improvement &#8212; let’s examine how.</p>
<h3>Humility promotes improvement</h3>
<p>Humility means admitting a lack of knowledge and asking questions. Remaining humble and getting answers to those questions makes you smarter. Believing you’re the expert in the room only makes you the least able to learn, and promoting that idea makes you less approachable. In our ever-advancing industry there is always a better solution around the corner. But if we’re convinced we already have the best solution, how can we see the possibilities for improvement?</p>
<h3>It makes for a better team</h3>
<p>Understanding how little we know makes us less likely to judge our peers for their mistakes. A lack of humility could cause us to permanently damage the team’s ability to collaborate. In our quest to prove our technical prowess we might be tempted to draw attention to the mistakes of others in a disruptive way, which encourages them to cover up future mistakes. This breakdown in communication could lead to significant problems and misunderstandings.</p>
<h2>Enjoy being wrong as much as you enjoy being right</h2>
<blockquote><p>&#8220;There is no such thing as a failed experiment, only those with unexpected outcomes.&#8221; &#8211; Richard Buckminster Fuller, US engineer</p></blockquote>
<p>Novices understand that there’s nothing wrong with being wrong. When others are willing to constructively show us our mistakes, they give us a golden opportunity to improve. Criticism provides a shiny surface for reflection, which in turn helps us improve ourselves. Criticism can be difficult to accept, especially if it is not delivered in a tactful way.  Try to keep your personal feelings out of the situation and focus on the message. View it as a chance to learn rather than a failure.</p>
<h2>It takes a village</h2>
<p>A single person has limited knowledge; therefore teams are needed to produce complex software. Approaching situations from a novice perspective and re-developing humility enables collaboration, and collaboration is the oil that keeps a team running smoothly.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.weblinc.com/labs/be-like-a-newb/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Web Performance Checklist</title>
		<link>http://www.weblinc.com/labs/web-performance-checklist/</link>
		<comments>http://www.weblinc.com/labs/web-performance-checklist/#comments</comments>
		<pubDate>Tue, 13 May 2014 14:58:02 +0000</pubDate>
		<dc:creator><![CDATA[Pete Schuster]]></dc:creator>
				<category><![CDATA[Lab Experiments]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[Web Standards]]></category>

		<guid isPermaLink="false">http://www.weblinc.com/labs/?p=1752</guid>
		<description><![CDATA[Website performance and page speed are important not only to your users, but also to your bottom line. According to Mobile Marketer and as cited by Luke Wroblewski in his article on ecommerce and page speed: &#8220;When you are doing business on the Web, every second counts.&#8221; Gomez. (2010). Why Web Performance Matters: Is Your Site [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Website performance and page speed are important not only to your users, but also to your bottom line. According to <a href="http://www.mobilemarketer.com/cms/opinion/columns/12732.html" target="_blank">Mobile Marketer</a> and as cited by <a href="http://www.lukew.com/ff/entry.asp?1553" target="_blank">Luke Wroblewski</a> in his article on ecommerce and page speed:</p>
<blockquote><p>&#8220;When you are doing business on the Web, every second counts.&#8221;</p>
<p>Gomez. (2010). <em>Why Web Performance Matters: Is Your Site Driving Customers Away? </em>[White Paper]. Retrieved from <a href="http://www.mcrinc.com/Documents/Newsletters/201110_why_web_performance_matters.pdf">http://www.mcrinc.com/Documents/Newsletters/201110_why_web_performance_matters.pdf</a></p></blockquote>
<p>The Compuware-owned firm&#8217;s study demonstrated that 58 percent of people expect a mobile Web site to perform like a desktop Web site. If a page load takes more than two seconds, 40 percent are likely to abandon that site. And, finally, “the average impact of a one-second delay meant a 7 percent reduction in conversions. For the $100,000 per day ecommerce site, a one-second delay means $2.5 million in lost revenues in a year.”</p>
<p>With such a high impact on User Experience (UX) and ultimately conversions, the WebLinc team takes page performance seriously. We recommend various techniques to ensure a site achieves peak performance.</p>
<h2>Performance Techniques</h2>
<h3>Getting a Baseline</h3>
<p>Performance testing requires a baseline measurement. WebpageTest.org is an excellent tool. This industry standard site takes a snapshot of a page&#8217;s current load time, render time, and asset breakdown and offers some basic performance suggestions. WebpageTest.org can compare current measurement data with previous tests to evaluate the difference when a new feature or performance enhancement is added to a site.</p>
<h3>Images</h3>
<p>Images are generally the largest contributor to the total download size of any web page. It is important to serve users the smallest possible file size without affecting image quality. Use the “Save for Web” feature when exporting images from PhotoShop. This feature removes any meta information that inflates the overall size of the image. Be sure to use the &#8220;Two Up&#8221; view setting, and move the quality slider to lowest setting possible before invoking artifacts in your optimized image. Pay special attention to text and areas that use the color red, because this is where artifacts typically present themselves.</p>
<p>In addition to optimizing the quality of the image, check the &#8220;Progressive JPEG&#8221; option, which is recommended in the WebPagetest.org baseline. It might be helpful to save your Progressive JPEGs settings as a preset for future use.</p>
<h3>CSS</h3>
<p>Cascading Style Sheets (CSS), is the website code that gives life to designs. The overall look changes how paragraphs, headings, layouts, etc. appear on your site. Create a style guide for your site to ensure your CSS is as lean and efficient as possible. A style guide hones the &#8220;visual language&#8221; of a site to ensure consistency. A streamlined hierarchy of headings, text, and graphic elements reduces the number of redundant and/or page specific styles.</p>
<h3>JavaScript</h3>
<p>JavaScript (JS) adds the special functionality to a site. Like CSS, JS is a render-blocking asset and should be loaded at the bottom of the site&#8217;s HTML code, just above the closing &gt;/body&lt;. Some JS, like Modernizr, must run in the &gt;head&lt; of the document, and should remain as short as possible. Just like CSS, it&#8217;s important to remove any unused or excessive JS, as it adds to the download size of the page.</p>
<h3>Reduce HTTP Requests</h3>
<p>The browser makes an HTTP request to a server, such as a hosting site or a third party server like Facebook or Twitter. Each request takes time to execute; reducing the number of requests reduces the download time of the site.</p>
<h3>Asset Concatenation</h3>
<p>One way to reduce HTTP requests is to concatenate files that are used on your site. A site may require several CSS or JS files to create advanced functionality like a lightbox or an image carousel. Instead of calling these files separately, they should be added together with your main CSS and JS to create one large CSS or JS file. Reducing the number of files reduces the number of HTTP requests.</p>
<h3>Image Sprites</h3>
<p>Another great way to reduce HTTP requests is to combine images into a single file called an image sprite. Image sprites are essentially large filmstrips that connect many different smaller images. CSS is then used to crop the larger file so you present the end user with a single &#8220;frame&#8221; of the great image sprite.</p>
<h3>Minify Assets</h3>
<p>Surprisingly, white space in documents increases the download size. Remove spaces and carriage returns for faster downloads of text based assets. Specially designed software like YUI Compressor employs a set of rules to remove all white space from your CSS and JS while maintaining the same functionality. Typically you can keep two sets of files for each asset, a minified and an expanded version. Developers will be able to read the expanded version, while computers can read the minified version.</p>
<h3>Optimize Render Block Assets</h3>
<p>As previously mentioned, CSS and JS are render blocking assets and their placement on the page can significantly affect the speed in which users can interact with the site. Making sure JS is always after CSS and as far down in the code as possible is just the first step. Many times JS can be loaded asynchronously. This means that the server can load the JS without interfering with the display or rendering of other assets on the page. Loading JS asynchronously turns JS into a non render blocking asset, allowing your users to interact with the page more quickly.</p>
<h3>Implement a CDN</h3>
<p>A Content Delivery Network (CDN) is a way to bring the physical location of assets closer to the users who are requesting them. As we discussed in the &#8220;Reduce HTTP Requests&#8221; section, each request is a call to a specific server. A user may be hundreds or even thousands of miles away from the server, so the request can take longer to reach them. A CDN gathers the assets needed for your site, and distributes them in many locations. When a user requests those assets, the time for the request to reach the user is greatly reduced.</p>
<h2>Performance Checklist</h2>
<ol>
<li>Get a baseline from Webpagetest.org</li>
<li>Serve Compressed Images</li>
<li>Serve Progressive JPEGs when possible</li>
<li>Optimize CSS to reduce redundant rules and selectors</li>
<li>Optimize JS to remove unused JS and JS plugins</li>
<li>Combine CSS and JS files to reduce HTTP requests</li>
<li>Combine images into image sprites to reduce HTTP requests</li>
<li>Minify CSS and JS files to reduce download size</li>
<li>Load JS after CSS</li>
<li>Load JS asynchronously when possible</li>
<li>Utilize a CDN to serve assets</li>
</ol>
<h2>In Conclusion</h2>
<p>Webpage performance is an ongoing challenge. As your site grows, you may need to implement new techniques to maintain top performance. At WebLinc, we constantly perform diagnostics on our clients&#8217; sites to ensure the best user experience possible.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.weblinc.com/labs/web-performance-checklist/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ZomBeacon &#8211; Exploring Apple&#8217;s iBeacon Technology in a New Way</title>
		<link>http://www.weblinc.com/labs/zombeacon/</link>
		<comments>http://www.weblinc.com/labs/zombeacon/#comments</comments>
		<pubDate>Thu, 08 May 2014 19:48:47 +0000</pubDate>
		<dc:creator><![CDATA[Patrick Adams]]></dc:creator>
				<category><![CDATA[Lab Experiments]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[iBeacon]]></category>
		<category><![CDATA[Zombeacon]]></category>

		<guid isPermaLink="false">http://www.weblinc.com/labs/?p=1760</guid>
		<description><![CDATA[As part of WebLinc’s commitment to innovation, employees are given the freedom to explore new ideas and technologies. Sometimes the endeavor produces great new commerce features for our clients and other times it results in experimental games. Either way, our team gains valuable knowledge for future projects. Staying on the cutting edge of technology, our CEO, Darren Hill, [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>As part of WebLinc’s commitment to innovation, employees are given the freedom to explore new ideas and technologies. Sometimes the endeavor produces great new commerce features for our clients and other times it results in experimental games. Either way, our team gains valuable knowledge for future projects. Staying on the cutting edge of technology, our CEO, Darren Hill, challenged the team to explore Apple’s new iBeacon technology.</p>
<p>iBeacon uses low-frequency Bluetooth (BLE) technology. The tiny iBeacon devices continuously broadcast signals that receivers, i.e. smartphones with BLE capability, can detect. When a signal reaches an iBeacon-enabled app, it can trigger an action within the app such as linking to a webpage or displaying stored content. iBeacon apps do not require a WiFi or cellular network connection, making them ideal for in store use.</p>
<p><a href="http://www.weblinc.com/labs/files/2014/05/Global.jpeg"><img class="alignright wp-image-1763 size-full" src="http://www.weblinc.com/labs/files/2014/05/Global.jpeg" alt="Global" width="300" height="532" /></a></p>
<p>This is an important skillset for our team to add to our résumé. The technology has tremendous possibilities beyond the simple task of offering a discount to someone who is in close proximity. It opens the door to mobile payments, in store directions/way-finding, data exchange, etc., and enables new in store communication opportunities for retailers, contributing to their omni-channel presence. Retailers can now meaningfully engage customers with their app in a physical store location.</p>
<p>To test the waters for our customers, we developed ZomBeacon, a real-world multiplayer zombie game in which players are either “survivors” or “zombies.” The app was created with the Objective-C language using Apple’s Xcode IDE. The process was a learning experience; it can be challenging to find solutions when developing for a brand new technology. With ZomBeacon, our team decided to push the technology in a direction that we haven’t seen in the market before. As this technology becomes commonplace, the skills we learned prepare us to help our clients engage their customers in store.</p>
<p>To give you a sense of how the game works, each player’s phone functions as both an iBeacon and a receiver. Players are either Survivors or Zombies and are shown on a GPS-enabled map with corresponding icons. They can find or avoid each other in real time by viewing players’ locations on the map; GPS locations track players within a ¼ mile area. A survivor’s objective is to headshot the zombies, while a zombie’s goal is to bite the survivors. Headshots and bites can be initiated when zombies and survivors are within 6 feet of each other.</p>
<p>When a player taps the bite/headshot button, it sends out a Bluetooth signal. When a survivor receives a zombie’s signal, they become infected, which turns them into a zombie. When a zombie’s phone detects the Bluetooth signal of a survivor, i.e. receives a headshot, they are “dead” and out of the game.</p>
<p>As with any developer experiment, we encountered challenges along the way and learned a lot of useful tips and best practices for future iterations with iBeacon technology:</p>
<ul>
<li>The inability to transmit a Bluetooth signal from the phone when the app is running in the background forced us to develop a new gameplay option. In the initial design, a headshot/bite would automatically execute when in range, but this would not work when the app is in the background. To compensate, we incorporated an “action” button for the players to tap to initiate a headshot/bite, which turned out to be more interactive and engaging for users than an automatic action.</li>
<li>A bug introduced in the iOS 7.1 update causes Bluetooth iBeacon scanning to randomly stop working, so we included error checking. Now, if there is a scanning issue, a message advises the user to reset their device.</li>
</ul>
<p>Creating ZomBeacon was not only fun for our team, but a great learning experience as we begin to harness Apple’s iBeacon technology for exciting options and potential uses with customers.</p>
<p><a style="margin: 0 0 10px;padding: 10px 0;width: 300px;float: right;clear: right;color: #fff;text-align: center;background: #C5362D" href="https://itunes.apple.com/app/id825793215">Download the game now!</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.weblinc.com/labs/zombeacon/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mavericks Desktop Push Notifications</title>
		<link>http://www.weblinc.com/labs/mavericks-desktop-push-notifications/</link>
		<comments>http://www.weblinc.com/labs/mavericks-desktop-push-notifications/#comments</comments>
		<pubDate>Fri, 02 May 2014 13:37:37 +0000</pubDate>
		<dc:creator><![CDATA[fbonnevier]]></dc:creator>
				<category><![CDATA[Lab Experiments]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://www.weblinc.com/labs/?p=1755</guid>
		<description><![CDATA[Web technology is a rapidly evolving organism. It relies on changes to its DNA to sustain life and push existing boundaries. With the advent of Mavericks, Apple&#8217;s iOS 10.9 update, web services can now send push notifications directly to users desktops. These notifications bypass pitfalls commonly encountered with email and in-browser notifications systems by delivering [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Web technology is a rapidly evolving organism. It relies on changes to its DNA to sustain life and push existing boundaries. With the advent of Mavericks, Apple&#8217;s iOS 10.9 update, web services can now send push notifications directly to users desktops. These notifications bypass pitfalls commonly encountered with email and in-browser notifications systems by delivering content directly to users. Content can include shipping notifications, engagement in social media-like platforms associated with some eCommerce sites (FreePeople) or any piece of important, actionable content.</p>
<h2 style="color: #000000"><a name="MavericksDesktopPushNotifications-Implementation"></a>Implementation</h2>
<p>To implement Mavericks Desktop Push Notifications a web service or site needs only:</p>
<ul>
<li>Have access to a publicly facing server with an SSL certificate.</li>
<li>Register with APNS and certify the appropriate services.</li>
<li>Develop front-end interaction and back-end logic to choose which notifications to send.</li>
</ul>
<p>The total development time (not R&amp;D) is estimated at around 24 hours for implementation.</p>
<h2 style="color: #000000"><a name="MavericksDesktopPushNotifications-CurrentLandscape"></a>Current Landscape</h2>
<p>Web applications have historically relied upon email notifications to announce to their users that changes have taken place; be it a “starred” or “liked” item, an item coming back into stock, or an order shipping. Email notification is plagued with the possibility of bad or unused credentials and overly aggressive spam filters. Emails can go unchecked or simply unobserved with vital content not reaching the user. Recently some in-browser notification systems have become available that have their own drawbacks. The in-browser notification systems offered by Chrome, for example, rely on a user running Chrome and having the source application installed with the correct permissions to send notifications.</p>
<h2 style="color: #000000"><a name="MavericksDesktopPushNotifications-MavericksDesktopPushNotifications"></a>Mavericks Desktop Push Notifications</h2>
<p>Mavericks Desktop Notifications provide a rapid content delivery service designed to notify users immediately of important changes. By leveraging vetted UI practices Apple has successfully transposed iOS Application notifications to the desktop. After first visiting a new site and granting permission to receive notifications the user supplies a unique ID that can be used to correspond directly with them in the future. Additionally, Apple empowers users by granting them complete authority over whether or not they can receive notifications from a particular service.</p>
<p>How can they be used?</p>
<ul>
<li>A customer of a Fashion eCommerce site “favorites” another user&#8217;s collection of style pictures.</li>
<li>Seconds later a notification is dispatched.</li>
<li>The notification appears in the top right corner of the screen and offers the user the ability to click on the notification.</li>
<li>The user clicks and is immediately directed to a page with that style picture that now reflects the “favorited” status from the first user.</li>
</ul>
<p>The immediacy of this interaction engenders conversation. This conversation will lead to an enhanced engagement with the brand.</p>
<p>Mavericks Desktop Push Notifications can also be used in tandem with existing notification delivery systems.</p>
<ul>
<li>A customer places an order and waits to receive shipping information.</li>
<li>A short time later their new item is assigned a tracking number and picked up by a shipping company.</li>
<li>A notification is dispatched immediately to that user with the tracking information linking them to a page to check the status.</li>
<li>In the same instant, an e-mail is sent to the user also providing them with the same information.</li>
</ul>
<p>The user is quickly informed, is easily able to act with the information they have been given, and retains an email for future reference.</p>
<p>User engagement is paramount to brand success, and Mavericks Desktop Push Notifications represent a milestone in pursuit of this goal.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.weblinc.com/labs/mavericks-desktop-push-notifications/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Progressively Enhance It! at Barcamp Philly</title>
		<link>http://www.weblinc.com/labs/progressively-enhance-it-at-barcamp-philly/</link>
		<comments>http://www.weblinc.com/labs/progressively-enhance-it-at-barcamp-philly/#comments</comments>
		<pubDate>Thu, 01 May 2014 14:36:48 +0000</pubDate>
		<dc:creator><![CDATA[Chris Cressman]]></dc:creator>
				<category><![CDATA[Web Development]]></category>
		<category><![CDATA[WebLinc]]></category>
		<category><![CDATA[BarCamp]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[Lo-Dash]]></category>
		<category><![CDATA[modenizr]]></category>
		<category><![CDATA[progressively enhance]]></category>
		<category><![CDATA[Underscore]]></category>

		<guid isPermaLink="false">http://www.weblinc.com/labs/?p=1591</guid>
		<description><![CDATA[In October, I presented Progressively Enhance It! with jQuery, Underscore &#38; Modernizr at Barcamp Philly 6. The presentation uses real case studies from WebLinc eCommerce to demonstrate practical applications of jQuery, Underscore /Lo-Dash, and Modernizr. I chose this topic to exhibit the value of these libraries within a progressively enhanced application, as most articles about these libraries (particularly Underscore/Lo-Dash) are more relevant to single-page applications. I [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>In October, I presented <a href="https://github.com/chriscressman/progressively-enhance-it">Progressively Enhance It! with jQuery, Underscore &amp; Modernizr</a> at <a href="http://barcampphilly.org/">Barcamp Philly 6</a>.</p>
<p>The <a href="https://rawgithub.com/chriscressman/progressively-enhance-it/master/slides.html">presentation</a> uses real case studies from <a href="http://www.weblinc.com/products/weblinc-ecommerce/">WebLinc eCommerce</a> to demonstrate practical applications of <a href="http://jquery.com/">jQuery</a>, <a href="http://underscorejs.org/">Underscore</a> /<a href="http://lodash.com/">Lo-Dash</a>, and <a href="http://modernizr.com/">Modernizr</a>. I chose this topic to exhibit the value of these libraries within a progressively enhanced application, as most articles about these libraries (particularly Underscore/Lo-Dash) are more relevant to single-page applications.</p>
<p>I think it would be worthwhile to take a closer look at the examples from the presentation. Each of the examples use a structure similar to the following:</p>
<div>
<pre class="crayon-plain-tag">&lt;head&gt;
    …
    &lt;script src="modernizr.js"&gt;&lt;/script&gt;
    &lt;link rel="stylesheet" href="application.css"&gt;&lt;/link&gt;
&lt;/head&gt;
&lt;body&gt;
    …
    &lt;script src="underscore.js"&gt;&lt;/script&gt;
    &lt;script src="jquery.js"&gt;&lt;/script&gt;
    &lt;script src="application.js"&gt;&lt;/script&gt;
&lt;/body&gt;</pre>
</div>
<p>Notice that Modernizr is loaded in the document head, above the application-specific CSS, while Underscore and jQuery are loaded at the bottom of the body, followed by the application-specific JavaScript. Modernizr is loaded at the top so it can modify the DOM before CSS is applied. We&#8217;ll look at that in more detail in our first example. Underscore and jQuery can be loaded anywhere, as long as they precede your application&#8217;s own JavaScript file(s).</p>
<p>Let&#8217;s get started with our examples:</p>
<ul>
<li><a title="update-quanity-form" href="http://www.weblinc.com/labs/update-quanity-form/" target="_blank">Update quantity form</a></li>
<li>Hover intent</li>
<li>Delayed loading indicator</li>
<li>Product grid</li>
<li>Conditional address form</li>
<li>Lazy loaded images</li>
<li>Breakpoint change event</li>
<li>Product zoom</li>
<li>Delayed loading indicator revisited</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.weblinc.com/labs/progressively-enhance-it-at-barcamp-philly/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Update Quantity Form</title>
		<link>http://www.weblinc.com/labs/update-quanity-form/</link>
		<comments>http://www.weblinc.com/labs/update-quanity-form/#comments</comments>
		<pubDate>Thu, 01 May 2014 14:36:43 +0000</pubDate>
		<dc:creator><![CDATA[Chris Cressman]]></dc:creator>
				<category><![CDATA[Web Development]]></category>
		<category><![CDATA[WebLinc]]></category>
		<category><![CDATA[cart]]></category>
		<category><![CDATA[debounce]]></category>
		<category><![CDATA[form]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[modenizr]]></category>
		<category><![CDATA[update]]></category>

		<guid isPermaLink="false">http://www.weblinc.com/labs/?p=1598</guid>
		<description><![CDATA[This article presents the first example in a series from Progressively Enhance It! at Barcamp Philly. In this example, we&#8217;ll use Modernizr&#8217;s &#8216;js&#8217; body class and Underscore&#8217;s debounce method to enhance a simple form used to update the quantity of an item in a shopping cart. The examples Pictured above are two example shopping carts. In both carts, a form [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>This article presents the first example in a series from <a href="https://github.com/chriscressman/weblinc-labs-articles/blob/master/progressively-enhance-it-at-barcamp-philly/index.md">Progressively Enhance It! at Barcamp Philly</a>.</p>
<p>In this example, we&#8217;ll use Modernizr&#8217;s <a href="http://alistapart.com/article/taking-advantage-of-html5-and-css3-with-modernizr#snippet1">&#8216;js&#8217; body class</a> and Underscore&#8217;s <a href="http://underscorejs.org/#debounce">debounce</a> method to enhance a simple form used to update the quantity of an item in a shopping cart.</p>
<h2><a href="https://github.com/chriscressman/weblinc-labs-articles/blob/master/update-quantity-form/index.md#the-examples" name="the-examples"></a>The examples</h2>
<p><a href="https://github.com/chriscressman/weblinc-labs-articles/blob/master/update-quantity-form/carts.jpg" target="_blank"><img alt="Example Shopping Carts" src="https://github.com/chriscressman/weblinc-labs-articles/raw/master/update-quantity-form/carts.jpg" /></a></p>
<p>Pictured above are two example shopping carts. In both carts, a form field allows users to change the quantity of the items in their carts. In one example, the form field is a select. The HTML for that example, looks something like this:</p><pre class="crayon-plain-tag">&lt;html class="no-js"&gt;
…
&lt;form class="update-quantity-form"&gt;
    &lt;select&gt;
        &lt;option&gt;1&lt;/option&gt;
        &lt;option&gt;2&lt;/option&gt;
        &lt;option&gt;3&lt;/option&gt;
        …
    &lt;/select&gt;
    &lt;button&gt;Update Quantity&lt;/button&gt;
&lt;/form&gt;
…
&lt;/html&gt;</pre><p>The other cart uses a number input with a spinner UI. The HTML looks something like this:</p>
<div>
<pre class="crayon-plain-tag">&lt;html class="no-js"&gt;
…
&lt;form class="update-quantity-form"&gt;
    &lt;input type="number" min="1" value="1" required&gt;
    &lt;button&gt;Update Quantity&lt;/button&gt;
&lt;/form&gt;
…
&lt;/html&gt;</pre>
</div>
<p>Notice in both examples the submit button is not visible. Instead, the form is automatically submitted when users change the value, either by choosing a different option from the select, typing a new value into the number input, or using the up/down buttons on the number input.</p>
<p>The first problem we want to solve is responsibly hiding the submit button. These forms work perfectly well as served up by our back end, so we don&#8217;t want to break them when our CSS and JavaScript are applied in the browser. If we simply hide the submit button with CSS, we&#8217;ve now broken the form for users that have CSS enabled but JavaScript disabled.</p>
<p>Aside: During my presentation, someone in the audience asked if this use case really matters. How many people are browsing with JavaScript disabled? The decision to support user agents with JavaScript disabled is a business decision. You, or someone that knows your business well, will need to determine the answer. Here are a few things that factored into our decision:</p>
<ul>
<li>One percent of a million is still 10,000. In other words, if you have enough users, even a small percentage can translate to a lot of money.</li>
<li>If you have server side functionality that works, why break it with your CSS? From our experience, these are minor adjustments that are simply part of our workflow and code review process.</li>
<li>It may be easier to run automated testing tools for server-side code with JavaScript disabled. These tools tend to be CSS-aware, so hiding a necessary button will likely fail a test.</li>
</ul>
<h1><a href="https://github.com/chriscressman/weblinc-labs-articles/blob/master/update-quantity-form/index.md#detecting-javascript" name="detecting-javascript"></a>Detecting JavaScript</h1>
<p>Modernizr is a library used to detect browser features. The most fundamental of those checks is to determine if JavaScript is available. Modernizr will replace the class value &#8216;no-js&#8217; that we put on the <code>html</code> element with the value &#8216;js&#8217;:</p>
<div>
<pre class="crayon-plain-tag">&lt;html class="js"&gt;
…
&lt;form class="update-quantity-form"&gt;
    …
    &lt;button&gt;Update Quantity&lt;/button&gt;
&lt;/form&gt;
…
&lt;/html&gt;</pre>
</div>
<p>The &#8216;js&#8217; class value then acts as a flag that can be used to conditionally hide our button:</p>
<div>
<pre class="crayon-plain-tag">body.js form.update-quantity-form button { /* visually hide button */ }</pre>
</div>
<h1><a href="https://github.com/chriscressman/weblinc-labs-articles/blob/master/update-quantity-form/index.md#submitting-the-form" name="submitting-the-form"></a>Submitting the form</h1>
<p>With our button hidden, we now want to listen for user interaction with our quantity form control and submit the form after any changes. Let&#8217;s assume we have a function to handle the form submission and submitting the form reloads the page. A simple implementation could look like this:</p>
<div>
<pre class="crayon-plain-tag">var submitForm = function () { /* &hellip; */ };

$('.update-quantity-form')

.on('change', 'input, select', submitForm)

.on('keyup', 'input', submitForm);</pre>
</div>
<h1><a href="https://github.com/chriscressman/weblinc-labs-articles/blob/master/update-quantity-form/index.md#problems-with-our-first-iteration" name="problems-with-our-first-iteration"></a>Problems with our first iteration</h1>
<p>This solution works well when increasing the quantity by 1, but fails when users try to increase the quantity by multiple units. As soon as the first change occurs (such as clicking a spinner, changing the select option with a keyboard, or deleting the current value within the number input) the page is reloaded and the additional user input (like a 2nd click on the spinner, a second keyboard change, or typing a new value) is ignored.</p>
<p>We need to delay the submission of the form until the user input has finished arriving. For example, we want to let the user quickly click the up arrow on the number input as many times as they&#8217;d like and <em>then</em> submit the form. A nice solution for this problem is Underscore&#8217;s <a href="http://underscorejs.org/#debounce">debounce</a>:</p>
<div>
<pre class="crayon-plain-tag">var submitForm = function () { /* &hellip; */ };

$('.update-quantity-form')

.on('change', 'input, select', _.debounce(submitForm, 500))

.on('keyup', 'input', _.debounce(submitForm, 1000));</pre>
</div>
<p>Debounce allows us to delay the form submission just long enough to allow additional user input to arrive. In the example above, we&#8217;re waiting 500ms after a spinner button or select menu change and a full second after a keyup within the number input. This delay provides enough time to receive additional clicks or typing before submitting the form. If more user input is received, the delay is reset. For a more detailed explanation of debounce, refer to this <a href="http://benalman.com/projects/jquery-throttle-debounce-plugin/">article from Ben Alman</a>.</p>
<h1><a href="https://github.com/chriscressman/weblinc-labs-articles/blob/master/update-quantity-form/index.md#up-next" name="up-next"></a>Up next</h1>
<p>We&#8217;ll see the &#8216;js&#8217; class value and the debounce method again in future examples in this series. However, in the next installment, we&#8217;ll be looking at a simple solution to detect the user&#8217;s intent to hover.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.weblinc.com/labs/update-quanity-form/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Split one list into equal sized columns with jquery-columnlist</title>
		<link>http://www.weblinc.com/labs/split-one-list-into-equal-sized-columns-with-jquery-columnlist/</link>
		<comments>http://www.weblinc.com/labs/split-one-list-into-equal-sized-columns-with-jquery-columnlist/#comments</comments>
		<pubDate>Tue, 22 Apr 2014 20:28:53 +0000</pubDate>
		<dc:creator><![CDATA[Mark DelRossi]]></dc:creator>
				<category><![CDATA[Lab Experiments]]></category>

		<guid isPermaLink="false">http://www.weblinc.com/labs/?p=1630</guid>
		<description><![CDATA[Problem Becker&#8217;s School Supplies&#8217; primary navigation has 4 primary nav nodes each with a number of sub nodes ranging from 0 to 22. &#160;The design for Becker&#8217;s primary navigation&#8217;s sub nodes called for a varying array of columns each sorted alphabetically in a top-down format. The Design After a discussion with the designer, it was [&#8230;]]]></description>
				<content:encoded><![CDATA[<h2>Problem</h2>
<p>Becker&#8217;s School Supplies&#8217; primary navigation has 4 primary nav nodes each with a number of sub nodes ranging from 0 to 22. &nbsp;The design for Becker&#8217;s primary navigation&#8217;s sub nodes called for a varying array of columns each sorted alphabetically in a top-down format.</p>
<h3>The Design</h3>
<p><a href="http://www.weblinc.com/labs/files/2014/04/primary-nav-design.png"><img src="http://www.weblinc.com/labs/files/2014/04/primary-nav-design.png" alt="primary-nav-design" class="alignnone size-medium wp-image-1745" /></a></p>
<p>After a discussion with the designer, it was determined that each column should split when the number of sub nodes hit a multiple of 7 but to not exceed 3 columns. &nbsp;The server side code generating this markup could not easily do this and would only output a single unordered list for each dropdown.  Something very similar to this (some class names and markup tags were removed to simplify things):</p>
<p></p><pre class="crayon-plain-tag"><div class="wl-primary-nav">
    <ul class="navigation-items">
        <li class="level-1">Shop Becker's
            <ul>
                <li class="level-2">Category 1</li>
                <li class="level-2">Category 2</li>
                <li class="level-2">Category 3</li>
                <li class="level-2">Active Play</li>
                <li class="level-2">Arts &amp; Crafts</li>
                <li class="level-2">Block Play</li>
                <li class="level-2">Classroom &amp; Teacher Resources</li>
                <li class="level-2">Decoration &amp; Display</li>
                <li class="level-2">Dramatic Play</li>
                <li class="level-2">Furniture (or Furnishings…)</li>
                <li class="level-2">Infants &amp; Toddlers</li>
                <li class="level-2">Literacy and Language</li>
                <li class="level-2">Manipulatives</li>
                <li class="level-2">Math</li>
                <li class="level-2">Media and Technology</li>
                <li class="level-2">Music &amp; Movement</li>
                <li class="level-2">Parent Resources</li>
                <li class="level-2">Puzzles and Games</li>
                <li class="level-2">School &amp; Office Supplies</li>
                <li class="level-2">Science</li>
                <li class="level-2">Social Studies</li>
                <li class="level-2">Special Needs &amp; Inclusion</li>
            </ul>
        </li>
        <li class="level-1">Resources</li>
        <li class="level-1">Our Stores</li>
        <li class="level-1">On Sale
            <ul>
                <li class="level-2">Category 1</li>
                <li class="level-2">Category 2</li>
            </ul>
        </li>
    </ul>
</div></pre><p></p>
<h2>Implementation</h2>
<p>For our example, the following javascript will count out the correct number of columns and trigger the plugin:</p>
<p></p><pre class="crayon-plain-tag">$('.wl-primary-nav &gt; ul &gt; li &gt; ul').each(function () {

    // cache the list we are currently working with
    var $this = $(this),

        // count the number of LIs in the current list
        count = $this.children().length,

        // determine how many columns to use
        // the design calls for 7 items per column and a max of 3 columns
        cols = Math.ceil(count / 7 &gt; 3 ? 3 : count / 7);

    // call the columnlist method to split the list into columns
    $this.columnlist({
        size: cols,
        'class' : 'column-list',
        incrementClass : 'column-list-'
    });
});</pre><p></p>
<h2>Options</h2>
<p>The plugin comes with the following options.  With them, you are able to set the number of columns and the class names of the generated sublists.</p>
<table>
<tr>
<th>Option</th>
<th>Default Value</th>
<th>Description</th>
</tr>
<tr>
<td>size</td>
<td>class</td>
<td>incrementClass</td>
</tr>
<tr>
<td>1</td>
<td>column-list</td>
<td>column-list-</td>
</tr>
<tr>
<td>How many columns to split the list into. If left blank, the plugin will check the UL&#8217;s data-column-list attribute</td>
<td>Class appended to the new sub lists</td>
<td>Class appended to the new sub ULs with an incremented suffix, i.e. column-list-2</td>
</tr>
</table>
<p>The previous javascript will result in the following markup:</p>
<p></p><pre class="crayon-plain-tag"><div class="wl-primary-nav">
    <ul class="navigation-items">
        <li class="level-1">Shop Becker's
            <div class="nav-wrap">
                <ul class="col-3 col">
                    <li class="column-list-0 column-list">
                        <ul>
                            <li class="level-2">Category 1</li>
                            <li class="level-2">Category 2</li>
                            <li class="level-2">Category 3</li>
                            <li class="level-2">Active Play</li>
                            <li class="level-2">Arts &amp; Crafts</li>
                            <li class="level-2">Block Play</li>
                            <li class="level-2">Classroom &amp; Teacher Resources</li>
                            <li class="level-2">Decoration &amp; Display</li>
                        </ul>
                    </li>
                    <li class="column-list-1 column-list">
                        <ul>
                            <li class="level-2">Dramatic Play</li>
                            <li class="level-2">Furniture (or Furnishings…)</li>
                            <li class="level-2">Infants &amp; Toddlers</li>
                            <li class="level-2">Literacy and Language</li>
                            <li class="level-2">Manipulatives</li>
                            <li class="level-2">Math</li>
                            <li class="level-2">Media and Technology</li>
                            <li class="level-2">Music &amp; Movement</li>
                        </ul>
                    </li>
                    <li class="column-list-2 column-list">
                        <ul>
                            <li class="level-2">Parent Resources</li>
                            <li class="level-2">Puzzles and Games</li>
                            <li class="level-2">School &amp; Office Supplies</li>
                            <li class="level-2">Science</li>
                            <li class="level-2">Social Studies</li>
                            <li class="level-2">Special Needs &amp; Inclusion</li>
                        </ul>
                    </li>
                </ul>
            </div>
        </li>
        <li class="level-1">Resources</li>
        <li class="level-1">Our Stores</li>
        <li class="level-1">On Sale
            <div class="nav-wrap">
                <ul class="col-1 col">
                    <li class="column-list-0 column-list">
                        <ul>
                            <li class="level-2">Category 1</li>
                            <li class="level-2">Category 2</li>
                        </ul>
                    </li>
                </ul>
            </div>
        </li>
    </ul>
</div></pre><p></p>
<p>From this, we can apply some basic CSS magic and get this.</p>
<h3>Dropdown Screenshot</h3>
<p><a href="http://www.weblinc.com/labs/files/2014/04/primary-nav-screenshot.png"><img src="http://www.weblinc.com/labs/files/2014/04/primary-nav-screenshot.png" alt="primary-nav-screenshot" class="alignnone size-medium wp-image-1744" /></a></p>
<p>Which matches our original design.</p>
<p>jquery-columnlist is <a href="http://github.com/weblinc/jquery-columnlist">available on GitHub</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.weblinc.com/labs/split-one-list-into-equal-sized-columns-with-jquery-columnlist/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Google Glass Experience Part 1 &#8211; Pick Me!</title>
		<link>http://www.weblinc.com/labs/the-google-glass-experience-part-1-pick-me/</link>
		<comments>http://www.weblinc.com/labs/the-google-glass-experience-part-1-pick-me/#comments</comments>
		<pubDate>Wed, 16 Apr 2014 04:01:03 +0000</pubDate>
		<dc:creator><![CDATA[Carol Arscott]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Google Glass]]></category>

		<guid isPermaLink="false">http://www.weblinc.com/labs/?p=1718</guid>
		<description><![CDATA[&#160; Today Google offered  limited public access to their Google Glass Explorer Program.  They remarked last week in a post on Google+, &#8220;Every day we get requests from those of you who haven’t found a way into the program yet, and we want your feedback too&#8230;.We’re excited to meet our new Explorers, and we can’t [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>&nbsp;</p>
<p><a href="http://www.weblinc.com/labs/files/2014/04/bwfeat.jpg"><img class="alignnone size-full wp-image-1735" alt="bwfeat" src="http://www.weblinc.com/labs/files/2014/04/bwfeat.jpg" width="200" height="200" /></a></p>
<p>Today Google offered  limited public access to their <strong>Google Glass Explorer Program</strong>.  They remarked last week in a post on Google+, &#8220;Every day we get requests from those of you who haven’t found a way into the program yet, and we want your feedback too&#8230;.We’re excited to meet our new Explorers, and we can’t wait to hear your thoughts about Glass.&#8221;</p>
<p><span style="font-size: 14px;line-height: 1.5em">If you were unable to acquire a device today, you can experience Glass from the perspective of WebLinc sales team member, Chip Moloney.  We are running a series of guest blog posts written by Chip, relating his 30 day exciting (and unexpected) adventure with Glass.</span><span style="font-size: 14px;line-height: 1.5em"><br />
</span></p>
<p>Take it away, Chip&#8230;</p>
<div style="overflow:hidden">
<p style="padding: 0.5em 1em;margin-bottom: 0;float:left">
<a href="http://www.weblinc.com/labs/files/2014/04/chip.jpg"><img class="size-full wp-image-1725 alignleft" alt="chip" src="http://www.weblinc.com/labs/files/2014/04/chip.jpg" width="150" height="150" /></a>
</p>
<blockquote>
<p>&#8220;Our CEO, Darren Hill, sent an email to the office asking for a volunteer to use Google Glass for 30 days then blog about it. I’m very interested in new technology.On a whim, I responded and within the hour I was the proud (temporary) owner of Google Glass.  Until that day I had never even thought about using it &#8211; with the $1500 price tag, I didn’t think it was a realistic option.</p>
<p>Google Glass is a completely different genre – wearable technology– and much more interesting than anything I’ve ever used. Before this experience, my thoughts on Glass were a mixture of curiosity and confusion. Curious about the features and functions of the product, and confused as to why anyone would ever want to wear that monstrosity on their face.</p>
<p>Were these glasses so innovative that the improved efficiency would be worth looking like a cyborg? Working at WebLinc, on the officially designated “N3rd Street”, I have seen people wearing Google Glass on a few occasions but had never had hands on experience with it.</p>
<p>I wasn’t sure what to expect.  I thought people would notice and possibly be a little uncomfortable with it at first.  I also thought some might think it was neat and ask to try it.  I figured I might end up being the center of attention since it was not yet available to the general public.  And I anticipated some negative reactions – possibly being viewed as pretentious.</p>
<p>The next 30 days provided some very cool experiences along with some very unexpected reactions.&#8221;</p>
</blockquote>
</div>
<p>Please come back soon to read about Chip&#8217;s thoughts on the technology.  And you won&#8217;t want to miss the accounts of his public interactions!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.weblinc.com/labs/the-google-glass-experience-part-1-pick-me/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>XO XO &#8211; Everybody Loved N3rd Street Squares</title>
		<link>http://www.weblinc.com/labs/xo-xo-everybody-loved-n3rd-street-squares/</link>
		<comments>http://www.weblinc.com/labs/xo-xo-everybody-loved-n3rd-street-squares/#comments</comments>
		<pubDate>Mon, 14 Apr 2014 19:57:11 +0000</pubDate>
		<dc:creator><![CDATA[Carol Arscott]]></dc:creator>
				<category><![CDATA[Events]]></category>
		<category><![CDATA[Philadelphia]]></category>

		<guid isPermaLink="false">http://www.weblinc.com/labs/?p=1689</guid>
		<description><![CDATA[Last Thursday, National Mechanics hosted the debut of N3rd Street Squares, the latest project from WebLinc Labs.  The house was packed at this sold out Philly Tech Week event, organized by WebLinc senior project manager Jessica Chappell.  Oompah band Polkadelphia warmed up the crowd, setting the stage for a night of n3rdy fun. The N3rd Street [&#8230;]]]></description>
				<content:encoded><![CDATA[<p style="text-align: center">
<p><a href="http://www.weblinc.com/labs/files/2014/04/header-nerd-st-squares.png"><img class="alignnone size-full wp-image-1659 aligncenter" alt="" src="http://www.weblinc.com/labs/files/2014/04/header-nerd-st-squares.png" width="610" height="300" /></a></p>
<p><span style="font-size: 14px;line-height: 1.5em">Last Thursday, National Mechanics hosted the debut of N3rd Street Squares, the latest project from WebLinc Labs.  The house was packed at this sold out Philly Tech Week event, organized by WebLinc senior project manager Jessica Chappell.  Oompah band </span><ins style="font-size: 14px;line-height: 1.5em" cite="mailto:Carol%20Arscott" datetime="2014-04-14T13:41"></ins><span style="font-size: 14px;line-height: 1.5em">Polkadelphia warmed up the crowd, setting the stage for a night of n3rdy fun.</span></p>
<p>The N3rd Street Squares game blends retro, kitschy fun of the 70’s game show, Hollywood Squares, with modern web technology.  Each member of the audience could participate by accessing the game’s mobile website from their smartphones.</p>
<p style="text-align: center">
<p><a href="http://www.weblinc.com/labs/files/2014/04/verysmalljay.jpg"><img class="alignnone size-full wp-image-1709 aligncenter" alt="verysmalljay" src="http://www.weblinc.com/labs/files/2014/04/verysmalljay.jpg" width="322" height="421" /></a></p>
<p>The host was WebLinc’s own Senior Solutions Engineer and funny man, Jay Caddle. Local Tech celebrities filled the squares, answering eCommerce related questions with a mix of knowledge, false information, and sass.  Players indicated whether they believed the experts were telling the truth or offering a devious ruse, by pressing either Agree or Disagree on the phone screen.  Participants earned points based on their response speed and number of correct answers.  Prizes were awarded to the 10 highest scoring players in each round.</p>
<p>Celebrities included:</p>
<ul>
<li>Green Ant: Chikara Pro-Wrestler</li>
<li>Johnny Bilotta: GUIwerks Principal</li>
<li>Val Head: Designer, Consultant, Speaker</li>
<li>Darren Hill: WebLinc Co-Founder &amp; CEO</li>
<li>Jenn Lukas: Interactive Consultant &amp; Front-End Developer</li>
<li>Alex Hillman: Indy Hall Co-Founder</li>
<li>Patrick Rodgers: International Vampire</li>
<li>Eric Smith: Geekadelphia &amp; Philly Geek Awards Co-Founder</li>
<li>Joey Sweeney: Philebrity Editor &amp; Co-Founder</li>
</ul>
<p>When asked about the game and what it was like being a square celebrity, Darren Hill responded, “The event was a ton of fun.  The web app worked very well.  It’s always exciting to see our employees come up with an idea and run with it.  I enjoyed being a part of the panel.  The other celebrities were all so great, funny, and prepared. Jay Caddle was an excellent host &#8211; he nailed it with his wit.”</p>
<p>The evening was a success!  Some participants said they would like to see the game offered again in the future.  One player expressed how much she enjoyed the unique experience saying, “I’ve never seen a game like this – that I could play on my phone against a room full of people.  It was very different and really fun!&#8221;  Another fan tweeted, &#8220;A class act in shenanigans!&#8221;</p>
<p>For information about the game development please read <a title="It’s Hip to be Square" href="http://www.weblinc.com/labs/n3rdstreetsquares/">It&#8217;s Hip to be Square</a>.</p>
<p><a href="http://www.weblinc.com/labs/files/2014/04/4collage.jpg"><img class="size-full wp-image-1699 aligncenter" alt="4collage" src="http://www.weblinc.com/labs/files/2014/04/4collage.jpg" width="1024" height="768" /></a></p>
<div></div>
]]></content:encoded>
			<wfw:commentRss>http://www.weblinc.com/labs/xo-xo-everybody-loved-n3rd-street-squares/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
