Mostrando entradas con la etiqueta problemas. Mostrar todas las entradas
Mostrando entradas con la etiqueta problemas. Mostrar todas las entradas

8 de mayo de 2010



Desde los cambios recientes de privacidad en Facebook, existen buenas razones por las cuales deberíamos considerar la eliminación de nuestra cuenta, he aquí 4 interesantes razones:


1.- Los términos del servicio benefician solo a Facebook

Los términos del servicio de Facebook es ese montón de letras pequeñas que salen cuando creas tu cuenta y uno al confiar en ellas simplemente le hace click a ACEPTO.

Pues bien en esos términos de servicio el único beneficiado es Facebook, haciendo el cambio en enero de este año.
  • Según la sección 2.1 dice que no solo ellos son propietarios de tu información, entonces aparte de Facebook quién más puede saber que hago, cómo, miro, escucho o descargo?
  • La sección 4.6 dice que si tu no tienes tu información exacta y al día ellos puedes borrar tu cuenta (sección 14). Como ven esos términos son para proteger el negocio de Facebook y no tienen ningún sentido para el usuario.

Para ponerlo más sencillo y claro, Facebook ve a sus usuarios como empleados no pagados y son utilizados como método de estudio publicitario para las empresas.

2.- Hasta tus datos privados son compartidos con las aplicaciones

Todos tus datos son compartidos con las aplicaciones que tú instalas. Lo que significa que ahora no solo confías en Facebook, sino que también en los desarrolladores de aplicaciones que muchas veces son muy pequeños y no se preocupan mucho acerca de la seguridad de tus datos.

Eso significa que todos tus datos se deben considerar públicos, a menos que tu simplemente nunca uses ninguna aplicación de Facebook. Junto ahora con OpenGraph, tu ahora no solo confías en Facebook sino en el ecosistema creado por ellos.

3.- Facebook hace increíblemente dificultoso borrar tu cuenta

Si nos convencemos de que Facebook no es nada seguro, y quisiéramos borrar nuestra cuenta… no será nada fácil.

Ellos nunca prometen acerca de borrar todos tus datos y los datos que dejaste en cada aplicación por ejemplo. Pero lo peor de todo es que borrar tu cuenta de Facebook es increíblemente confuso (y lo hacen a propósito).

Cuando tu vas a tu configuración de cuenta, hay una opción de "desactivar tu cuenta", que no es lo mismo que borrar tu cuenta. Desactivar significa que tu vas a seguir etiquetado en Facebook y recibirás spam de Facebook, de ahí cuando lo vuelvas a reactivar todo volverá como lo habías dejado, es decir que es lo mismo dejar de logearse a Facebook que desactivar tu cuenta.

Para realmente borrar tu cuenta de Facebook, primero debes hacer 5 clics antes de ir a la página de borrar tu cuenta (o puedes hacer 1 click aquí). Simplemente Facebook hace difícil que borres tu cuenta para que no lo hagas.

4.- Facebook realmente no sirve para nada

Facebook es casi completamente inútil para uno. Además de la lentitud de la página cuando cargas tu wall por todos ¨Quiz¨ que tus amigos te han mandado, muchas veces sin que ellos se enteren, en ese momento Facebook se volvió molesto en vez de necesario.

Sería mejor si tuviera una mejor navegación, con la opción de configurarlo sin que moleste.


Facebook es una moda y eso Zuckerberg lo sabe y no quiere que eso pase, por eso todos esos cambios y cosas que sacan, pero como saben hasta las redes más grandes y prometedoras pueden caer (así como le paso a MySpace)


Enlace | Ver más razones

Deja tu Comentario.



Quieres leer más post como éste???...suscribete aquí!!!

20 de diciembre de 2009

Que nos hackeen nuestra cuenta Gmail, no sólo puede significar perder el acceso a nuestro correo, sino que este cliente de correo de Google está vinculado a otras cosas (como Google Talk, Google Docs y en algunos casos, incluso a Google Checkout, con nuestra información bancaria).

¿Cómo pasó?

Recibía varios correos indicando que alguien más estaba solicitando un cambio de contraseña a Gmail, los ignoraba, pero a los minutos, cuando intentó revisar su correo éste mostraba un error, el password estaba equivocado.

Aparentemente, de alguna manera lograron infiltrarse a su correo, y modificar la contraseña, efectivamente dejándolo fuera. Una muy posible razón: una débil pregunta de seguridad.

