<body><script type="text/javascript"> function setAttributeOnload(object, attribute, val) { if(window.addEventListener) { window.addEventListener('load', function(){ object[attribute] = val; }, false); } else { window.attachEvent('onload', function(){ object[attribute] = val; }); } } </script> <div id="navbar-iframe-container"></div> <script type="text/javascript" src="https://apis.google.com/js/plusone.js"></script> <script type="text/javascript"> gapi.load("gapi.iframes:gapi.iframes.style.bubble", function() { if (gapi.iframes && gapi.iframes.getContext) { gapi.iframes.getContext().openChild({ url: 'https://www.blogger.com/navbar.g?targetBlogID\x3d8211560\x26blogName\x3dTech+Tips,+Tricks+%26+Trivia\x26publishMode\x3dPUBLISH_MODE_BLOGSPOT\x26navbarType\x3dBLUE\x26layoutType\x3dCLASSIC\x26searchRoot\x3dhttp://mvark.blogspot.com/search\x26blogLocale\x3den\x26v\x3d2\x26homepageUrl\x3dhttp://mvark.blogspot.com/\x26vt\x3d-5147029996388199615', where: document.getElementById("navbar-iframe-container"), id: "navbar-iframe" }); } }); </script>

Tech Tips, Tricks & Trivia

by 'Anil' Radhakrishna
An architect's notes, experiments, discoveries and annotated bookmarks.

Search from over a hundred HOW TO articles, Tips and Tricks

HOW TO view Google search results always sorted by past year

Wednesday, July 26, 2017
Documentation related to programming, especially Cloud, may get stale quickly - features can get modified, deprecated or removed.

While searching for info on Azure, I like Google to show me results from the last year as anything older than that may not always be relevant. Rather than sort the results each time....

I have configured a Chrome "omnibox" search engine shortcut

The querystring value tbs=qdr:y in the below Google Search URL -

..does the trick of sorting the search results when I type "gaz", hit Tab key, type my search keyword in the Chrome address bar & hit the Enter key.


This Week I Learned - Week #224

Saturday, July 22, 2017
This Week I Learned -

Azure App Service, Web Apps, API Apps, and WebJobs can be remotely profiled.

Azure Load Balancer has a default idle timeout setting of four minutes or 240 seconds.

Kestrel, a new managed web server introduced with .NET Core, is by far the fastest available .NET server. According to benchmarks, about six times faster than .NET 4.6 and three times faster than NodeJS.

* It is possible to access a mobile's camera from a web app when the page is accessed through a mobile browser -   < input accept="image/*" capture="camera" type="file" / >

*  Microsoft Edge supports bookmarklets. It differs from how is used in other browsers however in that it has to be accessed from Reading List

Microsoft Research recently released a prototype app called Path Guide that addresses this decades-old issue, providing navigation indoors with an alternative to GPS.

...metrics data is... a great leveller - when multiple people have their own hypothesis, without any data, usually seniority wins!

What is India Stack? It is a large set of APIs that enable applications to be built on top of India’s digital infrastructure. It has four broad layers, the most visible being Aadhaar, a biometric database of all of India’s citizens. The other layers are a document vault/locker (to associate authenticated documents to your unique id), a payment layer to connect to all Indian banks and financial institutions, and finally a consent layer that would allow citizens to control access and privacy of their own information.

* Xiaomi’s plants in India are operated by Foxconn and they employee over 5000 people. Xiaomi says 90 per cent of the employees are women.  Other than the Mi 5 imported from China, Xiaomi says all of its phones are made in India - Indian Express

* ‘Mercurochrome’ (mercury organohalide) once considered a remedy for bruises, has been found to have no antiseptic effect, and that the mercury in it is actually toxic. Mercury has been declared an environmental toxin, which is not degraded even when disposed of. India has now decided to phase out mercury manometers (BP apparatus) and mercury thermometers - The Hindu

* Starting January 2013, mutual funds started providing “Direct” option for all of their fund schemes, with a lower management fee. Prior to this, Distributors were paid Upfront commission, a one time commission for bringing the investment to the fund house. But fund houses can generate income only if you stay for long. To ensure that the distributor doesn’t drag you to another fund, a commission known as trailing commission is paid. Distributors are important, if they help you select the right investments and hand hold you along the way. It’s a foregone conclusion that “Direct” funds will have a better return than Regular given that there is a difference in the Expense ratios between them. The portfolio is exactly the same - Capital Mind

* 40% of Fortune 500 companies are Asian including 7 Indian - Indian Oil, Reliance Industries, State Bank of India, Tata Motors, Rajesh Exports, Bharat Petroleum, Hindustan Petroleum.

291 contestants who were among the top .0026 percent of more than 11 million students who competed in classrooms, schools and local events around the country, reached the final round of 2017 Scripps National Spelling Bee. After surviving 36 rounds of competition, Ananya Vinay, 12, of Fresno, Calif., was challenged with “marocain” — a dress fabric made with a warp of silk or rayon and a filling of other yarns. She asked for the definition, its part of speech and language of origin. The sixth grader who studied about two hours a day for a year answered it correctly to win the championship. Of the 95 National Spelling Bee champions so far, 48 have been girls and 47 have been boys.

