debugsql Mexcoder https://mexcoder.com Programador Mexicano a tu servicio Fri, 22 Jul 2016 18:13:18 +0000 es hourly 1 https://wordpress.org/?v=6.4.3 83137899 Tras los mitos de las baterias recargables https://mexcoder.com/2015/11/21/baterias-recargables/ Sun, 22 Nov 2015 02:28:07 +0000 http://mexcoder.com/?p=2269 ...Continue reading]]> Si no te sientes con ganas de leer y solo quieres saber la mejor manera mantener tu batería en buen estado o de cargarla por primera vez haz click aquí para ir al resumen.https://i0.wp.com/cdn.lopezdoriga.com/wp-content/uploads/2015/10/bateria-de-litio.jpg?resize=361%2C274

Hola, acabo de comprar un portatil dv4 1412 y no se como cargar por primera vez la bateria nueva, he buscado en el manual de instrucciones pero no encuentro cómo hacerlo.

Es la pregunta que ANGELAM realizo en los foros de HP en el 2009 y así mismo es la misma pregunta que todos nos hacemos al adquirir ya se un nuevo smartphone, una nueva computadora o ya incluso cualquier dispositivo con batería recargable.

Y es que aun que parece trivial, hay muchos mitos e información errónea acerca de como se le debe dar el «bautismo» a las baterías de estos dispositivos para que tengan un correcto funcionamiento y una larga vida útil, prueba de esto es la primera respuesta titulada «Consejos para mejorar la carga y rendimiento de la batería» que esta pregunta recibió

la carga de las baterías de los equipos netbook, notebook y tablet debe hacerse de 12 a 15 horas y sin usar (…)

pero también podemos encontrar respuestas completamente opuestas que indican que, con completar la carga basta, pero de ahí se desprenden mas variables, ¿debe estar apagado el equipo?, ¿debo hacer un ciclo completo de carga-descarga para acondicionar la batería?, ¿debo descargar completamente la batería antes de Recargarla?, ¿es debo desconectar el equipo cuando la carga llego al 100%?

Muchos de estos mitos se derivan de las practicas que se debían emplear en las baterías basadas en níquel usadas anteriormente en los productos electrónicos; estas baterías debían ser cargadas (la primera vez) un tiempo extra para asegurar su máximo potencial, también estas baterías sufren del llamado «efecto memoria».

Esto acabo con la llegada de las baterías de litio, que se usan actualmente en la mayoría de los dispositivos, entre ellos las notebooks (laptops), tablets y smartphones. Estas baterías no sufren del efecto memoria y vienen preacondicionadas de fabrica de tal manera que no es necesario realizar un proceso especial como sucedía con las de níquel.

En cuanto al resto de los mitos encontré dos fuentes de información confiables: este documento en ingles de HP y la pagina batteryuniversity.com en ambas podemos encontrar información muy similar y en el caso de estos mitos vemos que la mayoría solo son eso, por ejemplo, en ambas pagina nos dicen que en realidad no importa si la primera carga se realiza prendida o no.

En cuanto al mito del ciclo completo de carga-descarga, es un poco mas complicado, si bien las baterías de litio no sufren del efecto de memoria, el fabricante recomienda realizar un proceso de ajuste, que no es nada mas que realizar un ciclo de carga y descarga al menos cada tres meces o si la batería pasa la mayor parte del tiempo en el 100% cada mes, pero ojo, que esto no significa que la descarguemos hasta el 0% de capacidad, ya que si el voltaje en una batiera de litio baja mas allá del rango preestablecido esta podrida dañarse irreversiblemente, lo que el fabricante recomienda es descargarla hasta aproximadamente el 5% o 10%, pero si estamos en una emergencia y no tenemos acceso a una toma de electricidad, no hay que dejar que cunda el pánico , ya que estas baterías son mas inteligentes que las generaciones anteriores, estas baterías integran sensores de carga, por lo cual la batería no pasara ni del valor minino de carga ni del máximo.

esto nos lleva, también, al rumor que dice que es malo dejarla conectada continuamente ya que la batería se «sobre carga», en el párrafo anterior vimos que los sensores de la batería impiden esto, pero que hay del extremo opuesto, por que no debemos dejar que la batería alcance niveles bajos, el problema es que como con todas las baterías recargables, tenemos un efecto de auto descarga por esto mismo el fabricante nos indica que, de no usarse la batería por un periodo prolongado de tiempo se almacene en un lugar fresco y seco (el calor es el peor enemigo del litio; el fabricante recomienda que se almacenen entre 20 y 25 grados centigrados) y cada seis meses se verifique el voltaje y en caso de que este sea inferior a 50% se recargue minino hasta ese nivel (muchos sugieren valores entre 50% y 70% pero nunca mas allá de estos).

