jueves, 31 de marzo de 2016

Problemas 1 y 2 Proyecto Euler

Problema 1:

Si una lista de todos los números naturales por debajo de 10, que son múltiplos de 3 o 5, obtenemos 3, 5, 6 y 9. La suma de estos múltiplos es 23.

Encuentra la suma de todos los múltiplos de 3 o 5 por debajo de 1,000.


Solución a partir de un ciclo for:

1.- Se inicia un contador en 1 con un límite hasta 1000.

2.- Se crea una condición, en donde el contador se dividirá entre 3 o(||) 5  y si el residuo (%) es igual a cero, se procede a la operación

3.- La operación consiste en una suma, donde la variable de contador se le sumará el valor actual(variable suma) dando cómo sintaxis normal: suma=suma+contador pero se han usado los operadores de asignación compuestos para reducir el código dando como resultado suma+=contador.



Operadores de Asignación Compuestos:


OPERADOR EQUIVALENCIA
a += b a = a + b
a -= b a = a - b
a *= b a = a * b
a /= b a = a / b



Código JAVA:

public class ProblemaUno {

    public static void main (String[] args){
     
        int suma=0;
        for(int contador = 1; contador<1000; contador++) {
            if(contador%3==0 || contador%5==0){
            suma+=contador;
            }
        }
        System.out.println("Sumatoria total: " + suma);
    }
}




Código RUBY:

Usando el método upto se puede llegar al mismo resultado, de igual manera, podría hacerse con un each usando rangos, e igual que en JAVA con un for:

suma = 0

1.upto(1000) do |numero|
if numero%3 == 0 or numero%5 == 0
suma += numero
end
end

puts "La suma total es: #{suma}"


(Aunque la filosofía en Ruby sería usarlo como un objeto, pero ahora no hablamos de un tutorial de Ruby para crear nuestra clase, definir el método, crear el objeto, etc etc...)







Problema 2:

Cada nuevo término en la serie de Fibonacci se genera por la suma de los dos términos anteriores. Al comenzar con 1 y 2, los primeros 10 términos serán los siguientes:

1,2,3,5,8,13,21,34,55,89

Al considerar los términos de la sucesión de Fibonacci cuyos valores no superan los cuatro millones, hallar la suma de los términos pares.


Solución a partir de un ciclo while:

1.- Lo primero que podría considerarse para llegar a la solución, sería encontrar el algoritmo para recrear la serie de Fibonacci, para esto, se crearían 2 variables, una iniciando en 0(anterior) y otra en 1(fibo), las cuales nos ayudarían a definir la posición actual de la serie y la posición anterior.

2.- Sabemos que el rango a cubrir, debe ser menor a 4,000,000 por lo cual, se usará un while para crear el ciclo que se irá repitiendo hasta cumplir su condición en que la variable fibo no exceda el valor antes citado.

3.- Dentro del ciclo, arrancan 2 operaciones para ir alterando a al variable fibo, la primera calcularía la posición anterior, usando el valor actual de fibo para restar el valor actual de la variable anterior. Después entraría una nueva, donde la variable fibo se le añadiría el valor de la variable anterior, y esto nos generaría la serie de Fibonacci.

4.- Se incluye una condición similar al problema anterior, cambiando ahora los valores de la división a 2 para separar solo los términos pares, y si la condición se cumple, genera la operación de calcular la variable suma, a partir del valor actual de la variable fibo y de variable suma (que podría considerarse como el valor que tenía la serie, en la posición anterior)



Código JAVA:

public class ProblemaDos {
    public static void main (String[] args){
     
        int anterior =0;
        int fibo=1;
        int suma = 0;
     
        while(fibo<4000000) {
         
            anterior = fibo-anterior;
            fibo += anterior;
         
            if(fibo%2==0){
                suma += fibo;
            }
        }
        System.out.println("La suma es: " +suma);
    }
}




Código RUBY:


fibo = 1
anterior = 0
suma = 0

while fibo < 4000000

if fibo%2 == 0
suma += fibo
end

anterior = fibo - anterior
fibo += anterior
end

puts "La suma total es: #{suma}"

jueves, 3 de marzo de 2016

Crear un controlador y usarlo como página principal

Después de haber instalado correctamente Rails, seguiría crear un controlador y hacerlo ver como nuestra página principal.

Nota:
Todo lo trabajado, se usa a partir del proyecto ya creado cuando se hizo la instalación.



1.- Crearemos el controlador con la siguiente sintaxis:

rails generate controller principal index

Donde:
principal => nombre del controlador que vamos a crear
index => nombre de la función que el controlador va a llamar
(pueden poner cualquier nombre)


2.- Esto nos generará 2 nuevos archivos dentro de nuestra aplicación y podemos comprobarlo en la ruta de controladores y de vistas, ambos con los nombres que escogimos.
El archivo de la vista, es un html y lo modificamos para comprobar su funcionamiento en:

localhost:3000/principal/index

(Recuerda que primero se debe levantar el servidor para poder visualizarlo)

(clic para hacer grandota)



Usando nuestro controlador como vista principal.


