Friday, July 24, 2015

Vuzix glass - Basics

What is Vuzix: 

Vuzix is an android based wearable device with recording features & connectivity options such as Wifi/BLE capabilities, mainly designed for professional users


How to run: 
  • Mode: 
    • local: apps can be load into onboarded memory. 
    • paring Android device and using Vuzix as a heads up display. 
    • Both: local and pairing to communicate and collaborate with android device. 
  • OS 2.0 
    • provided by Vuzix which is built on top of Android 4.0.4. 
    • Support for Android, iOS (in development). 

Features: 
  • Captures 5MP camera and 1080p HD videos, memory - 4gb expandable to 32 GB. 
  • provides 3 buttons - to control vuzix and the android apps (i.e., select options in android app, back and android menu options can be controlled in Vuzix). 
  • Voice navigation: Recognition performed locally, so no internet connection required, can also navigate completely using voice, (eg., move right, left, show menu, go home etc
  • M100 can act as a heads up display for legacy android apps while the partner device itself can act as a touch pad / keyboard controls. 
  • Gesturing. 
  • Built in native apps in M100 which helps the user in performing basic features such as 
    • calling msging where the head unit can be used to scroll contacts and initiate call, the partner device will be used for calling while M100 will be used as a headset. 
    • view calendar apps and move to next appointment by using voice commands and more. 
  • Smart glass manager Android app which can be used to control the M100 device. 

General spec: 
Vuzix: 5MP, 1080p, WQVGA display, left / right eye usable, 1 GB RAM, Android 4.0.4, 4GB flash expandable to 32 GB via external miscrosd slot. supports BLE / wifi. 
Glass: 5MP, 720p, 16gb flash (not expandable), supports Bluetooth / wifi. 

How to get started in Vuzix. 
  • Sign up and purchase Vuzix SDK - cost $199, pay an annual registration fee if you want to stay updated. 
  • Vuzix promises to have a M100 specific app store in the future. As of now, we need to upload programs using ADB drivers. 

Differences from google glass: 
  • While Glass app need to be compiled with GDK (i.e., Android native apps cannot be viewed in Glass, the app need to be compiled in GDK to be viewed), Vuzix can act as a head display for Android apps. The apps being viewed in M100 can be controlled via the buttons, voice commands or even the android device (acting as a touch pad and keyboard). 
  • Glass supports latest version (Kit kat) while Vuzix supports ICS -4.0.4). 
  • Glass has companion app for Android and IOS while Vuzix supports Android today, IOS in development. 
  • Glass 1500$ while Vuzix costs 1000$ and SDK costs 199$, GDK is free. 
  • Vuzix has 1GB RAM and 4gb built in flash (expandable to 32 GB), while glass does not provide an external SD card slot. 
  • Glass gets heated within 10-15 mins of using continuously and gets heated even faster if you are using AR app, not sure about Vuzix. 
Hope you got some information about vuzix. 
Visit this site for more information about Vuzix products 

Tuesday, July 21, 2015

NFC Basics


What is NFC 
Near field communication is a set of protocols that helps devices to communicate with each other by establishing a connection either by touching the devices or bringing them close to each other (typically 4 cm). Its a set of short-range wireless technologies requiring less distance to initiate a connection. 

NFC tags: There are variety range of NFC tags available in the market
types ranging from coins, cards, wearble, stickers, business cards etc., You can also write to tags. 

What can you store in NFC tag: 
Depends on the type of the tag and its memory, for example a small NFC tag can store just the url whereas a business card can store more information about the user. 

NFC Readers: There are lot of NFC tag readers, you can also write applications using Android / IOS api to read NFC information. 

Why NFC
  • Quick handshake time. 
  • potential for signal interference or hackers trying to steal your data is reduced. 
  • NFC consumes less battery power 

Applications of NFC: 
  • Payment for products through mobile phones
  • NFC based wearables can become a cashless payment system. 
  • Access control
  • Queue management - who registered first. 
  • Launch an app: open maps and launch direction to home when you tap your mobile on a nfc tag in the car
  • Perform an action: For example set an alarm whenever you tap on a sticker
  • Share business cards information
  • using Mobile phone for boarding passes. 
  • NFC enabled parking meters

Difference between NFC and bluetooth: 
  • NFC is designed for less data transfer - less than 400 kb whereas you can transfer more data using bluetooth
  •  quick handshake - typically takes 0.1 second, whereas bluetooth takes more time to establish the connection. 
