Categories
bdg Plumtree • BEA AquaLogic Interaction • Oracle WebCenter Interaction The Social Collective

The Social Collective Debuts at RubyNation

We’re very pleased to announce that, together with the organizers of RubyNation, we debuted our social application “The Social Collective” today as a means for RubyNation conference attendees and other Rubyists to meet and interact with their peers.

This is a very similar codebase to what we deployed at BEA Participate in May, but without ALI or ALBPM. These BEA (now Oracle) products provided a great, scalable and flexible architecture, but we didn’t feel it was a good use of our resources (i.e. $$$s) to continue to use these products and we didn’t want to pass this cost on to RubyNation, which, BTW, is only charging $175 for two jam-packed days of Ruby awesomeness.

So, for those of you who have been following all this social goodness coming from bdg, there are now two distinct versions of The Social Collective: one that uses BEA/Oracle products and one that does not. This affects pricing (obviously), so if you’re interested in either, please contact us to find out more.

And in the meantime, if you’re as gung ho about Ruby as we are, sign up for an account and help us grow the Ruby community here in DC and beyond!

Categories
bdg Software Development

Modular Page Assembly in Rails (Part 1)

Recently I was faced with an interesting problem: I wanted to create a modular, portal-like page layout natively in Ruby on Rails without using another layer in the architecture like SiteMesh or ALUI. Java has some pretty mature frameworks for this, like Tapestry, but I found the Ruby on Rails world to be severely lacking in this arena.

I started with Rails 2.0 and the best I could come up with at first brush was to create a html.erb page comprised of several partials. Each partial would basically resemble a “portlet.” This works fine, but with one showstopping pitfall — you can’t call controller logic when you call render :partial. That means in order for each page component (or portlet, if you like) to maintain its modularity, you would have to either 1) put all the logic in the partial view (which violates MVC) or 2) repeat all the logic for each component in the controller for every page (which violates DRY).

If that’s not sinking in, let me illustrate with an example. Let’s say you have two modular compontents. One displays the word “foo” and the other “bar”, which are each contained in page-level variables @foo and @bar, respectively. You want to layout a page containing both the “foo” and the “bar” portlets, so you make two partials.

“foo” partial (app/views/test/_foo.html.erb):

<%=@foo%>

“bar” partial (app/views/test/_bar.html.erb):

<%=@bar%>

Now, you make an aggregate page to pull the two partials together.

aggregate page (app/views/test/aggregate.html.erb):

<%=render :partial => 'foo' %>
<%=render :partial => 'bar' %>

You want the resulting output to say “foo bar” but of course it will just throw an error unless you either embed the logic in the view (anti-MVC) or supply some controller logic (anti-DRY):

embedded logic in the view (app/views/test/_foo.html.erb):

<%@foo = 'foo'%>
<%=@foo%>

embedded logic in the view (app/views/test/_bar.html.erb):

<%@bar = 'bar'%>
<%=@bar%>

— OR —

controller logic (app/controllers/test_controller.rb):

def aggregate
 @foo = 'foo'
 @bar = 'bar'
end

Neither solution is optimal. Obviously, in this simple example, it doesn’t look too bad. But if you have hundreds of lines of controller logic, you certainly don’t want to dump that in the partial. At the same time, you don’t want to repeat it in every controller that calls the partial — this is supposed to be modular, right?

What a calamity.

I did some research on this and even read a ten-page whitepaper that left me with no viable solution, but my research did confirm that lots of other people were experiencing the same problem.

So, back to the drawing board. What I needed was a way to completely modularize each partial along with its controller logic, so that it could be reused in the context of any aggregate page without violating MVC or DRY. Enter the embed_action plugin.

This plugin simply allows you to call invoke a modular bit of code in a controller and render its view, but not in a vacuum like render :partial. With it, I could easily put controller logic where it belongs and be guaranteed that no matter where I invoked the “portlet,” it would always render correctly.

Here’s the “foo bar” example, implemented with embed_action.

“foo” controller (app/controllers/foo_controller.rb):

def _foo
 @foo = 'foo' #this logic belongs here
end

“bar” controller (app/controllers/bar_controller.rb):

def _bar
 @bar = 'bar' #this logic belongs here
end

aggregate view (app/views/test/aggregate.html.erb):

<%= embed_action :controller => 'foo', :action => '_foo' %>
<%= embed_action :controller => 'bar', :action => '_bar' %>

That’s it! Note that there is no logic in the aggregate controller — that’s not where it belongs. Instead, the foo and bar logic has been modularized/encapsulated in the foo and bar controllers, respectively, where the logic does belong. Now you can reuse the foo and bar partials anywhere, because they’re 100% modular.

Thanks to embed_action, I was finally able to create a completely modular page (and site) design, with very little effort on my part.

In a follow-up post (Part 2), I’ll explain how you can create really nice-looking portlets using everything above plus layouts and content_for.

Categories
bdg dev2dev Plumtree • BEA AquaLogic Interaction • Oracle WebCenter Interaction

This Just In — BEA Participate Social App Stats

I find this a little hard to believe, but the numbers don’t lie. We had a whopping 75,000 page views the week of the conference!

That’s more than 100 page views per registered attendee. This chart was from our hottest day, Tuesday, 5/13.

5-13-08(3)Thanks to everyone for using our application. I think we may be on to something here!

Categories
bdg dev2dev Plumtree • BEA AquaLogic Interaction • Oracle WebCenter Interaction

Announcing the Launch of the Social Applications for BEA Participate ’08

You’ve heard the phrase “social applications” being kicked around by BEA and bdg. But what exactly does that mean?

In a nutshell, it means that your experience at BEA.Participate.08 will be like that of no other conference you’ve ever attended. In fact, it may change the entire way you feel about technology conferences.

After registration, you’ll be directed to a web site where you can help us kick off this grand social experiment. During registration, you’ll be asked to fill out a corporate profile by selecting or adding your company, your department, your title and some biographical information. You’ll be asked what products (from BEA or elsewhere) you’re currently using and what products interest you. You’ll be able to “pimp” your profile with an avatar or photo, links, and RSS feeds. Finally, you’ll be asked to take a stab at registering for different Participate.08 breakout sessions. (Don’t worry, you can always come back later and make changes to your breakout session agenda.)

At this point, you’ll be directed to a highly-customized installation of BEA ALI 6.5 backed by a host of bdg-designed and engineered Ruby on Rails applications which form the core of this groundbreaking social system. Log in and you’ll be presented with a simple, elegant UI for:

  1. browsing and selecting tracks and sessions,
  2. viewing other people’s company and personal profile pages and adding them to your “mob,”
  3. sending “shout outs” other users (a playful way to get people’s attention),
  4. sending private (mail) or public (podmob) messages to other people,
  5. browsing and interacting with product pages,
  6. asking questions at a breakout session (through the session rumble),
  7. joining and leaving interest groups focused on industries, products or “whatever,”
  8. updating your status (to let others know where you are, what your mood is, etc.),
  9. browsing an aggregate feed (the observation deck) which allows you to see what others are doing prior to, at (and even after) the conference.

On top of all this social application goodness, everyone who attends Participate will receive an iPod Touch, with 802.11b/g wireless baked in. (Of course, the conference hotel will have lightening fast free wireless internet access.) In addition to a sleek full-sized browser experience, most of the applications will also be optimized for the iPod Touch (or iPhone) form factor. This means that wherever you are at the conference — sitting in a session, wandering the halls or the partner pavilion, even taking a bathroom break — you’ll be able to network, network, network with your fellow conference attendees.

Let’s face it: are you attending the conference to hear a talking head rattle off lists of features in ALUI or ALBPM? No! You’re going to Participate to learn from your peers. And not just in sessions, but in the halls, during the meals, at the evening events and of course, through these amazing social applications.

So, don’t waste any more time reading about this stuff — come on in and let’s get social!

Categories
bdg dev2dev Plumtree • BEA AquaLogic Interaction • Oracle WebCenter Interaction

BEA Participate is Only Two Weeks Away

There’s still time to register for this great conference and take part in a one-of-a-kind social computing experiment.

Register now!

Comments

Comments are listed in date ascending order (oldest first)

  • I heard some rumors that this event is going to demo some seriously killer app love that will blow people away. OK – they’re not rumors. It’s just common sense when you put this much brain power and off the wall creativity in one spot. I’m all for long fireside chats about protocols and geek plumbing (/swoon), but what really excites me about Participate is the ability to kick back with developers, product managers, and engineers and talk about business challenges and solutions – then arm you with the tools and tricks to get your business humming. Got a problem? Chances are these pros have a suggestion that will make your life easier and your business users that much more productive. Food, folks, fun, and forward thinking. You just can’t beat that.

    Posted by: ewwhitley on April 29, 2008 at 5:16 PM

  • Tada! The triumphant return of Eric Whitley to dev2dev!

    Posted by: bucchere on April 30, 2008 at 12:33 PM

Categories
bdg Plumtree • BEA AquaLogic Interaction • Oracle WebCenter Interaction

Countdown to BEA Participate

Here at bdg, we’re working tirelessly to bring you a revolutionary social networking application that will drive your interactions with BEA Participate 2008 conference attendees. Here’s a sneak preview of what we’ve been up to!

Thanks to Derek K. Miller and the Podsafe Music Network for his groovy instrumental “That’s No Dream” which we used as this video’s soundtrack.

Categories
bdg Plumtree • BEA AquaLogic Interaction • Oracle WebCenter Interaction

AquaLogic Consulting SEO Game

Well, I guess we won.

aqualogic-consulting-google-resultsFeeling lucky?

Categories
bdg

bdg welcomes Rémy Miralles!

remyI’m very pleased to announce our first hire of the year, Rémy Miralles!

Rémy hails from just outside Paris, France, so this marks the first time bdg has hired outside the US. He joins our team as part of the AIPT Trainee program, which granted Rémy a J-1 visa that allows him to work for us as an intern/trainee for 18 months.

During that time, he’ll be applying the web visual/graphic design to our Participate 2008 Social Applications and also porting them to the iTouch/iPhone. Given that no bdg-er is ever content to work on “just one thing,” I’m sure he’ll be involved in lots of other projects as well, including Feedhaus.

Rémy has already proven himself as an outstanding developer. In fact, he recently built a Facebook application that has 15,000+ users even though it’s only been out for a few months now.

Needless to say, all of us at bdg are very excited about working with the newest addition addition to our team.

Please join me in welcoming Rémy Miralles!

Categories
bdg Feedhaus

Feedhaus Selected as a SXSW Web Award Finalist

2008_web_awardsWe’re very pleased to announce that Feedhaus has been selected as a finalist for a prestigious SXSW (South by Southwest) 2008 Web Award!

We’ve been selected, along with four other great nominees, from among a pool of hundreds of sites for the “Technical Achievement” category, which, according to SXSW, describes “sites that are re-inventing and re-defining the technical parameters of our online experience.”

As a finalist, we’re also eligible for the “People’s Choice” award, so please vote for Feedhaus (daily until March 3rd).

Kudos to the SXWS committee for recognizing Feedhaus! Hope to see you in Austin from March 7th-11th for this great conference.

Categories
bdg dev2dev Plumtree • BEA AquaLogic Interaction • Oracle WebCenter Interaction

Running ALI on SQL Server 2005 Express

    1. Download and install Microsoft SQL Server 2005 Express. As with SQL Server 2000, make sure you select “mixed” authentication mode instead of Windows only.
    2. Download and install Microsoft SQL Server Management Studio Express.
    3. Open the Management Studio and create your database. Then, right click on the database and set “SQL Server 2000 Compatibility Mode.”
    4. Create your database user and grant rights to the new database (just as you would for SQL Server 2000).
    5. Script your database (just as you would for SQL Server 2000).
    6. Open the SQL Server Configuration Manager. Under SQL Server 2005 Network Configuration, select Protocols for SQL2005. Double click on TCP/IP and make sure that it’s enabled and set to run on a static port (1433) for all IP addresses.

You should be good to go! (Remember that this is not a configuration supported by BEA, but it works well for development purposes.)

Comments

Comments are listed in date ascending order (oldest first)

  • Cool. I think ALI also works on Oracle 10g XE. I will give it a shot next week.

    Posted by: twang on February 8, 2008 at 10:28 PM

    • Indeed it does. You might want to refer to this post for tips on getting ALI running on Oracle 10g XE on Linux. Some of the tips probably apply to Windows too.

      Posted by: bucchere on February 9, 2008 at 8:11 AM