viernes, 2 de diciembre de 2011

Little Printer: Una mini-impresora disponible en el 2012

Little Printer es una mini-impresora desarrollada por BERG, un estudio de diseño en Londres que trabaja de la mano con varias compañias para desarrollar y buscar tecnologias y estrategias orientadas basicamente hacia la red y las objetos físicos.



Littel Pinter permite imprimir en pequeños pedazos de papel, aquellas cosas que no requieren un gran trozo de este, y aunque la tendencia mundial va encaminada hacia la digitalización de la información, este pequeño invento puede que encuentre espacio en nuestro escritorio. La pequeña impresora funciona conectada a la red y se usa principalmente por medio de tu teléfono móvil, puedes ver su funcionamiento en este video:



Impresora 3D para reproducir...¡órganos y tejidos!

Una nueva tecnología médica que aún se encuentra en pruebas permitirá en el futuro reproducir tejidos y órganos usando solo sus células en impresoras 3D.

Se trata de un artefacto creado por la compañía estadounidense Organovo, una de las tantas que investigan y desarrollan las tecnologías de 'bioprinting' (bioimprenta). Según el director ejecutivo de Organovo, Keith Murphy, su bioimprenta todavía tiene algunos puntos débiles, pero dentro de 4 o 5 años podr'ia estar completamente terminada.

 

Scanner portátil - Doxie

Si necesitas escanear en cualquier lugar y aunque no tengas una computadora, esta es tu solución. Todo entra en un pequeño bolso. Tiene un precio sugerido de 200 dólares.
Sus tamaño es: 10.5″ x 1.7″ x 2.2″
Detalles:
  • No necesita computadora
  • Escanea una página full color en 8 segundos
  • Puede escanear y guardar en  su memoria hasta 600 páginas o 2400 fotos en su tarjeta SD y se le puede agregar a través de un cable USB un dispositivo con  memoria fash extra
  • Tiene reconocimiento de texto OCR a través del software ABBYY®
  • inalámbrico
Leer más: Wired

Ejemplo de clases Reloj Checador

// Compiled from Checador.java (version 1.5 : 49.0, super bit)
public class Checador {
 
  // Field descriptor #6 I
  int HrEntrada;
 
  // Method descriptor #8 (I)V
  // Stack: 2, Locals: 2
  public Checador(int HrEntrada);
     0  aload_0 [this]
     1  invokespecial java.lang.Object() [10]
     4  aload_0 [this]
     5  iload_1 [HrEntrada]
     6  putfield Checador.HrEntrada : int [13]
     9  return
      Line numbers:
        [pc: 0, line: 28]
        [pc: 4, line: 31]
        [pc: 9, line: 33]
      Local variable table:
        [pc: 0, pc: 10] local: this index: 0 type: Checador
        [pc: 0, pc: 10] local: HrEntrada index: 1 type: int
 
  // Method descriptor #20 ()I
  // Stack: 2, Locals: 2
  public int devuelveSalida();
     0  aload_0 [this]
     1  getfield Checador.HrEntrada : int [13]
     4  bipush 8
     6  iadd
     7  istore_1 [HrSalida]
     8  iload_1 [HrSalida]
     9  ireturn
      Line numbers:
        [pc: 0, line: 38]
        [pc: 8, line: 39]
      Local variable table:
        [pc: 0, pc: 10] local: this index: 0 type: Checador
        [pc: 8, pc: 10] local: HrSalida index: 1 type: int
}

Programación Orientada a Eventos

Es una propuesta adoptada por una comunidad, donde la ejecución del programa es determinado por los sucesos que ocurren en el sistema definidos por el usuario, el programador define las acciones que se realizaran al producirse un determinado evento en el sistema, por ejemplo dar click a un botón.

Un ejemplo de lenguaje orientado a eventos es Visual Basic en el que a cada elemento del programa se le asignan eventos como son:

GotFocus.- Cuando el control tiene el foco.
LostFocus.- Cuando el control pierde el foto.
KeyPress.- Cuando se oprime determinada tecla.
MouseMove.- Muestra un mensaje cuando el puntero pasa por encima del control.


Así existen muchos eventos dependiendo del lenguaje, del sistema operativo e incluso el programador puede crear sus propios eventos, es decir esta programación permite interactuar con el usuario.