Questions to ask before choosing NFC as a solution: 
  • Is your application requires close contact with the devices less than 10 cm. 
  • Is it a one way communication. 
  • Is the action performed important since it requires the user to hold or tap the device within 10 cm. If not choose other technology such as RFID or bluetooth. 

You can also use NFC to initiate a connection and then use other technology to transfer more data. 

Friday, July 17, 2015

RFID - Things to consider for a RFID solution

As you might know the RFID solution consists of different hardware components such as the actual RFID tag, the antenna, RFID reader. Following are the things that we might need to consider for a RFID requirement. 

Frequency levels: 
  • Low frequency: supports less distance such as up to 10 cm
  • High Frequency: distance up to 30 cm
  • Ultra-high frequency: more than 100 meters. 

The RFID TAG
Things you need to know before selecting an RFID tag: 
  • Keep in mind on the environmental interferences 
    • Water
    • Metal
  • Tag types
    • Metal mount RFID tags:  the metal will detune any passive RFID tag, non metal mount RFID tags. Metal mount RFID tags are typically rugged, difficult to damage, and easy to weld, screw or otherwise attach.
    • Rugged UHF RFID tags
    • Windshield RFID tags: to be applied on car windshield. 
    • Laundry tags: on garments. 
  • Questions to ask yourself: 
    • What type of surface you will be tagging - metal, plastic, wood etc., 
    • What is the read range you want. 
    • How big you want the tag to be. 
    • What is the climate in which you would operate, excessive heat, cold, moisture etc., 
    • Method of attachment - adhesive, rivets / screws

RFID Antennas: 
  • Are devices that uses power from the reader and generate a field that allows the reader to transmit and receive signals from RFID tags. 
  • The powerful antenna will produce a larger field. 
  • Questions to ask yourself for antennas: 
    • where will the antenna be mounted: Indoor or outdoor
    • Size limitations
    • Do you need one antenna or more than one. 
    • Polarization: Linear or circular

RFID Readers: 
  • are devices that transmit and receive radio waves in order to communicate with the tag. 
  • Types of readers: 
    • Fixed readers: 
      • in one location. 
      • typically have multiple ports so that the reader can support multiple antennas
    • Handheld readers: mobile and can be carried by the person. 
    • Integrated reader: with a built-in antenna, but has additional port to have additional antenna, you can choose this if you want a low cost antenna 
  • The readers may or may not have an ethernet cable. some may have wifi connection. 
  • Some readers will also support bluetooth, barcode etc., 
  • Questions to ask yourselves for Readers: 
    • how do you want to power the reader - battery / AC power. 
    • Will you be adding the reader to the network. 
    • How many tags you might want to read at once. 
    • How many readers you will need. 
    • How quickly will the tag be moving. 

Cable that connects the Readers with the Antennas: 

  • how long you need the cable
  • connector type for the antenna and the reader. 

Monday, July 13, 2015

Amazon Glacier

What is Amazon Glacier ?

Amazon glacier is another storage solution from Amazon. Its a secure low cost storage service mainly used for data archiving and backup. 

Glacier is optimised for infrequently accessed data where the retrieval time is slower, whereas S3 is meant to access frequently accessed data. A single archive file can be as large as 40 TB. 

Characteristics: 
  • extremely low cost
  • meant for storing archival data where retrieval is not frequent. 
  • Secure: supports data transfer over SSL. 
  • Durable: Your data is stored redundantly across multiple facilities. 
  • Audit logs on the glacier data, who accessed what data. 

Uploading data to AWS: 
  • AWS provides SDKs which help you in transferring large amount of data. 
  • If you want to transfer large amount of data from your corporate network, you can use AWS Import / Export feature and AWS Direct Connect. 
Downloading data from Amazon: 
  • Downloading a data is asynchronous operation. First AWS glacier prepares your archive which takes hours and then you have 24 hours to download the data from the staging location. 

How pricing works: 
You normally pay for the following
  • Data storage (appxt. $0.01 per GB)
  • Request
    • Upload and retrieval request: $0.05 $ per 1000 requests. 
  • Data transfer

Please find the up to date pricing information in this URL: 

AWS EC2 - basics for beginners

What is EC2: 

EC2 is a web service from Amazon which helps the developers / architects to launch virutual machines in a pay as you go mode instead of purchising the required hardwares. 
  • Eliminates the need to invest in hardware upfront. 

