RSSAmplifier

Blog

The Code Artist

thecodeartist.blogspot.comRSS feed ↗25 posts

Latest posts

Cost-Effective Communication

Do you hate messaging someone for a quick clarification, and waiting and praying that they see the message, and then anxiously staring at "X is typing..." for several minutes ? Do you find it irritating to setup calls/meetings just to explain a tiny detail? In modern teams that believe in "Agile" and "Open Communication", a common trope is... When someone gets stuck or needs help, then quick…

Tools to Fix a Perceived Lack of Leadership

Wondering how to be an influential servant-leader, and grow productive teams? Did you notice certain teams repeatedly miss sprint-deadlines? Do you sense that the team-members appear to lack motivation? Here's a theory that can explain this (and a potential fix).

The Impact of Alchian-Allen Effect on Software Development Teams

While reading about the toxicity of 30-year mortgages this weekend, i came across the Alchian-Allen Effect . What is this Alchian-Allen effect? Imagine a fruit F grown in city-A. Let's say the higher-quality of fruit F sells in city-A for $2, whereas the lower-quality of fruit F sells in city-A for $1. Based on the fact that higher-quality of the fruit sells for twice the price of the…

Watch Bonds traded on NSE India - Part1

On the website of the National Stock Exchange (NSE) India, the details of various Bonds traded on the exchange are published. Anyone can view this publicly available data... ...on this page which is updated in real-time (or near real-time). Sufficient to keep an eye on numerous bonds traded on the exchange. However, unlike the stock of a company that trades under single symbol on the exchange,…

Commoditise the Supply-Chain, Improve your Life

What do the following have in common?… Microsoft in the ’90s Google in the ’00s Amazon in the ’10s Atlassian (makers of JIRA, Confluence) Uber Elon Musk They all successfully commoditised the supply chain in their domain. Commoditising the Supply Chain is a simple, yet powerful approach to disrupt an existing status-quo. Numerous companies have successfully employed this strategy in various…

Bottom Halves on Linux

Bottom halves on Linux

Optimise project scheduling using CD3

How to measure value? CD3! Optimise project scheduling using CD3 - C ost of D elay, D ivided by D uration (a.k.a. WSJF - Weighted Shortest Job First) Release-planning, sprint-planning, task-scheduling - all require a metric to prioritise between mutiple activities. A simple strategy like higher-business-values-tasks-first does NOT guarantee the most optimal schedule for a team/organisation. Cost…

Effort Estimation

[VIDEO] Importance of Effort Estimation and how to get it right. A talk on Effort Estimation at ScrumBLR 19th Meetup and BarCamp Bangalore Spring 2018 6 REASONS why Estimates tend to be wrong! A newer updated version of the complete slide-deck is now available for free (CC-BY-SA). Download Effort Estimation v2.

git gc, loose and packed git objects

Intro: Recently during lunch, a bunch of us started discussing git internals. One popular point of contention that came-up was how git stores the incremental changes internally? The Question: Does the .git subdirectory contain: - compressed diffs that apply on the original version of each file? OR - compressed copy of each version of each modified file? The Answer: Different blogs appeared to…

Git prevision

Need to quickly check a previous version of a specific file?... Do not want to switch the entire repository to an older commit and back?... A combination of git aliases/awk/shell-functions to the rescue Here is a quick and intuitive way to checkout a older version of a single file in git . Basically the command does a git log on the specified file and picks the appropriate commit-id in the history…

Use-Case is Everything

The importance of a proper requirements gathering process, including detailed use-cases at the beginning of the software development process is often underestimated. Common problems like feature-bloat, schedule-overruns, customer dissatisfaction are easily avoided by mandating during the requirements gathering stage, the preparation of an artifact containing a comprehensive list of detailed…

MAX_JIFFY_OFFSET: msleep() beyond infinity

Ever wondered what would happen if a driver in the Linux kernel were to invoke Buzz Lightyear's oft-quoted catchphrase? If not then today is your lucky day, you can ponder over this million-dollar(price of Lightyear's left wing-nut :P) question safe in the comfort of the fact that the definitive answer is only as far as a couple of clicks of your mouse-wheel. NOTE : This article discusses the…

Sensors on Google Glass

Recently Google has shared the Linux Kernel source for the firmware running on the Google Glass . Having grown tired of watching online reviews about the monotonous "Glass this, glass that" voice commands, i was curious about the support for o t her forms of inpu t. (read gestures). A quick peek into the innards of the kernel source revealed quite a lo t... FACT1. Google Glass runs on Texas…

Internet Radio : Part1 - Shoutcast Protocol

