web analytics

Galactus cuando era pequeño

Papá: Hijo, tienes que comerte todos tus planetas si quieres crecer grande y fuerte
Galactus: Esta bien papá :)

[five-star-rating]

BlueBolt: Detrás de los efectos especiales de Game Of Thrones


Atención si no sabes que es Game of Thrones solo ve este primer tráiler y no continúes con el post ya que tiene spoilers xD.

Muchos de los que somos fans de Game of Thrones estamos esperando con impaciencia que sea lanzada la segunda temporada, mientras tanto nos tenemos que conformar con escuchar los soundtracks de la serie (al menos eso hago yo :p). Hace unos días me puso a investigar acerca de todo lo que era la parte de producción y post producción de la serie y según tengo entendida es una de las series de HBO mas caras de la historia.

La empresa encargada de realizar todos los efectos especiales es llamada como BlueBolt, y a continuación les dejo un video muy impresionante de los efectos que son agregados a las escenas :) .



SPOILERS

En lo personal, hay efectos que yo no esperaba que fueran aplicados en algunas escenas :p

salu2

[five-star-rating]

Conexiones simples a mysql con JDBC en Java

Hace algún tiempo ya un amigo me pregunto que si era posible conectarse a una base de datos mysql utilizando Java, y le respondí claro que si, una opción es utilizar JDBC y el driver de mysql, hice un ejemplo bastante sencillo con el que seguro queda claro cual es la idea principal.

Lo primero que tienen que hacer es descargar el driver de conexión a mysql: mysql-connector-java-5.1.5-bin.jar y lo instalan, si utilizan eclipse es muy sencillo, tienen que copiarlo a la carpeta de su proyecto y después hacer clic con el botón secundario en su proyecto y seleccionar Build Path > Libraries > Add Jars y agregan su archivo :) .

Después de eso pueden probar este pequeño código de ejemplo.

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class jdbcExample {

  Connection newDB;

  void getStates()
  {
        try {

            Statement STMT1 = newDB.createStatement();
            String SQLQuery = "SELECT name FROM states";
            ResultSet RX = STMT1.executeQuery(SQLQuery);

            while (RX.next()) {
                System.out.println(RX.getString("name"));
            }
        }
        catch(SQLException e) {

        }
  }

  void insertState(String name) {
    name = name.trim();
        if (name.length() > 0) {
            try {
                Statement STMT = newDB.createStatement();

                String SQLQuery = "INSERT INTO states (name) VALUES ('" + name + "');";
                STMT.executeUpdate(SQLQuery);
                System.out.println("Se agrego un nuevo estado: " + name);
            }
            catch (SQLException e) {
                System.out.println("ERROR AL INSERTAR NUEVO ESTADO " + e.toString());
            }
        }
    }

  void removeState(String name)
  {
        try {

            Statement STMT1 = newDB.createStatement();
            String SQLQuery = "DELETE FROM states WHERE name = '" + name + "'";
            STMT1.executeUpdate(SQLQuery);

            System.out.println("Se elimino el estado: " + name);
        }
        catch(SQLException e) {
          System.out.println("ERROR AL BORRAR ESTADO " + e.toString());
        }
  }

  void performConnection() {

        String new_hostName = "127.0.0.1";
        String new_userName = "root";
        String new_password = "";
        String new_dataBase = "zonauPruebas";

        try {

          Class.forName("com.mysql.jdbc.Driver");

            String newConnectionURL = "jdbc:mysql://" + new_hostName + "/" + new_dataBase + "?" + "user=" + new_userName + "&password=" + new_password;
            newDB = DriverManager.getConnection(newConnectionURL);

      } catch (SQLException e) {
        System.out.println("SQL Exception: " + e.toString());
      } catch (ClassNotFoundException cE) {
        System.out.println("Class Not Found Exception: " + cE.toString());
      }

      //obteniendo datos
      getStates();
      insertState("Java Town");
      removeState("Java Town");
  }

    public static void main(String[] args) {
      jdbcExample nuevaConexion = new jdbcExample();
        nuevaConexion.performConnection();
    }
}

