domingo, 21 de julio de 2013

NUEVO NEXUS 7



Después de tantas filtraciones de nuevos dispositivos próximos a estrenarse, creo que ya algunos de nosotros están generando un pequeño ahorro para apartar uno de estos gadgets.
Pero para que sepan cual elegir, les tengo algunas características que deben considerar de estos.

Características nuevo NEXUS 7 – DATOS NO CONFIRMADOS.

-Seguirá con el mismo tamaño de 7 pulgadas
-Cámara delantera de 5 Mp
-Cámara frontal de 1,2 Mp
-Android 4.3 Jelly Bean
-Salida de video a 1080p a través de microUSB
-Un posible Qualcomm Snapdragon S4 Pro  
  - CPU Krait: Hasta 1,7 GHz Dual o Quad 
  - Graficos:   Adreno 320
-Memoria RAM de 2 GB ó 4GB
-Resolución 1920 x 1200
-Led de notificaciones
-Modelos disponibles de 16 GB y 32 GB


Saldrá a la venta el 31 de julio con precios de 229 dólares/euros para los 16GB y 269 dólares/euros para 32GB.

Y les dejo un pequeño video, para que vean el potencial que podría tener el nuevo nexus 7 con un procesador S4 pro:


lunes, 15 de julio de 2013

Los Mundos de Coraline.

 

Película producida y dirigida por Henry Selick basada en la novela de Neil Gaiman. Es la historia de Coraline Jones quien comienza su pubertad y se muda a una nueva casa compartida llamada Palacio rosa, donde encuentra una pequeña puerta que conduce a una realidad alterna, habitada por versiones de los inquilinos con la peculiaridad de tener botones en lugar de ojos pero mucho más atentos y complacientes con ella a modo que lo disfruta hasta que su "otra madre" le propone quedarse para siempre.



En la presente entrada y posteriores se pretende brindar un corto análisis del contenido, y acá pueden checar la ficha técnica http://www.filmaffinity.com/es/film629275.html Se puede apreciar una gran calidad siendo la primer película en el trabajo de animación stop-motion rodada en 3-D y HD.

En la historia se puede notar un complejo preedipico, siendo la relación objetal con la madre muy concreta; Coraline posee un sentido de la realidad distorsionado después de todo sus deseos están expresados oníricamente, ya que las visitas son por la noche o cuando no hay nadie más que ella, por tal motivo expresa lo que desea, inventa una historia donde obtiene lo prohibido y lo cual es gozoso para todos en un principio.

Coraline se muda una casa dividida en departamentos gris y aburrida así expresado en la película, los padres se encuentran ocupados y poco disponibles para escucharla, pero es a su madre a quien le reprocha y espera que la escuche, que la deje salir, que le cocine, que le dé lo que le pida y es desde esta falta estructural existente en la relación madre-hija, que Coraline descubre esté mundo secreto detrás de la puerta con llave en un mundo ideal pero que encierra una trampa que torna de lo conocido por ella, de lo que le es familiar a lo siniestro, que es lo opuesto a lo propio de la casa, familiar, intimo, no extraño, dócil, confidencial, lo que recuerda el hogar, que también remite  su opuesto la parte siniestra que estando destinada a permanecer oculta, secreta, ha salido a la luz; es decir lo ha hecho consciente.

Dentro de la película se muestra un mundo detrás de la puerta secreta, lo inconsciente de forma oculta que muestra lo terrible de la madre, un aspecto narcisista que la hace lucir como bruja que muestra como el deseo del otro puede tornarse siniestro. Freud sitúa como primer motivo de sentimiento ominoso el miedo a ser despojado de los ojos, esté miedo es una angustia infantil que a menudo persiste en algunos adultos, tan comunes en lo cotidiano y que confirman también que esté miedo no es más que un sustituto de la angustia de castración. En este punto, nos pone como ejemplo a Edipo con su particular forma de castración al enterarse de la verdad se arranca los ojos.

En la película se muestra la falta de limites entre realidad y fantasía que nos lleva de nuevo a su mundo infantil. Instala algo del primer despertar sexual, donde el sujeto despertó de "un sueño: ser el falo que completa al Otro". Coraline de lo familiar ingresa a lo siniestro para transformar su mirada, no es botones como objeto de goce del Otro, sino para poder mirar con nuevos ojos: los propios.