¿Qué hacer en esos casos?

Lo primero, por supuesto, no entrar en pánico, pues necesitaremos una mente tranquila para llenar algunos datos.

Existen formularios que podemos llenar para restaurar nuestra cuenta y verificar que somos los dueños de las mismas. El formulario para verificar nuestra cuenta, está aquí. Es importante que recuerden cosas como
  • la fecha de creación sobre la cuenta,
  • qué otros servicios de Google utilizan, y
  • cuando empezaron a utilizarlos.

Al enviar este formulario, los encargados de Google verificarán la autenticidad de los datos proporcionados, y recibiremos información al respecto.

¿Cómo evitarnos este problema?

No es 100% efectivo. Pero si quieren evitar estos problemas, aquí tienen algunos tips:

  • Pongan una contraseña fuerte. Esto es lo más importante. Además, asegúrense de modificarlo regularmente.
  • Acto seguido, añadan un teléfono móvil / celular como referencia. Así recibirán un SMS con un código cuando necesiten cambiar de contraseña (y así, será más difícil que dicha persona consiga tener acceso a este código de reseteo de contraseña). Esto pueden hacerlo desde aqui
  • Pongan una pregunta de la que sólo ustedes conozcan la respuesta. Nada de “nombre de mi perro”, o “primer colegio”. Lo pueden modificar también aquí.
  • Mientras estén aquí, asegúrense de tener otra cuenta de correo “secundaria” donde podrán recibir una contraseña nueva. Además, asegúrense de que esta cuenta tenga otra contraseña totalmente diferente, y que, por supuesto, los correos que ésta cuenta reciba no sean enviados automáticamente a la principal.
  • Apunten en un papel la fecha en la que crearon su cuenta de Gmail, además de la fecha en la que empezaron a utilizar otros servicios de Google, pues si tenemos que llenar el formulario de verificación de cuenta, necesitaremos estos datos.
  • Si utilizan Gmail desde una PC pública, por supuesto, no se olviden de cerrar sesión cada vez que dejan de utilizarla.
Una vez que hayan hecho todos estos cambios, no se olviden de probarlos! Salgan de su cuenta, y traten de hacer el proceso de recuperación. Así se asegurarán de que el mensaje de texto por teléfono llega a nuestro celular, y que nuestras cuentas de correo secundarios recibirán el mail adecuado.

Con la importancia que tiene una cuenta de Gmail hoy en día, es vital saber que, si lo peor ocurre, podremos recuperar nuestra cuenta en el momento más crítico.




Deja tu Comentario.




Quieres leer más post como éste???...suscribete aquí!!!

7 de octubre de 2009

Nadie nace sabiendo ni siendo un experto en cualquier tema. Todo lleva un tiempo de aprendizaje, de práctica y de aplicación. Desarrollar programas eficaces y funcionales para microcontroladores no es la excepción de esta regla. En este artículo no aprenderás a programar sino que encontrarás los consejos más importantes que te guiarán por el camino menos frustrante hacia una realización exitosa. Participa de los mejores consejos que se brindan en los foros más importantes de toda la Web y descubre los secretos que utilizan los programadores más avezados. Entra al mundo geek y sé parte de él.

Foros, listas de correo, blogs, YouTube, MSN y muchos otros medios son utilizados en la Web para permitir que la gente pueda comunicarse entre sí y pueda ayudarse mutuamente en los temas referentes a microcontroladores. Luego de recorrer durante algunos años muchos de estos espacios en busca de información y conocimientos, he encontrado que la mayoría de los interrogantes y consejos que se brindan a quienes recién comienzan en el mundo de los microcontroladores se reiteran una y otra vez en todos los lugares. Pareciera que las dudas y las preguntas son siempre las mismas.


La razón es muy obvia y sencilla: cada día hay más gente con ansias de aprender, y como sabemos que tú eres uno de ellos, hemos preparado un pequeño listado de las cosas más importantes a tener en cuenta al momento de iniciarte en este apasionante mundo de los microcontroladores.

Al comenzar, las dudas son interminables y los miedos al fracaso suelen ser los culpables de que muchos abandonen su interés por el mundo de los microcontroladores. No hay que dejar de tener en cuenta que la información está tan dispersa en la red que encontrar lo que estamos buscando es a veces más difícil que ver abrazados a Bill Gates y a Steve Jobs. Por eso, si estabas a un paso de comenzar a trabajar con microcontroladores y no encontrabas la puerta de acceso, ven con nosotros, lee estos pequeños “Tips”, apréndelos, ponlos en práctica y deslúmbranos con tu creatividad.

