sábado, 5 de noviembre de 2011

METODOLOGÍA DE LA INVESTIGACIÓN


La metodología
Dicho determino esta compuesto del vocablo método y el sustantivo griego logos que significa juicio, estudio, esta palabra se puede definir como La descripción, el análisis y la valoración critica de los métodos de investigación.
La metodología es el instrumento que enlaza el sujeto con el objeto de la investigación, Sin la metodología es casi imposible llegar a la lógica que conduce al conocimiento científico.

El método:
La palabra método se deriva del griego meta: hacia, a lo largo, y odos que significa camino, por lo que podemos deducir que método significa el camino más adecuado para lograr un fin.
También podemos decir que el método es el conjunto de procedimientos lógicos a través de los cuales se plantean los problemas científicos y se ponen a prueba las hipótesis y los instrumentos de trabajo investigados.
El método es un elemento necesario en la ciencia; ya que sin el no seria fácil demostrar si un argumento es valido.


Métodos Generales:
Los métodos generales se identifican por su carácter histórico, estos fueron utilizados por los griegos para alcanzar el conocimiento


El método deductivo: es aquel que parte de datos generales aceptados como validos para llegar a una conclusión de tipo particular.
Ej.: “La pérdida de peso, los sudores nocturnos, toser mucho y escupir sangre son síntomas de tuberculosis. Este enfermo manifiesta estos síntomas luego entonces este enfermo tiene tuberculosis.”


El método inductivo: es aquel que parte de los datos particulares para llegar a conclusiones generales
Ej.: “Si un investigador encuentra la vacuna contra el cáncer, no le importa solamente cura a aquellos casos en los cuales se probó sino en todos los demás casos de esta enfermedad.”


Análisis: el análisis es la descomposición de algo en sus elementos. El método analítico consiste en la separación de las partes de un todo para estudiarlas en forma individual.


Síntesis: la síntesis es la reconstrucción de todo lo descompuesto por el análisis.
Lo que si les puedo decir es que cuando se utiliza el análisis sin llegar a la síntesis, los conocimientos no se comprenden verdaderamente y cuando ocurre lo contrario el análisis arroja resultados ajenos a la realidad.


El método científico
El método científico es el camino planeado o la estrategia que se sigue para descubrir las propiedades del objeto de estudio.
El método científico es un proceso de razonamiento que intenta no solamente describir los hechos sino también explicarlos.
El método científico conjuga la inducción y la deducción es decir el pensamiento reflexivo para resolver dicho problema tenemos que cruzar; por las siguientes cinco etapas:


Percepción de una dificultad: es donde el individuo encuentra algún problema que le preocupe.
Identificación y definición de la dificultad: es donde el individuo observa para definir la dificultad del problema.
Solución propuesta para el problema: es donde el individuo busca las posibilidades de solución para los problemas mediante previos estudios de los hechos.
Deducción de las consecuencias de las hipótesis: es donde el individuo llega a la conclusión de que si su hipótesis es verdadera, le seguirán ciertas consecuencias.


Verificación de la hipótesis: mediante acción: aquí el individuo prueba cada hipótesis buscando hechos ya observados que pruebe que dicha consecuencia sea verdadera para así hallar la solución más confiable.


Características del Método Científico
Fáctico: Esto significa que siempre se ciñe a los hechos


Transciende los hechos: es donde los investigadores no se conforman con las apariencias sino que buscan las causas y efectos del fenómeno


Se vale de la verificación empírica: Utiliza la comprobación de los hechos para formular respuestas del problema planteado y este esta apoyado en la conclusión.
Es falible: no es infalible puede perfeccionarse, a través de aportes utilizando nuevos procedimientos y técnicas.
No es autosuficiente: necesita de algún conocimiento previo para luego reajustarse y elaborarse.


¿Qué es Técnicas?
Es el conjunto de instrumentos y medios a través de los cual se efectúa el método y solo se aplica a una ciencia
La diferencia entre método y técnica es que el método se el conjunto de pasos y etapas que debe cumplir una investigación y este se aplica a varias ciencias mientras que técnica es el conjunto de instrumentos en el cual se efectúa el método.


La Investigación
La investigación es la acción de indagar a partir de un indicio para descubrir algo, la investigación es una actividad inherente de la naturaleza humana.