NOTE: If you spent the last decade 100miles below the surface of the earth studying the growth of algae under an antarctic glacier, then you will be surprised to learn that we can now listen to radio over the internet. Just like tuning-in to particular frequencies for particular stations in the olden days; now we can "tune-in" to specific radio stations over the internet. Without further ado, lets…

HDD, FS, O_SYNC : Throughput vs. Integrity

Today we will spend some time over filesystems, block-devices, throughput and data-integrity. But first, a few "MYTHBUSTER" statements. #1: Even the fastest HDD today can do ONLY 650KBps natively. #2: O_SYNC on a filesystem does NOT guarantee a write to the HDD. #3: Raw-I/O over BLOCK devices DOES guarantee data-integrity. Hard to believe, right? Lets analyse these statements one by one... The…

SATA hotplug : Add/Remove sata HDD in a jiffy

Its not common knowledge that SATA HDDs are capable of being hot-plugged into almost any modern PC. However using them in a plug-n-play manner like portable external USB-HDDs is still not common. Here is how to use your SATA HDD like an portable HDD. Tested on: - Ubuntu 11.10 - DELL Optiplex 380 - Seagate Barracuda 1TB (SATA). 1. Connect the SATA HDD to host PC. (sata-bus + power) 2. Scan for new…

5 ways to improve HDD speed on Linux

LINUX LINUX LINUX LINUX LINUX LINUX LINUX LINUX (If you still think this post is about making windows load faster, then press ALT+F4 to continue) Our dear Mr. Client Its a fine sunny sunday morning. Due tomorrow, is your presentation to a client on improving disk-I/O. You pull yourself up by your boots and manage to climb out of bed and onto your favorite chair... I think you forgot to wear your…

Omnivison ov3640 i2c sccb

TASK : Write a device-driver for Omnivision ov3640 camera Timeline : A.S.A.P (is there any other way? :P) For the aptitude champs out there, here is a quick one: Q. If you are sitting facing west and running I2C at 0.00000000055kbps and a bear appears in front of you, what color is the bear? Not sure? Read on... DAY 1 : Initial study A bit about ov3640 : The ov3640 (color) image sensor is a…

Android Double-buffering, Page-Flip and HDMI

(a.k.a The case of the disappearing charging-icon) The following is an account of the final development stages of an android phone, which for obvious reasons will not be named. The bug in itself was a very simple matter and the consequent fix too. But the entire process of discovering what exactly was happening was quite fun. (Ya right! tell that to my manager :P) The android phone, i was working…

[patch] [resend] Preparing a modified patch

In case of any collaborated project (eg. linux-kernel), often after submitting a patch for review, we often receive several comments and need to make appropriate changes and generate a new "version2" of the patch containing the changes. If we are using Git for revision control, then the entire process becomes a snap. How to prepare a modified patch for resend in 5 easy steps : STEP1. git rebase -i…

Android Sensors and Location based services

Here is the talk i presented about Sensors and location based services on Android at B.A.(U).G / BLR-DROID. Felt awesome talking to people, answering Qs about nGPS. Download Sensors and location based services on Android

Booting Android completely over ethernet

When developing embedded-systems, initial development stages often involve huge number of " Modify-Build-Flash-Test " cycles. Test-Driven-Development methodology further promotes this style of development. This leads to a break in the "flow" at the Flash stage. Flashing the device with a newly built set of binaries interrupts the otherwise smooth " Modify-Build-Test " flow. Also errors tend to…

Why __read_mostly does NOT work as it should

In modern SMP(multicore) systems, any processor can write to a memory location. The other processors have to update their caches immediately. For that reason, SMP systems implement the concept of "cacheline bouncing" to move "ownership" of cached-data between cores. This is effective but expensive. Individual cores have private L1 caches which are extremely faster than the L2 and L3 caches which…

nGPS : Location fix without GPS

NOTE: Skip this post if you do NOT live on planet earth. This is one of the ideas that i hit upon when preparing for a talk Sensors on Android @DroidCon2011 . It is an unusual application of the on-board sensors present most Android devices. Due to lack of time i was unable to present it in much detail during my talk. So here goes... nGPS (NO GPS) is a way of obtaining a location fix without using…

Tonight's the night : ICS

Two weeks after ICS was released, finally synced-up the entire source. 6GB. Gave a repo sync and woke-up and it was done! Sweet na?... A good thing with ICS is that pandaboard is supported as-is. This means that i can ... $ source build/envsetup.sh $ lunch full_panda-eng $ make -j4 ...and i'm done! :-) And so i have. Estimating 4hrs for a build on my "old" pc. Tonight's the night... ;-)