<?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>Digital Surgeons &#187; Blog</title>
	<atom:link href="http://www.digitalsurgeons.com/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.digitalsurgeons.com</link>
	<description>Internet Marketing</description>
	<lastBuildDate>Thu, 17 May 2012 00:03:40 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	
		<item>
		<title>Drupal Multigroup Migration to ExpressionEngine</title>
		<link>http://www.digitalsurgeons.com/blog/drupal-multigroup-migration-to-expressionengine/</link>
		<comments>http://www.digitalsurgeons.com/blog/drupal-multigroup-migration-to-expressionengine/#comments</comments>
		<pubDate>Wed, 09 May 2012 14:48:01 +0000</pubDate>
		<dc:creator>will</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Featured]]></category>
		<category><![CDATA[The Lab]]></category>
		<category><![CDATA[cck multigroup]]></category>
		<category><![CDATA[drupal]]></category>
		<category><![CDATA[expressionengine]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.digitalsurgeons.com/?p=3799</guid>
		<description><![CDATA[A client has a Drupal site that we&#8217;re migrating to ExpressionEngine. It&#8217;s a decently-sized site, with articles in multiple languages, [...]]]></description>
			<content:encoded><![CDATA[<p>A client has a Drupal site that we&#8217;re migrating to ExpressionEngine. It&#8217;s a decently-sized site, with articles in multiple languages, and using the Drupal 6 CCK Multigroup Module. The Multigroup module for Drupal is a lot like the Matrix addon for ExpressionEngine; it pretty much allows you to create repeatable field groups.</p>
<p>The Multigroup module has been <a href="http://drupal.org/node/494100">discontinued</a>, with the <a href="http://drupal.org/project/field_collection">Field Collection</a> module taking its place.</p>
<p>The client was using Multigroup to handle images in their content articles. A content article has some number of text blocks with some number of images between each text block. Each element in the multigroup has a WYSIWYG field and a image field, with a dropdown that indicates whether the image should come before or after the text block.</p>
<p>Of course, I didn&#8217;t know any of this going in. I figured I&#8217;d do a simple database dump and use the <a href="http://brandnewbox.co.uk/products/details/datagrab">ajw_datagrab</a> module to import the content into EE. There&#8217;s a <a href="http://9seeds.com/news/drupal-to-wordpress-migration/" rel="nofollow" target="_blank">guide by 9seeds</a> that explains how to migrate Drupal content to WordPress with a few simple queries. The resulting database dump can be imported with Datagrab, so this was the basis for the first query I wrote:</p>
<pre class="brush: sql; title: ; notranslate">
SELECT DISTINCT
 n.nid `id`,
 n.language `lang`,
 FROM_UNIXTIME(n.created) `post_date`,
 r.body `post_content`,
 n.title `post_title`,
 r.teaser `post_excerpt`,
 IF(SUBSTR(a.dst, 11, 1) = '/', SUBSTR(a.dst, 12), a.dst) `post_name`,
 FROM_UNIXTIME(n.changed) `post_modified`,
 n.type `post_type`,
 IF(n.STATUS = 1, 'publish', 'private') `post_status`
FROM node n
INNER JOIN node_revisions r
 USING(vid)
LEFT OUTER JOIN url_alias a
 ON a.src = CONCAT('node/', n.nid)
WHERE n.type IN ('post', 'page', 'article')
</pre>
<p>The content that this query returned seemed a bit sparse, but not really having a full understanding of the content that was supposed to have been output, I figured I was done. The lead developer on the project knew better and introduced me to the tables in the backend where additional content was stored, and the content fields these tables corresponded to in the Drupal backend.</p>
<p>The database tables I looked at were:<br />
<code>content_field_art_img</code> (which stored the references to the image IDs),<br />
<code>content_field_art_pos</code> (which stored the position of the image field relative to the text blocks), and<br />
<code>content_field_art_txt</code> (which stored the text blocks).</p>
<p>The next step was to grab the content from these tables and put it into some workable format.</p>
<p>Each of the three tables has a `nid` and `delta` column. The `nid` column relates the content in these tables to a particular node. The `delta` was less obvious at first, though I was able to correctly guess that it represented the order of the text/image blocks.</p>
<p>I could either write a complex query to JOIN all the tables together, but I would have still had a bunch of deltas I needed to concatenate, so I took three big dumps (output as PHP arrays via phpMyAdmin) and made PHP clean up the mess.</p>
<pre class="brush: sql; title: ; notranslate">
SELECT c.nid,c.delta,f.filepath as imgsrc FROM content_field_art_img c, files f WHERE c.field_art_img_fid = f.fid ORDER BY c.nid ASC, c.delta ASC
SELECT nid, delta, field_art_txt_value FROM content_field_art_txt ORDER BY nid ASC, delta ASC
SELECT nid, delta, field_art_pos_value FROM content_field_art_pos ORDER BY nid ASC, delta ASC
</pre>
<p>The next step was to combine the content into a one big array indexed by nid and delta:</p>
<pre class="brush: php; title: ; notranslate">
foreach ($content_field_art_img as $img) {
    $content[$img['nid']][$img['delta']]['img'] = $img['imgsrc'];
}
foreach ($content_field_art_txt as $txt) {
    $content[$txt['nid']][$txt['delta']]['txt'] = $txt['field_art_txt_value'];
}
foreach ($content_field_art_pos as $pos) {
    $content[$pos['nid']][$pos['delta']]['pos'] = $pos['field_art_pos_value'];
}
</pre>
<p>Then I went through the array and concatenated the pos, txt, and img for each delta, then each node, storing the node content for each node id.</p>
<pre class="brush: php; title: ; notranslate">
$combined_content = array();
foreach ($content as $nid =&gt; $node) {
    $the_content = &quot;&quot;
    foreach ($node as $delta) {
        if (isset($delta['pos']) &amp;&amp; $delta['pos'] == &quot;above&quot;) {
            if (isset($delta['img']) &amp;&amp; !empty($delta['img'])) {
                $the_content .= &quot;\n&lt;/pre&gt;
&lt;img src=&quot;\&amp;quot;/{$delta['img']}\&amp;quot;&quot; alt=&quot;&quot; /&gt;
&lt;pre&gt;

&quot;;
            }
            if (isset($delta['txt']) &amp;&amp; !empty($delta['txt'])) {
                $the_content .= &quot;\n&quot; . $delta['txt'];
            }
        } else {
            if (isset($delta['txt']) &amp;&amp; !empty($delta['txt'])) {
                $the_content .= &quot;\n&quot; . $delta['txt'];
            }
            if (isset($delta['img']) &amp;&amp; !empty($delta['img'])) {
                $the_content .= &quot;\n&lt;/pre&gt;
&lt;img src=&quot;\&amp;quot;/{$delta['img']}\&amp;quot;&quot; alt=&quot;&quot; /&gt;
&lt;pre&gt;

&quot;;
            }
        }
    }
    $combined_content[$nid] = $the_content;
}
</pre>
<p>And then output the $combined_content as one big PHP array, which the lead could then import into EE.</p>
<pre class="brush: php; title: ; notranslate">
echo &quot;// \n\$combined_content = &quot;;
var_export($combined_content);
</pre>
<p>Needless to say, everything worked and everyone was happy. This solution may not be the most efficient way to export the data but it does the job intended.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.digitalsurgeons.com/blog/drupal-multigroup-migration-to-expressionengine/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>eReader Competition Fires Up (but not for Kindle)</title>
		<link>http://www.digitalsurgeons.com/blog/ereader-competition-fires-up-but-not-for-kindle/</link>
		<comments>http://www.digitalsurgeons.com/blog/ereader-competition-fires-up-but-not-for-kindle/#comments</comments>
		<pubDate>Fri, 04 May 2012 21:55:22 +0000</pubDate>
		<dc:creator>marissa</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[News]]></category>

		<guid isPermaLink="false">http://www.digitalsurgeons.com/?p=4051</guid>
		<description><![CDATA[This Week&#8217;s Top Story: It was all about the eReader industry this week as news flooded in about the three [...]]]></description>
			<content:encoded><![CDATA[<h2>This Week&#8217;s Top Story:</h2>
<p>It was all about the eReader industry this week as news flooded in about the three mainstream competitors: Barnes and Nobles&#8217; Nook, the Amazon&#8217;s Kindle and the Apple&#8217;s iPad. It&#8217;s all about who has the majority (which is iPad, for now) and where the money&#8217;s going. First, Microsoft backed Nook full force by investing $300 billion in the Barnes and Nobles device. Later in the week, Target announced that it would no longer be selling Kindles due to a &#8216;conflict of industry&#8217; as rumors swirled that a new deal with Apple motivated the decision.</p>
<p>Apple currently leads with 68 percent of the market, however the race is far from over and it&#8217;s getting dirtier. Barnes and Nobles has even gone so far as to claim the Kindle it &#8220;<a href="http://mashable.com/2012/05/03/nook-simple-touch-glowlight-ad/">not that good in bed.</a>&#8221;</p>
<h2>Newsworthy Tidbits:</h2>
<p>The Village Voices has faced some heat recently for allowing certain ads in their &#8216;adult&#8217; section that some advertisers feel could lead to child molestation. The feeling appears to be mutual, as twenty-seven advertisers have pulled their ad from the publication as of Friday. <a href="http://www.huffingtonpost.com/2012/04/26/backpage-sex-ads-opposed-alicia-keys-talib-kweli-rem_n_1457027.html">Musicians </a>have been facing similar cries from their peers to discontinue their support for the publication until the Village Voice complies with their requests.</p>
<p>On top of the Republicans&#8217; recent efforts at social media, they have recently taken to Facebook with a new app, the &#8220;Social Victory Center,&#8221; to rally their supporters and keep them informed through &#8216;News&#8217; for updates, &#8216;Events&#8217; that displays nearby opportunities for engagement and &#8216;Discussions&#8217; for conversation.</p>
<h2>Be On the Lookout</h2>
<p>Facebook will going public on May 18 with shares in the $28-$35 range. Their valuation is estimated at $88 billion minimum, which will defeat the current record held by Google at $23 billion in 2004.</p>
<p>We got more news about Blackberry 10 this week as developers were wrangled up to start creating apps for the platform however  we also learned that previous users running on BB 7 will not get the update. It&#8217;s yet to be determined whether this is the break RIM needs to see success in the future.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.digitalsurgeons.com/blog/ereader-competition-fires-up-but-not-for-kindle/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Top Tech Companies Push Video Ad Sales</title>
		<link>http://www.digitalsurgeons.com/blog/top-tech-companies-push-video-ad-sales/</link>
		<comments>http://www.digitalsurgeons.com/blog/top-tech-companies-push-video-ad-sales/#comments</comments>
		<pubDate>Fri, 27 Apr 2012 21:50:47 +0000</pubDate>
		<dc:creator>marissa</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[News]]></category>

		<guid isPermaLink="false">http://www.digitalsurgeons.com/?p=4028</guid>
		<description><![CDATA[Top stories in digital media, advertising and technology courtesy of Digital Surgeons: AOL and Google push video ad sales, Adobe announces the Creative Cloud.]]></description>
			<content:encoded><![CDATA[<h2>Newsworthy Tidbits:</h2>
<p>Google is introducing <a href="http://www.google.com/ads/video/">AdWords for Video</a>, meant to integrate video advertisements in YouTube and allow advertisers to purchase ad units in YouTube videos and video search results.</p>
<p>AOL has also been making advancements to their video advertising system by creating AOL On, where all video content from AOL can be compiled into one neat location. This move is meant to drive ad sales in videos.</p>
<p>Facebook purchased a ton of patents from Microsoft in an effort to bulk up their portfolio as they prepare for IPO this spring. Yahoo!, who is suing Facebook for several patent infringements, is accusing Facebook of acquiring new patents in order to countersue and have claimed these patent purchases are not in good faith.</p>
<p>Cyber security act <a href="http://www.digitalsurgeons.com/blog/cispa-cyber-security-or-big-brother/">CISPA</a> passed in the House of Representatives last night and will be moving on to the Senate. The White House, however, has recommended that President Obama veto the bill, as it infringes on the civil liberties of users.</p>
<h2>Be on the Lookout:</h2>
<p>Adobe announced updates to its C5 Creative suite, as well as a new service called the Creative Cloud. For a set price per month, a user can access some or all of Adobe&#8217;s software programs. The entire suite is available for $49.99/month (with a one-year commitment) while popular programs like Photoshop would be slightly less.</p>
<h2>Related articles</h2>
<ul class="zemanta-article-ul">
<li class="zemanta-article-ul-li"><a href="http://techcrunch.com/2012/04/27/yahoo-facebook-counter-countersuit/" target="_blank">Yahoo: Facebook Bought Patents Just To Countersue, They Lack Good Faith, Should Be Disregarded</a> (techcrunch.com)</li>
<li class="zemanta-article-ul-li"><a href="http://techland.time.com/2012/04/23/adobes-creative-cloud/" target="_blank">Adobe’s Creative Cloud: All the Creative Software You’ll Ever Want </a>(techcrunch.com)</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.digitalsurgeons.com/blog/top-tech-companies-push-video-ad-sales/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CISPA: Cyber Security or Big Brother?</title>
		<link>http://www.digitalsurgeons.com/blog/cispa-cyber-security-or-big-brother/</link>
		<comments>http://www.digitalsurgeons.com/blog/cispa-cyber-security-or-big-brother/#comments</comments>
		<pubDate>Thu, 26 Apr 2012 16:07:21 +0000</pubDate>
		<dc:creator>marissa</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[News]]></category>

		<guid isPermaLink="false">http://www.digitalsurgeons.com/?p=4019</guid>
		<description><![CDATA[On Friday of this week, the House of Representatives will vote on a controversial new cybersecurity bill. The Cyber Intelligence [...]]]></description>
			<content:encoded><![CDATA[<p>On Friday of this week, the House of Representatives will vote on a controversial new cybersecurity bill. The Cyber Intelligence Sharing and Protection Act, or CISPA for short, introduced on November 30, 2011 by Rep. Michael Rogers (R-Michigan) is being called by many a privacy-destroying bill.</p>
<p>The <a href="http://www.govtrack.us/congress/bills/112/hr3523">bill</a> is designed to allow for the sharing of intelligence between Internet companies (Google, Facebook, etc. as well as ISPs) and government agencies regarding cyber threats.  This is different from SOPA and PIPA which were created as a response to the growing <a href="http://www.guardian.co.uk/technology/2012/apr/18/online-copyright-war-internet-hit-back">War on Copyright</a>. However, like SOPA and PIPA, the bill’s broad legislation leaves many speculating as to how the new power could be abused.</p>
<h2>Isn’t Cybersecurity a good thing?</h2>
<p>In short, yes.  Cybersecurity involves the strengthening of our networks to prevent and respond to cyber attacks.  In a <a href="http://www.whitehouse.gov/cybersecurity">May 2009 speech</a> President Obama referenced instances of hacking and cyber-terrorism, stating that “It’s now clear this cyberthreat is one of the most serious economic and national security challenges we face as a nation. It’s also clear that we’re not as prepared as we should be.”</p>
<p>“Cyberspace is a world we depend on every single day,” Obama continues. “[This is] the great irony of our information age: The very technologies that empower us to create and to build also empower those who would disrupt and destroy. This paradox, seen and unseen, is something that we experience every day.”</p>
<p>If passed, CISPA would amend the <a href="http://en.wikipedia.org/wiki/National_Security_Act_of_1947">National Security Act of 1947</a> to include provisions pertaining to cybersecurity.  In addition to establishing the Department of Defense, the National Security Act of 1947 (and its first amendment) established the National Security Council and the Central Intelligence Agency.  Amending that Act would presumably enable us to be more prepared for cyber threats.</p>
<p>As the President stated in his speech, “Just as we do for natural disasters, we have to have plans and resources in place beforehand: sharing information, issuing warnings, and ensuring a coordinated response.”  While this sentiment expresses the original intent of bills like CISPA, the White House has some concerns about the actual legislation coming through currently.</p>
<p>&#8220;Legislation should address core critical infrastructure vulnerabilities without sacrificing the fundamental values of privacy and civil liberties for our citizens,&#8221; read the <a href="http://whitehouse.blogs.cnn.com/2012/04/25/white-house-threatens-veto-of-cyber-intelligence-bill/">White House statement</a>, recommending that President Obama veto the bill in question. And the White House is not alone in it&#8217;s concern for user privacy.</p>
<h2>What’s the catch?</h2>
<p>While cybersecurity is important, there’s growing concern over the bill’s language.  Like the copyright bills that came before it, many fear that the provisions outlined in the bill will be misused.</p>
<p>As <a href="http://mashable.com/2012/04/24/cispa-opposition-builds/">reported on Mashable</a>, &#8220;opponents [of the bill] — including civil liberties and online privacy groups — argue CISPA would destroy the notion of online privacy by allowing private firms to hand personal data over to the intelligence community.”   <a href="http://www.techdirt.com/articles/20120419/08153418564/cispa-has-not-been-fixed-it-could-allow-govt-to-effectively-monitor-private-networks.shtml">Techdirt puts a different spin on it</a>, reporting that the bill “may be worded to allow what is effectively direct government monitoring of private networks”.   Even the creator of the World Wide Web, <a href="http://www.guardian.co.uk/technology/audio/2012/apr/18/tim-berners-lee-web-snooping-bill-audio">Tim Berners-Lee warns</a> that CISPA will “threaten the rights of people in America”.</p>
<p><a href="http://securitywatch.pcmag.com/security/296402-forget-sopa-is-cispa-the-internet-s-new-enemy">PC Magazine</a> echoes a common concern; the bill’s “broad language means there is no explicit restriction about the type of information being shared between government and companies, so long as it could somehow be linked to cyber-threats.”  Even scarier is the phrase “notwithstanding any other provision of law” implying that the bill would override existing privacy laws and policies.</p>
<p><a href="http://intelligence.house.gov/hr-3523-bill-and-amendments">Recent amendments</a> to the bill specify who has access to the intel and how the government may use it. Definitions have been refined for specificity and clauses have been added that allow for legal cases to be filed for wrongful use of the intelligence.</p>
<p>One of the things the President said in his speech was that “Our pursuit of cybersecurity will not include monitoring private sector networks or internet traffic we will preserve and protect the personal privacy and civil liberties we cherish as Americans.”</p>
<h2>Why should I care about CISPA?</h2>
<p>You should care about CISPA from the perspective of an Internet user. CISPA fundamentally changes how Internet companies are allowed to share information about you.  The bill will likely override not only existing privacy laws, but also the privacy policies on any site you visit.  The still-broad definition of a cyber threat is something to be concerned with.</p>
<p>We can either trust that Internet companies and the government will act in our best interests or we can believe the hype that the bill’s opponents are building. Either way, it’s important to understand that the meaning of “privacy” on the Internet is changing. Being more mindful of what information we share and our general activities online is the first step.</p>
<p>It will be interesting to see how things play out.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.digitalsurgeons.com/blog/cispa-cyber-security-or-big-brother/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>SlideRocket: Keynote in the Cloud</title>
		<link>http://www.digitalsurgeons.com/blog/sliderocket-keynote-in-the-cloud/</link>
		<comments>http://www.digitalsurgeons.com/blog/sliderocket-keynote-in-the-cloud/#comments</comments>
		<pubDate>Mon, 23 Apr 2012 18:43:18 +0000</pubDate>
		<dc:creator>marissa</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Featured]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[presentation]]></category>
		<category><![CDATA[sliderocket]]></category>

		<guid isPermaLink="false">http://www.digitalsurgeons.com/?p=3961</guid>
		<description><![CDATA[Digital Surgeons is a fast moving organization within an even faster moving industry. As a digital marketing agency our success relies [...]]]></description>
			<content:encoded><![CDATA[<p>Digital Surgeons is a fast moving organization within an even faster moving industry. As a <a href="http://www.digitalsurgeons.com/">digital marketing agency</a> our success relies on the efforts of many different players within our company, and collaboration is a must-have. Digital Surgeons has utilized every imaginable platform for sharing our ideas with each other from chicken scratch on a note pad to in-depth powerpoint presentations. The stories that we need to tell during our presentations are much more than static. We&#8217;ve tried numerous tools from <a href="http://office.microsoft.com/en-us/powerpoint/">Powerpoint</a> to <a href="http://www.slideshare.net/">Slideshare</a>, but our choice platform for editing and delivering presentations is definitely <a href="http://www.sliderocket.com">SlideRocket</a>.</p>
<p><a href="http://www.sliderocket.com">Sliderocket</a> is a presentation platform which allows us to view, edit and create compelling presentations literally anywhere. Before Sliderocket we would constantly run into the same conundrum while creating presentations. We would build slide decks that had already been built by someone else and find out only when the work had been done. We can now view changes immediately, interchange slides from other presentations and everyone can have a hand in the final product.</p>
<p>Powerpoint presentations live on a hard drive or in an email, Sliderocket exists in the cloud. Sharing a presentation is no longer a mess of email chains and revisions but rather a fluid process. We also never have to worry about hard drive crashes or transitioning work from one computer to the other.</p>
<p>Sliderocket&#8217;s seamless integration of YouTube videos and twitter feeds allow our client meetings to come alive. Rather than just telling a story, Sliderocket&#8217;s support of rich media formats allows us to visually display our ideas.</p>
<p>We have a lot of ideas floating around in our head&#8217;s constantly; sometimes there&#8217;s almost too much going on. We look forward to our partnership with Sliderocket because their technology allows us to share our ideas with the world. We are happy to say that with Sliderocket, our ideas look pretty damn good.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.digitalsurgeons.com/blog/sliderocket-keynote-in-the-cloud/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nike to Kick Off Product Launches with Twitter</title>
		<link>http://www.digitalsurgeons.com/blog/news/nike-to-kick-off-product-launches-with-twitter/</link>
		<comments>http://www.digitalsurgeons.com/blog/news/nike-to-kick-off-product-launches-with-twitter/#comments</comments>
		<pubDate>Fri, 20 Apr 2012 22:04:57 +0000</pubDate>
		<dc:creator>marissa</dc:creator>
				<category><![CDATA[News]]></category>

		<guid isPermaLink="false">http://www.digitalsurgeons.com/?p=3930</guid>
		<description><![CDATA[This Week&#8217;s Top Story: Nike, ever an innovator in the digital realm, has implemented a Twitter RSVP system for product [...]]]></description>
			<content:encoded><![CDATA[<h2>This Week&#8217;s Top Story:</h2>
<p>Nike, ever an innovator in the digital realm, has implemented a Twitter RSVP system for product launches in anticipation of this summer&#8217;s release of the Jordan Air Brand Yeezy 2, signature shoe of rapper Kanye West. This system will kick off at several participating retail stores that will send a tweet out alerting people to reserve their pair. Users will be required to promptly (within 60 minutes) respond with a direct message and await an alert from the store as to whether their shoe has been reserved. The user will then have to pick up the shoe in person and present a valid ID to claim the product.</p>
<p>This is not Nike&#8217;s first venture in handling limited product releases by online means. A couple of months ago they auctioned off a selection of Back to the Future inspired Nike MAGs on eBay.</p>
<p>We&#8217;re excited to see how successful Nike&#8217;s use of Twitter for the sales process is and whether it alleviates the issues we&#8217;ve seen in the past with overnight stays on long lines for not just Nike, but other popular brands like Apple.</p>
<h2>Newsworthy Tidbits:</h2>
<p>In the days after Instagram&#8217;s $1 billion acquisition by Facebook, user growth has shot up quickly. Instagram has gained more than 10 million users, launching the total number to more than 40 million.</p>
<p>Apple came under fire this week for their deals with publishers regarding ebooks. Apparently, Apple only agreed to sell ebooks at the publisher price if each publisher could guarantee that all other partners would also stick to that price, which subsequently undermined Amazon&#8217;s strategy of selling at wholesale price. The outcome of this situation could turn the ebook industry on it&#8217;s head, as Amazon would be allowed to downsize their prices.</p>
<p>In an even further integration of Open Graph technology, Facebook has partnered with Spotify and other music services to implement a &#8216;Listen&#8217; button on many artist and band pages. Clicking &#8216;Listen&#8217; will launch a music player and instantly play a track from that artist or band.</p>
<h2>Be On the Lookout:</h2>
<p>Apple has filed for a patent for a platform that will allow non-developers to design and create iOS apps, a move that would undoubtedly create a surge in apps (for better or for worse) by those without the distinct technical ability to develop their ideas.</p>
<p>The Republican Party has announced that Google will serve as their official social platform during the Republican National Convention in August. Politicians of the GOP will be utilizing Google to keep voters engaged throughout the convention, essentially giving them a front row seat.</p>
<p>Hulu announced this week that moving forward, they will only charge advertisers for full views of their ads.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.digitalsurgeons.com/blog/news/nike-to-kick-off-product-launches-with-twitter/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Digital Surgeons Becomes a Certified Titanium App Developer</title>
		<link>http://www.digitalsurgeons.com/blog/appcelerator-titanium-mobile-development/</link>
		<comments>http://www.digitalsurgeons.com/blog/appcelerator-titanium-mobile-development/#comments</comments>
		<pubDate>Fri, 20 Apr 2012 21:16:24 +0000</pubDate>
		<dc:creator>Digital Surgeons</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[News]]></category>

		<guid isPermaLink="false">http://www.digitalsurgeons.com/?p=3931</guid>
		<description><![CDATA[We&#8217;re pleased to announce being named a certified app developer for Appcelerator&#8217;s Titanium. We&#8217;ve been working with Titanium for quite [...]]]></description>
			<content:encoded><![CDATA[<p>We&#8217;re pleased to announce being named a certified app developer for Appcelerator&#8217;s Titanium.</p>
<p>We&#8217;ve been working with Titanium for quite some time now, and its great to see the strides and new features they&#8217;ve been adding.</p>
<p>Appcelerator&#8217;s Titanium is a great development tool for both iOS and Android mobile apps. We&#8217;ve made a lot of awesome apps in Titanium. A great example of a large application in Titanium is <a href="http://www.shootlocalapp.com">ShootLocal</a>, an iPhone app for photographers and videographers to scout, shoot, share and discover locations. ShootLocal shows that even a large application with multiple views and custom UI controls can be accomplished without having to develop the entire thing in pure Objective C.</p>
<p>As a company fluent in Objective C and front-end technologies being able to create an iOS or Android mobile app purely in Javascript is a huge benefit to our technology team.</p>
<h3 style="font-size: 16px; padding: 20px;">&quot;We&#8217;re very excited to be named part of the Appcelerator&#8217;s Titanium Certified App Development Program and to continue developing outstanding mobile apps on their platform.&#8221;<em style="color: #a5a5a5;"><br />
Aaron Sherrill, Director of Interactive</em></h3>
]]></content:encoded>
			<wfw:commentRss>http://www.digitalsurgeons.com/blog/appcelerator-titanium-mobile-development/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Understanding JavaScript Basics</title>
		<link>http://www.digitalsurgeons.com/blog/learning-javascript-basics-tutorial/</link>
		<comments>http://www.digitalsurgeons.com/blog/learning-javascript-basics-tutorial/#comments</comments>
		<pubDate>Tue, 17 Apr 2012 19:58:31 +0000</pubDate>
		<dc:creator>aaron</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[The Lab]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[scope]]></category>

		<guid isPermaLink="false">http://www.digitalsurgeons.com/?p=3789</guid>
		<description><![CDATA[This document assumes you have a little experience writing some JavaScript.  The Bubble Imagine the &#60;script&#62; tag in an HTML [...]]]></description>
			<content:encoded><![CDATA[<p><em>This document assumes you have a little experience writing some JavaScript. </em></p>
<h2>The Bubble</h2>
<p>Imagine the &lt;script&gt; tag in an HTML page as an opening into a big bubble. Multiple &lt;script&gt; tags are openings into that same bubble.<br />
<img class="alignnone size-full wp-image-3883" title="the-js-bubble" src="http://www.digitalsurgeons.com/wp-content/uploads/2012/04/the-js-bubble.png" alt="" width="437" height="300" /></p>
<p>Example 1</p>
<pre class="brush: jscript; title: ; notranslate">
&lt;script type=&quot;text/javascript&quot;&gt;
    //variable defined inside of the bubble
    var observation = &quot;I'm inside a bubble&quot;;
&lt;/script&gt;
&lt;div id=&quot;foo&quot;&gt;
&lt;/div&gt;
&lt;script type=&quot;text/javascript&quot;&gt;
    //retrieve the variable &quot;observation&quot; from inside the bubble
    document.getElementById('foo').innerHTML = observation;
&lt;/script&gt;
</pre>
<p><a href="http://jsbin.com/ucegan/edit" target="_blank">http://jsbin.com/ucegan/edit</a></p>
<p>In reality we have names for things we can see. The room you are in now surely has walls. Walls help to ignore the other things that exist elsewhere in your bubble. Scope refers to the things you can see around you in the room you are in.</p>
<p>Walls are constructed when you create functions. You can think about walls as being made of double sided mirrors. The inside can see out but the outside can’t see back in.<br />
<img class="alignnone size-full wp-image-3888" title="function-walls" src="http://www.digitalsurgeons.com/wp-content/uploads/2012/04/function-walls.png" alt="" width="467" height="350" /><br />
Example 2</p>
<pre class="brush: jscript; title: ; notranslate">
//create a variable in the main bubble
var builder = &quot;Aaron&quot;;

//define a room inside the main bubble
function MirrorRoom(){
  var floor = &quot;flat&quot;;
  console.log(builder); //Aaron
}
//run the code inside MirrorRoom
MirrorRoom();

console.log(MirrorRoom.floor); //undefined
</pre>
<p><a href="http://jsbin.com/iyaxah/4/edit" target="_blank">http://jsbin.com/iyaxah/4/edit</a></p>
<p>In this next example I’m introducing the keyword <em>this</em>. <em>this</em> points to what room you are standing in. If you are not in a defined room, <em>this</em> is <em>null. </em>When it is <em>null</em>, JavaScript reassigns <em>this</em> to the document’s top level DOM element. Confused?. Ignore what I just said. For now, just say to your self, “this room”. And if you’re not in a room say to yourself, &#8220;this html document&#8221;.</p>
<p>Defining a variable using the <em>this </em>keyword, like: <em>this.variableName</em> saves <em>variableName</em> in the wall of the function. Code on either side of the wall has access to it.<br />
<img class="alignnone size-full wp-image-3889" title="this-cube" src="http://www.digitalsurgeons.com/wp-content/uploads/2012/04/this-cube.png" alt="" width="355" height="300" /><br />
Example 3</p>
<pre class="brush: jscript; title: ; notranslate">
//create a variable in the main bubble
var builder = &quot;Aaron&quot;;

//define a room inside the main bubble
function MirrorRoom(){
  //floor exists while standing in this object.
  this.floor = &quot;flat&quot;;
  console.log(builder); //Aaron
}
//assign a portable version of the function to a new variable
var firstRoom = new MirrorRoom();

//defining this.floor inside of MirrorRoom gives us access to it by thinking of it as a property of firstRoom
console.log(firstRoom.floor); //flat
</pre>
<p><a href="http://jsbin.com/iyaxah/7/edit" target="_blank">http://jsbin.com/iyaxah/7/edit</a></p>
<h2>Functions</h2>
<p>At the most basic level a function’s job is to encapsulate code so that it can be reused from different places. In the following example I create a function that adds 2 numbers and spits out the sum. I use the <em>return</em> keyword to spit out the variable that holds the sum.</p>
<p>Example 4</p>
<pre class="brush: jscript; title: ; notranslate">
function addNumbersTogether(num1, num2){
  var sum = num1 + num2;
  return sum;
}
//
var computeAddition = addNumbersTogether(5, 7);
console.log(computeAddition); //12
</pre>
<p><a href="http://jsbin.com/icakiy/4/edit" target="_blank">http://jsbin.com/icakiy/4/edit</a></p>
<p>In a function, there should not be any code after the <em>return</em> statement. <em>Return</em> specifies that the function’s duty has been done.</p>
<h2>Linking it to the DOM. Onward to jQuery.</h2>
<p>If you have never touched jQuery, this won’t make much sense. Hopefully you’ve used it to trigger events, animate elements, and you know a little about selectors.</p>
<p>What does a selector give me? A selector returns an array of elements that match the given selector.</p>
<p>Example 5</p>
<pre class="brush: xml; title: ; notranslate">
&lt;ul&gt;
	&lt;li&gt;Apples&lt;/li&gt;
	&lt;li&gt;Oranges&lt;/li&gt;
	&lt;li&gt;Grapes&lt;/li&gt;
	&lt;li&gt;Limes&lt;/li&gt;
&lt;/ul&gt;
</pre>
<p>JavaScript</p>
<pre class="brush: jscript; title: ; notranslate">
//with jQuery loaded
var LIs = $('li');
console.log(LIs); //&lt;li&gt;​Apples​&lt;/li&gt;​, &lt;li&gt;​Oranges​&lt;/li&gt;​, &lt;li&gt;​Grapes​&lt;/li&gt;​, &lt;li&gt;​Limes​&lt;/li&gt;​
</pre>
<p><a href="http://jsbin.com/ipuzoj/edit#javascript,html,live" target="_blank">http://jsbin.com/ipuzoj/edit</a></p>
<p>It’s important to note that the items in the array are the actual elements in the DOM. If you change the innerHTML of the elements in the array, the text on the page will change.</p>
<p><img class="alignnone size-full wp-image-3873" title="jquery-selector-in-action" src="http://www.digitalsurgeons.com/wp-content/uploads/2012/04/jquery-selector-in-action.png" alt="" width="555" height="500" /><br />
<a name="ex6"/><br />
Example 6</p>
<pre class="brush: jscript; title: ; notranslate">
var LIs = $('li');
LIs[0].innerHTML = &quot;Bananas&quot;; //Apples gets changed to Bananas
</pre>
<p><a href="http://jsbin.com/ipuzoj/2/edit" target="_blank">http://jsbin.com/ipuzoj/2/edit</a></p>
<p>So now lets talk a little about why we&#8217;d want to do that. To start, lets demonstrate adding a variable to our jQuery selectors. The variable $.fn is the object that is used when you create any jQuery object. Adding properties to $.fn is where the fun starts. Lets start with a basic example.</p>
<p>Example 7</p>
<pre class="brush: jscript; title: ; notranslate">
/*
Assuming we have some markup like this
&lt;p id=&quot;hello&quot;&gt;Hello World&lt;/p&gt;
*/
$.fn.skyColor = &quot;blue&quot;;

console.log($('#hello').skyColor); //blue
</pre>
<p><a href="http://jsbin.com/eluruc/6/edit" target="_blank">http://jsbin.com/eluruc/6/edit</a></p>
<p>In the above example we are giving our $.fn object a property of <em>skyColor.</em> This means when we use our selector $(&#8216;#hello&#8217;) it has the property <em>skyColor</em> too. Next we’ll add a function which is much more useful.</p>
<p>Example 8</p>
<pre class="brush: jscript; title: ; notranslate">
/*
Assuming we have some markup like this
&lt;p id=&quot;hello&quot;&gt;Hello World&lt;/p&gt;
*/
$.fn.clear = function(){
  this[0].innerHTML = &quot;&quot;;
};

$('#hello').clear(); //removes Hello World
</pre>
<p><a href="http://jsbin.com/otojut/3/edit" target="_blank">http://jsbin.com/otojut/3/edit</a></p>
<p>There are a few things going on here. You might recall from <a href="#ex6">Example 6</a> jQuery selectors return an array of html elements that match the query. The keyword <em>this</em> points to the array of matching elements. Since there is only 1 element in the example <em>this[0]</em> is the one we are looking for. If we want to match more than 1 element, we’ll need to loop through <em>this</em>. Let’s take a look at that now.</p>
<p>Example 9</p>
<pre class="brush: jscript; title: ; notranslate">
/*
Assuming we have some markup like this
&lt;p class=&quot;target&quot;&gt;Hello&lt;/p&gt;
&lt;p class=&quot;target&quot;&gt;World&lt;/p&gt;
*/
$.fn.clear = function(){
  for(var i in this){
   this[i].innerHTML = &quot;&quot;;
  }
};

$('.target').clear(); //removes Hello World
</pre>
<p><a href="http://jsbin.com/otojut/4/edit#javascript,html,live" target="_blank">http://jsbin.com/otojut/4/edit</a></p>
<p>Now we’re getting somewhere. We&#8217;ll continue this discussion and go deeper into structuring jQuery plugins and discuss JavaScript and DOM manipulation further.</p>
<p><img class="alignnone size-full wp-image-3892" title="the-selector" src="http://www.digitalsurgeons.com/wp-content/uploads/2012/04/the-selector.png" alt="" width="300" height="643" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.digitalsurgeons.com/blog/learning-javascript-basics-tutorial/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Get the Picture: Facebook Takes Over the World</title>
		<link>http://www.digitalsurgeons.com/blog/news/get-the-picture-facebook-takes-over-the-world/</link>
		<comments>http://www.digitalsurgeons.com/blog/news/get-the-picture-facebook-takes-over-the-world/#comments</comments>
		<pubDate>Fri, 13 Apr 2012 21:21:56 +0000</pubDate>
		<dc:creator>marissa</dc:creator>
				<category><![CDATA[News]]></category>

		<guid isPermaLink="false">http://www.digitalsurgeons.com/?p=3808</guid>
		<description><![CDATA[Top stories in digital media, advertising and technology courtesy of Digital Surgeons: Facebook buys Instagram and CISPA starts up the online privacy debate.]]></description>
			<content:encoded><![CDATA[<h2>This Week&#8217;s Top Story</h2>
<p>Facebook&#8217;s acquisition of Instagram has been the hot topic of conversation this week. Tech bloggers have wondered aloud whether the 2-year-old startup is truly worth the $1 billion price tag, while users have flocked to social media to express their opinion. Some have abandoned the social network, dreading its future with Facebook, but more have taken a new interest in the app which just recently expanded to the Android market. In fact, the announcement catapulted Instagram to the top of the Apple App Store list.</p>
<h2>Newsworthy Tidbits:</h2>
<p>Just as the controversy dies down surrounding online privacy legislation SOPA and PIPA, now comes a new government initiative called the Cyber Intelligence Sharing and Protection Act (CISPA). The bill has been compared to SOPA, but the co-founder of the bill intends to address preliminary concerns. Still others are more enraged by Facebook&#8217;s apparent support of the initiative.</p>
<p>Applications for the generic top-level domains (gTLDS) were intended to close, though its&#8217; popularity is difficult to determine, as many top brands were hesitant to say whether they had submitted an application for fear of tipping off their competition. Google, however, did announce that they were after gTLDS for some of their current and future properties. In addition, the deadline was delayed due to a &#8220;technical glitch.&#8221;</p>
<h2>Be on the Lookout:</h2>
<p>The city of New York is running a pilot program to replace some the city&#8217;s phone booths with 32 inch smart screens to be used for local advertising. The initiative is starting with 250 pay booths and will aim to replace all of the city&#8217;s 12,000+ booths with smart screens by October 2014. In addition to becoming a vehicle for local marketing, the screens may also serve as mobile hotspots.</p>
<h2>Related articles</h2>
<ul class="zemanta-article-ul">
<li class="zemanta-article-ul-li"><a href="http://www.webpronews.com/icann-delays-deadline-for-gtld-applications-2012-04" target="_blank">ICANN Delays Deadline For gTLD Applications</a> (webpronews.com)</li>
<li class="zemanta-article-ul-li"><a href="http://epicagear.com/facebook-just-bought-instagram-news/" target="_blank">Facebook Just Bought Instagram [NEWS]</a> (epicagear.com)</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.digitalsurgeons.com/blog/news/get-the-picture-facebook-takes-over-the-world/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Intern Diaries: Dan Saksa</title>
		<link>http://www.digitalsurgeons.com/blog/intern-diaries-dan-saksa/</link>
		<comments>http://www.digitalsurgeons.com/blog/intern-diaries-dan-saksa/#comments</comments>
		<pubDate>Tue, 10 Apr 2012 14:13:35 +0000</pubDate>
		<dc:creator>marissa</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[News]]></category>

		<guid isPermaLink="false">http://www.digitalsurgeons.com/?p=3767</guid>
		<description><![CDATA[This is a tale of how Dan Saksa became a Digital Surgeon. Let&#8217;s go back to the beginning of my [...]]]></description>
			<content:encoded><![CDATA[<p>This is a tale of how Dan Saksa became a Digital Surgeon. Let&#8217;s go back to the beginning of my Digital Surgeons adventure, shall we? I found Digital Surgeons on a whim while looking for web design and development shops in Connecticut. I looked through their website and decided that I should apply for their internship. I wrote very specifically that I didn&#8217;t want to spend the summer being best friends with the local baristas. I&#8217;m sure they&#8217;re very nice people but I wanted to kick CSS and take names (or something along those lines).</p>
<p>The internship went roughly six months and in those six months I would like to say that I am grateful for all the people I stepped on to get to where I am today. Unfortunately I can&#8217;t, because I didn&#8217;t step on anybody. More like the other way around.</p>
<h3 style="font-size: 16px;"><em>I made UI kits, learned how to really use Photoshop (sorry Fireworks®), helped debug real websites and did not get a single cup of coffee for anybody.</em></h3>
<p>When I came into Digital Surgeons on the first day it was the summer of my final year at college and I thought the world was my oyster. My design skills and dev chops were pretty solid, I thought. Boy was I in for one shell of a summer. In the coming weeks that turned into months I was immersed in everything design and development. I learned how to use things like CodeIgniter, jQuery and Expression Engine just to name a few. I made UI kits, learned how to really use Photoshop (sorry Fireworks®), helped debug real websites and did not get a single cup of coffee for anybody. Not one. I learned more in those six months than I did at school. It was very humbling to have such great mentoring from everybody here. I would not be where I am today had I not taken that internship. I&#8217;m sure everybody says it but I&#8217;m going on the record to say that I really mean it. Being at Digital Surgeons really fast tracked my skills and got me to a place that I wouldn&#8217;t have been without them.</p>
<p>Fast forward to 2012, I am now a full time surgeon here and loving every minute of it. I learn more every day about design and development. The experience is surely one  I would have been hard pressed to find anywhere else. Plus, none of my friends have a scooter at their jobs.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.digitalsurgeons.com/blog/intern-diaries-dan-saksa/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

