Google se acerca a la yugular de Microsoft
Google se caracteriza por sus aplicaciones gratuitas, cuántas veces has pagado por utilizar alguna de sus aplicaciones? Aunque parezca mentira hay gente que lo hace, se trata de las versiones empresariales no estoy diciendo que me parezca mal, al contrario; me parece una decisión muy acertada para las empresas que quieren olvidarse de controlar esas funciones.
En el mundo empresarial Microsoft Outlook sigue siendo el rey de la jungla, ya sea por imposición de la propia empresa o por costumbre del trabajador. Pues bien, Google ha dado un paso adelante para evangelizar también en las empresas.
Hay que reconocerlo, el trabajo que ha echo Microsoft en el mundo de la empresa ha sido muy importante. Outlook me parece una aplicación realmente buena, sencilla y que facilita mucho las cosas al usuario. La jugada de Google no pasa por substituir Outlook, va más allá. El dinero que gana Mircrosoft viene de Microsoft Exchange (el servidor que viene con Outlook), Google va a por eso. El coste de las aplicaciones empresariales de Google valen menos de la mitad que las de su competidor, ahi está el negocio y en Google lo saben.
La nueva versión de Google Apps Sync sincroniza las versiones empresariales de Gmail, contactos y calendario con Microsoft Outlook. De esta manera los trabajadores pueden seguir utilizandolo pero con Google Apps trabajando en segundo plano de forma transparente, a alguien de Microsoft no le va a hacer mucha gracia…
A vueltas con .NET: ComboBox Multi-Columna
Aunque parezca mentira Visual Basic 2008 no incorpora por defecto un ComboBox capaz de mostrar varias columnas de datos. La única manera de hacerlo es programarlo nosotros mismos o buscar ese control por Internet.
Como ya os imaginais a estas alturas, no vamos a inventar nada que ya esté inventado y funcione perfectamente. Por tanto, vamos a añadir el control capaz de hacer lo que queremos y explicar cómo utilizarlo para mostrar los datos que nos interese. En nuestro caso vamos a utilizar el control Icon ComboBox, creado por Steve McMahon, de la conocida página vbaccelerator
![]()
¿Cómo añadir el control a nuestro proyecto?
Lo primero será descargar el control.
Una vez descargado tenemos que añadir el control al toolbox de nuestro proyecto. Clickando con el botón derecho del ratón encima del toolbox marcamos “Choose Items“, dentro del nuevo menú le damos a Browse y seleccionamos el archivo .dll del control.
Llegados a éste punto tenemos el nuevo control añadido al toolbox y listo para usarse. Lo siguiente será añadir el control al formulario, declararlo, modificar los aspectos visuales y empezar a pasarle valores. Vamos a ello.
Añadir el control al formulario se hace igual que cualquier otro control de los que vienen por defecte en Visual Studio, por tanto arrastramos el control al formulario y empezamos a trabajar con él.
Declaramos el control. Como veis se trata de definir cuántas columnas va a tener el control y el espacio que van a ocupar:
Dim column As IconComboBoxColumn = New IconComboBoxColumn 'Por defecto el control ya trae una columna, sólo cambiamos su tamaño IconComboDepartamento.Columns(0).ColumnWidth = 128 'Segunda columna column.ColumnWidth = 32 IconComboDepartamento.Columns.Add(column) 'Tercera columna column = New IconComboBoxColumn column.ColumnWidth = 96 IconComboDepartamento.Columns.Add(column)
Ya tenemos el control declarado, ahora solo falta poblarlo y mostrarlo. El método para poblar el control consiste en añadirle Items, cada item es una linea del combobox y a cada item le añadiremos tantos subitems como columnas tengamos en el control. Con el ejemplo queda más claro.
Dim ici As IconComboItem = New IconComboItem ici.Text = "Informática" Dim subitem As IconComboSubItem = New IconComboSubItem subitem.Text = "5 trabajadores" ici.SubItems.Add(subitem) subitem = New IconComboSubItem subitem.Text = "Piso superior" ici.SubItems.Add(subitem) IconComboDepartamento.Items.Add(ici)
De éste manera hemos añadido una linea al combobox de 3 columnas.
A vueltas con .NET: Modificar Connection Strings en Runtime
Esto del .NET me parece alucinante, la de cosas que se pueden llegar a hacer de forma rápida y sencilla es enorme. Sin hablar de la cantidad ingente de ejemplos y ayuda que podemos encontrar por Internet. Sin embargo, me he encontrado con un problema.
En una aplicación que estoy haciendo necesito poder leer los datos de diferentes bases de datos en función del dominio en el que se ha autentificado el usuario. Las bases de datos corresponden a diferentes fábricas alrededor del mundo así que necesito poder cambiar el ConnectionString que utilizan los DataSets en tiempo de ejecución. Después de indagar ésto es lo que he conseguido, espero que alguien le ayude.
Lo primero que debemos hacer es declarar los diferentes ConnectionString que podemos utilizar, en nuestro caso lo haremos dentro de My Project -> Settings.

