Instalar R y R Studio en Ubuntu

Para instalar la última versión de R en Ubuntu o Debian basta con ejecutar en un terminal o cónsola, la siguiente instrucción:

sudo aptitude install r-base

La instalación para Linux no lleva una interfaz por defecto, así que sus usuarios tienen que trabajar con R
en la terminal (ejecutando R para iniciar una sesión) o instalar aparte una interfaz.

Para instalar RStudiocomo interfaz gráfica de usuario de R se descarga de

http://www.rstudio.com/products/rstudio/download/

la versión correspondiente al sistema operativo y a la arquitectura en el que se trabaja. Luego hay que
ejecutar en una terminal la siguiente instrucción para instalarlo:

sudo dpkg -i rstudio–i386.deb

Si te da un error de dependencias, se resuelve de la siguiente manera

sudo aptitude -f install

Elige instalar las dependencias y listo.

Captura de pantalla de 2016-10-11 10-46-00

Construye tu propio juego Flappy Bird en Code.org

Flappy Bird es un juego que fue muy famoso por muy sencillo y adictivo. El objetivo es simple, esquivar la mayor cantidad de obstáculos posibles.

flappy-bird-gif

En Code.org han desarrollado con curso o juego educativo, que permite el aprendizaje de las nociones básicas del manejo de eventos dentro de la programación. Muy interesante realmente.

codigo-flappybird

Crea tu propio Flappy Bird en el siguiente enlace >> https://studio.code.org/flappy/1

Puedes hacer que tus amigos prueben tu versión del Flappy Bird, la mía es esta >> https://studio.code.org/c/240297998

CODE: Aprende conceptos de programación jugando

En lightbot.com encontrarás un curso o juego didáctico para familiarizarse con algunos de los conceptos de programación como funciones y ciclos. Aunque el juego está dirigido a niños resulta bastante entretenido para adultos también. De hecho, el reto es completar todos los niveles en una hora.

La idea del juego es guiar al robot a través de un plano y marcar los lugares indicados.

LightBot

Si completas todos los niveles te dan un certificado bonito como el siguiente:

certificado-guzman6001

Enlace: http://lightbot.com/hour-of-code-2015-flash.html

Evitar un potencial NullPointerException en Java en comparaciones de String

A continuación un pequeño tip para evitar un potencial NullPointerException, una de las excepciones más comunes al momento de desarrollar en Java, además una de las más difíciles de rastrear.

Imaginemos que tenemos una clase Llama, tiene una función que devuelve un String llamada saySomething(), ahora supongamos que queremos saber si la llama dice “Ola k ase?”

A manera de ejercicio mental… ¿Cómo desarrollarías la comparación?

El modo más común a primera vista sería:

Llama.saySomething().equals(“Ola k ase?”)

Ejemplo:

if (Llama.saySomething().equals(“Ola k ase?”))
{
System.out.println(“La llama está saludando”);
}
else
{
System.out.println(“La llama no está saludando”);
}

Si la clase Llama es nula o la función saySomething() retorna null, se generará un NullPointerException… Pero con un pequeño cambio podemos evitar dicha excepción, de la siguiente manera:

if (“Ola k ase?”.equals(Llama.saySomething()))
{
System.out.println(“La llama está saludando”);
}
else
{
System.out.println(“La llama no está saludando”);
}

En este caso de prueba sí Llama.saySomething() es null no se generará una excepción sino que simplemente se ejecuta el código en el else.

#MAV-001: Casualidades [cltd y división en IA-32]

001-Casualidad

 

Bueno, esta es la primera tira de MIpS aventuras por la vIA-32 (MAV-32)… Y aunque el chiste sea bastante malo igual voy a explicarlo, probablemente sea instructivo para algún lector.

En principio es importante decir que la división siempre es una de esas operaciones aritméticas que suelen enredar un poco a los principiantes en lenguaje ensamblador IA-32, ya que, la división tiene varios procesos que son tácitos.

A continuación voy a explicarles un poco el proceso de división y el papel que juega la instrucción cltd.

En principio una operación típica de división tendría la siguiente forma:

cltd
idivl Divisor

Estas dos simples instrucciones hacen todo lo siguiente:

La instrucción cltd toma el valor del signo del registro %eax y lo extiende en el registro %edx. En otras palabras, el valor de 32 bits que tiene el %eax y lo convierte en un valor de 64 bits conformado por el %edx y el %eax. De hecho, cltd significa convert long (valor de 32 bits) to double (valor de 64 bits).