Labels: , , ,

What exactly does a software architect do?

Wednesday, July 19, 2017
Ted Promoted To Software Architect
A compilation of links to essays on the role of an architect -

Becoming an Architect in a System Integrator - What architects do is a mystery to much of the world; this is hardly surprising, because an architect's work is intangible—"thought-ware," if you will—and it happens in the background. 

An A-Z Guide to Being an Architect

* A Day in the life of an Enterprise Architect



jQuery vs Angular

Tuesday, July 18, 2017
From the Microsoft ebook Architecting Modern Web Applications with ASP.NET Core & Microsoft Azure [PDF], part of .NET Application Architecture Guidance -

One of the first and most successful of these libraries is jQuery, which continues to be a popular choice for simplifying these tasks on web pages. For Single Page Applications (SPAs), jQuery doesn’t provide many of the desired features that Angular and React offer.

Factor  jQuery Angular
Abstracts the DOM  Yes Yes
AJAX Support  Yes Yes
Declarative Data   Binding  No Yes
MVC-style Routing  No Yes
Templating  No Yes
Deep-Link Routing  No Yes


Cloud Design Patterns & Anti-Patterns

Sunday, July 16, 2017
The below Design patterns  from the Azure Architecture Center are useful for building reliable, scalable, secure applications in the cloud. New design patterns keep getting added so watch out for them on the Design patterns home page. Entire documentation covering each of the patterns can be downloaded as a PDF

Pattern Summary
Ambassador Create helper services that send network requests on behalf of a consumer service or application.
Anti-Corruption Layer Implement a façade or adapter layer between a modern application and a legacy system.
Backends for Frontends Create separate backend services to be consumed by specific frontend applications or interfaces.
Bulkhead Isolate elements of an application into pools so that if one fails, the others will continue to function.
Cache-Aside Load data on demand into a cache from a data store
Circuit Breaker Handle faults that might take a variable amount of time to fix when connecting to a remote service or resource.
CQRS Segregate operations that read data from operations that update data by using separate interfaces.
Compensating Transaction Undo the work performed by a series of steps, which together define an eventually consistent operation.
Competing Consumers Enable multiple concurrent consumers to process messages received on the same messaging channel.
Compute Resource Consolidation Consolidate multiple tasks or operations into a single computational unit
Event Sourcing Use an append-only store to record the full series of events that describe actions taken on data in a domain.
External Configuration Store Move configuration information out of the application deployment package to a centralized location.
Federated Identity Delegate authentication to an external identity provider.
Gatekeeper Protect applications and services by using a dedicated host instance that acts as a broker between clients and the application or service, validates and sanitizes requests, and passes requests and data between them.
Gateway Aggregation Use a gateway to aggregate multiple individual requests into a single request.
Gateway Offloading Offload shared or specialized service functionality to a gateway proxy.
Gateway Routing Route requests to multiple services using a single endpoint.
Health Endpoint Monitoring Implement functional checks in an application that external tools can access through exposed endpoints at regular intervals.
Index Table Create indexes over the fields in data stores that are frequently referenced by queries.
Leader Election Coordinate the actions performed by a collection of collaborating task instances in a distributed application by electing one instance as the leader that assumes responsibility for managing the other instances.
Materialized View Generate prepopulated views over the data in one or more data stores when the data isn't ideally formatted for required query operations.
Pipes and Filters Break down a task that performs complex processing into a series of separate elements that can be reused.
Priority Queue Prioritize requests sent to services so that requests with a higher priority are received and processed more quickly than those with a lower priority.
Queue-Based Load Leveling Use a queue that acts as a buffer between a task and a service that it invokes in order to smooth intermittent heavy loads.
Retry Enable an application to handle anticipated, temporary failures when it tries to connect to a service or network resource by transparently retrying an operation that's previously failed.
Scheduler Agent Supervisor Coordinate a set of actions across a distributed set of services and other remote resources.
Sharding Divide a data store into a set of horizontal partitions or shards.
Sidecar Deploy components of an application into a separate process or container to provide isolation and encapsulation.
Static Content Hosting Deploy static content to a cloud-based storage service that can deliver them directly to the client.
Strangler Incrementally migrate a legacy system by gradually replacing specific pieces of functionality with new applications and services.
Throttling Control the consumption of resources used by an instance of an application, an individual tenant, or an entire service.
Valet Key Use a token or key that provides clients with restricted direct access to a specific resource or service.

The following diagram illustrates how these patterns could be used in a microservices architecture.

Performance antipatterns for cloud applications [PDF]
Antipattern Description
Busy Database Offloading too much processing to a data store.
Busy Front End Moving resource-intensive tasks onto background threads.
Chatty I/O Continually sending many small network requests.
Extraneous Fetching Retrieving more data than is needed, resulting in unnecessary I/O.
Improper Instantiation Repeatedly creating and destroying objects that are designed to be shared and reused.
Monolithic Persistence Using the same data store for data with very different usage patterns.
No Caching Failing to cache data.
Synchronous I/O Blocking the calling thread while I/O completes.