Además es posible virtualizar el de 64bit habilitando en la VT-x/AMD-V, para ello hay que habilitar en el BIOS de la maquina la virtualización por hardware.
miércoles, 21 de septiembre de 2011
Windows 8 Developer con Oracle Virtual Box
En la mayoria de las opciones para virtualizar equipos no es posible aun correr el Windows 8 Developer Preview sin embargo en Oracle Virtual Box si es posible dado que cuenta con la opcion de IO APIC(Advanced Programmable Interrupt Controller ), el cual es un controlador de interrupciones, incorporado en la unidad central de procesamiento y diseñado por y para el multiproceso, concretamente para poder incorporar múltiples microprocesadores a la placa madre. No confundir con el "I/O APIC" de la placa base que consiste en una mejora del PIC clásico de la arquitectura AT y la ventaja es que ofrece más de 16 IRQs y un manejo más rápido de las mismas.
Además es posible virtualizar el de 64bit habilitando en la VT-x/AMD-V, para ello hay que habilitar en el BIOS de la maquina la virtualización por hardware.
Además es posible virtualizar el de 64bit habilitando en la VT-x/AMD-V, para ello hay que habilitar en el BIOS de la maquina la virtualización por hardware.
domingo, 21 de agosto de 2011
Instalación del shell GNOME3 en UBUNTU 11.04
Para agregar el shell de GNOME 3 en Ubuntu hay que seguir una serie de sencillos pasos secuencialemente, mismos que debemos ejecutar en modo terminal.
1. Agregar GNOME3 al repositorio y descargar los paquetes
1.1. Ejecutar: sudo add-apt-repository ppa:gnome3-team/gnome3
1.2. Ejecutar: gksu apt-get update
1.3. Ejecutar: sudo apt-get dist-upgrade (responder yes en la pregunta de actualización que hace el sistema interactivo)
2. Instalar el Shell GNOME 3
2.1. Ejecutar: sudo apt-get install gnome-shell
Notas:
1. Agregar GNOME3 al repositorio y descargar los paquetes
1.1. Ejecutar: sudo add-apt-repository ppa:gnome3-team/gnome3
1.2. Ejecutar: gksu apt-get update
1.3. Ejecutar: sudo apt-get dist-upgrade (responder yes en la pregunta de actualización que hace el sistema interactivo)
2. Instalar el Shell GNOME 3
2.1. Ejecutar: sudo apt-get install gnome-shell
Notas:
- Debemos recordar que cada vez que usemos elevación de permisos usando SUDO se requiere de dar la contraseña del root.
miércoles, 30 de marzo de 2011
Código del Juego del Gato o Tic Tac Toe C#
Este código lo utilice para implementar un tic tac toe con C# para Windows Phone 7.
martes, 22 de marzo de 2011
Versión C# del Wrapper para consumir la API del Wolfram Alpha
Wolfram Alfa, al igual que otros motores de búsqueda o computo del conocimiento expone su API para utilizar la bastitud de herramientas de calculo computacional con las que cuenta, utilizando una API sencilla escrita en VB.NET, pero para aquellos que no nos gusta (VB) o que preferimos utilizar C# por estándares esta es una opción para integrar la funcionalidad de calculo del Wolfram en nuestras apps.
jueves, 17 de marzo de 2011
Funciones C# para obtener numero de columna y nombre de columna, basado en columnas de Excel
Las siguientes funciones complementarias obtienen el numero de columna en Excel basado en el nombre y viceversa.
Ej
GetExcelColumnName(731) ==> "ABC"
GetExcelColumnNumber("AB") ==> 28
miércoles, 16 de marzo de 2011
Obtener Color de un Pixel de un UIElement en Silverlight (Windows Phone 7)
Hay diferentes requerimientos en los que nos podria ser útil leer un pixel de un elemento grafico en Silverlight o en aplicaciones Windows Phone 7, en seguida coloco una función para obtener el color, de un pixel dado el par ordenado X,Y y el UIElement.
/// <summary>
/// Get a Pixel Color from UIElement
/// </summary>
/// <param name="UIObject">UI Element</param>
/// <param name="X">X Axis magnitude</param>
/// <param name="Y">Y Axis magnitude</param>
/// <returns></returns>
public static Color GetPixelColor(UIElement UIObject, double X, double Y) {
var bmp = new WriteableBitmap(UIObject, new MatrixTransform());
int index=(int)(bmp.PixelWidth * Y + X);
Color color ;
if (index < bmp.Pixels.Length)
{
int c = bmp.Pixels[index];
color = Color.FromArgb((byte)(c >> 24), (byte)(c >> 16), (byte)(c >> 8), (byte)(c));
}
else {
color = Colors.Black;
}
return color;
}
jueves, 10 de marzo de 2011
Lectura de Archivos XLSx con C#, extrae el contenido como colecciones de rows o de entidades o bien de DataTables
Lectura de archivos XLSx, con C#, conversión del contenido en Listas de entidades o en DataTables.
Es importante agregar una referencia a Windows Base.
Es importante agregar una referencia a Windows Base.
Libreria basica de calculos con geocoordenadas
En algunas ocasiones es util realizar cálculos como distancias, puntos medios, latitud máxima, punto de destino, o el bearing.
en seguida coloco una clase que realiza algunos de esos cálculos, en el futuro la seguiré extendiendo
en seguida coloco una clase que realiza algunos de esos cálculos, en el futuro la seguiré extendiendo
Desplegar imagenes GIF en Windows Phone 7, usando C#
Actualmente el Windows Phone 7, no soporta el renderizado de imágenes GIF debido a que usa Silverlight, por lo que es útil, el uso de algún decodificador de imágenes, ya sea que lo escribamos o utilicemos alguno de los ya disponibles.
Para este ejemplo en particular utilice el ImageTools.
Para este ejemplo en particular utilice el ImageTools.
sábado, 26 de febrero de 2011
Cálculo de distancias entre dos geo-coordenadas con C#
En aplicaciones de información geográfica comúnmente es útil el cálculo de distancias entre dos coordenadas geográficas.
La siguiente función calcula la distancia entre dos puntos utilizando
La siguiente función calcula la distancia entre dos puntos utilizando
viernes, 25 de febrero de 2011
Obtención de Datos del Clima basado en un WOEID usando Yahoo API en C# para Windows Phone 7
Para el desarrollo de aplicaciones mobiles de apoyo al viajero uno de los temas más socorridos es el estado del tiempo.
Obtención del WOEID de un lugar mediante Yahoo API usando C# en Windows Phone 7
Un WOEID es un identificador único de lugares en la tierra por sus siglas (Where On Earth IDentifier), fue introducido por Yahoo para identificar cualquier característica de la tierra. Es útil para identificar lugares (zonas) en las que caen las coordenadas de latitud y longitud, de un lugar.
El WOEID es útil para obtener información como por ejemplo el clima.
El WOEID es útil para obtener información como por ejemplo el clima.
lunes, 21 de febrero de 2011
Traducción de Idiomas y Síntesis de Voz con Google API y Microsoft translator en Windows Phone 7
Es util hoy en día contar con herramientas para la traducción de idiomas, las cuales cada vez ofrecen mejores servicios, ejemplos claros son google translate y Microsoft Translator.
La siguiente clase utiliza los servicios de google translator API usando http, desde una app Windows Phone 7, pero puede ser utilizado en otros contextos, mediante una ligera modificación.
La siguiente clase utiliza los servicios de google translator API usando http, desde una app Windows Phone 7, pero puede ser utilizado en otros contextos, mediante una ligera modificación.
jueves, 10 de febrero de 2011
PieChart para Windows Phone 7 usando amCharts
En este ejemplo se muestra el uso de las amChart para Windows Phone 7, con un ejemplo básico de consumo de servicios web asíncronos y el uso del patrón MVVM.
Descargue las amCharts de http://www.amcharts.com/
Descripción del MVVM http://msdn.microsoft.com/en-us/magazine/dd419663.aspx
miércoles, 9 de febrero de 2011
Pruebas Unitarias con VS.NET 2008
Generando un caso de pruebas unitarias con Visual Studio .NET 2008
Recordemos que previo a la generación de un proyecto de pruebas unitarias, se debió haber definido el o los casos de pruebas de manera formal, utilizando el documento designado para ello.
Ejecución de un Cursor basado en un Query dinámico en ORACLE
Esta característica de ORACLE es muy útil para resolver múltiples necesidades, por ejemplo cuando un mismo algoritmo se aplica a diferentes origines de datos o para generar mecanismos estandarizados de consulta.
Ver código
Ver código
Truncado de bitacora SQL 2000
En ocasiones sobre todo en sistemas que realizan muchas transacciones lo primero en llenarse es la bitacora de transacciones, por lo que regularmente se debe respaldar dicha bitacora y borrarla. Pero si ocurre que no hacemos esto reguarmente y no hay un DBA que lo haga. Las siguientes instrucciones te sirven para eliminar los Logs.
como parámetro toma la fecha a partir de la cual se deben preservar las entradas en la bitacora de transacciones, todas las anteriores son borradas. El problema de usar esto es que elimina las de todas las Bases de Datos.
USE msdb
EXEC sp_delete_backuphistory '01/01/00'
La siguiente opcion es para truncar la bitacora de una bd antes de las siguientes instrucciones se recomienda hacer un respaldo de la bitacora de transacciones o de toda la BD.
DBCC SHRINKFILE (DB_log, Size)
BACKUP LOG DB
WITH TRUNCATE_ONLY
EXEC sp_delete_backuphistory '01/01/00'
La siguiente opcion es para truncar la bitacora de una bd antes de las siguientes instrucciones se recomienda hacer un respaldo de la bitacora de transacciones o de toda la BD.
DBCC SHRINKFILE (DB_log, Size)
BACKUP LOG DB
WITH TRUNCATE_ONLY
Truncado de flotantes en .NET 1.1
En .NET Framework 1.1 no hay función por defecto para truncar datos tipo double.
Ver código
Ver código
Stored Procedures utiles en SQL 2000, para temas de configuración
--- Este store te dice datos sobre el espacio ocupado por una
--- tabla u objeto de BD
sp_spaceused 'ObjectName'
--- Este store aplica una accion sobre todas las tablas de la BD, --- funciona igual que un cursor.
EXEC sp_msforeachtable 'sp_spaceused ''?'''
-- Este store sirve para modificar variables de servidor
-- En este ejemplo se trata concretamente de la configuracion
-- de una variable que permite que se hagan actualizaciones
-- AD HOC sobre las tablas de sistema, es decir updates,
-- inserts y deletes sobre sysproperties, sysobjects, etc..
-- Se habilitan los updates
EXEC sp_configure 'allow updates', '1'
RECONFIGURE WITH OVERRIDE
-- Se deshabilitan los updates
EXEC sp_configure 'allow updates', '0'
RECONFIGURE WITH OVERRIDE
Queries para obtención de Metadatos en Oracle
Aunque existe la instrucción DESCRIBE, en ocasiones es útil, obtener metadatos de una BD de oracle, ej. para temas de autogeneración de código.
Ejemplo del uso de la Notación JSON en JavaScript
Programación Orientada a Objetos en Java usando la notación JSON.
JSON: JavaScript Object Notation.
La intensión del Script mostrar como definir una Clase en JavaScript. esta clase es parte del F.js, se utiliza para un servicio de mensajeria embedido en la aplicación de tipo chat.
Ejecución de un DTS desde un SP en SQL 2000
Sobre todo en entornos de tipo Warehouse se requiere ejecutar bajo demanda un DTS para ejecutar alguna extracción o transformación luego de una acción o transacción de la BD.
En seguida el código de un SP que ejecuta paquetes DTS en SQL 2000.
En seguida el código de un SP que ejecuta paquetes DTS en SQL 2000.
Ejecución de queries dinámicos y retorno escalar SQL 2000
DECLARE @expr nvarchar(4000),
@sql nvarchar(4000),
@res decimal(18, 6)
set @expr = '(1+2)+6'
SELECT @sql = N'SELECT @res = CONVERT(decimal(18, 6), ' + @expr + ')'
EXEC master.dbo.sp_executesql @sql, N'@res decimal(18, 6) OUTPUT', @res OUTPUT
PRINT @res
@sql nvarchar(4000),
@res decimal(18, 6)
set @expr = '(1+2)+6'
SELECT @sql = N'SELECT @res = CONVERT(decimal(18, 6), ' + @expr + ')'
EXEC master.dbo.sp_executesql @sql, N'@res decimal(18, 6) OUTPUT', @res OUTPUT
PRINT @res
Efectos de entrada y salida en paginas HTML
Efectos de entrada en una página Web usando el meta tag http-equiv.
Convertir arreglos de objetos a DataTable
Esta clase muestra como convertir arreglos de objetos en DataTables utilizando reflection.
Consumo de un REF Cursor desde ASP.NET y ASP
Consumo del REF Cursor desde .NET y desde ASP 3 usando VB6
Consulta de espacio ocupado por objetos de BD SQL Server 2000
-- Para obtener el tamaño de cada uno de los archivos de la BD
declare @page_size INT
set @page_size = 8000
-- Tamaño de pagina
select size as 'pages', size*@page_size as 'size', name
from sysfiles
-- Para obtener el tamaño de la base de datos en MB
sp_spaceused @updateusage = 'TRUE'
-- Para obtener el tamaño de una tabla u objeto de BD
sp_spaceused 'objName'
-- Para obtener el tamaño de todas las tablas de la bd por separado
exec sp_MSforeachtable "exec sp_spaceused '?'"
declare @page_size INT
set @page_size = 8000
-- Tamaño de pagina
select size as 'pages', size*@page_size as 'size', name
from sysfiles
-- Para obtener el tamaño de la base de datos en MB
sp_spaceused @updateusage = 'TRUE'
-- Para obtener el tamaño de una tabla u objeto de BD
sp_spaceused 'objName'
-- Para obtener el tamaño de todas las tablas de la bd por separado
exec sp_MSforeachtable "exec sp_spaceused '?'"
Chequeo de espacio en disco y bitacoras en SQL 2000
Comandos basicos para revisar bitacoras y uso de disco en una BD de SQL Server 2000.
-- espacio usado
sp_spaceused
-- espacio usado por las bitacorasDBCC SQLPERF(logspace)
-- información de los archivos fisicos de las bitacoras
DBCC LOGINFO
-- transacciones pendientes
DBCC OPENTRAN
-- backup y truncado de bitacora
BACKUP LOG DBName WITH NO_LOG
Auditoria de Bloqueos en SQL Server 2000
Este query es una mutación del sp_lock, que agrega algunos datos que el SP_LOCK no muestra.
Util para detectar Dead locks.
Util para detectar Dead locks.
Ejecución Select sobre SP que arroja un recordset usando linked server Tips MS SQL
Para usar este aproach se debe tomar en cuenta que si el SP a ejecutar hace conexiones a otros servers se debe tener configurado correctamente el servicio de Manejo de transacciones distribuidas de MS.
-- Se agrega el linked server solo una vez
sp_addlinkedserver @server = 'localhost',@srvproduct = '',@provider = 'SQLOLEDB',@datasrc = @@servername-- Construye tu consulta de acuerdo a los resultados que emita el SP
SELECT * FROM OPENQUERY(localhost, 'exec spName param1,...')
Colocar un consecutivo a un record set en SQL
En ocasiones dentro de un Store Proceduree necesitamos ponerle un consecutivo a una consulta, esto para procesos complejos o que por su naturaleza necesiten de un numero ordinal consecutivo y que vaya numerado de "1" en "n".
Aunque hay muchas formas de hacerlo algunas mas complejas que otras podriamos apoyarnos en dos conceptos basicos, una funcion y una tabla temporal.
La funcion IDENTITY(integer DataType, [Seed, Increment]), seed e increment por defecto son 1.
select IDENTITY(int, 1,1) Consecutivo , * into #t from sysobjectsselect * from #t
martes, 8 de febrero de 2011
Activación de las aplicaciones de Email y SMS para Windows Phone 7 C#
En el siguiente código muestro como invocar a las aplicaciones de EMAIL y SMS, de manera programática, con la finalidad de invocar dichas funcionalidades desde algún modulo en particular de una aplicación. (esté código será actualizado en cuanto termine la app en la que lo uso).
Listado de código
Función para paso de parámetros entre páginas Windows Phone 7 C#
Una de las formas para el paso de parámetros entre páginas en una aplicación para Windows Phone 7, es utilizando el área de almacenamiento aislado, en seguida coloco el código fuente para encapsular el paso de parámetros entre paginas en un par de funciones tipo SET y GET.
Ver listado de código
Ver listado de código
lunes, 31 de enero de 2011
Clases para Carga y Descarga de BLOBs a MS SQL (C# ASP.NET)
En la siguiente entrada se podrán observar un par de clases una utilizada para la descarga de BLOBs desde una base de datos y otra para la carga de BLOBs en una base de datos SQL, en el caso de la de carga también tiene funcionalidad para subir archivos en un File System.
Listado de código
Listado de código
miércoles, 19 de enero de 2011
Procesamiento de imágenes básico con C#
En seguida publico un set de clases para ejecutar procesamiento de imágenes básico con C#.
Clase para Cargar un BLOB en Oracle usando C#
En aplicaciones empresariales o de cualquier indole, es muy utilizado el almacenamiento de blobs en bases de datos, este ejemplo muestra una clase que sube archivos binarios a una base de datos ORACLE. La clase tiene algunas propiedades que permiten que se pueda usar utilizando una definición personalizada de la tabla en la que se almacenará el blob.
En seguida el listado del código
En seguida el listado del código
Clase en C# para consultar Cubos OLAP y ejecución de comandos MDX usando AdoMD
En proyectos sobre todo de inteligencia de negocios con plataformas Microsoft es común utilizar Microsoft Analysis Services, y si tenemos alguna aplicación en .NET que requiera información extraída de esa fuente una forma es utilizando AdoMD para conectarse y consultar los cubos que están en el Warehouse.
En seguida el listado de código
En seguida el listado de código
Implementación de Encripción de Cadenas y Archivos con AES256 ( algoritmo Rijndael)
En desarrollo es muy socorrido el uso de algoritmos de encripción de llave publica o privada, en este caso expongo una clase que implementa el algoritmo Rijndael o AES de 256bits, el cual es de llave privada, simétrico y de encripción por bloques. Para mas detalles ver http://es.wikipedia.org/wiki/Advanced_Encryption_Standard.
Esta clase es capaz de encriptar archivos pequeños (en un solo chunk) o grandes (usando múltiples chunks), así como cadenas de texto. Con algunos ligeros ajustes seria posible también encriptar o decriptar Streams.
En seguida el listado de código
Esta clase es capaz de encriptar archivos pequeños (en un solo chunk) o grandes (usando múltiples chunks), así como cadenas de texto. Con algunos ligeros ajustes seria posible también encriptar o decriptar Streams.
En seguida el listado de código
Clase para ejecutar Impersonificación NTLM de forma programática C#
En algunas aplicaciones sobre todo Web es necesario hacer uso de lo que se conoce como impersonificación, y existen diferentes formas de hacerla, una es de forma programática y en seguida coloco una clase en C# que facilita esa labor. Para mayor información ver http://msdn.microsoft.com/en-us/library/ff647404.aspx.
Compilación y ejecución dinámica de código .NET
Algunas ocasiones podriamos requerir generar un interprete de scripts o compilar y ejecutar código de forma dinámica, como para el procesamiento de plantillas, una forma de hacer esto es como lo muestra el siguiente listado de código.
martes, 18 de enero de 2011
Wrapper para la API de Win32
Cuando se tienen requerimientos muy particulares a la plataforma Windows esta clase puede ser muy útil, por ejemplo podríamos escribir un keylogger con relativa facilidad o una aplicación espía se que se encargue de tomar screen shots de cierta ventana o del escritorio completo, o algunas otras aplicaciones.
En seguida coloco el código.
Funciones gráficas (Captura de Pantalla utilizando C#)
En seguida un ejemplo de como usar GDI para capturar el contenido del escritorio, o una sección del mismo, en seguida el código.
Serialización de objetos para usarla en Web Services
Es común en el desarrollo de Web Services utilizar el concepto denominado serialización, el cual nos permite intercambiar objetos entre sistemas heterogéneos. Ver listado de código.
Versión C# de una clase para imprimir usando ZPL
Sobre todo en ambientes Industriales es muy socorrido el uso de impresoras Zebra, en seguida el código fuente, la siguiente clase implementa un buen Wrapper.
Clase Cliente FTP en C# para versiones 2 o inferiores del Framework
Cliente FTP para .NET 1.1 o 2, antes de que existieran los clientes FTP en el System.Net. En seguida el listado de código.
Validación de Usuarios con el Directorio Activo
Este es un complemento al tema de directorio activo, permite hacer validaciones de cuentas de usuario vs el directorio activo.
Consultas al Directorio Activo
En ocasiones es útil hacer consultas al directorio activo ya sea para buscar usuarios u otros objetos que estén en el directorio activo.
En seguida el código.
Ejecución de JOBs de DataStage usando REXEC en C#
Utilizando la clase descrita en la entrada de este mismo blog referente a la ejecución de REXEC utilizando C# se pueden construir otro tipo de aplicaciones como por ejemplo un componente que nos permita ejecutar programáticamente JOBs en DataStage sin utilizar API de DataStage.
En seguida el código
Ejemplo en C# para ejecutar comandos remotos en UNIX usando REXEC
Esta clase tiene como propósito brindar a aplicaciones .NET la capacidad de interactuar con el protocolo REXEC, descrito en el RFC 2179, en seguida el listado de código.
Suscribirse a:
Entradas (Atom)
Transacciones Fiori
/UI2/CACHE Register service for UI2 cache use /UI2/CACHE_DEL Delete cache entries /UI2/CHIP Chip Registration /UI2/CUST Customizing of UI ...
-
Sobre todo en ambientes Industriales es muy socorrido el uso de impresoras Zebra, en seguida el código fuente, la siguiente clase implement...
-
Esta característica de ORACLE es muy útil para resolver múltiples necesidades, por ejemplo cuando un mismo algoritmo se aplica a diferentes ...