Siguiendo estas recomendaciones podremos conseguir llegar fácilmente a los 300 ciclos de recarga que los fabricantes garantizan en sus baterías, lo cual es aproximadamente un año, pero esto no significa que después de un año tu batería ya no sirva, ya que el fabricante determina que después de los 300 ciclos la bacteria entregara el 80% de su capacidad original; esto se debe a que el proceso químico y el calor entre otros factores hacen que la capacidad de la batería disminuya poco a poco con el tiempo.

y hablando de ciclos de carga, poco importa si cargamos nuestro equipo cuando le quede 10% o 70% ya que un ciclo de carga es acumulativo, es decir es lo mismo si la recargo una vez de 0% a 100% (un ciclo de carga)o si la recargo dos veces de 50% a 100% (un ciclo de carga entre las dos veces) e igual es lo mismo si la cargo 10 veces de 90% a 100% todos estas cargas cuentan como un mismo ciclo.

 

TL;DR; (Resumen)

  • No es necesario hacer un proceso especial la primera carga de nuestro dispositivo.
  • De igual manera en cuanto lo saquemos de la caja podemos comenzar a usarlo.
  • No es necesario descargar completamente la batería antes de recargarla.
  • Cargas parciales no disminuyen el tiempo de vida de la batería.
  • No es necesario desconectar el equipo al llegar al 100%
  • Para prolongar la vida de la batería hay que procurar que no se exponga al calor por periodos largos de tiempo
  • si no se usara la batería por largos periodos de tiempo debe almacenarse en un lugar fresco y seco con temperatura entre 20 y 25ºc, al 50% de su capacidad y recargarla cada 6 meses
  • la batería debe calibrarse haciendo un ciclo completo de carga y descarga (hasta el 5% o 10% aproximadamente) cada 3 meses o cada mes si se usa principalmente conectada a la corriente eléctrica
  • puedes consultar mis fuentes aquí y aquí (paginas en ingles)
]]>
2269
El curioso caso del correo de las 500 millas https://mexcoder.com/2015/01/29/el-curioso-caso-del-correo-de-las-500-millas/ Thu, 29 Jan 2015 21:30:38 +0000 http://mexcoder.com/?p=1177 ...Continue reading]]> Esta historia es una traducción de un correo enviado a la mailing list de los miembros de sage.org en noviembre de 2012, el original (en ingles) lo pueden encontrar aqui.

Fecha: Sabado 24 de Noviembre, 2002 21:03:02 -0500 (EST)
De: Trey Harris ( trey [at] sage.org )
Para: sage-members [at] sage.org
Tema: El caso del correo de las 500 millas (antes RE: [SAGE] ¿Cual es su tarea imposible favorita?)

Aquí hay un problema que *sonaba* imposible… casi me arrepiento de enviar esto a una audiencia amplia por que es una excelente historia para contar entre tragos o en una conferencia. 🙂 La historia ha sido levemente alterada para proteger a los culpables, omitir los detalles aburrido e irrelevantes y en general hacerla mas interesante.

Hace algunos años estaba trabajando como administrador del sistema de email del campus cuando recibí una llamada del presidente del departamento de estadística.

-Estamos teniendo un problema para enviar correos fuera del departamento.

-Cual es el problema – Pregunte.

-No podemos enviar correos a una distancia mayor de 500 millas ( N. del T.: unos 800 kilómetros) – Explico el Presidente.

– Casi me ahogo con mi café. – ¿Como dice?

-No podemos enviar correos mas allá de las 500 millas de aquí – repitió -Un poco mas para ser exactos, digamos unas 520 millas pero no mas.

-umm generalmente el correo electrónico no funciona así- dije, tratando de no mostrar alarma en mi voz, uno no debe mostrar pánico cuando habla con el presidente de un departamento, incluso uno relativamente empobrecido como el de estadística. – ¿Que les hace pensar que no pueden enviar correos mas allá de las 500 millas?

-No es lo que yo *piense* – contesto con irritación el presidente – veras, cuando nos dimos cuenta hace algunos días —

