What is bitcoin?

Some of my fellow meetup members on IoT group asked if i was interested in Bitcoin and what that is. 
Bitcoin is a form of digital currency, created and maintained electronically. Nobody controls it, its not printed like traditional currencies. They are produced by people for people, increasingly businesses are recognizing the true value of this network.
Its one of the form of cryptocurrency. I have known Bitcoin as a virtual currency, stumbled upon it during 2010. I was very curious about the virtual currency and how to collect them. Did manage to collect few, which was worth pennies. Was worth $870 when i sold few in 2013 and now its worth $370 as of today, 7th Feb 2016.

Who created it?

A software developer called Satoshi Nakamoto proposed bitcoin. The idea was to produce a currency independent of any central authority, transferable electronically, more or less instantly, with very low transaction fees.

How is it different?
Bitcoin can be used to buy things electronically. Its like conventional dollars or euros which are also traded digitally. However, bitcoin's most important characteristic is, it is decentralized. No single institution controls the network. This means that large banks and financial corporations cannot control peoples money or money in this network.

Who prints it?

what is bitcoin, bitcoin, cryptocurrency, doityaar
No body. Thats the beauty of digital currency and bitcoin network. Unlike centralized currency which is typically controlled by banks and regulators can easily print additional money to cover their debts, thereby undervaluing the overall currency rate.
Instead, bitcoin is created digitally, by a community of people that anyone can join. Bitcoins are ‘mined’, using computing power in a distributed network.
This network also processes transactions made with the virtual currency, effectively making bitcoin its own payment network.

Conventional currency has been based on gold or silver. Theoretically, you knew that if you handed over a dollar at the bank, you could get some gold back (although this didn’t actually work in practice). But bitcoin isn’t based on gold; it’s based on mathematics.

Around the world, people are using software programs that follow a mathematical formula to produce bitcoins. The mathematical formula is freely available, so that anyone can check it.
The software is also open source, meaning that anyone can look at it to make sure that it does what it is supposed to.

What are its characteristics?

Bitcoin has several important features that set it apart from government-backed currencies.

1. It's decentralized

The bitcoin network isn’t controlled by one central authority. Every machine that mines bitcoin and processes transactions makes up a part of the network, and the machines work together. That means that, in theory, one central authority can’t tinker with monetary policy and cause a meltdown – or simply decide to take people’s bitcoins away from them, as the Central European Bank decided to do in Cyprus in early 2013. And if some part of the network goes offline for some reason, the money keeps on flowing.

2. It's easy to set up

Conventional banks make you jump through hoops simply to open a bank account. Setting up merchant accounts for payment is another Kafkaesque task, beset by bureaucracy. However, you can set up a bitcoin address in seconds, no questions asked, and with no fees payable.

3. It's anonymous

Well, kind of. Users can hold multiple bitcoin addresses, and they aren’t linked to names, addresses, or other personally identifying information. However…

4. It's completely transparent

Bitcoin stores details of every single transaction that ever happened in the network in a huge version of a general ledger, called the blockchain. The blockchain tells all.
If you have a publicly used bitcoin address, anyone can tell how many bitcoins are stored at that address. They just don’t know that it’s yours.
There are measures that people can take to make their activities more opaque on the bitcoin network, though, such as not using the same bitcoin addresses consistently, and not transferring lots of bitcoin to a single address.

5. It’s fast

You can send money anywhere and it will arrive minutes later, as soon as the bitcoin network processes the payment.

6. It’s non-repudiable

When your bitcoins are sent, there’s no getting them back, unless the recipient returns them to you. They’re gone forever.

Make way for GaaS(Gaming as a Service)

