Sunday, April 10, 2016

Mish Mash of IT Storge and On-Demand -> Human On-Demand Deep Storage

IT Storage deals with the storage of your data (customer list, sales orders, customer orders, product photos from 20 years ago, etc). Storing data costs money. It can be "slow & cheap" or "fast & expensive".  Often used data (customer list, recent customer transactions) should be fast, but old data (sales orders from five years ago, pictures you took 20 years ago) can be slower. Here is a chart:


 
Storage Hierarchy - SSD (solid state drive) is "fast & expensive", where as tape is "slow & cheap"






Why are tape drives the cheapest? Because they are mechanical/physical, and the slowest! Tape drives are usually buried in a warehouse of a third party archival vendor (you don't store the data in your own building). Retrieving data from a tape archive will have long latency (time between asking for the data and receiving the data). But that's ok because you are not asking for critical data.


 
A robot is deployed to find and retrieve the tape. A very long process. But cheap!






Wedding dress - do you really need to store it in expensive local storage?






Applying IT storage hierarchy to home storage.





Why have store a wedding dress in your precious closet space (akin to SSD)?







Solution: https://www.beomni.com/








Tuesday, March 1, 2016

Android Studio Has Light Weight Formal?

Infinite loop caught a compile (not run) time

Static checking of code can find structural mistakes. But to catch dynamic mistakes, there needs to be a little formal analysis of the code to determine run time conditions that can lead to problems. In this example, an infinite loop ( while(1) ) was caught at compile time!

If the while(1) was changed to while(myTrue), the compiler misses it. So maybe no so formal after all!


Tuesday, February 9, 2016

Make Unappreciated HR Feel Empowered

HR is seen as operational... no more! With analytics, they can perform strategic tasks... predict who will quit, find out if money or promotion or new job  motivates a employee, detecting low performance employee.

Saturday, February 6, 2016

Linux Apache MySQL Python PHP (LAMPP) Stack


Websites are great for sharing information with others around you.

But a website needs to be "hosted" - that is, a machine needs to be able to run a program that makes the website work.

If you want to have a small scale web server running, the LAMPP Linux, Apache, MySQL, PHP, Python LAMPP stack (building blocks of software, starting from the Linux Operating System to the Apache Web Server) is a very popular solution.

Windows is the host OS. Ubuntu is the guest OS. VMWare Player virtualizes the guest OS on the host OS. The guest OS is running the LAMPP stack. Here I am logging into the M component of the LAMPP stack (MySQL).

Friday, September 4, 2015

IoT - Money Is Made In Connectivity As A Service (CAAS)

IoT are tiny little electronic devices that can collect input (sensors, human input, etc) and transmit it to the cloud (for storage, processing, etc).  Here is a depiction :

IoT devices need a way to connect to the cloud via "The First Mile"

Because most IoT devices are inexpensive, how is the IoT ecosystem to make money? The answer is Connectivity As A Service (CAAS). If your IoT uses WiFi, the cost of connectivity should be $0 (unless you are traveling and don't have access to free WiFi).  But for most IoT devices that are not home bound (thereby having free WiFi access), what will "The Last Mile" look like? It will probably be mobile cellular. AT&T already has a plan for this, and it isn't cheap:



AT&T Connectivity As A Service

So that IoT device with a $10 BOM and $30 full retail price looks cheap compared to the CAAS that you will pay to be connected.  Will this hamper IoT growth? Relegate IoT (that require connectivity in all locale) to serious applications such as industrial and commercial?

Thursday, July 16, 2015

Solid State Drives / Flash Introduction

Storage technology and associated  protocols, connectors, and process tech


Introduction

Storage of program and data long has been stored on a Hard Disk Drive (HDD). HDD  has been the workhorse for storage for the past two decades. It had the luxury of a long "learning" curve because there were many factors that can be improved : number of platters, spin RPM, form factor, protocol improvement, and connector improvement.

Solid State Drives (SSD) now has taken over the role of HDD and more. SSD  can put into tight small place that HDD never had a chance because of SDD's small form factors and low power. SDD is also experiencing a learning curve. The next bump will be "behind the scenes" : 1) continuing the roll out of NVMe and 2) pushing process technology from TLC to 3D.

But just swapping out a HDD for a SSD won't reap all of the performance benefits of SDD.  Hard Disk Drives (HDD) typically connect to the system via the SATA bus. As SSDs replace HDD, SSDs still use the SATA protocol to allow SSDs to directly replace HDDs. But that SATA protocol was design for a spinning disk such as HDD. It is time for a new protocol. That protocol is NVMe. But NVMe requires a high bandwidth bus. Luckily, PCIe already exists and is already in wide adoption.




Here is a quick top to bottom breakdown of a storage system in a laptop:

1. Storage Protocol: ATA, AHCI, NVMe

Protocol is the way software applications talk to the storage device. ATA was one of the ways for PCs to talk to HDD, CD-ROM, DVD, etc. AHCI was created to speed up transfer of data directly from memory to storage (instead of having data pass through the CPU - so that there is a direct path) for HDD.  NVMe the latest storage protocol geared specifically for SSD storage.


2. Storage Connector : IDE/PATA, SATA, PCIe

How a storage device connects to the system changed over time. IDE/PATA was a wide ribbon interface that connected the mother board to the HDD.  The reason for the wide ribbon connector is that the interface was parallel (Parallel ATA).  SATA improved on the IDE/PATA connector by making the connector run at a much higher frequency and serialize the connected (Serial ATA). PCIe improves upon SATA because PCIe is a more "standard" connector : plug in GPU, Ethernet, etc - whereas SATA is focused only on storage.

3. Storage Tech : HDD, SSD/Flash

Hard Disk Drives are physical spinning platters that take time to spool up, seek the first data, and transfer data. Solid State Flash Drives are purely "electronic" with no spinning platters - so no spool up time, seeks are much faster, and transfers are much faster too. It is debatable if HDD drives


4. Storage Fundamental: SLC, MLC, TLC, 3D

The bits that store data physically resides on a transistor. The original technology (called SLC) stored one bit per cell. But as manufacturing and design techniques improved, each cell can store two bits (called MLC) or three bits per cell (TLC). This allows the same solid state drive to multiple the capacity by two (MLC is 2X more dense than SLC) or by eight (TLC is 8X more dense than SLC). The draw back is that the cells are less reliable and require more circuitry to keep them refreshed.

In additional to packing more cells per area from SLC to MLC to TLC, 3D NAND technology will stack even more flash bits (vertically).

Wednesday, July 15, 2015

VirtualBox Hypervising Two Virtualized OSs (Ubuntu, Windows 7) on Windows 8

W7, Ubuntu on W8 via VirtualBox

There is much excitement about Docker Containers - an new form of VM where its footprint  is greatly reduced -  because the Guest OS is now shrunk/removed from the VM. But to support this, the Hypervisor needed by the VMs is now replaced by a Docker Engine.  The disadvantage to Container is that multiple different Host OS's will not be supported anymore. The server community don't care about this limitation and is rejoicing because they can squeeze more linux app into a given hardware. But the development community that relies on virtualization to host multiple target OSs (MacOS, Windows, Linux, etc) will not benefit from the Container trend. Perhaps small businesses will also not make the switch so fast. Here is why.

Here is a screen shot of a Hypervisor (VirtualBox) running on Windows 8. One Virtual Machine is running with Guest OS Windows 7, whilst the other Virtual Machine is running with Guest OS Ubuntu. For those curious as to why I need Windows 7 virtualized on Windows 8, the reason is that  there are critical programs and data that only run on Windows 7 and won't run on Windows 8. Container does nothing for this small business owner.

When the Container takes the IT world by storm, many small users will be clinging on to their little trusty Hypervisor.