<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\758211560\46blogName\75Tech+Tips,+Tricks+%26+Trivia\46publishMode\75PUBLISH_MODE_BLOGSPOT\46navbarType\75BLUE\46layoutType\75CLASSIC\46searchRoot\75//mvark.blogspot.com/search\46blogLocale\75en\46v\0752\46homepageUrl\75http://mvark.blogspot.com/\46vt\75-4353428196867372024', where: document.getElementById("navbar-iframe-container"), id: "navbar-iframe" }); } }); </script>

Tech Tips, Tricks & Trivia

by 'Anil' Radhakrishna
A seasoned developer's little discoveries and annotated bookmarks.

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

This Week I Learned - Week #148

Sunday, February 07, 2016
This Week I Learned -

Possibly, Azure Stack will replace Windows Azure Pack, but Microsoft has typically stopped short of making such direct statements. Comments from Microsoft representatives on the UserVoice forum where Microsoft gathers public feedback indicate Azure Stack is a improved version of Azure Pack

Loved these excellent, thoughtfully consolidated architecture posters on Microsoft Cloud Services

* Azure Storage Table rows can be queried with PowerShell. Its results can be extracted to a CSV file. The script can be scheduled to be run automatically with Task Scheduler on your local machine.

* Azure SQL Database can be created with PowerShell and ARM Template too

As per Capers Jones, the relative cost of fixing defect increases with the progress of software development life cycle.
Brazil grew at 7.6 percent in 2010, and had discovered huge oil reserves which the then President Lula likened to “winning a lottery ticket”. Yet the country shrank by 3.8% last year, and its debt got downgraded to junk

Martin Luther King stated, “Gandhi was probably the first person in history to lift the love ethic of Jesus above mere interaction between individuals to a powerful and effective social force on a large scale.” Apparently he considered Gandhi to be ‘‘the greatest Christian of the modern world’’

Franklin Templeton was formed in 1992 when Franklin Resources, another asset manager, acquired Templeton, Galbraith & Hansberger. Vijay Advani, currently co-president, Franklin Resources set up the India business in 1995. He started the India operations single-handedly while working out of a hotel room for six months. His first few employees were hired when he was yet to secure an asset management licence from the Securities and Exchange Board of India (Sebi). Franklin Templeton is one of India's biggest asset management businesses. The fund was one of the first members of the Association of Mutual Funds of India (Amfi). It was also the first fund in India to be allowed feeder funds to invest in the overseas market. It has its back office (for global tech, back-end operations and fund accounting) in Hyderabad which continues to do a range of local as well as international work - Forbes India

* "The fears we don't face become our limits" - Robin Sharma

* If God brings you to it, he will bring you through it.

Labels: , ,

HOW TO filter columns in a HTML table within any web page

Saturday, February 06, 2016
There are multiple ways to filter columns in a HTML table within any web page

1. Google Sheet can be used to scrape tabular data.

For example, by using the IMPORTHTML formula in a cell within Google Sheet it is possible to scrape the tabular data from this Wikipedia article link:
=IMPORTHTML("http://en.wikipedia.org/wiki/Demographics_of_India", "table", 4)
The table referred in the formula is the fourth among the tables on the web page referred by the URL.

Once you have the data within Google Sheet, you can filter by column value (select column header, choose Filter from Data menu) or hide column (select column, choose Hide column from context menu)

Mediawiki, the open-source wiki application that Wikipedia is based on makes it simple to make a table's columns sortable by just including the value "sortable" in the CSS class attribute for that table.

2. Stoyan Stefanov's ReactiveTable bookmarklet can work on any table (that has table header row cells enclosed within a TH tag) within any web pages including those that need to be authenticated. His blog post has instructions on how to use his bookmarklet to act upon tables to sort, filter as-you-type, download the data in CSV and JSON formats.

Labels: , ,

Publish website in minutes with Kudu & "Monaco", just using browser

Wednesday, February 03, 2016
With the Azure Portal, Kudu & online editor, it is possible to publish a website with static web pages in minutes, all within the browser - no desktop tools required!

After creating a new Azure Web App through the portal, go to your Windows Azure Web App’s Kudu dashboard using this URL -  https://{your site name}.scm.azurewebsites.net (in other words, add .scm in front of the site name).

Click on the Site extensions tab and pick Visual Studio Online (really bad naming for the online editor considering VSO is also the former name of the cloud version of Visual Studio ALM tool)
Create static pages using the lightweight browser-based "Monaco" editor.
The pages get saved automatically and the site pages can be viewed instantly!

Labels: ,

Azure Table Storage vs Azure SQL Database

Tuesday, February 02, 2016
The Azure documentation on NoSQL-based Table is pretty comprehensive (Azure Storage Table Design Guide runs into 50+ pages if you print it) & well written. The consolidated comparison chart on Azure Table Storage vs Azure SQL Database copied from MSDN is a great reference to review occasionally. Nothing summarizes info as well as a table (heh!).

