RICON Hits the Airwaves

This last week has been a bit more exciting for a number of reasons than I expected and dragged out for a few other reasons. (shakes fist in air with frustration!)

RICON|East lands in New York City!

Last year, well before I was working for Basho, I signed up for RICON in San Francisco. RICON is a conference with the key intellects behind distributed computing, such as Eric Brewer (he’s slightly involved with that CAP Theorem) and many others. You can even get a taste of the conference since the presentations are online and available to watch anytime you’d like to. For this year in New York City we already have some great speakers lined up and more to come!

2013 Speakers as of now…  (stay tuned for more)

Camille Fournier @skamille – VP of Technical Architecture at Rent The Runway blogs at Elided Branches

Camille is going to provide attendees with some serious Apache ZooKeeper knowledge. She’s, as stated, VP of Technical Architecture at Rent the Runway. Rent the Runway is a NYC-based eCommerce startup that rents designer dresses and accessories. They operate systems that support a business with a unique combination of challenges, from those related to product discovery, to those related to reservation booking and pricing, to a warehouse fulfillment system that handles 100% returns.

The ZooKeeper topic I’ll leave entirely for her to fill you in on! So, among all the others, another talk you’ll want to come to RICON to hear!

Sean Cribbs @seancribbs – Software Engineer at Basho Technologies

Sean blogs at seancribbs, which sounds a bit redundant, but hey… he gets down to the business of writing about some really insightful things. We’re fortunate at Basho to have him hacking away on projects, and super stoked to be working along side him! One of his latest posts “Property Driven Grammer Development” is seriously worth a read. Be sure to check out Sean’s Github and come gain gray matter activity while Sean lays down some brain power.

Kyle Kingsbury @aphyr – Member of Technical Set => {A A ∉ A}, blogs at Aphyr

Riot starter Kyle is coming back to RICON East. Last year Kyle brought some fire to the RICON Conference and this time he’ll bring some fire in full presentation format this time. I’m looking forward to hearing about whatever he’s going to enlighten us about. Cheers Kyle, welcome to the speaker line up!

Neha Nerula @neha – blog at Transient Neha

Neha is currently a PhD Student at MIT, but has serious cred from working at Digg & Google. She’ll have some content you’ll want to give an attentive listen to! Even though she’s not so transient, she’s been to more than a few cities to work in. Currently she’s at MIT and has worked on the Intelligence Initiative, BFlow, Intrusion Recovery for Database-backed Web Application, and a host of other papers and other projects.

The team is moving so fast, there’s more speakers announced already, and I’ll be giving a portfolio to each of them as they’re announced and as fast as I can type!

As for an example of what RICON is like, here’s a few of the videos from 2012 that I really enjoyed…

2012 Talks

Pattern of Innovation: Riak Usage at BestBuy.com – Joel Crabb, RICON2012 from Basho Technologies on Vimeo.

Keep CALM and Query On – Joe Hellerstein, RICON2012 from Basho Technologies on Vimeo.

Advancing Distributed Systems – Eric Brewer, RICON2012 from Basho Technologies on Vimeo.

Riak in the Cloud – Ines Sombra and Michael Brodhead, RICON2012 from Basho Technologies on Vimeo.

###

Distributed Coding Prefunc: Ubuntu Erlang Dev & EUnit

Erlang LogoAfter installing Erlang on OS-X and then getting QuickCheck installing via Erlang, I wanted to expand the OS options I’m using to Ubuntu (i.e. Linux). So in this entry I’m going to cover the Erlang install, a quick eunit bit, and then a QuickCheck install and sample. The first step in geting Erlang installed is deciding how you want to install it. So far, it isn’t like Rails where it is pretty important which method you pick to how well it will work for you on Ubuntu. For Erlang all methods get you started with a good version that is working. The method I used was simply to install with apt-get.

sudo apt-get install erlang erlang-doc

After installing, always a good idea to run things and make sure they’re all content and happy with your machine. Startup the erlang shell.

erl

Then run some of the commands. Some I’ve found that will present you with useful and interesting information ist he erlang:system_info function with appropriate parameter passed. The otp_release parameter will get the version of erlang, the cpu_topology shows you the processor outlay for you machine (or in this case my virtual machine, with a single processor core allocated to it), and allocated_areas shows a bit about system memory allocations.

Eshell V5.9.1  (abort with ^G)
1> erlang:system_info(otp_release).
"R15B01"
2> erlang:system_info(cpu_topology).
[{processor,{logical,0}}]
3> erlang:system_info(allocated_areas).
[{sys_misc,80748},
 {static,1007616},
 {atom_space,98328,73387},
 {atom_table,95961},
 {module_table,9084},
 {export_table,50316},
 {export_list,240960},
 {register_table,180},
 {fun_table,3266},
 {module_refs,2048},
 {loaded_code,3437028},
 {dist_table,403},
 {node_table,227},
 {bits_bufs_size,0},
 {bif_timer,80200},
 {link_lh,0},
 {process_table,262144},
 {ets_misc,52504}]
