<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title>Disqus - Latest Comments for cfeduke</title><link>http://disqus.com/by/cfeduke/</link><description></description><atom:link href="http://disqus.com/cfeduke/comments.rss" rel="self"></atom:link><language>en</language><lastBuildDate>Thu, 16 Nov 2017 18:24:00 -0000</lastBuildDate><item><title>Re: s3a on Spark on AWS EC2</title><link>http://deploymentzone.com/2015/12/20/s3a-on-spark-on-aws-ec2/#comment-3619758560</link><description>&lt;p&gt;Originally our buckets were located in us-west-1 so I had encountered a problem like this, though what I believe you are seeing is a separate problem (V2 vs. V4 authentication) and it looks to me based on the documentation that you're modifying the correct Hadoop property even though you're not dealing with Seoul or Frankfurt S3 - based on: &lt;a href="https://hadoop.apache.org/docs/stable/hadoop-aws/tools/hadoop-aws/index.html#aBad_Request_exception_when_working_with_AWS_S3_Frankfurt_Seoul_or_other_V4_endpoint" rel="nofollow noopener" target="_blank" title="https://hadoop.apache.org/docs/stable/hadoop-aws/tools/hadoop-aws/index.html#aBad_Request_exception_when_working_with_AWS_S3_Frankfurt_Seoul_or_other_V4_endpoint"&gt;https://hadoop.apache.org/d...&lt;/a&gt; I do see in later AWS docs that London is also a V4 endpoint.&lt;/p&gt;&lt;p&gt;In our case my configuration parameters were in spark.config which I was explicitly passing to any Spark shells or submits I ran and therefore the full key from spark.config becomes spark.hadoop.fs.s3a.endpoint - but if you were to dump your sc.hadoopConfiguration to STDOUT with your similar initialization I'd expect you to see the same key (fs.s3a.endpoint) being set to &lt;a href="http://s3.eu-west-2.amazonaws.com" rel="nofollow noopener" target="_blank" title="s3.eu-west-2.amazonaws.com"&gt;s3.eu-west-2.amazonaws.com&lt;/a&gt;. As a sanity check you should dump the config to a log or STDOUT just to make sure the key has the value you expect - simple things like this are what usually cost me the most time to troubleshoot because I never learn and say to myself "aww no it cannot possibly be that..."&lt;/p&gt;&lt;p&gt;I see in later versions of Hadoop the S3A handling has become much more robust - have a look at "Using Per-Bucket Configuration to access data round the world" &lt;a href="https://hadoop.apache.org/docs/current/hadoop-aws/tools/hadoop-aws/index.html" rel="nofollow noopener" target="_blank" title="https://hadoop.apache.org/docs/current/hadoop-aws/tools/hadoop-aws/index.html"&gt;https://hadoop.apache.org/d...&lt;/a&gt; - not sure if any of these settings exist in the version you're using, and I'll assume they don't exist in the version I was using in my article above [since this is the first time I've heard about them, and they would have been nice to have back then].&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Charles Feduke</dc:creator><pubDate>Thu, 16 Nov 2017 18:24:00 -0000</pubDate></item><item><title>Re: s3a on Spark on AWS EC2</title><link>http://deploymentzone.com/2015/12/20/s3a-on-spark-on-aws-ec2/#comment-3619374867</link><description>&lt;p&gt;My first question - and this got me too - is what region is your S3 bucket in? Is it US Standard aka us-east-1? If not, you'll encounter problems without configuring S3 for the appropriate region. "Bad Request" covers a lot of possible error conditions and none of them are reported but I remember defaulting to US Standard while the bucket is actually in another region being one of them.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Charles Feduke</dc:creator><pubDate>Thu, 16 Nov 2017 14:18:05 -0000</pubDate></item><item><title>Re: s3a on Spark on AWS EC2</title><link>http://deploymentzone.com/2015/12/20/s3a-on-spark-on-aws-ec2/#comment-2790010720</link><description>&lt;p&gt;I have a deployment script that fires up a spark shell and passes the command line switch `--properties-file '/root/&lt;a href="http://spark.properties" rel="nofollow noopener" target="_blank" title="spark.properties"&gt;spark.properties&lt;/a&gt;'`, ends up looking something like this:&lt;/p&gt;&lt;p&gt;(`provided` is a directory that contains all of the JAR files that I place on all of the slaves to make my uberjar much more manageable, around 1-2MB; I use a script to copy this to the master and then run the spark-ec2/copy-dir on master to distribute to all of the slaves.)&lt;/p&gt;&lt;p&gt;provided=$(find my-project/provided -name "*.jar" | xargs basename | xargs printf "/root/spark/lib/%s,")&lt;br&gt;extracp=$(find my-project/provided -name "*.jar" | xargs basename | xargs printf "/root/spark/lib/%s:")&lt;/p&gt;&lt;p&gt;ssh -t root@$HOST "screen /root/spark/bin/spark-shell --jars '/root/$JAR_NAME,$provided' \&lt;br&gt;    --total-executor-cores $CORES \&lt;br&gt;    --properties-file '/root/&lt;a href="http://spark.properties" rel="nofollow noopener" target="_blank" title="spark.properties"&gt;spark.properties&lt;/a&gt;' \&lt;br&gt;    --files '/root/$ENV.conf,/root/&lt;a href="http://metrics.properties" rel="nofollow noopener" target="_blank" title="metrics.properties"&gt;metrics.properties&lt;/a&gt;' \&lt;br&gt;    --conf 'spark.driver.extraJavaOptions=-Dconfig.file=$ENV.conf' \&lt;br&gt;    --conf 'spark.metrics.conf=&lt;a href="http://metrics.properties" rel="nofollow noopener" target="_blank" title="metrics.properties"&gt;metrics.properties&lt;/a&gt;' \&lt;br&gt;    --conf 'spark.driver.extraClassPath=$extracp' \&lt;br&gt;    --conf 'spark.driver.memory=$DRIVER_MEMORY' \&lt;br&gt;    --conf 'spark.executor.extraJavaOptions=-Dconfig.file=$ENV.conf' \&lt;br&gt;    --conf 'spark.executor.extraClassPath=$extracp' \&lt;br&gt;    --conf 'spark.executor.memory=$EXECUTOR_MEMORY' \&lt;br&gt;    --conf 'spark.executor.instances=$EXECUTORS'"&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Charles Feduke</dc:creator><pubDate>Mon, 18 Jul 2016 15:56:29 -0000</pubDate></item><item><title>Re: Convert .iso to .img and make bootable USB</title><link>https://cunninghamshane.com/convert-iso-to-img-and-make-bootable-usb/#comment-2738407970</link><description>&lt;p&gt;Since the Boot Camp Assistant was neutered in El Capitan [can no longer make the install USB disk, must install to internal HDD only] this is also a great way to make the Windows 10 bootable USB disk from the download ISO. Thanks for posting!&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Charles Feduke</dc:creator><pubDate>Sat, 18 Jun 2016 22:18:38 -0000</pubDate></item><item><title>Re: Deprecating Optional.get()</title><link>http://royvanrijn.com/blog/2016/04/deprecating-optional-get/#comment-2649199822</link><description>&lt;p&gt;I don't think it should be a common case for throwing an exception when something is missing, at least in production quality code. Rarely I can see this as being useful (perhaps in a fail fast scenario, like the actor pattern). For this sort of precondition-not-met-then-fail behavior I would use an assert.&lt;/p&gt;&lt;p&gt;But at least if Optional#get is used in this fashion its often easier to trace than an NPE. (Until you start putting multiple Optional#get in the same statement anyway.)&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Charles Feduke</dc:creator><pubDate>Fri, 29 Apr 2016 10:25:00 -0000</pubDate></item><item><title>Re: Typesafe Config and maps in Scala</title><link>http://deploymentzone.com/2013/07/25/typesafe-config-and-maps-in-scala/#comment-2647492889</link><description>&lt;p&gt;Have a look at Ficus: &lt;a href="https://github.com/iheartradio/ficus" rel="nofollow noopener" target="_blank" title="https://github.com/iheartradio/ficus"&gt;https://github.com/iheartra...&lt;/a&gt;&lt;/p&gt;&lt;p&gt;The above code becomes something like:&lt;/p&gt;&lt;p&gt;case class Decoder(name: String, address: String)&lt;br&gt;case class Decoders(decoders: Seq[Decoder])&lt;/p&gt;&lt;p&gt;Then with an import you can as[Decoders] on a ConfigObject from a Typesafe config instance and get the same thing. Magical!&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Charles Feduke</dc:creator><pubDate>Thu, 28 Apr 2016 11:51:59 -0000</pubDate></item><item><title>Re: Deprecating Optional.get()</title><link>http://royvanrijn.com/blog/2016/04/deprecating-optional-get/#comment-2647478102</link><description>&lt;p&gt;This is great news. I use the Scala REPL today as necessary when working with Java but dependencies can be troublesome, even with Ammonite. (I mean sometimes I use JUnit as a REPL stand-in for Java development...)&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Charles Feduke</dc:creator><pubDate>Thu, 28 Apr 2016 11:43:27 -0000</pubDate></item><item><title>Re: Deprecating Optional.get()</title><link>http://royvanrijn.com/blog/2016/04/deprecating-optional-get/#comment-2647405441</link><description>&lt;p&gt;Now that I think about it Optional#get should have been published with a deprecation warning right from the start. Its useful in Scala in the REPL (because: lazy!) but REPL development in Java isn't popular. I won't let Optional#get in any production code I write in Java (or Option#get in Scala) because all of the clean ways of handling the values within an Optional.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Charles Feduke</dc:creator><pubDate>Thu, 28 Apr 2016 11:01:39 -0000</pubDate></item><item><title>Re: s3a on Spark on AWS EC2</title><link>http://deploymentzone.com/2015/12/20/s3a-on-spark-on-aws-ec2/#comment-2635583209</link><description>&lt;p&gt;Seems like possibly a dependency version difference between your environment and mine, where in my environment a constructor for S3AFileSystem found in the 2.7.1 version of the JAR is used.&lt;/p&gt;&lt;p&gt;I've found that both AWS and Apache Hadoop developers have a terrible habit of breaking backward compatibility by changing the parameters of public methods without leaving the old methods intact.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Charles Feduke</dc:creator><pubDate>Thu, 21 Apr 2016 12:22:22 -0000</pubDate></item><item><title>Re: Mavericks: Day 2 with MacVim, Python, and crashing</title><link>http://www.deploymentzone.com/2013/10/23/mavericks-day-2-with-macvim-python-and-crashing/#comment-2179616738</link><description>&lt;p&gt;It simply has to be. I mean its been 2 years! But I think sometime last year I went to compiling my own OSX binaries for MacVim anyway.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Charles Feduke</dc:creator><pubDate>Fri, 07 Aug 2015 11:25:07 -0000</pubDate></item><item><title>Re: A More Ergonomic Keyboard Strategy</title><link>http://blog.paulrugelhiatt.com/hacks/keyboards/2015/06/15/a-more-ergonomic-keyboard-strategy.html#comment-2081429314</link><description>&lt;p&gt;I've been standing to work for a few years using a Kinesis 2 with no problems. (A typical day is over 8 hours because my favorite hobby also happens to be programming.) My arms are at 90º, wrists resting on the Kinesis 2 palm supports, but the rest of my arm is unsupported.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Charles Feduke</dc:creator><pubDate>Tue, 16 Jun 2015 02:51:20 -0000</pubDate></item><item><title>Re:  IDictionary&amp;lt;TKey,TValue&amp;gt;, IXmlSerializable, and lambdas IDictionary에 &lt;TKey,TValue&gt;, IXmlSerializable을, 그리고 람다 </title><link>http://deploymentzone.com/2008/09/19/idictionarytkeytvalue-ixmlserializable-and-lambdas/#comment-2074844752</link><description>&lt;p&gt;I think that zip file is lost in time and space, I'll see if its on one of my old Windows VMs. This site used to be on an AWS server until I moved it to DigitalOcean and I had forgotten that some of the older posts had links to files on the file system instead of S3.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Charles Feduke</dc:creator><pubDate>Thu, 11 Jun 2015 21:40:06 -0000</pubDate></item><item><title>Re: Java 8: Replace traditional for loops with IntStreams</title><link>http://www.deadcoderising.com/2015-05-09-java-8-replace-traditional-for-loops-with-intstreams/#comment-2071798389</link><description>&lt;p&gt;Though I love the Java 8 stream API - I am a Scala programmer - there are a two things you should make sure your readers are aware of when replacing a standard for-loop.&lt;/p&gt;&lt;p&gt;- Debugging becomes more challenging.&lt;br&gt;- Parallelization is not free. Its important to note that actual performance testing must be done to determine the threshold where parallelizing a task is advantageous.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Charles Feduke</dc:creator><pubDate>Wed, 10 Jun 2015 10:03:46 -0000</pubDate></item><item><title>Re: Beating a Poison Ivy Reaction</title><link>http://deploymentzone.com/2014/05/22/beating-a-poison-ivy-reaction/#comment-2044439480</link><description>&lt;p&gt;I was actually getting ready to spray again tomorrow, since my dogs found this year's patch. I could pull it by hand; there's not a lot of it. I usually hit all of the weeds (mostly jasmine) that grows under my trees with Round Up. I haven't thought of the acidity of the soil, but mostly I don't want anything growing where the PI was growing. (Its always under these evergreen trees that start at ground level.)&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Charles Feduke</dc:creator><pubDate>Mon, 25 May 2015 12:00:20 -0000</pubDate></item><item><title>Re: Whitescreen when upgrading OSX to Yosemite</title><link>http://deploymentzone.com/2014/10/22/whitescreen-when-upgrading-osx-to-yosemite/#comment-1829999947</link><description>&lt;p&gt;I can't remember whether there was a login screen at all - I don't recall there being one. Complete the upgrade in safe mode, and it should restart afterwards and you shouldn't need safe mode any longer.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Charles Feduke</dc:creator><pubDate>Sun, 01 Feb 2015 22:47:22 -0000</pubDate></item><item><title>Re: Beating a Poison Ivy Reaction</title><link>http://deploymentzone.com/2014/05/22/beating-a-poison-ivy-reaction/#comment-1399383868</link><description>&lt;p&gt;I ordered some "Poison Ivy Fighting Suits" (just full body covers) and have two bottles of Round Up to finish what I started... once this current rash has passed.&lt;/p&gt;&lt;p&gt;I had forgotten about Gold Bond, I have used that in the past, as well as hydrocortisone cream. Gold Bond seems to work better than hydrocortisone for me.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Charles Feduke</dc:creator><pubDate>Thu, 22 May 2014 10:03:30 -0000</pubDate></item><item><title>Re: Moving from WordPress to Ghost</title><link>http://blog.timsommer.be/moving-from-wordpress-to-ghost/#comment-1398836586</link><description>&lt;p&gt;This article was the first hit for me when I was seeing what the path off WP to Ghost was like, and I don't think i could have found a better written post about it. Thanks!&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Charles Feduke</dc:creator><pubDate>Wed, 21 May 2014 23:20:23 -0000</pubDate></item><item><title>Re: Rumors of Ruby&amp;#8217;s Demise</title><link>http://devblog.avdi.org/2014/02/23/rumors-of-rubys-demise/#comment-1257864218</link><description>&lt;p&gt;In our real-world environment we solve scalability problems in Scala (streaming video, concurrency especially with Akka) and user-facing problems (website) in Ruby. I write a lot of tooling in Ruby too, because while I'm pretty productive in Scala, I'm still at least twice* as productive in Ruby.&lt;/p&gt;&lt;p&gt;Any rumors of Ruby nearing its end are greatly exaggerated.&lt;/p&gt;&lt;p&gt;(* or more, depending on how ornery scalac wants to be about the type system on any particular day)&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Charles Feduke</dc:creator><pubDate>Sun, 23 Feb 2014 21:39:52 -0000</pubDate></item><item><title>Re: RSpeccing a JSON API gotcha</title><link>http://www.deploymentzone.com/2012/07/26/rspeccing-a-json-api-gotcha/#comment-1254384757</link><description>&lt;p&gt;I've dug up the source code for that and updated the post with it, at the bottom of the article.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Charles Feduke</dc:creator><pubDate>Thu, 20 Feb 2014 21:45:32 -0000</pubDate></item><item><title>Re: Justice Beavers: &amp;#8216;It&amp;#8217;s Ironman meets Burning Man&amp;#8217;</title><link>http://news.fredericksburg.com/newsdesk/2014/01/15/justice-beavers-its-ironman-meets-burning-man/#comment-1204117048</link><description>&lt;p&gt;For local events you can check out either of the two Crossfit boxes - Rare Crossfit or Crossfit Forward (Google them); both post info on upcoming events and the athletes there are variously involved in them all. Fredericksburg has an annual mud and obstacle course run called Tribal Quest during the summer, and a series of shorter trail runs in which anyone can compete. Then there's the road races in the area that Race Timing Unlimited and other organizations schedule. When you figure in nation-wide events like Ragnar, Tough Mudder, CMC, Spartan races there's a lot of races to choose from!&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Charles Feduke</dc:creator><pubDate>Thu, 16 Jan 2014 08:36:10 -0000</pubDate></item><item><title>Re: The Galago arrives... - Charles' Blog</title><link>http://ccare.github.com/blog/2013/10/23/the-galago-arrives-dot-dot-dot/#comment-1105891667</link><description>&lt;p&gt;I recently ordered a Gazelle Pro but the lost keyboard strikes and poor positioning of the trackpad and buttons are just too much for the price I paid. I like the configuration, and expandability (in fact had put in a 1TB WD HDD for TimeShift the day I received it), and I really want to like the machine but I cannot overcome the keyboard.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Charles Feduke</dc:creator><pubDate>Fri, 01 Nov 2013 23:18:36 -0000</pubDate></item><item><title>Re: Monkey Patching in Scala</title><link>https://zameermanji.com/blog/2013/3/31/monkey-patching-in-scala/#comment-1074008666</link><description>&lt;p&gt;C# achieves similar functionality using extension methods. I prefer the Scala approach as I've used it to good effect in my code. In Ruby its important to note that you can replace behavior in a pinch through monkey patching - which, yes, can lead to great sadness. (I have never tried overriding behavior using an implicit conversion in Scala, I suppose it would work since the compiler implicitly converts the original type at compile time.)&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Charles Feduke</dc:creator><pubDate>Mon, 07 Oct 2013 15:41:51 -0000</pubDate></item><item><title>Re: Guard, RSpec 2, and Growl</title><link>http://www.deploymentzone.com/2011/05/24/guard-rspec-2-and-growl/#comment-935861696</link><description>&lt;p&gt;Thanks, I've updated as appropriate.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Charles Feduke</dc:creator><pubDate>Wed, 19 Jun 2013 17:43:16 -0000</pubDate></item><item><title>Re: Linux has better hardware support than OS X</title><link>http://devblog.avdi.org/2013/06/16/linux-has-better-hardware-support-than-os-x/#comment-932994570</link><description>&lt;p&gt;This is patently false. You can get *budget* hardware for less. If you configure a system to be similar specs to a MBP - including SSD, RAM (16GBs) - with a quality PC hardware provider (Lenovo, System76, Sony) they come out to about the same price, with a lower max resolution for the panel of choice and heavier.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Charles Feduke</dc:creator><pubDate>Mon, 17 Jun 2013 07:42:22 -0000</pubDate></item><item><title>Re: Invalid Argument</title><link>http://blog.poweredbybeard.net/2013/05/16/when-you-shouldnt-test/#comment-900473963</link><description>&lt;p&gt;That looks great. I just remember watching the DAS screencast on testing bash scripts and thinking "this... is... not for me." I will probably give this a shot - I cannot always write my CLIs in Python or Ruby after all.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Charles Feduke</dc:creator><pubDate>Fri, 17 May 2013 12:39:47 -0000</pubDate></item></channel></rss>