Esto es solo un breve análisis desde una perspectiva psicológica y solo se puntualizan algunas características, ya que existe una gran cantidad de simbolismo en el filme, de hecho existe la comparación con Alicia de Lewis Carroll, por la creación de una realidad alterna y lo onírico. Como suele pasar con las novelas llevadas a cine hay varias diferencias, y como es costumbre se le recomienda leer, y así usted mismo generara su propia opinión.Cabe mencionar que es perteneciente al genero de terror y no es recomendable para niños pequeños.







domingo, 14 de julio de 2013

Guía de supervivencia: Campus Party México (2ª parte)


La semana pasada hablamos sobre las etapas de registro e ingreso a Campus Party, en esta ocasión les traemos una lista sobre lo que deben y no deben llevar… Sí, sabemos que diversas comunidades han dado a conocer su checklist, pero esto no nos desanimó a publicar una más, pues es nuestro punto de vista. Así que,  ¡Comencemos!

EQUIPO INDISPENSABLE
  • Laptop.
  •  Audífonos: No invadas el espacio auditivo de los demás.
  •  Multicontacto.
  •  Router.
  •  Cable de red: No mayor a un metro, será bajo tu propio riesgo llevar cables más extensos.
  •  Dispositivos de almacenamiento: USB, Disco duro externo.
  •  Cámara fotográfica: ¡Hay que documentar todo!

EQUIPO OPCIONAL
  •  PC escritorio.
  • Consolas y videojuegos.
  • CD´s, DVD´s para quemar.
  • Bocinas o equipo de sonido.
  • Extensión.
  • Switch.
  • Accespoint.
  • Cámara de video.
  • Pantallas.

PARA TU SEGURIDAD Y ACAMPADO
  • Candado para laptop.
  • Candado para camping.
  • Candado para tu maleta.
  • Linterna: Es indispensable por la noche, en especial en el área de acampado.
  • Alimentos secos.
  • Agua embotellada.
  • Artículos de aseo personal: Desodorante, shampoo, jabón, cepillo dental, dentífrico, gel, etc, etc.
  • Ropa: 4 mudas de ropa mínimo.
  • Cobijas: Recuerden que es en Santa Fe ¡hace mucho frio! Se vale llevar cobija-humana.
  • Almohada.
  • Balones o pelotas deportivas
  • Dinero: Lo mas que puedas
  • Medicamento: Si tomas algún tratamiento ¡No lo olvides!  Además incluye: medicina para gripe, tos, dolor de garganta, resfriado.
  • Condones (Por si las dudas).  

EVITA LLEVAR
  • Artículos pesados.
  • Herramientas (pinzas, tijeras, desarmadores, cautin, etc., etc.)
  • Objetos punzocortantes/ Armas blancas.
  • Botellas de vidrio.
  • Objetos flamables (para hacer fogatas o similares).
  • Bebidas alcohólicas.
  • Drogas.

EXCEPCIONES

Si estás interesado en el modding o el arduino y necesitas llevar herramientas como: protoboards, PLC´s, PIC´s, mecanismos, robots, cautin, soldadura y otros accesorios electrónicos; envía un correo a CRM (crm@campus-party.com.mx) para su aprobación y previo registro.

RECOMENDACIONES


  • En Campus Party el principal medio de comunicación es Twitter, así que activa tu cuenta y sigue las cuentas oficiales de los principales ponentes, así estarás al tanto de las dinámicas y sorpresas que tengan preparadas.
  • No olvides llevar bolsas de plástico para tu basura. La higiene es vital y habla bien de tú persona, no tires ni dejes basura en ningún lugar, acumula la basura en una bolsa y después depositala en los contenedores correspondientes.


Los colaboradores de RAIDON ONE son campuseros con experiencia, así que en la última entrega les hablaremos de cómo es el ambiente en Campus Party, dónde abastecerse de provisiones, etc., en los comentarios díganos que quieren saber y resolveremos todas sus dudas en nuestro siguiente post.

No olviden que la comunidad UNAM estará presente en #CPMx4, síganos en Facebook y Twitter:


Nuevamente gracias a José Méndez por su apoyo en la elaboración de esta entrada.


SOCKETS CON IntentService ( ANDROID Y PC )