Mobile gaming, which evolved concurrently with the development and launch of mobile phones and mobile computing devices, is witnessing strong growth. Rising sales of smartphones and tablets and growing use of these devices for entertainment purposes such as gaming, are driving growth in the mobile gaming market.
Smartphones have evolved to be multi-functional phone, the development of an inexhaustible range of entertainment apps which keeps the users glued to their phone all the time. Integration of hardware and software has been seamless with support for gaming such as motion sensors are significantly benefiting the trend of mobile gaming.
Proliferation of Mobile internet, declining cost of internet services like 3G and launch of 4G high bandwidth networks are additionally enabling anywhere, anytime access to online games.
While cloud infrastructure and the technology market has been abuzz with SaaS, PaaS and IaaS. Mobile Gaming as a Service(GaaS) is the latest entrant to create that buzz in mobile gaming market.
The last couple of years witnessed massive developments in gameplays, social media interactivity, game genres, and monetization models. Also driving growth is the drop in handset prices and data access fees, steady rise in the number of mobile MMORPG gamers. Not to mention the ever increasing prize money for online and offline tournaments.
Continous development of blockbuster titles by gaming companies and launch of free-to-play games with paid upgrades are generating revenues from in-game microtransactions. 
Given the growing diversity of smartphone platforms and the pressure to beat competition, demand for cross-platform game applications will grow strongly in the coming years. Game developers are therefore focusing on developing platform agnostic games that run on Android, iOS, and Windows OS. Also, the tremendous success of social games is providing the much required boost to the wireless games market. The rise of the cloud computing phenomenon and the ensuing easy access to gaming applications over the cloud, without the need for download, is driving the popularity of cloud games. Also, driving consumer preference for cloud games is the launch of Gaming as a Service (GaaS) solutions that allow latency-free, effortless streaming of games. 
Amazon is taking a dig at game development by releasing their own Game Engine called Lumberyard. Its free for game developers. 
game engines, GaaS, gaming as a service, doityaar

Mobile gaming market is in a interesting phase right now.

Simple ways to improve Faster time to Market

Historically, projects have always been managed and implemented as follows. You are given a project with certain deadline. You dedicate certain time for actual development and remaining time for QA. However, the development runs a little longer than planned and deadline cant be pushed. So we cut down on the testing cycles or gets condensed. We compromise on the quality of the code and product by compromising the time allotted for QA. Ultimately the quality of the end product is compromised. You get the picture, right.
faster time to market, infrastructure automation, infrastructure management, devops, doityaar

I know some of you must be screaming Agile addresses all of these issues, yes it does to some extent. Typically when it comes to large projects, the sprints are broken down and cut short into smaller cycles instead of the testing cycle. 

Quality starts with careful pre-production load testing to avert preventable disruptions, delays and failures. It also means careful real-time, post-development monitoring of actual user experiences so that you can be aware of and respond to unexpected situations at the time they arise. This is the beginning of the continuous delivery process.

Clearly, this isn’t an easy problem to solve. To ensure fast performance under peak loads, you must commit to performance testing before, during and after site launch. In the world of agile development, few businesses can afford to feature freeze their environment for months. And even if you can efficiently code-freeze application elements, you’re still vulnerable to the integration challenges that come with third-party components – CDNs, shopping carts, payment systems, and more – that contribute to the user experience.

Using real-time analytics, a visual test creation environment, dynamic provisioning, and the ability to start, stop, pause, and restart tests, you will be able to achieve Continuous delivery and increase the time to market.

The actual release frequency varies greatly depending on the company’s legacy and goals. For example, one company may have improved its release cycle from once a year to once a quarter compared to another which does hundreds of releases an hour.

Exactly what gets released varies as well. In some organizations, QA and operations triage potential releases: many go directly to users, some go back to development, and a few simply are not deployed at all. Few companies like Flickr push everything that comes from developers out to users and rely on real time monitoring and rapid remediation to minimize the impact.

Infrastructure Management

Large enterprises and small spend tremendous amount of money and efforts in managing their infrastructure be it Virtualized infrastructure or Physical. Every business has a different perspective of how they manage their infrastructure. There are many Industry best practices but there is no one architecture fits all solution. 
infrastructure management, doityaar, infrastructure automation, devops, wordpress, blogger, IAAS

Managing multiple test environments vs Production environment is always the topmost topic of discussion for engineering teams. Traditionally, these environments are provisioned as silos and were disconnected silos where development team would create the application and literally Toss it over to operations for deployment. When the inevitable problems occurred, fingers start pointing at one group or another complaining about poor code quality, poor infrastructure and that is a vicious cycle.

Some of it can be mitigated with proper assignment of responsibilities with RACI for managing your environment. This is where ITSM processes will fill the gap. Clear definitions of SLO(Service Level Objectives) and SLA(Service Level Agreements).

I think the DevOps was directly a solution to bridge the gap between Development and Operations. Instead of pointing fingers at each other. Development and IT operations work together, collaborate and deliver.  Successful DevOps requires all the teams within an organization to coordinate and play significant roles at different phases of the application lifecycle. It may not solve the problems with silos but collaboration will help.

