28.5.15

Project Brillo - Internet de las Cosas

Google dio un nuevo paso en el Internet de las Cosas el proyecto lo denominó "Project Brillo", un nuevo sistema operativo para dispositivos de poca potencia, el mismo se podrá comenzar a probar con una developer preview durante el tercer trimestre de este año

Project Brillo se gestó luego que Google compró Nest en febrero del año pasado. Se trata de un sistema operativo derivado de Android, pero minimizado para poder ser utilizado en dispositivos con poca potencia

Soportará conexiones WiFi, Bluetoot LE de baja energía, y claro, se podrá conectar con el resto de dispositivos Android, pero para que todos los dispositivos se conecten entre sí a través,  de la red se utiliza un idioma en común lamado Weave.

Esta plataforma nace para comunicar nuestros teléfonos, la nube y los dispositivos que utilicen Brillo





27.5.15

Chrome Dev Editor - IDE multiplataforma

Chrome Dev Editor es un IDE creado por Google para desarrollar aplicaciones webs y Chrome Apps, tanto para escritorio como para móvil. Dispone de soporte para Javascript y Dart, además de ser bastante ligero y multiplataforma ya que está construido en sí mismo como una Chrome App.

Chrome Dev Editor puede ser usado desde cualquier dispositivo Chrome OS y por supuesto cualquier ordenador que tenga instalado Chrome (Windows, Linux o Mac).

CDE nos permite crear proyectos usando distintas plantillas como aplicaciones Web JavaScript y combinándolas con Polymer, aplicaciones Dart, Chrome Apps tanto para escritorio como para móvil o Web Starter Kit.

Permite clonar y manejar rama en Git de los proyectos, además de acceder al sistema de ficheros como un IDE, dispone del compilador de Dart y lanza un servidor embebido para ejecutar los proyectos desde la máquina local. Además de poder subir directamente a la Web Store nuestras Chrome Apps.






Descargar
https://chrome.google.com/webstore/detail/chrome-dev-editor-develop/pnoffddplpippgcfjdhbmhkofpnaalpg

Conozcamos un poco de Windows Azure

Azure es la única plataforma en la nube líder en el sector para infraestructura como servicio (IaaS) y plataforma como servicio (PaaS). La eficaz combinación de los servicios administrados y sin administrar le permite crear, implementar y administrar aplicaciones según desee para obtener una productividad sin comparación.

Admite cualquier sistema operativo, lenguaje, herramienta y marco, ya sea Windows, Linux, SQL Server, Oracle, C# o Java. Además, pone a su alcance lo mejor de los ecosistemas de Windows y Linux, por lo que puede crear excelentes aplicaciones y servicios que funcionan con cualquier dispositivo.

Azure se puede ampliar o reducir rápidamente para adaptarse a cualquier demanda, de modo que solo paga por lo que usa. La facturación por minuto y el compromiso de igualar los precios de la competencia para los servicios de infraestructura conocidos, como el proceso, el almacenamiento y el ancho de banda, implica que siempre obtendrá unos precios inmejorables por el rendimiento. Se ejecuta en una red global de centros de datos administrados por Microsoft en expansión en 19 regiones, lo que le aporta una amplia variedad de opciones de aplicaciones en ejecución y le garantiza que sus clientes siempre recibirán el mejor rendimiento. 

Windows Azure se describe como una capa en la nube funcionando sobre un número de sistemas que utilizan Windows Server, estos funcionan bajo la versión 2008 de Windows Server y una versión customizada de Hyper-V, conocido como el Hipervisor de Windows Azure que provee la virtualización de los servicios. La capa controladora de Windows Azure se encarga de escalar y de manejar la confiabilidad del sistema evitando así que los servicios se detengan si alguno de los servidores de datos de Microsoft tiene problemas y a su vez maneja la información de la aplicación web del usuario dando como ejemplo los recursos de la memoria o el balanceo del uso de esta.

Dentro de la plataforma, el servicio de Windows Azure es el encargado de proporcionar el alojamiento de las aplicaciones y el almacenamiento no relacional. Dichas aplicaciones deben funcionar sobre Windows Server 2008 R2. Pueden estar desarrolladas en .NET, PHP, C++, Ruby, Java. Además del servicio de ejecución, dispone de diferentes mecanismos de almacenamiento de datos: tablas NoSQL, blobs, blobs para streaming, colas de mensajes o drives NTFS para operaciones de lectura / escritura a disco.

