<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

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.


This Week I Learned - Week #223

Saturday, July 15, 2017
This Week I Learned -

Azure Site Recovery (ASR) now supports the disaster recovery and migration of on-premises virtual machines and physical servers with disk sizes of up to 4095 GB to Azure.

* The attraction of Azure Functions is the cost effectiveness and scalability of serverless computing. Cost is based on execution time and memory usage for each function invocation. An Azure Function definition can be written in a variety of languages – C#, F#, JavaScript, Bash, Powershell, and more. There is no distinction between compiled languages, interpreted languages, and languages typically associated with a terminal window. One criticism of Azure functions, and PaaS solutions in general, is vendor lock-in.

The new Dv3 and Ev3 (high memory D sizes:D11-D14) sizes are also some of the first VM’s to be running on Windows Server 2016 hosts.

Pakistan sans Sharif - The “warm and soft” Calibri was designed by Lucas De Groot in 2004 reached people on January 30, 2007 with the launch of Microsoft Office 2007 and Windows Vista. The Calibri started its journey by replacing Times New Roman as the default typeface in Word and also replaced Arial as the default in Microsoft PowerPoint, Excel, Outlook and WordPad. Pakistan is staring at the fall of Nawaz Sharif government due to a popular font – Calibri. It has been found that Maryam misled the Pakistan Supreme Court with fake documents in the ongoing Panamagate corruption case against her family. Maryam sent to the SC-appointed Joint Investigative Team (JIT) documents dated before January 31, 2007 and typed in Calibri font. But Calibri was not commercially available before 31st January 2007.

* Wish all Azure services consistently had their use cases with this kind of URL - https://azure.microsoft.com/en-us/overview/azure-stack/use-cases/

* While it might concern you that avocados are high in fat, you may be relieved to hear that it's a nutritious kind of fat, monounsaturated fats! These fats, which promote lower blood cholesterol levels, assist with blood sugar maintenance (especially for people with type-II diabetes), and contain vitamin E — a crucial antioxidant that supports a robust immune system whilst simultaneously protecting your vision. Avocados contain no cholesterol — no plant foods do. They do, however, help to lower blood cholesterol levels as they are packed with high-density lipoproteins (HDL), which help lower the amount of low-density lipoproteins (LDL), in the bloodstream. Given that avocados contain high amounts of HDL, it’s among many foods that contribute to a healthy cholesterol ratio. Avocados are high in beta-carotene, folate (a B vitamin), and potassium (ounce for ounce, avocados have 60 percent more potassium than bananas) - Go Ask Alice! 

* Worldwide, deltas are home to an estimated 500 million people - National Geographic

* India spends 1.6% of GDP on defence expenditure. Russia, US, China, Pakistan spend 5.4, 3.3, 2, 3.6 percent respectively.

* Markets are creatures of euphoria & despair and rarely adjust smoothly. The long term outlook for the West is sluggish. China which became the growth star during 2003-2008 with 12-14% growth is now down to 6.5% - Swaminomics

* Tomatoes account for 22% of b consumption in the US. Retail price of tomatoes in US has g between a low of $1.21 & $2.47 per pound over the last 20 years unlike the Rs1 to 100 variation in India as India is notoriously shy of eating frozen and canned goods. Nasik and Molar are the biggest tomato-growing areas - Times of India

* Movies & TV Shows, Music are among Items That Can't Be Returned back to Amazon India.

* "..I realized that in a war there were no bystanders. There was no neutrality" - Shah Faesal, first Kashmiri to to the Civil Service exam in 2009.

Labels: , , , ,

Cloud compatible tools, products & platforms

Friday, July 14, 2017
Inspired by Greg Wilson's Google Cloud Product in 4 words compilation, I plan to maintain a list of software tools, products & platforms with a short description of what they do.

Item name Description Publisher
ActiveMQ Open Source message broker in Java.
Apache Solr Reliable Open Source enterprise search platform.
Canvas LMS Open Source learning management system.
CouchDB Easy-to-use Open Source database system.
Discourse High-resolution Open Source discussion platform.
Django High-level Python Web framework.
DokuWiki Versatile open source wiki software.
Drupal Popular, easy-to-use content management platform.
Elasticsearch Flexible and powerful open source analytics engine.
ELK Big data suite consisting of Elasticsearch, Kibana, and Logstash.
GitLab Community Edition Fast, secure Git management software.
Hadoop Framework for reliable, scalable, and distributed computing.
Jenkins Integration server supporting SCM tools: CVS, Subversion, and Git.
Joomla! User-friendly CMS for easy website builds.
Kafka Powerful distributed publish-subscribe messaging system.
LAMP Fully integrated and ready to run development environment.
LimeSurvey Question-and-answer poll management system.
Magento Popular eCommerce software and platform.
Mantis Advanced bug-tracking system.
Mautic Open Source, enterprise marketing automation platform.
MEAN Popular development environment for mongoDB and Node.js.
MediaWiki Extremely powerful, scalable wiki implementation.
Memcached High-performance, distributed memory object caching system.
MongoDB High-performance Open Source NoSQL database written in C++.
Moodle Effective CMS designed for online learning communities.
Multicraft Minecraft server hosting solution and control panel.
MySQL The most popular database system. Oracle
Nginx A complete PHP, MySQL, and Nginx development environment.
ownCloud Popular open source file sync and share solution.
Piwik Real-time web analytics software program.
RabbitMQ Efficient messaging broker offering a common platform.
Redis Powerful Open Source key-value store.
Redmine Powerful project management web app
Redmine+Agile Project management application preconfigured with Agile plugin.
Ruby Easy-to-use development environment for Ruby on Rails.
SugarCRM Flexible customer relationship management solution.
SuiteCRM Popular Enterprise-grade CRM application.
Tomcat Popular platform implementing specifications from Java Community.
WildFly Application Server that includes Apache, WildFly, MySQL, and Java.
WordPress The most popular and ready-to-go CMS.
Debian 8 "Jessie" with backports kernel Debian GNU/Linux is one of the most popular Linux distributions.
LoadMaster Load Balancer ADC Content Switch Layer 4-7 Application Delivery Controller (ADC) Load Balancer, Content Switch, and Traffic Manager.
CentOS Distribution of Linux

References -
Azure marketplace items available for Azure Stack