My Professional Profile

I am Johnson Augustine Sr.Software Engineer and System Architect. I have 10 Yrs of hands on expertise in ASP.net MVC 5 , Angular 5 , C# MVC Razor, WPF MVVM , Android , IOS Swift 3 , IOS11 MSSQL,MySQL Database,,PHP,C/C++/Visual C++/G++/QT++,Com,DirectX,Open CV,EMGU CV , embedded System Development , [Raspberry PI]. ,html,Javascript,Jquery,Ajax.CSS , Networking ,Cyber security, Ethical Hacking You can see my professional profile at http://linkedin.com/in/johnsontaugustine Email : johnsonaugustine@live.com

Friday, 17 November 2017

gRPC Vs REST

The transport layer works using HTTP/2 on top of TCP/IP. It allows for lower latency (faster) connections that can take advantage of a single connection from client to server (which makes more efficient use of connection and can result in more efficient use of server resources.

HTTP/2 also supports bidirectional connectivity and asynchronous connectivity. So it is possible for the server to efficiently make contact with client to send messages (async response/notifications, etc..)

While, both REST and gRPC can generate client/server stubs (using something like swagger for REST), REST has a limited set of primary 'function' calls (or verbs):

+-----------+----------------+
| HTTP Verb |      CRUD      |
+-----------+----------------+
| GET       | Read           |
| PUT       | Update/Replace |
| PATCH     | Update/Modify  |
| DELETE    | Delete         |
+-----------+----------------+


whereas gRPC you can define any kind of function calls including synchronous/asynchronous, uni-direction/bidirectional(streams), etc..

Using gRPC the client makes a call to a local method. To the programmer, it looks like you're making a local call, but the underlying layer (the auto-generated client stub) sends the call to the server. To the server it looks like it's method was called locally.

gRPC takes care of all the underlying plumbing and simplifies the programming paradigm. However, to some dedicated REST purists, this may seem like an over-complication.


https://grpc.io/docs/

Sunday, 5 November 2017

Android 8.0 Oreo New Features & Changes

it's official — the newest version of Google's mobile operating system is called Android 8.0 Oreo, and it will soon start rolling out to Nexus and Pixel devices. This new version has plenty of changes in store, ranging from revamped looks to under-the-hood improvements, so there's tons of cool new stuff to explore.
If you own a non-Google flagship device like the Galaxy S8 or OnePlus 5, you'll likely have to wait a few months before Android Oreo hits your own phone. But if you're curious about this new version, or if you have a Nexus or Pixel to test it out on, let's go ahead and take a look at all of the new features and functionality in Android 8.0.
Redesigned Settings Menu
Revamped File Manager
Battery-Saving Background Restrictions
Snooze Individual Notifications
Fingerprint Scanner Gestures
Turn on Wi-Fi Automatically
More Granular Storage Controls
Picture-in-Picture Mode
New Battery Menu
Autofill Framework
Rescue Party
Notification Channels
Adaptive Icons
Hi-Fi Bluetooth Codecs
Arrow Key & Tab Navigation
Pixel Launcher App Drawer Improvements
Wider Color Gamut in Apps
Wi-Fi Aware
Notification Badges on the Home Screen
No More 'Unknown Sources' Setting
Battery Percentage Indicator Tweaks
Battery & Connection Indicators in Quick Settings
'Powered by Android' on Boot Screen
Package Installer Progress Bar
Smart Text Selection
Overlay Sticky Notification
New Emojis

Visual studio 2017 and c#7

In C# 7, a lot of new features have been introduced, and also enhancement have been done for some features. I will be covering all those things in context of Visual Studio 2017 RC. Given below is the list of features

Local functions or nested functions
Binary Literal
Digit Separators
Pattern matching
ref returns and ref Locals
Tuples (Tuples Enhancement)
Throw Expressions
Expression Bodied Members (some more expression bodied members in C# 7)
Expression bodied Methods (C# 6.0)
Expression bodied Properties (C# 6.0)
Expression bodied constructor (C# 7.0)
Expression bodied destructor (C# 7.0)
Expression bodied getters (C# 7.0)
Expression bodied setters (C# 7.0)
Out variables (enhancement for out variables)
Deconstruction
In the above list, I have mentioned only 10 new features of C# 7 but there are some more features like Generalized async (Generalized async return), Replace (Partial Class Enhancements) Records (or Record Types) Non-Nullable Reference Types, Immutable Types etc.
Some of the features are not yet supported in Visual Studio 2017 RC and are still under development. Even C# 7 has not been developed completely and still it is in preview mode. You can ignore some of the features of C# 7 right now and focus on the features which can be tested in Visual Studio 2017 RC.



Share to Face book in IOS 11 Swift

This problem for iOS 11 with Facebook Share (in my case, FBSDKShareDialog in Objective-c) is fixed by upgrading to the latest Facebook API frameworks. Via pods, that is currently as follows:

 pod 'FBSDKCoreKit', '~> 4.27.0'
  pod 'FBSDKLoginKit', '~> 4.27.0'
  pod 'FBSDKShareKit', '~> 4.27.0'

https://cocoapods.org/?q=facebook%20share




Angular Js 5 Features





Progressive Web Apps
Use modern web platform capabilities to deliver app-like experiences. High performance, offline, and zero-step installation.

Native
Build native mobile apps with strategies from Ionic Framework, NativeScript, and React Native.

Desktop
Create desktop-installed apps across Mac, Windows, and Linux using the same Angular methods you've learned for the web plus the ability to access native OS APIs.

Code Generation
Angular turns your templates into code that's highly optimized for today's JavaScript virtual machines, giving you all the benefits of hand-written code with the productivity of a framework.

Universal
Serve the first view of your application on node.js, .NET, PHP, and other servers for near-instant rendering in just HTML and CSS. Also paves the way for sites that optimize for SEO.


Code Splitting
Angular apps load quickly with the new Component Router, which delivers automatic code-splitting so users only load code required to render the view they request.

Templates
Quickly create UI views with simple and powerful template syntax.

Angular CLI
Command line tools: start building fast, add components and tests, then instantly deploy.

IDEs
Get intelligent code completion, instant errors, and other feedback in popular editors and IDEs.

Testing
With Karma for unit tests, you can know if you've broken things every time you save. And Protractor makes your scenario tests run faster and in a stable manner.

Animation
Create high-performance, complex choreographies and animation timelines with very little code through Angular's intuitive API.

Accessibility
Create accessible applications with ARIA-enabled components, developer guides, and built-in a11y test infrastructure.

IOS 11 Removed Features


iOS 11 adds a lot of new and interesting features. From the redesigned Control Center, the new App Store to the new multitasking on iPad. But in the process, iOS has also removed some features. Here are the features you’ll no longer see in iOS 11.

1. No Native Twitter and Facebook Integrations
2. N0 32 Bits Apps Support
3. iCloud Drive App Replaced with Files
4. No Home and Now Playing Panels in Control Center
5. No Control Center Gesture in iPad
6. No Two Pane Widgets in iPad
7. No Shortcut for Refreshing App Store
8. No 3D Touch App Switcher
9. No Swiping Up to Close Apps on iPad
10. No Ability to Search in Purchases



No Native Twitter and Facebook Integrations IOS 11

iOS 11 removes the native sharing features. You can no longer log in with Twitter and Facebook directly in iOS 11. Integrations for Vimeo and Flickr have also been removed. This means that third-party developers (like Tweetbot) won’t be able to connect directly to social media accounts using your default details. They’ll now need to connect using the official apps (that you’ll need to have installed).

Progressive Web Apps ( PWA )


Progressive Web Apps are experiences that combine the best of the web and the best of apps. They are useful to users from the very first visit in a browser tab, no install required. As the user progressively builds a relationship with the app over time, it becomes more and more powerful. It loads quickly, even on flaky networks, sends relevant push notifications, has an icon on the home screen, and loads as a top-level, full screen experience.
What is a Progressive Web App?

A Progressive Web App is:

Progressive - Works for every user, regardless of browser choice because it's built with progressive enhancement as a core tenet.
Responsive - Fits any form factor: desktop, mobile, tablet, or whatever is next.
Connectivity independent - Enhanced with service workers to work offline or on low-quality networks.
App-like - Feels like an app, because the app shell model separates the application functionality from application content .
Fresh - Always up-to-date thanks to the service worker update process.
Safe - Served via HTTPS to prevent snooping and to ensure content hasn't been tampered with.
Discoverable - Is identifiable as an "application" thanks to W3C manifest and service worker registration scope, allowing search engines to find it.
Re-engageable - Makes re-engagement easy through features like push notifications.
Installable - Allows users to add apps they find most useful to their home screen without the hassle of an app store.
Linkable - Easily share the application via URL, does not require complex installation.
This codelab will walk you through creating your own Progressive Web App, including the design considerations, as well as implementation details, to ensure that your app meets the above key principles of a Progressive Web App.



<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Weather PWA</title>
  <link rel="stylesheet" type="text/css" href="styles/inline.css">
</head>
<body>
  <header class="header">
    <h1 class="header__title">Weather PWA</h1>
    <button id="butRefresh" class="headerButton"></button>
    <button id="butAdd" class="headerButton"></button>
  </header>

  <main class="main">
    <div class="card cardTemplate weather-forecast" hidden>
    . . .
    </div>
  </main>

  <div class="dialog-container">
  . . .
  </div>

  <div class="loader">
    <svg viewBox="0 0 32 32" width="32" height="32">
      <circle id="spinner" cx="16" cy="16" r="14" fill="none"></circle>
    </svg>
  </div>

  <!-- Insert link to app.js here -->
</body>
</html>