La investigación Científica
Podemos decir que la investigación científica se define como la serie de pasos que conducen a la búsqueda de conocimientos mediante la aplicación de métodos y técnicas y para lograr esto nos basamos en los siguientes.
Exploratoria: Son las investigaciones que pretenden darnos una visión general de tipo aproximativo respecto a una determinada realidad. Este tipo de investigación se realiza especialmente cuando el tema elegido ha sido poco explorado y reconocido, y cuando aun, sobre el es difícil formular hipótesis precisas o de ciertas generalidad. Suelen surgir también cuando aparece un nuevo fenómeno, que precisamente por su novedad, no admite todavía una descripción sistemática, o cuando los recursos que dispone el investigador resultan insuficientes como para emprender un trabajo mas profundo.


Descriptivas: su preocupación primordial radica en describir algunas características fundamentales de conjuntos homogéneos de fenómenos, utilizando criterios sistemáticos que permitan poner de manifiesto su estructura o comportamiento. De esta forma se pueden obtener las notas que caracterizan a la realidad estudiada.
Explicativas: son aquellos trabajos donde muestra preocupación, se centra en determinar los orígenes o las causas de un determinado conjunto de fenómenos, donde el objetivo es conocer por que suceden ciertos hechos atrás ves de la delimitación de las relaciones causales existentes o, al menos, de las condiciones en que ellas producen. Este es el tipo de investigación que mas profundiza nuestro conocimiento de la realidad, por que nos explica la razón, el por que de las cosas, y es por lo tanto mas complejo y delicado pues el riesgo de cometer errores aumenta considerablemente.


Formas y Tipos de la Investigación
Existen dos formas de investigación la Pura y la Aplicada


La Investigación pura: es la que se apoya dentro de un contexto teórico y su propósito es desarrollar teorías mediante
el descubrimiento de principios.


La Investigación aplicada: es la que se apoya en la solución de problemas específicos para mejor la calidad de vida de las sociedades, dicha investigación es vinculada a la pura; ya que depende de los aportes teóricos de la mismo.
Al igual que hay dos formas existen tres tipos de investigación que son:


Investigación Documental: es la investigación que es realizada en los distintos tipos de escrituras tales como libros, resistas entre otras.


Investigación De Campo: es la investigación que se realiza en el lugar de los hechos es decir donde ocurre los fenómenos estudiados.


Investigación de Laboratorio: es donde el investigador debe presentar por escrito los conocimientos ya publicados sobre el tema, validados por la bibliografía existente.

JAVA FX


