09 abril 2014








Chuletas de Bash (II)

Esta es una serie que me sirve de guía para acrodarme de las cuatro cosas básicas de bash. Es caótico y desordenado, pero a mi me va bien. Lo publico por si a alguien le resulta de utilidad.

Si no sigues la serie del principio te recomiendo que lo hagas, es caótica, pero no tanto. A los que seais informáticos puristas tal vez os duela a la vista algo que haga o diga, pero lo que digo siempre, soy industrial... es lo que hay Dicho esto sólo advertir que en este segundo capitulo iré más al grano, si algo no se entiende, ponedlo en comentarios que para eso están y si eso ya hacemos cambios. Bueno al tema.

Vimos como crear variables y expandirlas. Ahora vamos a ver unos cuantos especiales.

$0 nos devuelve el path
$1 nos daria el primer argumento
$2 el segundo, $3 el tercero...
$# nos da el número de argumentos
$@ todos los argumentos


Vamos a hacer un sencillo script, al que llamaremos script02.sh:

#!/bin/bash
echo ""
echo "* Script full command: " $0
echo "* Script first argument: " $1
echo "* Script second argument: " $2
echo "* ..."
echo "* Script number of arguments: " $#
echo "* Script all arguments: " $@
echo ""


Cambiamos los permisos (ver entrada anterior). Y ejecutamos
~$ ./script02.sh escriboCualquierCosa 1237721

Obtenemos:
* Script full command:  ./script02.sh
* Script first argument:  escriboCualquierCosa
* Script second argument:  1237721
* ...
* Script number of arguments:  2
* Script all arguments:  escriboCualquierCosa 1237721


Y esto es todo por hoy.

03 abril 2014








Chuletas de Bash (I)

Si algo no se entiende ya me preguntáis en los comentarios.

Nota cuando escriba un comando en la terminal lo precederé del prompt siguiente ~$, en MSDOS era el famoso C:\> pero evidentemente el promt no forma parte de la orden, no hay que escribirlo.

Todos los scripts de bash empiezan por:
#!/bin/bash
Esto indica donde debe ir a buscar el script el interprete de comandos.

La primera comando que se debe aprender es echo. echo imprime lo que venga detras por la pantalla. es decir si escribimos en la terminal:
~$ echo "ei, ¿cómo va eso?"
Obtendré:
ei, ¿cómo va eso?

Los comentarios en los scripts se ponen con una almohadilla #. Por ejemplo:
# Esto es un comentario

Las variables son como unos contenedores que guardan "cosas". Para expandir la variable (acceder a su contenido) hay que poner el símbolo $ (que no tiene nada que ver con el prompt, casualidades de la vida). por ejemplo:
a=1 --> guarda el valor 1 en la variable a.
b=2 --> ídem con el valor 2 en la variable b.
echo "La variable a vale:" $a --> nos devuelve La variable a vale: 1
c=$a+$b --> No nos devuelve 3 nos devuelve 1+2. Luego veremos por qué.

Vamos a hacer el primer script. Lo vamos a llamar script01.sh:
#!/bin/bash
a=1
echo "a vale" $a

Guardamos. Si ahora ejecutamos el comando:
~$ ls -l 
veremos algo como:
-rw-r--r-- 1 user01 groupA 1 35 Apr 3 11:57 script01.sh
Vamos a fijarnos en la información por partes -rw-r--r-- ,son 10 caracteres, del primero nos vamos a olvidar de momento. los 3 (rw-)siguientes corresponden al usuario y significa que el usuario que ha creado el archivo (user01, en nuestro caso) tiene ciertos permisos el primero es la r de read (lectura), el segundo es w de write escritura, el tercero es un guión que significa que no tiene permiso para ejecutarlo. Los tres siguientes digitos corresponden al grupo que solo tiene permiso de lectura y los tres últimos son para todo el resto de usuarios.

Como nosotros queremos ejecutar el scrip debemos añadir el permiso de ejecución. Lo haremos mediante el comando chmod (que deberemos ejecutar con permisos de administrador, así que ira precedido por sudo), con el mode u+x esto quiere decir algo como "usuario añadimos ejecucion" :
~$ sudo chmod u+x script01.sh

Si ahora ejecutamos el comando:
~$ ls -l 
veremos algo como:
-rwxr--r-- 1 user01 groupA 1 35 Apr 3 11:57 script01.sh

Ahora ya podemos ejecutar el script:
~$ ./script.sh

Obtendremos:
a vale: 1

Vaya, me ha quedado una entrada algo más larga de lo que quería la próxima será mas condensada.  y presupondrá ciertos conocimientos, si alguien no sabe alguna cosa ya dejará algún comentario.









Chuletas de bash (Introducción)

