[#W8] HowTo: Agregar o eliminar la opcion de power en el Start Screen

Hola!

Mientras tengo un virus en el estómago que no me deja estar más de 5 minutos frente al ordenador sin marearme, voy a rescatar un post de los que tengo el modo draft. En este caso es para habilitar o deshabilitar el menu con las opciones de POWER en la Start Screen de Windows 8.1

image

La verdad es que es bastante simple, aunque siempre me olvido.

En el registro Windows acceder a la ruta

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\ImmersiveShell

Y dentro de la misma, crear una clave Launcher si es que no existe.

A continuación, dentro de Launcher crear un DWORD llamado Launcher_ShowPowerButtonOnStartScreen y en el mismo poner el valor 1 para habilitar el POWER o 0 para deshabilitarlo.

image

Done!

Saludos

/El Bruno

[#VS2013] HowTo: Connect to a #Bluetooth device using PIN (thanks #32feet!)

Hola!

A couple of days ago I wrote a post and I explained how to list the Bluetooth registered devices using 32Feet.. However to have a more complete scenario I must add some other stuff like:

1. Connect to the Bluetooth device

2. Read information from the Bluetooth device

3. Send information to the Bluetooth device

I’ll start with the first one with a very simple Console App. Very simple source code with only a couple of remarks.

- I use 32Feet to make the work with BT more easier (https://32feet.codeplex.com)

- I use LinQ to identify the device using the device Name

- Once I get the device, I store the Device Address

- Lines 13 y 21, PIN pairing process

- In the line 40 I start the read process.

https://gist.github.com/elbruno/8d253679235a2d6fe008

Next time more, and the same process with Windows Phone is almost impossible.

Saludos @ Home

El Bruno

image image image Google

[#VS2013] HowTo: Conectar con un device #BlueTooth utilizando un PIN (thanks #32feet!)

Hola!

Hace poco escribí en un post, las 4 líneas que podíamos usar para listar los devices bluetooth que tenemos registrados en local en nuestro ordenador. Para dejar el ejemplo completo lo que me falta son los siguientes pasos

1. Conexión al device bluetooth

2. Recepción de información desde el device bluetooth

3. Envío de información desde el device bluetooth

Hoy empiezo por la primera con esta simple app de consola. El código es bastante simple, lo único que debería remarcar es

- Utilizo 32Feet para simplificar el acceso a BT (https://32feet.codeplex.com)

- Utilizo LinQ para acceder al device a través del nombre del mismo

- Una vez identificado el device, registro el address del mismo

- En la líneas 13 y 21, realizo el pareo con el PIN.

- Una vez conectado, ya puedo comenzar a leer información del device, línea 40.

Mañana más … ahh y por cierto, esto mismo con Windows Phone es casi imposible Sad smile

Saludos @ Home

El Bruno

image image image Google

[#SCRUM] Y el delicado camino a la incompetencia

Hola!

Todos sabemos que Scrum es la solución a todos los problemas. En la página 12 de la guía de Scrum hay una frase que dice lo siguiente:

Scrum Hoch bIquv qay’ taS

Que traducido del Klingon viene a significar

Scrum es la solución para todo tipo de problemas

Y listo! Ahora bien, si analizamos los 3 pilares de Scrum: Transparencia, Inspección y Adaptación; los mismos nos indican que un equipo a medida que utiliza Scrum, aprende a ser más eficiente. La base de esta teoría es que el equipo sea independiente y tenga capacidad de autogestión.

Sin embargo, esto último también puede terminar con un efecto boomerang: Un equipo puede ir a peor ejecutando Scrum. Y es que, no todos las personas que trabajan en nuestro rubro cumplen con la premisa de “Scrum no es para aficionados”.

Es normal que un equipo, cuando comienza a gestionarse, los resultados no sean los esperados. Es ese punto donde la inspección y adaptación ayudan a que el equipo pueda comenzar a mejorar. Sin embargo, también existe la posibilidad de que un equipo nunca mejore. Que siempre el listón este muy bajo y que no exista un análisis interno de inspección y adaptacion. (Aclaración: en estos casos la transparencia suele estar cercana al 95% de opacidad)

¿Y qué hacer en estos casos? Una opción es volver a dar soporte al equipo, que popularmente lo comparo con criar niños de 3 años. Ayudar en cada paso, ser el facilitador, etc. Un poco de Scrum Master con el rol de padre. Y hasta aquí debes llegar, luego de un par de Sprints es momento de volver a evaluar si el equipo es autosuficiente. En caso contrario … pues cambia el equipo.

Es una pena, sin embargo la motivación con la que algunas personas llevan adelante su trabajo no es la misma que la que tienen otras. Y en el caso de los trabajos con tecnología esta motivación suele ser intrínseca, con lo que los “premios a corto plazo” son una tapadera muy poco productiva.

Una forma de explicar esto es la práctica de “El que rompe la build pone 1€ en un frasco”. El objetivo de práctica no es asustar para que los developers se desangren poniendo miles de €uros (yo lo he hecho), ni tampoco es recaudar para las cervezas de los jueves (también lo he hecho). Esta práctica implica un trabajo de fondo, donde cada persona es suficientemente consciente de que la calidad no es opcional y de que romper la build es detener el equipo en marcha. Y esto es suficiente, muchas personas lo entienden, otras lo ven como una gracia.

Asi que bien, Scrum puede servir para que los equipos aprendan a autogestionarse y a mejorar sprint a sprint; y también sirve para detectar equipos que no poseen ganas de mejorar y .. bueno que tal vez sea necesario cambiar.

 

Scrum Guide: https://www.scrum.org/Scrum-Guide

Scrum no es para aficionados: http://elbruno.com/2013/12/24/scrum-scrum-no-es-para-aficionados/

Saludos @ Home

El Bruno

image image image Google

[#SIGNALR] Error: Html client does not raise OnConnected() method on Server Hub

Hola!

And nor more SignalR stuff. Today is an issue, a tricky one. When in an HTML app the signalR html client does not raise the OnConnected() event on the hub. Sometime ago I wrote a post with a patter to deliver different set of messages to different groups of clients in the same hub..

Inside this code, the main approach is to add some work in the OnConnected(). And at this point this event became more important, because is the first contact of a client with the hub. If you think in the Hub code, can be something like this.

So in the other side, we can create a very simple Html app. This app will connect to the hub and when the connection is established, it will call the JoinToArea() function

So far the code is good. But if you add some trace and debug you’ll see that, even if the call goes fine to the JoinToArea() function in the hub, it never get registered in the OnConnected() event hub. The main issue is because the client is never initialized in the page.

So, to fix this, let´s call a dummy function before we invoke the JoinToArea(). Line 7 and it’s done

Easy Open-mouthed smile

Saludos @ Home

El Bruno

image image image Google

[#SIGNALR] Error: Html client does not raise OnConnected() method on Server Hub

Hola!

Y seguimos con SignalR, en este caso para denunciar a clientes HTML que no entran en el evento OnConnected() del Hub. Hace varios meses que escribí un post donde explicaba una opción para poder definir diferentes canales o grupos de mensajes dentro de un mismo hub.

La base de este patrón es una vez iniciada la sesion, invocar a una funcíón en el server que separa lso grupos en una colección particular. Es en este punto donde el evento OnConnected() toma relevancia porque es un momento muy bueno para poder tener una primera identificación de un cliente conectado al Hub.

Ahora bien, veamos un ejemplo simple de un cliente HTML que se conecta a un hub y cuando la función start() del hub ha terminado invoca la función JoinToArea

A primera vista el código está bien, si activas las trazas, la llamada a JoinToArea() en el hub se realiza correctamente. El problema está en que no se lanza el OnConnected() del hub, ya que no hay ningún requerimiento contra el cliente del hub.

La forma de forzar la llamada al OnConnected es invocar una función dummy del cliente del hub antes de llamar al JoinToArea(). El ejemplo anterior se completa con la línea  7

Fácil Open-mouthed smile

Saludos @ Home

El Bruno

image image image Google

[#VS2013] NuGet Packager, plantilla para crear paquetes NuGet

Hola!

Seguro que casi todos al día de hoy, hemos tenido que crear un paquete NuGet. En mi caso son de uso interno, y siempre lo hacía a mano con algún tool visual.

Hoy, con el laptop limpio, me he encontrado con esta extensión para Visual Studio que permite crear un paquete en los siguientes pasos.

1. Crea un proyecto del tipo NuGet Packager

image

2. Edito la información, a mano del archivo package.nuspec

image

3. Dentro de la carpeta “lib” agrego mis dlls o ensamblados

4. En la carpeta “content” agrego ficheros adicionales, y además en “tools” puedo agregar algún script, por ejemplo de powershell.

5. Luego queda compilar en Release, y definir nuestra api Key para Nuget.org

image

6. Y listo!

En mi caso para el un repo privado, lo que hago es compilar el Debug y luego publico a mano al Repo Winking smile

La mejor opción sería modificar el archivo “NuGet.Config” y en el mismo poner las APIKeys y la url de publicación, aunque para un modelo con una seguridad complicada como el mio, prefiero el modo debug.

image

 

 

Saludos @ Home

El Bruno

image image image Google