JavaFX es una familia de productos y tecnologías de Sun Microsystems, adquirida porOracle Corporation, para la creación de Rich Internet Applications (RIAs), esto es, aplicaciones web que tienen las características y capacidades de aplicaciones de escritorio, incluyendo aplicaciones multimedia interactivas. Las tecnologías incluidas bajo la denominación JavaFX son JavaFX Script y JavaFX Mobile, aunque hay más productos JavaFX planeados.
Las aplicaciones JavaFX pueden ser ejecutadas en una amplia variedad de dispositivos. En su última versión (JavaFX 1.3, abril 2010) permite crear aplicaciones de escritorio, para celulares, la Web, TV, consolas de videojuegos, reproductores Blu-ray, entre otras plataformas planeadas. Para el desarrollo de aplicaciones JavaFX un lenguaje declarativo, tipado llamado JavaFX Script, además puede integrarse código Java en programas JavaFX. JavaFX es compilado a código Java, por lo que las aplicaciones JavaFX pueden ser ejecutadas en computadores con la máquina virtual de Java instalada (JRE), o celulares corriendo Java ME.
JavaFX fue anunciado en la conferencia de desarrolladores JavaOne en mayo de 2007 y liberado en diciembre de 20081
La intención de Sun Microsystems respecto de JavaFX es competir en el espacio que ya ocupan Flash de Adobe, y Silverlight de Microsoft.
En palabras de James Gosling "La mayoría de los lenguajes de script están orientados a las páginas web; éste está orientado a las interfaces que son altamente animadas"
JavaFX
JavaFX, surge como una innovación de Java orientada a los miles de dispositivos y computadoras que utilizan la tecnología Java. Es una nueva familia de productos basados en la tecnología Java que ayuda a la creación e implementación de aplicaciones RIA (Aplicaciones de Internet enriquecidas).
JavaFX: JavaFX Script y JavaFX Mobile.
JavaFX Script permite crear rápidamente aplicaciones ricas en contenido para la más amplia variedad de clientes, entre ellos dispositivos móviles, decodificadores, máquinas de escritorio e incluso discos Blu-ray.
JavaFX Script ofrece una estrecha integración con otros componentes de Java (aplicaciones e infraestructura) que se ejecutan en plataformas de servidor y cliente.
JavaFX Script aprovecha el modelo de seguridad de Java de modo que los consumidores pueden acceder con seguridad a activos (por ej., imágenes, archivos de música, documentos de palabras) en su escritorio.
JavaFX Mobile es un sistema integrado de software para programación de dispositivos móviles. Está disponible mediante licencias de OEM para proveedores de telecomunicaciones, fabricantes de teléfonos y otras empresas que deseen simplificar y acelerar el desarrollo de un potente sistema de software estandarizado, que pueda aprovecharse en una amplia gama de dispositivos para el consumidor.
Contenido interactivo dinámico en cualquier dispositivo
No siempre se pude predecir qué dispositivos o plataformas van a usar los clientes, y con JavaFX, no es necesario hacerlo. A diferencia de otras plataformas de dispositivos construidas sobre tecnologías exclusivas, JavaFX Mobile utiliza tecnologías estándar de la industria , esto significa que las aplicaciones construidas con JavaFX pueden ejecutarse en una amplia gama de dispositivos habilitados para Java, y los proveedores de contenido pueden agregarlos rápidamente a sus dispositivos. Los más recientes estándares, incluido el conjunto de Arquitectura de Servicios Móviles de las API de dispositivos, están estrechamente integradas en JavaFX Mobile, de modo que los desarrolladores tienen un conjunto enriquecido de capacidades altamente portátiles.
JavaFX puede entregar aplicaciones visualmente atractivas, como mapas y mashups, video, audio e imágenes, que puede estandarizar a través de teléfonos celulares, televisores, etc. El nuevo lenguaje de programación se puede integrar estrechamente con otros componentes de Java que ya se ejecutan en servidores y clientes. Y debido a que está creado sobre estándares abiertos, las tecnologías de JavaFX ofrecen a las empresas que crean aplicaciones de Internet enriquecidas un tiempo de comercialización más rápido y una mayor coherencia para las aplicaciones y servicios.

Escribir una vez, ejecutar donde sea

Las aplicaciones escritas con JavaFX Script aprovechan las características establecidas de la tecnología Java, como la portabilidad de escribir-una-vez-ejecutar-donde-sea, la seguridad de las aplicaciones, la distribución omnipresente y la conectividad empresarial.
JavaFX Script puede además, admitir interfaces de usuario de cualquier tamaño o complejidad, y aprovechar los modelos de programación de Java, como las funciones de estructuración de código, reutilización y encapsulado (paquetes, clases, herencia, y unidades de compilación y desplegado separadas), para la creación y mantenimiento de grandes programas en JavaFX Script. Su estructura de código escrito coincide con la disposición real de la GUI , y es más sencilla de entender y mantener. JavaFX Script también presenta ventajas para los desarrolladores de Java aprovechándose mediante un complemento de NetBeans.

Ventajas  
•  JavaFX es una extensión a la plataforma Java que ofrece interactividad, animación y programación compatible con AJAX, Flash de Adobe y Silverlight de Microsoft. A diferencia de éstas anteriores, utiliza los runtimes Java ya instalados en el cliente local en lugar de JavaScript.
  •  JavaFX permite a los creadores de contenido crear contenido rico en medios, lo que incluye el arrastrar y soltar contenido de equipos de escritorio o móviles hacia el escritorio, algo que no es posible en ninguna otra RIA .
  •  JavaFX se trata de un sistema de desarrollo para la web que pretende competir con el Flash de Adobe y el Silverlight de Microsoft, con el añadido de que es Open Source .
  •  Millones de desarrolladores, muchos equipos con Java instalado y a eso hay que sumar que Java es libre bajo GPL.
