Recursos para los grupos de Usuarios, desde INETA-Latam

A continuacion os dejo unos links muy utililes para los Grupos de Usuarios.



  1. Licencias para los grupos de Usuarios registrados de mano de nuestros patrocinadores.

  2. Boletin de Noticias.

  3. Revista Tecnica.

 

Si tenéis cualquier inquietud de como inscribriros/encontrar un Grupo o como participar en sus actividades no dudes en enviadme un correo.

Saludos,
Pep Lluis,

 

Revista :  En la ultima entrega entre otros:
ASP.NET 2.0, Por: Guillermo «guille» Som
AJAX desde cero, Por: José Andrés Ortiz
BizTalk Server 2006 Integración y P.N., Por: Frsco Gonzalez
Windows Vista, Programador de Tareas Por: Jesús Gonzales
Vista Rápida de Microsoft Expression Blend, Por: Rafael Campos 
Instalación del SQL Server 2005 SP1, Por: Rafael Campos

Como añadir una entrada con System.Configuration

Como añadir una entrada a en app.config.

‘ Ejemplo de utilizacion de System.Configuration
Dim config As System.Configuration.Configuration = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None)
‘ Añadir el item ‘cadenaconexion
config.AppSettings.Settings.Add(«cadenaconexion», «Mi Cadena de conexion a las:» + System.DateTime.Now)
‘ Salvar su modificacion
config.Save(ConfigurationSaveMode.Modified)ConfigurationManager.RefreshSection(«appSettings»)
‘ Recuperar mi valor de aplicacion
MessageBox.Show(ConfigurationManager.AppSettings(«cadenaconexion»), «MIS ajustes Personales»)

Saludos,
Pep Lluis, 


PD. Espero que esto responda a la pregunta de Elio.

Diferentes ‘threads’ y una Unica forma de invocar la actualizacion.

Después de observar como utilizais muchas y diversas formas de invocar la actualización de una etiqueta de un form con una información que proviene de un hilo diferente al cual fue creado (por  poner un ejemplo), os propongo :


ofCourse en Vizuar Bazic de Guille y 2005!


    Delegate Sub ActualizarTexto(ByVal Texto As String)

    Private Sub Actualizar_Etiqueta(ByVal [texto] As String)

               
        If Me.Etiqueta.InvokeRequired Then
            Dim delegado As New ActualizarTexto(AddressOf Actualizar_Etiqueta)
            Me.Invoke(delegado, New Object() {[texto]})
        Else           
           
Me.Etiqueta.Text = [texto]
        End If

    End Sub


Que os parece?
Pep Lluis,


 

MALAGA October .NET Conference

October .NET Conference
Bienvenido a la primera conferencia multi-idioma de Málaga para desarrolladores de .NET. La conferencia va a cubrir un amplio rango de temas, y las ponencias estarán disponibles tanto en español como en inglés. Expertos de todo el mundo van a participar durante los dos días que durará el evento. Será tu oportunidad para interactuar con tus compañeros de profesión y charlar con los ponentes durante este evento relajado.



Lo mejor de todo, el registro es completamente gratuito. Aforo limitado,


puedes registrarte en:
http://www.octoberconference.net/index.ES.aspx

No se puede cargar el archivo o ensamblado ‘System.Web.Extensions

‘Vasao’ en una Historia REAL

(Debido a las interpretaciones que hacéis de este relato y que recibo por alguno de vuestros comentarios, me veo en la obligación de aclarar a los que continuéis leyendo: de que está hecho en tono de Humor!, es un relato trivializando ciertas situaciones. En ningún caso trata de un caso técnico.)

Su lectura se entiende única y excesivamente para entretenimiento.

 

Durante unos meses estuve alardeando de tener instalado Visual Studio 2005 con todas sus «extensiones» y «Services Pack’s» ademas de la version Beta de Orcas en una misma maquina, rodando con Vista Bussines y With no problems!. Cuál fue mi sorpresa que después de instalar la Beta 2 de Orcas, cualquier petición desde mi «explorer» al IIS local empezaba con el siguiente mensaje :

No se puede cargar el archivo o ensamblado ‘System.Web.Extensions, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35’ ni una de sus dependencias. El sistema no puede encontrar el archivo especificado.

Primero pensé que sería una tontería, por lo que como siempre fui en busca de ‘bugs conocidos’ aunque como Beta 2 la cosa estaría muy reciente… la única información que encontré al respecto era ejecutar un ‘script’ que desactivaba las System.Web.Extensions.Design\3.5.0.0 y con ello debería solucionarlo. Sin embargo no me cuadraba desactivar Ajax 3.5 si el error que me daba era sobre la versión 2.0.0.0.

Rodé el ‘script’ y tal y como estaba esperando no sirvió de nada! Después de teclear //localhost

