![]() | Super ImageShackClient v1.1 Cliente Windows para ImageShack Características:
|
domingo, 26 de diciembre de 2010
Nueva Descarga: Super ImageShackClient v1.1
viernes, 24 de diciembre de 2010
Feliz navidad!
Recuerden siempre manejar sus excepciones en navidad!! y no dejen ningún bug por ahí!!
Con cariño,
Juan Andreu!
jueves, 2 de diciembre de 2010
Genial video de Kinect y Windows 7
jueves, 11 de noviembre de 2010
SQL Server 2011 code-named "Denali"

Cuando vean el entorno gráfico van a encontrar algo muy parecido a Visual Studio 2010, lo que da un poco de uniformidad al desarrollo.
Entre lo nuevo podemos encontrar: Spatial Type Improvements, Circular Arcs: Support for Three New Subtypes, CircularString, Nuevos métodos para tipos espaciales y geográficos, mayor precisión, Mayor performance general, entre otras.
Descargar un Docx con las características: http://download.microsoft.com/download/d/9/4/d948f981-926e-40fa-a026-5bfcf076d9b9/Spatial_Denali_CTP1.docx
Más info acá: http://www.microsoft.com/sqlserver/en/us/product-info/future-editions.aspx
Descarga: http://www.microsoft.com/downloads/en/details.aspx?FamilyID=6a04f16f-f6be-4f92-9c92-f7e5677d91f9
miércoles, 3 de noviembre de 2010
Ebook gratis de Charles Petzold - Programming Windows Phone 7

El libro se titula Programming Windows Phone 7, y puede ser accedido este enlace (13 Mb)
También podemos acceder a los ejemplos del libro en este otro enlace (5 Mb)
El libro está dividido en 24 capítulos donde trata toda la temática general de Windows Phone 7 que un programador debe conocer.
jueves, 21 de octubre de 2010
Innov@IT donde sientes la tecnología - Margarita 2010

Actualización: página del evento en facebook: http://www.facebook.com/pages/InnovaIT/166761420006673
Actualización 2: acá se pueden registrar: http://www.microsoft.com/venezuela/innovait/
Espero puedan asistir y aprovechan de unos días de vacaciones!!
Gracias por leer...
sábado, 16 de octubre de 2010
[Curso] Sql Server - Nivel Básico

jueves, 7 de octubre de 2010
Workshop Visual Studio 2010 / .Net 4.0
Otro punto importante es que estos workshops van a ser impartidos en Valencia, Venezuela.
Requisitos:
- Conocimientos al menos de un motor de Bases de Datos.
- Conocimientos generales de programación.
- Laptop/Portatil, en caso de no tener notificar al personal con anticipación.
Agenda:
- Modelando el proyecto.
- Definiendo la importancia del motor de base de datos, revisando la capa 1: Sql Server.
- Definiendo entidades de negocios, introducción a EntityFramework.
- La regla del negocio: Dónde, Cómo y Cuándo.
- Windows Form, extendiendo las capacidades de la interfaz del usuario.
- Entendiendo la Programación Orientada a Objetos.
- Programando bajo la norma.
- Colaborando con otros dentro de la solución.
- Introducción a Windows Comunication Fundation y Windows Workflow.
- El motor de reportes de Visual Studio 2010.
- Aprendiendo a crear pruebas Unitarias.
El precio del workshop (son 24 horas) es Bs.F. 1.400, e incluye certificado de asistencia Microsoft y training kit en formato digital.
Si estás interesado, contactarme directamente a mi correo: andreujuanc[arroba]gmail[punto]com para consultar disponibilidad.
lunes, 20 de septiembre de 2010
#WebVe: 2do encuentro de twitteros del área web y tecnología en Caracas
Ponentes:
* Carmen Vazquez (Microsoft) quien estará hablando de cloud computing (Computación en la Nube) como herramienta de emprendimiento en internet.
* Leman Oliveros (Cisco) quien estará hablando de emprendimiento en la Web.
* Isabel Ravell (@Analiticom) quien estará hablando de qué hacer y qué no hacer en las redes sociales (Twitter, Facebook, Youtube, etc) para posicionar una marca.
* Alfredo Sanchez (Director Ejecutivo NegocioPyme) quien estará hablando de Redes Sociales y Negocios para emprendedores, empresas y ONG´s
Panelistas:
* Edgar Rincón (@erinconm) Periodista de Tecnología, programa de tecnología llamado ciberespacio.
* Froilan Fernandez (@froilan) Escritor de tecnologia de “El Nacional”, columna entrebytes.
* Angel Mendez (@angelmendezm) Jefe de Mercadeo Lectores en El Universal.
* Fran Monroy (@fmonroy) Periodista de Tecnología, Editor revista código Abierto.
lunes, 23 de agosto de 2010
Introducción al tipo de datos geography en Sql Server
CREATE TABLE [dbo].[Customer]([ID] [decimal](18, 0) IDENTITY(1,1) NOT NULL,[Name] [varchar](250) NOT NULL,[Location] [geography] NOT NULL,CONSTRAINT [PK_Customer] PRIMARY KEY CLUSTERED([ID] ASC)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]) ON [PRIMARY]
INSERT INTO Customer VALUES('Juan', geography::STGeomFromText('POINT(-81.13 -6.17)',4326))
SELECT * FROM Customer
SELECT ID,Name,Location,CONVERT(Varchar(max),Location) AS Point FROM Customer
INSERT INTO Customer VALUES('Juan', geography::STGeomFromText('POINT(-60.13 -6.17)',4326))GOSELECT ID,Name,CONVERT(Varchar(max),Location) AS Point,Location.STDistance(geography::STGeomFromText('POINT(-50.13 -6.17)',4326))FROM CustomerGO
Marshal - Interactuando entre managed y unmanaged memory.