1 - El Datasheet del microcontrolador
Una de las mayores razones de confusión y de complicaciones al desarrollar un proyecto es la falta de información del microcontrolador que se desea utilizar. Las hojas de datos son los documentos más importantes que debemos acopiar al momento de decidirnos e inclinarnos por un determinado tipo de microcontrolador.

Por ejemplo, si en tu diseño vas a utilizar un PIC 16F877A, debes imprimir, leer y recurrir a sus hojas como si fuese El Libro de la Verdad Absoluta. Todas las respuestas están allí. Todo lo que necesitas saber está allí. No te permitas iniciar un desarrollo sin haber leído las hojas de datos del microcontrolador que utilizarás. Un registro mal “seteado” y nada funcionará. Desde la configuración inicial del dispositivo (fuses), pasando por los registros de los ADC (Analog to Digital Converter) o los módulos CCP que te permiten obtener señales PWM, hasta la mismísima configuración del reloj o clock del sistema. Todo está allí.

2 - Piensa en tus objetivos, sueña con ellos.
¿Qué deseas lograr con tu desarrollo? Pensar en la idea final nos suele llevar a visualizar en la mente el proyecto terminado y consolidado en un prototipo funcionando a la perfección. ¿Qué componentes adicionales necesitaría? ¡Ah! ¿Tengo esos componentes? Luego de que ya hayas dado vuelta todos los estantes y cajones buscando ese material que te faltaba, comienza a anotar los que te hagan falta, los que no tengas. No abuses de tu memoria para recordar todo lo que necesitas comprar en la tienda; coloca en ella tu desarrollo y utilízala como un microcontrolador: optimiza este recurso y utilízalo sólo para ampliar y perfeccionar tu proyecto. Los materiales que hacen falta no deben ocupar espacio en tu mente; haz un listado minucioso y detallado para no hacer dos viajes y listo.

3 - No quieras correr antes de empezar a caminar
Uno de los errores más comunes de los que recién se inician es querer obtener más de lo que pueden llegar a comprender. No intentes hacer como primer trabajo un Cartel Luminoso de LEDs para venderlo en los estadios de fútbol y volverte millonario la semana próxima. Ni siquiera pretendas construir y empuñar el Sable Láser de Obi-Wan Kenobi y ser la envidia del colegio. ¡No, no!

Si no tienes noción de la complejidad del proyecto que emprenderás es porque no has leído o interpretado el punto anterior. Las frustraciones provocadas por los fracasos en los primeros intentos aniquilan la confianza en nosotros mismos y arruina toda la diversión que significa construir y materializar nuestros sueños mientras vamos aprendiendo. SIEMPRE comienza con lo más elemental y, a medida que los éxitos comiencen a llegar, puedes ir agregando complejidad a los diseños. Además, cualquier programador experimentado te dirá que su primer trabajo fue escribir “Hola Mundo” en un display o un LED titilando . Quien diga que no, te miente cobardemente.

Comienza a caminar comprendiendo los conceptos básicos y la terminología técnica y desarrolla pequeños proyectos de luces, motores o pantallas LCD. Luego, comienza a hacer un poco de jogging y trote liviano con algo más complejo como letreros de luces y pequeños controles de los que se utilizan en industrias. La domótica y lamecatrónica son dos campos muy interesantes y amplios como para sumar buena experiencia. Si no salteas ninguno de los pasos, muy pronto estarás corriendo grandes competencias a la par de los profesionales.

4 - Corta la pizza en porciones, no la comas entera
Por más simple que sea un proyecto, siempre es bueno dividir en bloques o pasos la tarea a realizar. Silbar y comer maní son cosas muy habituales y sencillas de hacer, pero concretarlas al unísono no es algo fácil. Organízate y prepárate a trabajar por partes. Primero ESTO, luego ESTO OTRO y al final AQUELLO. Intentar hacer todo a la vez o en forma desordenada sin un patrón de acción puede ocasionarte errores al momento de construir el proyecto. Por ejemplo, si decides incorporar un Puente H para mover un motor, contrólalo antes de conectarlo al microcontrolador. Es decir, conéctalo y pruébalo en forma independiente para saber que el mismo funciona. Así con todos los bloques en los que puedas sub-dividir tu proyecto.