Ok para los que ya están familiarizados con java les resultara muy sencillo de entender, para los que aquí va la explicación, (omitiré la parte de los imports de librerías por obvias razones xD).
public class jdbcExample {

  Connection newDB;

Al inicio de creo una nueva variable de clase de tipo Connection, desde aquí comenzamos a hacer uso de la maravilloso de los objetos :p.
void performConnection() {

        String new_hostName = "127.0.0.1";
        String new_userName = "root";
        String new_password = "";
        String new_dataBase = "zonauPruebas";

        try {

          Class.forName("com.mysql.jdbc.Driver");

            String newConnectionURL = "jdbc:mysql://" + new_hostName + "/" + new_dataBase + "?" + "user=" + new_userName + "&password=" + new_password;
            newDB = DriverManager.getConnection(newConnectionURL);

      } catch (SQLException e) {
        System.out.println("SQL Exception: " + e.toString());
      } catch (ClassNotFoundException cE) {
        System.out.println("Class Not Found Exception: " + cE.toString());
      }

      //obteniendo datos
      getStates();
      insertState("Java Town");
      removeState("Java Town");
  }

Después, esta es la parte mas importante del código, aquí es donde establecemos la conexión a la base de datos, es especial esta

String newConnectionURL = "jdbc:mysql://" + new_hostName + "/" + new_dataBase + "?" + "user=" + new_userName + "&password=" + new_password;

Donde utilizamos el protocolo JDBC para conectarnos.

Después mas abajo verán la parte donde se mandan llamar métodos de la <strong>clase</strong>

    getStates();
      insertState("Java Town");
      removeState("Java Town");

Ahora explico lo que hace cada uno de ellos, el primero hace un SELECT, el segundo un INSERT y el tercero un DELETE.
void getStates()
{
        try {

            Statement STMT1 = newDB.createStatement();
            String SQLQuery = "SELECT name FROM states";
            ResultSet RX = STMT1.executeQuery(SQLQuery);

            while (RX.next()) {
                System.out.println(RX.getString("name"));
            }
        }
        catch(SQLException e) {

        }
}

Como el código lo indica, creamos un nuevo dato de tipo Statement, armamos nuestra Query y al final realizamos la consulta (el SELECT) utilizando executeQuery y guardamos el resultado en un ResultSet que al final recorreremos utilizando un While, imprimimos el contenido con getString, esto implícitamente funciona moviendo un apuntador a través del ResulSet pero eso es otra historia xD.
void insertState(String name) {
    name = name.trim();
        if (name.length() &gt; 0) {
            try {
                Statement STMT = newDB.createStatement();

                String SQLQuery = "INSERT INTO states (name) VALUES ('" + name + "');";
                STMT.executeUpdate(SQLQuery);
                System.out.println("Se agrego un nuevo estado: " + name);
            }
            catch (SQLException e) {
                System.out.println("ERROR AL INSERTAR NUEVO ESTADO " + e.toString());
            }
        }
}

En este método al igual que en el anterior utilizamos un Statement, pero recibimos como parámetro un string, le aplicamos el método trim() que remueve espacios al inicio y al final de la cadena, después armamos nuestra consulta agregando el string de la variable name y la ejecutamos con executeUpdate

Entonces hasta ahorita ya deberían de saber como recuperar datos y como agregarlos de una base de datos :p, vamos por la tercera que seria eliminarlos.

void removeState(String name)
  {
        try {

            Statement STMT1 = newDB.createStatement();
            String SQLQuery = "DELETE FROM states WHERE name = '" + name + "'";
            STMT1.executeUpdate(SQLQuery);

            System.out.println("Se elimino el estado: " + name);
        }
        catch(SQLException e) {
          System.out.println("ERROR AL BORRAR ESTADO " + e.toString());
        }
}

Es igual al método anterior solo que ahora la consulta en lugar de contener un INSERT será un DELETE :) .
    public static void main(String[] args) {
      jdbcExample nuevaConexion = new jdbcExample();
        nuevaConexion.performConnection();
    }

Al final creamos nuestro tan importante método main (se rumora que una vez un programador hizo un programa con 3 mains O.o???), y creamos una nueva instancia de nuestra clase y después ejecutamos el método performConnection() que realiza la conexión.