Dado que la representación de los registros es complemento a dos, el cltd coloca ceros si el número es positivo o unos (representación del -1 en complemento a dos) si el número es negativo (explicando así el chiste malo).

Advertencia: recuerda que luego del cltd se pierde cualquier valor que el %edx hubiera tenido.

Luego la instrucción idivl concatena %edx con %eax que lo representaremos [%edx:%eax] y lo divide entre lo que pases como divisor, por ejemplo %ebx. El cociente de la división es un valor entero que queda en el registro %eax y el resto o residuo queda en %edx.

Aumentar tamaño máximo de archivo para subir en PHP

tuxterminal_iconUsualmente plataformas como Moodle, Joomla o Drupal trabajan con una tamaño de subida máximo que es fijado por el servidor en el que están instalados.

Si tenemos acceso al servidor y queremos aumentar el tamaño máximo permitido para la subida de archivos se debe ubicar el archivo /etc/php5/php.ini (por lo menos en Debian/Ubuntu) y ajustar las variables:

upload_max_filesize y php_value post_max_size por valores acordes a tus necesidades.

Reiniciar Apache

Y listo =)

Instalar Java Oracle JDK en Ubuntu

Como probablemente sepan hace un par de años que ya no están disponibles las versiones oficiales de Java en los repositorios de Ubuntu. A continuación les dejo un modo bastante sencillo para instalar las versiones oficiales.

Paso 1) Agregar el repositorio

sudo add-apt-repository -y ppa:webupd8team/java

Paso 2) Actualizar la lista de paquetes

sudo apt-get update

Paso 3) Instalar la versión que queremos tener, ejemplo para la 7 sería

sudo apt-get install oracle-java7-installer

Pasos opcional) Establecerla como predeterminada

sudo apt-get install oracle-java7-set-default

Verificar la instalación

java -version

Fuente: http://tipsonubuntu.com/2015/03/21/install-oracle-java-9-in-ubuntu/

Lista de las version que podemos instalar:

  • oracle-java6-installer
  • oracle-java7-installer
  • oracle-java8-installer
  • oracle-java9-installer

Ver lista completa en: https://launchpad.net/~webupd8team/+archive/ubuntu/java

Adicionalmente si quieres cambiar en un futuro por alguna otra versión instalada se ejecuta el comando

sudo update-alternatives –config java

Fuente: http://askubuntu.com/questions/315646/update-java-alternatives-vs-update-alternatives-config-java

Extensión PHP cURL #Debian

Esta extensión es uno de los requisitos obligatorios para instalar sistemas algunos sistemas como Moodle. El principal propósito y uso para cURL es automatizar transferencias de archivos o secuencias de operaciones no supervisadas. Para instalarlo en servidores Debian Like (Ubuntu, Raspbian, etc.) se usa el comando:

apt-get install php5-curl

Un div con height 100% HTML y CSS

Supongamos que tenemos el siguiente escenario:
– Una barra lateral en un div llamado “menu”.
– Un div en el que se muestra el contenido llamado “principal”.
– Un div general que contiene a los dos elementos anteriores, llamado “contenedor”.

height-100

La tarea es que el div “menu” siempre tenga el 100% de alto. Dado que hacer simplemente height:100% no funciona hay que recurrir a otros trucos.

El truco es el siguiente:
Aplicaremos a la columna las propiedades de “margin-buttom” y “padding-bottom”. El margin es un margen exterior que no afecta el tamaño de la caja (aleja los elementos que están fuera del div) y el padding es un margen interior que se suma al tamaño de la caja (separa los elementos internos del borde del div). Teniendo en cuenta que “margin” acepta valores negativos, daremos este estilo a al div menu:

#menu
{
    float: left;
    padding-bottom: 30000px;
    margin-bottom: -30000px;
}

El padding empujará la columna, y el margin las va a volver a cuadrar en su sitio. Para que ésto funcione se necesita además aplicarle al contenedor lo siguiente:

#contenedor
{
    overflow: hidden;
}

De esta manera se ocultará todo lo que sobre. La columna irá creciendo a medida que crezca el contenedor.

fuente:
http://www.npicasso.com/blog/?p=65

SVG Masking – Ejemplo #CSS #HTML #JS

A  continuación un ejemplo bastante interesante de SVG Masking, prueba a pasar el cursor encima de la chica y observa el resultado.

See the Pen SVG Mask (Experiment) by Noel Delgado (@noeldelgado) on CodePen.