Cron-Dev Blog
“Alexa, Movie mode on”
To begin with, I hate remotes! Probably all of us do, and this post talks about how I eased my life a little using a bit of electronics along with my Alexa Echo dot...
GeoMapping and the Travelling Salesman Problem
Solving the Travelling Salesman Problem to make mapping Farms using Geotagging easier and intuitive for users.
This application uses the 2-opt algorithm for solving TSP and runs on a mobile phone.
Add caching to speed up your site: Even if you think it isn’t needed
In this post, we will explore solving the n+1 problem using caching. The tools used are Django ORM with which makes the problem becomes common, and the Cachalot library. Writing systems at a start-up...
Failure resilient model using circuit breakers for Microservices
This one is a long pending article on my drafts. I gave this as a talk roughly a year ago at Rootconf, but got buried under other things. If you’re thinking, why microservices? Does...
E2E tests for Ionic using Appium (or any other Hybrid app)
Ionic is a popular framework in the world of hybrid app development. Sadly, it is well known that app testing isn’t really a major thought given by the framework designers. I believe it makes...
Timeouts with Java 8 CompletableFuture: You’re probably doing it wrong
Timeouts with Java 8 CompletableFuture
Home NAS and VPN with Odroid XU4
A month ago, the above title was a mystery for me too. I started with a very simple goal. In layman terms, to be able to wirelessly access my files over home WiFi. Why not...
Making my vehicle smarter: Anti-theft GPS tracker system for Gixxer SF
I am back here with a problem that kept me excited for a long while: Setting up a GPS tracker system for my bike. I love motorcycles and I drive a Suzuki Gixxer SF....
Get Set Fly – Part 1
Here’s to my passion about knowing all about planes, how to build and fly one. This series is going to be helpful for any beginners out there looking to start with building an RC...
Automatic Python Linters and Formatters for Arcanist
Linting code is important when working in a team, code written by others starts becoming familiar and easier to understand. Your team will possibly be divided on a big set of important aspects(tabs or...
Request Interceptor Cache for Ionic Angular
I wanted a simple, non-obtrusive Caching strategy for my Angular app. The aim is to provide a fast and a offline compatible experience to my app users in the most simplistic plug-and-play fashion. This...
Dynamically aggregate date charts
Recently, we were working on representation of Timeseries data. What we had in mind was to give the user an ability to choose the start and end date and represent the data related to...
Angular Design pattern: State management with URL params
The suggested mechanism of dealing with state in Angular is: Pass the state to a component from previous using @Input directive. OR Maintain the state in a store which is decoupled from components. You...
Building better User Interfaces – Django Sortable Multiselectfield
We at LeanAgri stress a lot on making clean and user friendly interfaces. One of these obsessions helped us create an interesting extension: Django sortable multiselectfield The interface we were building needed inputs as...
Cloud telephony: An unrealistically overpriced service in India
TLDR: Don’t use Cloud telephony. Our team at LeanAgri has a high dependence on having calling solutions for our customers who are usually not comfortable with new technology such as apps. We require 2...
MySQL: Charset and Collation recommended settings
Let’s go through a humourous journey when setting up a MySQL database for our application. The story becomes much lesser funnier when you get to know that we had to go through this in...