5 - No sólo la fuerza te guiará

Tus inspiraciones serán una avalancha de imágenes y pequeños trailers en tu imaginación, pero en el teclado deberás actuar de manera puramente lógica. El número uno, nos guste o no, está antes que el dos. Primero el cero, luego el uno, después el dos, el tres y así en adelante. Siempre es así y nunca cambia esa realidad, a pesar de las paradojas de Ariel Palazzesi. Los programas funcionan así. Obtenemos la variable A y la transformamos en B; le sumamos C y el resultado se muestra en el paso D, y así se encadenan los procesos individuales que desembocan en el resultado final del programa. Nada es al azar, ni porque se le ocurra a Max Ferzzola. Los programas siguen un razonamiento lógico y, por lo tanto, los microcontroladores también. Si tu mente se acostumbra a razonar de esta manera, programar será un juego de niños para ti.

6 - El pseudo-código también es lógico.
Te puede parecer arcaico, poco profesional y hasta una pérdida de tiempo, pero escribir en un papel todos los pasos que seguirá tu programa puede ser una ayuda muy importante mientras vas redondeando la idea final.

Por ejemplo:

  • Necesito una variable (A) que contenga un valor 20 al iniciar.
  • También otra (B) que valga 18 en el mismo momento.
  • Después las sumo y coloco el resultado en una tercera variable que se llamará C.
  • Las muestro en el display .

En un programa en lenguaje BASIC eso resulta ser:

A = 20
B = 18
C = A+B
Print at 1,1, Dec C

Escribir la secuencia de acciones que queremos que nuestro programa realice nos permitirá modelarlo a nuestro gusto y requerimiento, además de optimizarlo.
Cuando lo aprendes en la escuela, te lo enseñan como Diagrama de Flujo y puede que con el tiempo te olvides de él, pero cuando lo aprendes por ti mismo, razonando los pasos a seguir, no lo olvidas nunca.

Algo que puede parecer muy intrascendente, pero que es de vital importancia, es “comentar” cada línea de código que escribamos. Aunque creamos que es inútil, si no lo haces, terminarás arrancándote los cabellos una semana después al no darte cuenta qué es lo que quisiste colocar allí o por qué llegaste a ese lugar dentro del programa. Que hoy los comentarios te ocupen 10 renglones por cada línea de código significará que el próximo mes te ahorres 10 horas de trabajo intentando descubrir qué intentaste hacer allí.

7 -Organiza y guarda estructuras pre-armadas.
A medida que vayas utilizando un microcontrolador en particular (siempre seleccionamos uno “preferido”) y comiences a utilizarlo reiteradamente, te resultará cómodo tener a mano una estructura estandarizada de conexiones y bloques de programas. Es decir, si acostumbras a utilizar un microcontrolador X, si siempre utilizas la misma frecuencia de cristal oscilador, si siempre utilizas el mismo tipo de LCD, y si además también conectas siempre tus desarrollos a un ordenador a través de un puerto RS-232, tendrás siempre un gran bloque de programa que se repite diseño tras diseño.

Cuando comienzas a darte cuenta que muchos de tus diseños repiten pasos o bloques, allí empiezas a armar tus “templates” que son plantillas pre-armadas de cosas que se reiteran habitualmente. Consérvalas y organízalas en lugares prácticos y de fácil acceso. Te servirán para ahorrar mucho tiempo al momento de iniciar el diseño de un nuevo proyecto. Aprovecha el trabajo que ya tienes hecho y que sabes que funciona.

8 - No preguntar hasta agotar las posibilidades de conocimiento.
En la mayoría de los foros o grupos de correo que aglutinan a miles de entusiastas de los microcontroladores sería muy fácil registrarse gratis, realizar consultas y, una vez que nos brindan las respuestas, seguir adelante. Además, en esos lugares siempre hay gente bien dispuesta a brindar ayuda. Trata de no hacerlo hasta el final de tus posibilidades. Lee las hojas de datos de los materiales que te están complicando el diseño, busca dentro de los foros, utiliza Google, lee algún libro relacionado al tema, busca hasta el cansancio en la ayuda del programa (Help) y, como último recurso, pregunta a otros.

