Todas las entradas de: peplluis

Blinking para Mountaineer, para empezar a probar QFE2.

Un punto de entrada para probar que todo esta bien después de actualizar a QFE2.

using System.Threading;
using Microsoft.SPOT.Hardware;
using Mountaineer.Netmf.Hardware;
 
public class BlinkingLed
{
    public static void Main()
    {
        var Rojo = new OutputPort(OnboardIO.LedRed, false);
        var Verde = new OutputPort(OnboardIO.LedGreen, false);
        var Azul = new OutputPort(OnboardIO.LedBlue, false);
 
        while (true)
        {
            Rojo.Write(true);
            Thread.Sleep(500);
            Verde.Write(true);
            Thread.Sleep(500);
            Azul.Write(true);
            Thread.Sleep(1000);
            Rojo.Write(false);
            Thread.Sleep(500);
            Verde.Write(false);
            Thread.Sleep(500);
            Azul.Write(false);
            Thread.Sleep(100);
        }
    }
}

Saludos,
PepLluis. 

Netduino Plus También habla en VB

Empezando con Netduino Plus en QFE2 y el SDK para 4.2

  1. Instalar Visual Studio en cualquiera de sus versiones
  2. Descargar / Instalar el SDK 4.2 QFE2 de Microframework
  3. Descargar / Instalar el SDK 4.2 de Netduino
  • Lanzar Visual Studio.
  • Nuevo Proyecto
  • Microframework
  • Netduino Plus
  • Copiar el siguiente código y reemplazar por el existente en modulo1
Imports Microsoft.SPOT
Imports Microsoft.SPOT.Hardware
Imports SecretLabs.NETMF.Hardware
Imports SecretLabs.NETMF.Hardware.NetduinoPlus
 
Module Module1
 
    Private led As New OutputPort(NetduinoPlus.Pins.ONBOARD_LED, False)
    Private tmr1 As New Timer(New TimerCallback(AddressOf tic), Nothing, 1000, 500)
 
    Sub Main()
        Thread.Sleep(System.Threading.Timeout.Infinite)
    End Sub
 
    Private onOff As Boolean
    Sub tic()
        onOff = Not onOff
        led.Write(onOff)
    End Sub
 
End Module

Feliz Navidad!
PepLluis,

 

 

Bon Nada! – Feliz Navidad – Merry Christmas 2012

Feliz Navidad y Prospero año nuevo!
Con la esperanza de reconciliar a la sociedad para encontrar nuevas formas de recuperar puestos de trabajo y el bienestar de las personas necesitadas.
Sin duda necesitamos caminar juntos para definir nuevos escenarios para que el mundo sea relamente mejor.
Mis mejores deseos para que este 2013 se convierta en el Año de pan con azúcar y vino!
 
Merry Christmas to you and your family as well
Hoping reconcile the society to find new ways to recover jobs and the day to day welfare for the needy people.
With no doubt we need walk together to define a new scenario to make the world better.
My best wishes to make this 2013 becomes the Year of bread with sugar and wine!
:-))
 
Tio
 
Pep Lluis,
Catalonian Claus.

VB Gadgeteer Webserver, SDK 4.2 QFE2 and Spider Premium Library’s

This is an small sample code to show how to build our basic gadgeteer web server using VB with Spider and the 4.2 RTM Premium library’s.
Start Visual Studio with a new gadgeteer project and copy/paste…That’s all! (remember add library’s references)

Imports System.Net
Imports System.Text
Imports Microsoft.SPOT.Hardware
 
Imports GHI.Premium.Net
 
Imports GT = Gadgeteer
 