Especificaciones:

Hardware: LG L9
Versión: ANDROID ICE CREAM 4.0.4
Framework: Eclipse Java EE IDE for Web Developers.
Versión: Juno Service Release 2

Bueno, para comenzar este pequeño tutorial daré algunos aspectos técnicos que son básicos para entender este tipo de aplicaciones.

Servicios:
Un servicio es un componente de aplicación que puede realizar operaciones de larga duración dentro de un subproceso y no proporciona una interfaz de usuarios. Otro componente de la aplicación se puede iniciar desde un servicio y continuará funcionando dentro un segundo plano, incluso si el usuario cambia a otra aplicación.
Nuestro servicio puede tener básicamente dos formas:

·         Started
Un servicio se “empieza” cuando un componente de la aplicación (por ejemplo, una actividad) se inicia llamando startService(). Una vez iniciado, un servicio puede ejecutarse en un segundo plano de forma indefinida, incluso si el componente de se inició, se destruye. Por lo general, un servicio que se inicia realiza solo operación y no devuelve un resultado a la persona que llama. Por ejemplo, puede descargar o cargar un archivo en la red. Una vez realizada la operación, el servicio debe pararse.

·         Bound
Un servicio es “bound” cuando un componente de aplicación se una a ella llamado blindService(). Un servicio consolidado ofrece una interfaz cliente-servidor que permite a los componentes interactuar con el servicio, enviar solicitudes, obtener resultados, e incluso hacerlo a través de los procesos de comunicación entre procesos (IPC). Un servicio funciona mientras otro componente de la aplicación es obligado a ello. Múltiples componentes pueden unirse al servicio, pero todos ellos llegan dirimir, cuando el servicio se destruye.

Aunque generalmente se trabaja con estos servicios por separado, el servicio puede funcionar en ambos sentidos, se pueden iniciar(ejecutar indefinidamente) y permitir la unión. Es simplemente cuestión de si se implementa un par de métodos de devolución de llamada:

Para permitir el inicio de los componentes.
Para permitir la unión.

IntentServices:
Es una clase base para generar un servicio que maneja peticiones asíncronas ( expresadas como intenciones) a petición.
Los clientes envían peticiones a través de llamadas startService(intención), el servicio se pone en marcha cuando se necesita, se encarga de cada intención, y todo esto se genera en un subproceso de trabajo y se detiene a sí mismo cuando se acaba el trabajo.
Este “proceso en cola  de trabajo” patrón se utiliza comúnmente para no sobrecargar las tareas dentro del hilo principal dentro la aplicación. En este caso existe la clase intentService para simplificar este patrón y cuidar los procesos. Para usarlo, se extiende intentService y se implementa onHandleIntent(Intención). IntentService recibirá las intenciones, iniciando el subproceso de trabajo, y deteniendo el servicio según corresponda.

LA APLICACIÓN

EN JAVA:

clase MyServerSocket.java:

package sockets;

import java.io.DataOutputStream;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Random;

/**
 *
 * @author kamehy
 */
public class MyServerSocket {

final int PUERTO=5001;
ServerSocket sc;
Socket so;
DataOutputStream salida;
String mensajeRecibido;

   public void MyServerSocket(){
       
   }
        
    public void initServer() {        
        try {
            boolean listening = true;
            sc = new ServerSocket(PUERTO);/* crea socket servidor que escuchara en puerto 5000*/
            so = new Socket();    
            
            int limite=10;
            Random r = new Random();
            
            System.out.println("Iniciando server por puerto " + PUERTO);
            while (listening)
               new ThreadClienteSc(sc.accept(),r.nextInt(),PUERTO).run();
            
            System.out.println("Cerrando server");
            sc.close();//Aqui se cierra la conexión con el cliente
        } catch (Exception e) {
            System.out.println("Error: " + e.getMessage() + " " + e.toString());
        }
    }
}

clase Sockets,java:

package sockets;

import java.net.ServerSocket;
import sockets.MyServerSocket;

/**
 *
 * @author kamehy
 */
public class Sockets {

    private static MyServerSocket myserverSocket;
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        myserverSocket = new MyServerSocket();        
        myserverSocket.initServer();
    }
}

clase ThreadsClienteSc:

package sockets;

import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.Socket;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 *
 * @author kamehy
 */