Si ante el menor inconveniente acudes a otras personas para que te resuelvan los problemas, nunca aprenderás lo suficiente. Además, cuando te den la solución a tu problema, no sabrás entender que dicha solución sólo la pudiste obtener allí porque no tienes idea de lo que buscas. Todos siempre necesitamos una ayuda hasta en la tontería más insignificante, pero la comodidad y la holgazanería de que otros te hagan el trabajo no es un buen negocio para un programador. Por último, si pides ayuda, demuestra haber hecho tus intentos de solución contando lo que has realizado y los resultados que has obtenido. Si no haces nada, y sólo te limitas a pegar el enunciado que te han dado tus profesores, no esperes que alguien te ayude.

9 - La frustración es el enemigo a vencer.
Trata de no abandonar los proyectos porque algo no funcionó como esperabas. Descubre en esas oportunidades un reto o un desafío antes que un fracaso. Siempre es bueno mantenerse tranquilo y calmo a pesar de que nuestros circuitos echen humo por los cuatro costados. Todo error que se busca, al encontrarlo y solucionarlo, es un aprendizaje que queda grabado. Puede sonar muy extraño pero la asimilación del conocimiento es directamente proporcional al daño provocado. Es decir, cuanto más grave y más caras sean las roturas, mayores serán los aprendizajes de saber qué es lo que NO se debe hacer y por qué suceden algunas cosas.

No fue Dios el culpable de que algo no nos funcionara, sino que somos nosotros los que hemos metido mal algún cable. Un buen paseo, una buena caminata y al día siguiente retomar el trabajo es una de las mejores formas de vencer la frustración. Por eso, siempre hay que revisar, revisar, revisar y volver a revisar todas las conexiones antes de conectar la energía al circuito. Nada debe dejarse librado al azar y mucho menos restarle importancia creyendo que hemos hecho bien las cosas. Todos somos humanos y podemos cometer el error más infantil que puedas imaginar. No olvides que muchas veces una parte del éxito es una sumatoria de aprendizajes brindados por los fracasos.

10 - Google es el mejor amigo del hombre (programador)
Si lo que buscas no está en Google, es porque no existe y eres un pionero en la materia. Toneladas de material que puede ayudarte está allí en Google esperándote para poner en marcha tu proyecto. En castellano, en inglés o en arameo antiguo, lo que necesites estará en texto, imágenes y video. Nunca dejes de consultar en Google antes de preguntar tus dudas a otros.

Conclusiones
A cada momento puedes descubrir un nuevo modo de estructurar un programa. Disfruta de cada LED que puedas hacer brillar y no lo tomes como algo más; detente y tómate un tiempo para analizar tu buen trabajo. Sin caer en narcisismos banales, aprovecha cada buena rutina de programa para limpiar de tus hombros los fracasos y las tristezas de los códigos que no te funcionaron. Siempre nos parece que los fracasos son demasiado pesados. Solo en tu fuerza interior está la manera de hacer que las alas que te brinda la concreción de un buen trabajo inclinen la balanza y venzan el peso de las frustraciones.

Olvídate de frases bochornosas como “Pues es raro…”, “Nunca había pasado antes”, “Pues ayer funcionaba…” o el clásico y nunca bien ponderado “Debe ser un virus…”. Si no enfrentas el problema, nunca podrás vencerlo, y si no abres tu mente y te cierras con terquedad sin intentar realizar otros caminos, nunca esperes resultados diferentes.

Si has leído hasta aquí y eres un programador con experiencia, seguramente tendrás más consejos para aquellos que recién comienzan. Te invitamos a que los agregues en los comentarios. Gustosamente leeremos tus aventuras y desventuras como programador. Recomendación: No cuentes sólo las ganadas.


Deja tu Comentario.



Quieres leer más post como éste???...suscribete aquí!!!

7 de julio de 2009

Como usuarios de productos de Microsoft que son probablemente saben que Microsoft publica actualizaciones de seguridad el segundo martes de cada mes.

Sin embargo, esta vez hay un agujero de seguridad crítico en Internet Explorer 8 que aún no han parcheado, y es tan grave que Microsoft ha emitido un aviso y una solución provisional, hasta que ofrezcan un parche que corrija definitivamente el fallo, posiblemente dentro de una semana.

Vulnerabilidad

La vulnerabilidad detectada, permite a un atacante infectar un PC bajo Windows XP o Windows Server 2003 tras pulsar en un enlace de vídeo en Internet Explorer. Lo peor, es que permite la ejecución de código arbitrario bajo los mismos permisos que tenga el usuario en el PC (que por lo general, y por más que recomendemos lo contrario, son los de administrador).