La problemática que existe en este tipo de programación es que el programador debe prever los posibles errores del usuario ya que este cuenta con toda la libertad de llevar el flujo del programa, lo que significa más horas en el desarrollo del programa.


En conclusión es una buena técnica para programar herramientas que se vuelve más eficiente con la experiencia del programador al conocer los vicios de los usuarios comunes lo que evita errores del sistema.

lunes, 28 de noviembre de 2011

Clase para hacer Palíndromo en Java

Un Palíndromo es una frase o número que dicha al revés dice lo mismo.

aquí la clase que entrega True o False después de analizar la frase...

Obviamente necesitas un void main para llamar la clase.

public class Palindromo {

    public boolean espalindromo(String cadena){
        boolean valor=true;
        int i,ind;   
        String cadena2="";
        //quitamos los espacios
        for (int x=0; x < cadena.length(); x++) {
            if (cadena.charAt(x) != ' ')
                cadena2 += cadena.charAt(x);
        }
        //volvemos a asignar variables
        cadena=cadena2;   
        ind=cadena.length();
        //comparamos cadenas
        for (i= 0 ;i < (cadena.length()); i++){       
           if (cadena.substring(i, i+1).equals(cadena.substring(ind - 1, ind)) == false ) {
               //si una sola letra no corresponde no es un palindromo por tanto
               //sale del ciclo con valor false
                valor=false;
                break;
           }
           ind--;
        }
        return valor;
    }
    }

viernes, 25 de noviembre de 2011

Ratón WiFi de HP: sin cables, sin conectores, sin ocupar puertos USB

Su nombre lo dice todo, HP Wi-Fi Mobile Mouse.

Olvídate de cables y de ocupar puertos USB y aprovecha que casi siempre suele uno trabajar con el WiFi encendido..

El ratón WiFI de HP es de tamaño medio, acorde con la necesidad de que no ocupe demasiado espacio en el maletín o la bolsa de transporte del portátil, que es para lo que principalmente está ideado.

El hecho de emplear tecnología WiFI para conectarse con el ordenador facilita la no ocupación de puertos USB con los conectores de radiofrecuencia o Bluetooth, aprovechando así que la mayoría de las veces se trabaja con ese tipo de conectividad activada. De esta forma con el ratón en su embalaje no viene con ningún tipo de conector o accesorio. Encontrarás el ratón, las instrucciones, la garantía y un mini CD con el programa de configuración que debes instalar.

Ubuntu ya no es el S.O. libre más popular, Linux Mint, Fedora y OpenSUSE lo superan

Sí bien cuando se habla de la competencia entre los sistemas operativos y se nombra a Linux muchos piensan que se trata de una alternativa única, la realidad es que eso no es verdad, ya que dentro de lo que es Linux, uno puede elegir entre varias distribuciones diferentes, siendo Ubuntu una de las más nombradas y, hasta el momento, la más popular.

Decimos hasta el momento porque la situación ha cambiado, y como bien señalan en visualbeta, es Linux Mint la distribución del sistema operativo libre que hoy se jacta de ser la más popular, habiendo superado por un amplio porcentaje a la anteriormente nombrada: Ubuntu.

Sí comparamos a Mint con Ubuntu, podríamos perfectamente decir que la primera nombrada es una distribución más o menos nueva, ya que lleva unos 6 años de vida y desde aquel entonces, ha iniciado una interesante batalla contra Ubuntu, obteniendo un constante crecimiento en popularidad y número de usuarios, al tiempo que Ubuntu sólo lograba perder terreno.

Sin embargo, no sólo es Linux Mint quien supera a Ubuntu, sino que también Fedora y OpenSUSE se muestran algo más fuertes que él, aunque a simple vista sus gráficas también muestren un decrecimiento, siendo Debian y Fedora los que se mantienen más estables con el paso del tiempo.

EEUU podría aprobar una Ley ‘Anti-Photoshop’