En mi caso tengo 3 Connection Strings, uno de ellos (ConnectionString) es el que utilizan los diferentes DataSets y los otros dos (SpainConnectionString y ChinaConnectionString) son los diferentes valores que puede tomar la primera variable. En la misma pantalla de Settings le damos a ViewCode y saltaremos al código de la clase Settings que nos permite utilizar eventos específicos de esa clase.
Namespace My
'This class allows you to handle specific events on the settings class:
' The SettingChanging event is raised before a setting's value is changed.
' The PropertyChanged event is raised after a setting's value is changed.
' The SettingsLoaded event is raised after the setting values are loaded.
' The SettingsSaving event is raised before the setting values are saved.
Partial Friend NotInheritable Class MySettings
Public WriteOnly Property ChangeConnectionString() As String
Set(ByVal Value As String)
My.Settings("ConnectionString") = Value
End Set
End Property
End Class
End Namespace
Éste es el código que modifica el valor de la variable ConnectionString (también se puede utilizar para cambiar culaquier valor de la clase My Setting), ahora debemos llamar a éste proceso con el valor que nos interese.
En nuestro caso miramos el dominio del usuario y el rango de IP’s del usuario.
Private Sub GetDomain(ByVal HostName As String) 'Buscamos el dominio al que corresponde la ip que tenemos asignada, 'no el dominio al que nos hemos 'logueado desde Windows Dim Direcciones As IPAddress() = Dns.GetHostAddresses(HostName) 'Recorremos todos los posibles dominios y cargamos el portal del dominio correspondiente Select Case Mid(Mid(Direcciones(0).ToString(), 9), 1, InStr(Mid(Direcciones(0).ToString(), 9), ".") - 1) Case My.Settings.SPAIN_IP My.Settings.ChangeConnectionString = My.Settings.SPAINConnectionString Case My.Settings.CHINA_IP My.Settings.ChangeConnectionString = My.Settings.CHINAConnectionString Case Else 'Si llegamos aqui es que no estamos en ningun dominio conocido, por tanto cerramos el portal End Select End Sub
Espero que os sea de ayuda.
A vueltas con .NET: Minimizar formulario en la barra de tareas
Desde hace algún algo más de un mes estoy aprendiendo a programar con en .Net con Visual Basic 2008. Lo estoy haciendo totalmente auto-didacta así que hasta dentro de un tiempo no habrá gran cosa… Se me ha ocurrido colgar todas las dudas que me asalten y encuentre su solución en “El Interné”, por si a alguien le puede servir de ayuda.
El caso de hoy trata de minimizar nuestro formulario y colocarlo en la barra de tareas de Windows (System Tray), no es gran cosa pero es un comienzo, no?
Lo que debemos hacer es añadir un NotifyIcon a nuestro formulario y, si queremos que quede más bonito, añadirle un ContextMenu. La finalidad de éste control es crear un menú cuando hagamos click encima del NotifyIcon. Añadimos el siguiente codigo al evente de cerrar del formulario que queremos ocultar.
'En lugar de cerrar el programa lo vamos esconder y mostrar el icono del IconTray Private Sub frmPortal_FormClosing(ByVal sender As System.Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles MyBase.FormClosing 'Primero lo minimizamos Me.WindowState = FormWindowState.Minimized Me.ShowInTaskbar = True 'Ahora lo hacemos invisible y cancelamos el evento de cerrar Me.Visible = False e.Cancel = True End Sub
Hasta ahora lo que hemos echo es esconder el formulario pero todavia no veremos ningún icono en la barra de tareas.
En mi caso no voy a usar un ContextMenu,lo que me interesa es que cuando se haga click encima del NotifyIcon el formulario vuelva a aparecer.
'Hacer click en el icono significa volver a abrir la aplicacion Private Sub NotifyIcon_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles NotifyIcon.Click 'Primero lo maximizamos Me.WindowState = FormWindowState.Maximized 'Refrescamos los controles del formulario, sólo por nitidez. Me.Refresh() 'Lo volvemos a hacer visible Me.Visible = True Me.BringToFront() End Sub
Llegados a este punto me encontré con un problema, si tenía mas ventanas abiertas el formulario aparecía detrás de todas ellas. Teniendo en cuenta que es un aplicación que me interesa que esté siempre delante del todo utilizé la propiedad TopMost del formulario.
Empezando a programar en Google Android
La mejor manera de crititicar algo es probarlo. Android esta levantando mucho revuelo y vaticina cosas impresionantes, pero, es verdad?
Después de haber probado su SDK y ver las posibilidades que ofrece mi opinión es que si. El único límite que tienen las aplicaciones de Android es la imaginación de sus programadores. En las demás plataformas será lo mismo, tanto con Windows Mobile, Symbian, iPhone, etc… pero como este S.O operativo es abierto, gratis, y su codigo fuente ha sido liberado me ha llamado mucho más la atención.
Si a ti también te interesa o simplemente, vuelves de vacaciones y no tienes ninguna motivación para trabajar, atiende.