Y no se trata de un caso hipotético, ya que en la nota de Microsoft queda claro que son conscientes de que ya se ha explotado esta vulnerablidad. En el enlacepodrán realizar la desactivación del control afectado de forma automática o manual.

Enlace para solucionar el problema | Microsoft


Deja tu Comentario.



Quieres leer más post como éste???...suscribete aquí!!!

24 de junio de 2009

Tal como dice Google:

"¿Te gusta resolver problemas difíciles y enfrentarte a retos técnicos?

¡Entonces participa en Google Code Jam!"


Para quien no esté al tanto

Google Code Jam es una competición donde programadores profesionales y aspirantes deberán resolver complejos algoritmos en un período de tiempo limitado. Más all
á de algunas reglas, la competencia es completamente libre y cada participante puede elegir el lenguaje de programación y el entorno de desarrollo que prefiera utilizar.

En 2008, más de 11.000 personas de más de 128 nacionalidades participaron de dicha competición. ¿Cuántas personas podrá conseguir Google para este año?

El plazo de inscripción comenzó el 17 de junio y será hasta el 17 de julio. Luego, en agosto, se llevarán a cabo rondas online entre participantes de todo el mundo. Los 500 mejores se enfrentarán a los de su región en una de las oficinas locales de Google, dependiendo de su locación. Finalmente los 100 mejores participaran en la ronda final en las oficinas centrales de Google en Mountain View, el 14 de noviembre.


Premios

Por supuesto, como en toda buena competencia hay buenos premios y esta no es la excepción. No solo los primeros tendrán premios, sino que también quien haya salido en el puesto número 100 recibirá $250 dólares. Desde allí escala hacia arriba con el tercero ganando $2.500, el segundo $5.000 y el ganador $10.000.

En caso de que estés interesado te recomendamos dirigirte al sitio oficial y leer las reglas y las fechas claves.

ACTUALIZACIÓN: Al parecer, nos dejamos llevar por el entusiasmo, porque Google aún no ha anunciado el Code Jam 09. Como bien nos indicó el lector Joshi en los comentarios, la página en la que basamos este post es del año pasado (abajo, muy chiquito, dice 2008). Les pedimos mil disculpas por el error y por cualquier perjucio que les haya ocasionado. ¡Y gracias a Joshi por el aviso!

Enlace | Google Code Jam


Deja tu Comentario.



Quieres leer más post como éste???...suscribete aquí!!!

17 de febrero de 2009

Un método interesante y que resulta una alternativa en una aplicación de procesamiento digital de señales de audio, es reproducir la señal a procesar, de manera tal que podamos distinguir el sonido que esta representa. En este post se presenta el código fuente en Java para realizar la reproducción de archivos de audio en Java.

El código fuente de la clase Reproducir del paquete Audio jace uso del paquete javax.sound.*; y se muestra a continuación.
  1. package Audio;
  2. import javax.sound.sampled.*;
  3. import java.io.*;
  4. /**
  5. *
  6. * @author GhostLeader
  7. */


  8. public class Reproducir {
  9. private AudioFileFormat aff;
  10. private AudioInputStream ais;
  11. private File sf;


  12. public Reproducir(String ruta)
  13. {
  14. sf = new File(ruta);
  15. }
  16. /*Ejecución de sonido*/
  17. public void playAudio()
  18. {
  19. try
  20. {
  21. aff = AudioSystem.getAudioFileFormat(sf);
  22. ais = AudioSystem.getAudioInputStream(sf);
  23. AudioFormat af = aff.getFormat();
  24. DataLine.Info info=new DataLine.Info(Clip.class,ais.getFormat(),
  25. ((int) ais.getFrameLength()*af.getFrameSize()));
  26. Clip audio = (Clip)AudioSystem.getLine(info);
  27. audio.open(ais);
  28. audio.loop(0);//Clip.LOOP_CONTINUOUSLY
  29. }
  30. catch(IOException ea){}
  31. catch(LineUnavailableException LUE){};
  32. }
  33. }

El parámetro de entrada es simplemente la ruta del archivo de audio que se desea reproducir. Espero les sea de utilidad.

Fuente: Jorge Valverde Rebaza

Deja tu Comentario



Quieres leer más post como éste???...suscribete aquí!!!

21 de enero de 2009