•  Multiplataforma, desde el escritorio (corriendo sobre una máquina virtual Java SE) hasta los dispositivos móviles para los que habrá un JavaFX Mobile.
•  Utiliza el mismo lenguaje para la web, para el escritorio y para la telefonía móvil.
•  Tiene como objetivo que el browser opere mejor que con JavaScript, que es lento y se implementa en formas diferentes de un browser a otro.
•  Con JavaFX la aplicación corre en una computadora local aunque esté desconectada de Internet. Al ser compiladas en lugar de interpretadas, son aún más veloces. El compilador no compagina a toda la aplicación, sino sólo a las partes del código no relacionadas con la interfaz de usuario (UI).
•  El plug-in en NetBeans simplifica notablemente el desarrollo de aplicaciones JavaFX dentro del mismo IDE y no como aplicaciones separadas.
•  El manejo de sintaxis de código es más inteligente ya que los desarrolladores pueden ver los cambios en vivo dentro del IDE, lo que facilita la prueba de código y la realización de cambios sin tener que guardarlo, compilarlo y ejecutarlo con fines de test.
•  En lugar de usar al browser como contenedor del código JavaScript, las aplicaciones utilizan los dispositivos de seguridad de Java SE para controlar el acceso a disco de las aplicaciones.
•  JavaFX Script posibilita a los diseñadores visuales en los IDEs manipular la interfaz grafica sin tener que hacer grandes alteraciones en el código.
•  JavaFX Mobile pretende proporcionar a los fabricantes de teléfonos móviles un entorno software completo (con sus herramientas de desarrollo incluidas) en el que basar sus productos, de forma que estos se puedan centrar en el desarrollo de servicios que los diferencien de sus competidores.
•  JavaFX Mobile utiliza tecnologías estándar de la industria, lo que hace posible que las aplicaciones construidas con JavaFX pueden ejecutarse en una amplia gama de dispositivos habilitados para Java, y los proveedores de contenido pueden agregarlos rápidamente a sus dispositivos.
Desventajas
• Con JavaFx, se agrega un lenguaje de script complejo, que necesita mantener en memoria su propia estructura semántica y sus propios objetos de plataforma, simultáneamente con los objetos gráficos.
• Al ser un lenguaje de script agrega un factor de ralentización importantísimo, por eso el desempeño no es óptimo.
• Por otro lado, las APIs de tratamiento de XML ya vienen incorporadas al JDK, generalmente están implementadas a bajo nivel, por lo que un sistema de templates es mucho mas liviano que soportar JavaFX.




jueves, 27 de octubre de 2011

CUBOS OLAP


Un cubo OLAPOnLine Analytical Processing o procesamiento Analítico En Línea, término acuñado por Edgar Frank Codd de EF Codd & Associates, encargado por Arbor Software (en la actualidad Hyperion Solutions), es una base de datos multidimensional, en la cual el almacenamiento físico de los datos se realiza en un vector multidimensional. Los cubosOLAP se pueden considerar como una ampliación de las dos dimensiones de una hoja de cálculo.
A menudo se pensaba que todo lo que los usuarios pueden querer de un sistema de información se podría hacer de una base de datos relacional. No obstante Codd fue uno de los precursores de las bases de datos relacionales, por lo que sus opiniones fueron y son respetadas.

Introducción

La propuesta de Codd consistía en realizar una disposición de los datos en vectores para permitir un análisis rápido. Estos vectores son llamados cubos. Disponer los datos en cubos evita una limitación de las bases de datos relacionales, que no son muy adecuadas para el análisis instantáneo de grandes cantidades de datos. Las bases de datos relacionales son más adecuados para registrar datos provenientes de transacciones (conocido como OLTP o procesamiento de transacciones en línea). Aunque existen muchas herramientas de generación de informes para bases de datos relacionales, éstas son lentas cuando debe explorarse toda la base de datos.
Por ejemplo, una empresa podría analizar algunos datos financieros por producto, por período, por ciudad, por tipo de ingresos y de gastos, y mediante la comparación de los datos reales con un presupuesto. Estos parámetros en función de los cuales se analizan los datos se conocen como dimensiones. Para acceder a los datos sólo es necesario indexarlos a partir de los valores de las dimensiones o ejes.
El almacenar físicamente los datos de esta forma tiene sus pros y sus contras. Por ejemplo, en estas bases de datos las consultas de selección son muy rápidas (de hecho, casi instantáneas). Pero uno de los problemas más grandes de esta forma de almacenamiento es que una vez poblada la base de datos ésta no puede recibir cambios en su estructura. Para ello sería necesario rediseñar el cubo.
En un sistema OLAP puede haber más de tres dimensiones, por lo que a los cubos OLAP también reciben el nombre de hipercubos. Las herramientas comerciales OLAP tienen diferentes métodos de creación y vinculación de estos cubos o hipercubos (véase Tipos de OLAP en el artículo sobre OLAP).

