Brand Spanking New And Free! Version 1.5 of the Reframe It Margin Releases!

Hey Reframe It Users,

We’ve got interesting things brewing here in our labs. After months of collecting the necessary crystals and potions from the furthest corners of the earth we’ve finally reached a high enough wizard level to release version 1.5 of the Reframe It margin! This new version is packed with plenty of appetite whetting features and some new visuals I am sure you are going to dig.

For starters the color scheme has been completely changed. We feel like blue is out and white is in. Hopefully this will make things seem less cluttered to you, the user, and enhance your margin experience to make you feel like you’re surfing the Internet of the future. When highlighting text and when scrolling to referenced text in the margin you will notice increased speed and less lag. This means increase load time for your comments, a smoother interface, and stronger comments overall (yeah we’ve had ‘em in the weight room, and no, we don’t use steroids, sorry).

We have also included an Auto complete feature at the bottom of the margin. You will notice the text box with the Share Comment option tab set to open. This tab lets you know how many groups you’re sharing with, how many friends, how many e-mails (contacts), etc. By clicking the blue button underneath the text box you can view the old fashioned list option that shows every possible avenue available for you to share your comments. Enough with the nitty gritty stuff already; let’s get to Auto complete. By typing just a couple letters in the text box, lets say F-a-c for instance, Auto complete will automatically read your mind through ESP and complete the rest of the sharing avenue for you, in this case: Facebook.

Besides those amazing features we even threw in a couple more goodies for you. The new Reframe It margin now has spell check (I knew you wanted it, well at least I need it), cut/paste, and comments shared to social networks (Facebook & Twitter) will share directly to your wall or tweet stream - never giving you nasty pop up windows asking you those annoying “are you sure you want to share” questions!

Not only did we give you all of those great in-front-of-the-screen features we also took care of some behind the scenes stuff too so that Reframe It is faster for you, the ever important commentator. Reframe It can share to MetaWeblog (Wordpress & Moveable Type) so that all of you bloggers can integrate easily with Reframe It. Also any of the error and notification messages you’ve seen in the past will now be popping up from the bottom of the margin in tiny collapsible windows within the margin, all to enhance your browsing experience.

Take the margin for a test spin, see how it works, but more importantly mark the internet up with your voice! After all, that’s what this is all about, isn’t it?

Best,

The Reframe It Team

Building the RabbitMQ Erlang AMQP Client

I thought I’d jot down my notes from getting the experimental rabbitmq erlang amqp client to work, since http://hopper.squarespace.com/blog/2008/1/12/introducing-the-erlang-amqp-client.html is a little out of date.

This assumes you already have erlang (I’m using R13B01), OTP, eunit, and mercurial installed.

In a common base directory (~/rabbitmq), clone all the necessary tools:

~/rabbitmq> hg clone http://hg.rabbitmq.com/rabbitmq-erlang-client
~/rabbitmq> hg clone http://hg.rabbitmq.com/rabbitmq-server
~/rabbitmq> hg clone http://hg.rabbitmq.com/rabbitmq-codegen

Then build the rabbitmq-erlang-client:

~/rabbitmq> cd rabbitmq-erlang-client
~/rabbitmq/rabbitmq-erlang-client> make

(Note: if you don’t see the file ebin/amqp_client.app, run: make ebin/amqp_client.app)

Now test the client out. This assumes you’ve already started rabbitmq with the default guest user:

~/rabbitmq/rabbitmq-erlang-client> erl -pa ebin -pa ../rabbitmq-server/ebin
1> amqp_connection:start_network().
<0.35.0>

Next, I want to be able to use the client from other projects, so I can either copy over the ebin and include files (look in rabbitmq-erlang-client/dist), or create symlinks into system erlang directories.

Now, assuming we have all our paths setup correctly so that we can compile against the amqp_client and rabbit_common apps, how do we start writing and reading messages? Coming from the ruby world, and being used to STOMP messaging, I was surprised by how many steps are involved in just doing basic gets and publishes (the ruby amqp gem is simple to use, btw).

After spending a bit of time studying rabbitmq-erlang-client/test/test_util.erl (A great resource!), I’ve distilled some simplified code to see the basics of this client library, and start writing and reading messages quickly. Most of this code was copied right out of the test_util.erl file, and many details are skipped (take a look at that file for more detailed code!):

-module(amqp_test).
-compile(export_all).

-include(“amqp_client.hrl”).

