About admin

A ex-professional developer which has become in an enterprise architect

A Michael Wesch Lecture

Inspiring, revealing what to say about this lecture from Michael Wesch called “A Portal to Media Literacy”. I have watched several time this thought-provoking lecture and each time I watch it I found something different that makes me think how mass-user content providing , or what it is called more generally web 2.0 could slowly turn up-side-down how knowledge and knowledge jobs are made today.

He has did it again after creating a video about web 2.0, which not only really explain very well what the whole concept is, but also its visual language has inspired other videos about technology.

Although the lecture is about how web 2.0 tools and media could revolutionaize learning and classroom work, it is also talking about something else, it goes beyond to learning environment and it could influence other environment such as research, consulting or product development where knowledge is main asset.

Tools presented on the video are interesting and but the best are the reflections, concepts and the best practices which could be interfered from the video. How interesting could be to apply these concepts to consulting, and how challenging at the same time. Could you imagine to apply these methodology to our behemoths (companies) currently on the markets.

There are in fact companies such as Accenture which are creating their own wikis, blogs, social bookmarking, social computing applications, or companies like Capgemini which are using youtube for publishing their videos

It is a long, more than 1 hour but really it deserves time to watch it.

Kind regards

Aplicación para administración de fincas

He encontrado por casualidad una aplicación web para administradores de fincas y comunidades que se llama eFinca 2.0. Se trata de un proyecto o un negocio realizado por dos programadores de Ruby on Rails.

Uno de ellos Vicent Gozalbes tiene un blog bastante interesante con un montón de recursos sobre Ruby on Rails.

Feliz Año 2008 a todos

Gestión de autorizaciones y autentificaciones en RoR 2

2. Una vez creados asignaremos las rutas restful dentro de la carpeta config/routes.rb
Abrimos el fichero config/routes.rb, y introducimos las siguientes entradas:

map.resources :usersmap.resource  :account

Para mapear los controladores vamos a utilizar las siguientes URLs para mapear la autentificación:



map.signup '/signup', :controller => 'users', :action => 'new'
map.login  '/login', :controller => 'account', :action => 'new'

map.logout '/logout', :controller => 'account', :action => 'destroy'

3. Permitir a los propios usuarios mantener sus detalles una vez registrados, tenemos que incluir el siguiente código al controlador que gestiona como hemos visto la autentificación de los usuarios.

En el caso de que hayamos creado un controlador denominado “account” y un modelo denominado como “user”, abriremos el fichero “account_controller.rb” dentro de nuestra carpeta de “app/controller” . Abrimos el fichero ‘<nombrecontrolador_controller.rb‘ y le añadimos el siguiente código:

## Edit User## allow a user to edit their detailsdef edit

@user = User.find(self.current_user.id)

end



##update the user table

def update

@user = User.find(self.current_user.id)

if @user.update_attributes(params[:user])

flash[:notice] = 'User was successfully updated.'

redirect_to :action => 'index'

else

render :action => 'edit'

end

end

end

Una vez añadido este código al controlador vamos a crear las siguientes vistas, dentro del controlador ‘user’:

_userForm.rhtml

<%= error_messages_for 'user' %><!--[form:user]--><!-- all custom fields here -->

<p><label for="user_email">Email Address</label><br/>

<%= text_field 'user', 'email'  %></p>

<!--[eoform:user]-->

Y luego creamos otro recurso más denominado ‘edit.rhmtl’

<p>Edit your details</p><%= start_form_tag :action => 'update' %><%= render :partial => 'userForm' %>

<%= submit_tag 'Edit' %>

<%= end_form_tag %>

Gestión de autorizaciones y autentificaciones en RoR

Una de las mejores cosas que tiene “Rails” es lo sencillo que es gestionar todas las autorizaciones y la autentificación de los usuarios además de la razonable cantidad de “plugins” ya escritos. En cierta manera, aunque pueda parecer muy restrictivo sería genial que estuviese contenido ya dentro del mismo “framework” como un gestor de usuarios, roles y grupos.

De cualquier manera existe ya un plugin denominado RESTful Authenticated (versión nueva del Act_as_Authenticated) que nos ahorra mucho trabajo y que fácilmente podemos adaptar para administrar el resto del sistema de autorizaciones y autenticación.

1.Obviamente lo primero que hemos de hacer será instalar el plugin “RESTful authentication” en nuestra aplicación, se trata de un paso sencillo.

2.- Autentificación del Usuario:

RESTful authentication” es un generador que nos va permitir crear el modelo y el controlador que va a realizar la gestión de la autentificación del usuario.

ruby script/generate authenticated user account
rake db:migrate
Si estamos utilizando RadRails, iremos a la pestaña de Generators una vez bajado e instalado el plugin, y introduciremos “authenticated” dem
‘user’ es el nombre del modelo que vamos a utilizar para guardar los datos de autentificación del usuario, además creamos el nombre del controlador que va a gestionar la autentificación en este caso vamos a llamarlo ‘account’, pero podemos llamarlo ‘cuenta’,'acceso’ o el nombre que le queramos dar.

./script/generate authenticated <usermodelname> <controllername>

./script/generate authenticated user sessions

Esto no creara un modelo ‘user’ o ‘usuario’ y un controlador que se denominara ‘account’ en que luego entraremos a para adaptarlo a nuestro intereses

./script/generate authenticated user account \–include-activation

Mediante el generador se crearan automáticamente los siguientes recursos:

exists app/models/
exists app/controllers/
exists app/controllers/
exists app/helpers/
create app/views/account
exists app/controllers/
exists app/helpers/
create app/views/users
exists test/functional/
exists test/functional/
exists test/unit/
create app/models/user.rb -
create app/controllers/account_controller.rb
create app/controllers/users_controller.rb
create lib/authenticated_system.rb
create lib/authenticated_test_helper.rb
create test/functional/account_controller_test.rb
create app/views/users/new.rhtml
create test/functional/users_controller_test.rb
create test/unit/user_test.rb
create test/fixtures/users.yml
create app/helpers/account_helper.rb
create app/helpers/users_helper.rb
create app/views/account/new.rhtml

Si se utiliza el textmate existe un bundle especifico dentro del textmate que permite la instalación de plugins.