Un ejemplo

Un analista financiero podría querer ver los datos de diversas formas, por ejemplo, visualizándolos en función de todas las ciudades (que podrían figurar en el eje de abscisas) y todos los productos (en el eje de ordenadas), y esto podría ser para un período determinado, para la versión y el tipo de gastos. Después de haber visto los datos de esta forma particular el analista podría entonces querer ver los datos de otra manera y poder hacerlo de forma inmediata. El cubo podría adoptar una nueva orientación para que los datos aparezcan ahora en función de los períodos y el tipo de coste. Debido a que esta reorientación implica resumir una cantidad muy grande de datos, esta nueva vista de los datos se debe generar de manera eficiente para no malgastar el tiempo del analista, es decir, en cuestión de segundos, en lugar de las horas que serían necesarias en una base de datos relacional convencional.

Dimensiones y jerarquías

Cada una de las dimensiones de un cubo OLAP puede resumirse mediante una jerarquía. Por ejemplo si se considera una escala (o dimensión) temporal "Mayo de 2005" se puede incluir en "Segundo Trimestre de 2005", que a su vez se incluye en "Año 2005". De igual manera, otra dimensión de un cubo que refleje una situación geográfica, las ciudades se pueden incluir en regiones, países o regiones mundiales; los productos podrían clasificarse por categorías, y las partidas de gastos podrían agruparse en tipos de gastos. En cambio, el analista podría comenzar en un nivel muy resumido, como por ejemplo el total de la diferencia entre los resultados reales y lo presupuestado, para posteriormente descender en el cubo (en sus jerarquías) para poder observar con un mayor nivel de detalle que le permita descubrir en el cubo los lugares en los que se ha producido esta diferencia, según los productos y períodos.

Dispersión en cubos OLAP

Vincular o enlazar cubos es un mecanismo para superar la dispersión. Ésta se produce cuando no todas las celdas del cubo se rellenan con datos (escasez de datos o valores nulos). El tiempo de procesamiento es tan valioso que se debe adoptar la manera más efectiva de sumar ceros (los valores nulos o no existentes). Por ejemplo los ingresos pueden estar disponibles para cada cliente y producto, pero los datos de los costos pueden no estar disponibles con esta cantidad de análisis. En lugar de crear un cubo disperso, a veces es mejor crear otro cubo distinto, pero vinculado, en el que un subconjunto de los datos se pueden analizar con gran detalle. La vinculación asegura que los datos de los dos cubos mantengan una coherencia.

Acceso y cálculo de un cubo OLAP

Los datos de los cubos pueden ser actualizados de vez en cuando, tal vez por personas diferentes de forma concurrente. Para solventar este problema a menudo es necesario bloquear partes de un cubo mientras otro usuario está escribiendo, para volver a calcular los totales en el cubo. Otras implementaciones añaden la posibilidad de mostrar una alerta que indique que los totales calculados previamente ya no son válidos tras los nuevos datos. También hay algunos productos que calculan los totales cuando se les necesita con los últimos datos producidos en el sistema.

Definición técnica