Infrastructure should be managed in such a way that reduces the overall administration effort, time spent to manage them, maximizes productivity and reduces bugs that affect the infrastructure. 

The modern operations is going to be interesting with businesses moving their infrastructure to Cloud. Operations will be automated through code, QA will be automated, deployments will be automated. Infrastructure as a code is a reality, it is possible today.

Accelerate the standardization and consolidation of the infrastructure and application environment. It is extremely important to standardize the existing infrastructure before planning to automate it. Read Infrastructure automation here.

Using the historic data as well as predictive analysis, Infrastructures should be enabled to be smart which can scale up when there is a business demand and scale back down after that. Thats something we covered here.

Automating Infrastructure as a piece of code which can be configured, tested, deployed, measured, versioned, refactored just the way other software source code is treated.

Even if businesses don't have roadmap or a vision to reach there, Standardizing their existing physical or virtual infrastructure has advantages in itself.

With proper use of technologies, businesses can reduce operational cost, manual labor, enable faster time to market, lesser time to deliver products, Efficient, reliable and scalable Capacity management.

For operations team, infrastructure should be one silo rather than a silos defined by number of test environments in an organization. Of course their SLAs would defer but that is something which can be managed at the Service layer and support layer.

Assess the existing infrastructure, optimize it to match the best practices and your needs and monitor along the way. Capture metrics and repeat until the Infrastructure is standardized enough.

Assess -> Optimize ->Monitor -> Report ->Manage

Internet of Things and Cloud

Recently, i attended a meetup in Seattle which was part of a IoT meetup group. I got to meet some interesting people in the meetup who are all as enthusiastic as i am about anything to do with Internet of Things(IoT), be it just a simple Raspberry Pi or latest sensors or a simple line of code which makes a light blink across the hall remotely. 
internet of things, Cloud, IOT, microsoft, AWS, doityaar.com

I have always been a great fan of Steve Jobs and his business acumen, well who isnt right? I still watch the older keynote speeches, Apple Product launches which always draws loud cheers and hoots. Its actually very funny now to watch the audience react to the smallest of small new features that Apple announces in these product launches.

It may look small and silly now when we look back but every feature was and is revolutionary in itself which changed the way we use our phones forever. 

IoT is also in that phase right now where every small little step forward is an innovation in itself. Here are few of the commercial IoT devices available for consumers to buy. 
Foobot Air quality MonitorConnected Sonos SpeakerKeen Home Smart VentLIFX Color Life BulbPhilips Hue:Dimmer SwitchJune Oven,

Here are some of IoT companies or startups doing some cool research and coming up with innovative products - CircuitHub, SmartThings, MisFit, Beep Networks, TempoIQ

Of course there are larger players like Amazon, Microsoft, IBM, CISCO, Google, ATT who are all playing a larger role with their forward thinking innovation. They all have invested heavily in IoT segment. Some of them investing and growing and growing organically and some acquiring smaller companies.

Microsoft is approaching IoT from both a platform as a service space and from hardware perspective as well. Microsoft is enabling developers and other IoT enthusiasts to develop products, they have Windows 10 IoT core and Windows Remote Arduino operating systems available for free. According to Microsoft "Arduino bridges the gap between software world and the physical world".

Amazon Web Services(AWS) has the biggest cloud infrastructure as yet and AWS is ready to take all this data and work with it. 

I have used both Windows IoT and AWS briefly for Demo projects, i just feel Microsoft is doing a great job with IoT offering and all the associated products and services whereas AWS is relying heavily on the Cloud infrastructure itself and its AWS ecosystem to develop these products. There are not many extensions or readily available services that you could use on AWS except for cloud service RDS relational Database and Red Shift Data warehouse tool.

RACI to manage your environments

It is always a challenge for Project Manager to manage cross-functional teams. It makes it even more complex when the responsibilities within a team are not clear. Trying to complete a larger project in bureaucratic environment without clearly establishing roles and responsibilities is even harder. 

There are plenty of tools for system engineers, devops engineers to get their task done. Not many for the project managers.

Typically, a RACI diagram or RACI matrix is used to describe the roles and responsibilities of various teams or team members in a project. It is extremely useful in identifying the clear responsibilities in cross functional team. It helps the team also to understand what their intent of work is and the overall business value they are creating by doing their part.