Siguiendo el nuevo estilo algo caótico de este blog. Me propongo ir haciendo minientradas o no tan mini de apuntes rápidos de bash.

Para quien no lo sepa Bash es un interprete de comandos, http://es.wikipedia.org/wiki/Bash. Y si dicho así puede parecer poca cosa, sin embargo la cantidad de cosas que nos permite hacer (algunas con la ayuda de programas para la terminal), es increíble.

La idea de estas chuletas es para la programación de scripts en bash. Y antes de nada he de decir que no soy informático. Sólo ingeniero industrial, por lo tanto si digo algo que no sea exacto, puro o lo que sea y alguien siente que su calma interior se destruye, que respire profundamente y cambie de blog. Avisados quedáis.








Conectar un dominio a un hosting

Supongamos que tenemos un dominio que acabamos de comprar en GoDaddy www.godaddy.com (por ejem y queremos unirlo con nuestro hosting por ejemplo www.hostinger.es.
Para hacerlo:
  • debemos ir a hostinguer y decirle que queremos un nuevo hosting, pero que en vez de un subdominio suyo, tenemos el nuestro propio.




    • Después vamos a Godaddy a dominios, todos los dominios, elegimos el que toque. Y una vez dentro le damos a administrar en el apartado de Servidores de Nombres (DNS, por su nombre en ingles).


    • Cambiamos los DNS por los que nos proporcione el hosting. En el caso de hostinguer se encuentran en cuenta --> detalles, y son: ns1.hostinger.es y ns2.hostinguer.es.
    • En 24 horas máximo ya tendremos el cambio realizado. A mi me ha tardado menos de una hora, pero ya se sabe...

    01 abril 2014








    Copiar y pegar en nano (editor de textos para Linux)

    Una para newbies. Si usáis el editor de textos nano en linux, veréis que hacer copy-paste no es tan evidente como por ejemplo cortar y pegar. De todas formas vamos a repasar las tres.

    • Cortar se hace con Ctrl+K
    • Copiar Alt+6
    • Pegar Ctrl+U


    La ayuda es Ctrl+G, donde están todas las combinaciones de acceso rápido.

    31 marzo 2014








    Acceder a un Linux desde internet

    Ya vimos como conectar remotamente a una máquina en Raspberry Pi Instalación de NOOBS y primeros pasos. Sin embargo esto era sólo para equipos en la misma red local. Si queremos acceder desde qualquier sitio de internet primero hay que hacer dos cosas.

    • El primero desactivar el DHCP de nuestro router para que siempre la Raspberry (en este caso, pero vale para cualquier equipo) tenga siempre la misma IP. Depende de cada router por ejemplo para el mio sería así.
    • Este paso no hace falta hacerlo siempre ya que muchas veces la raspberry nos quedará ya configurada pero por si no fuese así aquí tenéis un enlace donde se explica
    • Acto seguido hay que abrir el puerto 22 para esta IP tambien en el router. Es fácil, fácil, facil.
    • Finalmente para acceder desde internet, necesitaremos nuestra IP pública, para conocerla simplemente en un navegador navegamos hasta icanhazip.com. Esta web simplemente devuelve nuestra ip pública. El problema suele ser que nuestro ISP (telefonica, vodafone, etc...), normalmente no nos da una IP estática, eso quiere decir que nos cambia constantemente nuestra IP segun va teniendo IPs disponibles. En este caso, o bien nos registramos en un servicio que nos vaya dando nuestra ip publica constantemente o bien programar un pequeño script. Yo voy a optar por la segunda opción ya que tengo un hosting web (podéis obtener uno en hostinger.com, por ejemplo) al cual podre subir mi ip pública cada cierto tiempo.
    #!/bin/bash
    # Este archivo lo llamamos ipp.sh
    a=$(curl -s icanhazip.com)
    sleep 30
    echo $(date) "ipp" $a >> ipp.txt
    lftp -u user,pass ftp.website.com <<EOF
    cd /public_html/raspi/
    lcd /home/pi/
    put ipp.txt
    quit 0
    EOF

    Nota: Hay que instalar lftp para usar este script.

    Una vez hecho el script, añadimos permiso de ejecución
    chmod u+x ipp.sh
    y lo programamos en nuestro cron, recordemos que para hacerlo debemos editar el archivo crontab, para hacerlo simplemente escribimos:
    crontab -e
    se nos abrirá el archivo con nuestro editor de textos predeterminado al final del archivo añadimos la frecuencia de ejecucion con el formato 
    m h dom mon dow command


    cron se ejecuta cada minuto, si pusiesemos 
    * * * * * /home/pi/ipp.sh
    se ejecutaría todos los minutos de todas las horas de todos los dias (el símbolo * equivale a todos). Para más información podéis visitar esta página de Linux Total


    En nuestro caso bastará con
    0 * * * * /home/pi/ipp.sh

    Guardamos y listo.

    Ahora ya podremos acceder a la raspberry con putty como haciamos en local pero desde cualquier parte, solo hay que sustituir la IP local por la publica.

    27 marzo 2014








    Tanque de gas oxidado

    La situación es la siguiente. Un tanque de gas privado en la azotea si es un grupo de viviendas o uno más pequeño de 2.500 litros por ejemplo en el jardín si es un particular, algo oxidado, sobretodo por la parte abombada del tanque.

    Y un buen día aparece olor a gas, que hace que nos pongamos nerviosos. Normalmente el fallo no es en la parte oxidada, los tanques tienen un grosor considerable, tanto que muchos tanques "nuevos" son en realidad viejos a los que se les ha quitado el óxido superficial, pintado, retimbrado (es decir se les ha sometido a una prueba de resistencia) y seguramente a una radiografía de las soldadura. La fuga suele venir de alguna junta de la valvulería. Una manera rápida de comprobarlo es coger un pulverizador (como el de los limpiacristales), y llenarlo de agua y jabón para la vajilla, en una proporción 1:5 (depende del tipo de jabón por supuesto) y un día poco ventoso pulverizar en la valvulería. Si se forman burbujas ahí está la fuga.

    25 marzo 2014








    ¿Por qué salta mi Interruptor Diferencial? (I)


    Un interruptor diferencial (como el de la siguiente imagen), puede saltar por varios motivos. Por fallo mecánico del elemento o por fallo de la instalación. En cualquier caso es una anomalía. Veremos cómo intentar acotar las posibles causas, y dentro de las que estén en nuestra mano, solucionarlas (veremos que en algunas es recomendable la ayuda de un profesional).


    Primero, descartaremos un fallo mecánico del dispositivo. Para hacerlo, lo mejor es bajar todos los térmicos que dependen de este diferencial e intentar rearmarlo. Si no tenemos éxito, probablemente es un fallo mecánico del dispositivo.

    Si tenemos éxito la causa se debe a un desequilibrio entre la corriente que pasa por la fase y la que pasa por el neutro. Estas corrientes deben tener la misma intensidad siempre ya que de lo contrario significa que hay algunos electrones que entraron y no salieron (entre otras, pero no nos vamos a poner puristas de momento).

    En este caso, vamos a ver que circuito es el que nos provoca el fallo. Para hacerlo bajamos la mitad de los térmicos, y la otra mitad los dejamos subidos. Si podemos rearmar el circuito que da problemas es uno de los que hemos dejado bajados. Evidentemente si no podemos rearmar, el circuito que da problemas pertenece a la mitad que hemos dejado subidos.

    Una vez sabemos en que subgrupo está el problema repetimos la operación dejando levantados la mitad de este subgrupo y bajados la otra mitad. Así hasta que sólo nos quede un circuito que al dejarlo subido nos impida rearmar y que si lo tenemos bajado y todos los demás subidos rearma sin problema.

    Ya hemos detectado el circuito, ahora hay que concretar. Para empezar debemos ver si lo que provoca la derivación es un receptor o la instalación misma de ese circuito que se ha degradado. Para hacerlo desconectamos todos los receptores de este circuito, lo cual no siempre es fácil. Por ejemplo si ese circuito son "enchufes Cocina" vamos a la cocina y desenchufamos la nevera, el microondas etc. y intentamos rearmar, si lo conseguimos vamos enchufando los receptores uno a uno hasta que salta el diferencial. El receptor que haya hecho saltar el diferencial es el que deriva. Hay que repararlo, adquirir uno nuevo, o prescindir de ese receptor.

    Por contra, si no conseguimos rearmar habiendo desconectado todos los receptores (incluida la iluminación), se debe probablemente a un fallo en la instalación, que pueden ser cables pelados, tomas dañadas, etc.

    Otra posibilidad es si el diferencial salta sólo a ciertas horas del día, muy probablemente se deba a humedades en algún punto. Para encontrar el problema hay que repetir el proceso lo que evidentemente, es mucho más lento bajamos la mitad esperamos un día a ver si salta... Los instaladores autorizados (los que tienen carnet). Deben tener por ley un medidor de aislamiento y pueden encontrar el problema bastante rápido.

    Una vez detectado el circuito que tiene el problema de humedades, repetimos. Desconectamos todos los receptores y vemos si al cabo de un día salta. Si es así, el problema es la instalación si no, es uno de los receptores. Si el problema esta en la instalación normalmente se debe a que algo de polvo se ha acumulado en algun sitio, por la madrugada el agua del aire condensa (rocío) y humedece ese polvo que ahora es conductor, así se produce una pequeña derivación entre fase y tierra que es lo que hace saltar el diferencial. La solución pasa por limpiar la parte de la instalación (una toma, un aplique...) que da el problema. Ahora bien detectar cual es, es trabajoso sin medidor, así que en este punto habría que llamar a un profesional).

    Otro caso es cuando se da cuando llueve. Aquí si que es importante acordar con un instalador que se pase un día que llueva o colocar un monitor, si no se puede demorar meses. Si lo quiere hacer uno mismo, el método es análogo al anterior.

    El último caso que expondremos es aquel que salta cuando hay muchos dispositivos electrónicos conectados a la vez, si por ejemplo se desenchufan la mitad de ordenadores y este problema no se da, la causa es la pequeña derivación que provocan algunos filtros electrónicos, al sumarse todos ellos pueden hacer saltar el diferencial. La sólución pasa por dividir el circuito en dos (o los que hagan falta) y hacer pasar cada nuevo circuito por un diferencial diferente.

    Espero os sea útil.








    Abrir pdf interno desde una App propia

    Una de las maneras más sencillas de anexar documentación a una app de manera que no tengamos que volver a formatearla, sobretodo si es de consulta puntual es hacerlo mediante un pdf.

    Es decir, hacemos click en un botón tipo "leer licencia" y se nos abre el pdf con la licencia.

    La solución viene por supuesto de la mano de un Content Provider, o de una de sus subclases, en concreto FileProvider, aunque tambien podemos crear nuestro propio Content provider.

    Como siempre alguien ya ha hecho este trabajo por nosotros y comparto el link.

    20 marzo 2014








    Agregando publicidad en Apps Android

    Hemos decidido monetizar algunas aplicaciones que tenemos en Google Play, para hacerlo básicamente hemos seguido las instrucciones de Cómo Empezar.

    El único problema que hemos tenido ha sido al actualizar el SDK para tener la última versión disponible. Acualizar el SDK en si no supone ningún problema, pero después de hacerlo hay que actualizar el ADT, el problema es que al hacerlo mediante Help > Check for updates en Eclipse, dice que no hay actualizaciones. Si no hacemos nada más, al intentar importar un proyecto o librería (como nos pasaría posteriormente al intentar agregar la libreria de Google Play Services). Al llegar al último paso y darle al botón de finalizar. Eclipse no hace nada, y hacemos click una y otra vez y nada.

    La solución vino como siempre de StackOverflow, simplemente hay que ir a Help > install new software y añadir esta url:  https://dl-ssl.google.com/android/eclipse/

    A parte de este problema todo ha ido como la seda. El resumen es como sigue:
    1.- Actualizamos el SDK. En Eclipse Window > SDK Manager elegimos la última API disponible (en el momento de escribir esto API19).
    2.- Actualizamos el ADT. Como hemos visto Help > Check for updates, no nos ha funcionado, sin embargo Help > install new software, hemos añadido la url y probablemente la próxima vez no haya problema.

    3.- Configurar el google play services SDK tal como se explica en en la web de developers.
       3.1.- Window > SDK Manager en extras encontramos google play services.
       3.2.- importamos el contenido de lo que acabamos de instalar al workspace de eclipse: File > Importar... navegamos al directorio importar (marcamos la casilla de copiar).
      3.3 si queremos un AVD para poder comprobarlo tendriamos que instalar Google APIs para API17 o superior (como eso ya lo teníamos hecho, en el paso 1, pues nada).


    4.- En nuestra aplicación configuramos el target en project.properties para android-13
    5.- Ponemos en el AndroidManifest.xml el atributo android:minSdkVersion a 10 (API10 que equivale a android 2.3.3).
      android:minSdkVersion="10"
      android:targetSdkVersion="19" />
    6.- Añadimos el proyecto de biblioteca de servicios de Google Play y hacemos referencia a él.
       6.1.- Hacemos clic con el botón derecho en el proyecto de la aplicación en Eclipse y seleccionamos Properties (Propiedades).
       6.2.- Seleccionamos Android y, a continuación, hacemos clic en Add... (Añadir). Buscamos el proyecto google-play-services_lib y seleccionamos OK (Aceptar) para añadir la biblioteca de servicios de Google Play.
       6.3.- El proyecto ahora hace referencia a la biblioteca de servicios de Google Play

    7.- Añadimos una etiqueta meta-data en Android manifest.xml  
    <?xml version="1.0" encoding="utf-8"?>
    <manifest   xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.company"
    android:versionCode="1" android:versionName="1.0">
    <application android:icon="@drawable/icon
    android:label="@string/app_name"
    android:debuggable="true">
    <meta-data android:name="com.google.android.gms.version"
    android:value="@integer/google_play_services_version"/>
    <activity   android:label="@string/app_name" android:name="BannerExample">
    <intent-filter>
    <action android:name="android.intent.action.MAIN"/>
    <category android:name="android.intent.category.LAUNCHER"/>
    </intent-filter>
    </activity>
    </application>
    </manifest>

    8.- Declaramos com.google.android.gms.ads.AdActivity en Android manifest.xml
    lt;?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.company"
    android:versionCode="1" android:versionName="1.0">
    <application android:icon="@drawable/icon" android:label="@string/app_name"
    android:debuggable="true">
    <meta-data android:name="com.google.android.gms.version"
    android:value="@integer/google_play_services_version"/>
    <activity android:label="@string/app_name" android:name="BannerExample">
    <intent-filter>
    <action android:name="android.intent.action.MAIN"/>
    <category android:name="android.intent.category.LAUNCHER"/>
    </intent-filter>
    </activity>
    <activity android:name="com.google.android.gms.ads.AdActivity"
    android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"/>
    </application>
    </manifest>

    9.- Configuramos los permisos de red en Android manifest.xml
    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.company"
    android:versionCode="1" android:versionName="1.0">
    <application android:icon="@drawable/icon" android:label="@string/app_name"
    android:debuggable="true">
    <meta-data android:name="com.google.android.gms.version"
    android:value="@integer/google_play_services_version"/>
    <activity android:label="@string/app_name" android:name="BannerExample">
    <intent-filter>
    <action android:name="android.intent.action.MAIN"/>
    <category android:name="android.intent.category.LAUNCHER"/>
    </intent-filter>
    </activity>
    <activity android:name="com.google.android.gms.ads.AdActivity"
    android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"/>
    </application>
    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
    </manifest>

    10.- Como nuestra publicidad es tipo banner seguimos las instrucciones de Banners I. Nosotros hemos optado por añadirlo en el XML.
    10.1.- Añadimos el View "Adview"
    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:ads="http://schemas.android.com/apk/res-auto"
    android:id="@+id/LinearLayout1"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"> 
    <com.google.android.gms.ads.AdView
    android:id="@+id/adView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    ads:adSize="BANNER"
    ads:adUnitId="ca-app-pub-xxxxxxxxxxxxxxxxxxx" />
    .
    .
    .
    <LinearLayout>


    10.2.- Modificamos la activity para buscar y cargar anuncios.

    .
    .
    .
    import com.google.android.gms.ads.*;
    .
    .
    .
    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    // Buscar AdView como recurso y cargar una solicitud.
    AdView adView = (AdView)findViewById(R.id.adView1);
    AdRequest adRequest = new AdRequest.Builder().build();
    adView.loadAd(adRequest);
    .
    .
    .
    }


    11.- Deberíamos poder compilar.

    12.- Hay que acordarse que si la aplicación ya estaba publicada 8como en nuestro caso). Hay que verisonarla es decir en el android manifest hay que añadir:
    android:versionCode="2"
    android:versionName="1.1" >


    Y hasta aquí por hoy.

    19 marzo 2014








    Raspberry Pi Instalación de NOOBS y primeros pasos.

    Hoy he instalado con éxito (y muy fácilmente) varios sistemas operativos para la raspberry pi gracias a NOOBs v1.3.

    Básicamente he seguido los pasos de la web "Aquí hay apuntes" y más concretamente los videos de biblioman09

    Recomiendo, ver los tres vídeos seguidos tomando apuntes y luego aplicar lo aprendido para instalar noobs en la raspberry pi. Pero ahí cada cual que haga lo que quiera.

    Por si sirven a alguien, los apuntes rápidos que he tomado son los siguientes:
    • Descargar NOOBS desde la página oficial de Raspberry, en la sección de descargas.
    • Usar Gparted (en linux), para formatear la SD a fat 32.
    • Copiar los archivos descomprimidos en la raiz de la SD
    • Metemos la SD en la RaspberryPi. Que debe tener conectado un cable hdmi hacia un monitor, un teclado y un mouse, y si es posible conexión ethernet.
    • Seleccionamos los Sistemas Operativos que queramos instalar (los llamaremos OS, por Operating Systems, a partir de ahora). Y le damos a instalar.
    • Una vez acabada la instalación, reiniciamos (si no lo ha hecho el sistema de por si), y seleccionamos el sistema operativo que queramos iniciar. En mi caso Raspbian.
    • Nos aparece Raspberry Pi Software Configuration Tool, le doy a finish porque las opciones me van bien así como están.
    • Si queremos iniciar el servidor gráfico ejecutamos el comando startx.
    • reboot para reiniciar.
    • Ejecuto reebot, reinicia y deja elegir sistema operativo, pero si no elijo ninguno se ejecutará el mismo que la última vez al cabo de 10 segundos. Esto es especialmente útil si a a partir de ahora nos conectaremos de manera remota.
    A partir de aquí ya entramos en la conexión remota para la linea de comandos.
    • ejecuto ifconfig (en la Raspberry) para saber la dirección ip de mi dispositivo. Configuro que la IP de la Raspberry sea siempre la misma.
    • Nos bajamos putty al PC desde su página de descargas para acceder por conexion ssh a la raspberry. 
    • Abrimos putty escribimos la dirección IP de la raspberry (que obtuvimos antes). El puerto es el 22. Si siempre tenenmos la misma IP podemos guardar esta configuración con el nombre RaspPi por ejemplo.
    • le damos a conectar.
    • El usuario por defecto: pi y el password: raspberry
    • Si queremos cambiar el password tecleamos sudo passwd
    A partir de aquí la conexión remota a una interfaz gráfica:
    • Nos bajamos al PC VNC viewer.
    • Abrimos putty para conectar remotamente. Conectamos como en el aparatado anterior.
    • Una vez en la raspberry tecleamos la orden sudo apt-get update y posteriormente sudo apt-get upgrade para actualizarnos.
    • Tecleamos sudo apt-get install tightvncserver
    • Finalmente para que se ejecute el servidor VNC que acabamos de instalar tecleamos sudo tightvncserver -geometry 1920x1080 -depth 24 :1
    • Ahora abrimos el VNC viewer desde nuestro PC y introducimos la IP de nuestro dispositivo, y el puerto 5901. Si en el punto anterior hubiésemos tecleado tightvncserver -geometry 1920x1080 -depth 24 :2 (la diferencia es el 2 final), el puerto seria 5902.








    Volvemos

    Después de bastante sin publicar nada por aquí volvemos a las andadas. Sin embargo, seguimos con escasez de tiempo, así que las entradas serán breves y prácticamente para que me sirvan de recordatorio a mi mismo.

    No se de que estilo serán las entradas ni la frecuencia que tendrán intentaré que sea al menos una semanal. En cuanto al estilo, es muy probable que sea caótico y que si hay tiempo y ganas haga alguna entrada o indice que las vaya ordenando por series, pero esto ya es especulación.

    10 abril 2011








    Los mejores blogs

    Logo del lecctor de feeds de Google Google reader
    ¿Qué haríamos sin blogs? francamente, cuantas veces hay 5 o 10 minutos de espera hasta que llega tu turno, o la media hora que hay entre las 18:30 cuando llegas a casa del trabajo y las 19:00 que sales de ella para tomarte unas tapas con los compañeros de fatigas o los amigos.

    Leer el periódico está bien pero al final no deja de ser si no una colección de panfletos publicitarios más o menos velados de tal o cual partido. Una lectura rápida de titulares y si acaso subtitulares.

    Pero hay algunos blogs de una calidad increíble. Con bloggers que escriben de lo que saben, y además con una expresión familiar, cercana y agradable; o seria y rigurosa según el caso.

    Y aunque sería fácil perderse en este universo de blogs, ya sea mediante twitter o google reader o incluso facebook es fácil compartir y recomendar los posts que más nos gustan. En 1031tensai tenemos nuestra lista de posts seleccionados. Y esta mezcla de blogs es en mi opinión bastante recomendable si os gustan los temas aquí tratados. Si seguís 1031tensai o estáis suscrito a el os recomendaría que os suscribieseis también a la la lista de elementos compartidos (feed). Si no os gusta os invito a un café.

    21 marzo 2011








    Al calor de una estufa (II) - Como afectan los otros usuarios (y nosotros mismos) a la red eléctrica.

    Warming by propane heaterMumblesbajo una licencia Creative Commons
    Supongo que os suena la expresión "vivimos en un mundo globalizado" al menos yo estoy harto de oírla. Pero en el caso de la red eléctrica esto es estrictamente cierto, dolorosamente en ocasiones, como quedo patente el noviembre de 2006 cuando 15 millones de europeos se quedaron sin suministro eléctrico debido al seccionamiento de un solo cable submarino destinado a alimentar a una pequeña fracción de esos 15.000.000 de afectados, el efecto en cadena del fallo hizo el resto, así que vamos a decirlo una vez más: "vivimos en un mundo globalizado".

    La verdad es que el encendido de una sola bombilla altera toda la red y tiene consecuencias hasta en el punto más alejado de todo aquello que esté interconectado. Bueno, hay medidas, veremos alguna en esta entrada y además las perturbaciones pequeñas muchas veces se anulan entre y apenas afectan.

    Como es natural no vamos a explicar el temario completo de redes eléctricas, lo digo porque si alguno de vosotros trabaja o estudia en este sector esta entrada le parecerá como la adaptación de un libro al cine "se ha dejado cosas". Por supuesto que sí. De cualquier manera espero que os resulte lo suficientemente interesante como para seguir leyendo. Decir también que veréis que hay varios cálculos, destinados principalmente a quienes quieran entretenerse un poco más en el asunto, pero se pueden saltar sin problema. De cualquier manera son poco engorrosos alguna multiplicación y división.

    Imaginemos una fuente de energía eléctrica como podría ser una pila enorme o un generador enorme, lo que queráis, eso si debe dar exactamente una tensión concreta (200V de tensión por ejemplo) y la intensidad que haga falta (para no decir infinito diremos que 1.000.000 de amperios). En estos momentos hay un solo usuario que se encuentra a 100m de ese generador con un cable de una resistencia de 0,05ohm/metro. Es decir 5 ohmios hasta su casa

    Este usuario que vamos a llamar Alfredo cuando conecte una estufa de 2000W o lo que es lo mismo 20 ohmios.
    R=\frac{V^2}{P}=\frac{200V^2}{2000W}=20\Omega
    no estará haciendo un circuito en el que hay un generador y una resistencia (la estufa) de 20 ohmios. Estará haciendo un circuito de 20+5=25ohmios, ya que hay que añadir la resistencia de la red eléctrica.

    Este es un punto importante. Al ser la resistencia total del circuito mayor, a la electricidad le "cuesta" más pasar. En consecuencia disminuye el número de electrones que consiguen circular. Es decir la intensidad disminuye.

    Si la red no tuviese resistencia pasarían 10A
    \frac{V}{R}=\frac{200V}{20\Omega}=10A
    Pero en este caso pasan sólo 8A
    \frac{200V}{25\Omega}=8A

    Además al llegar a la casa de Alfredo esos electrones están más "cansados" ya no tienen 200V, ha habido una caída de tensión, unos 40 V menos
    V=I\times R=8A\times 5\Omega=40V
    así que en realidad a los electrones les quedan 160V para gastar.

    En definitiva la estufa en vez de darnos los 2000W prometidos nos da 1280W
    P=R\times I^2=20\Omega 8A^2=1280W

    Pero sigamos un poco más. Pensemos en que pasaría si Alfredo tuviese una vecina (Bárbara) la cual encendiese una estufa exactamente igual que la suya. En este caso se crea un circuito con la resistencia de línea en serie con las resistencias de Alfredo y Bárbara en paralelo. Como se puede ver en el dibujo de más abajo. Las dos resistencias en vertical son Alfredo y Bárbara, la horizontal es la línea.



    ¿Qué sucederá en este caso? Al añadir una resistencia en paralelo la resistencia total disminuye
    \\R_{TOTAL}=\frac{R_{Alf}\times R_{Bar}}{R_{Alf} + R_{Bar}}+R_{Linea}=
    \\ =\frac{20\Omega \times 20\Omega}{20\Omega + 20\Omega}+5\Omega=\frac{400}{40}+5=15\Omega
    así que pasaran más electrones por el circuito que si estuviese Alfredo sólo, que serían unos 13,3A
    I=\frac{V}{R}=\frac{200V}{15\Omega}=13,3A
    pero luego habrá que repartirlos entre dos (6,66A para cada uno).

    Por otra parte estos electrones llegaran mucho más "cansados" a casa de Alfredo y a casa de Bárbara ya que la resistencia de la línea es la misma (es como si la tubería fuese igual de gorda) pero tienen que pasar más por ella (una caída de tensión de 66,6V)
    V=R \times I =5\Omega \times 13,3=66,6V
    es decir al llegar a sus casas tendrán en sus enchufes (200-66,6). Y cada estufa dará sólo 888W de los 2000W prometidos
    P=R \times I^2=20 \times 6,66^2=888W
    Simplemente porque el vecino ha encendido su estufa. Y a más vecinos más se nota el efecto.

    Seguramente ahora te estés preguntando como es posible que no vivamos en un caos total en el que tuviésemos que ponernos de acuerdo con los vecinos cada vez que quisiéramos hacer uso de la electricidad.

    En realidad, la resistencia de las líneas de distribución eléctrica están dimensionadas para que la tensión caiga como máximo un 5%. Antes de dar de alta a un nuevo abonado los ingenieros de la compañía eléctrica calculan si la línea bastará para que con esa nueva demanda no exceda las posibilidades del cable, en caso contrario, lo sustituirán por uno más gordo.

    A pie de transformador la tensión nominal en España es de 230V, por lo tanto en el punto más desfavorable de la línea si todo está como toca, debe haber 218,5V
    230 - 230 \times 0,05=218,5V


    Y por lo tanto, en el peor de los casos una estufa de 2000W nos dará en realidad 1805W.

    PD: ¿qué pasaría si al conectarse el nuevo abonado la línea ya es todo lo gorda que puede ser? La respuesta es que hay que construir un nuevo transformador, pero eso ya es otra historia...

    19 noviembre 2010








    Al calor de una estufa - ¿Se pierde más energía con un buen conductor eléctrico? (I)

    Hemos pasado ya el ecuador del otoño y el invierno se acerca. Esta estación se caracteriza principalmente por la menor incidencia de radiación solar. Los rayos llegan más oblicuos y además tenemos menos horas de sol. En definitiva bajan las temperaturas. Los humanos ya desde nuestras primeras edades, hemos combatido el frío con diversos métodos que nos hacen únicos y que supusieron la supervivencia de nuestra especie en la última glaciación. Pieles que robamos a nuestras presas, la impresionante evolución que supuso el fuego, el cual se encargó de mantenernos calientes casi exclusivamente hasta hace relativamente poco.

    Si amigos, el fuego hace tan bien su trabajo que incluso hoy un gran porcentaje de sistemas de calefacción lo utilizan. Pero a parte del fuego, si lo pensamos, somos capaces de convertir la energía del viento que sopla en una cordillera a kilómetros de nosotros en calor, simplemente enchufando una estufa. Me pregunto que cara pondrían nuestros tataratatara... abuelos, ¿calor a partir de viento? esto es magia y magia de la buena porque esta puede darme calor en invierno (lo cual seamos sinceros es más útil que hacer aparecer un conejo de una chistera).

    La estufa eléctrica más sencilla es por supuesto una resistencia eléctrica conectada a la red. Pero aunque la red siempre es de 220V, nosotros podemos calentar más o menos. Si la tensión es siempre la misma, parece evidente que tiene que ser cambiando la resistencia. Pero ¿que tendríamos que hacer para calentar más? ¿aumentar o disminuir esa resistencia? Si fuésemos norte-americanos (empiristas hasta la muerte) simplemente probaríamos dos resistencias y elegiríamos la que diese más calor. Pero somos europeos y tenemos comprobado que usar lápiz y papel sale más barato.

    Bueno, después de estas dos frases de crítica gratuita (pero de buen rollo) hacia los EUA, vamos al tajo. Eso sí avisar que hay dos formulitas de nada, muy sencillas, ¿no te asustarás por esto, verdad?.

    El calor que desprende una estufa se calcula según la fórmula del efecto Joule:
    P=R \times I^2

    Es decir la potencia es igual a la resistencia por la intensidad al cuadrado. Si por ejemplo yo tengo una resistencia de 10 ohmios y una intensidad de 10 amperios tengo una potencia de
    10 \times 10^2=10 \times 100 = 1000

    1000 Watios es decir 1kW

    Uno podría pensar que si duplico la resistencia a 20 ohmios tendré el doble de potencia, ya que:
    20 \times 10^2=20 \times 100 = 2000

    Pero no es así. ¿Donde esta la trampa?. La tensión de la red (el voltaje) es constante, siempre son 220V pero la intensidad depende de la resistencia según esta fórmula:
    I=\frac{V}{R}

    Si sustituyésemos el valor de I en la primera ecuación tenemos que
    P=R\times I^2=R\times \left ( \frac{V}{R} \right )^2=
    =R\times \frac{V^2}{R^2}=\not{R}\times \frac{V^2}{R^{\not{2}}}=\frac{V^2}{R}

    Una mayor resistencia debería aumentar la potencia pero también hace que disminuya la intensidad que circula por ella. Además al estar la intensidad al cuadrado el aumento de potencia debido a una mayor resistencia se diluye debido a que el aporte de la intensidad disminuye mucho más.

    Dicho de otro modo cuanta mayor es la resistencia más energía pierde cada uno de los electrones, energía que se transforma en calor, pero como les cuesta más pasar pasan menos. Te sale más a cuenta tener muchos electrones que cedan un poco de energía que tener muy pocos cediendo mucha energía. En realidad en este caso (como muy bien comenta Javier) al considerar constante la diferencia de potencial todos los electrones "pierden" la misma energía, así que cuantos más pasen mejor.

    La conclusión es que cuanto más gordo sea el conductor y menor resistencia tenga más energía se pierde y por lo tanto más calor nos da.

    Puede que esto te parezca antiintuitivo, ya que los cables de las redes de distribución tienden a ser gordos para mejorar su conductividad. Pero esto ya lo explicaremos en la próxima entrada.