No se puede cargar el archivo o ensamblado ‘System.Web.Extensions, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35’ ni una de sus dependencias. El sistema no puede encontrar el archivo especificado.

Entonces como era de esperar, empecé a dar «palos de ciego», desinstalar el IIS, Volverlo a instalar, quitar la Versión Beta 2… Reparar el Visual Studio 2005, reinstalar los SP… hasta llegar a un callejón sin salida. Ya no sabía que mas quitar! Pues me había quitado hasta los calcetines, por quitar solo me quedaban unos arrugados ‘cayumbos’.

Seguidamente pase al plan de emergencia! Si Hombre! Es esa etapa en la que después de cargarnos medio registro, empezamos a eliminar directamente carpetas. Entonces ocurrió lo inesperado, la necesidad se convirtió en virtud. Cuando estaba a punto de eliminar el INETPUB se me ocurrió mirar el contenido de esa carpeta ¿será exceso de curiosidad? ¡Pues no! De eso se llama intuición profesional. A continuación observe un extraño archivo… ¿será un virus? El nombre me sonaba como muy raro, raro, raro. Ante mi desafiante ‘Web.Config’ me plantaba cara, con mucha precaución hice clic con el botón de la derecha de mi ‘ratón’ y seleccione ‘Abrir con el Bloc de Notas’ y cuál fue mi sorpresa! Alguien al que yo nunca di permiso y con muy mala intención había insertado hábilmente algunas líneas como estas:

<compilation debug=»true» strict=»false» explicit=»true»>
      <assemblies>
        <add assembly=»System.Core, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089″ />
        <add assembly=»System.Web.Extensions, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35″ />
      </assemblies>
 </compilation>

Ciertamente todo el ‘web.config’ contenia decenas de referencias al System.Web.Extensions, ja! ni con queso! nada extraño! tipico de los archivos infectados! 

Llegados a este punto y usando esa habilidad que tanto me caracteriza seleccione esas líneas intrusas, pulse la tecla ‘Supr’ y con ‘Archivo’ ‘Guardar’ termine con la crueldad de tal archivo. No creais que en pleno arrevato estuve a punto de eliminarlo… pero el segundo pensamiento me hizo recapacitar con el argumento de que el resto de secciones de ese tal ‘web.config’ no tenían la culpa.

Primero pensé lo torpe que soy, pero luego recapacite y yo mismo me invite a una cerveza para celebrar que soy el mejor… al menos en mi web.config!

Posterior a la celebración con cerveza, vino el trabajo más duro. Mi mente de investigador tenía que dar con el culpable… después de un escrupuloso análisis forense, la rigurosidad científica me hizo inexorablemente dar con el culpable (“se quien lo hizo!”), después de emprender las acciones oportunas, acordamos con la fiscalía solo desvelar su identidad a personas vinculadas con NDA firmado.

Puertos Serie : Alta Velocidad?

Hace poco recibi una consulta sobre la velocidad de los puertos de comunicaciones. Os dejo un breve, esperando que os ayude en la compresion de lo que hay detras de un conector de 9 o 25 pins.


La mayoría de equipos incorporan en su ‘ChipSet’ UARTS compatibles con 16450.. 16550… y últimamente 16650 (Herederas de la mítica 8250 de National), la velocidad de transmisión y recepción viene fijada por las divisiones efectuadas al cuarzo y ajustadas en un registro interno de la misma, llamado BRG. Las UART actuales pueden llegar a velocidades de hasta 1,5M Baud..


–>> (Texto ejemplo de una hoja de características)


The UART includes a programmable baud rate generator that is capable of dividing the timing reference clock input by divisors of 1 to (216 -1), and producing a 16X clock for driving the internal transmitter logic.


Provisions are also included to use this 16X clock to drive the receiver logic. The UART has complete MODEM-control capability, and a processor-interrupt system. Interrupts can be programmed to the user’s requirements, minimizing the computing required to handle the communications link.



  • Fully programmable serial-interface characteristics:. 5-, 6-, 7-, or 8-bit characters. Even, odd or no-parity bit generation and detection. 1-, 11/2-or 2-stop bit generation . Baud generation ( DC to 1.5M baud )

Programmable Baud-Rate Generator
Each UART has its own Baud-Rate Generator (BRG) with a prescaler for the transmitter and receiver. The prescalar is controlled by a software bit in the MCR register. The MCR register bit 7 sets the prescalar to divide the on-board clock (14.7456 MHz) by 1 or 4. The output of the prescalar clocks the BRG. The BRG further divides the clock to a programmable divisor between 1 and (216-1) to obtain a 16X or 8X sampling clock of the serial data rate. The sampling clock is used by the transmitter for data bit shifting and receiver for data sampling.


 <<–
Tabla de configuracion de una UART segun el valor divisor.
































































[MCR Bit7=1 ] 


[MCR Bit7=0]   


[Divisor for 16X] 