Al parecer le pasa a mucha gente: Ven fotografías en los medios y se frustran por no lucir igual que los que allí salen. Ignoran que esas imágenes, en su mayoría por no pecar de intransigente y decir que todas, están retocadas, y en consecuencia, se deprimen por no lograr ese aspecto.
En Estados Unidos están preocupados por esto, así que una fundación ha decidido proponer una “Ley de Autoestima”, que entre otras cosas regularía el retoque digital de los modelos, actores y actrices en las revistas y en los anuncios… ¡Tiembla Photoshop!
Se trata de una iniciativa promovida por una pareja que cree que sus hijos deben “crecer libres de la superficialidad y de la imagen corporal de la perfección”, que causa problemas psicológicos y físicos en el desarrollo y crecimiento de los adolescentes.

Gobierno de USA toma 130 sitios que proponen la piratería

Hace aproximadamente un año que Aduanas y el Departamento de Justicia (DOJ por sus siglas en inglés) están detrás de sitios llamados ‘rogue’. El Cyber Monday crackdown, en donde 82 dominios, entre ellos Torrent-Finder, fueron intervenidos por el ICE (Immigration and Customs Enforcement), precisamente el lunes siguiente a las celebraciones de Acción de Gracias en el 2010.

Esta vez, precisamente durante el periodo que millones compran a través del internet, el gobierno –quien aún no ha oficializado el evento– ha decidido retomar la iniciativa “Operation In Our Sites”, que se enfoca en apoderase de los dominios que propenden la piratería y la falsificación.

Metodología CRC (Clase, Responsabilidad y Colaboración)

Una buena técnica para establecer responsabilidades entre varios participantes a partir de una idea creada por todos, lo que hace ir de lo general a lo particular en el desarrollo de sistemas sin perder la idea original ya que esta es propiedad del grupo, además la división del proyecto en etapas.

Una sencilla forma de organizar las ideas son las tarjetas CRC (Clase, Responsabilidad y Colaboración) en las cuales se colocan el nombre de la clase y su responsabilidad, servicios brindados por la clase y los colaboradores para las responsabilidades, de tal manera que las clases, superclases y subclases sean útiles para los demás colaboradores.

Excepciones en Java


Las excepciones son errores que no tienen que ver con la sintaxis, es decir escribir bien nuestro programa, si no tiene que ver con la lógica y los factores externos que nuestra aplicación pueda verificar hasta que el programa se ejecuta, por ejemplo que un archivo no se encuentre, que el nombre de un campo en una base de datos no sea escrito de forma correcto, son situaciones que no puede verificar el compilador, por lo que en tiempo ejecución se produce el error, a eso le llamamos excepciones. En Java las excepciones son de dos tipos las comprobadas y no no comprobadas, hay excepciones las cuales java te obliga a revisar las excepciones con bloques de try-catch o simplemente lanzando la excepción hacia el lugar donde fue invocado, esto se le conoce como comprobadas, las no comprobadas son aquellas donde java, le pone la culpa a nosotros es decir a los programadores por ejemplo una división entre 0, un acceso a arreglo en una posición que no existe, esos a java no le importan por lo que puedes lanzarlos o simplemente no hacer nada, el compilador confía en nuestra lógica.

El manejo de excepciones en Java sigue una estructura como esta:

try {
   //Codigo donde puede ocurrir un error
} 
catch (ExcepcionA ex) { // Que se va a hacer en caso que 
   se lanze una Excepcion A }
...
catch (ExcepcionZ ex) { // Que se va a hacer en caso que 
   se lanze una Excepcion Z }
 
Algunas de las excepciones más usadas en Java:
 
java.lang. ArithmeticException
java.lang. ArrayIndexOutOfBoundsException
java.lang. ArrayStoreException
java.lang. ClassCastException
java.lang. ClassNotFoundException
java.lang. CloneNotSupportedException
java.lang. EnumConstantNotPresentException
java.lang. Exception
java.lang. ExceptionInInitializerError
java.lang. IllegalAccessException
java.lang. IllegalArgumentException
java.lang. IllegalMonitorStateException
java.lang. IllegalStateException
java.lang. IllegalThreadStateException
java.lang. IndexOutOfBoundsException
java.lang. InstantiationException
java.lang. InterruptedException
java.lang. NegativeArraySizeException
java.lang. NoSuchFieldException
java.lang. NoSuchMethodException
java.lang. NullPointerException
java.lang. NumberFormatException
java.lang. RuntimeException
java.lang. SecurityException
java.lang. StringIndexOutOfBoundsException
java.lang. TypeNotPresentException
java.lang. UnsupportedOperationException