En teoría de bases de datos, un cubo OLAP es una representación abstracta de la proyección de una relación de un RDBMS (Sistema administrador de bases de datos relacionales). Dada una relación de orden N, se considera la posibilidad de una proyección que dispone de los campos XYZ como clave de la relación y de W como atributo residual. Categorizando esto como una función se tiene que:
W : (X,Y,Z) → W
Los atributos XYZ se corresponden con los ejes del cubo, mientras que el valor de W devuelto por cada tripleta (X, Y, Z) se corresponde con el dato o elemento que se rellena en cada celda del cubo.
Debido a que los dispositivos de salida (monitores, impresoras, ...) sólo cuentan con dos dimensiones, no pueden caracterizar fácilmente cuatro dimensiones, es más práctico proyectar "rebanadas" o secciones de los datos del cubo (se dice proyectar en el sentido clásico vector analítico de reducción dimensional, no en el sentido de SQL, aunque los dos conceptos son claramente análogos), tales como la expresión:
W : (X,Y) → W
Aunque no se conserve la clave del cubo (al faltar el parámetro Z), puede tener algún significado semántico, sin embargo, también puede que una sección de la representación funcional con tres parámetros para un determinado valor de Z también resulte de interés.
La motivación que hay tras OLAP vuelve a mostrar de nuevo el paradigma de los informes de tablas cruzadas de los sistema de gestión de base de datos de los 80. Se puede desear una visualización al estilo de una hoja de cálculo, donde los valores de X se encuentran en la fila$1, los valores de Y aparecen en la columna $A, y los valores de W: (X,Y) → W se encuentran en las celdas individuales a partir de la celda$B2 y desde ahí, hacia abajo y hacia la derecha. Si bien se puede utilizar el Lenguaje de Manipulación de Datos (o DML) de SQL para mostrar las tuplas (X,Y,W), este formato de salida no es tan deseable como la alternativa de tablas cruzadas. El primer método requiere que se realice una búsqueda lineal para cada par (X,Y) dado, para determinar el correspondiente valor de W, mientras que el segundo permite realizar una búsqueda más convenientemente permitiendo localizar el valor W en la intersección de la columna X apropiada con la fila Y correspondiente.
Se ha desarrollado el lenguaje MDX (MultiDimensional eXpressions o expresiones multidimensionales) para poder expresar problemasOLAP de forma fácil. Aunque es posible traducir algunas sus sentencias a SQL tradicional, con frecuencia se requieren expresiones SQL poco claras incluso para las sentencias más simples del MDX. Este lenguaje ha sido acogido por la gran mayoría de los proveedores de OLAP y se ha convertido en norma de hecho para estos sistemas.

RUBY ON RAILS


Ruby on Rails , a menudo abreviado como rieles o RoR , es un código abierto framework de aplicaciones web para el lenguaje de programación Ruby .

Historia

VersiónFecha
Historial de las versiones
1,0 [ 1 ]13 de diciembre 2005
1.2 [ 2 ]19 de enero 2007
2,0 [ 3 ]07 de diciembre 2007
2.1 [ 4 ]01 de junio 2008
2.2 [ 5 ]21 de noviembre 2008
2,3 [ 6 ]16 de marzo 2009
3,0 [ 7 ]29 de agosto 2010
3.1 [ 8 ]31 de agosto 2011
Ruby on Rails fue extraído por David Hansson Heinemeierde su trabajo en Basecamp de una herramienta de gestión de proyectos de 37signals (ahora una aplicación web de la compañía). [ 9 ] Hansson lanzado por primera vez Ruby on Rails como código abierto en julio de 2004, pero no comparten cometer derechos del proyecto hasta febrero de 2005. [ 10 ] En agosto de 2006 el marco alcanzó un hito cuando de Apple anunció que enviaría Ruby on Rails con Mac OS X v10.5 "Leopard" , [ 11 ] que fue lanzado en octubre de 2007.
Versión de Ruby on Rails 2.3 fue lanzado el 15 de marzo de 2009. Nuevos e importantes avances en Ruby on Rails incluyen plantillas, motores, bastidor y las formas anidadas modelo. Las plantillas permiten al desarrollador generar un esqueleto de la aplicación con la costumbre de las gemas y las configuraciones. Motores permiten una reutilización de piezas de solicitud completa con rutas, caminos y ver los modelos. El rack de servidor y la interfaz web de metal permiten una optimización de escribir piezas de código que la ruta alrededor de ActionController. [ 12 ]
El 23 de diciembre de 2008, Merb , otro framework de aplicaciones web se puso en marcha, y Ruby on Rails ha anunciado el compromiso de trabajar juntos. El equipo de Ruby on Rails ha anunciado que trabajarán con el proyecto Merb para llevar "las mejores ideas de Merb" en Ruby on Rails 3, poniendo fin a la "duplicación innecesaria" a través de las dos comunidades. [ 13 ] Merb se fusionó con los carriles como parte de la 3.0 carriles de liberación. 

Introducción técnica

