Thursday, August 24, 2017

C# 8.0


C# 8.0 has been previewed in Channel 9 by Mads Togersen.  Ref: https://channel9.msdn.com/Blogs/Seth-Juarez/A-Preview-of-C-8-with-Mads-Torgersen

Top 5 tech highlights are:

1. Nullable Reference Types
Consider a scenario where you know that the nullable variable x isn’t actually null, but you can’t prove that to the compiler. In this case you can use x!.Method() to suppress the compiler warning about potential null reference exceptions.

2. Extension Everything
As with interfaces, you cannot define instance fields in extensions but you can simulate them using ConditionalWeakTable. You can also define static fields.

3. Default Interface Implementations
The primary benefit of default interface implementations is that you may be able to add new methods to an existing interface without breaking backwards compatibility.

4. Async Streams (a.k.a. foreach async)
This is referred to as a “pull model”. By contrast, IObservable is a “push model”, which means the producer can flood the consumer with a higher flow rate than it can handle.

5. Extension Interfaces
Extension interfaces, the ability to add new interfaces to existing classes, is also being considered.

My closing note is C# is ahead of tech capabilities and roadmap, on comparison with Java.

Tuesday, August 15, 2017

.NET Core 2.0


Happy 70th Independence Day of India to my brothers and sisters.

Coincidently, Microsoft released Visual Studio 2017 version 15.3, the release of .NET Core 2.0, and a release of Visual Studio for Mac version 7.1.

VS 2017 ver 15.3 has over 1,700 improvements and still have some work to do, but if you are using Visual Studio 2017 in a low-vision or no-vision mode, a lot has improved. For the full list of improvements check out at https://www.visualstudio.com/en-us/news/releasenotes/vs2017-relnotes

.NET Core 2.0 is also released today. This is the second major version of .NET Core and this release focuses on performance improvements and expanding the set of APIs available via .NET Standard 2.0. It includes the runtime and libraries for .NET Core as well as the tools for building, debugging and running .NET Core applications.

Visual Studio for Mac version 7.1 is also available today. It adds support for .NET Core 2.0 targeting in console apps, web apps, and web services. It also enables creating .NET Standard 2.0 in library projects, to share more code across projects. Like Visual Studio 2017, a lot of the improvements in this update center on reliability.

Monday, July 31, 2017

FICCI 90


On attending FICCI-90th annual conference, key take away is "Continuous learning to sustain the career; Continuous sharing to collaborate the industry trend". Itz applicable not only for individual but also enterprise.

More details are available at https://www.linkedin.com/pulse/ficci-90-ganesan-senthilvel

Sunday, July 23, 2017

Yahoo Bullet


Yahoo Bullet is a highly distributed framework designed for cloud multi-tenant data centers that let you run forward-looking queries. Bullet queries act on data flowing through the system after you submit the query.

In other words, you query data that will arrive, rather than data that has already arrived. Unusual for an open source project, Bullet also includes a visual user interface, so you're not necessarily restricted to command line or third party tools. And it also has a REST API for programmatic access.

As a query engine, Bullet was designed to be light weight, adding minimal overhead as you process streams. But there is some heavy lift involved in that the raw data, formatted as Avro files, must be parsed into columns that can then be hit with SQL queries that are placed over sliding time windows.

For now, Bullet is early stage technology, available as open source through GitHub. There's no vendor support and it's not part of any tool, so you're on your own with regard to managing and integrating it. Bullet competes in a very crowded landscape of log monitoring engines such as Splunk, Logstash/Elasticsearch, and others that provide near real-time capabilities.

The challenge for getting mindshare is proving the case that forward-looking queries provide the edge in knowing your customers through the digital log file footprints they leave.

Ref: https://yahoo.github.io/bullet-docs/

Wednesday, July 12, 2017

No Support Windows Phone 8.1


By July 11 2017, Microsoft is officially ending support for its aged mobile OS, Windows Phone 8.1, which means that users will no longer receive updates.

It is reflected in Microsoft's End of Support page at https://support.microsoft.com/en-us/help/4001737/products-reaching-end-of-support-for-2017

It also marks the end of the road for Redmond’s initial foray into phones, and essentially paves the way for Android and iOS to rule the roost.

Itz interesting to know why they made this strategic move?

Microsoft has been moving away from WP towards Windows 10 Mobile, which is essentially an extension of its desktop platform that’s geared towards letting users take their files and apps with them – but it’s no real rival to Android or iOS. The company has been working on numerous cloud-based and cross-platform apps and services lately, so Windows 10 Mobile doesn’t seem like much of a priority anymore.

In my view, Microsoft is focusing more on mobile cross platform development Xamarin to boost the business benefits of time to market, development cost benefits, easy maintenance, etc.

Monday, July 3, 2017

Amazon Athena

As illustrated in the architecture diagram above, any changes made to the items in DynamoDB will be captured and processed using DynamoDB Streams.

Next, a Lambda function will be invoked by a trigger that is configured to respond to events in DynamoDB Streams.

The Lambda function processes the data prior to pushing to Amazon Kinesis Firehose, which will output to Amazon S3.

Finally, you use Amazon Athena to analyze the streaming data landing in Amazon S3. The result can be explored and visualized in Amazon QuickSight for your company’s business analytics.

Monday, June 26, 2017

Microsoft Build 2017