Ejemplo de polimorfismo en Java

Polimorfismo (poli-múltiple morfismo-formas)

Significa que un mismo objeto puede tomas varias formas.

El polimorfismo es un concepto de la programación orientada a objetos que nos permite programar en forma general, en lugar de hacerlo en forma específica. En general nos sirve para programar objetos con características comunes y que todos estos compartan la misma superclase en una jerarquía de clases, como si todas fueran objetos de la superclase. Esto nos simplifica la programación.



Ejemplo:

import java.util.*;

class Instrumento {
    public void tocar() {
 System.out.println("Instrumento.tocar()");
    }
    public String tipo() {
 return "Instrumento";
    }
    public void afinar() {}
}

class Guitarra extends Instrumento {
    public void tocar() {
 System.out.println("Guitarra.tocar()");
    }
    public String tipo() { return "Guitarra"; }
    public void afinar() {}
}

class Piano extends Instrumento {
    public void tocar() {
 System.out.println("Piano.tocar()");
    }
    public String tipo() { return "Piano"; }
    public void afinar() {}
}

class Saxofon extends Instrumento {
    public void tocar() {
 System.out.println("Saxofon.tocar()");
    }
    public String tipo() { return "Saxofon"; }
    public void afinar() {}
}

// Un tipo de Guitarra 
class Guzla extends Guitarra {
       public void tocar() {
         System.out.println("Guzla.tocar()");
       }
       public void afinar() {
         System.out.println("Guzla.afinar()");
       }
     }

// Un tipo de Guitarra 
class Ukelele extends Guitarra {
    public void tocar() {
 System.out.println("Ukelele.tocar()");
    }
    public String tipo() { return "Ukelele"; }
}

public class Musica {

    // No importa el tipo de Instrumento,
    // seguirá funcionando debido a Polimorfismo:
    static void afinar(Instrumento i) {
 // ...
 i.tocar();
    }

    static void afinarTodo(Instrumento[] e) {
 
 for(int i = 0; i < e.length; i++)
     afinar(e[i]);
    }


    public static void main(String[] args) {
 Instrumento[] orquesta = new Instrumento[5];
 int i = 0;
 // Up-casting al asignarse el Arreglo
 orquesta[i++] = new Guitarra();
 orquesta[i++] = new Piano();
 orquesta[i++] = new Saxofon();
 orquesta[i++] = new Guzla();
 orquesta[i++] = new Ukelele();
 afinarTodo(orquesta);
    }
}

Primer Clase y Objeto Visual en Java

jueves, 24 de noviembre de 2011

Historia de Miradores del Mar, E. Zapata, Veracruz


Desde la conquista, el llamado “Camino Real” que iba del Puerto de Veracruz a la Ciudad de México, atravesaba este pueblo e incluso existía un mesón para el cambio de diligencias, fue así que viajeros y soldados españoles advirtieron que se podía apreciar el mar desde este sitio, por tal motivo y debido a la popularidad que generó esta característica del lugar, después de la Independencia de México, durante la segunda y tercera década del siglo XIX fue elegido por las fuerzas federales para instalar miradores y vigilar así  el arribo de navíos españoles al puerto de Veracruz ya que desde este punto geográfico es posible distinguir el Golfo de México a simple vista.

lunes, 21 de noviembre de 2011

Tener Android Honeycomb en tu netbook ya es posible

Si quieres disfrutar del mismo Android que está en los tablets más actuales en tu netbook, portátil o sobremesa puedes hacerlo instalándolo, o de manera totalmente portable con un pendrive o una tarjeta SD.

Pues sí, no ha pasado ni una semana desde que Android Ice Cream Sandwich salió públicamente y mientras la posibilidad de que esa nueva versión se pueda usar en todo tipo de dispositivos, gracias a la ardua labor de los desarrolladores de Android-x86 ya puedes usar Android Honeycomb 3.2 en procesadores x86 de Intel.

Leer más...

El regalo más deseado por los niños en esta navidad

