<?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>Werx Limited</title>
	<atom:link href="http://werxltd.com/wp/feed/" rel="self" type="application/rss+xml" />
	<link>http://werxltd.com/wp</link>
	<description>We make IT work.</description>
	<lastBuildDate>Thu, 06 Dec 2012 16:16:47 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>Simple Scala Map/Reduce Job</title>
		<link>http://werxltd.com/wp/2012/10/27/simple-scala-mapreduce-job/</link>
		<comments>http://werxltd.com/wp/2012/10/27/simple-scala-mapreduce-job/#comments</comments>
		<pubDate>Sat, 27 Oct 2012 20:35:53 +0000</pubDate>
		<dc:creator>wes</dc:creator>
				<category><![CDATA[hadoop]]></category>
		<category><![CDATA[scala]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[maven]]></category>
		<category><![CDATA[unit test]]></category>

		<guid isPermaLink="false">http://werxltd.com/wp/?p=1199</guid>
		<description><![CDATA[I was recently tasked with writing a Hadoop map/reduce job. This job had the requirement of taking a list of regular expressions and scouring hundreds of gigs worth of log files for matches. Since I&#8217;ve been leaning more and more towards Scala I wanted to use it for my job but I also wanted to [...]]]></description>
				<content:encoded><![CDATA[<p>I was recently tasked with writing a Hadoop map/reduce job. This job had the requirement of taking a list of regular expressions and scouring hundreds of gigs worth of log files for matches. Since I&#8217;ve been leaning more and more towards Scala I wanted to use it for my job but I also wanted to use Maven for my job&#8217;s package management to make the job easy to setup and extend. And finally, I wanted to have unit tests for my mapper and reducer and an overall job unit test. The result is <a href="https://github.com/kai5263499/simple-scala-mapreduce">this project</a> I posted to GitHub as a template for future projects. I hope it proves as helpful for others as I&#8217;m sure it&#8217;ll be for me.</p>
<div class="betterrelated none"><p>No related content found.</p></div><p><a class="a2a_button_facebook_like addtoany_special_service" data-href="http://werxltd.com/wp/2012/10/27/simple-scala-mapreduce-job/"></a><a class="a2a_button_twitter_tweet addtoany_special_service" data-count="none" data-url="http://werxltd.com/wp/2012/10/27/simple-scala-mapreduce-job/" data-text="Simple Scala Map/Reduce Job"></a><a class="a2a_button_google_plusone addtoany_special_service" data-annotation="none" data-href="http://werxltd.com/wp/2012/10/27/simple-scala-mapreduce-job/"></a><a class="a2a_button_linkedin" href="http://www.addtoany.com/add_to/linkedin?linkurl=http%3A%2F%2Fwerxltd.com%2Fwp%2F2012%2F10%2F27%2Fsimple-scala-mapreduce-job%2F&amp;linkname=Simple%20Scala%20Map%2FReduce%20Job" title="LinkedIn" rel="nofollow" target="_blank"><img src="http://werxltd.com/wp/wp-content/plugins/add-to-any/icons/linkedin.png?9d7bd4" width="16" height="16" alt="LinkedIn"/></a><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwerxltd.com%2Fwp%2F2012%2F10%2F27%2Fsimple-scala-mapreduce-job%2F&amp;title=Simple%20Scala%20Map%2FReduce%20Job" id="wpa2a_2">Share/Save</a></p>]]></content:encoded>
			<wfw:commentRss>http://werxltd.com/wp/2012/10/27/simple-scala-mapreduce-job/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Select distinct for MongoDB</title>
		<link>http://werxltd.com/wp/2012/10/23/select-distinct-for-mongodb/</link>
		<comments>http://werxltd.com/wp/2012/10/23/select-distinct-for-mongodb/#comments</comments>
		<pubDate>Tue, 23 Oct 2012 14:33:48 +0000</pubDate>
		<dc:creator>wes</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[mongodb]]></category>
		<category><![CDATA[administration]]></category>
		<category><![CDATA[scripting]]></category>

		<guid isPermaLink="false">http://werxltd.com/wp/?p=1190</guid>
		<description><![CDATA[Here is a handy script I&#8217;ve been using for MongoDB to retrieve a list of all the fields used in a collection. This uses a map/reduce routine and has to comb over all the documents in a collection so you may want to exercise caution when using this script. // usage: // mongo localhost/foo --quiet [...]]]></description>
				<content:encoded><![CDATA[<p>Here is a handy script I&#8217;ve been using for MongoDB to retrieve a list of all the fields used in a collection. This uses a map/reduce routine and has to comb over all the documents in a collection so you may want to exercise caution when using this script.</p>
<pre class="brush:javascript">
// usage:
// mongo localhost/foo --quiet --eval="var collection='bar';" getcollectionkeys.js
var mr = db.runCommand({
  "mapreduce":collection,
  "map":function() {
    for (var key in this) { emit(key, null); }
  },
  "reduce":function(key, stuff) { return null; }, 
  "out":collection + "_keys"
})

print(db[mr.result].distinct("_id"))

db[collection+"_keys"].drop()
</pre>
<div class="betterrelated none"><p>No related content found.</p></div><p><a class="a2a_button_facebook_like addtoany_special_service" data-href="http://werxltd.com/wp/2012/10/23/select-distinct-for-mongodb/"></a><a class="a2a_button_twitter_tweet addtoany_special_service" data-count="none" data-url="http://werxltd.com/wp/2012/10/23/select-distinct-for-mongodb/" data-text="Select distinct for MongoDB"></a><a class="a2a_button_google_plusone addtoany_special_service" data-annotation="none" data-href="http://werxltd.com/wp/2012/10/23/select-distinct-for-mongodb/"></a><a class="a2a_button_linkedin" href="http://www.addtoany.com/add_to/linkedin?linkurl=http%3A%2F%2Fwerxltd.com%2Fwp%2F2012%2F10%2F23%2Fselect-distinct-for-mongodb%2F&amp;linkname=Select%20distinct%20for%20MongoDB" title="LinkedIn" rel="nofollow" target="_blank"><img src="http://werxltd.com/wp/wp-content/plugins/add-to-any/icons/linkedin.png?9d7bd4" width="16" height="16" alt="LinkedIn"/></a><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwerxltd.com%2Fwp%2F2012%2F10%2F23%2Fselect-distinct-for-mongodb%2F&amp;title=Select%20distinct%20for%20MongoDB" id="wpa2a_4">Share/Save</a></p>]]></content:encoded>
			<wfw:commentRss>http://werxltd.com/wp/2012/10/23/select-distinct-for-mongodb/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Simple PhantomJS web scraping script</title>
		<link>http://werxltd.com/wp/2012/10/22/simple-phantomjs-web-scraping-script/</link>
		<comments>http://werxltd.com/wp/2012/10/22/simple-phantomjs-web-scraping-script/#comments</comments>
		<pubDate>Mon, 22 Oct 2012 19:55:19 +0000</pubDate>
		<dc:creator>wes</dc:creator>
				<category><![CDATA[bash]]></category>
		<category><![CDATA[coffeescript]]></category>
		<category><![CDATA[it industry]]></category>
		<category><![CDATA[javascript coffeescript data mining]]></category>

		<guid isPermaLink="false">http://werxltd.com/wp/?p=1184</guid>
		<description><![CDATA[Here is a simple web scraping script I wrote for PhantomJS, the immensely useful headless browser, to load a page, inject jQuery into it, and then scrape the page using a user-supplied jQuery selector. page = require('webpage').create() system = require 'system' phantom.injectJs "static/js/underscore-min.js" page.onConsoleMessage = (msg) -&#62; if not msg.match /^Unsafe/ console.log msg scrapeEl = [...]]]></description>
				<content:encoded><![CDATA[<p><a href="http://phantomjs.org/"><img class="size-full wp-image-1191 alignright" title="phantomjs-logo" src="http://werxltd.com/wp/wp-content/uploads/2012/10/phantomjs-logo.png?9d7bd4" alt="" width="240" height="80" /></a>Here is a simple web scraping script I wrote for <a href="http://phantomjs.org/">PhantomJS</a>, the immensely useful headless browser, to load a page, inject <a href="http://jquery.com/">jQuery</a> into it, and then scrape the page using a user-supplied <a href="http://api.jquery.com/category/selectors/?rdfrom=http%3A%2F%2Fdocs.jquery.com%2Fmw%2Findex.php%3Ftitle%3DSelectors%26redirect%3Dno">jQuery selector</a>.</p>
<pre class="brush:python">page = require('webpage').create()
system = require 'system'

phantom.injectJs "static/js/underscore-min.js"

page.onConsoleMessage = (msg) -&gt;
    if not msg.match /^Unsafe/
        console.log msg

scrapeEl = (elselector) -&gt;
    rows = $ elselector
    for el in rows
        if el.innerHTML
            str = el.innerHTML.trim()
            if str.length &gt; 0
                console.log str

page.open system.args[1], (status) -&gt;
    if status isnt 'success'
        phantom.exit 1
    else
        page.injectJs "static/js/underscore-min.js"
        page.injectJs "static/js/utils.js"
        page.injectJs "static/js/jquery-1.8.2.min.js"
        page.evaluate scrapeEl, system.args[2]
        phantom.exit()</pre>
<p>Run it with:</p>
<pre class="brush:bash">phantomjs scrape_element.coffee "http://www.moviefone.com/coming-soon" ".movieTitle span"</pre>
<div class="betterrelated none"><p>No related content found.</p></div><p><a class="a2a_button_facebook_like addtoany_special_service" data-href="http://werxltd.com/wp/2012/10/22/simple-phantomjs-web-scraping-script/"></a><a class="a2a_button_twitter_tweet addtoany_special_service" data-count="none" data-url="http://werxltd.com/wp/2012/10/22/simple-phantomjs-web-scraping-script/" data-text="Simple PhantomJS web scraping script"></a><a class="a2a_button_google_plusone addtoany_special_service" data-annotation="none" data-href="http://werxltd.com/wp/2012/10/22/simple-phantomjs-web-scraping-script/"></a><a class="a2a_button_linkedin" href="http://www.addtoany.com/add_to/linkedin?linkurl=http%3A%2F%2Fwerxltd.com%2Fwp%2F2012%2F10%2F22%2Fsimple-phantomjs-web-scraping-script%2F&amp;linkname=Simple%20PhantomJS%20web%20scraping%20script" title="LinkedIn" rel="nofollow" target="_blank"><img src="http://werxltd.com/wp/wp-content/plugins/add-to-any/icons/linkedin.png?9d7bd4" width="16" height="16" alt="LinkedIn"/></a><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwerxltd.com%2Fwp%2F2012%2F10%2F22%2Fsimple-phantomjs-web-scraping-script%2F&amp;title=Simple%20PhantomJS%20web%20scraping%20script" id="wpa2a_6">Share/Save</a></p>]]></content:encoded>
			<wfw:commentRss>http://werxltd.com/wp/2012/10/22/simple-phantomjs-web-scraping-script/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tracking the trackers</title>
		<link>http://werxltd.com/wp/2012/07/02/tracking-the-trackers/</link>
		<comments>http://werxltd.com/wp/2012/07/02/tracking-the-trackers/#comments</comments>
		<pubDate>Mon, 02 Jul 2012 13:00:47 +0000</pubDate>
		<dc:creator>wes</dc:creator>
				<category><![CDATA[it industry]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[privacy]]></category>

		<guid isPermaLink="false">http://werxltd.com/wp/?p=1181</guid>
		<description><![CDATA[No related content found.]]></description>
				<content:encoded><![CDATA[<p><object width="526" height="374"><param name="movie" value="http://video.ted.com/assets/player/swf/EmbedPlayer.swf"></param><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always"/><param name="wmode" value="transparent"></param><param name="bgColor" value="#ffffff"></param><param name="flashvars" value="vu=http://video.ted.com/talk/stream/2012U/Blank/GaryKovacs_2012U-320k.mp4&#038;su=http://images.ted.com/images/ted/tedindex/embed-posters/GaryKovacs_2012U-embed.jpg&#038;vw=512&#038;vh=288&#038;ap=0&#038;ti=1436&#038;lang=en&#038;introDuration=15330&#038;adDuration=4000&#038;postAdDuration=830&#038;adKeys=talk=gary_kovacs_tracking_the_trackers;year=2012;theme=what_s_next_in_tech;theme=not_business_as_usual;theme=technology_history_and_destiny;event=TED2012;tag=Internet;tag=business;tag=technology;&#038;preAdTag=tconf.ted/embed;tile=1;sz=512x288;" /><embed src="http://video.ted.com/assets/player/swf/EmbedPlayer.swf" pluginspace="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" wmode="transparent" bgColor="#ffffff" width="526" height="374" allowFullScreen="true" allowScriptAccess="always" flashvars="vu=http://video.ted.com/talk/stream/2012U/Blank/GaryKovacs_2012U-320k.mp4&#038;su=http://images.ted.com/images/ted/tedindex/embed-posters/GaryKovacs_2012U-embed.jpg&#038;vw=512&#038;vh=288&#038;ap=0&#038;ti=1436&#038;lang=en&#038;introDuration=15330&#038;adDuration=4000&#038;postAdDuration=830&#038;adKeys=talk=gary_kovacs_tracking_the_trackers;year=2012;theme=what_s_next_in_tech;theme=not_business_as_usual;theme=technology_history_and_destiny;event=TED2012;tag=Internet;tag=business;tag=technology;&#038;preAdTag=tconf.ted/embed;tile=1;sz=512x288;"></embed></object></p>
<div class="betterrelated none"><p>No related content found.</p></div><p><a class="a2a_button_facebook_like addtoany_special_service" data-href="http://werxltd.com/wp/2012/07/02/tracking-the-trackers/"></a><a class="a2a_button_twitter_tweet addtoany_special_service" data-count="none" data-url="http://werxltd.com/wp/2012/07/02/tracking-the-trackers/" data-text="Tracking the trackers"></a><a class="a2a_button_google_plusone addtoany_special_service" data-annotation="none" data-href="http://werxltd.com/wp/2012/07/02/tracking-the-trackers/"></a><a class="a2a_button_linkedin" href="http://www.addtoany.com/add_to/linkedin?linkurl=http%3A%2F%2Fwerxltd.com%2Fwp%2F2012%2F07%2F02%2Ftracking-the-trackers%2F&amp;linkname=Tracking%20the%20trackers" title="LinkedIn" rel="nofollow" target="_blank"><img src="http://werxltd.com/wp/wp-content/plugins/add-to-any/icons/linkedin.png?9d7bd4" width="16" height="16" alt="LinkedIn"/></a><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwerxltd.com%2Fwp%2F2012%2F07%2F02%2Ftracking-the-trackers%2F&amp;title=Tracking%20the%20trackers" id="wpa2a_8">Share/Save</a></p>]]></content:encoded>
			<wfw:commentRss>http://werxltd.com/wp/2012/07/02/tracking-the-trackers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Teaching cybersecurity</title>
		<link>http://werxltd.com/wp/2012/07/01/teaching-cybersecurity/</link>
		<comments>http://werxltd.com/wp/2012/07/01/teaching-cybersecurity/#comments</comments>
		<pubDate>Sun, 01 Jul 2012 13:27:27 +0000</pubDate>
		<dc:creator>wes</dc:creator>
				<category><![CDATA[security]]></category>
		<category><![CDATA[cyberwarfare]]></category>

		<guid isPermaLink="false">http://werxltd.com/wp/?p=1175</guid>
		<description><![CDATA[Origional No related content found.]]></description>
				<content:encoded><![CDATA[<p><a href="http://boingboing.net/2012/06/11/students-assigned-to-cheat-on.html">Origional</a><br />
<iframe width="420" height="315" src="http://www.youtube.com/embed/v0JHDr1oT0Y" frameborder="0" allowfullscreen></iframe></p>
<div class="betterrelated none"><p>No related content found.</p></div><p><a class="a2a_button_facebook_like addtoany_special_service" data-href="http://werxltd.com/wp/2012/07/01/teaching-cybersecurity/"></a><a class="a2a_button_twitter_tweet addtoany_special_service" data-count="none" data-url="http://werxltd.com/wp/2012/07/01/teaching-cybersecurity/" data-text="Teaching cybersecurity"></a><a class="a2a_button_google_plusone addtoany_special_service" data-annotation="none" data-href="http://werxltd.com/wp/2012/07/01/teaching-cybersecurity/"></a><a class="a2a_button_linkedin" href="http://www.addtoany.com/add_to/linkedin?linkurl=http%3A%2F%2Fwerxltd.com%2Fwp%2F2012%2F07%2F01%2Fteaching-cybersecurity%2F&amp;linkname=Teaching%20cybersecurity" title="LinkedIn" rel="nofollow" target="_blank"><img src="http://werxltd.com/wp/wp-content/plugins/add-to-any/icons/linkedin.png?9d7bd4" width="16" height="16" alt="LinkedIn"/></a><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwerxltd.com%2Fwp%2F2012%2F07%2F01%2Fteaching-cybersecurity%2F&amp;title=Teaching%20cybersecurity" id="wpa2a_10">Share/Save</a></p>]]></content:encoded>
			<wfw:commentRss>http://werxltd.com/wp/2012/07/01/teaching-cybersecurity/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MongoDB Security Considerations presentation at MongoSF 2012</title>
		<link>http://werxltd.com/wp/2012/05/07/mongodb-security-considerations-presentation-at-mongosf-2012/</link>
		<comments>http://werxltd.com/wp/2012/05/07/mongodb-security-considerations-presentation-at-mongosf-2012/#comments</comments>
		<pubDate>Mon, 07 May 2012 18:40:10 +0000</pubDate>
		<dc:creator>wes</dc:creator>
				<category><![CDATA[it industry]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[conference]]></category>
		<category><![CDATA[mongodb]]></category>
		<category><![CDATA[mongosf]]></category>
		<category><![CDATA[presentation]]></category>

		<guid isPermaLink="false">http://werxltd.com/wp/?p=1171</guid>
		<description><![CDATA[Here is a presentation I gave at MongoSF 2012 on unique security considerations for MongoDB. And here are my slides. No related content found.]]></description>
				<content:encoded><![CDATA[<p><a href="http://www.10gen.com/presentations/mongosf-2012/mongodb-security-considerations">Here is a presentation I gave at MongoSF 2012</a> on unique security considerations for MongoDB.</p>
<p>And <a href="http://prezi.com/yihcwwa6q_pi/mongodb-security/">here</a> are my slides.</p>
<div class="betterrelated none"><p>No related content found.</p></div><p><a class="a2a_button_facebook_like addtoany_special_service" data-href="http://werxltd.com/wp/2012/05/07/mongodb-security-considerations-presentation-at-mongosf-2012/"></a><a class="a2a_button_twitter_tweet addtoany_special_service" data-count="none" data-url="http://werxltd.com/wp/2012/05/07/mongodb-security-considerations-presentation-at-mongosf-2012/" data-text="MongoDB Security Considerations presentation at MongoSF 2012"></a><a class="a2a_button_google_plusone addtoany_special_service" data-annotation="none" data-href="http://werxltd.com/wp/2012/05/07/mongodb-security-considerations-presentation-at-mongosf-2012/"></a><a class="a2a_button_linkedin" href="http://www.addtoany.com/add_to/linkedin?linkurl=http%3A%2F%2Fwerxltd.com%2Fwp%2F2012%2F05%2F07%2Fmongodb-security-considerations-presentation-at-mongosf-2012%2F&amp;linkname=MongoDB%20Security%20Considerations%20presentation%20at%20MongoSF%202012" title="LinkedIn" rel="nofollow" target="_blank"><img src="http://werxltd.com/wp/wp-content/plugins/add-to-any/icons/linkedin.png?9d7bd4" width="16" height="16" alt="LinkedIn"/></a><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwerxltd.com%2Fwp%2F2012%2F05%2F07%2Fmongodb-security-considerations-presentation-at-mongosf-2012%2F&amp;title=MongoDB%20Security%20Considerations%20presentation%20at%20MongoSF%202012" id="wpa2a_12">Share/Save</a></p>]]></content:encoded>
			<wfw:commentRss>http://werxltd.com/wp/2012/05/07/mongodb-security-considerations-presentation-at-mongosf-2012/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How hackers see bugs</title>
		<link>http://werxltd.com/wp/2012/04/30/how-hackers-see-bugs/</link>
		<comments>http://werxltd.com/wp/2012/04/30/how-hackers-see-bugs/#comments</comments>
		<pubDate>Mon, 30 Apr 2012 15:01:08 +0000</pubDate>
		<dc:creator>wes</dc:creator>
				<category><![CDATA[security]]></category>
		<category><![CDATA[hacking]]></category>

		<guid isPermaLink="false">http://werxltd.com/wp/?p=1152</guid>
		<description><![CDATA[No related content found.]]></description>
				<content:encoded><![CDATA[<p><iframe width="560" height="315" src="http://www.youtube.com/embed/onpxOG3TrWg" frameborder="0" allowfullscreen></iframe></p>
<div class="betterrelated none"><p>No related content found.</p></div><p><a class="a2a_button_facebook_like addtoany_special_service" data-href="http://werxltd.com/wp/2012/04/30/how-hackers-see-bugs/"></a><a class="a2a_button_twitter_tweet addtoany_special_service" data-count="none" data-url="http://werxltd.com/wp/2012/04/30/how-hackers-see-bugs/" data-text="How hackers see bugs"></a><a class="a2a_button_google_plusone addtoany_special_service" data-annotation="none" data-href="http://werxltd.com/wp/2012/04/30/how-hackers-see-bugs/"></a><a class="a2a_button_linkedin" href="http://www.addtoany.com/add_to/linkedin?linkurl=http%3A%2F%2Fwerxltd.com%2Fwp%2F2012%2F04%2F30%2Fhow-hackers-see-bugs%2F&amp;linkname=How%20hackers%20see%20bugs" title="LinkedIn" rel="nofollow" target="_blank"><img src="http://werxltd.com/wp/wp-content/plugins/add-to-any/icons/linkedin.png?9d7bd4" width="16" height="16" alt="LinkedIn"/></a><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwerxltd.com%2Fwp%2F2012%2F04%2F30%2Fhow-hackers-see-bugs%2F&amp;title=How%20hackers%20see%20bugs" id="wpa2a_14">Share/Save</a></p>]]></content:encoded>
			<wfw:commentRss>http://werxltd.com/wp/2012/04/30/how-hackers-see-bugs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bait and Switch: An iOS Phishing Scam Using the iTunes Terms of Service</title>
		<link>http://werxltd.com/wp/2012/01/23/bait-and-switch-an-ios-phishing-scam-using-the-itunes-terms-of-service/</link>
		<comments>http://werxltd.com/wp/2012/01/23/bait-and-switch-an-ios-phishing-scam-using-the-itunes-terms-of-service/#comments</comments>
		<pubDate>Mon, 23 Jan 2012 15:00:36 +0000</pubDate>
		<dc:creator>rbailey</dc:creator>
				<category><![CDATA[graphics design]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[malware]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[proof of concept]]></category>

		<guid isPermaLink="false">http://werxltd.com/wp/?p=1105</guid>
		<description><![CDATA[[Guest post by Ryan Bailey] Earlier this year roughly 50,000 stolen iTunes accounts were posted to a Chinese online auction site with prices ranging from 15 cents to $30 each. Many forms of attacks can be leveraged in acquiring passwords such as these through covert means, but almost none provide such a straightforward plan of [...]]]></description>
				<content:encoded><![CDATA[<p>[Guest post by <a href="http://rpbailey.net">Ryan Bailey</a>]<br />
<a href="http://www.informationweek.com/news/storage/data_protection/229000294"><br />
Earlier this year roughly 50,000 stolen iTunes accounts were posted to a Chinese online auction site with prices ranging from 15 cents to $30 each</a>. Many forms of attacks can be leveraged in acquiring passwords such as these through covert means, but almost none provide such a straightforward plan of attack like Phishing. Phishing, like many other forms of modern day email spam, is a form of social engineering aimed at acquiring sensitive information by attempting to fool users into freely surrendering passwords, credit card information or other potentially valuable information. Most current day attacks come in the form of an email seeking users to verify their account or billing details. These social engineering attempts often utilize pixel perfect facsimiles of websites or newsletters in order to gain a user’s trust. That’s where this phishing proof of concept gets its cue.</p>
<p><strong>The Pitch</strong><br />
The first step of the attack comes in the form of utilizing a botnet to send out a fake news article using the default styles of a legitimate shared article. These emails often use minimal styling and shortened URLs making a fake shared story almost impossible to distinguish from a real one.<br />
<a href="http://poc.werxltd.com/iosphishing/usatoday2.html"><img src="http://i.imgur.com/hlhm9.png" alt="" width="213px" height="320px" /></a></p>
<p><strong>The Hook</strong><br />
The user is then taken to a fake mobile version of the news article where the user is able to browse the page as they normally would. The only clue to the fake at this point is the URL in the address bar which can easily be spoofed with either a shortened URL or a misspelled domain name.<br />
<a href="http://poc.werxltd.com/iosphishing/usatoday2.html"><img src="http://i.imgur.com/D4WZn.png" alt="" width="213px" height="320px" /></a></p>
<p><strong>The Bait</strong><br />
After a certain amount of time, an iOS alert pops up to inform the user that the iTunes Terms of Service has changed. Normally users are only prompted to accept changes after attempting a download from the iTunes store. But as anyone who has owned an iPhone will attest to, these changes often stand in the way of desired actions and often are accepted without a second thought. By delaying the bait until after the user has begun to read the article, it stands to reason the users will simply accept the thought of accepting the new Terms of Service without second thought.<br />
<img src="http://i.imgur.com/L1dte.png" alt="" width="213px" height="320px" /></p>
<p><strong>The Switch</strong><br />
The users, after having clicked through to accept the changes, are taken to a facsimile iTunes Store Terms of Service page where users are given bogus information about the update they are about to agree to. This view of removing the standard Safari title bar is easily accomplished through several frameworks designed to perfectly mimic the iOS user interface.<br />
<img src="http://i.imgur.com/Q585p.png" alt="" width="213px" height="320px" /></p>
<p><strong>The Payoff</strong></p>
<p>The user scroll to the bottom of the fake Terms of Service to the realistic “Accept” button where upon clicking pops up a copy of the iOS Username and Password Prompt.  After entering their username and tapping the “OK” button, the user can be forwarded back to the article being none the wiser to their personal information now being in the hands of the highest bidder.<br />
<img src="http://i.imgur.com/Cx0mb.png" alt="" width="213px" height="320px" /><br />
<img src="http://i.imgur.com/DZCeF.png" alt="" width="213px" height="320px" /></p>
<p><strong>Conclusion</strong></p>
<p>This exploit brings up the interesting thought of educating users to how interfaces conduct their primary routines. Potentially, the only way the users could be warned of the fact that this is a scam would be through the fact that iTunes never asks for users to accept a Terms of Service update through a Safari window. This proof of concept was done in only a few hours but could easily be made almost undetectable through the use of an app slipping through the approval process at Apple or just even more advanced and malicious Javascript and CSS. While this was simply a harmless proof of concept, this could easily be put into the wild and start showing up in spam messages almost overnight.</p>
<p><a href="http://poc.werxltd.com/iosphishing/usatoday2.html">View the proof of concept here.</a></p>
<div class="betterrelated none"><p>No related content found.</p></div><p><a class="a2a_button_facebook_like addtoany_special_service" data-href="http://werxltd.com/wp/2012/01/23/bait-and-switch-an-ios-phishing-scam-using-the-itunes-terms-of-service/"></a><a class="a2a_button_twitter_tweet addtoany_special_service" data-count="none" data-url="http://werxltd.com/wp/2012/01/23/bait-and-switch-an-ios-phishing-scam-using-the-itunes-terms-of-service/" data-text="Bait and Switch: An iOS Phishing Scam Using the iTunes Terms of Service"></a><a class="a2a_button_google_plusone addtoany_special_service" data-annotation="none" data-href="http://werxltd.com/wp/2012/01/23/bait-and-switch-an-ios-phishing-scam-using-the-itunes-terms-of-service/"></a><a class="a2a_button_linkedin" href="http://www.addtoany.com/add_to/linkedin?linkurl=http%3A%2F%2Fwerxltd.com%2Fwp%2F2012%2F01%2F23%2Fbait-and-switch-an-ios-phishing-scam-using-the-itunes-terms-of-service%2F&amp;linkname=Bait%20and%20Switch%3A%20An%20iOS%20Phishing%20Scam%20Using%20the%20iTunes%20Terms%20of%20Service" title="LinkedIn" rel="nofollow" target="_blank"><img src="http://werxltd.com/wp/wp-content/plugins/add-to-any/icons/linkedin.png?9d7bd4" width="16" height="16" alt="LinkedIn"/></a><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwerxltd.com%2Fwp%2F2012%2F01%2F23%2Fbait-and-switch-an-ios-phishing-scam-using-the-itunes-terms-of-service%2F&amp;title=Bait%20and%20Switch%3A%20An%20iOS%20Phishing%20Scam%20Using%20the%20iTunes%20Terms%20of%20Service" id="wpa2a_16">Share/Save</a></p>]]></content:encoded>
			<wfw:commentRss>http://werxltd.com/wp/2012/01/23/bait-and-switch-an-ios-phishing-scam-using-the-itunes-terms-of-service/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>node.js at Facebook</title>
		<link>http://werxltd.com/wp/2012/01/23/node-js-at-facebook/</link>
		<comments>http://werxltd.com/wp/2012/01/23/node-js-at-facebook/#comments</comments>
		<pubDate>Mon, 23 Jan 2012 14:18:24 +0000</pubDate>
		<dc:creator>wes</dc:creator>
				<category><![CDATA[it industry]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[node.js]]></category>
		<category><![CDATA[scale]]></category>

		<guid isPermaLink="false">http://werxltd.com/wp/?p=1148</guid>
		<description><![CDATA[Slides No related content found.]]></description>
				<content:encoded><![CDATA[<p><iframe src="http://blip.tv/play/g_MngtCYdgI.html?p=1" width="480" height="346" frameborder="0" allowfullscreen></iframe><embed type="application/x-shockwave-flash" src="http://a.blip.tv/api.swf#g_MngtCYdgI" style="display:none"></embed></p>
<p><a href="http://broofa.com/presentations/FacebookAtNode_NodeConf2011.pdf">Slides</a></p>
<div class="betterrelated none"><p>No related content found.</p></div><p><a class="a2a_button_facebook_like addtoany_special_service" data-href="http://werxltd.com/wp/2012/01/23/node-js-at-facebook/"></a><a class="a2a_button_twitter_tweet addtoany_special_service" data-count="none" data-url="http://werxltd.com/wp/2012/01/23/node-js-at-facebook/" data-text="node.js at Facebook"></a><a class="a2a_button_google_plusone addtoany_special_service" data-annotation="none" data-href="http://werxltd.com/wp/2012/01/23/node-js-at-facebook/"></a><a class="a2a_button_linkedin" href="http://www.addtoany.com/add_to/linkedin?linkurl=http%3A%2F%2Fwerxltd.com%2Fwp%2F2012%2F01%2F23%2Fnode-js-at-facebook%2F&amp;linkname=node.js%20at%20Facebook" title="LinkedIn" rel="nofollow" target="_blank"><img src="http://werxltd.com/wp/wp-content/plugins/add-to-any/icons/linkedin.png?9d7bd4" width="16" height="16" alt="LinkedIn"/></a><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwerxltd.com%2Fwp%2F2012%2F01%2F23%2Fnode-js-at-facebook%2F&amp;title=node.js%20at%20Facebook" id="wpa2a_18">Share/Save</a></p>]]></content:encoded>
			<wfw:commentRss>http://werxltd.com/wp/2012/01/23/node-js-at-facebook/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Simple init.d script template</title>
		<link>http://werxltd.com/wp/2012/01/05/simple-init-d-script-template/</link>
		<comments>http://werxltd.com/wp/2012/01/05/simple-init-d-script-template/#comments</comments>
		<pubDate>Thu, 05 Jan 2012 19:25:24 +0000</pubDate>
		<dc:creator>wes</dc:creator>
				<category><![CDATA[bash]]></category>
		<category><![CDATA[hosting]]></category>
		<category><![CDATA[administration]]></category>
		<category><![CDATA[daemon]]></category>
		<category><![CDATA[init.d]]></category>
		<category><![CDATA[script]]></category>
		<category><![CDATA[startup]]></category>
		<category><![CDATA[system]]></category>

		<guid isPermaLink="false">http://werxltd.com/wp/?p=1077</guid>
		<description><![CDATA[Recently I found the need to create an init.d script and since I had a hard time finding an example elsewhere1, here&#8217;s the overly simple script I came up with to get the job done: #!/bin/bash # myapp daemon # chkconfig: 345 20 80 # description: myapp daemon # processname: myapp DAEMON_PATH="/home/wes/Development/projects/myapp" DAEMON=myapp DAEMONOPTS="-my opts" [...]]]></description>
				<content:encoded><![CDATA[<p>Recently I found the need to create an init.d script and since I had a hard time finding an example elsewhere<sup><a href="http://werxltd.com/wp/2012/01/05/simple-init-d-script-template/#footnote_0_1077" id="identifier_0_1077" class="footnote-link footnote-identifier-link" title="That said, if you know of such an example I&rsquo;d love to hear from you.">1</a></sup>, here&#8217;s the overly simple script I came up with to get the job done:</p>
<pre class="brush:bash">#!/bin/bash
# myapp daemon
# chkconfig: 345 20 80
# description: myapp daemon
# processname: myapp

DAEMON_PATH="/home/wes/Development/projects/myapp"

DAEMON=myapp
DAEMONOPTS="-my opts"

NAME=myapp
DESC="My daemon description"
PIDFILE=/var/run/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME

case "$1" in
start)
	printf "%-50s" "Starting $NAME..."
	cd $DAEMON_PATH
	PID=`$DAEMON $DAEMONOPTS &gt; /dev/null 2&gt;&amp;1 &amp; echo $!`
	#echo "Saving PID" $PID " to " $PIDFILE
        if [ -z $PID ]; then
            printf "%s\n" "Fail"
        else
            echo $PID &gt; $PIDFILE
            printf "%s\n" "Ok"
        fi
;;
status)
        printf "%-50s" "Checking $NAME..."
        if [ -f $PIDFILE ]; then
            PID=`cat $PIDFILE`
            if [ -z "`ps axf | grep ${PID} | grep -v grep`" ]; then
                printf "%s\n" "Process dead but pidfile exists"
            else
                echo "Running"
            fi
        else
            printf "%s\n" "Service not running"
        fi
;;
stop)
        printf "%-50s" "Stopping $NAME"
            PID=`cat $PIDFILE`
            cd $DAEMON_PATH
        if [ -f $PIDFILE ]; then
            kill -HUP $PID
            printf "%s\n" "Ok"
            rm -f $PIDFILE
        else
            printf "%s\n" "pidfile not found"
        fi
;;

restart)
  	$0 stop
  	$0 start
;;

*)
        echo "Usage: $0 {status|start|stop|restart}"
        exit 1
esac</pre>
<p>This script will work in /etc/init.d on Xubuntu 11.10 (so most Debian-based systems) and CentOS 5.5 and you can control it via chkconfig.</p>
<div class="betterrelated none"><p>No related content found.</p></div><ol class="footnotes"><li id="footnote_0_1077" class="footnote">That said, if you know of such an example I&#8217;d love to hear from you.</li></ol><p><a class="a2a_button_facebook_like addtoany_special_service" data-href="http://werxltd.com/wp/2012/01/05/simple-init-d-script-template/"></a><a class="a2a_button_twitter_tweet addtoany_special_service" data-count="none" data-url="http://werxltd.com/wp/2012/01/05/simple-init-d-script-template/" data-text="Simple init.d script template"></a><a class="a2a_button_google_plusone addtoany_special_service" data-annotation="none" data-href="http://werxltd.com/wp/2012/01/05/simple-init-d-script-template/"></a><a class="a2a_button_linkedin" href="http://www.addtoany.com/add_to/linkedin?linkurl=http%3A%2F%2Fwerxltd.com%2Fwp%2F2012%2F01%2F05%2Fsimple-init-d-script-template%2F&amp;linkname=Simple%20init.d%20script%20template" title="LinkedIn" rel="nofollow" target="_blank"><img src="http://werxltd.com/wp/wp-content/plugins/add-to-any/icons/linkedin.png?9d7bd4" width="16" height="16" alt="LinkedIn"/></a><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwerxltd.com%2Fwp%2F2012%2F01%2F05%2Fsimple-init-d-script-template%2F&amp;title=Simple%20init.d%20script%20template" id="wpa2a_20">Share/Save</a></p>]]></content:encoded>
			<wfw:commentRss>http://werxltd.com/wp/2012/01/05/simple-init-d-script-template/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Page Caching using apc
Database Caching 1/5 queries in 0.001 seconds using apc
Object Caching 978/983 objects using apc

 Served from: werxltd.com @ 2013-05-24 04:32:03 by W3 Total Cache -->