Lo primero es bajarse Eclipse y descomprimirlo a una nueva carpeta. El siguiente paso es descargarse la SDK de Android y descomprimirla. Una vez echo esto debemos agregar el path al SDK dentro de la variable de sistema PATH. Bajo Windows lo conseguiremos haciendo click-derecho en Mi PC > Propiedades > Opciones avanzadas > Variables de entorno…. y dentro de la lista de Variables de sistema hacemos doble click sobre la variable Path y añadimos la ruta completa a la carpeta donde hemos descomprimido el SDK.
Ahora tenemos que configurar Eclipse para poder generar proyectos Android y poder probarlos en el emulador.
Instala el Plugin de Android (ADT):
- Abre Eclipse, selecciona Help > Software Updates….
- En el diálogo que aparece, click en la pestaña de Available Software.
- Click Add Site…
- http://dl-ssl.google.com/android/eclipse/
- Acaba de instalar el plugin y reinicia Eclipse
Llegados a este punto ya somos capaces de generar una aplicación de Android. Ahora sólo falta saber cómo…
La mejor manera de empezar es seguir los tutoriales, desde el conocido “HelloWorld” en su versión “HelloAndroid” hasta un interesantísimo ejemplo de NotePad que incluye el uso de los componentes más básicos a la hora de programar una aplicación en Android.
Os animo a que lo probeis, yo lo estoy haciendo y en breve espero poder publicar algo decente.
Crónicas Informáticas, Parte 5ª
Como buen informático ochentero que soy crecí retorciendome los sesos con las aventuras gráficas de la época. Esos maravillosos juegos que recuerdo con añoranza y melancolía como el Monkey Island, el Indiana Jones And The Fate Of Atlantis, el Day Of The Tentacle… tengo los pelos como escarpias ahora mismo.
Uno de los peores errores que podemos cometer los de mi generación es por capricho descargar y volver a jugar con esos juegos. La magia con que los recuerdas puede evaporarse en cuestión de décimas de segundo. Pero de todas maneras con ellos ha crecido un generación sana mentalmente, educada y con valores. ¿Con qué valores puede crecer un niñato de 14 años que se pasa todo el día matando chinos con el Call of Duty? ¡Nos pagará nuestra pensión un puñado de asesinos en serie!.
Hoy los juegos son increíbles en cuanto a efectos gráficos y tecnológicos pero con ellos ha cambiado una sociedad mucho más violenta y menos imaginativa. Poned a un adolescente una aventura gráfica que le haga pensar un poco… te mandará un poquito a la mierda y después se pondrá a matar chinos culeiros.
El extraño caso del fondo del XP
Un tal O’Rear en 1995 deambulando apaciblemente por el Valle de Napa (California) se encontró con un idílico paisaje y le hizo una foto con su corriente cámara de fotos. Esta fotografía más tarde sería elevada a la categoría de fondo oficial del sistema operativo Windows XP adentrándose en millones de hogares.