Ni Gormitis, ni Barbies, ni Beyblades. El regalo más deseado por los niños estas Navidades es el iPad 2 de Apple. Eso es lo que se desprende del habitual estudio navideño de Nielsen, en el que un 44% de los niños encuestados, con edades comprendidas entre los 6 y los 11 años, afirmaron que tienen pensado pedir a los Reyes Magos y/o a Papá Noel que les deje un tablet de Apple bajo el árbol.

No solo eso: el segundo y tercer puesto en el top de los productos electrónicos más deseados también están copados por la marca de la manzana, con su iPod Touch (30%) y su iPhone 4S (27%), por encima incluso de consolas portátiles como Nintendo 3DS (25%) y consolas de sobremesa como Xbox 360 con Kinect (23%).

Material que emite luz durante 2 semanas tras exponerlo al sol 1 minuto

Eso es lo que promete el material que han desarrollado un grupo de investigadores de la Universidad de Georgia (USA). Las aplicaciones serían múltiples (en el campo militar, de la seguridad, de la medicina…) y la base sería una especie de “laberinto de trampas para la energía” compuesto por iones de cromo y galogermanatos de zinc.


Leer más...

martes, 18 de octubre de 2011

INFORMACIÓN SENSITIVA

A lo largo de la historia ha existido el robo de información principalmente en los gobiernos, en el sector privado y ahora en lo individual convirtiendonos posibles en víctimas de fraudes, extorsiones y lo más drástico el secuestro.

Uno de los problemas es el uso excesivo y la dependencia que existe hacia las tecnologías de la información en donde almacenamos datos de nuestra actividad personal y laboral, la protección de la información es una combinación entre tecnologías y buenas prácticas de uso de información, esta última es responsabilidad del usuario.

La información sensitiva se intregra y se relaciona en el sistema nervioso central, por ejemplo una gota de lluvia en la mano o el perfume de una rosa es información sensitiva, a nivel seguridad informática la información sensitiva es aquella que se relaciona o que puede llegar a mover fibras sensibles: número de cuenta bancaria, de tarjetas de crédito, contraseñas, apellidos de familiares, domicilio detallado, propiedades, etc.

Cuidemos pues la divulgación de esta información, ya que ninguna tecnología de seguriad como por ejemplo la criptografía nos puede ayudar si nosotros entregamos en charola de plata nuestra información; para que  quede más claro, los servidores de Banorte puden estar muy protegidos, dificilmente alguién podrá obtener de ahí tu NIP o tu número de cuenta, pero, si tu la digitas en cualquier formulario de la red  pues sale sobrando la inversión de Banorte y al rato te clonan tu tarjeta o te hacen compras sin tu permiso.

Es común escuchar en las declaraciones de las víctimas de extorsión la misma historia, una y otra vez,  "es que se sabían el nombre de mi hermano, de mi mamá, de mi sobrino", "es que le llamaron al mismo tiempo  a mi tio", etc, ¿de donde creen ustedes que un extorsionador saca esos datos?... lo dejo de tarea.

viernes, 14 de octubre de 2011

Aprender a programar en diez años


Si le dices a alguien que necesita diez años para ser un buen programador tal vez decida dedicarse a otra cosa, más aun, si esta persona es adulta, en mi experiencia como maestro de guitarra desde que tuve la necesidad de transmitir este conocimiento lo primero que me dijo mi alumno fue precisamente esa pregunta ¿cuanto tiempo necesito para tocar la guitarra? y siempre he dado la misma respuesta, “Para tocarla necesitas unas horas, para tocarla bien necesitas toda tu vida y para trascender necesitas de un don”, del mismo modo concibo a la programación, el famoso hola mundo creado por cierto por Deniss Ritchie (1941-2011), puede ser hecho por cualquiera en pocos minutos y en cualquier lenguaje lo que no te hace un programador y menos un conocedor de lenguajes, sin embargo es posible que cualquier persona realice pequeños proyectos en cualquier lenguaje en poco tiempo de estudio.

Este ensayo no pretende calcular el tiempo que lleva a alguien a realizar un proyecto de programación, depende de la persona, el lenguaje y por supuesto de la dificultad del proyecto, la programación no debe aprenderse por necesidad sino por verdadero interés, no es como aprender a realizar escritos en computadora para cubrir las necesidades de un empleo, la programación va más allá de la técnica y la práctica es desarrollar nuestros sentidos más artísticos lo que probablemente sí nos requiera muchos años, aunque alguien estudie pintura 80 años de su vida no le asegura pintar algo superior a “La Gioconda”, claro, no significa tampoco que debemos resignarnos a estar por debajo de los grandes programadores simplemente se trata de poner los pies sobre la tierra y ponerse a trabajar.

