sábado, agosto 30, 2014

IOT, ¿para cuándo?

Jean Marc Coté, 1899, el futuro
Andrew Binstock, en Dr Dobb's, pone un poco de realismo en el estado de IOT, (la Internet de las cosas): todavía estamos a distancia de su funcionamiento a pleno...¿cuanta distancia? Binstock habla de un buen tiempo faltante todavía, y es probable que así sea...
Binstock señala tres fuentes importantes de inmadurez: seguridad, infraestructura de red, y estándares:
In the case of IoT, the obstacles are significant: In addition to many secondary issues, network infrastructure, security, and data formats are the salient questions. The last two items, especially security, are important obstacles. Security violations will no longer mean just the simple, but now accepted, bother of waiting for new credit cards and monitoring your credit profile. Rather, a breach means access to very personal data about you, your family, your car, your home, your possessions. The danger is significant. If I can read sensor data in your house, I might well be able to know that despite the lights being on, the TV playing, and the car in the driveway, there is nobody home. And equally frightening, I might be able to issue commands to the various connected devices.
However, security alone is not a big enough obstacle to prevent the IoT. It's just one that will need to be handled before mass adoption. Network infrastructure, however, is a whole different story. If each device becomes an Internet endpoint, there is little doubt that IPv4 will run out of numbers almost immediately (as it's been on the verge of doing for much of this decade). While it's certainly possible that NAT will allow devices to operate behind a single IP address and then post data for retrieval elsewhere, this is not the design generally presented nor one that is particularly desirable. It seems fairly clear that for IoT to become a reality, the world needs to move to IPv6. Most ISPs today and most networked devices are IPv6-ready, but only a tiny fraction have actually switched over. This issue alone will add several years to full IoT adoption.
Finally, there are the questions about agreement over data formats, APIs, and programming conventions. As has occurred frequently in the past, whenever new important technologies arise, there is a first wave of standards that are mostly patches on the problem, followed by more robust and more widely accepted standards that truly enable interoperation. We are far from getting accord on those matters, in part because of the problem left unstated by so many vendors: Except for a few medical devices and the occasional smart thermostat — all of which are crude implementations of IoT — there is no large-scale implementation. Everything is experimental, prototype-stage, exploration. All of which is indeed good, but hardly suggests that significant roll-outs are at hand or even imminent. 

miércoles, agosto 13, 2014

Windows 9, ¿a vueltas y revueltas?

Un post de CA en Google+ pone sobre aviso:
We've already said goodbye to Windows XP and now we're saying goodbye to Windows 8. What's next for Windows devotees?
El post remite a una nota de Alex Wilhelm en TechCrunch del 10 de agosto (Saying goodbye to Windows 8) que básicamente adelanta una relativa vuelta atrás de la marcha hacia mobile en la siguiente versión, Windows 9, Threshold, o como finalmente se llame:
If Windows 8 was a dramatic lurch towards mobile computing, especially on tablets, Windows 9 appears to be heading for a more equitable balance between desktop muscle, and mobile capability. That fits into the larger picture of the computing environment, where PCs are stabilizing after a dramatically difficult period, and tablet growth is cooling.
Microsoft needs to ensure that its desktop-facing operating system manages to support the still-large demand for desktop-focused PCs well. That doesn’t meant that Windows, as part of Microsoft’s vaunted ‘one Windows‘ strategy can abandon tablets, but it does mean that the focus needs to be more even.
¿Es una vuelta atrás completa? Imposible, particularmente si tomamos en cuenta el cambio de arquitectura ya producido (WinRT):
So back to the desktop? Not entirely. Microsoft isn’t backing down from the Windows Store. It isn’t abandoning the Start Screen. Live Tiles do not appear to be going anywhere, on Windows or Windows Phone. Instead the company seems to be at once focusing on providing a Windows 7-quality desktop experience in Windows, while also tying that desktop life to its new mobile-friendly interface, and apps.
That’s why it’s widely expected that Metro apps will be able to run in a windowed-fashion on the desktop in Windows 9, better bringing the Windows Store into the most popular side of Windows.
¿Se trata de un movimiento inesperado (o mejor dicho inesperable)? Creo que no ¿Favorece a sus clientes y usuarios este camino errático? Seguramente tampoco.
Hay mucho tiempo para estudiar la transición...de la transición.
Más información de interés sobre Windows 9 en TechRadar.

martes, agosto 12, 2014

Internet Explorer ajusta el control de Java

Aunque semioficialmente en el blog de IE en MSDN se presenta como el comienzo del bloqueo de ActiveX obsoletos, y así lo puede encontrar anunciado en cualquier búsqueda, de lo que se trata en verdad es del bloqueo de versiones obsoletas de java, tal como Firefox, por ejemplo, también viene haciendo. Me interesé especialmente porque desde hace tiempo la tecnología de ActiveX viene siendo dejada más o menos de lado en Windows, y quizá esperaba ver alguna clase de búsqueda heurística que definiera qué parámetros determinarían el veto de un ActiveX. Pero parece ser que se trata de revisar una lista, formada sólo por versiones de java (¿se podría modificar la lista?).
Tratándose de algo relativamente simple, todas las versiones de IE activas (8 a 11) comenzarán a poner en práctica el bloqueo a partir del 9 de septiembre.
El alcance del control:
The out-of-date ActiveX control blocking feature works with:
  • On Windows 7 SP1, Internet Explorer 8 through Internet Explorer 11
  • On Windows 8 and up, Internet Explorer for the desktop
  • All Security Zones—such as the Internet Zone—but not the Local Intranet Zone and the Trusted Sites Zone