In recent times, Software continues to transform the world in remarkable ways and developers are at the center of it. As an IT engineer/professional, it is essential to listen/learn from the industry technology leading annual conferences like Microsoft Build, Google I/O, Amazon ReInvent, etc.
As continuous learner, itz been a decade to take part consistently in disruptive tech sessions. Herez key take away during this week sessions by Microsoft Build 2017 at Hyderabad, India. Itz an annual tech conference and one of 6 events within Asia + only event in India. 
This year, they focused around .NET, web apps, the Universal Windows Platform, Win32 apps, Mixed Reality, Visual Studio, Xamarin, Microsoft Azure, Cognitive services, and much more.
With 2 days deeper into code level, it has the below agenda:
Day 1 (Jun 21): Itz a full day of fast-paced, demo-driven sessions, focusing primarily on new technology that you can start using immediately in your projects, with a bit of forward-looking awesomeness for inspiration.
Day 2 (Jun 22): Second day is focused on hackathon to build a fun client, cloud and mobile solution that meet the requirements of a business case given at the beginning of the day. Mobile Cross Platform Xamarin implementation is the focal point.
Industry scorecard of Windows10 is pretty impressive with 500 million devices; 300 million active users of 3.5 average hours. UWP (Universal Windows Platform) is the next Gen to build the common App for all devices, platforms, desktop, laptop, PDA, etc. Desktop Bridge is to modernise Windows10 app. It creates trusted AppX. Improvement in UWP is open sourced at https://aka.ms/uwpcommunitytoolkit/
To me, Top-5 admiring take way from Microsoft 2017 Build.

1. Mobile Center

Microsoft is well advanced positioned in cross mobile App development using Xamarin technology. Xamarin C# achieves the high performance with 100% native App feel.
2017 announcement contains XamarinForms 3.0 with memory performance theme, Embedded Xamarin Forms mixed code and Xaml standard between WPF and XamForm. CanonicalXamarin solution has Android iOS WinPhone portable projects, as depicted below.
Now, they are extending their wings of Mobile development cycle via Mobile Center.
Mobile Center brings together multiple services, commonly used by mobile developers, into a single, integrated product. It helps to build, test, distribute, and monitor your mobile apps, and also implement push notifications.
In Build process, it creates an installable app package automatically with every push to your repository.  In Test phase, it runs your automated tests on more than 400 unique device (iOS + Android) configurations. During distribution, end users can install the app via email distribution lists from (Hockey) App Store. In Analytic effort, mobile center uses events to collect rich behavioral analytics data like timely user activity, session duration, Top-X devices, etc.

2. Microsoft Graph

To me, Graph is the powerful data structure to be leveraged in the highly socially connected world business.
Microsoft Graph exposes multiple APIs from Office 365 and other Microsoft cloud services through a single endpoint: https://graph.microsoft.com. It helps to
  • Access data from multiple Microsoft cloud services from office to system software
  • Navigate between entities and relationships.
  • Access intelligence and insights from the Microsoft cloud.
In the conference, they demonstrated a wonderful business use case with high degree of connectivity and collaboration tool set. Bot Demo was built with news feed, notify contact, reference to my known circle, LinkedIn connect, sentiment analysis of the collaborator objects and their schedule calendar.  Simply Superb.

3. Progressive Web

Progressive Web App is the mixture of best of web and best of app experience. They are useful to end user from the very first visit in browser tab, no installation required. As the user progressively builds with App over time, it becomes more powerful.
In terms of Microsoft timeline, they introduced "Pinned Site" in Windows 7; "Packaged Web App" in Windows 8; "Hosted Web App" in Windows 10. Now, PWA (Progressive Web App) as the fast and common for the cross platform/devices. Itz characteristics are listed as:
Key benefit is to compete with native. It loads quickly even on flaky networks.
Secret sauce is Service Worker. It is an asynchronous background thread which takes control of all network requests in a page, acting as proxy. It has the ability to intercept and handle network requests along with the pro grammatically managing response caches.
In the conference, they demonstrated the power of Progressive Web using Microsoft Engineering team's internal tool. It was thrilling performance improvement against the traditional App using PWA Builder.

4. Artificial Intelligence

Microsoft Artificial Intelligence (AI) suite comprises with power of Big Data, Cloud and Intelligent solutions. AI has 3 core elements, which are fundamental blocks.
  1. Massive data
  2. Big compute
  3. Powerful algorithms
Microsoft AI eco system is built from intelligent source data (IoT), derive the intelligence behind using ML, AI, BigData Analytic, and finally to serve the smart actions delivered to the end customer.
In 2011, Cosmos DB project was initiated as "Project Florence" to address developer pain-points that are faced by large Internet-scale applications inside Microsoft. 
Now, here is an IoT use case with Cosmos in connection with WebJobs SDK. LogicApp Work flow, HDInsight, etc.
Azure Cosmos DB is a global distributed, multi-model database that is used in a wide range of applications and use cases. It is a good choice for any application that needs low order-of-millisecond response times, and needs to scale rapidly and globally. It supports multiple data models (key-value, documents, graphs and columnar) and many APIs for data access in extensible way.

5. Fluent Design

Formerly known as Project Neon, the Microsoft Fluent Design System is the latest iteration in the development of Microsoft's look-and-feel for Windows.
Fluent builds on the Metro design language introduced with Windows Phone. Metro was designed for touch devices in particular; with Fluent, Microsoft is aiming at devices ranging from those without any display at all, through phones, tablets, traditional PCs, to virtual and augmented reality systems. 
Fluent design has 5 core themes namely light, depth, motion, material and scale.
The overall design principle here was to create a design language that looks light, features layers and depth and animations, as well as materials. Because of this support for materials, Fluent will also bring back some of the translucency that Windows apps lost in recent iterations of the operating system. Fluent Mixed Reality is derived from Unity.
The main purpose here is to give developers access to a single design language that will work well across devices.
Closing Note
In a nutshell, "AI FIRST" is upcoming industry mantra based on Microsoft Build, Google I/O, Amazon ReInvent, etc. As those industry technical leaders are ahead in the business, it is essential to have the continuous learning around this emerging and disruptive technologies.