-Espero algunos DÍAS – lo interrumpí con un temblor en mi voz  – Y todo este tiempo no ha podido enviar correos?

-Podemos enviar correos, solamente a no mas de – –

— 500 millas, si – termine por el – Entiendo eso, pero, ¿por que no lo reportaron antes?

-Bueno, no habíamos podido recolectar suficientes datos para estar seguros de lo que esta sucediendo, hasta ahora; de cualquier manara le pregunte a una de las geoestadistas que le echara un ojo  – –

-Geoestadistas…

–Si, y elaboro un mapa mostrando el radio dentro del cual podemos enviar correos, el cual es un poco mas de 500 millas. También hay diversos lugares dentro del radio a las cuales tampoco podemos enviar correos o podemos hacerlo esporádicamente, pero fuera de este radio nunca podemos enviar ningún correo.

-Ya veo – dije mientras ponia mi cabeza entre mis manos – ¿Cuando comenzó esto?, me dice que hace algunos días, pero algo cambio en sus sistemas antes de que comenzara?

-Bueno. el consultor vino para actualizar y reiniciar el servidor. Pero ya le llamamos y dijo que no toco el sistema de correo electrónico.

-Esta bien, déjeme revisar y le devuelvo la llamada. – dije, apenas creyendo que les estaba siguiendo la corriente. No era día de los inocentes. Intente recordar si le debía una broma a alguien.

Ingrese en el servidor del departamento y envié algunos correos de prueba. estábamos en el triangulo de investigación de carolina del norte y un mensaje de prueba a mi propia cuenta fue entregado sin problema, igual para uno enviado a Richmond, Atlanta, Washington y uno mas a Princeton (400 millas).

Entonces  intente enviar uno a Memphis (600 millas), fallo. Boston, fallo. Detroit, fallo. saque mi libreta de direcciones y empece a reducir las posibilidades. Nueva York (420 millas) funciono, pero Providence (580 millas) fallo.

Comencé a preguntarme si me estaba volviendo loco. Intente enviar un correo a un amigo que vivía en Carolina del norte, pero su ISP estaba ubicado en Seattle. Gracias a Dios fallo. Si el problema tuviera que ver con la ubicación física del del humano destinatario y no la de su servidor de correos hubiera roto en llanto.

Habiendo establecido que – increíblemente – el problema reportado era verdadero y repetible, Revise el archivo «sendmail.cf». Se veía muy normal, de hecho, familiar.

busque diferencias con mi propio archivo «sendmail.cf». no había sido alterado, era el mismo archivo «sendmail.cf» que yo había escrito. y estaba muy seguro que no había activado la opción «FALLAR_DESPUÉS_DE_500_MILLAS». perplejo hice telnet al servidor en el puerto SMTP; el servidor felizmente respondo con el banner de identificación del sendmail de SunOS.

Espera un momento… ¿Un banner del sendmail de SunOS? En esos tiempos Sun aun estaba incluyendo Sendmail 5 con su sistema operativo, incluso cuando Sendmail 8 estaba en un estado de desarrollo bastante bueno. Y también siendo un buen administrador de sistemas, había escrito el sendmail.cf con las opciones largas autodocumentables y nombres de variables disponibles en Sendmail 8 en lugar de las versiones cripticas de Sendmail 5.

Todas las piezas encajaron, y casi me hago de nuevo en mi ahora frió café. Cuando el consultor actualizo el servidor, instala la nueva versión de SunOS y haciendo eso *desactualizo* Sendmail. Por fortuna la actualización no toco el archivo de configuración, aunque ahora era la versión incorrecta.

Al parece Sendmail 5 – al menos la versión incluida en SunOS, que había sido modificaciones – podía leer el archivo de Sendmail 8, muchas de las reglas no habían sido modificadas, pero las nuevas configuraciones largas – esas que detecto como basura, fueron ignoradas y como el binario no tenia opciones por defecto compiladas para algunas opciones, estas fueron puestas a 0.

Una de las opciones puestas a 0 fue el tiempo de desconeccion al servidor SMTP remoto (N. del T.: timeout, tiempo al cual el servidor cierra la conexión si no hay respuesta). Algunos experimentos establecieron que en este sistema con la carga típica , un timeout de 0 abortaría la conexión en aproximadamente 3 millisegundos.