El problema de las torres de hanoi es juego matemático inventado en 1883 por el matemático francés Éduard Lucas. En esta entrada comparto el código recursivo escrito en Prolog para resolver el problema de las torres de hanoi para N discos.


Este problema consiste en 3 varillas verticales y n discos que determinarán la complejidad de la solución. No hay dos discos iguales, están colocados de mayor a menor en la primera varilla ascendentemente, y no se puede colocar ningún disco mayor sobre uno menor a él en ningún momento. El problema consiste en pasar todos los discos a la última varilla colocados de mayor a menor ascendentemente.

El código en prolog que soluciona recursivamente el problema de las torres de hanoi es el siguiente:

  1. hanoi(0,_,_,_).
  2. hanoi(N,Origen,Auxiliar,Destino):- N1 is N-1,
  3. hanoi(N1,Origen,Destino,Auxiliar),
  4. def_pasos(Origen,Destino),
  5. hanoi(N1,Auxiliar,Origen,Destino).
  6. def_pasos(Origen,Destino):-
  7. write(' desde '),
  8. write(Origen),
  9. write(' hasta '),
  10. write(Destino),
  11. write('\n').

Donde N es el número de discos (mayor o igual que 3), Origen indica el nombre de la varilla inicial (por ejemplo var1), Auxiliar es el nombre de la varilla intermedia (por ejemplo var2) y Destino es el nombre de la 3º varilla (por ejemplo var3). Se debe crear un procedimiento principal que haga el llamado respectivo a la funcion hanoi().


Espero les sea de utilidad, saludos.

Fuente: Jorge Valverde Rebaza


Deja tu Comentario



Quieres leer más post como éste???...suscribete aquí!!!

3 de noviembre de 2008


Subscribirse


Antes que nada, vean el video de arriba.



Listo? Ahora, denle un vistazo a su navegador. Probablemente, si estan usando Firefox o Internet Explorer, han visto un i­cono como este, al lado de la direccion del mismo blog:feedicon



07-06 -23 region 0008



En Internet Explorer 7, lo veran asi­:



07-06 -23 region 0012



Eso es basicamente la base del RSS. Es un sistema que nos permite enterarnos de las actualizaciones de las paginas que frecuentamos, sin tener que visitarlas directamente.



Digamos que, en un dia, leen el blog de [Sistemas UNSA], pero tambien, visitan genbeta, xyberneticos, jpjuegos, pescadolimon, ghacks, lifehacker, download squad o cualquier otro blog o pagina web. La mayori­a de estas paginas, contaran todas, con un i­cono como ese feedicon



Bien, si es asi­, significa que podremos ver las actualizaciones de todos esos sitios en un solo lugar, sin tener que ir visitando, independientemente, uno por uno.



Como se imaginaran, es un enorme ahorro de tiempo, pues no solo nos evitamos cargar, a cada rato, el diseño de la página, sino que seremos notificados inmediatamente de las actualizaciones que se lleven a cabo en dicha pagina. Esto se llama, comunmente, “sindicacion” de paginas.



Poniendolo en un caso practico, imagi­nense el leer un diario. Usualmente, que es lo que nosotros hacemos? Pues leer primero los titulares y, si la noticia nos interesa, pues la leemos entera. Lo mismo ocurre con los RSS “feeds”: Nos permite ver las noticias velozmente, sin tener que cargar todo el diseño de la pagina y, de interesarnos algo en dicha noticia, pues le hacemos click.



Un ejemplo?



Aqui­ el blog de [Sistemas UNSA] desde la misma pagina web



07-06 -23 region 0009



Y aqui­, lo mismo, pero desde Google Reader.



07-06 -23 region 0010



Como pueden ver, vi­a Google Reader, que es un “lector” de RSS (es decir, nos permite ver diferentes blogs / paginas a la vez), la carga del arti­culo es mucho mas veloz, porque no es necesario cargar toda la interfase de la pagina web. Oh, claro que en el blog de [Sistemas UNSA]se ve mas bonito (gracias, gracias), pero el contenido es, al fin y al cabo, lo que importa, no?



[Sistemas UNSA] es tan solo uno de los cientos de paginas web que podemos revisar rapidamente, desde el mismo lugar! Basta con elegir que cosa queremos leer, que pagina queremos ver actualizada, y la veremos aqui mismo, sin demora. Y claro, con la ventaja, de que este lector de feeds, Google Reader, se mantiene actualizandose continuamente, para asi­ mostrarnos las noticias apenas aparezcan.


