Last friday we’ve released version 0.6 of tog. This version is focused on stability and many other improvements on tog’s core plugins, but this version has updated most of the support plugins used by tog, that were there since tog 0.1 and needed some upgraded.
If you start fresh from tog 0.6 or you were already using edge, migration (if needed) should be small. For those of you using an older version of tog, we have a template for upgrading to tog 0.6 (has been already been used to migrate toghq.com) that will be relased in the coming days.
You can check the changelog for every core plugin for changes:
We have updated the list of available plugins. Altugh there are more plugins in github (some of them waiting to be updated for rails 2.3 and tog 0.5), we have updated the plugin list on this site, updating the features of the existing plugins and adding two plugins ready for prime time:
We are happy to announce that tog 0.5 has been released. We know that we have need more time than expeced, but finally we are out.
The main highlight of this version are:
Rails 2.3 is officially supported. This brings a new template for creating a new rails app with tog or adding tog to and existing application. This makes much easier to install tog, since all plugins and migrations are insta installed and created automatically for you. See Installation instructions .
tog-desert gem has been removed. We have updated our code to use pivotal labs’ official desert gem , waht removes problems if your are using this gem in other projects.
All core plugins are (almost) 100% internationalized, being english and spanish officially supported. A language selector is on the way, but didn’t pass the cut since we are still deciding between a couple of alternatives for autodetection. It should come in the next (coming next week) maintenance release.
Many other small changes and fixes are detailed in each plugin’s CHANGELOG.
We thank Andrei and Richard for their great job, patient and bug fixing about tog support for Rails 2.3 and Edge. We must also thank Raul, Gaizka , Balint and many others for its help, bug fixing and contributions.
Since the initial release we’ve been getting great ideas and suggestions from the developers using and implementing tog. In an effort to give a stronger voice to this process of feedback we’ve created an account on the beautiful service of uservoice.
You can see the ‘feedback’ tab on the right side of this very page. Just click on it and you can see the top rated ideas submitted and their status. If you want to add your own suggestions just go to the tog feedback forum and submit them. Same process if you want to report a bug although our lighthouse bugtracker should be a better fit for error reporting.
We aim to simplify the process to submit ideas and suggestions to the tog platform with this process… Let us know what you think!
Spam blocking. As we’ve detailed before tog powered sites will be now protected against spam in their comments. Probably we’ll extract and expand this blocking system to any model on future releases.
Site-wide search. Any model can be now included in the sitewide search available with tog. Just add your model as a search source to tog and provide a partial to render the matching instances of this model in the results page. You can check the details here and here.
FileColumn to Paperclip migration. We’ve replaced one of the oldest part of the platform and will depends now on the great paperclip plugin from the nice guys of thoughtbot. We’ve added theneededmigrations to make the transition easier. As always a backup of your site before the update will be a great idea.
How to install
You can install or upgrade to tog 0.4 through RubyGems:
gem install tog-tog
New tog generated apps will use the last version of the plugins. If you’re updating an existing application, you should upgrade the plugins manually (sorry we’re working in this one) to the last tag. You can access them on http://github.com/tog/[PLUGIN_NAME]/tree/v0.4.0
From all of the people collaborating in tog to all the people using it, we hope you enjoy this release. Dig the code and have fun while we bake the next (Tog 0.5 “Io”) release.
It occurs constantly. When your blog, site or community become popular and get some traffic… the bloody spam appears. We’ve been fighting the spam in this very site for the last weeks and we’ve realised that tog needs a good spam protection system out-the-box.
So starting with the next release (0.4) the comments in every tog model will be protected by Akismet or Defensio, whatever you want. To enable the spam blocking system just set a few settings in Tog::Config :
In the spirit of the famous posts of Ryan Daigle we’re going to blog periodically about the current state of tog. Beginning with this very post we’ll start to sneak preview the features implemented on the tog edge code and the first one we want to talk about is the OAuth support we’re integrating in tog. For those that are not familiar with the concept of OAuth, it’s defined on its own site as:
An open protocol to allow secure API authorization in a simple and standard method from desktop and web applications.
Basically what this means is that by supporting OAuth you’re giving other developers and yourself the chance to avoid the common social networking passwordanti-pattern. The use of this anti-pattern is very common as an (bad) effort to aggregate the social graph and data published in other sites. The OAuth protocol gives us a secure and open alternative to these authorization processes regardless of your role as consumer or provider of the data.
In an OAuth authorization process the involved applications interchange a few “request/access” tokens and relay on the user to manage the privileges a site takes over the data stored by other. Using this workflow the user’s data is protected since its password is never ever given to any 3rd party and he/she retains the power to revoke the given privileges at anytime.
There is an increasing number of providers that support OAuth and we’re trying to be as good web citizens as possible leveraging these standards in the tog platform. Our efforts are headed right now to provide every tog based social network the basic tools to be a consumer/provider of an OAuth authorization process out-the-box. We’ve been using Pownce as proof-of-concept of this authorization process as you can see in the following video:
The code is still sharp and far to be production-ready but we’re pretty excited with this feature since we see it like our first contribution to the open web, making tog a more robust and extensible platform.
tog launched 3 weeks ago and we’ve been thrilled by the response so far. We’ve received patches, a ton of comments, appeared on a few popular blogs and even get together in the first tog meeting event on Madrid last week.
One of the small victories for me as one of the tog developers, is that people seems to understand the main concepts behind tog and the difference between this platform and other great and beautiful projects like LovdbyLess, Inshoshi, CommunityEngine:
lower entry point to social networks through plugins
soft/painless migration from regular sites to social networks
easy development and packaging of features via the plugins system
customization over network-in-a-box and
the “focus on your social objects” mantra.
As noted by Jason in Rails Envy last podcast:
- [tog]… This is a totally plugins based system. You can install only what you want in your app, you know, like a messaging system, blogs system or CMS. Lovdbyless and Inshoshi are full apps that you customize.
- Oh, that’s cool… so you can just pick up the parts that you want?
- Yeah… and the really cool about it, is that plugins don’t have to be specific to social network apps, you know, you can use that funcionality to any existing application.
The bads news are that the response has been so overwhelming that the 0.3 release is delayed for a few days right now. We definetely should have 0.3 shipping out the door this friday, but anyway we’ll try to be stricter for next releases.
Just for future reference a few links about tog on the web (english):