Algo especial de la red del campus en ese tiempo es que estaba 100% conmutada. un paquete saliente no tendría ningún retraso hasta que llegara al router fuera de la red interna. entonces el tiempo para conectar a un servidor remoto con poca carga en una red cercana seria dictado aproximadamente por la velocidad de la luz y la distancia al destino en lugar del retraso provocado por los routers.

sintiéndome un poco mareado, escribí en mi consola:

$ units

1311 units, 63 prefixes

Tiene: 3 millilightseconds

Desea: millas

* 558.84719
/ 0.0017893979

«500 millas mas o menos»

Trey harris.

]]>
1177
Jugando con PHP GD https://mexcoder.com/2015/01/12/jugando-con-php-gd/ Tue, 13 Jan 2015 04:34:05 +0000 http://mexcoder.com/?p=1111 ...Continue reading]]> Adaptacion del icono creado por KErosEnE
Adaptacion del icono creado por KErosEnE 

El otro día me encontraba trabajando en un sitio web, el cual requería que se insertaran varios placeholder para los banner de anuncios y dado que se requerían de diferentes tamaños pensé que seria divertido hacerlos dinámicamente con PHP en vez de hacer varias imágenes de diferentes tamaños y de hecho fue divertido solo encontré un problema ya que usando la función

imagestring

encontré el problema de que no es posible especificar un tamaño mas grande que el máximo permitido (5) lo cual en una imagen de 260 * 260 pixeles parecía mas bien hormigas en ves de texto.

En mi búsqueda de una solución y leyendo los comentarios de la misma función me encontré con una pequeña gema escrita hace ya 6 años, la curiosidad me gano y decidí probar el código y para mi agrado el resultado fue la imagen que aquí arriba se muestra.

Ya que la función desarrollada por Nicolas ‘KeksNicoh’ Heimann no permite mucha configuración mas allá de los parámetros que la función ofrece decidí hacer una clase que ademas de realizar el trabajo, ofrezca  principalmente modularidad y agregar algunas funciones ya que por ejemplo lo que hace la función es regresar el identificador del recurso para que puedas manejar lo a tu gusto, yo añadí ademas de esto, la posibilidad de con una sola llama de función o bien imprimirlo con sus correspondientes cabeceras como si se tratara de un archivo, o bien imprimir directamente un tag img de HTML con el contenido de la imagen inline, ambos con solo una llamada y sin escribir código extra.

y esta fue la clase resultante que esta albergada en github:

si bien puede verse demasiado mounstrosa y complicada es realmente muy simple de utilizar, por ejemplo para hacer la imagen que se muestra arriba en este post se utilisan unas cuantas lineas de codigo:

textImage::init( array (
  //define el texto que se usara en la imagen
  "chars" => 'I-dont-like-manga-...-Why-do-they-have-such-big-eyes? Strange-...-WHAT-WANT-YOU-DO?', 
  //define la escala que se usara, ya que en el tamaño original no se apreciarían los caracteres  
  "scale" => 6, 
  //ruta a la imagen la cual servirá de original para el proceso de conversion
  "source" => "http://upload.wikimedia.org/wikipedia/commons/b/be/Manga_Icon.png" ) ); 

echo textImage::getImgTag();

y ya esta eso es todo.

El parámetro sorce, no necesariamente debe ser una URL remota, puede ser una ruta interna a cualquier archivo del sistema local, por ejemplo mi foto de perfil si la guardamos como foto.png en el mismo directorio que el script podemos convertirla con las siguientes lineas de código:

textImage::init( array (
 "chars" => '**MEXCODER.COM',
 "scale" => 10,
 "weight" => 6 ) );

//los parámetros de esta función son:
//el texto alternativo, el titulo y el formato de la imagen; 
//y por ultimo la URL o URI donde se encuentra el archivo 
echo textImage::getIMGTag("","","png","./foto.png");

Considerando que este es el original

10247302_10200798967016608_5037699844911238942_n[1]

la salida seria esta:

se que a simple vista parece una que es solo una malla y que esta mas oscura pero eso es por el tamaño de la imagen, la imagen resultante mide 5370*7200, pesa alrededor de 10 Mb y pueden acceder a ella pulsando la vista previa(se abrirá en una nueva pestaña) y hacer zoom cuando su navegador la cargue para apreciar el detalle del texto, o bien descargarla y usar cualquier visor de fotografías.

Algunas las cosas que me quedan por hacer son escribir la documentación y arreglar algunos cuantos bugs en cuanto lo termine publicare un nuevo post con la documentación y aclarare cualquier duda que tengan y me dejen en los comentarios.

]]>
1111
Host Editor by Mexcoder https://mexcoder.com/2014/05/11/host-editor-by-mexcoder/ Mon, 12 May 2014 03:00:19 +0000 http://mexcoder.com/?p=294 ...Continue reading]]> ss1esta herramienta que he desarrollado sirve para hacer mas facil la tarea de mantener el archivo host de cualquier sistema operativo ya sea windows o basado en unix/linux y no tiene mas requerimientos que la plataforma JAVA y tener permisos de administrador.

 

para uso personal esta herramienta es gratuita pero si desea usarla para uso comercial o en ambientes empresariales debera comprarla.

la interfaz es muy intuitiva, basta con elegir una entrada y precionar modificar, editar o eliminar, o si desea añadir una nueva entrada al final del archivo solo presione el boton añadir, mientras que el boton respaldar generara una copia de respaldo del archivo host

entre los usos que se le pueden dar a esta herramienta se encuentran por ejemplo modificar el archivo host para evitar publicidad o para hacer un virtualhost en apache y en general cualquier caso en el que se desee modificar el archivo host

el programa esta disponible en ingles y español, el lenguaje se elige automáticamente en base al lenguaje del sistema

 ss2 ss3

descarga de la version no comercial:

Host Editor by Mexcoder
Host Editor by Mexcoder
hostEditorByMexcoder0_1.zip
Version: 0.1
77.0 KiB
414 Downloads
Detalles...
Host Editor by Mexcoder
Host Editor by Mexcoder
hostEditorByMexcoder0_1.tar.gz
Version: 0.1
76.8 KiB
506 Downloads
Detalles...

 

Version comercial:

el costo de la versión comercial es de $3 dolares por usuario y puede ser pagada con paypal o con bitcoin




Pay With Bitcoin

]]>
294
UML https://mexcoder.com/2013/11/11/uml/ Tue, 12 Nov 2013 05:13:59 +0000 http://mexcoder.com/?p=230 ...Continue reading]]> UML-logo[1]El  Lenguaje Unificado de Modelado (por sus siglas en ingles), es un estándar desarrollado por el  Object Management Group utilizado para describir sistemas y su funcionamiento de una manera visual mediante diagramas entre los cuales se encuentran los siguientes:

Diagramas de casos de uso

Este diagrama muestra como los usuarios interactúan con el sistema es decir que acciones pueden realizar en un momento dado es de especial utilidad en el desarrollo de software ya que permite tener una vista amplia de las funciones que el sistema requerirá.

UML_Use-case-diagram[1]

Diagramas de secuencia

Muestra cómo se da la interacción entre los diversos componentes que integran el sistema, la interacción se muestra mediante “llamadas” entre componentes que a su vez pueden hacer llamadas a otros componentes para finalmente responder a la llamada inicial, estas llamadas se agrupan de manera cronológica, lo que permite saber en qué momento se necesitara cada recurso y en qué orden.

diagrama-de-secuencia[1]

Diagramas de colaboración

Al igual que el diagrama de secuencia muestra como interactúan los elementos del sistema pero en vez de mostrarlos de manera cronológica este diagrama se utiliza para mostrar las relaciones entre los componentes del sistema por medio de “enlaces” y “mensajes”, esto es útil para saber por ejemplo de que partes del sistema depende un componente dado

image008[1]

Secuencia normal y excepciones (alternativas)

La secuencia normal es la secuencia que el diagrama seguiría en un caso ideal, es decir en aquel caso en el que no se presentes estados negativos o no contemplados,  mientras que las excepciones son el camino a seguir cuando se presente dicho estado no esperado o negativo.

Bibliografía

Object Management Group. (julio de 2005). OMG UML. Recuperado el 10 de septiembre de 2013, de Object Management Group: http://www.omg.org/gettingstarted/what_is_uml.htm

Popkin Software and Systems. (21 de octubre de 2002). Modelado de Sistemas com UML. Recuperado el 11 de septiembre de 2013, de http://mmc.geofisica.unam.mx/LuCAS/Tutoriales/doc-modelado-sistemas-UML/doc-modelado-sistemas-uml.pdf

]]>
230
ZF-Model-creator v0.3 (update) https://mexcoder.com/2013/02/09/zf-model-creator-v0-3-update/ https://mexcoder.com/2013/02/09/zf-model-creator-v0-3-update/#comments Sat, 09 Feb 2013 19:52:43 +0000 http://mexcoder.com/?p=193 Esta nueva version corrige los errores de la version anterior y añade nuevas caracteristicas

 

ZF Model Creator
ZF Model Creator
ZF-Model-creator-v0.3.zip
Version: 0.3
1.0 MiB
477 Downloads
Detalles...
]]>
https://mexcoder.com/2013/02/09/zf-model-creator-v0-3-update/feed/ 1 193
ZF-Model-creator v0.2 (update) https://mexcoder.com/2013/02/01/zf-model-creator-v0-2-update/ https://mexcoder.com/2013/02/01/zf-model-creator-v0-2-update/#comments Sat, 02 Feb 2013 01:48:59 +0000 http://mexcoder.com/?p=184 ...Continue reading]]> ZF logo

Desarrollando con zendframework y especialmente con los modelos me di cuenta que mi generador tenia
algunos puntos débiles uno de los cuales es que no generaba la clase derivada de zend_db_table necesaria para poder conectar con la base de datos, claro esto no es necesario si usas la herramienta de zend, pero si solo quieres añadir un modelo es mas simple generar la tabla junto con el modelo y el mapeador, otra error de diseño fue que consideraba que todas los modelos tenían una Primary key con auto incremento, por lo cual aquellas tablas basadas en llaves foráneas no se guardaban, por ultimo se agrego un campo para poner la ruta del archivo y así si se están haciendo múltiples modelos no se tiene que seleccionar la ruta cada vez.

change log:

*se añadio una opcion para elegir si se trabajara con llaves foraneas o con llaves autoincrement

*se añadio opcion para crear el archivo de la tabla

*se añadio opcion para seleccionar la ruta antes de generar el archivo

*la ruta ahora no se debe ingresar por cada archivo

*mejoras internas

nueva versión:ZF-Model-creator v0.3 (update)

Descarga:

Esta versión tiene demasiados errores, por lo cual se ha actualizado en la presente descarga

Host Editor by Mexcoder
Host Editor by Mexcoder
hostEditorByMexcoder0_1.zip
Version: 0.1
77.0 KiB
414 Downloads
Detalles...

]]>
https://mexcoder.com/2013/02/01/zf-model-creator-v0-2-update/feed/ 1 184
Ceritficacion en HTML5 https://mexcoder.com/2013/01/25/ceritficacion-en-html5/ https://mexcoder.com/2013/01/25/ceritficacion-en-html5/#respond Fri, 25 Jan 2013 23:54:55 +0000 http://mexcoder.com/?p=157 ...Continue reading]]> HTML5 Logo

HTML5 introdujo novedades como canvas 2D y 3D (elementos para generar gráficos), las etiquetas de audio y vídeo para reproducir multimedia nativamente sin utilizar flash, geolocalización, funcionalidad drag and drop (arrastrar y soltar) entre muchas otras.

HTML5 esta basado en JavaScript, HTML y CSS3. Por lo cual si ya hemos programado con estas tecnologías o anteriores el cambio a HTML5 sera extremadamente fácil pero para aquellos que quieran ir mas lejos Microsoft ofrece certificación  en esta tecnología por medio del examen 70-480.

Mediante la Microsoft Virtual Academy se proporciona grauitamente el curso Developing in HTML5 with JavaScript and CSS3 Jump Start el cual tiene una duracion teórica de un día y consta de 6 módulos compuestos de vídeos y pequeños test para prepararnos para el examen.

lo mas interesante es que promedio del código HTMLJMP (que según Microsoft también sirve para los exámenes 72-480 y 73-480) podemos realizar el examen de certificación sin costo, este código es bueno hasta el 31/03/2013 y para canjearlo hay que ir a la pagina del curso para encontrar el link al partner de Microsoft que aplica el examen, ojo que hay que reservar la fecha ya que hay asientos limitados.

en el caso de nosotros los estudiantes, y sobre todo los que estudiamos por la mañana, 2 centros en donde se aplica (uno en plaza del angel) este examen tienen horarios disponibles de lunes a viernes de 8:45 a 11:45 por lo tanto hay que aprovechar antes de entrar a clases para obtener esta certificación que es valida por dos años (después de los cuales deberás tomar otro examen) pero talvez por ese entonces ya estemos oyendo hablar de HTML6.