Bueno hasta aqui este mega tutorial relámpago de conexiones a bases de datos mysql con JDBC en Java, me voy a dormir, espero les sirva y cualquier duda comenten por favor.

Aquí les dejo el código sql de la tabla que utilice en el ejemplo para si ustedes quieren utilizarla.

Les recuerdo que aun esta en pie el concurso Ganate una cuenta premium de megaupload GRATIS

salu2

[five-star-rating]

Mi opinion acerca de Anonymous mexico

Este año ha comenzado mas agitado que de costumbre, iniciando con las noticias y las nuevas tendencias del malware firmado, paquetes de crimeware que son vendidos casi a la luz del día y los grupos hacktivistas que están a la orden del día.

Me he decidido a escribir este articulo, que refleja enteramente mi opinión personal y la manera en la que yo observo las cosas debido a en esta ocasión la gente de Anonymous entro en escenario mexicano, o al menos gente que utiliza su insignia. Y es que este grupo como otros (Lulzec, por ejemplo) tienen cierta filosofía que para algunas personas podría ser moral mente correcta y para otras no, yo en lo personal converjo con la idea de no caer en el conformismo, no dejarme “pisotear” por el gobierno y salir adelante por mis propios méritos, lo que si no me parece es que este tipo de grupos vaya por la red predicando acerca de la liberación, la independencia y el libre albedrío (no ser un ladrillo mas del muro) y aun así utilicen al pueblo, a las masas como simple ganado o carne de cañón para realizar sus ataques distribuidos de denegación de servicios.

Por si fuera poco el pueblo es como una manada de búfalos, tan solo hace falta seguir a su líder y no vacilaran en aventarse por un precipicio, ojo que no estoy diciendo que nos tenemos que conformar con nuestra situación actual, el narcotráfico, la inseguridad, etc y todo eso que nos ponen frente a los ojos, lo que trato de decir es que no tenemos que seguir estúpidamente al primer Mesías que venga ante nosotros solamente por que nos dice “oye tu, si tu, me voy a enfrentar al gobierno, ¿me ayudas?”, simplemente esa no es la manera correcta de hacer las cosas.

Díganme ustedes, ¿de que sirve realizar un ataque de denegación de servicios?, ¿acaso vas a dejar tus scripts corriendo todo un mes?, en cuanto dejes de DOSEAR el sitio vuelve a estar en pie y nada paso, simplemente, realizar un DDOS es algo estúpido, lo vean por donde lo vean, y lo peor de todo es como ya mencione utilizan al pueblo para hacer el trabajo sucio, un pueblo que no tiene ni $·&$&$ idea de lo que esta haciendo, un pueblo fácilmente manipulable al cual le puedes decir: descarga este programita de samelpirata.com, instálalo, pon esta url y pícale en GO.

La verdad que me entristece entrar a los canales IRC o seguir los #hashtag de #OpIndependencia en twitter donde supuestamente miembros de anonymous están dando ordenes como “New Target”, “Tango Down”, “take down”, y cosas por el estilo y la gran cantidad de gente que tontamente esta contribuyendo en algo que están muy lejos de comprender y peor aun de entender su funcionamiento, por lo que llegue a una conclusión.

Al pueblo le gusta formar parte de algo, de algo grande aunque no tenga ni %&/(%& idea de ello, “Ya calificamos para el mundial“, “ganamos contra X país”, ¿Que ganaste?,¿En que calificaste?, ahora si que every man for himself, sálvese quien pueda, en pocas palabras comienza a hacer algo por ti mismo y no intentes cambiar el mundo que no podrás (aun no ;) ).

La verdadera razón por la que se organizan este tipo de ataques es para atraer publicidad y causar polémica, ¿por que mas va a ser?, lanzar noticias nuevas y frescas a los medios es algo muy importante cuando quieres causar distracción, la verdadera gente de Anonymous les aseguro que son gente que estudio, ingenieros, doctores, maestros, gente muy bien preparada que no tiene el tiempo ni les resulta útil ser tweetstars o andar publicando videos en youtube, la gente que realiza estas acciones, y esto se los puedo asegurar son personas que tienen muy pocos o nulos conocimientos de informática, aprendieron a utilizar un troyano, escribir scripts en batch y alardean de ser hackers, obviamente no entienden la diferencia entre un hacker y un script kiddie ;) .

