Autonomous Data Bots

Today we are at a place where its practical to deploy autonomous data bots on edge computing to collect data and make intelligent decisions. We have been incrementally moving towards this goal over the past decade. This post delves into the various stages in evolution towards autonomous data bots (1) Remote Agents, HTTP Tunneling & Long Polling (2) Self-Upgrading Programs (3) WebSockets, SSE, and HTTP/2 Server Push (4) Self-Sustaining Bots. sThe data bots are autonomous, manage their own lifecycle while running on edge networks, and communicate with central cloud servers for data and knowledge exchange. Since the data bots have secure access to corporate data they are responsible for real-time data ingestion to the cloud, into a central data lake. The central data lake is used by machine learning models to build knowledge, and knowledge service is accessible by bots and other clients. In addition, there is a relay service running in the cloud that serves as communication mechanism for data bots that are spread out geographically.

Read more

AWS Glacier Backups

A short list of commands to help zip or image data and content into mid-size chunks that can be stored in S3 buckets. Since we are storing backups on AWS S3 Glacier, which needs to be restores before access, we want to keep the number of files reasonable. AWS charges for each API request, so incentive to store bigger files. The max limit on single file is 4GB. So lets go with file size in the range of 100MB - 3GB.

Read more

Grocery Listr App

Grocery Listr is your ONE app for lists. It is a convenient way to organize grocery lists and shopping lists. Create multiple lists, automatically group items into categories, and share your lists with friends and family. Save your favorite recipes and use them to create lists. More details about the app at http://level68.com/glist and you can get the app from iTunes Store. SMART LISTS: Start typing an item name and the app will suggest relevant grocery items. Choose items and the app will automatically add correct category and units. Sort items by category or drag items to reorder. Make copies of a list and manage multiple lists. The autocomplete functionality for items is implemented using Levenshtein edit distance algorithm to allow for super fast rendering. The app builds up knowledge for items as user adds items to lists and this allows for personalized suggestions in autocomplete feature. SHARED LISTS: Share your lists with friends and family and collaboratively work on lists. Add items, cross off items, see updates in real-time, and get instant change notifications. The user identity is verified using Facebook OAuth and the server maintains a sharing graph between users. This allows for seamless N-directional sharing of lists. The app makes use of APN notifications to inform the user of list updates as they are changed in real-time by other users. RECIPE LISTS: Grocery Listr App allows you to create recipes in addition to shopping lists or grocery lists. A recipe is a special kind of list that gets included in the smart search invoked when you enter grocery items to any list. Add a recipe to a grocery list, and the correct quantity/amount of recipe ingredients will be added to your list. The app comes loaded with default recipes, make any list a recipe by turning ON recipe slider.

Read more

Nginx, Node, MySQL on VPS

This is a writeup to setup full node stack on a VPS instance. The min memory requirement for the VM is 256M, but ideally should be 512M or higher. I’m currently using VPS instances from www.ramnode.com. It describes how to setup a VPS (virtual private server) to run Nginx, Node.js and MySQL on CentOS 6.x. Here’s a quick overview of how to secure a VPS (virtual private server) running CentOS 6.x and configure it (1) Secure the server (2) Setup iptables (3) Setup MySQL (4) Setup Nginx (5) Setup Node.js

Read more

Stock4Q 2.0

Stock4Q 2.0 is a rewrite to convert the original UIWebView based app to a native app. It took me much longer to get back to the rewrite; native apps were the new hip thing 2 years ago, but better late than never =).

Read more

Node.js and JavaScript

Functions can take a callback and invoke upon their return value. As a programming style developer should think that a function is never allowed to return to the caller, instead it passes on control to the callback function passed as an argument to it. This provides and effective technique for non-blocking programming. In functional programming, you pass functions around as data, shuffle them around and execute them when needed.

Read more

Configure Sendmail

Configuring an email server to not get flagged as spam sender is no small feat, but these small tweaks will help your email server cross the hump. It’s not a complete configuration guide for sendmail but a collection of few healthy tweaks that should put your email server in better light when viewed by Google, Microsoft, Yahoo and others.

Read more

InfaCloud Mobile App

Informatica Cloud Mobile 2.0 is now live at iTunes Store. Informatica Cloud Mobile enables you to remotely monitor your Informatica Cloud jobs and take action on them from any place, at any time using your iPhone or iPad. Informatica Cloud Mobile works with all Informatica Cloud editions: Informatica Cloud Basic, Standard, Enterprise and Express. This is a complete revamp of the mobile app and mirrors the new design direction for Informatica Products. The design is also in-sync with iOS 7 updates and looks like the whole world is going flat and gray. Hey, at least the dots in the logo use primary colors and we do have red/yellow/green status icons. It’s been a couple of years since we last heard about native versus HTML5 for mobile apps. Note, in this case when I say HTML5 it implies the rendering is done using UIWebView, but the actual CSS and JavaScript is packaged within the app and most of the HTML is dynamically generated in JavaScript or Objective C. So it’s not a website that can be viewed from within an app.

Read more

Ghost.js on CentOS

Ghost is a clean blogging only software with minimalistic design aesthetics and responsive web design. It comes with pretty decent functionality out of the box and its themes can be extended easily using handlebars. The bhira.net blog is running on Ghost.js and I wrote this post as a recollection of the steps I followed in setting up this server. This post describes how to setup Ghost.js blogging software on a CentOS server. These instructions are meant for a production server and will use MySQL for storage and run nodejs using pm2 (process manager for Node). Nginx is used as a proxy server for nodejs.

Read more

Nginx, PHP on VPS

This is an update to the original post for setting up Apache, PHP on CentOS. Last year has been great and there is an abundance of vendors providing VPS on the cheap. My goto website for checking the latest on VPS vendors is www.lowendbox.com. For this post I went with a tiny 128MB VPS from www.ramnode.com. This server setup is for Cent OS 6.x with Nginx + PHP-FPM + MySQL. It describes how to setup a VPS (virtual private server) to run Nginx, PHP and MySQL on CentOS. The VPS uses a tiny amount of memory (total server memory is 128MB) and is running on CentOS 6.x. The intent is to setup a fully functional server that has been secured using iptables and configured to use Nginx, PHP-FPM and MySQL for production. It uses CentOS services to manage all the applications and is configured to use log rotation.

Read more