En resumen…

Resumiendo, los RSS “feeds”:


  • Son una manera diferente de leer el contenido de las paginas web.


  • La pagina “nos avisa” cuando es actualizada, en vez de estar nosotros visitandola constantemente en un afan por ver novedades


  • En vez de visitar una por una, podemos ver un grupo de paginas


  • Mas ligero y veloz que visitar a la misma pagina en si­.

Configurando Google Reader para leer Feeds.


Bien, podri­amos utilizar los lectores de feed que vienen por defecto con Firefox o Internet Explorer 7, pero la verdad, Google Reader ofrece una manera mucho mas simple y ordenada de mostrarlos, asi­ que vamos a utilizarlo para “centralizar” a ambos navegadores, a que usen dicho lector. Y la obvia ventaja es, tambien, no importa en la PC en la que se encuentren, siempre tendran acceso a los mismos arti­culos (a diferencia de alojarlos en el navegador), y ya no tendran que pasar por arti­culos previamente lei­dos si, por ejemplo, leen algunos en la mañana antes de salir al trabajo, y algunos mas en la tarde, cuando tenemos un tiempito.

Bien, lo primero que tenemos que hacer, es dirigirnos a



http://reader.google.com



Y registrarnos con nuestra cuenta de google (la de gmail, por ejemplo).



Una vez hecho esto, cada vez que veamos en alguna pagina el i­cono de los feeds, o sea este: feedicon , en cualquier parte de la pagina, le haremos click derecho, y copiaremos la direccion.



Este proceso, sin embargo, vari­a, de acuerdo a que navegador estemos utilizando.



Con Firefox -> 2 metodos:




El primero, y mas simple, es hacerle click a ese i­cono feedicon, que se encuentra en nuestra barra de direccion. Esto llamara al gestor de feeds de Firefox, que nos preguntara que queremos hacer con el Feed.



Basicamente, nos preguntara que lector queremos usar. Como todo lo haremos con Google Reader, basicamente elegimos “Google” de las opciones presentadas, lo cual nos mostrara algo como esto:



01-07-2007 region 0001



Aquí simplemente le hacemos click a “Add to Google Reader”, y la pagina sera agregada a nuestro Google Reader.



El segundo metodo con Firefox, es buscar el boton del feed en la pagina, o bien copiar la direccion, y, en ambos casos, dirigirnos a Google Reader, hacer click en “add subscription”



07-07 -01 region 0000



y pegar ahi­ la direccion.



En Internet Explorer 7 (o 6, o anteriores)






Actualizacion:



Si guardan este link como “favorito” en Internet Explorer, podrin darle simplemente click, cuando se encuentren en un blog que les gusta, y automaticamente los llevara a Google Reader, para suscribirlos a la pagina.



Suscribete



Lo que tenemos que hacer, es basicamente el metodo 2 de Firefox. Es decir, copiar la direccion de la pagina, dirigirnos a Google Reader, click en “add subscription”, y añadir las paginas.



Una vez que hayamos hecho todo eso, pues bien, ahora podemos categorizar cada una de las paginas. Es decir, haciendo click en “Folder Settings”, podemos crear categori­as. Asi­, por ejemplo, [Sistemas UNSA] puede compartir la categori­a de tecnologi­a dentro de los feeds.



Bien, eso es basicamente todo lo que se debe realizar, para poder empezar a aprovechar el RSS. Es, definitivamente, la mejor manera de leer arti­culos en la Web, pues nos ahorrara un monton de tiempo, si es que visitamos varias paginas al di­a.



Espero que este arti­culo haya servido para explicar algunas dudas que se puedan tener en cuanto al RSS, y bien, que esperan para empezar a utilizarlo!

16 de octubre de 2008

Aunque no parezca que esto tiene mucho que ver con la temática del blog, la tiene.
La Universidad de Valladolid tiene
una web en la que propone unos problemas a resolver programando en cualquier lenguaje (o eso creo) de programación, para luego enviárselo y una vez revisado aparecer en un ranking según bien o mal tu solución.
No deja de ser curioso que la mayoría de los problemas que he visto (he visto pocos) son matemáticos
.
Ya me apunté a ver si hago algunos, aunque cada vez que pienso lo que desaprovecho el tiempo y lo que luego me quejo de tener poco tiempo (viva la procrastinación).