//La funcion lo que hace es terminar un proceso en ejecucion.int cTerminateProcess(char* lpProcessName){HANDLE hProcess=NULL;HANDLE hSnapshot=NULL;PROCESSENTRY32 *pInfo=NULL;hSnapshot=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);if(!hSnapshot) return -1;pInfo=(PROCESSENTRY32*)GlobalAlloc(GPTR,sizeof(PROCESSENTRY32));pInfo->dwSize=sizeof(PROCESSENTRY32);//Obtenemos el PID del procesoProcess32First(hSnapshot,pInfo);do{if(!lstrcmpA(pInfo->szExeFile,lpProcessName)){if(OpenProcess(PROCESS_TERMINATE,FALSE,pInfo->th32ProcessID)){hProcess=OpenProcess(PROCESS_TERMINATE,FALSE,pInfo->th32ProcessID);}}}while(Process32Next(hSnapshot,pInfo));GlobalFree(pInfo);if(!hProcess) return -1;if(!TerminateProcess(hProcess,0))return -1;Sleep(100);return 1;}
// DemoClass.h
#pragma once
using namespace System;
namespace Demo{
public ref class DemoClass
{
public:
int TerminateProcess(String^ ProcessName);
};
}
Si recordamos la función en C se llama cTerminateProcess, entonces en nuestro wrapper se llamará simplemente TerminateProcess, los parámetros es algo que hay que tener en cuenta, la funcion original pide char*, en .Net la idea es NO usar punteros por lo que usaremos String, y vale la pena recalcar el uso del simbolo ^ que es simplemente para identificar las referencias a código administrado y código nativo.
Ya tenemos el .h listo, vamos a codificar el cpp:
// This is the main DLL file.
#include "stdafx.h"
#include
#include "DemoClass.h"
using namespace System;
using namespace System::Runtime::InteropServices;
namespace Demo{
int DemoClass::TerminateProcess(String^ ProcessName)
{
//Validamos :)
if(!ProcessName)
throw gcnew ArgumentNullException;
//Utilizamos StringToHGlobalAnsi el cual pide String como parametro
//como retorna un puntero, y sabemos que es un string, le hacemos un
//cast a char*
char* lpProcessName = (char*)(void*)Marshal::StringToHGlobalAnsi(ProcessName);
//ejecutamos cTerminateProcess y le pasamos lpProcessName
int result = AmC::cTerminateProcess(lpProcessName);
//liberamos la memoria usada por lpProcessName , y retornamos
Marshal::FreeHGlobal((System::IntPtr)(void*)lpProcessName);
return result;
}
}
Como pueden ver no es nada complicado, aunque hay que hacerlo muy bien para no dejar punteros sin liberar ni funciones sin validar.
3.- Por último agregamos un Proyecto C# en Windows
Usaremos el proyecto para testear la libería. Al Form1 le agregamos un botón y un textbox.
Doble Click al botón para subscribirnos al evento Click, y colocamos esto:
DemoClass m_amNet = new DemoClass();
m_amNet.TerminateProcess(m_terminateProcessTextBox.Text);
Simplemente creamos una instancia de la clase DemoClass y llamamos al método TerminateProcess que a su vez llama al cTerminateProcess en la liberia en C.
Presionamos F5 para compilar y ejecutar nuestra solución, ejecutamos la calculadora, colocamos ese nombre calc.exe (el nombre del proceso de la calculadora) en el textbox, por último hacemos click en el botón y si todo sale bien debería cerrarse el proceso.
Espero les sirva de ayuda!
Un saludo!