Partial Public Class Program
 
    Private WithEvents ethernet As New EthernetBuiltIn()
    
    Private ip As New IPAddress(New Byte() {0, 0, 0, 0})
    Private WithEvents myweb As WebEvent
    '
    Private WithEvents timer As GT.Timer = New GT.Timer(1000)
 
    Public Sub ProgramStarted()
        'Initialize adapter
        ethernet.Open()
        ethernet.NetworkInterface.EnableDhcp()
        ethernet.NetworkInterface.EnableDynamicDns()
        NetworkInterfaceExtension.AssignNetworkingStackTo(ethernet)
        'app timer on
        timer.Start()
    End Sub
 
    Private Sub ethernet_CableConnectivityChanged(sender As Object, e As GHI.Premium.Net.EthernetBuiltIn.CableConnectivityEventArgsHandles ethernet.CableConnectivityChanged
        If e.IsConnected Then
            ' reboot device after plug... to startup again
            PowerState.RebootDevice(True)
        End If
    End Sub
 
    Private Sub ReceivedWebEventHandler(path As String, method As WebServer.HttpMethod, responder As ResponderHandles myweb.WebEventReceived
        ' webb response
        responder.Respond(New System.Text.UTF8Encoding().GetBytes("Hello from " + ip.ToString() + " At " + System.DateTime.Now.ToString()), "text/html")
    End Sub
 
    Private tic As Boolean
    Private Sub timer_Tick(timer As Gadgeteer.TimerHandles timer.Tick
        ' blink debug led... system working
        tic = Not tic
        Mainboard.SetDebugLED(tic)
        ' get an IP from DHCP if no previous one
        If (ip.ToString = "0.0.0.0"And ethernet.IsCableConnected Then
            ip = IPAddress.GetDefaultLocalAddress()
            WebServer.StartLocalServer(ip.ToString(), 80)
            myweb = WebServer.SetupWebEvent("Hello")
        End If
    End Sub
End Class

Regards,
PepLluis,

Visual Studio Image Library

Pos Eso! 🙂 un nuevo gran recurso.

La Biblioteca de imagenes de Visual Studio contiene imágenes de aplicaciones que aparecen en Microsoft Visual Studio, Microsoft Windows, Office System y otros programas de Microsoft, esta biblioteca continene más de 5.000 imágenes que se pueden utilizar para crear aplicaciones que se parecezcan visualmente y de forma consistente con el estilo de software de Microsoft.

http://www.microsoft.com/en-us/download/details.aspx?id=35825

Saludos,
PepLluis, 

Microframework, Threats y TimerCallBacks

Conversando con un compañero que en 2009 asistimos a una charla sobre Microframework en el TechEd de Barcelona, me comentaba que era una lástima que netmf no pudiera ejecutar hilos….. Mi respuesta fue: Pero hombre! desde entonces ha llovido mucho!! Jajajaja.

Si habrá llovido que incluso ya está en ruta la versión 4.3 que se integrara en Visual Studio 2012.

Evidentemente estos últimos cuatro años como ya vengo diciendo en los últimos post, han dado una sana madurez a netmf. Si además del montón de funcionalidades actuales de netmf también disponemos de threats.

Valga este modesto ejemplo, para manejar dos ‘threading.timers’ :

Imports Microsoft.SPOT
Imports System.Threading
 
Namespace MFConsoleApplication1
    Public Module Module1
        Private tmr1 As New Timer(New TimerCallback(AddressOf tic), Nothing, 1000, 500)
        Private tmr2 As New Timer(New TimerCallback(AddressOf tac), Nothing, 1000, 500)
 
        Sub Main()
            ' desfasar el primer hilo del segundo para crear el Tic Tac
            Thread.Sleep(500)
            ' poner a dormir al hilo principal
            Thread.Sleep(System.Threading.Timeout.Infinite)
        End Sub
 
        ' CallBack para tic
        Sub tic(ByVal state As Object)
            Debug.Print("Tic")
        End Sub
        ' CallBack para cac
        Sub tac(ByVal state As Object)
            Debug.Print("Tac")
        End Sub
 
    End Module
 
End Namespace

Saludos,
PepLluis,

Presentación de .net Microframework y Gadgeteer en los TechDays 2012 de Madrid

Como probablemente sabréis el pasado 22 de noviembre se celebro en el teatro Goya de Madrid uno de los eventos anuales más importantes en torno a las tecnologías de Microsoft. Este evento reúne empresas y profesionales del sector entorno a conferencias temáticas específicas para desarrolladores y IT pros.

También fue una oportunidad única para esas reuniones “tu a tu” entre colegas, donde fraguar conversaciones que al fin y al cabo dinamizan a la comunidad en busca de esa inspiración donde compartir se convierte en la capacidad de visualizar nuestro futuro profesional más próximo.

Otro de los valores añadidos en este evento, fue la posibilidad de contactar con los principales expertos de las principales tecnologías de Microsoft. Los asistentes pudieron conversar en el “ATE” frente al mostrador de MVP’s.

En esta ocasión aproveche este fantástico escenario para presentar el Microsoft “Gadgeteer”, con el propósito de fundamentar una nueva “micro” comunidad entorno a este estupendo proyecto. En la “Show Room” J pudimos ver dos “bread boards” conteniendo una muestra de implementación de casi todos los procesadores disponibles en el mercado a día de hoy.

Muchos de vosotros mostrasteis un curioso interés sobre esta madura plataforma para pequeños dispositivos, que en breve podrá incluirse a Visual Studio 2012, por este motivo he considerado adecuado dedicar este pequeño corto, con el propósito de resposder a la repetida pregunta “y esto que es?” jajajaja.

Pues:

NET Micro Framework representa la versión más pequeña de punto NET. Está orientado a pequeños sistemas con recursos limitados, pero con alto grado de integración en periféricos embebidos dentro de un mismo procesador. Además cuenta con innovador y completo entorno desarrollo, ejecución y depuración, aportando la productividad de las herramientas modernas a programación de sistemas embebidos.  En la actualidad se  ofrece bajo una licencia de código abierto (Apache 2.0), aunque todavía su estatus de desarrollo está activo dentro de Microsoft, también se encuentra en coordinación con las contribuciones abiertas a la comunidad técnica.

·         Fácil desarrollo de potentes aplicaciones interactivas, integradas y complejas.

·         Conexión de dispositivos a través de protocolos inalámbricos o por cable.

·         Desarrollo rápido de soluciones fiables y robustas a un menor coste.

·         Desarrollo de soluciones para dispositivos conectados utilizando las mismas herramientas que se utilizan para desarrollar aplicaciones de servidor o para la nube.

Aprende más acerca de .NET Micro Framework en  : MSDN › o NETMF.COM ›

En 2011 Microsoft Research anuncio la liberación de NET Gadgeteer, una plataforma que permite construir y depurar prototipos de dispositivos electrónicos de forma rápida y sencilla. En general está orientado a educadores, desarrolladores y aficionados, los prototipos se construyen uniendo distintas unidades NET Gadgeteer o módulos a una unidad central de proceso. Existe una amplia gama de módulos enchufables que proporcionan diferentes funcionalidades… visualización, control, comunicaciones, etc. Las principales claves radican en no requerir conocimientos previos de electrónica ni habilidades para realizar soldaduras, este nuevo concepto permite desarrollar refinados prototipos o dispositivos electrónicos en un tiempo extraordinariamente bajo.

«NET Gadgeteer es una plataforma de gran alcance que le permite crear muy rápidamente sofisticados dispositivos . Incluso sin mucha experiencia previa«, Según Steve Hodges, Principal ingeniero de hardware en Microsoft. «Este proyecto empezó como una herramienta interna para Microsoft Research Cambridge, rápidamente se hizo evidente su especial atractivo para personas ajenas al laboratorio. La liberación del código a la comunidad técnica hará que esta poderosa tecnología este disposición de los demás, incluyendo aficionados, profesores, investigadores y desarrolladores que nos han dado una respuesta tan positiva hasta la fecha. «

Espero vuestros comentarios y preguntas.
PepLluis,

Primer Update para Visual Studio

Simplemente es un recordatorio sobre la disponibilidad de la primera actualización para Visual Studio 2012.

Aqui teneis el enlaze : http://www.microsoft.com/visualstudio/esn/downloads#d-visual-studio-2012-update

Saludos,
PepLluis,

La lista de mejoras es la siguiente :

  • Funcionalidades ALM adicionales en SharePoint (como el soporte para pruebas de carga y para pruebas de interfaz de usuario codificadas), mejoras de calidad, escalabilidad y agilidad.
  • Planificación ágil más sencilla con acceso web y nuevo soporte Kanban, además del soporte Scrum existente.
  • Mejoras para las pruebas, desde la organización de pruebas unitarias hasta un flujo de trabajo más flexible para la ejecución de pruebas manuales.
  • Desarrollo mejorado de aplicaciones de Windows 8, como el soporte para depurar aplicaciones mixtas administradas y nativas de la Tienda Windows y una depuración ARM mejorada para aplicaciones de Windows 8.
  •  

    Team Fundation – SharePoint Central Administration : Service Unavailable.

    Antecedentes:
    No se ha realizado ningún cambio en el servidor desde que se agrego la última colección con la consola de Team Fundation.

    Aparentemente se completa todo el proceso, hasta que aparece un mensaje de error rezando que no se puede contactar con el servicio en http://{ServerName}:17012.

    Al revisar IIS en el administrador, el pool del SCA está detenido. Si intentamos iniciarlo, vuelve a detenerlo en cuanto intentemos examinar de nuevo SCA y siempre recibiremos el “Service Unavailable” por respuesta.

    Causas:
    El pool no puede iniciarse porque la identidad del grupo, fue configurada con una cuenta personalizada. En tal caso cuando se cambian las credenciales de dicha cuenta, el pool deja de ponerse “En Servicio”.

    Resolución:
    Si continúas empeñado en utilizar una cuenta personalizada, deberás cambiar las credenciales asignadas inicialmente para que coincidan por las actuales. Asi de Simple!
    J

    >Pool>Configuración Avanzada>Identidad de grupo de aplicaciones>Establecer Credenciales

    Saludos,
    PepLluis,

    VB11 Que hay de nuevo… Viejo? #2

    Otra de las nuevas para VB11 es la posibilidad de combinar Lambdas e Iteradores 🙂 me encanta la dulzura de las expresiones en VB y encima incrustando XML en el editor… no todos los lenguajes pueden alardear de ellos 😉 jajajajaja.

    Llevamos tiempo hablando de expresiones Lambda, y a la mayoría nos cuesta adoptar de forma natural la escritura de la mismas dentro de nuestros escenarios habituales.

    El siguiente ejemplo, intenta introducir y dar coherencia a su uso, poniendo en acento en las extensiones de unión ‘Yield’ para combinar el contenido con el cuerpo de literales XML.

    No olvideis el ‘Imports System.IO.Directory’ para poder llamar a la funcion ‘EnumerateFiles’.

        Dim myExplorer As New WebBrowser
        Dim myImageWall As
    XElement
        Me
    .Controls.Add(myExplorer)
        myImageWall =
                <html
    >
                      <body
    >
                             <%= Iterator Function
    ()
                                           For Each filename In EnumerateFiles(«C:\Users\PepLluis\Pictures», «*.jpg»
    )
                                                 Yield <img src=<%= filename %>></img
    >
                                           Next
                                      End Function.Invoke()
    %>
                      </body
    >
                 </html
    >
        myExplorer.DocumentText = myImageWall.ToString

    Para los que lo ven todo simple es tan sencillo como incrustar sentencias y expresiones!

    Espero que os guste.
    PepLluis,