Hola gente latina, navegando un poco encontre un fantastico lugar donde puedes buscar blogs, apenas q lei al respecto, no pude aguantar las ganas de probarlo, y creo q va bien, pues te muestra la informacion detallada y ordenada en forma descendente (de las entras mas actuales a las mas antiguas)
Ademas trae opciones como para hacer busquedas por idiomas y hasta podras ver q otras paginas hacen link a esta. No te pases sin verla.
Buscas Blogs para leer?
Nueva sección de encuentas en RoR-Cusco
Hola a todos mis amigos latinos, hoy revisando mis mensajes y viendo como amanecio el mundo, pues encontre que Google, esta gran empresa, esta desarrollando nuevas funcionalidad para uno de sus productos estrella como es Blogger, estas son:
- Una seccion para agregar encuentas en tu propio blog y
- Una seccion para agregar PostCast
Y a modo de prueba puse una encuenta:
Solo es para hacerme saber en que temas deberia escribir mas... ayudame a hacer de este blog un verdadero portal de ayuda.
Gracias a todos.
Atte. Juan Carlos (Juanca.dev)
Ruby on Rails (Primer Encuentro)
En esta oportunidad desarrollaremos nuestra primera aplicación RoR, se trata del ya conocido BLOG, para lo cual comenzaremos desde una aplicación sencilla con alguna consulta por allí, y quizás alguna búsqueda, explicando paso a paso que es cada cosa, teniendo como meta la construcción y entendimiento de cómo realizar una aplicación más elaborada. Teniendo este fin, pues lo pasare a desarrollar en diferentes entregas o mejor dicho en futuros posts.
Entonces, manos a la obra. Para este ejemplo estamos utilizando el “Instant Rails” (un paquete que trae todo ya pre configurado), si no sabes como obtenerlo entra aquí, este tema ya se hablo anteriormente en este mismo blog.
Para ordenarnos un poquito lo haremos por pasos, ¿vale? Pero antes… veamos a donde queremos llegar es este primer encuentro
Paso 1: Corriendo nuestras herramientas
Para este paso necesitamos 3 cosas, primero nuestro Instant Rails corriendo, como pueden observar automáticamente cuando lo abrimos se inician los servicios del servidor web Apache (*) y el ya conocido MySQL.
(*) El servidor apache es opcional en este punto, pues para probar nuestras aplicaciones en RoR utilizaremos otro que ya trae el propio Ruby (WEBrick), es decir pueden detener el servicio de Apache y todo estará bien.
Lo segundo que necesitamos es un editor que nos ayude con el lenguaje, el que yo utilizo es llamado “Intype”, aunque todavía esta en sus versiones por debajo de 1, yo confió en él por el poder que me da, ya lo verán cuando lo prueben. Tiene una interface como esta:
Y lo tercero y muy importante, son las consolas donde digitaremos comandos Ruby & Rails para el desarrollo de nuestra aplicación.
En realidad necesitaremos 2 consolas diferentes, una para escribir comando de generación de código (mas adelante ya lo veran) y otro para correr nuestro servidor web (WEBrick)
¡Ah! Para facilitar el trabajo con la BD, te recomiendo que utilizes algun editor, yo utilizo el “MySQL Front”, quizas conoscas otro, eso es lo de menos.
Paso 2: Generando el esquema de carpetas
Para este paso te recomiendo que te ubiques en alguna carpeta o te crees una, en la cual almacenaras todos tus proyectos de RoR, para mi facilidad yo me cree un disco virtual de nombre “Z:”, en el cual almaceno todos los proyectos RoR.
OJO: Actualmente existe una carpeta dentro del sub conjunto de carpetas de “Instant Rails”, en la cual se almacena todos los ejemplos de proyectos existentes hasta ahora. Aprovecharemos esta carpeta para crear nuestra aplicación allí.
Código:
C:\>dir c:\InstantRails\rails_apps
C:\>subst /?
C:\>subst Z: c:\InstantRails\rails_apps
C:\>subst
C:\>Z:
Z:\>dir
Vamos bien, ahora para crear la estructura de carpetas que nos ayudaran a desarrollar nuestra primera aplicación, tan solo digitaremos el siguiente comando:
Código:
Z:\>rails Blog-Cusco (enter)
Z:\>cd Blog-Cusco (enter)
Veras que se han creado un conjunto de carpetas dentro de la carpeta que lleva el mismo nombre que nuestro proyecto
Ahora seguramente te preguntas, ¿Y porque tantas carpetas?, pues la respuesta es facil, como se comento en anteriores post, RoR tiene como filosofia principal Convencion antes de configuracion, esto quiere decir que no hay por que perder el tiempo en tediosos archivos de configuracion y otros similares, con esta esctructura, Rails ya sabe donde esta todo, es por eso que no debemos de borrar nada de estructura a menos que seamos unos gurus en este aspecto.
Y ya que hablamos de estas carpetas, pues explicare de manera rapida que es cada cosa.
App : Es la carpeta principal, pues alli es donde se situa el famoso Modelo Vista Controlador, dentro podras encontrar tres carpetas referidas a este termino que menciono:
OJO: Modelo Vista Controlador (MVC), por si te lo perdiste, aquí escribi algo de esto, para que vayas entendiendolo, es recomendable que antes de seguir con este ejemplo, leas de que trata el MVC, ¿vale?
Component: Si entras a este directorio, veras que no contiene nada, es por que no hay nigun componente aun diseñado, ¿Qué es un componente? Pues imaginense esto, en nuestra pagina web necesitamos colocar un calendario, pero uno con comportamiento propio, es decir: uno puede moverse por el facilmente, ademas indica las fechas clave o cualquier comportamiento que queramos que tenga, diganme donde pondrian todo ese codigo con todo ese comportamiento, si no sabes donde, el Rails te dice donde ponerlo, pues aquí, ¿entiendes?, creo que sip.
Config: El segundo en importancia despues de App, es esta carpeta; dentro encontraras varios archivos, y como su nombre lo dice, son pequeños archivos en los cuales se debera obligatoriamente configurar una que otra cosilla, pero veremos que esta configuracion es mas que sencilla (nada de XML, que ni yo entiendo por completo hasta ahora :D)
DB: Mayormente vi que se coloca codigo SQL (claro que no es leido por ningun lado por alguna librería o algo asi), solo es para darle orden a nuestro proyecto, sere franco, no sé con exactitud para que es que lo utilizan. Bueno, ya con el tiempo lo descubrire. ;)
Doc: Que creen que se guarde aquí, ¿Documentacion?, pues claro.
Lib: Tambien el nombre es muy sugestioso, librerias de todo tipo, ponlos aquí.
Log: El tercero en prioridad (App, Config, Log), en esta carpeta podremos encontrar diferentes archivos que guardan a modo de vitacora que es lo que esta sucediendo en el momento exacto en nuestras aplicaciones. El que utilizaremos mas es “development.log”, pues podremos observar que consultas se hacen a nuestra BD (mySQL), solo por citar un ejemplo.
Public: El cuarto en prioridad (App, Config, Log, Public), aquí encontraremos todo lo que se mostrara en el navegador cliente, si entrar veran que hay directorios con nombre JavaScript y StylesSheets, ademas de otros cuantos archivos, analizalo.
Script: Esta carpeta tambien es una de las importantes, pero no la pondremos como prioridad pues dentro de esta carpeta, mayormente, no haremos nada, en esta carpeta se encuentran los comandos que escribiremos en consola al momento de crear cada parte de nuestra aplicación.
Test: Aunque no la utilize hasta ahora, pero de seguro debe ser para realizar las pruebas necesarias a nuestra aplicación.
Tmp: Archivos temporales que nunca deben de faltar, como por ejemplo, variables de sesion, cosas que guardas en la cache, etc.
Vendor: En esta carpeta se coloca cualquier archivo, componente, script, etc., que venga de algun proveedor externo a nosotros o nuestro equipo de desarrollo, por ejemplo: plugins.
Hasta aquí todo va bien, bueno, luego de haber explicado a grandes rangos que es cada cosa, continuemos.
NOTA: ¿Estan cansados?, sé que se esta haciendo larguito pero eso es porque estamos explicando todo lo que veremos mas adelante.
Paso 3: Vayamos al navegador
Sé que “Vayamos al navegador”, es muy pronto, ¿verdad?, pero en realidad para ir a probarlo lo haremos de aca 5 minutos o quizas menos. Todo depende de cuan rapidos son para tipear :D
Haber a modo de repaso de MVC, diganme, cuando un usuario hace un request (pedido al servidor), ¿quien recibe ese pedido?, sera el modelo, la vista o el controlador, piensenlo, SI muy bien, es el controlador, pues entonces lo primero que necesitamos es crear un controlador, lo llamaremos Blog, ¿vale?, escriban esto en la consola.
Se suponen que ahora estan en dentro de la aplicación rails que crearon hace un momento: “Z:\>Blog-Cusco\”
Codigo:
Z:\Blog-Cusco>ruby script\generate controller Blog
Veran que se crearan una serie de archivos y carpetas, ademas esto puede demorar algunos segundos, no se preocupen si demora entonces.
¿Pero que hicimos con este comando?, para responder esta pregunta separaremos todo este comando para explicarlo mejor:
Ruby: el encargado de ejecutar este comando
Script: recuerdan que hay una carpeta con el mismo nombre, pues solo es eso, el nombre de la carpeta que contiene los script para generar codigo.
Generate: es el script que permite generar codigo y carpetas
Controller: parametro del script generate, le dice que se cree un controlador con el nombre que posteriormente esta escrito.
Blog: nombre del controlador
Ahora debemos hacer correr nuestro servidor (WEBrick), para esto abre una nueva consola y ubicate en el mismo lugar donde te encotramos en la otra.
Codigo:
Z:\Blog-Cusco>ruby script\server (enter)
Ahora abre cualquier navegador que quieras, yo prefiro Mozilla Firefox, y escriban en la barra de direccion, “localhost:3000”, veran que aparecera algo asi:
Una ventana de bienvenida que dice mas o menos algo como “bienvenido abordo”. Hasta ahora todo va bien; ¿que nos falta? ¡Ah claro!, llamar a nuestra aplicación, entonces en la barra de direccion escriban: “localhost:3000/blog”
Para explicar que hemos hecho ahora, leyendo un poco encontre esta imagen que pueda ayudar:
Entendible, ¿verdad?
Pero, volvamos a nuestro ejemplo, que mensaje aparecio…???, algo con el index, ¿verdad?, lo que sucede es que como no tenemos por ningun lado el codigo que deberia ejecutarse o mostrarse cuando lleguen a nuestra pagina, por defecto el Rails como es tan inteligente, busca un index, y al no encontrarlo manda este error. Solucionemoslo
Abre el archivo “Z:\Blog-Cusco\app\controllers\blog_controller.rb” y escribe lo siguiente:
Codigo:
class BlogController : ApplicationController
def index
render :text = "Hola mundo !!!"
end
end
Al actualizar el navegador veras los resultados…
Ahora veamos algunas variantes: Aumenta un michi antes de comenzar la linea (“#” = “comantario”) o sino borrala, luego actualiza el browser:
Codigo
#render :text = "Hola mundo !!!"
¡Ups! No encuentra la plantilla que nos dibuja al index. Observen que direccion es la que nos indica; aja, esta en la carpeta View, es obvio que si queremos mostrar algo al cliente este sera parte de la vista (MVC). Entonces deberas crearte un archivo de nombre: index.rhtml dentro de la carpeta “app/views/blog/”, una vez dentro del archivo escribe cualquier cosa, si es codigo HTML, mejor. En esta oportunidad tan solo pondremos “Hola Mundo desde la plantilla bienvenido a mi blog”, actualiza tu browser y listo.
Hasta ahora sencillo, ¿verdad?, veamos alguito mas antes de continuar con esto. En el controlador, borra todo el “def index”, es decir, dejalo como lo encontraste.
Y actualiza de nuevo el navegador, veras que sigue igual que antes, pero ¿que es lo que esta pasando?, como Rails es tan inteligente supone que siempre cuando entres a una pagina un navegador busca por defecto un archivo index, es por eso que lo redirecciona automaticamente, y hasta sin preguntarnos, es a cosas como esta que al decir “convencion antes de configuracion”, me refiero que no deberiamos perder el tiempo en cosas que ya son obvias.
¡Uff! Me canse, hasta aquí sera esta primera sesion, y aunque hayamos hecho casi nada en nuestro blog, creo que la pasamos mas explicando que es cada cosa que vemos y escribimos ¿verdad?.
Como tarea para ustedes, solo con esto que vimos hoy, que mas podrian hacer?, un buen ejemplo seria modificar el template para que se muestre nuestro index (nuestro blog) de mejor manera. Pero eso ya es de cada uno, vamos, todos abordo, y sigan sobre rieles.
Subversion, control de versiones con backup incluido
Subversion es un software de sistema de control de versiones de código abierto y gratuito. Subversion maneja ficheros y directorios a través del tiempo. Hay un árbol de ficheros en un repositorio central. El repositorio es como un servidor de ficheros ordinario, excepto porque recuerda todos los cambios hechos a sus ficheros y directorios. Esto le permite recuperar versiones antiguas de sus datos, o examinar el historial de cambios de los mismos. En este aspecto, mucha gente piensa en los sistemas de versiones como en una especie de "máquina del tiempo". Y a modo de ejemplo un poco mas relacionado a nuestro mundo, pues: "Imagínense q le escriben un bonito poema a su enamorada y pues antes de q se lo envíen, su bendita enamorada se porta mal o hace algo q no nos gusta y caray, nos hace molestar, entonces su poemita q estaban tan ilusionado de dárselo, lo sobrescriben y ponen cosas un poco feítas, rabiosas diremos. Pero como el amor es así de cambiante y para nada comprensible, pues de un día para el otro su enamorada hace algo bonito con el fin de ser disculpada y bueno, como somos tan pero tan buenos, pues la aceptamos y como ven, necesitaremos de nuevo nuestro poema", ¿pero hasta q me acuerde todo lo bonito q me había inspirado?, mejor hubiese sido q lo haya guardado en algún lado, ¿verdad? Pues con el fin de conservar información q varias veces es sobrescrita. Un buen ejemplo real es en el caso de ambientes de desarrollo de software: Cualquier persona q alguna vez a desarrollado algún sistema, o sin ir tan lejos, en esos trabajos universitarios q te dicen: "hagan grupos y hagan este jueguito", pues sabrán q muchas personas detrás de un solo computador, el trabajo no se avanza, pero si lo hiciesen cada uno una parte y la unión de estas partes no fuese tan tedioso con el temor de "chancar" alguna parte importante, pues las cosas serian diferentes ¿verdad? La solución para este problema es SUBVERSION. No, un servidor Subversion puede ser instalado bajo Linux, Mac OSX o Windows. Así que no hay que preocuparse, hay de todos los sabores y colores. De hecho, puede ser instalado como un modulo de Apache (servidor web) o como un servicio independiente, accesible a través de varios protocolos (http://, https://, svn://,file:///, entre otros). Sip, este sistema no solo controla cambios de archivos de texto (como .php, .as, .js, .css, .html, y cualquier otro que te imagines) sino también, es bastante efectivo con archivos binarios (como .fla, .jpg). Es una ventaja que tiene frente a CVS (una versión antigua q hacia lo mismo o se aproximaba). Realmente, lo único que necesitas, tanto para el cliente como para el servidor son los binarios de este sistema, pues después, puedes utilizarlo desde la línea de comandos. Sin embargo, hay aplicaciones que ayudan a ejecutar los comandos de subversion desde una interface grafica. En fin, para nuestro ejemplo, necesitas: Para q sea un poco mas explicito imaginaremos q trabajamos con 3 maquinas (*) La maquina servidor puede estar corriendo winXP o win2k, no interesa, además puede ser también un cliente, es decir: subir y bajar archivos (**) Ambas maquinas pueden estar corriendo winXP o también ser otros servers En la maquina servidor: Bueno el backup es aun mas sencillo, solo es un script q copia toda la carpeta de repositorios/test a otra en este caso, repositorios/test_backup Créense un archivo plano de extensión .bat y en el contenido pongan esto:Hola gentita latina, sé q con este post me estoy saliendo un poco del tema relacionado con el mundo de Rails, pero bueno, no quería dejar de compartir esto q aprendí ayer mismo; se trata de cómo poner en funcionamiento un servidor de versiones, subversion.
¿Y q es Subversion?
¿Y para q utilizaría Subversion?
¿De seguro solo corre en Linux?
¿Algo mas que deba saber?
Suena interesante ¿q necesito para comenzar?
Ya los tengo ¿y ahora q?
Bueno ahora si comienza lo bueno, lee bien y toma nota J
# Solo acceso a usuarios autorizados.
auth-access = write
# Fichero de usuarios.
password-db = passwd
# listado de usuarios y password¿Y el Backup?
//------------------------------------------------------------------------------------------------------------------------------
rem borra el contenido del anterior backup
del "c:\(carpeta del backup)" /S /F /Q
rd c:\(carpeta del backup) /S /Q
md c:\(carpeta del backup)
rem backup en caliente
c:\(directorio_de_Svn)\bin\svnadmin.exe hotcopy c:\(carpeta del repositorio)\(carpeta del proyecto. xEj: test) c:\(carpeta del backup)
//------------------------------------------------------------------------------------------------------------------------------
Bueno creo q con eso ya esta, sé q fue un poco larguito, pero de seguro q resultara, cualquier notita, consulta, o comentario solo escríbanme o comenten, ya nos vemos, sigan trabajando en equipo. ¡Ah! Sigan sobre rieles…
Etiquetas: Instalacion/Configuracion en General
Videos tutorial de Ruby & Rails (RailsCasts)
Pero eso no es todo, ademas si tienes instalado el famoso iTunes puedes sincronizarlo para q cada vez q hay a algun nuevo videito, puedas verlo no en la Web sino de frente en tu iTunes.
Y como haces eso, pues simplemente con un click
Si tienes internet a la mano, por q no comienzas a disfrutar de esta nueva tecnologia. Pruebalo !!!
Buscando editor para Ruby on Rails?
Hola a toda la gente latina, saben, siempre q uno comienza a escribir programas y q mejor si es algún mundo nuevo como Rails, pues acostumbramos (y me incluyo) a buscar alguna herramienta q nos ayude un poco con el lenguaje, verdad?, puesto q como es aun nuevo este mundo, no conocemos tan bien lo q queremos decir y hacer con este lenguaje.
Hace ya un tiempito q ando trabajando con un editor, q por opinion propia, creo ta padrisimo, es el Intype y tienes un logo +o- asi:
Clickeen encima para ir a su pagina... haber si los prueban
Tiene soporte para varios lenguajes como C, java, php, perl, javascript, ruby, ruby on rails, html, css, etc etc etc... ya se podran imaginar... ¡ah! y claro tiene un autocompletado de codigo, q me parece fantastico...
Sigan sobre rieles... suerte
¿Problemas con los plurales en el Modelo?
Comenzando a programar con Rails me encontré con un inconveniente q creo cualquier persona q alguna vez desarrollo algún sistemita se encontrara, el problema era poner nombres a nuestras tablas en la BD (bautizábamos a nuestras tablas como por ejemplo con "taCuenta" o simplemente "Cuenta", ¿verdad?), en realidad nos habíamos acostumbrado a poner nombres en singular en nuestra BD, o al menos así lo recuerdo yo q me dijeron mis profesores en la Universidad; bueno ahora el framework Rails, nos dice q debemos de cambiar ese paradigma con el cual crecimos a una manera de mejor entendimiento (a opinión personal). Los nombres de las tablas en nuestra BD deben de estar en Plural y las clases en nuestro Modelo deben de estar en Singular, así q ya están advertidos de cómo trabajar, ¿vale? La filosofía de Rails a parte de la rapidez pues es el de "La Convención antes de la Configuración", esto quiere decir q no hay q hacernos problemas con realizar líneas de líneas de código para hacer los pesados App.config o Web.config, q aun no logro entender (a plenitud, ¡claro!), mejor dejamos q el Rails, trabaje como fue configurado inicialmente y todos contentos. Rails es tan inteligente q dado un nombre de modelo en singular, por ejemplo: Dog, puede generar todas sus mantenimientos automáticamente, el famoso Scaffold, para relacionarla con una tabla en la BD de nombre Dogs, pero si a pesar de todo lo q les dije aun quieren trabajar a su manera (es decir con nombres de tablas a su estilo), pues encontré un articulo q de seguro les servirá de ayuda, no le quitare el crédito a esta persona por haber escrito esto, solo haz clic aquí. Un extracto de este post, lo escribo a continuación: "Entonces, ¿cuál sería la convención? Pues en general, se podría considerar lo siguiente: Visto, por supuesto, de forma muy simplificada, y obviando que la convención se puede (y se debería) extender a algunos nombres más, como el nombre de las columnas de una tabla, y el nombre que se utiliza para presentar esas columnas cuando se hace scaffold, por ejemplo." Y siguiendo la convención, pues si quieres cambiar de modo de trabajo, es decir: poniendo nombres plurales a las tablas y singulares al modelo, te recomiendo q veas este pagina, en esta te brinda una herramienta muy útil, q dado un nombre cualquiera te devuelve su nombre pluralizado, y otras ayuditas mas como por ejemplo el nombre q debería ir si fuese una clave foránea.