El caso es que el paisaje repleto de verde hierba no es exactamente así en la actualidad. Esas colinas se encuentran siempre cubiertas de vides pero en la primera mitad de los noventa sucedió un pequeño desastre que hizo variar de forma bastante drástica el dibujo. Debido a una plaga de filoxera las cepas se tuvieron que eliminar y se plantó toda la colina de verde hierba. En ese momento O’Rear hizo la famosa foto desde una carretera cercana.
Después de la plaga el paisaje volvió al estado natural como se puede observaren la fotografía.

Warner Bros. compra The Pirate Bay
Ésto es lo que realmente me gusta de The Pirate Bay, no se preocupan de lo que digan los demás. Pese a estar inmersos en un juicio y con millones de miradas encima, ellos simplemente, se rien de todo.
Aqui tenemos la gracia del April Fool’s Day, el dia de los Inocentes en Estados Unidos e Inglaterra (Click en la imagen) :
Microsoft rompe con Encarta
Uno de los productos más exitosos de Microsoft es si ninguna duda la genial enciclopédia Encarta con la que tanto hemos aprendido muchas personas. Pues ahora parace que las cosas no les van demasiado bien. ¿Tal vez el auge de Wikipedia haya imfluído bastante en su decisión?.
Pues el caso es que en junio de este año Microsoft abandonará el soporte a Encarta y la web dejará de existir el 31 de octubre.
Otro hacker montado en el dólar
La empresa de telecomunicaciones Telstra ha incorporado a su plantilla de empleados a un hacker de 19 años llamado Owen Thor Walker. El piratilla yogurín tiene en su currículum vitae el haber ayudado a una red criminal a infiltrarse en 1,3 millones de ordenadores de todo el mundo y robar millones de dólares.

El puesto de trabajo para el precoz hacker se basará en la mejora de los sistemas de seguridad de la compañía. Uno más de esos casos en los que se hace una llamada muy clara a los informáticos de todo el mundo: Hackear todo lo que podáis si queréis ser ricos. La verdad, no creo que sea una buena idea promocionar así el delito.
Owen dirigía una red internacional de piratería informática que implementaba virus para sustraer fondos de las cuentas bancárias de los usuarios. Fue culpado con una pena de 10 años de prisión (hay gente que por robar mucho menos ha estado más tiempo) y encima el tribunal finalmente le puso en libertad.
Mi Manual de Windows Phone
Ultimos Posts
- Windows Phone Developer Tools 7.1 Beta
- Cambia el tema del emulador de Windows Phone
- Algunos tutoriales de Windows Phone 7 (Parte 3)
- Grabador de voz en Windows Phone
- Cambiar teclado de TextBox en WP7
- Sobre el diseño Metro para programadores de WP7
- Base de datos XML en Windows Phone 7
- Windows Phone 7 Isolated Storage Explorer
- Almacenamiento local de datos en Windows Phone
- Uso del control Popup en WP7
Windows Phone
Nuestras lecturas
Windows Phone Blog
Andrea Haubner Blog
Blankenblog
Libre y extremo