public class ThreadClienteSc implements Runnable{

    private int id;
    private Socket so;
    private DataOutputStream salida;
    private String mensajeRecibido;
    private int puerto;
    
    public ThreadClienteSc(Socket socket,int Id,int puerto){       
       this.id = id;            
       this.puerto = puerto;
       this.so = socket;
    }
    
    @Override
    public void run(){
        try {
                System.out.println("cliente lanzado:" + id + " puerto:" + puerto);                
                BufferedReader entrada;
                
                entrada = new BufferedReader(new InputStreamReader(so.getInputStream()));
                mensajeRecibido = entrada.readLine();                                
                
                System.out.println("recibido:" + mensajeRecibido);
                
                salida = new DataOutputStream(so.getOutputStream());
                System.out.println("Confirmando conexion al cliente....");                
                salida.writeUTF("Se recibio tu mensaje.n Terminando conexion..." + id + "\n");                
                
                
                System.out.println("Cerrando conexión..." + id);                
        } catch (IOException ex) {
            System.out.println("error hilo cliente :" + id + ex.toString());
        }

    }
    
}

Al correar la aplicación deberá aparecer la siguiente pantalla:

EN ANDROID:

Diseño aplicación:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentRight="true"
        android:layout_marginTop="21dp"
        android:text="Conexión" />

</RelativeLayout>

clase MainActivity.java:

package com.example.sockets;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button btnSync = (Button) findViewById(R.id.button1);
btnSync.setOnClickListener(new OnClickListener() {

            public void onClick(View view) {
            
              System.out.println("iniciando conexion al server.... pba01"); 
              
              Intent cliente = new Intent (MainActivity.this, Cliente.class);
              
              startService(cliente);
            
           }

       });
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}

}

clase Cliente.java:
package com.example.sockets;

import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.InputStreamReader;
import java.net.Socket;

import android.app.IntentService;
import android.content.Intent;

public class Cliente extends IntentService  {
Socket sc;
public Cliente(){
super("IntentServiceOperacion");
}
protected void onHandleIntent(Intent intent){
        try {
            BufferedReader entrada;
            System.out.println("Conectar por puerto:"  );

            //En esta parte entra en CMD y escribe ipconfig para encontrar la ip de tú PC           
            //la ip siempre deberá de ser STRING

            sc = new Socket("X.X.X.X" , 5001 );                 
            
            sc.setSoTimeout(10000);
            
            if(sc.isConnected()){
                System.out.println("Confirmando conexion al server....");            
                DataOutputStream mensaje = new DataOutputStream(sc.getOutputStream());
                mensaje.writeUTF("ID : 1 | android\n");           

                entrada = new BufferedReader(new InputStreamReader(sc.getInputStream()));

                String mensajeRecibido = entrada.readLine();
                System.out.println(mensajeRecibido);     
                
                 
                System.out.println("fin conexion al server....");
                sc.close();
                                
            }    
                       
        } catch (Exception ex) {
            System.out.println("Error al conectar cliente" + ex.toString());
        }finally{
           if(sc!=null){
                try {
                    sc.close();
                } catch (Exception ex) {
                    System.out.println("Error al cerrar el socket");
                }
           }
        }  
}   
}
clase AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.sockets"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="17" />
 <uses-permission 
    android:name="android.permission.ACCESS_NETWORK_STATE" /> 

<uses-permission 
    android:name="android.permission.ACCESS_WIFI_STATE" /> 

<uses-permission 
    android:name="android.permission.INTERNET" /> 

<uses-permission 
    android:name="android.permission.CHANGE_WIFI_MULTICAST_STATE" /> 
    
    
    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        
        <service android:name="com.example.sockets.Cliente"></service>        
        <activity
            android:name="com.example.sockets.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

Al correar la aplicación dentro de un dispositivo android deberá aparecer la siguiente pantalla:


Y al presionar la pantalla deberá de aparecer lo siguiente dentro del aplicativo en java, el cual debimos de ejecutar antes de seleccionar el boton conexión en el dispositivo android:



Nota: Si presentan un error con el puerto 5001, tendrán que desactivar su FIREWALL para que se pueda generar la conexión.

Por: Alejandro Bautista Mancilla y Jhonatan Becerril Bautista


Fuentes:

sábado, 6 de julio de 2013

