Ryan Bigg’s screencast on Rails Engines

Ryan Bigg has published an screeencast on Rails Engines

This is a talk that I gave at both SpreeConf in New York and Ruby on Ales in Bend, Oregon. It goes through a brief history of engines and the lessons learned while building two wildly different engines.

It is of great interest if you want to understand the architecture behind Social Stream.

http://vimeo.com/41952172

 

Social Stream 0.25: follow relation model, improved actions, documents json api and mp4 support

Social Stream continues to evolve along with the Virtual Science Hub (ViSH). New features in 0.25 are driven primary from the requirements of that final application. This is a brief summary of them

Follow relation model

This version of Social Stream introduces a simplified relation model between actors. Just like Twitter, you can configure your application so users and groups can follow themselves, trimming the support for custom relations and permissions.. In this mode, all post are public.

To activate it just say add to your config/initializers/social_stream.rb


config.relation_model = :follow

Channels to actions

ActivityObject’s author, user_author and owner are now transferred to ActivityActions. You will need to migrate your database:


rake social_stream:migrations update
rake db:migrate

Flattened migrations

In order to speed things and remove obsolete code, Social Stream migrations will be flattened every 5 minor versions. You do not need to worry about that, unless you have a version more than 6 minor numbers old. Check the wiki for details.

Documents JSON API

Rafael has been working in the JSON API for documents, which will be used in the ViSH Editor but can be used by other applications as well.

MP4 video support

Raquel has added mp4 conversion support for videos. This way, Social Stream videos are fully HTML5-compatible. You may want to regenerate your existing archived videos running:

rake paperclip:refresh:thumbnails CLASS=Video 

 

Social Stream 0.24: Portuguese translation, toolbar refactorization and calendar events annotations

Social Stream 0.24 comes on the heels of the early versions of the Virtual Science Hub, a social network for exploring science. This is the first project that benefits of the full potencial of Social Stream as a core for building social network websites.

The ViSH will be available very soon. In the meanwhile, Social Stream 0.24 brings the following new features:

  • pogermano translated Social Stream Base to Portuguese
  • The toolbar (the bar in the left side of the screen) has been refactorized. This makes easier for Social Stream components or the final application extending them or the items in the menu.
  • The new model ActivityAction was created. This makes easier tracking actions from Actors (users, groups) to activity objects like follow or likes.
  • The first application of ActivityAction is the ability for users to annotate events from other users in their own calendar.

Do not forget to run rake social_stream:migrations:update to add the new migrations to your application!

Social Stream 0.23: group chat and event posters

This new minor version of Social Stream comes with two mayor features:

Group chat

Now there is a chat room for every group created in your social stream presence powered application. In order to set this, you should, after the deployment:

  1. Execute  rake presence:install:xmpp_server
  2. Add configuration to ejabberd.conf:
    1. mod_muc_admin in modules
      %%
      %% Modules enabled in all ejabberd virtual hosts.
      %%
      {modules,
       [
        {mod_...,    []},
        {mod_http_bind, []},
        {mod_sspresence, []},
        {mod_admin_extra, []},
        {mod_muc_admin, []},
        {mod_...,    []},
       ]}.
    2. Set mod_muc configuration:
      {mod_muc,      [
      		  %%{host, "conference.@HOST@"},
      		  {access, muc},
      		  {access_create, muc_create},
      		  {access_persistent, muc_create},
      		  {access_admin, muc_admin}
      		 ]},
        ...
        }
    3. Define the access rules:
      %%%%%%%%%%%%%%%%%%
      %% MUC permissions
      %%%%%%%%%%%%%%%%%%
      
      %% All users can create rooms:
      {access, muc_create, [{allow, all}]}.
      %% Admins of this server are also admins of the MUC service:
      {access, muc_admin, [{allow, admin}]}.
      %% All users are allowed to use the MUC service:
      {access, muc, [{allow, all}]}.

      Of course, you must restart the ejabberd server

  3. Finally, create the rooms for your existing groups. Execute rake presence:synchronize:rooms

You can find full instructions at Getting Started With Social Stream Presence

Event posters

Now, events can have a picture attached as poster. This feature is achieved through a new table, activity_objects_properties, that will be used for future relations between activity objects.

As usual with Social Stream minor releases, you must run rake social_stream:migrations:update

Social Stream 0.22, videoconference support

This minor release of Social Stream comes with enhanced Presence features.

First of all, the new Social Stream Presence scripts support multi-domains in synchronization between the HTTP and XMPP server. If you use the presence gen, you must run rake presence:install:xmpp_server to update the scripts.

But the most notable feature is support for videoconferences. Social Stream Presence now uses Opentok. Just add your api key and secret to the initializer and your users will enjoy video-chat. You can give it a try at Social Stream’s demo site.

Social Stream 0.21: common title and description for activity objects

This new Social Stream’s minor version comes with migrations on activity objects. We have realized that all the activity objects (posts, comments, documents, pictures, audios, videos, events and links) are sharing two common attributes: title and description. So we have moved them to the activity_objects table. This simplifies a lot some code in notifications and makes things easier if your are building your own activity object. You have now those fields available for free!

There are also a bunch of fixes, most of them regarding the presence gem, which is now persistent along all the application and has a new search interface.

Do not forget to run rake social_stream:migrations:update!

0.19.0: Rails 3.2

This minor release of Social Stream comes with support for Rails 3.2

A bit of work has been taken to update some of the dependencies and meeting the requirements. Up to 4 gems have been monkey-patched. The fixes had already been commited to the repostory, but they have not already been released yet.

One of the upgrade gems is Omniauth. It suffered from several breaking changes between versions. As a side-effect, you must update your config/initializer/devise.rb file, changing linked_in to linkedin

Enjoy the fast development mode in Rails 3.2!

0.18.0

Release 0.18.0 comes with an improved wall apparence. In addiction to the typical migration required in minor version bumps:


rake social_stream:migrations:update

You should regenerate your thumbnails. You can use the following commands:


bundle exec rake paperclip:refresh:thumbnails CLASS=Picture RAILS_ENV=production
bundle exec rake paperclip:refresh:thumbnails CLASS=Video RAILS_ENV=production

ViSH, a Social Stream based platform, enters development phase

The EU-funded Global Excursion Project aims to improve the science curriculum at upper stage school levels (i.e. pupils in the 14-18 age range) through an innovative e-platform called the Virtual Science Hub (ViSH).

About ViSH

The Virtual Science Hub is a meeting point for scientists and teachers and is based around the idea of “Virtual Excursions”, the online analog to an on-site visit, during which the students discover science in Europe’s top scientific centers. Several media such as flashcards, video-conference and virtual experiments help them feel the science rather than just study it.

ViSH will be using Social Stream as a social networking library and it is entering its development phase. You can find the code at the GING github page.

0.17 Presence, localization and channels

SocialStream 0.17 comes with Social Stream Presence, the gem that provides Social Stream with chat support. It is part of Aldo‘s final degree. Social Stream Presence is a bridge to an XMPP server. It has a client integrated with the web, but also can be used with an external XMPP client. Though it is distributed with Social Stream, it would not work until the presence-related configuration is done. Take a look at the  Getting Started With Social Stream Presence wiki page.

This version brings integrated i18n support. Browser language settings are recognized automatically. Users can also set their preferred language in their settings page. This is contribution is from Raquel, one of our two new core developer members; Raquel and Rafael have started with power with valuable contributions to this version of Social Stream.

0.17.0 also comes with an important migration in the core: the channel table. One of the most known functionalities Social Stream provides is change session. Users can act in behalf of a group, posting, making contacts and doing any activity as the where the group themselves. Up to date, the user behind the representation was not tracked, which could lead to responsibility problems. The channel table fixes this issue.

Do not forget to migrate the database. Running rake social_stream:migrations:update will copy all the missing migrations to your application.