Haremos que este nuevo controlador, sea visible desde la vista principal, para convertirlo en el front de nuestro sitio:

1.- Vamos a dirigirnos a la carpeta de config y abriremos el archivo llamado routes.rb

2.- Dentro de ella vamos a encontrar una línea comentada de root, podemos usar esa, o podemos añadir una nueva, usando nuestro controlador antes creado:

(clic para hacer grandota)

3.- Regresamos al navegador, escribimos localhost:3000 y deberíamos estar viendo nuestra vista recién creada.


Nota:
La cadena de la línea 2, que comienza con get, le está indicando a rails que después de localhost:3000/ existe esa ruta, si la comentamos/borramos, al tratar de acceder a localhost:3000/principal/index marcaría un error de que dicho path no existe.

Instalar Ruby on Rails en Ubuntu 15 y no morir ni matar a nadie en el intento

En esta guía, instalaremos Ruby on Rails en Ubuntu, crearemos nuestro primer controlador y lo usaremos como nuestra vista principal de una manera rápida y sin complicaciones.

En esta primera parte, se explica cómo hacer la instalación de Ruby on Rails:



Instalando Rails


1.- Abriremos las preferencias de la terminal, y en la segunda pestaña de command tildaremos la casilla de "Ejecutar el comando como un intérprete de conexión"

(clic para hacer grandota)


2.- Comenzaremos instalando los paquetes:

sudo apt-get install -y git-core subversion

3.- En varios artículos que leí, mencionaba que era necesario instalar una firma para el RVM, de lo contrario, podría presentar problemas a lo largo del desarrollo:

gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3

4.- Ahora sí, instalaremos el RVM (Ruby Version Manager), lo que nos permitirá poder instalar varias versiones al mismo tiempo de Ruby on Rails:

\curl -sSL https://get.rvm.io | bash -s stable --rails --ruby

Al finalizar la instalación, será necesario cerrar la terminal y abrirla de nuevo (para no complicarnos la vida) y una vez abierta, comprobaremos que no se haya roto nada con este comando:

type rvm | head -n -1

Nos tiene que devolver que devolver rvm: es una función
(clic para hacer grandota)

Podemos lanzar otros comandos como
ruby -v
rails -v


Y con esto, Ruby on Rails estaría instalado (más pinche fácil que en windows10, SÍ, más fácil que "solo darle siguiente-siguiente-siguiente").


6.- En mi caso, no todo fueron rosas, después de crear el proyecto, me tiraba un error, que después de leer un poco, encontré que era necesario instalar el node.js para hacerlo correr, así que en mi preferencia, antes de todo, ejecuto el comando para instalarlo:

sudo apt-get install nodejs

7.- Nos movemos a la carpeta donde queremos crear el proyecto, y ahora sí, llegó el momento de darle la nalgadita para nacer:

rails new proyectonuevo

El término "proyectonuevo" será el nombre que llevará nuestro proyecto, pueden escribir cualquier cosa ahí. Con esto, se generaría una carpeta con el nombre que indicamos.


8.- Levantaremos el servidor de rails para poder visualizarlo en nuestra máquina:

rails server

Abriremos el navergador, pondremos localhost:3000 y si ven una pantalla como la siguiente ¡Ah perrussss! Todo ha salido a la perfección y podemos estar tranquilos, la instalación ha sido un exito


(clic para hacer grandota)

Nota:
Para finalizar el servidor en la terminal, se debe teclar Ctrl + c


**Este punto, quizá tú ya lo hayas hecho y yo soy demaciado lento, si no, gracias por no dejarme morir solo, vamos a instalar sublime:


sudo add-apt-repository ppa:webupd8team/sublime-text-3

sudo apt-get update

sudo apt-get install sublime-text-installer




Y bien, con esto se instalo Ruby, creamos un proyecto nuevo y no morimos ni matamos a nadie en el intento, ni mucho menos lidiamos con el estrés de maldito windows10 que no me dejaba instalar Rails.

La bienvenida

La idea de este blog, es para hacer mis anotaciones mientras "voy aprendiendo" de Ruby on Rails, y el hecho de usar un blog, en lugar de un archivo de texto, de hacerme un pdf o de escribirlo en un cuadernito a doble raya, es por la mera practicidad y posible ayuda que pueda generar.

Así que esta no es una página especializada donde te enseñaré a ser bien pro en Rails, más bien es un lugar en ciberespacio donde dejo mis apuntes para que yo (o cualquiera) tenga acceso a ellos fácil y rápido, como la carne de gato.

Después de luchar por mucho tiempo frente a Windows 10 para instalar Rails, llegó el punto de desesperación, y antes de casi desistir y crear mi aplicación bajo PHP, se me ocurrió trabajar con Ubuntu, para practicarle a los comandos y verme más sensual, así que todos los apuntes estarán basados en este sistema.

Entonces demos paso a estos pequeños apuntes/recordatorios que iré subiendo, y si te sirven puedes usarlos para guiarte tú también, y si tienes algún aporte al mismo, será bienvenido.



Si Matz es bueno, nosotros también
=)