Guía de supervivencia: Campus Party México (1ª parte)


Cada vez falta menos para que la Expo Santa Fe abra sus puertas al evento más importante del mundo que reúne: innovación, creatividad, ciencia y emprendimiento: Campus Party 2013.



Esta es la cuarta edición que se lleva a cabo en México y se espera la asistencia de 8,000 campuseros, así que veremos caras nuevas y como todo lo nuevo en la vida causa incertidumbre, quisimos elaborar una pequeña guía de supervivencia, esperamos les sea de gran utilidad.

El ingreso

Son 4 etapas de registro así que llega lo más temprano que puedas.

Registro de asistentes


Aquí se te asignara tú ID o credencial de campusero, no olvides el correo electrónico e identificación oficial con el que activaste tu cuenta. En esta etapa te encontrarás con una gran fila de asistentes, te recomendamos tomar tu lugar en la fila y no meterte, evita hacer el tiempo de espera más largo de lo que ya es. 


Registro de equipos

Debes tener a la mano tu laptop o PC de escritorio que hayas registrado en tu perfil de Campus Party, pues serán revisados y se les asignará un sticker asociado a tu Id, garantizando así que el equipo de cómputo sólo puede ingresar o salir del lugar contigo.


Identifica de la manera más precisa tus aparatos electrónicos, te recomendamos tomarle foto antes de llegar   a Campus, incluyendo los números de serie, esto es por precaución: en caso de robo o extravío podrás ofrecer información  fidedigna que demuestre que el equipo te pertenece. Si tienes factura de tu aparato, trae contigo una copia o un foto legible y guárdala bien en tus cosas.

Ingreso a la Expo


En esta etapa tendrás que ser aún más paciente pues deberás pasar por un filtro de seguridad muy similar al de un aeropuerto. 


Se revisará parte de tu equipaje, esto para asegurar que nadie ingrese con artículos prohibidos o de riesgo al lugar. Procura tener orden en tu equipaje, esto garantizará, que pases rápido y sin problema alguno, porque ahí mismo deberás volver a guardar tu equipaje como lo traías al llegar.

Ingreso al camping

¡Al fin ya entraste! te quedarás atónito al dar tus primeros pasos en la arena, pero dirígete hacia la zona de camping. 

Para ingresar mostrarás tu id y posible número de camping (previamente asignado en tu registro). Los campings regularmente van en orden alfabético y seguido de un número. Al llegar a tu camping observa el lugar y los alrededores, pues es muy fácil confundirse en esta zona. 

Ubica a tus vecinos y amigos, así podrás tener cierta tranquilidad y si observas alguna persona ajena en algún camping por favor avisa a los voluntarios o personal de seguridad para que estén atentos, recuerda que tus pertenencias se quedan ahí a nadie le agradaría tener sorpresas desagradables, la seguridad y tranquilidad es responsabilidad de todos.


Después de todo este ajetreo saca tu Lap, PC y todos tus gadgets,  no olvides cerrar con candadito tu camping y...

                        
                                          ¡Disfruta de todo lo que Campus Party tiene para ti!



Esperen la siguiente entrada y no olviden que la comunidad UNAM estará presente en #CPMx4, síganos en Facebook y Twitter :D



Gracias a José Méndez por su apoyo en la elaboración de esta entrada.

viernes, 5 de julio de 2013

PACIFIC RIM


El guionista Mexicano Guillermo del Toro Gómez presenta una nueva película llamada Pacific Rim, donde la historia se base en la aparición de monstruosas criaturas llamadas kaiju, las cuales comenzaron a subir del mar y con estas se da comienzo a una gran guerra que tomaría millones de vidas y consumiría los recursos de la humanidad durante los años de lucha contra los kaiju. Para contrarrestar el ataque de estos moustros se crea una arma especial llamada JAEGERS, los cuales no son más que robots gigantes creados para combatir los kaiju, estos robots son controlados simultáneamente por dos pilotos cuyas mentes están conectadas dentro de un puente neural.
Durante las batallas, incluso los JAEGERS se muestran indefensos contra los kaiju implacables. Al borde de la derrota la humanidad no tiene mas remedio que recurrir a dos poco probables héroes, los cuales se muestran en el siguiente tráiler.




Y el link a su pagina oficial para mas información: