domingo, 28 de septiembre de 2014

Windows Forms Events Lifecycle

Muy útil la información que encontré en esta página. El otro día tenía un panel (Dock=Top) como encabezado en un formulario “base” y otros dos paneles (Dock=Fill y Dock=Bottom) en el formulario “derivado”. El panel con Dock=Fill variaba de tamaño en diferentes instancias.

En este caso, el evento Shown, era ideal para saber el tamaño final de este panel con Dock=Fill. El evento Load no me servía por que el panel en este evento contenía el tamaño antes de ajustarse al panel del formulario “base”.


Otra solución para acomodar los controles del panel Dock=Fill es tomar el tamaño del panel en el evento load y usar Anchor en los controles.

http://www.c-sharpcorner.com/uploadfile/mamta_m/windows-forms-events-lifecycle/
  • Move: This event occurs when the form is moved. Although by default, when a form is instantiated and launched, the user does not move it, yet this event is triggered before the Load event occurs.
  • Load: This event occurs before a form is displayed for the first time.
  • VisibleChanged: This event occurs when the Visible property value changes.
  • Activated: This event occurs when the form is activated in code or by the user.
  • Shown: This event occurs whenever the form is first displayed.
  • Paint: This event occurs when the control is redrawn.
  • Deactivate: This event occurs when the form loses focus and is not the active form.
  • Closing: This event occurs when the form is closing.
  • Closed: This event occurs when the form is being closed.

sábado, 22 de marzo de 2014

¿Qué hacer después de formatear una computadora?

Formatear una computadora es solo el principio, en mi caso siempre hay una serie de programas que debo instalar para poder trabajar así como realizar alguna que otra configuración. He decidido hacer esta guía para poder realizar todo el proceso un poco más rápido la próxima vez que formatee una computadora, igual a alguien le sirve también.

#1 – Actualizaciones de Windows.

Configurar de acuerdo a tus gustos, ya sea que se descarguen e instalen, que se descarguen y te pregunte, que solo compruebe actualizaciones. Es tu elección.

#2 – No combinar los elementos de la barra de tareas.

Me gusta tener visible el nombre de las ventanas con las que estoy trabajando así que lo segundo que siempre hago es Clic derecho sobre la barra de tareas / Propiedades / Botones de la barra de tareas / No combinar nunca.

#3 – Instalar Windows 7 Service Pack 1

El archivo de descarga es windows6.1-KB976932-X86.exe y si formateas mucho tu PC o te dedicas a formatear computadoras o desarrollas software o te dedicas a instalar programas que requieren el SP1 es buena idea grabarlo en un disco para no tener que estar descargándolo cada vez.

#4 – Instalar Antivirus