RACI’s core advantage is that it helps to avoid potential responsibility uncertainty.The RACI diagram splits the tasks into four participatory types which are then assigned different responsibilities in the project. 

RACI is an Acronym for Responsible (R)Accountable/Approver (A)Consulted (C), Informed (I) 

Responsible (R) –  In short, this is the “doer”, who actually completes the task. This person is responsible for action/implementation. There can be multiple people or a team responsible for one task.
Accountable/Approver (A) – a person answerable for the correct and thorough completion of the task. There must be only one Accountable specified for each task.
Consulted (C) – those who are consulted before the final decision or action is made.
Informed (I) – those who are kept up-to-date on progress. Your clients, for example.

RACI to manage your environments, what is RACI, RACI devops, doityaar, #djrkay
Using the RACI model provides useful results when responsibilities within a team are not clear. Its especially very useful when a project team is formed by members from several consulting companies and the entire team reports to different managers and have no imposed governance model.

Fix Schema Errors in Blogger

After you run the Structured Data Testing Tool, you may come across numerous errors on how your web page, blogger article, blogger page is structured and how its aligned with the Schema representation defined by Schema.org, an alliance of Search engine giants Google, Yahoo and Bing.

You may see
  • The mainEntityOfPage field is required and recommended. 
  • The dateModified field is required and  recommended. 
  • A value for the headline field is required.
  • A value for the image field is required.
  • A value for the publisher field is required.
  • The property image_url is not recognized by Google for an object of type BlogPosting.
  • The property blogId is not recognized by Google for an object of type BlogPosting.
  • The property postId is not recognized by Google for an object of type BlogPosting.

Before you make any changes to the Blogger template or your website template, make sure you backup. In blogger, click on Template > Backup/ Restore and click on Download Template.

The mainEntityOfPage field is required and recommended. 

Find this
<div class='post hentry uncustomized-post-template' itemprop='blogPost' 
itemscope='itemscope' itemtype='http://schema.org/BlogPosting'>

and replace it with
<div class='post hentry uncustomized-post-template' itemscope='itemscope' 
itemtype='http://schema.org/BlogPosting'> <meta itemscope='itemscope' itemprop='mainEntityOfPage'  
expr:itemid='data:post.link ? data:post.link : data:post.url'/>

The dateModified field is required and  recommended. 

Find this 
<div class='post hentry uncustomized-post-template' itemprop='blogPost' 
itemscope='itemscope' itemtype='http://schema.org/BlogPosting'>

and replace it with 
<meta expr:content='data:post.timestamp' itemprop='datePublished'/>
<meta expr:content='data:post.lastUpdatedISO8601' itemprop='dateModified'/>

A value for the headline field is required.

Find this 
<h3 class='post-title entry-title' itemprop='name'>

and replace it with 
<h3 class='post-title entry-title' itemprop='headline'>

A value for the image field is required.

Find this 

and paste the below code after the above code.
<div itemprop='image' itemscope='itemscope' itemtype='https://schema.org/ImageObject'> <b:if cond='data:post.firstImageUrl'> <img style='display:none;' expr:src='data:post.firstImageUrl'/> <meta itemprop='url' expr:content='data:post.firstImageUrl'/> </b:if> <meta itemprop='width' content='800'/> <meta itemprop='height' content='800'/> </div>

A value for the publisher field is required.

Find this 

and paste the below code after the above code
<div itemprop='publisher' itemscope='itemscope' itemtype='https://schema.org/Organization'> <div itemprop='logo' itemscope='itemscope' itemtype='https://schema.org/ImageObject'> <img style='display:none;' src='http://doityaar.com'/> <meta itemprop='url' content='http://doityaar.com'/> <meta itemprop='width' content='600'/> <meta itemprop='height' content='60'/> </div> <meta itemprop='name' expr:content='data:blog.title'/> </div>

and make sure to replace the code marked in red with link to your logo.

The property image_url is not recognized by Google for an object of type BlogPosting.

Find this and remove this code entirely
<b:if cond='data:post.thumbnailUrl'> <meta expr:content='data:post.thumbnailUrl' itemprop='image_url'/> </b:if>

The property blogId is not recognized by Google for an object of type BlogPosting.

Find this and remove this code entirely

<meta expr:content='data:blog.blogId' itemprop='blogId'/>

The property postId is not recognized by Google for an object of type BlogPosting.

Find this and remove this code entirely
<meta expr:content='data:post.id' itemprop='postId'/>