Why AWS: 
  • Traditionally, procuring and setting up server is time consuming which can takes weeks or even months. With AWS, you can set things up in mins.
  •  You don’t need to spend your time and resources for managing these servers. 
  • you don’t need to worry about upgrades, you want a better server, just terminate the current one and go for the next better server. 
  • Pay for only what you use, like a electricity meter, you only pay for the no. of hours your server is running. ‘
  • Increase or decrease your size of the instances in minutes. 
  • You have complete control over your instances, you can control the life cycle of the instance using the EC2 management console.

Instance types: 
EC2 instances ranges from small types i.e., micro instances for small jobs to high-performance “x-large” jobs. You have to choose the instance types that matches your requirement. 

These instance types are optimised to fit different use cases. 
Some instance types: 
  • T2: burstable performance instances (provide base level of CPU performance, ability to burst above baseline. Good for use cases that don’t use the full CPU.
Use cases: Dev environments, build servers, code repositories, low traffic web applications, small databases. 

  • M3: provides a balance of compute memory and network resources - good choice for many applications. 
  • C4: latest generation - compute optimised instances - highest performing processors / lowest price/compute performance. 

Memory optimised: 
  • R3: optimized for memory intensive application, 

GPU: 
G2: intended for graphics and general purpose GPU compute applications. 

Storage optimized: 
I2 - High I/O instances, high storage instances that provide very fast SSD-backed instance storage optimised for high random I/O performance and privide high IOPS at a low cost. 

Dense storage instances: 
D2: features up to 48 TB of HDD based local storage, deliver high disk throughput. 


How about security: 
You can choose Virtual private cloud or other AWS services depending upon your requirement to improve security. 


Will it auto scale: 
Yes. you need to use elastic load balancing for that.  


How pricing works: 
There are different types of pricing methods: 
  • On-demand pricing.
With on-demand pricing, you don’t have any long term commitments. You only pay for the amount t
You can buy and pay hourly instead of long term comm
  • Reserved instances. 
With reserved instances, you pay an upfront fee and get a discount on the per hour usage of the instances. If you are sure you are going to run a server for a longer period of time, you can go for a reserved instance. 

  • Spot instances: 
This options lets you define what price you want to pay for your instances and by following a bidding approach, you will get your servers based on the bid. 


Some AWS basic terms: 

Elastic IP Address: are static IP addresses that are tied to account and not an instance. The instance can be mapped to static IP addresses. 

Autoscaling: Lets you automatically scale up or down on the instances according to the conditions you define. This will ensure you don’t pay too much for the instances when the traffic is actually less. 

Elastic Load balancing: Automatically distribute incoming application traffic across multiple AWS EC2 instances. 


Characteristics: 
  • CPU
  • Memory
  • Storage
  • GPU



RFID - Basics

What is RFID: 

RFID is called “Radio frequency identification, initially used to identify different aircrafts in 1940s, RFID is part of our daily lives – in car keys, toll tags, access cards

A RFID contains a microchip and a transmitter. 

Motivation to use RFID: 
  • RFID price is cheap. 
  • Can be implanted. 
  • Barcode scanning requires line of sight of barcodes. 

RFID attributes / characteristics: 
  • type: Active / Passive / Semi-Passive
  • Range: in meters Eg., 6m, 100m, 150m, 
  • Operating frequency:  Example: 915 mhz, 
  • data rate upload / download: in kb/sec (eg., 115 kb/s). 
  • Dimension
  • memory to hold data - 64b, 32 kb, 
  • Battery
    • Type: Coin, Double A
    • Life time of battery: in years > 2yr, 6 yr
    • Replace type: Can be replaced / cannot be replaced. 

Ultra-wide band RFID: 
  • high data rate. 
  • low average radiated power. 
  • Advantages: 
    • Long range, accurate. 
  • Cost: approximately 5$

Vendors comparison.
  • Zebra
  • Precise asset tag
  • Gemalto

How much data you can store: Normally less say in bits (serial numbers) or in kbs (8 kb for example). 
Can data be written to RFID tags: Microchips in RFID tags can be read-only, read-write, write once read many. 
Some chips can also be read-only

Types of RFID tags
  • Active 
  • Passive
    • don’t have power source
    • less cost, lesser in size. 
    • ID cards

Technology application areas: 
  • Asset tracking
  • Data acquisition
  • Payment systems
  • Security access control
  • Personnel tracking. 

Applications of RFID: 
  • Retail: 
    • RFID enable shop cards can help store identify customers and buying patterns and suggest discounts in displays in shopping carts. The cart can scan rid and calculate the product costs when you place the carts. 
    • Improve steps on stock inventory - just scan and the system updates automatically. 
    • search for products types of different sizes (say shoes). 
    • Track products from manufacturing till point of sale. 
  • Transport
    • Keys used to open car is based on RFID
    • Parking management
  • Environment
    • Animal tracking
  • General
    • Cars can have RFID tags which can be used by security personnel to find information about the vehicle details and authenticate the user. 
    • Find your car in the parking lot. 
  • Automatic payment passage to tolls
  • Building access cards
  • Passports
  • Toll payments. 
  • Payment cards
  • Bluetooth headsets also use rFID for wireless identification. 



Apache Storm - Overview

What is Storm
Storm is a distributed real time stream processing system. In this the processing work which normally takes lot of time to do the work is delegated to different components each responsible for performing a task. 

Storm comprises of the following process at a high level. 
  • Input: The data is received from different sources by a component called spout. The sources could be file, messaging queues
  • Processing: The processing is actually done by different components called bolts. The work can be done by one node or different nodes. 
  • Output: Once the data is processed, they can be stored in db, files

Advantages: 
  • See real time results while the storm components take care of processing it in high speed by utilising different nodes to process them. 

Applications of Storm:
  • Process real time data from different devices and analyse them quicker as and when the data flows into the system. 
  • Lively statistics. 
  • Build predictive models for real time data. 
  • Build monitoring and alerting systems. 

Why Storm: 
  • simple to program
  • support for multiple programming languages. 
  • fault tolerant: takes care of workers going down, reassigning tasks when necessary. 
  • Scaling: multi-node scaling options. 

Operation :
  • Local mode: run in a single machine
  • Remote mode: 
      • we submit our topology to the storm cluster, composed of different process usually in different machines, 

Nodes: 
  • Master node
      • they run a daemon called Nimbus. 
        • Responsible for distributing code around the cluster
        • Assign tasks to worker nodes
        • Monitor failures
  • Worker node

Types of grouping: 
  • Shuffle grouping. 
      • select the tuple emitted by the source to a randomly chosen bolt. 
      • useful for performing mathematical operations. 
      • not suitable for operations that cannot be randomly distributed. 
  • Field grouping
      • control how tuples are sent to bolts, based on one or more field definitions. 
  • All grouping
      • sends a single copy of each tuple to all instances of the receiving bolt. 
      • used to send signals to all bolts i.e., refresh a cache
  • Direct grouping
  • Global grouping

Saturday, July 11, 2015

Amazon Kinesis Overview

What is Kinesis: 
Kinesis is a managed cloud service from Amazon to process real time data over large distributed data streams. The data can be captured from variety of stores such as web site click streams, social feeds, financial data transactions, sensor data, IT logs and location tracking events. 

Features: 
  • Manage high volume stream of data that comes into Kinesis. 
  • Can emit data to other AWS services such as S3, redshift, Lamda etc., 
  • Client libraries that support different languages such as Java, Python, Ruby etc., 
  • Durable: preserves the data for 24 hours.  
  • Elastic, highly scalable. 
  • You can also use Kinesis connector library to integrate Kinesis with other AWS services such as S3, Redshift, DynamoDB etc., 
  • Parallel processing: you can have multiple kinesis app processing the same stream concurrently. 
  • Replicates your data into 3 facilities in AWS region
Architecture: 

What is a shard: is a base throughput unit of AWS Kinesis stream .
  • 1 shard is capable of accepting 1MB / sec data input 
  • 1 shard is capable of 2MB / sec data output
  • 1 shard is capable of accepting 1000 PUT records per second. 
When you create a data stream, you have to tell how many shards you might need. You can dynamically add or remove shards from your stream as your data throughput changes via retarding. 


A partition key is used to route data records to different shards. This key is specified by the producer while placing data into the Kinesis. 


Main steps in Kinesis development includes:
  • Creation of the Data stream: You can use Kinesis console to create a data stream. 
  • Pushing data to the stream: There are different ways to send data: 
    • HTTP Post
    • AWS SDK
    • AWS Mobile SDK
  • Receiving data from the stream, processing and storing values to the output database. You can 
    • Receive data using the Kinesis Client Library (KCL)
    • Processing: 
      • Transformer: Necessary data conversion is performed using this component. 
      • Filter: Removal of data and validation is performed 
      • Buffering is performed in this component. 
    • Storing output data:
    • You can store in S3, Redshift or Glacier using Kinesis connector libraries. 
    • You can also store in the preferred NO-SQL DB you want. 

You can also use Kinesis Storm spout (a pre-built library that helps you easily integrate Kinesis with Apache Storm


Limitations: 
  • Records will be maintaining up to 24 hours from the time they are added to the stream. 
  • Max size of a data blob is 1MB
  • Each shard can support up to 1000 PUT records per second.

Your pricing and evaluation depends on the following questions: 
  1. How much data your application will put into Kinesis. 
  2. What is the frequency level in which it will put. 
  3. What is the maximum and minimum size of the data it will generate for each record. 
  4. Will the data be immediately consumed by the consumer. What is the maximum wait time in the queue. 

Pricing: 
  • SHARD hour
    • 1 shard costs $0.015 per hour, so assuming you are running 1 shard 24 * 7, it will cost you 11.16$ for one shard usage cost. 
    • If you are using 4 shards it will cost you around 44$ a month
  • PUT payload unit
    • 1 million PUT payload units costs $0.014
    • 1 PUT is 25 KB chunk. 

Please visit this link to get the latest pricing details as Amazon keeps changing the price details every now and then. 

PS: 
  • Amazon does not charge for data transfer from Kinesis to AWS Kinesis consumers. 

Why Kinesis:
  • Kinesis manages the infrastructure, storage, and configuration need to stream your data. 
  • Preserves data for 24 hours so that you don’t lose them - it replicates across 3 facilities, elastic and scalable. 
  • You don’t have to worry about provisioning or on-going maintenance of hardware. 

What else you can do:
  • You can integrate with Cloudwatch to view and analyse reporting data to see how your streams behave. 
  • Integrate with IAM to ensure only certain user group is able to put message in the Kinesis. 

Applications of Kinesis: 
  • Social data processing. 
  • Processing Sensor data from devices. 
  • IT log processing
  • Processing Gaming data feed etc., 


Wednesday, July 1, 2015

Openshift - Red hat's PaaS - Overview

OpenShift

App development / hosting platform from Redhat, provides runtime environments such as Languages: Java, PHP, NodeJS, Python, Perl etc., 
Databases: dbs such as mysql,mongoldb, postgreSQL, SQLite, Amazon RDS are supported. 
Servers: JBoss AS, EAP, Tomcat, Zend Server, Vert.x

You can access and create applications in Openshift in 3 ways: 
  1. Access the Openshift web console
  2. Use the command line tools - RHC tools
  3. Use Eclipse and plugin - JBoss tools. 

The applications you create are stored in AWS. 

Main features of OpenShift: 
  • Region and zone mgmt: By defaults the free plan apps are stored in us-east-1 AWS region, but paid versions allows you to create apps in any EC2 regions. 
  • Customize resources: You will be able to select the select size and other attributes in Openshift. 
  • Auto Scaling: 
  • Domain management: You can create your own domain names. 
  • SSL support
  • Cron jobs: You can run scheduled jobs scripts as part of the app.
  • SSH into Openshift instance
  • Backup and restore application instance
  • Colloboration: You can have more than one users monitor and administer the domain created in open shift. 
  • Continuous integration support using Jenkins
  • Deployments: Automated deployments and rollback to previous versions. 

Pricing: 
  • Small: 0.02$ per hour (512 MB RAM)
  • Medium: 0.05$ per hour (1 GB RAM)
  • Large: 0.10$ per hour (2 GB RAM)


Can you SSH into Openshift: 
Yes. Go to your open shift console and select your application. Click on the link “Want to logon to your application” .

You will get a ssh command with your url. Use this command to ssh, it might ask for a paraphrase / ppm file. Ensure you have it, you might have already done this during the setup process of open shift in your local dev environment. 

xPaaS
Business process Services
  • JBoss BPM Suite: deployed BPM framework
  • JBoss BRMS: A deployed application that can be accessible by BA’s to manage rules.

Fuse: 
Fuse is a ESB used to integrate different systems. Fused on based on several open source technologies such as WS framework (Apache CXF), Integration services - (Apache Camel), Messaging - Apache (Active MQ), Container (Apache Karaf) and Fuse IDE in JBoss Dev Studio. 
It uses different protocols such as MQTT, AMQP, HTTP, REST, JMS etc., 


JBoss Unified Push: 
allows developer to send native push messages to mobiles using Apple's APNS and Google's GCM.