Dado que la tecnología puede fallar, Windows ofrece una manera de proteger la información importante con una copia de seguridad automática dentro de un servicio de almacenamiento. Las copias de seguridad quedan cifradas antes de la transmisión y se almacenan cifradas en Windows Azure. Estas copias de seguridad están fuera de sitio, lejos de su centro de datos, lo que reduce la necesidad de asegurar y proteger los medios de copia de seguridad en el lugar.

La administración de copias de seguridad en la nube usa herramientas de copia de seguridad conocidas en Windows Server, Windows Server Essentials, o el Administrador de System Center Data Protection. Estas herramientas proporcionan experiencias similares al configurar, supervisar y recuperar copias de seguridad ya sea en el disco local o el almacenamiento de Windows Azure, o puede utilizar el software propio del agente. Después de que los datos se copian a la nube, los usuarios autorizados pueden recuperar fácilmente copias de seguridad de cualquier servidor. También se pueden utilizar Copias de seguridad incremental para asegurar el uso eficiente de almacenamiento y un menor consumo de ancho de banda, al mismo tiempo que permite la recuperación de punto en el tiempo de varias versiones de los datos.

Servicios ofercidos

Infraestructuras


  • Máquinas virtuales
  • Red virtual
  • Almacenamiento
  • Backup
  • Recuperación de sitios
  • Proceso intensivo

Desarrollar aplicaciones modernas


  • Web Apps
  • Mobile Apps
  • Servicios multimedia
  • Integración
  • Desarrollo y pruebas

Datos


  • Base de datos SQL
  • HDInsight
  • Aprendizaje automático
  • Análisis de transmisiones

Administrar identidades y accesos


  • Active Directory de Azure
  • Autenticación multifactor
  • Salesforce
  • DocuSign
  • Google Apps
  • Box
  • Dropbox

Otros servicios


  • Administración de API
  • Application Insights para Visual Studio
  • Servicio de aplicaciones
  • Automatización
  • Backup
  • Servicios de BizTalk
  • CDN
  • Servicios en la nube
  • DNS
  • DocumentDB
  • ExpressRoute
  • Almacén de claves
  • Equilibrador de carga
  • Caché administrada
  • Servicios multimedia
  • Mobile Engagement
  • Servicios móviles
  • Bases de datos centrales de notificaciones
  • Redis Cache
  • RemoteApp
  • Service Bus
  • Visual Studio Online
  • VPN Gateway


Fuente:

24.5.15

Por qué Chrome consume toda la memoria RAM?

El problema de Chrome es su propia concepción y filosofía, en la cual cada extensión y cada pestaña son tareas o procesos separados e independientes. Eso permite a este navegador proteger mejor al usuario de posibles cuelgues en una de las pestañas abiertas o en caso de que algún plugin nos juegue una mala pasada: eso no afectará al resto del navegador, porque como hemos dicho el resto de pestañas y ventanas del navegador serán ajenas a los efectos de lo que pueda ocurrir en otras.
Existen factores que inciden en ese consumo de memoria: la característica de renderizado previo de Chrome también es devoradora de megas de RAM, pero lo es por una buena causa: hace que la carga de las páginas se acelere. Algunos plugins no son además demasiado eficientes en la gestión de memoria y no la liberan cuando terminan de usarla, lo que también impacta en este consumo mejor.
Para solucionar alguno de estos inconvenientes, podemos utilizar extensiones como "The Great Suspender", que se encarga precisamente de gestionar mejor la memoria que algunas extensiones no liberan, liberándola ella si esa tarea ha estado inactiva durante cierto periodo de tiempo.

Instalar desde WebStore
https://chrome.google.com/webstore/detail/the-great-suspender/klbibkeccnjlkjkiokjodocebajanakg/related

16.5.15

Fatboy Slim VS Dimitri Vegas, Like Mike

Vuelve el Cassette - 185 TB de almacenamiento

Lejos quedaron los días en que a cada cassette le cabían 7 canciones por cada lado. Actualmente se utilizan cintas magnéticas para almacenar enormes cantidades de información, pero nada como lo que acaba de presentar Sony.

Se trata de una cinta magnética con una densidad de almacenamiento de 148 Gb por pulgada cuadrada, con lo que un cassette actual que utilice esa cinta sería capaz de albergar hasta 185 TB de información, el equivalente a más de 300 computadoras portátiles comunes con un disco duro de 500GB, pero en un solo cassette.

Para conseguirlo el nuevo tipo de cinta magnética Sony utilizó “deposición catódica, una tecnología para formar láminas delgadas al vacío, para generar múltiples capas de cristales con una orientación uniforme sobre un filme de polímero con un grosor de menos de 5 micrómetros.”

