Posts

Evaluating Order Management System (OMS)

For a retailer, order and inventory management used to be a simple exercise. Keep track of what sells in which store and replenish based on those statistics. Not any more. While multiple channels have ensured larger customer base and greater turnover, it has made managing orders all the more complex. However, with challenges comes opportunities. As a retailer, this increased scale allows one to differentiate oneself in the market and become more cost effective. An efficient order management system allows a retailer to achieve the following: - Minimize transport cost - Minimize inventory cost Below is a list of basic features under the above listed categories that an OMS should support. Minimize transport cost Pick up nearest DC based on shipping address Avoid splitting of an order by sourcing it from a DC which has all the line items Distribute fulfillment across DCs considering their capacity to ensure efficient utilization Club multiple orders in single shipment whereve...

Migrating to Grails 2.4.3

A lot has changed since I last used Grails (v1.3.2). I had developed a project that I want to use with latest Grails version. The migration isn't easy. So here's a list of steps to perform the migration (cf. http://grails.org/doc/2.4.x/guide/upgradingFrom23.html):  Change Grails version required by application in application.properties. app.grails.version=2.4.3  Dependencies are no longer managed in application.properties; instead BuildConfig.groovy is used. Make sure Maven repositories are NOT commented.   repositories {         grailsPlugins()         grailsHome()         grailsCentral()         // uncomment the below to enable remote dependency resolution         // from public Maven repositories         mavenLocal()    ...

ThingDoc: Automated instruction manual

Image
 Java world has used Javadocs for variety of purposes for a long time. It has served the developers well for technical references. What if the same concept is used to generate instruction booklet as well? ThingDoc allows you to achieve this for more generic use-cases like installation steps for software, building steps for hardware and even recipe book for food enthusiasts!! Source: https://github.com/josefprusa/ThingDoc

CoAP compliant wifi enabled IoT prototype

TI launchpad based on MSP430 low power MCU and CC3000 wifi chip provide an excellent platform for an IoT prototype. The demo shows Copper (a CoAP client available as a firefox plugin) on laptop communicating with simple CoAP server on MSP430 launchpad. Code : https://github.com/atamariya/iot Demo : https://www.youtube.com/watch?v=pLq7TKQihKI

Internet of Things -2 (Security)

IoT devices have a variety of protocols to interact with each other. These include bluetooth, X10, zigbee, insteon, Radio frequency (RF), NFC, Infrared(IR) etc. Traditionally to bridge the gap between internet and IoT,  people came up with Gateway architecture. The devices talk to the gateway using proprietary protocols. The gateway then relays this information on the internet. I call this hammer and nail architecture to highlight the deficiency of the design. One always need both hammer and nail to get started. And since each manufacturer uses his own proprietary protocol and no manufacturer produces all the devices that you might need, one ended up with several gateway devices. And if the maufacturer goes bankrupt or stop producing/supporting those devices, the devices end up as garbage. Additionally, one would like complete control over access to a device restricting usage only to authorized users. Security wasn't a major issue when you had only single device ...

Internet of Things

Internet started as a network of computers talking to each other. As evolution goes, each network defined it's own languare for effective communication (targetting a specific purpose) leading to a plethora of protocols like FTP, telnet, SMTP, POP3, IMAP, SNMP etc. This was fine till there were only a handful of hosts providing these services. But how could one talk to hosts if one didn't know about their existence? With number of hosts growing, a need to organize the information was felt. Hence came Archie, gopher and WAIS. However, it wasn't till HTTP or the World Wide Web (WWW) that Internet reached its full potential. Before that, as popular perception goes, computer, and by extension, Internet was only meant for Geeks / programmers. So what was it about WWW that changed how people looked at computers. - It is easy to get started One need not remember the host. One get started from a portal like Yahoo or search engine like google and reach their destinat...

mbed API support for MSP430

I've started an effort to port mbed API to MSP430 https://github.com/atamariya/mbed . Though mbed is primarily targeted towards ARM, the API is still useful. - The C++ API is very clean promoting understanding and re-usability (e.g. SPI example here https://mbed.org/handbook/SPI ) - Good documentation and community involvement in developing libraries. - Code size and performance are important. However, the first focus is functionality. The good thing is - once performance improvement is done at HAL or API layer, it is immediately available to all the programs using it with just one re-compile.