t() ->
    Connection = amqp_connection:start_network(),
    Channel = amqp_connection:open_channel(Connection),
    Q = <<“a.b.c”>>,
    X = <<“x”>>,

    setup_exchange(Channel, Q, X),

    Payload = <<“hello, world!”>>,
    ok = basic_publish(Channel, X, Payload),
    {ok, Payload} = basic_get(Channel, Q),
    {ok, []} = basic_get(Channel, Q),

    amqp_channel:close(Channel),
    amqp_connection:close(Connection)

% sets up the queue and topic exchange, and ties the exchange to the queue
setup_exchange(Channel, Q, X) ->
    amqp_channel:call(Channel, #‘exchange.declare’{exchange = X,
                                                   type = <<“topic”>>}),
    amqp_channel:call(Channel, #‘queue.declare’{queue = Q}),
    Route = #‘queue.bind’{queue = Q,
                          exchange = X},
    amqp_channel:call(Channel, Route),
    ok.

basic_publish(Channel, X, Payload) -> 
    Publish = #‘basic.publish’{exchange = X},
    ok = amqp_channel:call(Channel, Publish, #amqp_msg{payload = Payload}),
    ok.
basic_get(Channel, Q) ->
    case amqp_channel:call(Channel, #‘basic.get’{queue = Q, no_ack = true}) of
        {#‘basic.get_ok’{}, #amqp_msg{payload = Payload}} -> {ok, Payload};
        #‘basic.get_empty’{} -> {ok, []};
        Other -> {error, Other}
    end.

Keep your secrets - we don’t want ‘em!

Fear no more.  Our interns cannot and will not hack into your Twitter accounts and start tweeting about how cool Reframe It is and how everyone should start using it (of course, that’s what you - our wonderful users - are supposed to be doing).  Why you ask?  Because we’ve updated our system so that we no longer need to store your Twitter passwords for you to tweet your comments.  Now, that really is cool, isn’t it?

As long as you’ve updated your Twitter settings via http://reframeit.com/sharing/twitter, then we don’t need your password to connect you to your Twitter account.  In fact, it’s already been deleted.  If you’re not sure whether we still have your password stored in our system, just go to http://reframeit.com/sharing/twitter and click “Update Twitter Settings” and we will delete your password on the spot.  And for those of you who don’t feel like updating your settings just yet, don’t worry - we’ll hold onto your password for a little while longer so you can keep posting your comments as tweets.  But remember:  Once we delete our treasure trove of Twitter passwords, you’ll have to update your settings then if you want to keep tweeting from Reframe It.

Now, you might be asking yourself, “Why was Reframe It storing my Twitter password in the first place??  That’s private!!!”  Indeed, it is.  Unfortunately, Twitter didn’t support Open Authorization (OAuth) until recently.  So, if you wanted to post your comments to Twitter, we needed your password to give you access.  (But don’t worry, nobody actually read it.)  Now that Twitter supports OAuth, we don’t need passwords and can just use an OAuth key to connect you with your Twitter account.  Much easier - and your password stays just the way you want it: a secret.

So, I guess we won’t be selling all your passwords to the CIA, after all.  We hope this makes you feel better.  They sure will be disappointed, though….

Looking for that special someone?

Or maybe just a certain comment, group or webpage?  Well, now you can find all of that and more with our new search tool!  That’s right - we’ve improved our search box and advanced search options to make finding your friends - and anything else you’re looking for - that much easier.

Now, when you use the regular search box, an entire laundry list of sorted results appears for you to choose from.  We give your results in categories, just how you like ‘em: comments, users, groups, and webpages.  How convenient is that?  You can view all of these results together in the results “overview” - just click the tabs to view the top results from each, or open just one category’s full results at a time using the links at the left.  You can find anyone or anything, as long as it isn’t something private:  Private comments and groups won’t show up in your search results (we hid them under our invisibility cloak) because otherwise they wouldn’t be private - and that wouldn’t be very nice now, would it?  But that’s the only thing our search tool won’t show you.  Everything else is free for your perusal.  Just click search.  Simple.

And if you still can’t find what you’re looking for using our normal search box?  Try our new and improved Advanced Search feature - it’s full of fun new options to help you find exactly what you need, no matter how obscure.  Of course, if you’re really tech savvy, you can just type the search operators into the regular search box (show off).  But if you’re like most people, using the advanced search feature is way easier than getting a degree in computer science.  And that’s why we have it:  We want to make your life - and your searching - as simple as possible.  Just click Advanced Search (it’s right beneath the normal search button), and fill in the Advanced Search options however you want.

You can search for comments made by certain authors, or made in certain groups.  Search for specific text either in a reference or in the comment itself, or get really specific and search for comments made between certain dates or on certain webpages (URLs).  You can even search by comment tags.  Make your search as broad or tailored as you want by searching with one, two, or even all of these criteria filled in.  It’s your search; do it how you want.  Just fill in whichever fields you choose, and click Search.  Your results will show up in all those pretty and easy-to-use categories (comments, users, groups and webpages).  And if you still can’t find what you’re looking for… it either doesn’t exist, or we fed it to our interns.

memcached blows memcache-client out of the water

Evan Weaver showed a benchmark of his memcached ruby gem outperforming the memcache-client gem by 20 times. Mike Perham then made the claim that memcache-client, being only 30-50% slower, is not really very slow.

I decided to do a real-world comparison of these two ruby libraries, mimicking how our back-end thrift services have many threads each handling service requests and contacting our memcache servers.
(more…)

Got Feedback?

We’ve just made it easier to give us feedback here at Reframe It by partnering with Get Satisfaction. Every page on ReframeIt.com now features a blue “Feedback” tab that provides a quick and easy way to send us ideas, questions, praise and bug reports on the website or extensions.

Staff Picks

One of the most engaging aspects of the Internet is discovering new and captivating content.  When we started Reframe It, our vision was to “democratize” the web by allowing anyone and everyone to say anything they wanted on any piece of the Internet right there and then regardless of whether the owner/creator of the content provided an official forum or not. This vision is starting to bear fruit as we are growing by leaps and bounds.  One great aspect of this growth is the wealth of insightful and funny comments created by people from every corner of the world.

We wanted to highlight some of our favorites by creating a “Staff Picks” group which can be found at http://reframeit.com/groups/staffpicks. We also added this group to our new user welcome screen at http://reframeit.com/welcome to provide new users with example of the kinds of great content that can be found on Reframe It.

To everyone whom we’ve selected so far, “Thank you” for making us laugh and think more about our world. We look forward to discovering and sharing more!

More cowbell!

I mean, more channels!  Yes, Reframe It continues to integrate with more social networking services to give you more options for syndicating your comments and content.  Plus we’re making it easier (and safer) to do so:

  1. We’ve added both Blogger and FriendFeed to our list of channels.  You may have noticed those options in the sharing tab of the margin, but they have been disabled.  Check again.  Live and open for business.
  2. We’ve also added OAuth (”open authentication”).  This means that you can use services like Twitter and Blogger without giving us your login credentials.

We have just released these features, so at the moment the configuration and instructions aren’t super user-friendly.  (That will be changing soon.)  To use these new features, log into reframeit.com and click your sharing tab.  Channels with OAuth provide a link that takes you to the partner site (e.g. Blogger) and asks you to confirm that you want to connect your accounts, and then take you right back to Reframe It.

Blogger integration in particular might stump you because it asks for your blog ID.  To find it, go to your blog and start to create a new post, then look up at the URL.  The last part of the URL is a big number.  That’s your blog ID; copy and paste it into the configuration panel.

Opening the Reframe It API

Here at Reframe It we make use of web APIs to channel Reframe It content to 3rd party websites like Twitter and Blogger.  However, it has been a decidedly one-sided affair since we don’t offer an open, documented API of our own for folks to integrate and mash-up Reframe It into their own applications and websites.  Well, that is about to change.  Over the next couple of weeks, we are going to scrub and document our API for its debut near the end of June.  We would love to hear any ideas the community has for integrating Reframe It.

In addition, we are looking for a couple of brave souls to help test our API.  Anyone interested should send an email to developers@ .

Margin 1.5 in the works

We plan to soon release a fairly significant update to the Reframe It margin.  Version 1.5 will have some bug fixes and some nifty features, including:

  • A new color scheme that we think will be easier on the eyes.
  • A cleaned-up user interface with fewer icons and more room.
  • Support for more social networking channels for sharing your comments, including Blogger and FriendFeed.
  • Tagging, to support contextual search and semantic web technologies.
  • User Tips to help teach new members the ins and outs of the Reframe It margin.
  • A new “universal auto-complete” field for sharing.

We’re particularly excited about this last feature.  It works sort of like the address bar in a good email client, where you just start typing a name and it suggests any matches.  Except the Reframe It version doesn’t just suggest email addresses but all your channels: your Twitter feeds, blogs, Reframe It groups and friends, etc.

So instead of navigating through multiple tabs, searching through long lists, and clicking tiny checkboxes, you just start typing.  All in once place.

Keep an eye out for this next release, and we look forward to getting feedback on the new features!