Siempre es esencial tener un buen antivirus y dentro de mas recomendados y gratis en 2015 están Avast, Avira, y AVG. Para Windows 7 esta MS Security Essentials que si bien ya no esta en buenos lugares en los rankings como antes, es gratis y no tiene publicidad. Lo que si no recomiendo por que lo probé y no me funciono es Windows Defender para Windows 8 que si bien parece ser lo mismo que MSSE a mi no me sirvió :(.

#5 – Actualizar IE

Por lo general Windows trae una versión vieja de Internet explorer, ya que tengamos instalado el SP1 podemos actualizar IE.

#6 – Instalar Google Chrome, ponerlo como determinado y que IE no vuelva a preguntar.

No puede faltar si eres diseñador o programador de páginas web.

#7 – Establecer www.google.com como página de inicio

Yo lo hago en todos los navegadores que tenga instalados.

#8 – Instalar Acrobat Reader

Tarde o temprano tendremos que leer un PDF y aprovechando que estamos instalando programas es mejor hacerlo ahorita.

#9 – Desanclar el Reproductor de Windows Media  y el Explorador de Windows de al barra de tareas

No hay mucho que explicar, son accesos directos que casi no uso y prefiero ese espacio para otras ventanas ya que no las combino. Para ello simplemente hacer clic derecho sobre estos iconos y seleccionar Desanclar.

#10 – Anclar el Bloc de notas y Calculadora al menú Inicio

Yo creo que después del navegador, el Bloc de notas es el programa que más uso ya sea para anotar cosas o para quitarle el formato al texto enriquecido. Lo mismo con la calculadora.

#11 – Instalar WinRar

Tarde o temprano lo usaras y mejor ahorita, luego puede que sea urgente descomprimir algo y no halla internet para descargarlo.

#12 – Instalar Virtual CloneDrive (opcional)

#13 – Ajustar el UAC (opcional)

#14 – Instalar PDF24 (opcional)

#15 – Habilitar Hibernar

Debido a las ventajas de Hibernar, prefiero esta opción en vez de apagar o suspender. Para apagar tengo que cerrar y guardar todo y al iniciar tarda mucho. Suspender en realidad sigue prendida así que sigue gastando energía eléctrica además de que si se corta la energía todo tu trabajo se puede perder. Hibernar guarda en disco todo lo que tenías en la RAM y luego se apaga, así que no hay problema si cortas la energía eléctrica además el encendido y apagado es mucho más rápido y todo tu trabajo está ahí para continuar.

Para habilitar la opción de Hibernar ir a Inicio / Panel de control / Opciones de Energía / Cambiar la configuración del plan / Cambiar la configuración avanzada de energía / Suspender / Permitir suspensión hibrida / Desactivar.

En Windows 10 ir a Opciones de energía / Elegir la acción del botón de inicio/apagado / Configuración de apagado / Hibernar.

#16 - Cambiar la configuración del plan de energía 

Cambiar la configuración del plan de energía para que el monitor se apague a los minutos deseados y para que la pc pase a estado suspendido a los minutos deseados (o nunca si sueles trabajar remotamente).

#17 - Personalizar el System Tray

Agregar o quitar los programas deseados.

En Windows 10 clic derecho a la Barra de tareas / Propiedades / Barra de tareas / Personalizar / Seleccionar qué iconos... /

#18 - Establecer el Escritorio como directorio de descargas en todos los navegadores

No me gusta la carpeta Descargas de Windows por que luego se te olvidan los documentos ahí y esa carpeta termina con muchos archivos.

NOTA: Si es Windows 10 buscar la carpeta de Descargas / clic derecho / Propiedades / Ubicación y allí cambiar la ubicación

#19 - Instalar y establecer el Escritorio como directorio de descargas en skype (opcional)

Igual que el anterior.

#20 - Instalar OneDrive para windows (opcional)

#21 - Instalar impresora

#22 - Establecer preferencias de impresión de la impresora

En mi caso, tengo una impresora que en modo Borrador imprime super bien, así que con eso me basta y se ahorra tinta.


#23 - Configurar el teclado

Ingles, Español México o Español España según corresponda.

#24 - Configurar Outlook

#25 - Opciones de carpeta

Configurar "Archivos y carpetas ocultos" y "Ocultar las extensiones de archivo para tipos de archivo conocidos"




sábado, 1 de marzo de 2014

Instalando una impresora de tickets Ojuled o EC Line en Windows 8

Recientemente me toco instalar una impresora de tickets en una computadora con Windows 8. Es una Ojuled térmica de 80 mm, el problema es que el disco de drivers solo trae como máximo hasta Windows 7 y en la página de Ojuled parece que no está ningún driver para descarga.

Intente instalar el driver de Windows 7 pero al finalizar la instalación, la impresora no aparecía en “Dispositivos e impresoras”. Nada parcia funcionar pero sabía que la impresora no estaba fallando porque también la tenía instalada en una computadora con Windows 7 y ahí si funcionaba muy bien.   

Al siguiente día me puse a investigar un poco, parece que el verdadero fabricante de estas (así como las EC line que es una de las más usadas aquí) es una empresa llamada Gainscha. Afortunadamente ellos ya tienen un driver para Windows 8.

Lo primero es entrar a la página http://www.gainscha.com.cn y en la sección “Soporte” podemos encontrar la impresora, en mi caso es la “GP80 Driver V11”. En la descripción se aprecia que ya soporta Windows 8. Una vez descomprimido el archivo .ZIP extraemos el contenido y ejecutamos el instalador. Nos preguntara por nuestro sistema operativo, seleccionamos Windows 8. A continuación nos pregunta el modelo, aquí es donde tuve problemas porque estaban listados muchos modelos y en la impresora solo decía OCPP-802 pero había muchos modelos con “…802..”.  Decidí probar con cada uno, después de instalar como la mitad de ellos y que ninguno funcionaba me di cuenta de que la impresora estaba apagada jejeje, la prendí y todo funciono de maravilla, así que no importa qué modelo escojas, cualquiera parece funcionar.

domingo, 23 de febrero de 2014

Como crear un plantilla para Joomla! 3.2.2 desde cero

Esta es una nueva versión de mi post anterior “Como crear una plantilla para Joomla 1.6” y estará basada en la plantilla “protostar” que incluye el nuevo Joomla! Por defecto. En esta guía detallo como crear una plantilla y he trato de incluir solo las partes más elementales de modo que no importa si ya tenías experiencia o apenas vas empezando con Joomla, espero que les sirva a todos.


Lo primero es crear una carpeta con el nombre de la plantilla (en este ejemplo el nombre es jplan_PlantillaPrueba322). Dentro de esta carpeta debemos de crear un archivo llamado templateDetails.xml con un contenido más o menos como el siguiente (adecuándolo a las necesidades de cada quien). Por cierto el DOCTYPE dice 2.5, no se preocupen de eso por ahorita.

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE install PUBLIC "-//Joomla! 2.5//DTD template 1.0//EN" "http://www.joomla.org/xml/dtd/2.5/template-install.dtd">
<extension version="3.2" type="template" client="site">
<name>jplan_PlantillaPrueba322</name>
<version>1.0</version>
<creationDate>20 Febrero 2014</creationDate>
<author>José Sotero Vibriezca Venegas</author>
<authorEmail></authorEmail>
<authorUrl>http://www.miviaweb.com</authorUrl>
<copyright>Copyright (C) 2014 www.miviaweb.com, Inc. All rights reserved.</copyright>
<description>TPL_PLANTILLAPRUEBA322_XML_DESCRIPTION</description>
<files>
<filename>index.php</filename>
<filename>templateDetails.xml</filename>
<filename>template_preview.png</filename>
<filename>template_thumbnail.png</filename>
<folder>css</folder>
<folder>images</folder>
<folder>js</folder>
<folder>language</folder>
</files>
<positions>
<position>banner</position>
<position>debug</position>
<position>position-0</position>
<position>position-1</position>
<position>position-2</position>
<position>position-3</position>
<position>position-4</position>
<position>position-5</position>
<position>position-6</position>
<position>position-7</position>
<position>position-8</position>
<position>position-9</position>
<position>position-10</position>
<position>position-11</position>
<position>position-12</position>
<position>position-13</position>
<position>position-14</position>
<position>footer</position>
</positions>
<languages folder="language">
<language tag="es-ES">es-ES/es-ES.tpl_jplan_PlantillaPrueba322.ini</language>
<language tag="es-ES">es-ES/es-ES.tpl_jplan_PlantillaPrueba322.sys.ini</language>
</languages>
</extension>

Si desean ir un poco más avanzado, en <files> pueden incluir los archivos component.php, error.php, favicon.ico y obviamente copiar estos archivos de la carpeta public_html/ templates/protestar. No olviden incluir los créditos necesarios si copian contenido de otros.

Nuevamente omití  toda la parte de configuración y parámetros para simplificar la creación de nuestra primer plantilla. Sin embargo esta ocasión si incluyo la parte de idiomas para irnos acostumbrando a usarlos.

Bueno creo que cada línea del contenido XML anterior se explica por sí sola, aun así les daré una breve descripción. Lo más importante a cambiar es NAME (nombre de su plantilla) y todo lo de FILES (son libres de agregar o quitar todos los archivos o carpetas que su diseño y plantilla requieran) siempre y cuando mantengan los archivos (index.php, templateDetails.xml, template_preview.png y template_thumbnail.png). Datos personales como AUTHOR, CREATION DATE, DESCRIPTION pues no son esenciales, aun así es bueno que lo hagan para referencia de ustedes mismo. Para los que no tienen experiencia con el diseño de plantillas para Joomla, es recomendable que los POSITION los mantengan como están, ya que estas son las posiciones que se usaran para desplegar los contenidos en la página. Si conforme avanza el desarrollo de la plantilla agregan más archivos o posiciones, no se olviden de regresar a templateDetails.xml y agregar los FILE o POSITION correspondientes. Aquí les dejo la descripción de cada position:

POSITION-0 = "Search"
POSITION-1 = "Navigation"
POSITION-2 = "Breadcrumbs"
POSITION-3 = "Top center"
POSITION-4 = "Unused"
POSITION-5 = "Unused"
POSITION-6 = "Unused"
POSITION-7 = "Right"
POSITION-8 = "Left"
POSITION-9 = "Unused"
POSITION-10 = "Unused"
POSITION-11 = "Unused"
POSITION-12 = "Unused"
POSITION-13 = "Unused"
POSITION-14 = "Unused"

Es recomendable usar el mismo position para cada cosa, así cuando cambiemos de template no hay que estar configurando nuevamente cada módulo.

Ahora debemos agregar los archivos template_thumbnail.png y template_preview.png, cada uno es la imagen de como se ve nuestro sitio (si no cuentan con dichas imágenes, este paso lo pueden realizar al final, solo no se les olvide jejeje). La primera es una imagen PNG de 206x150px, puede ser su logotipo o una imagen en miniatura de la página principal. La segunda puede ser una imagen PNG de 640x388px, también es una impresión de pantalla reducida de como se ve tu plantilla.

<?php
// No direct access.
defined('_JEXEC') or die;
?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<?php echo $this->language; ?>" lang="<?php echo $this->language; ?>" dir="<?php echo $this->direction; ?>">
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<jdoc:include type="head" />
    <link rel="stylesheet" href="<?php echo $this->baseurl ?>/templates/<?php echo $this->template ?>/css/estilo.css" type="text/css" />
    <script type="text/javascript" src="<?php echo $this->baseurl ?>/templates/<?php echo $this->template ?>/js/ejemplo.js"></script>    
    <meta http-equiv='Content-Type' content='text/html; charset=windows-1252' />
    <title>Plantilla de prueba desarrollada por www.miviaweb.com</title>
</head>
<body>
<div>
        <div class='Header'>
        Contenido del Header
<jdoc:include type="modules" name="position-0" /><!--SEARCH-->
        </div>

        <div class='menu_tab'>
            <jdoc:include type="modules" name="position-1" /><!--HOR NAV-->
        </div>

<div id='main_content'>
            <jdoc:include type="modules" name="position-2" /><!--Breadcrumbs-->
            <jdoc:include type="modules" name="position-3" /><!--Top center-->
            
            <!-- Left Content -->
            <div id='left_content'>
            <jdoc:include type="modules" name="position-4" />
                <jdoc:include type="message" />
                <jdoc:include type="component" /><!--CONTENT-->
            <jdoc:include type="modules" name="position-5" />
            <jdoc:include type="modules" name="position-6" />
            </div>

            <!-- Right Content -->
            <div id='right_content'>
                <jdoc:include type="modules" name="position-7" /><!--Right-->
                <jdoc:include type="modules" name="position-8" /><!--Left-->
            </div>

            <!-- Footer -->
            <div class='footer'>
            <jdoc:include type="modules" name="position-9" />
                Contenido del Footer
            <jdoc:include type="modules" name="position-10" />
            </div>
            
            <jdoc:include type="modules" name="debug" style="none" />
</div>
</div>
</body>
</html>

En el lugar donde ubiquen la etiqueta jdoc de tipo component (<jdoc:include type="component" />) es donde se desplegaran los artículos que publiquemos. Las etiquetas jdoc de tipo modules (<jdoc:include type="modules" name="position-0" />) sirven para establecer las posiciones donde queramos desplegar diferentes módulos en la página. Si se fijan el atributo NAME corresponde con los POSITION del archivo templateDetails.xml

El diseño de index.php es muy sencillo, ustedes lo pueden hacer tan complicado como deseen. Hay más cosas que le pueden agregar a este archivo, para ello échenle un vistazo a la documentación de Joomla y al archivo index.php de alguna plantilla como protostar que viene con Joomla 3.2.2.

No olviden crear un archivo llamado “index.html” dentro de cada carpeta que creen, esto es para evitar que usuarios o robots mal intencionados puedan listar el contenido de nuestras carpetas. Para el contenido de este archivo basta con poner simplemente “<!DOCTYPE html><title></title>”. La carpeta principal de nuestro template no requiere este archivo porque ya contiene el archivo “index.php” y este hace el mismo trabajo.

A continuación creamos la carpeta “language” (no olvidar el archivo index.html) y dentro de esta a su vez la carpeta “es-ES” (no olvidar el archivo index.html) o el código de idioma que deseen. Dentro de esta última carpeta crear los archivos “es-ES.tpl_jplan_PlantillaPrueba322.ini” y “es-ES.tpl_jplan_PlantillaPrueba322.sys.ini” el contenido de ambos archivos puede ser el mismo:

TPL_PLANTILLAPRUEBA322_XML_DESCRIPTION="Esta es la plantilla de prueba para Joomla! 3.2.2 creada por www.miviaweb.com"

También creamos la carpeta “js” y dentro los archivos “index.html” y “ejemplo.js”, el archivo JavaScript estará vacío en este ejemplo. También creamos la carpeta “images” y dentro solo el archivo “index.html”. Finalmente creamos la carpeta “css” y dentro los archivos “index.html” y “estilo.css”, el archivo CSS estará vacío en este ejemplo.

Listo ya podemos comprimir la carpeta de nuestro template en un ZIP e instalarla en Joomla!