Comparison Criteria Azure Table Storage Azure SQL Database
Data relationships No
Azure Table Storage does not provide a way to represent relationships between data. You can obtain simple relationships by using schema-less properties of tables and structuring the data in the required format.
Similar to SQL Server, Azure SQL Database allows you to define relationships between data stored in different tables by using foreign keys.
Server-side processing No
Supports basic operations such as insert, update, delete, and select, but it does not support joins, foreign keys, stored procedures, triggers, or any processing on the storage engine side.
Provides standard SQL Server features such as stored procedures, views, multiple indices, joins, and aggregation.
Transaction support Limited
Supports transactions for entities in the same table and the same partition. Up to 100 operations are supported in a transaction. Supports optimistic concurrency. For more information, see Entity Group Transactions.
Supports typical ACID transactions within the same database. Transactions are not supported across databases. Azure SQL Database also supports optimistic concurrency.
Geo-replication Yes
By default, a table is replicated to other regions. This replication provides a high degree of disaster recovery capabilities.
See Azure SQL Database Business Continuity for the latest options.
Table schema Relaxed
Each entity (row) can have different properties. For example, in the same table you can store order information in one row and customer information in another row.
Fixed schema for the entire table once defined but can be altered at any time. All rows must adhere to the schema rules. Consider using the XML type or sparse columns for additional flexibility.
Similarity to existing data stores used on-premises No
Cloud-based storage with no on-premises alternatives at present.
Similar to SQL Server with some limitations. For more information, see General Guidelines and Limitations.
Scale-out Automatic
Partitioned based on the PartitionKey property. A table might be stored in different partitions on different storage devices. This structure allows clients to access data in parallel.
Sharded across a managed group of database instances by using the Elastic Scale feature. See Elastic Scale Documentation Map.
Data types Simple Simple, Complex, and User Defined
Azure SQL Database supports a rich set of data types, including custom user-defined types.
Accessible from on-premises applications or applications hosted in non-Azure platforms Yes Yes
Consistency model Strong Strong
Windows Communication Foundation (WCF) Data Services client support Yes Yes
REST client support Yes
Supports REST-based access out of the box.
Supports REST-based access by adding an OData layer on top of a SQL database.
Firewall protection (restricted IP range access) No Yes
Uses the Azure firewall that is configurable from the portal, or using command-line tools.
Transaction throttling behavior Yes
For more information, see this blog post.
For more information, see this article.
Fault tolerance Yes
To provide a high degree of fault tolerance, the stored data is replicated three times within the region, and replicated an additional 3 times in another region more than 400 miles (644 kilometers) apart.
Three copies of a Azure SQL Database instance are maintained within the chosen data center.
Logging and metrics Yes
For more information, see this blog post.
Transaction logs No Yes
Maximum row size 1 MB
With no more than 255 properties, including three required properties: PartitionKey, RowKey, Timestamp.
2 GB
Can contain up to 1024 columns (or 30,000 if sparse columns are used).
Maximum data size 500 TB per table
There is no maximum number of blob containers, blobs, file shares, tables, queues, entities, or messages per storage account. The only limit is the 500 TB per storage account. See Azure Storage Scalability and Performance Targets for more information.
Calculated as Database Throughput Units (DTUs) that vary according to tiers. For the latest, see Azure SQL Database General Guidelines and Limitations.
Target throughput for single blob
Up to 60 MB per second, or up to 500 requests per second.
Other metrics:
See Azure Storage Scalability and Performance Targets for ingress and egress limits.
Calculated as Database Throughput Units (DTUs) that vary according to tiers. For more information about DTUs, see Azure SQL Database General Guidelines and Limitations and Azure SQL Database Service Tiers and Performance Levels.
Maximum number of rows retrieved per query 1,000
No more than 1,000 rows (entities) are returned in response to a single request. If a query has more results than this amount, a continuation token is returned to allow the query to continue with additional requests.
If not tuned correctly, connection and query timeouts can limit the number of rows fetched.
Management protocol and tools REST over HTTP/HTTPS
You can use the Azure Storage Explorer or another third-party tool, such as Cloud Storage Studio.
You can use the Azure Management Portal or SQL Server Management Studio to manage a Azure SQL Database instance.
Data access OData Protocol Interface
You can access data by using the HTTP(S) REST API or the .NET Client Library for WCF Data Services that is included in the Azure SDK.
You can use applications written using existing technologies such as ADO.NET and ODBC that communicate with SQL Server to access Azure SQL Database instances with minimal code changes.
Java API support Yes Yes
Node.js API support Yes Yes
PHP API support Yes Yes
LINQ support Yes Yes
Python support Yes No
Offline developer experience Yes
Provided by the local storage emulator included in the Azure SDK.
SQL Express or other editions of SQL Server are different products and do not offer full simulation of a Microsoft Azure SQL Database environment.
Authentication Symmetric Key
Shared Access Signatures
512-bit HMAC key is used to authenticate users.
SQL Authentication
Standard SQL Authentication is used to authenticate users.
Azure Active Directory Authentication: Supports integrated, username/password, and token-based authentication using Azure Active Directory identities.
Role-based access No Yes
Supports standard SQL database and application roles.
Azure Active Directory (formerly ACS) support No No
Identity provider federation No No
Storage cost $0.125
per gigabyte stored per month based on the daily average.
See Azure Pricing Overview for latest pricing details.
See Azure Pricing Overview for latest pricing details.
Transaction cost $0.01
per 100,000 storage transactions.
Azure SQL Database does not charge for transactions.
Billable operations All
In addition to storage costs, transaction cost is computed based on the volume of transactions against tables.
Cost does not depend on the volume of transactions, only on the database size.
Egress costs $0.12 - $0.19
per gigabyte, based on a graduated, region-specific scale
$0.12 - $0.19
per gigabyte, based on a graduated, region-specific scale

Labels: ,

Difference between Continuous Integration, Continuous Delivery, Continuous Deployment

Monday, February 01, 2016
An explanation from the book Continuous Delivery with Visual Studio ALM 2015:
Continuous Integration is all about quick feedback and validation of the commit phase.

Continuous Delivery is about establishing a mindset where you can deliver features  at customer demand. 

Continuous Deployment can be viewed as the next level of Continuous Delivery. Where Continuous Delivery provides a process to create frequent releases but not necessarily deploy them, Continuous Deployment means that every change you make automatically gets deployed through the deployment pipeline. When you have established a Continuous Delivery solution, you are ready to move to Continuous Deployment if that’s something your business would benefit from.

Labels: ,