Otra cosa que hay que mencionar es que ambos, el curso y el examen solo están disponibles en ingles pero de verdad vale la pena.

Logo HTML5 por W3C.

]]>
https://mexcoder.com/2013/01/25/ceritficacion-en-html5/feed/ 0 157
Ciclos infinitos! https://mexcoder.com/2013/01/20/ciclos-infinitos/ https://mexcoder.com/2013/01/20/ciclos-infinitos/#respond Mon, 21 Jan 2013 03:34:35 +0000 http://mexcoder.com/mexcoder/?p=3 ...Continue reading]]> ciclo-continuo-azul-md

Da click aquí para ver un ejemplo de un ciclo infinito

Un ciclo infinito es una condición en un programa informático en donde este se repite indefinidamente, esto es generalmente debido a un error o descuido del programador, por ejemplo usar una variable errónea en la condición de fin o que la condición de fin dependa de una entrada proporcionada por el usuario (u otro componente del sistema ) y que no es correctamente filtrada por el programa antes de ser usada, como en el siguiente ejemplo:

int main(){
   int x;
   cin>>x;
   while(x!=0){
       cout<

si bien es un código perfectamente valido que cuenta hacia abajo desde el valor que introduzca el usuario, el problema viene cuando el usuario introduce un valor menor de 0, como el valor ya es menor que cero por mas que el ciclo avance el valor nunca llegara a cero, una alternativa para evitar este error es solo permitir los valores menores que 0.

]]> https://mexcoder.com/2013/01/20/ciclos-infinitos/feed/ 0 2272 Matriz de LEDs https://mexcoder.com/2013/01/17/matriz/ https://mexcoder.com/2013/01/17/matriz/#respond Fri, 18 Jan 2013 04:16:53 +0000 http://mexcoder.com/?p=120 ...Continue reading]]> matriz-de-led-8x8

Hay un momento en la vida de cada tecnologo de informatica (probablemente también algunos otros tecnologos e ingenieros) en que se debe de hacer esta tediosa practica llamada la «pantalla» o matriz de leds, si bien el circuito no es muy grande, tedioso o difícil de armar, el problema reside a la hora de hacer el código hexadecimal equivalente al diseño de cada uno de los frames que conforman lo que mostraremos en nuestra pantalla ya sea texto, imágenes o animaciones (siempre a 8 bits). esto es por que para activar cada columna de la matriz se necesita un byte (8 bits) al ser 8 filas se requieren 8 bytes (64 bits) y para que el resultado se muestra mas nítidamente se ocupa almacenar mas de una vez cada imagen (frame) que se mostrara en la matriz, con 6 repeticiones de cada imagen se obtiene una muy buena calidad de la imagen sin muchos parpadeos, usando esta configuración y usando una memoria 28c64 ocuparemos aproximadamente 170 cuadros, esto es por que la memoria tiene 8192 localidades entre 8 columnas 1024, entre 6 repeticiones por cuadro nos da aproximadamente 170 cuadros, si bien calcular todos los 8192 bits puede ser un poco tedioso después del salto daré algunos consejos para hacerlo de una manera mas rápida y menos tediosa

Si bien la manera «tradicional» de hacer el diseño es imprimir un template de la matriz, rellenarla y calcular los valores a mano para después capturarlos, esto me pareció muy tedioso y lento, empece a buscar alternativas para hacerlo mas rápidamente, si bien había visto programas que permiten calcular automáticamente, no evita el tedio de hacer el diseño a mano y posteriormente capturarlo en la computadora y copiar el código de cada pantalla uno por uno. Para evitar esto desarrolle una pequeña herramienta que te permite hacer el diseño y calcular el código al mismo tiempo esta herramienta junto con algunas herramientas extras y unas cuantas expresiones regulares te permitirán generar tu archivo hex listo para cargarlo a tu memoria en unos cuantos minutos empezando desde cero.

¿Que es necesario?

Primero empezaremos con la plantilla de Excel al abrirla tendremos que habilitarlos macros (Descuiden yo los escribí y les aseguro que son 100% seguros), al abrir el archivo se mostrara una barra de advertencia que nos permitirá habilitar o deshabilitar los macros:

Advertencia de macro en office 2010
Advertencia de macro en office 2010
La misma advertencia en office 2007
La misma advertencia en office 2007

 