[DLM (Hex)] 


[DLL (Hex)] 


600


2400


180


1


80


1200


4800


0C0


0


C0


2400


9600


060


0


60


4800


19.2k


030


0


30


9600


38.4k


018


0


18


19.2k


76.8k


00C


0


0C


38.4k


153.6k


006


0


06


57.6k


230.4k


004


0


04


115.2k


460.8k


002


0


02


Para los que utilizais la estructura DCB requerida para el acceso de puertos a traves del ‘kernel32.dll’ y aunque mi especialidad no es C++, es de  suponer que el limite correspondiente a la enumeración de velocidades ‘CBR_256000’ corresponde al hexadecimal que se envía al registro divisor de la UART para que este trabaje a la velocidad seleccionada una vez ejecutamos la orden de abrir el puerto. Aunque no se si es posible trabajar a velocidades superiores direccionando directamente los registro ‘MCR’ y ‘DL’ de las UARTS (complicado) se trataría de averiguar si añadiendo el valor de velocidad a la enumeración de la estructura DCB y su correspondencia con ‘MCR’ y ‘DL’, harian funcionar a la UART a una velocidad mayor a los 115200Bauds.


De todas formas hablando de velocidades, creo recordar que en anteriores versiones de Windows (95 o anteriores) el sistema no podía trabajar a velocidades altas (estaba limitado), pues por la naturaleza de la UART cada vez que recibe un carácter lanza una interrupción al procesador y ello podría provocar que el rendimiento general se resintiera, en la actualidad desconozco si existe alguna restricción a nivel de sistema operativo, cabe destacar que en .NET el System.IO.Ports.SerialPort puede trabajar hasta 115200 y creo no admite ninguna velocidad por encima de esta, dando como incorrecta cualquier valor que no pertenezca a la primera columna de la tabla, aunque reconozco no haber experimentado demasiado en este campo, porque realmente tampoco he sufrido esa necesidad.


P.C. (por cierto)… una manera de engañar al sistema seria abrir el port a 115200 y por la trastienda ajustar el Baud Rate MCR Bit7 a Cero!, pero creo que necesitariamos algun que otro Guru! 


Saludos,
Pep Lluis,

Puertos Serie?… Hasta cuando?

Repondiendo a las inquietudes de los que despues de 20 años contiuan viendo los conectores de 9 pins en nuestros equipos… comentaros que aunque parezca paradójico, la mayoría de Micros utilizados en la fabricación de dispositivos continúan disponiendo de una interfaz serie, aunque poco a poco se esta substituyendo por USB, algunos fabricantes están optando por integrar las comunicaciones a través de ethernet ya bien por RJ45 o WIFI.


Es difícil prever el panorama que nos espera, pues a pesar de todo, los chips continuaran incorporando interfaces como RS232, LIN, CAN, SPI, USB, RF, Infrarrojos o el nuevo ZigBee, mientras estos dispositivos utilicen comunicaciones en serie, los equipos informáticos que vayan a comunicarse con ellos necesitaran disponer de ese tipo de conexión.


NOTA: Los receptores GPS, intercambian la información a través de puertos y comunicación serie. Incluso cuando los integramos en un PDA el Buetooth extremo por extremo se convierte en un RS232.


Una de las virtudes de la comunicación serie es que solo implementa los tres primeros niveles del modelo OSI, ello lo hace tremendamente simple y sencillo de entender e implementar, de ahí que la mayoría de diseñadores continúen utilizándolo para tareas u aplicaciones básicas.


Tal y como tu apuntas los puertos serie irán desapareciendo paulatinamente de la parte posterior de nuestros equipos (la mayoría de portátiles ya no los incorporan), sin embargo existen un montón de accesorios USB-RS232 que conservaran esa herencia durante algunos años mas… o al menos eso creo!


Estare encantado de seguir con esta conversacion con quien se anime a continuarla!
Saludos,
Pep Lluis,

Visual Studio – Development Settings


Aunque parezca obvio, algunos de vosotros preguntáis como volver a la configuración inicial de Visual Studio. Como ya sabéis la primera vez que iniciamos VS, este nos invita a escoger un perfil de ajustes adaptado a nuestro lenguaje, inicialmente presenta personalización para Visual Basic… C#… General, etc. Algunos de vosotros tenéis la inquietud de hacer «un Reset» para volver a los ajustes originales del Perfil, pero no sabéis como. ¡Es muy Sencillo!.


Seleccionar ‘Herramientas‘ de la barra de menús de Visual Studio. A continuación la opción de ‘Importar y exportar configuraciones‘ os conducirá a un asistente con la opción ‘Restablecer todas las configuraciones‘; en este punto os dará la ocasión de omitir o salvar vuestra configuración actual y… ‘voila’ podéis volver a escoger o restablecer vuestra configuración favorita.


Pep Lluis,