[{processor,{logical,0}}]

Now that erlang is effectively installed we can write a little sample code. To do this I created a directory called “TestingErlang” and in it placed an Erlang code file called “eunit_tests.erl”. Note: I’m using Sublime 2 on Ubuntu, so exchange that for whatever text editor you’re using for your Erlang coding.

adron@ubuntu:~/Codez$ mkdir TestingErlang
adron@ubuntu:~/Codez$ cd TestingErlang
adron@ubuntu:~/Codez/TestingErlang$ sublime eunit_tests.erl

Add the header file include.

-define(NOTEST, true).
-include_lib("eunit/include/eunit.hrl").

Adding the header file include will cause all the function with _test() or _test_() to automatically be exported. An exported function of test() is created that can be used for running all of the unit tests. This also will include the preprocessor macros of EUnit for writing tests. So now throw a super simple test into the file.

You may want to, amid the automatic export of the methods ending in _test() or _test_() not name them this, and you’ll then need to add a line at the top of your code file like this.

-export([reverse_test/0]).

After this, add the function test as shown below.

reverse_test() -> lists:reverse([1,2,3]).

The complete code file should look like this.

-module(eunit_test).
-define(NOTEST, true).
-include_lib("eunit/include/eunit.hrl").
-export([reverse_test/0]).

reverse_test() -> lists:reverse([1,2,3]).

Build it and call the function.

Eshell V5.9.1  (abort with ^G)
1> c(eunit_test).
{ok,eunit_test}
2> eunit_test:reverse_test().
[3,2,1]
3>

BOOM! Passing. So now we know we have a good Erlang install and eunit is setup and usable. In the following blog entries I have in the works, we’ll dive deeper into what and how Erlang works from an extremely basic level all the way to diving into some of the more complex features.

The Friday Wrap Up: Write The Docs, Basho Coworking Office Hours & Node PDX

Wow, so this week has been an intense return to Portland for me. I got back earlier in the week and hit the ground doing a bit of catch up after being on the rails for two weeks to Denver, over to San Francisco and then back up here to Portland. The whole time cramming my brain full of Erlang, getting ramped up on efforts to help bring Riak to everybody that it can help, expand the open source community and do what I do. Expand the community and the risk taking, code inventing, hacker of hardware, and curious ideas that we all have as best I can.

Turning from looking back and looking forward, getting into a proactive view of events coming up there are a couple things I want to let everybody know about. They’re all intertwined here in the Portland Tech Community and well beyond, with events in Seattle and Vancouver BC coming up sooner than later!

Basho Coworking Office Hours

The Riak Products; Riak, RiakCS and Riak EnterpriseDS

The Riak Products; Riak, RiakCS and Riak EnterpriseDS

These events are every two weeks, starting this Monday. The meet is at NedSpace, we’ll grab the excellent Butcher’s Block Table and converse, code together, implement or deploy Riak and generally answer, present or find the information you need. Feel free to come in and join at anytime during 9am-11am on Monday the 4th, and every two weeks hereafter. You can RSVP here (meetup.com) or here *(eventbrite). For those that are RSVPed and show we’ll have various swag. Prospectively after building some momentum we’ll start bringing in some premium coffee or other beverages to help kick off your day.

Write The Docs

Write The Docs

Write The Docs

This is a new conference here in Portland that is being put together around documentation, document driven development and topics surrounding this oft overlooked and extremely important aspect of software development. As one would expect, it has a github repo.

Currently there are some speakers, but the call for proposals is still open, so check it out and if you’re interested in speaking jump in there and add to the conference and growing conversation! Here’s a short description from the conference site about what Write The Docs is about,

“Write the Docs is a two-day conference focused on documentation systems, tech writing theory, and information delivery. It will be held on April 8-9 in Portland, Oregon.

Writing and maintaining documentation involves the talents of a multidisciplinary community of technical writers, designers, typesetters, developers, support teams, marketers, and many others.

This conference creates a time and a place for this community of documentarians to share information, discuss ideas, and work together to improve the art and science of documentation.

We invite all those who write the docs to spread the word:

Docs or it didn’t happen!”

Speakers so far… there are more coming!

Nóirín Plunkett Plunkett AKA @noirinp the Curator of People

From the recent speaker announcement, “Nóirín Plunkett is a jack of all trades, and a master of several. By day, she works for Eucalyptus Systems, as a geek<->English translator, and general force multiplier. She’s passionate about community, communication, and collaboration. Nóirín got her open source start at Apache, helping out with the httpd documentation project.”