Si bien ustedes saben, yo he pertenecido a grupos de ciber hacktivismo y es algo totalmente diferente, aunque no diga que sea bueno o correcto, ¿por que es diferente? para empezar en aquellos tiempos éramos mas organizados y no incitábamos a las masas a que descargaran y utilizaran software que probablemente esta infectado, se tenían objetivos bien definidos y no se anunciaba en los medios.

En resumen y ya para terminar no se dejen llevar por la corriente, no se involucren con la moda Anonymous pensando que lo saben todo solamente por que saben usar un programa llamado LOIC, manténganse informados acerca de lo que sucede a su alrededor y sobre todo no se dejen manipular tan vil mente como lo esta haciendo Anonymous en la actualidad.

[five-star-rating]

Ganate una cuenta premium de megaupload GRATIS

Hola estimados lectores (amigos) como todos se habrán dado cuenta estoy haciendo cambios por aquí, me estoy mudando de hosting y por eso mis sitios han estado caídos varios dias jejeje, sin embargo para compensarlos he decidido lanzar un concurso :) .

La persona que resulte ganadora obtendrá una cuenta premium de megaupload totalmente gratis por 1 mes que yo le obsequiare :) .

Además si te registraste antes del 30 de septiembre y resultaste ser el ganador tienes un premio secreto extra, que se dará a conocer ese mismo día :p.

Pero, por si eso no fuera suficiente, si ganaste y eres blogger te ganas automáticamente 1 reseña y 1 enlace (tu blog tiene que ser de temáticas aceptadas por adsense).

El concurso por la cuenta premium de megaupload termina oficialmente termina el 24 de octubre de 2011.

Para participar tienes que seguir 3 sencillos pasos:

Paso #1

Accede al sitio de Microsoft Virtual Academy, después tienes que hacer clic en el link para registrarte en la plataforma

Validas con tu cuenta de windows live como te indican.

Después se te pedirá que ingreses tu nombre, apellido, correo electrónico y país para completar tu registro, llena los campos como se indica.

Si todo salió bien el sistema te pedirá que verifiques tu cuenta de correo (la que pusiste al registrarte) :)

Después de ver ese mensaje, ATENCION, esta es de las partes mas importantes :p, tienes que ir a tu bandeja de entrada (del correo con el que te registraste) y veras que te ha llegado un correo con asunto [MVA] Registro

.

Revisa ese mail y en la parte de arriba te aparecerá Tu registro se ha completado con éxito., eso quiere decir que realizaste todos los pasos de manera correcto, ahora solo tienes que hacer clic en el enlace (liga, link) que te dice Ingresa aquí para activar tu cuenta en Microsoft Virtual Academy :) .

El link te re direccionara y te mostrara un mensaje con lo siguiente:

.

Paso #2

Realiza un comentario en esta entrada expresando que estas participando en el concurso, esto es muy importante ya que el sorte se realizara de manera aleatoria en base al numero de comentarios utilizando www.randomizer.org, por ejemplo si el numero generado aleatoriamente es el 50, la persona que haya escrito el comentario 50 será la ganadora.

Es importante que escribas tu nombre y tu correo (si es con el que te registraste en Microsoft Virtual Academy que mejor) para que en caso de resultar ser el ganador yo te pueda contactar :) .

Después, opcionalmente puedes seguirme en twitter @Alevsk o hacerte fan en facebook Alevsk

Paso 3

Tienes que enviarme un correo electrónico a admin@alevsk.com (copia y pega esta dirección cuando vayas a escribir tu correo), atención, debe ser ha esa dirección de correo en particular :) , con el asunto Participando para cuenta premium de megaupload, donde incluyas el correo con el que te registraste en Microsoft Virtual Academy en el paso 2.

Y eso es todo, estarás participando en el concurso.

PD Cualquier duda, puedes enviarme un tweet a @Alevsk o un correo a admin@alevsk.com con el asunto Duda concurso Megaupload y yo te responderé a la brevedad posible :)

Related Posts Plugin for WordPress, Blogger...[five-star-rating]