No serán los libros, ni la escuela, ni los maestros, ni los otros programadores, ni tu dedicación lo que te lleve a ser un gran programador sino una mezcla de todos estos y otros elementos cualquiera que crea que va a sobresalir con una sola de estas herramientas está equivocado, son magnificas las metodologías nos hacen ver seguros y rentables con nuestros proyectos pero si no nos aventuramos al código, a experimenta, equivocarnos, enredarnos de el, terminaremos haciendo proyectos demasiado planos y poco innovadores toda actividad debe contar con equilibrio y esta no es la excepción.

Por último amigos les comento que muchos de los informáticos ahora hombres más ricos del mundo lo hicieron a base de un pedazo de código y que su fama los ha llevado a ser considerados como genios de la computación, simplemente crearon una Gioconda Codificada (Google, Apple, Microsoft, Facebook), y todos nos maravillamos con su luz, así que mis queridos nuevos programadores en sus manos está el futuro y tal vez llegue antes de diez años, si es así sigan perfeccionando su técnica y si no, no pierdan la calma cada día deben mejorar en algo su programación orientada a sus sentidos.
http://loro.sourceforge.net/notes/21-dias.html

lunes, 3 de octubre de 2011

La batería para móviles de NTT Docomo que se carga en 10 minutos

Se trata de una delgada “mochila” que se acopla al dispositivo y que puede conectarse a la red eléctrica mediante un cargador de ultra alta velocidad. El prototipo es experimental y en NTT Docomo aun no saben cuándo estaría disponible para comercializarse, pero expresan su deseo de que será “tan pronto como sea posible”.

El prototipo de este nuevo tipo de baterías que tan felices nos haría de momento sería un accesorio para un modelo de NEC disponible únicamene en Japón, el smartphone Medias.

domingo, 18 de septiembre de 2011

Curso de Diseño Vectorial

Este lunes 19 inicio un nuevo curso de diseño, Corel XV, Ilustrador CS5 y por supuesto y como en todos mis cursos fomentaré el uso de software libre en este caso le tocará a Inskcape.

sábado, 10 de septiembre de 2011

Calcular Factorial

// Autor: Juan Carlos Castillo Vazquez
// eMail: grupobacara@hotmail.com
// Blog: http://presentessistematicos.blogspot.com/
// Clase: Factorial
// Creado: 10/09/2011
// Modificado: 10/09/2011
// Nota: Proyecto de tarea para hoy (El factorial de un número
//           es la multiplicación de los
//           números que van del 1 a dicho número.


import javax.swing.JOptionPane;

public class Factorial
{
    public static void main(String[] args)
    {

    double factorial = 1;
    double numero=0;
    String xnumero;

    xnumero = JOptionPane.showInputDialog("Escriba el número para obtener el Factorial");
   
    numero = Integer.parseInt(xnumero);

    while ( numero!=0) {
          factorial=factorial*numero;
          numero--;
        }
   
        JOptionPane.showMessageDialog(null,factorial);


    System.exit(0);
    }

}

jueves, 8 de septiembre de 2011

SugarSync

SugarSync servicio de alojamiento de archivos multiplataforma en la nube, 5 GB gratis. La carpeta mágica es fabulosa, en linux utilizo UbuntuONE pero en Windows una de las mejores opciones es https://www.sugarsync.com/

miércoles, 7 de septiembre de 2011

Hola mundo en Java

// Autor: Juan Carlos Castillo Vazquez
// eMail: grupobacara@hotmail.com
// Blog: www.presentessistematicos.blogger.com
// Clase: HolaMundo
// Creado: 05/09/2011
// Modificado: 05/09/2011
// Nota: Este es mi primer proyecto en java como IDE utilizo easyeclipse desktop 1.3.1.1

public class HolaMundo

{
   public static void main(String[] args)
   {
   System.out.println("Hola Mundo estoy en Java !");
   }

}