Kenneth Reitz AKA @kennethreitz the Wandering street photographer and moral fallibilist & Pythoner

From the recent speaker announcement, “Kenneth Reitz is the product owner of Python at Heroku and a member of the Python Software Foundation. He embraces minimalism, elegant architecture, and simple interfaces. Kenneth is well known for his many open source projects, specifically Requests. His projects are always well documented, and he is the curator of the The Hitchhiker’s Guide to Python, which documents best practices for Python developers.”

Jim R. Wilson AKA @helixb the jimbojw and helixb and…

From the recent speaker announcement, “Jim R. Wilson started hacking at the age of 13 and never looked back. He has contributed to open source projects such as MediaWiki and HBase, and managed the large-scale documentation system at Vistaprint. He’s co-author of one NoSQL book, and currently writing a node.js book.”

The perpetrators of this conference are the reknown Troy Howard @thoward37, Eric Redmond @coderoshi and a fellow tech cohort I’ve recently met at The Side Door Eric Holscher @ericholscher.

Node PDX

There’s an announcement coming real soon about this!

140 Characters #FF Growing!

The ongoing and growing list of people I think you should be following.

Here’s the existing list…

A Few Notes on Riak 1.3 RC

Full context – Riak 1.3 RC came out just a couple dozen hours ago. RC stands for release candidate, which in turn basically means that version 1.3 is complete and any other additions will be for quick fixes or any issues that crop up. I’ve just started rolling a few new systems myself with this new version and hope you’ll join me in taking a hack at it. Let’s jump into a few reason why you’d want to leap into 1.3. You can read about the features below via the release notes also, but I’ve turned them into smaller bit size chunks below.

  • Giddyup in action!

    Giddyup in action!

    The first thing with the latest v1.3 has been the massive effort put into testing via the riak_test and the giddyup repos. Ongoing there will be a much easier way to move forward in features & quality. This is one of the reasons I love working for Basho, the whole team isn’t about smoke and mirrors with testing, they readily and diligently work on testing. Which to add context, remember we’re talking about distributed systems here, which aren’t exactly the easiest thing to test. One doesn’t just merely walk in and write unit tests and assume a distributed systems is tested. This moves us forward, and those that want to contribute and get involved more heavily in Riak now have a platform to dive in confidently when using these testing repositories.

  • Active Anti-Entropy – Alright, now we’re getting to the features with bad ass sounding names. Also referred to as AAE, this feature grabs bad replica data and begins a correction through read repair to protect data. It’s one more layer of protection against any type of data loss, disaster, bit rot, etc).
  • MapReduce Sink Backpressure – This one reminds me of tuning when setting up forced induction, AKA a turbo on a car. But I digress, I’ve snagged a description from the release notes for this feature, “Riak Pipe brought inter-stage backpressure to Riak KV’s MapReduce system. However, prior to Riak 1.3, that backpressure did not extend to the sink. It was assumed that the Protocol Buffers or HTTP endpoint could handle the full output rate of the pipe. With Riak 1.3, backpressure has been extended to the sink so that those endpoint processes no longer become overwhelmed. This backpressure is tunable via a soft cap on the size of the sink’s buffer, and a period at which a worker should check that cap. These can be configured at the Riak console by setting application environment variables” ….suffice it to say this helps out with map reduce in certain situations.
  • Additional IPv6 Support – Riak Handoff and Protocol Buggers listen ala IPv6 now. Nuff’ said.
  • Luke removal – Luke is completely and utterly gone now. Dead. Don’t look for Luke here.
  • Riaknostic – This is now part of the default featureset instead of separate tooling.
  • SmartOS 1.8 Packages – They’re available.
  • Health Check – This is a pretty awesome system that’s been added. Basically it watches the system and enables and disables services based on conditions. It’s super easy, just flick the switch in the app.config.

    {enable_health_checks, true}
    
  • Reset Bucket Properties – A quickie definition from the release notes “The HTTP interface now supports resetting bucket properties to their default values. Bucket properties are stored in Riak’s ring structure that is gossiped around the cluster. Resetting bucket properties for buckets that are no longer used or that are using the default properties can reduce the amount of gossiped data.”

There were also a lot of PRs and more that you can check out on Github. These are the main key features that are now available and ready for use in 1.3. Check em’ out, feel free to contact me or any of the team to ask questions, let us know your 2 cents or otherwise banter about. Cheers! Sometime in the coming days I’ll have a quick start, akin to what’s in the docs, but with some specific ops on some IaaS Providers. So keep reading, coming up soon.

Happy hacking!  \m/   \m/