Al igual que muchos frameworks web, Ruby on Rails utiliza el Modelo-Vista-Controlador (MVC) para organizar la arquitectura de programación de aplicaciones.
Ruby on Rails incluye herramientas que facilitan las tareas comunes de desarrollo más fácil "de la caja", como los andamios que se puede construir de forma automática algunos de los modelos y puntos de vista básicos necesarios para una página web . [ 16 ] También se incluyenWEBrick , un sencillo servidor Web Ruby que se distribuye con Ruby, y Rake , un sistema de construcción, distribuidos de una joya . Junto con Ruby on Rails estas herramientas ofrecen un entorno de desarrollo básico.
Ruby on Rails se basa en un servidor Web para ejecutarlo. Mestizo en general se prefirió sobre WEBrick en el momento de la escrituracita requerida ] , pero también puede ser ejecutado por Lighttpd , Abismo , Apache , Nginx (ya sea como un módulo - de pasajeros de ejemplo - oa través de CGI , FastCGI o mod_ruby ), y muchos otros. A partir de 2008, el servidor web de pasajeros reemplazado Mestizo como el servidor web más utilizado para Ruby on Rails. [ 17 ]
Ruby on Rails es también notable por su uso extensivo de las JavaScript bibliotecas Prototype y Script.aculo.us para Ajax . [ 18 ] Ruby on Rails inicialmente utilizado ligero de SOAP para servicios web, lo que más tarde fue sustituido por REST servicios web . Ruby on Rails 3.0 utiliza una técnica llamada JavaScript discreta para separar la funcionalidad (o lógica) de la estructura de la página web. jQuery es totalmente compatible como un reemplazo de Prototype y en Rails 3.1 es la biblioteca por defecto Javascript, lo que refleja un amplio sector moverse hacia el uso de jQuery.
Desde la versión 2.0, Ruby on Rails por defecto ofrece HTML y XML como formato de salida. Esta última es la instalación de servicios web RESTful.
El servidor utiliza rubíes incrustados en los puntos de vista HTML con archivos con la extensión html.erb. Otros métodos de plantillas están disponibles como HAML que elimina gran parte de 'desorden' de la página normal (por ejemplo, html '<' y '>' y rubí guión "fin de)
Ruby on Rails 2.3 se basa en Ruby 1.8.6 . Ruby on Rails 3.0 ha sido diseñado para trabajar con Ruby 1.8.7, Ruby 1.9.2 y JRuby 1.5.2 + ,. versiones anteriores no son compatibles [ 19 ]

Marco de la estructura

Ruby on Rails se divide en varios paquetes, es decir, ActiveRecord (un mapeo objeto-relacional de bases de datos del sistema para el acceso), ActiveResource (proporciona servicios web), actionpack, ActiveSupport y ActionMailer. Antes de la versión 2.0, Ruby on Rails también se incluye la web de Acción paquete de servicio que ha sido sustituido por recurso activo. Aparte de los paquetes estándar, los desarrolladores pueden hacer plugins para ampliar los paquetes existentes.

Despliegue

Ruby on Rails a menudo se instala con RubyGems , un gestor de paquetes [ 20 ] que se incluye con las versiones actuales de Ruby.Muchas distribuciones de Linux también admite la instalación de Ruby on Rails y sus dependencias a través de su lengua materna, el sistema de gestión de paquetes .
Ruby on Rails se suele implementar con un servidor de base de datos como MySQL o PostgreSQL , y un servidor web como Apacheejecutando el pasajero Phusion módulo.
Hay muchos Rubí en los carriles de servicios de alojamiento, tales como Heroku , Engine Yard , y Zona de juegos para Rails.

La filosofía y el diseño

Ruby on Rails tiene por objeto subrayar la Convención sobre la configuración (CoC), y el principio de un rápido desarrollo de No Repeat Yourself (DRY).
"Convención sobre configuración" se refiere a un desarrollador sólo tiene que especificar los aspectos no convencionales de la aplicación.Por ejemplo, si hay una clase de venta en el modelo, la tabla correspondiente en la base de datos se denomina venta por defecto. Sólo si uno se desvía de esta convención, como llamar a la mesa "los productos vendidos", que el desarrollador tiene que escribir el código en relación con estos nombres. En general, las convenciones de Rails Ruby on conducir a menos código y menos repeticiones. cita requerida ]
"No te repitas" significa que la información se encuentra en un solo lugar, sin ambigüedades. Por ejemplo, utilizando el ActiveRecord de Rails módulo, el desarrollador no tiene que especificar los nombres de base de datos de columna en definiciones de clase. En su lugar, Ruby on Rails se puede recuperar esta información desde la base de datos basado en el nombre de la clase.