Los cassettes de cinta magnética utilizados actualmente para almacenamiento masivo alcanzan los 1.5 TB por unidad, pero esta nueva tecnología aumentará su capacidad en 74 veces.

Sony aún no comercializa la tecnología pero aseguró en comunicado de prensa que la nueva cinta magnética pronto se encontrará en el mercado y que no es la máxima capacidad que se podrá alcanzar.


13.5.15

Test unitarios, herramientas y descripciones

Les paso un par de herramientas para realizar testing de aplicaciones, especialmente MVC
fíjense cuál de ellas se adapta mejor para trabajar, teniendo en cuenta que debemos usar la menor cantidad de código posible

tutorial usar tdd con asp.net mvc

https://msdn.microsoft.com/es-es/library/ff847525(v=vs.100).aspx

que es: es una metodología de desarrollo la cual sigue la filosofía de escribir el código de la aplicación orientado a la satisfacción de los unit test
que resuelve: el problema de falta de documentación que tienen otras metodologías de desarrollo
pros:

  • esta bueno para aplicaciones mvc que están en el proceso de creación, para ir agregando el codigo que necesitan las reglas de negocio(respondiendo a casos de uso,etc.)
  • simula repositorios. pero solo si se crea un repositorio fake, que implemente un irepository o baserepository.

contras:

  • trabaja con datos reales o exige la creacion de datos fake. 
  • hay dependencia con origenes de datos o con la arquitectura en si.
  • no existe algo como "mock.repository" 
  • es posible simular httpost
  • si se usa en proyectos ya cerrados y terminados, el aproach tdd puede no ser util, a menos que se utilice para alguna suerte de reingeniería tipo parches.


ninject

http://www.ninject.org/

que es: es un framework de inyección de dependencia
que resuelve: disminuye la dependencia fuerte entre componentes de una app.
pros:

  • provee herramientas para test automación.
  • implementa intercepción y aop para que sea posible realizar mocks de cualquier capa de la aplicación. permitiendo una total cobertura de test, sobre todo el código de la aplicación.

contras:

  • la documentacion para configurar un proyecto de test y los test mismos, es pobre y hay poco soporte de la comunidad ninject u otras comunidades de unit testing. de hecho, muchos developers prefieren microsoft unity
  • es dificil encontrar una bibliografia oficial o algun autor reconocido que proporcione algun analisis profundo o buenas practicas o al menos un ejemplo completo que pueda servir de referencia.


moq4

https://github.com/moq/moq4

que es: es un framework basado en el framework .net, que facilita principalmente el manejo de mocks y librerias.
pros:

  • altamente eficiente para realizar proyectos de unit testing,siguiendo las mejores practicas, por ejemplo mencionadas en "the art of unit testing" by roy osherove 
  • es open source
  • existe un importante apoyo de la comunidad developer de .net

contras:

  • poor internal error messages. 
  • need to use "mock.object" property if we pass the mocked interface/ class over. 
  • cannot mock non-virtual, non-abstract and static methods, cannot mock sealed classes and private interfaces

fuente: https://groups.google.com/forum/#!topic/moqdisc/warnyzny1hi

specflow

http://www.specflow.org/

que es: specflow aims at bridging the communication gap between domain experts and evelopers by binding business readable behavior specifications and examples to the underlying implementation.
our mission is to provide a pragmatic and frictionless approach to specification-by-example for .net projects.
specflow also supports the concepts of acceptance test driven development (atdd) and behavior driven development (bdd), which are often used synonymously with specification-by-example.
pros:

  • existe una curva de aprendizaje que requiere dedicacion exclusiva para el que se inica con este framework, al menos durante un tiempo.
  • hay principios y metodologias que asociados a este framework, que se deben integrar al conocimiento del developer, previo a su uso.

contras:

  • it does not support as many languages as cucumber
  • currently there is a "code generation" step involved. this is transparent when using visualstudio, and there is a commandline to do this without visualstudio, but a lot of people do not like code-generation.
  • currently there is no explicit commandline runner for specflow. however you can use your unit-test commandline runner.
  • specflow depends on a unit-test framework, and currently only nunit and mstest is supported
  • reporting in specflow is not very sophisticated yet. cucumber does offer more options, however i don't know if they are all available in cuke4nuke...

fuente: http://stackoverflow.com/questions/2113936/cuke4nuke-or-specflow


Ayuda en la redacción: Hugo Walter Balcazar