Una vez habilitados, tendremos una plantilla con una serie de cuadros que representan la matriz de leds:

vacio
Al hacer doble click en cualquier celda esta se coloreara y el valor hexadecimal de la columna (mostrada abajo de cada cuadro) se actualizara automáticamente  como en este ejemplo:
demo
Si te has equivocado puedes hacer doble click de nuevo en la celda para que regrese a estar en blanco y se actualice el valor de la columna, ahora solo es cuestión de terminar nuestro diseño en el documento de excel (este documento esta diseñado con 170 cuadros como indique al inicio de este post, aunque fácilmente se puede aumentar copiando y pegando cuadros extras).
Cuando terminemos el diseño hay que copiar los valores de las columnas(solamente los valores, no la representacion de la matriz) y pegarla en Notepad++ para que quede como este ejemplo en el cual utilizare solo dos lineas pero lo mas efectivo es copiar todas las lineas a la vez:
note1
Ahora eliminaremos los espacios de mas para que los bytes de cada pantalla queden juntos, para esto utilizaremos la función de remplazo con expresiones regulares incluida en notepad++, para utilizarla basta con presionar CTRL + F , seleccionar la pestaña y seleccionar la opción Expresión regular en las opciones de búsqueda.
En el campo de «Buscar» pondremos la siguiente expresión regular:
([dA-Z][dA-Z])s

Y en el campo de remplazo ponemos:

1

Debe quedar como en esta imagen:

regex1Ahora solo presionamos remplazar todo y  así quedaremos con cada una de las pantallas separadas por un espacio o un salto de linea algo asi:

note2

 

Ahora ya que los bytes de cada pantalla están juntos podemos hacer que se repitan las 6 veces y despues de eso eliminar los espacios sobrantes y para esto que mejor que una expresión regular:

En el campo de «Buscar» pondremos la siguiente expresión regular:
([dA-Z]*)s?n?

Y en el campo de remplazo ponemos:

1111111

Después de presionar el boton remplazar todo nuestro archivo quedara  mas o menos así:

note3

 

Por ultimo eliminamos los saltos de linea (podemos usar nuevamente la herramienta de remplazo de Notepad++ usando el modo extendido, en busqueda ponemos n, r o rn y dejamos en blanco remplazo) seleccionamos todo con CTRL + A y lo copiamos; Abrimos Hexplorer y damos click derecho para abrir el menu contextual seleccionamos «paste external text as hex number» como se muestra en la imagen:

hexplorer

Y por ultimo para guardar nuestro archivo hex listo para programar nuestra memoria del menú archivo seleccionamos exportar como «Hex intel» tal y como se muestra en la imagen:

hexplorer2Solo queda seleccionar la ruta y el nombre del archivo para guardarlo y posteriormente grabar nuestra memoria.

el resultado final una vez montado en la memoria seria algo asi:

 

Descarga:

Licencia Creative CommonsLa plantilla de excel está bajo una Licencia Creative Commons Atribución-NoComercial 2.5 México.

Como recordatorio para los que no saben que es la licencia creative commons ni estan deseosos de leerlo, basicamente dice que como es mencionado en la figurita de aqui a lado, deben de mantener todas los textos que dan credito al autor, y no pueden utilizar esta obra para fines comerciales.

Algunos maestros y alumnos me han sugerido que cobre por la plantilla, pero mi intención fue ponerla a disposición de aquel que la necesitara bajo la simple condición de respetar la licencia bajo la que esta publicada, aun así  el dinero extra puede ayudarme a mantener el servidor, es por eso que si el archivo te ayudo te animo a apoyar con el botón que esta abajo, se que no todos pueden o quieren aportar monetaria mente, pero también pueden apoyar con comentarios ya sea agradecimientos o incluso criticas constructivas.

Selecciona un metodo de pago, podras seleccionar el precio en la pagina siguiente:

Pay With Bitcoin
Matriz Base
Matriz Base
matriz_basev1.0.1.xlsm
Version: 1.0.1
106.7 KiB
1439 Downloads
Detalles...

También puedes enviar tu apoyo directamente a mi cuenta de paypal:

iam@mexcoder.com

o a mi monedero bitcoin:

17EFZX2UGjskWvPqJKupRt5K6bwkpAd9yn
]]>
https://mexcoder.com/2013/01/17/matriz/feed/ 0 120