This feature does not warn about or block ActiveX controls in the Local Intranet Zone or Trusted Sites Zone.
Nótese que en Windows 8, sólo se menciona Internet Explorer for the desktop. Kurt Mackie, en Redmond Magazine, justifica esto en que no es posible instalar java en Metro (The blocking isn't happening for IE on the Windows 8 and Windows 8.1 Windows Store Apps ("Metro") side because the Windows Store Apps browser only supports the Adobe Flash Player add-on, but not other add-ons)
Versiones de Java vetadas en la lista:
J2SE 1.4, everything below (but not including) update 43 
J2SE 5.0, everything below (but not including) update 71 
Java SE 6, everything below (but not including) update 81 
Java SE 7, everything below (but not including) update 65 
Java SE 8, everything below (but not including) update 11
De las preguntas y respuestas:
Which outdated ActiveX controls are covered in this update?
No ActiveX controls will be affected when the feature is initially released in August. In September, only out-of-date Oracle Java ActiveX controls will be affected. All other ActiveX controls will continue existing behavior.
Is out-of-date Java the only ActiveX control being blocked by this feature in September?
In September, yes, only out-of-date Oracle Java ActiveX controls will be blocked by this feature. However, Internet Explorer will consider blocking additional common, but out-of-date ActiveX controls in future updates.
Can this feature be disabled if my enterprise requires an older version of the Java runtime?
Yes, there are several ways to disable this feature. Microsoft provides updated IE group policy administrative templates which include 4 new group policies to control this feature*. Two of these group policies can be used to disable this feature on a per domain basis or entirely.
My enterprise has line-of-business web sites that depend on out-of-date Java ActiveX controls in the Internet zone, will they be affected?
Out-of-date Java ActiveX controls will not be initially affected, giving customers thirty days to test and manage their environments. After September 9, when end users attempt to load the out-of-date Java ActiveX control, a prompt will be shown to the user (as described in earlier in the post). The end user will be able to click the “Run this time” option to load the out-of-date Java ActiveX control. Once loaded, the Java out-of-date ActiveX control will work as usual.
Can end users choose to override the prompt if a trusted application requires out-of-date Java use?
Yes, users can choose the “Run this time” option for internet sites requiring out-of-date ActiveX control use.
En fin, por ahora, el único peligro es Java. Tiene 30 días desde el 9 de septiembre para inventariar sus aplicaciones con versiones de java listadas, y buscar una solución. De todas formas, en el peor de los casos es posible deshabilitar completamente esta política. Una discusión sobre las políticas de exclusión en el comentario de Ed Bott.

lunes, agosto 11, 2014

.NET 4, end-of-service...

En el mismo artículo de Ed Bott mencionado antes, también se adelanta la finalización de soporte de el framework .NET 4, 4.5, 4.5.1 y 4.5.2 a partir de enero de 2016:
We will continue to fully support .NET 4, 4.5, 4.5.1, and 4.5.2 until January 12, 2016, this includes security updates as well as non-security technical support and hotfixes. Beginning January 12, 2016 only .NET Framework 4.5.2 will continue receiving technical support and security updates. There is no change to the support timelines for any other .NET Framework version, including .NET 3.5 SP1, which will continue to be supported for the duration of the operating system lifecycle.
La nota semioficial de Microsoft se puede leer en el blog .NET Framework. Por si no lo había notado:
The quick pace at which we’re evolving and shipping means the latest fixes, features, and innovations are available in the latest version and not in legacy versions. To that end, we are making it easier than ever before for customers to stay current on the .NET Framework 4.x family of products with highly compatible, in-place updates for the .NET 4.x family.

Internet Explorer, End-Of-Service

Tomado de The Ed Bott Report: Microsoft anunció este 7 de Agosto, cambios importantes en su política de soporte y actualización de sus versiones de Internet Explorer: a partir del 12 de enero de 2016, no habrá más soporte ni actualizaciones para IE 8, en cualquier versión (escritorio o servidor). Ni qué decir de versiones previas, aunque todos los días tenga noticias de copias de versiones anteriores.
Pero los cambios y finales de servicio también afectan a las versiones 9 y 10 de IE, limitados hasta su cese de soporte a versiones cercanas al fin de servicio también: Windows Vista o Windows Server 2008 y 2012, según una tabla algo dislocada, que debe revisar quien tenga compromisos con IE. En fin, la única versión con soporte asegurado en este momento es IE 11, en aquellas versiones de Windows que lo puedan soportar: Windows 7 y 8, Windows server 2008 y 2012, en sus R2. Un poco atravesado, pero coherente con el curso transicional en que se encuentra Microsoft. Pero además, IE 11 tiene sus particularidades: está funcionando la versión 11 como tal? Al menos en mi experiencia, internamente está funcionando en modo de compatibilidad con IE 8; y el mismo aviso de Microsoft de este pasado día 7, recomienda usarlo en modo Empresa (Enterprise mode, disponible desde abril de este año):
"Enterprise Mode…offers enhanced backward compatibility and enables you to run many legacy web apps during your transition to modern web standards. 
Today we are announcing that Enterprise Mode will be supported through the duration of the operating system lifecycle, to help customers extend their existing web app investments while staying current on the latest version of Internet Explorer. On Windows 7, Enterprise Mode will be supported through January 14, 2020. Microsoft will continue to improve Enterprise Mode backward compatibility, and to invest in tools and other resources to help customers upgrade and stay up-to-date on the latest version of Internet Explorer."
Pero, repito, al menos en mi experiencia, IE 11 funciona mejor en modo compatibilidad, que como IE 11. Llevo semanas tratando de testearlo en modo Edge, y recolectando problemas...hasta que concluímos que será mejor usarlo tal como está, en compatibilidad con una versión anterior, sea la 8, en mis casos recolectados, o en modo Enterprise, como recomienda Microsoft (aún no veo esta opción de emulación en mi instalación).
Concluyendo, sume a su calendario de actualizaciones de Microsoft, los cambios en marcha en IE. Revise sus aplicaciones, y mida el impacto sobre sus paquetes de Office, si los tiene (y sospecho que si usa IE, es porque usa Office).

¿Se debería actualizar? Por muchas razones, seguramente; valga la recomendación de Microsoft:
Developers benefit when users stay current on the latest Web browser. Older browsers may not support modern Web standards, so browser fragmentation is a problem for Web site developers. Web app developers, too, can work more efficiently and create better products and product roadmaps if their customers are using modern browsers. Upgrading benefits the developer ecosystem.
Users also benefit from a modern browser that enables the latest digital work and life experiences while decreasing online risks. Internet Explorer 11, our latest modern browser, delivers many benefits:
  • Improved SecurityOutdated browsers represent a major challenge in keeping the Web ecosystem safer and more secure, as modern Web browsers have better security protection. Internet Explorer 11 includes features like Enhanced Protected Mode to help keep customers safer. Microsoft proactively fixes many potential vulnerabilities in Internet Explorer, and our work to help protect customers is delivering results: According to NSS Labs, protection against malicious software increased from 69% on Internet Explorer 8 in 2009 to over 99% on Internet Explorer 11. It should come as no surprise that the most recent, fully-patched version of Internet Explorer is more secure than older versions.
  • Productivity – The latest Internet Explorer is faster, supports more modern Web standards, and has better compatibility with existing Web apps. Users benefit by being able to run today’s Web sites and services, such as Office 365, alongside legacy Web apps.
  • Unlock the future — Upgrading and staying current on the latest version of Internet Explorer can ease the migration to Windows 8.1 Update and the latest Windows tablets and other devices, unlocking the next generation of technology and productivity.

domingo, julio 20, 2014

En el filo de la nueva era...

Renovadas apuestas sobre la estrategia y ruta de desarrollo de los negocios de Microsoft. La reciente conferencia de Satya Nadella a todos los empleados ha confirmado que habrá novedades de gran porte en las estrategias de Microsoft, pero deja todavía dudas y dificultades para materializar en productos, áreas de ocupación o servicios que serán priorizados...o desechados.
Dice Mary Jo Folley:
Microsoft CEO Satya Nadella is working to focus the company on fewer, key areas where it has a better chance of winning. The areas where Microsoft is trumpeting its wins at this week's Worldwide Partner Conference are largely in the cloud -- with Azure, Office 365, Dynamics CRM Online -- and Office, Windows Server and business intelligence/SQL Server on premises.
(...) Microsoft is in the midst of attempting to pivot and remake itself as a "productivity and platforms" company, rather than a devices and services company. That change is more than semantic. In the post-Ballmer Microsoft, hardware is interesting only insofar as it "lights up" productivity software and services.
Nadella lanzó una palabra, "experiencias", para hablar de un nuevo paradigma de contrucción y funcionamiento de aplicaciones y servicios. Comenta Folley:
The focus on productivity -- and "platforms" -- is the newest focus for Satya Nadella's Microsoft. Just last week, Nadella outlined Microsoft's shift from a devices and services company to one focused on productivity and platforms. (...) Microsoft wants to offer a "complete suite of Microsoft experiences preinstalled on any device, on any platform"
Cuando Nadella habla de "experiencias", tiende a apuntar a la interacción entre aplicaciones de empresa y socialización, tratando de establecer herramientas de interconexión que hacen borrosas las diferencias entre actividad de negocios y actividad informal ¿será este un camino lleno de "experiencias"?
Entretanto Microsoft redefine sus objetivos, esta semana que termina se anunciaron 18000 despidos en el futuro próximo, lo que comenzará a convertir las ambiguas directivas en cortes y reubicaciones elocuentes. Esta cifra significa alrededor del catorce por ciento de su personal, aunque doce mil corresponden a la herencia de Nokia (25000 empleados reducidos a la mitad), lo que reduce el corte general a 6000, alrededor de un cinco por ciento (1). No sólo una gran reorientación de negocios y objetivos, sino también un compromiso financiero de cerca de quince mil millones de dólares en indemnizaciones.
Escalando la transición forzada por el gran cambio en los negocios habido en el mundo (2), todo es incierto en Microsoft, desde las tecnologías de sustento, hasta el objetivo de los negocios. Téngalo en cuenta cuando estime sus planes de desarrollo de tecnología, y sus próximas compras y compromisos de larga duración.

jueves, julio 10, 2014

Microsoft End-of-service: prepare su cronograma

Comentado por Mary Jo Foley esta semana: Microsoft comunica el fin de soporte de varios de sus productos para este 2014, y los planes para los próximos años. Es oportuno estar al tanto de este cronograma, para organizar las propias estrategias: Windows 7, Windows Server 2008, Exchange Server 2010 y Windows Phone 7.8  pasan a soporte extendido en enero de 2015 (El soporte extendido dura 5 años e incluye actualizaciones de seguridad gratuitas y soporte técnico con revisiones de pago. Además, Microsoft no aceptará solicitudes de cambios de diseño o nuevas características durante la fase de soporte extendido, según indica el propio anuncio de Microsoft). Foley recuerda que este año también pasan a "soporte extendido" Office 2010 y Sharepoint 2010:
Support for Office 2010 with Service Pack 1 ends on October 14, 2014, as does support for SharePoint 2010 with SP1. Support also is ending for Forefront Unified Access Gateway 2010 with SP3 and Visual Studio 2012 Remote Tools, Test Professional, and Express for Web, Windows 8 and Windows Desktop.
pero además, que finaliza todo soporte para Windows Server 2003:
Complete end of support for Windows Server 2003 is approaching next year, as well. On July 14, 2015, Microsoft's extended support period for that product cuts off, which means the company won't be issuing patches, updates or fixes of any kind for that operating system (unless users have pricey Custom Support Agreements in place). A number of small businesses are still running Windows Server 2003. Microsoft officials are hoping to convince them to move to Windows Server 2012 R2 and/or Azure
Es decir, en sólo un año más, todo la comunidad de instituciones, negocios e individuos que mantiene algún tipo de licencia de Microsoft, se encontrará en la encrucijada de quedar fuera de soporte (o recibir un soporte reducido) , o escalar a un nuevo modelo de sistema operativo, con todas sus conexiones e implicaciones. No se trata de cambios graduales, sino de largas listas de incompatibilidades, ausencias de soporte y documentación, sorpresivas incidencias por recursos perdidos, ignorados, desaparecidos. En el nuevo modelo al que todos los usuarios se asoman hay un corte radical con una escasa posibilidad de integración del patrimonio preexistente de aplicaciones y herramientas. No es algo que salte a la vista, pero es algo que está presente donde se enfoque la atención.
Es decir, activamente conozca el alcance de los cambios, y planee una ruta; examine su patrimonio y estime su plan de acción futuro...Quizá, si su patrimonio está muy comprometido, sea hora de estudiar otra alternativa global.

viernes, junio 20, 2014

Nueva dirección de la comunidad oficial de Plex

Desde hace pocos días la comunidad de usuarios de Plex/2E/Gen tiene nueva dirección. Esta es la segunda reorganización general de las comunidades de usuarios de CA. Afortunadamente, en general se han mantenido las discusiones pasadas, aunque han cambiado los enlaces, probablemente haya problemas con los adjuntos que se hayan pasado, y los feeds deben volver a cambiarse. Los perfiles de usuarios se han mantenido, así como los contactos. No veo las etiquetas asociadas a las discusiones, aunque veo etiquetas existentes.  Un aspecto positivo es que las discusiones técnicas se han entroncado en una sola corriente de entradas junto a las ideas, es decir, las propuestas de mejoras al producto. Y parece ser que existen herramientas para crear una idea a partir de una discusión.
Actualice sus marcadores con la nueva dirección.

domingo, junio 15, 2014

El objeto CDO y Office: ¿obsolescencia programada?

 Revisando algún otro asunto (algún fallo ajeno en el uso de MAPI), topé con un anuncio que en particular nos afecta en más de una instalación; digamos que en general puede afectar a cualquier usuario de Plex, pero supongo que su alcance es más amplio, más allá de la estrategia propia de Plex, para cualquier instalación basada en mensajería de Microsoft. El anuncio tampoco es nuevo: refiere a Office 2010: Collaboration Data Objects (CDO) 1.2.1 no es soportado con Outlook 2010 y versiones posteriores. CDO es una librería basada en el modelo COM de Microsoft, accesible por medio de C, C++, VBA, VB, C#, usada ampliamente para el envío de mensajería en sistemas Windows. En el mismo sitio del anuncio CDO es definido como  a client library that provides a thin wrapper over Extended MAPI functionality. This library is typically used to add email messaging functionality to custom programs. This library allows those programs to perform functions such as sending email through MAPI, working with calendars, and accessing various data in Microsoft Outlook or in Microsoft Exchange.

Posiblemente el API de MAPI haya sido intermediado por el uso de CDO ampliamente desde su aparición; bien definido, bien documentado, consistente, capaz de ser invocado desde casi todos los lenguajes ejecutables en Windows, y particularmente desde las propias implementaciones de Microsoft para el lenguaje de propósito especial de Office (VBA).
Sin embargo, a partir de Office 2010, nos encontramos que CDO no es instalado, y es desaconsejado su uso para interactuar con Office a partir de esta versión, debido a cambios de arquitectura en la suite de oficina:  
Microsoft Outlook 2010 and later versions include many architectural changes to the client-side MAPI subsystem. Of particular concern are scenarios in which Outlook is configured to use multiple Exchange accounts. Also, CDO 1.2.1 is a 32-bit client library and will not operate with 64-bit versions of Outlook. Given all these factors, CDO 1.2.1 is not supported for use with Outlook 2010 or Outlook 2013, and we do not recommend its use with Outlook 2010 and later versions.
¿Podemos considerar esta decisión una violación de los principios de arquitectura del modelo COM? Una vez más, el concepto de compatibilidad y continuidad del soporte de Microsoft opta por la vía rápida: se elimina su instalación, se ralea la información y documentación a partir de ahora "legacy", y se recomienda calurosamente el cambio a la nueva versión. Microsoft tiene una solución a su patrimonio de funciones construidas usando CDO:
Programs that use CDO should be re-designed to use other Application Programming Interfaces (APIs) instead of CDO (...) Developers should use the Outlook 2010 and later object model instead of CDO 1.2.1. Also, developers can still use Extended MAPI (which requires unmanaged C++) in some scenarios where CDO was required. However, if it is possible, we generally recommend that the Outlook object model be used instead of Extended MAPI. Microsoft product support can help developer customers migrate custom programs from using CDO 1.2.1 to using other APIs. However, Microsoft will not provide support for any scenarios in which CDO 1.2.1 is used with Outlook 2010 or Outlook 2013. 
Simple, entonces: busque todos los casos en que usara CDO, y rediseñelos para usar el modelo de objeto Office. Justo cuando Microsoft está en transición entre Win32 y WinRT, para descubrir que dentro de un par de años WinRt determina otro modelo de objeto, y, sin más trámite, todo su patrimonio sea discontinuado de nuevo.
Sin duda usted podrá seguir usando CDO, en un marco limitado, recurriendo a modificaciones de la instalación, a condición de cómo administre su instalación de Exchange (vea el punto More information en la página del anuncio de Microsoft). Pero no será soportado, y cada día encontrará menos documentación para arreglárselas por su cuenta. Si lo va a seguir utilizando, tome una medida de precaución: conserve como documento off line todo lo que pueda conseguir todavía de guía de referencia y soporte de Microsoft. Como en muchos casos, pronto encontrará que las (escasas) referencias que se conserven, lo conducirán a páginas muertas. ¿CDO funciona? digamos que sí. Lo que ha cambiado es Office, y la compatibilidad hacia atrás parece que es secundaria: cambie de modelo de API. La mejor explicación acerca de las razones del conflicto de versiones la he encontrado en lo analizado por Matt Stehle, en los MSDN blogs. Matt apunta a la existencia de dos modelos de manejo de memoria: el de MAPI/CDO, y el de .NET, que pueden producir intermitentes problemas de asignación de memoria:
MAPI has its own memory management model that conflicts with and is incompatible with the .NET runtime. This the primary reason that MAPI and CDO 1.21 are not supported running in a .NET process. The common symptoms you will see are seemingly random Access Violations and very often memory leaks (especially with CDO 1.21). There is no methodology for avoiding or managing these symptoms by using interop libraries or managing references in a particular fashion in your .NET code – it just won't work.
The trap is that CDO 1.21 and .NET can "appear" to work and you can get pretty far in your dev cycle before you run into problems. Many times we see this come up in soon after a solution is released to production, in late cycle performance testing, or in a pilot program. Opening a critical case with Microsoft when you have end users complaining of crashes or project managers short on budget is not a good time to find out that your solution is unsupportable.
Matt se extiende sobre el alcance de éste conflicto, reconociendo que realmente sólo a partir de Office 2007 existen mejores reemplazos de CDO, y que por lo demás, ambos serán excluyentes (The simple answer is you either need to not use .NET or not use MAPI or CDO 1.21). Puede leer la nota completa de Matt en su blog. No se arrepentirá, especialmente si sigue la acotación que apunta Matt a lo que Patrick Reehan dice acerca de qué significa "no soportado" para Microsoft.

En nuestro caso, el impacto sería reducido (por otra parte en ningún caso los servidores de Exchange han provocado conflictos todavía), porque CDO/MAPI están sumamente encapsulados, y no conviven procesos .NET con CDO. Todo nuestro manejo de mensajería pasa por un solo objeto, y las interfases entre un modelo y este objeto son exclusivamente de datos, sin ningún condicionamiento técnico. Bastará con redefinir las actuales llamadas, adecuándolas a los nuevos requerimientos, y recompilarlo y distribuirlo. No hará falta tocar nada más. ¿Pero esto es así en todos los casos? seguramente no, y probablemente en muchas empresas habrá (o hubo) trabajo inesperado.

sábado, mayo 31, 2014

Microsoft reenfocándose

Una noticia reciente poco comentada, pero quizá importante, ha sido la de abrir .NET y C# a proyectos open source, digamos, en mayor medida de lo hecho anteriormente. Recogido por Mary Jo Foley a comienzos de abril, pocos comentarios más se vieron en casi dos meses. Siguiendo a eWeek, Microsoft anunció en su conferencia Build 2014, sus planes en open source: la creación de una fundación (.NET Foundation), veinticuatro proyectos para iniciar actividades, y la conformación de una dirección integrada por funcionarios de Microsoft, de la subsidiaria Microsoft Open Technologies, y Miguel de Icaza. Entre los proyectos puestos en open source, está .NET Compiler Platform ("Roslyn"), y un par vinculados a Xamarin, la implementación de Miguel de Icaza de la plataforma de desarrollo.NET para dispositivos Android, iOS y GNU/Linux (el desarrollo completo en el comunicado de la fundación). En eWeek:
Microsoft formed the .NET Foundation to foster further innovation across the .NET ecosystem. The .NET Foundation will start with 24 .NET open-source projects under its stewardship, including the .NET Compiler Platform (previously known as "Roslyn") and the ASP.NET family of open-source projects, as well as the MimeKit and Mailkit libraries from Xamarin.

"We are going to be delivering a preview of the Roslyn compiler as a service," Somasegar said. "The most interesting thing that we're doing there is we are making both our C# compiler and our VB [Visual Basic] compiler open source. You want to be able to work with the community, you want to be able to take contributions back from the community, and you want to be able to work in the open. The other thing we are doing is adding support for .NET in Azure Mobile Services." - 
Tanto de la lectura de los comunicados iniciales, como de los comentarios de Foley o Tim Anderson, se puede decir que lo más importante a la vista es la mayor colaboración con Xamarin e Icaza, y por lo tanto, un frente más en la apuesta por ganar un lugar en las tecnologías móviles. Tim Anderson pone especialmente el acento en este futuro móvil:
The focus now though is on mobile, and interest in C# is stronger, mainly from Microsoft-platform developers reaching beyond Windows. There is also Unity, which uses C# as a scripting language for developing games for multiple platforms, including iOS, Android, Windows, Mac, Linux, Xbox, PS3 and Wii – PS4 is coming very soon.
Microsoft has now consciously embraced multiple platforms, as evidenced by Office for iOS as well as the Xamarin collaboration. “We want C#developers to build great applications across different form factors and different device platforms,” said Jay Schmelzer Director of Program Management for Visual Studio.
You might observe that this position has been forced on the company by the rise of iOS and Android, a view which likely has some merit, but the impact it has on C# and .NET itself is still real.
Una nueva acción  en el sentido de adecuarse al rumbo actual y próximo del mercado tecnológico, como los movimientos de apertura de Office o los intentos de mejorar la posición de sus tabletas. ¿Con qué alcance? probablemente, destinado a ofrecer una alternativa al mercado propio en el ajeno de Android o iOS.
¿Hasta qué punto este nuevo lanzamiento es open source?  Si atendemos al inicio, en cuanto al carácter abierto de la fundación, su directiva es casi completamente Microsoft:
The new foundation will be initially staffed by Microsoft and third parties, including a representative from the Microsoft Open Technologies subsidiary and someone from the .NET organization, as well as Miguel de Icaza, CTO and co-founder of Xamarin, which is partnering with Microsoft on a related effort, Somasegar said.
"There will be a board of directors," he said. "There are going to be a couple of people from Microsoft that are going to be on the board. There will be one person from MS Open Tech that's going to be on the board; there will be one person from the .NET team that will be on the board. We are also getting Miguel de Icaza to be on the board, so we'll have at least one third-party person on the board from Day 1. And we'll have a couple of third-party projects, including efforts from Xamarin and others. Our plan is, over time, to expand the board to include more people. There will be a board that will govern the .NET Foundation. Microsoft will initially have a strong presence, but it will not be exclusively Microsoft."
Mi primera impresión fue de sorpresa, ya en que demasiadas ocasiones las grandes empresas mandan a open source los productos que dejan de ser centrales en sus proyectos: una manera de reducir fondos a un producto que no está en sus planes, descargando en una comunidad el esfuerzo futuro de desarrollo. Sin embargo, en este caso, existe un deseo de mantener un control estricto sobre la conducción de la fundación, y existe un área de sumo interés futuro. En los artículos de Foley hay parecidas impresiones:
I have to admit that I wasn't sure if Microsoft's decision to open-source more of .Net would be met by cheers or jeers by those attending Build last week. I was curious if developers might see the move as an indicator that Microsoft no longer considered .Net valuable enough to keep in-house as part of its collection of crown jewels. Most of the devs with whom I spoke at the show seemed upbeat about the move, however.
Hejlsberg told attendees of a press panel during Build that Microsoft is not abandoning .Net.
"We are actively investing in .Net going forward," Hejlsberg said, in response to an audience question as to whether Microsoft was putting .Net on the back burner.
"It's not going away," Hejlsberg said. "We are all in on .Net."
El tiempo, más rápidamente que lo que nos podríamos pensar, irá diciendo a dónde va esta iniciativa. La competencia actual no da lugar a muchas dudas.

sábado, mayo 17, 2014

IBM: Liderazgo en fuga?

IBM 360, en computerhistory.org
Adam Hartung, en Forbes, comenta la evolución financiera y de bolsa de IBM reciente, poniendo en evidencia la errática conducción de la corporación, y su inexplicable estrategia...Hartung pone en el centro de sus decisiciones descaminadas, la baja de su inversión en investigación, lejos de lo que fuera por décadas, y la recompra de acciones, incluso recurriendo a endeudamiento. Hartung apunta a un problema de conducción de la empresa, focalizando en su actual CEO, aunque probablemente podamos hablar de más tiempo...
Why You Don't Want to Own IBM
IBM just finished a tough week.  IBM fell 2% after announcing earnings on Wednesday, dragging the Dow Jones Industrial Average (DJIA or Dow) down over 100 points.  And as the Dow reversed course to end up 2% on the week, IBM continued to drag, ending down almost 3% for the week.
Of course, one bad week – even one bad earnings announcement – is no reason to dump a good company’s stock.  The vicissitudes of short-term stock trading should not greatly influence long-term investors.  But in IBM’s case, we now have 8 straight quarters of weaker revenues.  And that HAS to be disconcerting.  Managing earnings upward, such as the previous quarter, looks increasingly to be a short-term action, intended to overcome long-term revenue declines which portend much worse problems.
This revenue weakness roughly coincides with the tenure of CEO Virginia Rometty.  And in interviews she increasingly is defending her leadership, and promising that a revenue turnaround will soon be happening.  That it hasn’t, despite a raft of substantial acquisitions, indicates that the revenue growth problems are a lot deeper than she indicates.
CEO Rometty uses high-brow language to describe the growth problem, calling herself a company steward who is thinking long-term.  But as the famous economist John Maynard Keynes pointed out in 1923, “in the long run we are all dead.”
Today CEO Rometty takes great pride in the company’s legacy, pointing out that “Planes don’t fly, trains don’t run, banks don’t operate without much of what IBM does.”  But, powerful as that legacy has been, in markets that move as fast as digital technology any company can be displaced very fast.
Just ask former CEO Scott McNealy and his leadership team at Sun Microsystems.  Sun once owned the telecom and enterprise markets for servers – before almost disappearing and being swallowed by Oracle in just 5 years (after losing $200B in market value.)  Or ask former CEO Steve Ballmer at Microsoft, who’s delays at entering mobile have left the company struggling for relevancy as PC sales flounder and Windows 8 fails to recharge historical markets.
Managing earnings is not managing for long-term success
CEO Rometty may take pride in her positive earnings management.  But we all know that came from large divestitures of the China business, and selling the PC and server business to Lenovo.  As well as significant employee layoffs.  All of which had short-term earnings benefits at the expense of long-term revenue growth.  Literally $6B of revenues have been sold off just during her leadership.
Which in and of itself might be OK – if there was something to replace those lost sales.  Even if they didn’t have any profits – because at least we have faith in Amazon creating future profits as revenues zoom. But IBM was far late to the cloud, and hasn’t shown it has anything to leapfrog industry leaders.
The REAL problems – R&D cuts, higher debt, massive stock buybacks
What should terrify investors about IBM are two things that are public, but not discussed much behind the hoopla of earnings, acquisitions, divestitures and all the talk, talk, talk regarding a new future.
CNBC reported that 121 companies in the S&P 500 (27.5%) cut R&D in the first quarter.  And guess who was on the list?  IBM, once an inveterate leader in R&D, has been reducing R&D spending.  The short-term impact?  Better quarterly earnings.  Long term impact????
The Washington Post reported more this week about the huge sums of money pouring out of corporations into stock buybacks rather than investing in R&D, new products, new capacity, enhanced marketing, sales growth, etc.  $500B in buybacks this year, 34% more than last year’s blistering buyback pace, flowed out of growth projects. To make matters worse, this isn’t just internal cash flow spent on buybacks, but companies are actually borrowing money, increasing their debt levels, in order to buy their own stock!
And the Post labels as the “poster child” for this leveraged stock-propping behavior…. IBM.  IBM
“in the first quarter bought back more than $8 billion of its own stock, almost all of it paid for by borrowing. By reducing the number of outstanding shares, IBM has been able to maintain its earnings per share and prop up its stock price even as sales and operating profits fall.
The result: What was once the bluest of blue-chip companies now has a debt-to-equity ratio that is the highest in its history. As Zero Hedge put it, IBM has embarked on a strategy to “postpone the day of income statement reckoning by unleashing record amounts of debt on what was once upon a time a pristine balance sheet.”
In the case of IBM, looking beyond the short-term trees at the long-term forest should give investors little faith in the CEO or the company’s future growth prospects. Much is being hidden in the morass of financial machinations surrounding acquisitions, divestitures, debt assumption and stock buybacks. Meanwhile, revenues are declining, and investments in R&D are falling. This cannot bode well for the company’s long-term investor prospects, regardless of the well scripted talking points offered last week.

sábado, mayo 10, 2014

Actualizando Visual Studio en Plex

Esto es de particular interés para los usuarios de Plex: hay abierta una votación  para conocer el interés de la comunidad de usuarios por llevar la versión de Visual Studio a la última disponible. En la comunidad de usuarios de CA, en la sección de ideas, o informalmente en el foro de Plex. Muy probablemente  más bien funcionará como una encuesta y un sondeo de opinión. Considerando el abismo abierto entre la versión soportada actual (2005) y la versión oficial (entre 2012 y 2013), es imposible anunciar una actualización sin consultar a los usuarios. A esta altura, a los pro evidentes, hay que sumar el costo del retrabajo necesario para subir la versión. ¿Cuánto es este retrabajo? Es de interés de cualquier empresa que haya trabajado en una arquitectura con clientes WinC (o funciones servidoras WinC) participar en la discusión, y aportar su visión del impacto esperado.
(Para acceder a los enlaces debe tener un usuario registrado en las Comunidades. Si no lo tiene, regístrese)

domingo, mayo 04, 2014

Tendencias: IOT

El 6 de junio de 2012 se produjo el Lanzamiento Mundial de IPv6, inicio explícito del nuevo y reformulado protocolo de Internet. "IPv6" no se trató simplemente de atender la explosión social de Internet, sino que fue un paso necesario para atender a otra explosión: la perspectiva ya inmediata de extender la red de internet potencialmente a cualquier recurso susceptible de aplicarle inteligencia. Esto es, la Internet de las cosas (IOT), es decir, la posibilidad de que enormes cantidades de objetos puedan disponer algún grado de inteligencia, una dirección propia para comunicarse, y posibilidades inagotables de interrelacionarse con el mundo circundante. Sumémosle el mundo ya lanzado de la movilidad, y tendremos un universo de recursos de potencialidad sin límite. Ian Skerrett, de la Fundación Eclipse, expuso ayer mismo en pocas líneas su visión sobre el alcance de IOT. Creo que vale la pena reproducirlo, por su claridad, profundidad y síntesis:

How to categorize the Internet of Things

I was recently asked how to categorize the Internet of Things. IoT is so broad and multi-dimensional that I am not sure if there is one easy answer or set of categories. However, here is my current thinking…

1. IoT Hardware

A lot of the excitement in IoT and the maker community starts with the cheap, easily accessible hardware. Arduino, Raspberry Pi, BeagleBone are the poster kids in the space. Now there are a ton of new hardware solutions be made available, ex Parallela (16 cores for $99) , Galileo from Intel

2. IoT Standards and Protocols

There is a lot of talk about IoT protocols and which one will win. It is too early and I agree not any one protocol will win. One thing I do know is that closed proprietary solutions are not going to win. We do need to work on having a common set of standards like CoAP, MQTT, Alljoyn, SensorML, etc  Of course, we also need to make sure that we have open source implementations for these standards and protocols. That is why Eclipse IoT is so important for an Open IoT.
There will also be a lot of vertical standards that will be developed for IoT, like OneM2M, Continua, etc.

3. IoT Gateway Software

The typical IoT solution architecture will have some type of gateway solution that connect the sensors and actuators to the Internet. Eclipse Kura and Mihini are good examples of this but there are certainly others.

4. IoT Middleware

Companies like IBM, Axeda, Sierra Wireless, 2lemetry, ClearBlade, Microsoft, Eurotech, Thingworx, Litmus Automation and others are providing IoT platforms/middleware solutions. This is definitely an emerging space where all platforms are not equal. I expect to see a lot more startups and the big enterprise middleware vendors driving the innovation for IoT middleware.

 5. IoT Databases

The amount of data generated by IoT solutions has the potential to be Huge Data, not just big data. AS pointed out by Matt Asay, the exists a massive opportunity in analyzing IoT data.  Splunk seems to be the leader in this space but I expect a lot of innovation in this space.

6. IoT Solutions: IoT & Humans vs Industrial Internet

There are also a lot of  industry specific and user-case specific IoT solutions. Tim O’Reilly wrote a recent article titled ‘The Internet of Things and Humans‘ which does a very nice job summarizing the human impact of IoT. In fact a lot of the hype for IoT is around wearables and home automation.  Nest is the poster-child for IoT&H but you can’t go a week without finding another home automation solution being launched on kickstarter.
There is no doubt the human side of IoT will be important but I find the Industrial side to be a lot more compelling. SCADA systems like the London Tube system , Nespresso providing remote management of coffee machine, the work GE is doing for hospitals, aircrafts, etc. are the things  are fascinating and exciting opportunities. This is also where a lot of the profits in IoT will be made.

In the last 6 months the activity/hype around IoT has exploded. It will be fun to watch how these categories emerge and merge in the next 1-2 years. Of course an Open IoT is what is needed for all this to be successful. Eclipse IoT will be an important part of the solution.
Es hora de adelantar(se) en este escenario; ¿nuestras herramientas serán capaces de operar sobre este conjunto? ¿conocemos los recursos, infraestructura, estándares, proveedores, con los que habrá que interactuar? ¿tenemos la comprensión adecuada para transmitirla a quienes serán sus beneficiarios? Creo que sin duda, esta es la hora de los DSLs y de los modeladores y generadores de código, y comparto la expectativa de Skerrett en el papel que Eclipse pueda cumplir, por su flexibilidad y la extensión de su comunidad de usuarios y proveedores.

sábado, abril 26, 2014

A propósito de una API de c++

Hace algunos días me pidieron que estudiara alguna manera de validar que una fotografía cumplía con ciertos requisitos de densidad y medida en pixeles: un requerimiento simple, que exige acceder a metadatos de la imagen. Desde el punto de vista de nuestros modelos de Plex, esto significa usar un API, ya que no existen dentro del conjunto de funciones propias del producto, ni tampoco en ninguno de sus patrones de tecnología, alguna función preelaborada que permita obtener esa información.
Un API es un trozo de código específico de una plataforma que funciona encapsulado: en su interior resuelve una necesidad específica, en este caso, tratar metadatos de una imagen, intercambiando información con el modelo a través de parámetros. Así, el modelo se mantiene a nivel abstracto, y se relaciona con código específico de plataforma a través de un marco de inicialización que resuelve la relación entre el nivel del modelo y el del código encapsulado. El marco de las APIs que Plex maneja es relativo a plataformas específicas: c++ para clientes Windows de código no administrado (en términos del marco .NET) u ODBC, un motor de VBscript incrustado para VBscript, c# para  .NET, y java o RPG para las variantes respectivas. Ya hace tiempo existe en la comunidad de Plex el estilo de definir un API de tal forma que responda a múltiples plataformas, por medio de metaoperaciones, que permitan intercambiar los parámetros entre el modelo y el código encapsulado, que será uno distinto por variante, y se resolverá en tiempo de compìlación según metaoperaciones que interroguen al modelo acerca de qué lenguaje se ha configurado. De esta forma, un sólo objeto API permite representar en un modelo su solución para tantas variantes como sea necesario y posible.
¿Estas son las únicas variantes posibles? Aunque hasta donde conozco, nadie lo ha intentado, existe una posibilidad de "sobrecargar" Plex para agregar APIs de otra plataforma o lenguaje: Plex sigue el modelo .COM, y permite importar un componente, y utilizar sus métodos y variables públicas como parte del modelo. Es entonces posible añadir transformaciones que habiliten otra variante, al menos al nivel puntual de una API. Utilizando elementos similares por otra vía, Websydian primero, y Webclient después, permitieron agregar capas de arquitectura web completas a un modelo de Plex.

Pero ahora, volviendo al pedido de lectura de metadatos de imágenes...Primero, restringimos el alcance del API a una aplicada a un modelo WinC, es decir, uno de plataforma Windows de modelo Win32, al menos para su primera versión: el horizonte de aplicación abarca por lo menos los próximos tres años. No está claro si en el futuro la aplicación continuará sobre Windows o Java, y en el primer caso, si sobre Win32 o WinRT. Digamos de todas formas que WinRT todavía no está soportado sobre Plex, lo que estrechaba el marco de posibilidades. Ahora bien, ¿qué alternativas hay disponibles para trabajar con imagenes escritas en c++ o c? En una primera revisión, encontré varias alternativas; Adobe XMP Toolkit, ExifTool (en modo de línea de comandos), Exiv2, y especialmente el Windows Imaging Component, o el objeto PropertyItem (en System.Drawing.Imaging Namespace) , ambos de Microsoft. Con algo de entusiasmo, comencé pesando las posibilidades de estas dos alternativas de Microsoft. Trabajando con Visual Studio y sobre una plataforma Windows ¿qué alternativa más "natural" puede considerarse que la del propietario de la plataforma? Sin embargo, luego de revisar la documentación (algo escasa en general), encuentré su uso demasiado exigente para el caso que debíamos atender: En primer lugar, la clase PropertyItem parecía más simple y directa de usar (a pesar de que tampoco estamos hablando de pocas líneas de código), pero aparecieron un par de observaciones (1, 2) que es necesario tener en cuenta, sin hablar de las posibles dependencias de versión del framework .NET. En el caso de WIC, examinando la documentación claramente marchabamos a matar moscas a cañonazos. Tanto por la complejidad relativa al objetivo a resolver, como también por la ambigua situación de evolución y deriva de .NET, Win32 y WinRT,decidí volver a evaluar otras opciones de código abierto, y finalmente adopté Exiv2, pero aún de una manera más simple: no recurriendo a la librería c++, sino usando el comando de consola exiv2, que permite acceder a la mayoría de los estándares de metadata...sin necesidad de asegurarse de que estén instalados los codecs adecuados...
En fin, resuelta la estrategia, en un par de días cerramos el problema con un código simple, reducido, y fácilmente ampliable a la obtención de otros atributos. En una situación de transición de la plataforma de Windows como la actual, es preferible quedar libre de dependencias y compromisos, si es posible. En tanto, ActiveX, VBA, VB for Office, c++ y en alguna medida .NET y .COM, atraviesan la borrosa frontera entre Win32, WinRT y otras alternativas que puedan sumarse a "un solo Windows"...