Packer’s Amazon EBS builder exhaustively lists the IAM permissions it requires to operate correctly in AWS. However, at the time of this writing, there are a few additional permissions that may be required depending on your use case, but are not documented.

Image for post
Image for post


You use Packer’s EBS builder for building your AMIs. Your environment is configured with AWS credentials that contain all IAM permissions listed by the builder.

You’re building a new AMI. To achieve this, Packer creates an EC2 instance for provisioning. This instance needs to access another AWS service. For example, it needs to pull some cached packages from S3. …

Image for post
Image for post

It was recently brought to our attention that the name Solium is a registered trademark. At the time when I first started working on a rule-based linter for Solidity, I had higher priorities than thinking of a name and as a developer, I wasn’t really aware of all the laws that exist to protect brands out there. I still am not. My idea for the linter’s name was that it should be a short, single word available on NPM. I didn’t think beyond that.

But given the facts that we’ve recently learned, we decided that the best course of action for both the project and its users will be to rename Solium in the least disruptive manner. …

Today we’re releasing the official security plugin for Solium.

Image for post
Image for post

Although Solium’s core focus is both style and security of your Solidity Smart contracts, we chose to keep the security lint rules as a separate plugin for the sake of simplicity. The rules have been taken from Consensys’ Recommended Smart Contract Practices and Solium’s Rule Wishlist.

Starting v1.0.1 this plugin comes pre-installed in Solium so you need not do anything extra to apply the security rules!

So the simplest way to get started is to npm install -g solium@v1-beta , then cd into your DApp and run solium --init . The created .soliumrc.json will include the entry for the security plugin. …

Solium is an open sourced linter to identify and fix style & security issues in Ethereum’s Solidity.

We started building Solium with a vision that developers can deploy smart contracts with complete confidence of code quality and security. Over the past year, we’ve seen the tool grow to be trusted by some of the biggest names in the blockchain ecosystem like Augur, Aragon, ConsenSys & Zeppelin.

Today, I am excited to announce that Solium v1 is finally out in Beta!

A while back, there was an extensive discussion on which direction this project is headed in. …

As we prepare to release Solium v1 , a few things have been on my mind for a while.

The update introduces some breaking changes, comprises of a new core rule format and an automatic code formatting mechanism. But most importantly, the new Solium supports sharable configs and plugins. If you’ve worked with ESLint, you can familiarise yourself with these features with minimal effort.

The Problem

How open-sourced Sharable Configs and Plugins would work is that a Developer would have to publish it as an NPM module following the naming convention solium-config-<config name> for sharable configs and solium-plugin-<plugin name> for plugins, exactly like ESLint! …

I’ve been working with an excellent team on Fragments — a voice-controlled Personal Assistant that remembers everything so you don’t have to.

The app aims to make juggling of information that we consume on daily basis a painless process. Its meant for executives, entrepreneurs, journalists and almost anyone who has more things to keep in mind than minutes in a day.

A little background:

I personally feel overwhelmed with information that occupies my mind even though I don’t need it immediately — passwords, the block no. …

This is the first in a series of posts about how we’re building smart & scalable technology that powers Fragments

A Bird’s eye view
At Fragments, our mission is to be the complete memory offload product and keep your personal information organised for easy recall. At the heart of this mission is the system that extracts important information from raw user input (text for now, but we plan to expand to multimedia in future) to keep all their data highly structured. So here’s what happens when you hit “Send”:

  1. Your message, along with your authentication information, travels to our servers via https and hits our API.
  2. It then gets dissected by NLP Algorithms. Our API communicates with Wit apps trained by our proprietary data sets to extract key data pieces and recognise user intent (whether they want to store a memory or retrieve one). …

Fragments is an AI Personal Assistant that remembers everything so you can relax!

Image for post
Image for post

Things to take before you leave for the airport
You woke up late. Your flight is in 2 hours. Happens with all of us! Now you’re in a hurry. So grab your Passport and Visa, wallet, bag and run out to get the cab. But are you sure you’re not missing anything?
Maybe your travelling kit? Or the present you bought for your daughter?
We’re sure you won’t when Fragments sends you a reminder notification right before you leave!

Image for post
Image for post

Your office WiFi password
A new client has just arrived at your firm and needs to connect to the internet. Quick — what’s the WiFi password? Is making them wait while you call the reception really the best way? Don’t tell us you’re going to memorise it for the next time, you could spend that time being more productive or simply relaxing. How about you have your personal assistant recall the password for you? …

I was working on my personal assistant Fragments and needed some date parsing, so I went to

Wit Entity datetime has a very helpful property called grain, which tells us the precision with which the time was described by the user.

For eg-

“I met Rachel yesterday” has a grain of day whereas “I met Rachel yesterday at 8” has grain of hour. Similarly, “I met Rachel yesterday at 4:32” has a grain of minute and so on.

Here’s why you should care about grain: Suppose the user sends a message “Our School’s founders’ Day is on Tuesday next week”. The datetime entity contains a Date representing Tuesday of next week (let’s say 27th December, 2016). But what about time? Since user didn’t describe the exact time, Wit sets the time to 00:00:00 by default. Now if they ask your bot about founders’ day, the bot’s reply would be “on 27th Dec, 2016 at 12:00:00am”. …

Before you begin working on a new project, always try to optimise your workflow.

This mantra has done wonders for me. A little extra effort at the beginning (which, believe me, seems like a complete waste of time) goes a long way in saving you a lot of manual, repetitive effort during the lifetime of your project.

So I’ve always been a believer of improving work flow, which led me to build a range of projects that help me improve it.

I recently started dabbling with Smart Contract development using Solidity. and what I‘ve realised is that despite all the hype and fast-paced innovation surrounding Ethereum, the platform itself is an uncharted territory. …


Raghav Dua

Site Reliability Engineer at |

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store