I'm now an Estonian eResident!

Lifehacks is doing great.
I make money off of it.
And so I pay heavy taxes in India.
In return, I receive terrible infrastructure and pay extra for private services.

Estonia on the other hand, a country far far away wants to help me set up a startup, all digitally without me ever having to physically be there.
I don't have to pay taxes if I re-invest.
Starting a company is honestly one click, €1,000 in the bank, and one flight to Delhi away.
Why wouldn't I?

Plus it feels pretty cool to login with a key card :D

Waiting on an idea

What's he doing?

The 22-year-old was sitting in an oddball position - lying on his back with his legs pinned against the wall forming a right angle.

He has been acting weird all year, says he's waiting for an idea to pop out of thin air. This pose apparently rushes blood to the head, and that's supposed to get the brain working. Doesn't seem like it's working!

The young man had seen it on Power Rangers Time Force as a child. The green ranger would handstand to have blood circulate in his head to think. And he probably thought if it worked for the ranger, it most definitely should have worked for him.

This is the least of his crazy ways though! Earlier this year, he went on a month long vacation with a $30 Nokia phone to call back home because constant interruptions might disturb his flow of thought.

Our character of concern on a month long break! Narrator:
But how'd that work out for him you ask? Well, the 22-year-old came…

New year, New Project!

Ah! I'm working on a fantastic new idea, and I am so happy about it.
Months ago, during depressing November when the winter gloom struck me hard, I wrote a draft named Waiting on an Idea. I never published it because it wasn't good enough. Everything that I was doing then just didn't seem good enough. The people I was around, the work I was doing, my side projects, nothing seemed worth my time. And so, I tried writing a comical blog on me doing all the strangest yoga poses and sideway handstands, eagerly waiting for an idea to magically pop in my head to turn my life around. But the blog post wasn't good enough, and so I just left it as a draft.

Quite literally me waiting on an idea.
Another 50 blog post drafts ago, I wrote about a novel interface to using your phone; now I didn't suggest what it would be, but I just knew if there is a new way to interact with your phone, you have a sure shot at the millions. And the idea has finally shown itself!

Now, in a parall…

Level Unlocked: The right side of Bangalore Airport

As a child I used to love playing first person role playing games on my Play Station. My favorite of all of them was The Simpsons: Hit and Run. You're in the Simpsons world and you take on the role of any of the Simpsons characters at various levels. You start off with a limited world map; you're restricted from entering future level areas, and if you try to cross those with your player, all he does is run in place blocked by an imaginary transparent wall. As you progress, more and more of the map opens up and what was once an imaginary wall is now an area you can freely roam in.

The invisible barrier. Precisely this.
Post Baggage Drop and taking the escalator to have a security check, Bangalore's right side of the airport is the International airport - a part of my world's map that I just couldn't enter up until yesterday. For two years I've taken the left turn right after baggage drop and have looked at the right with a little sigh - knowing that I will some d…

If I ever start a hardware company

.. I won't. I'm certain I won't. tl;dr, this just a rant of a whole lot of glaringly obvious mistakes we've made at the two product companies I've worked at.

Hardware is hard because:
there's no version control. You can't go back in time to checkout what's changed since it was last working yesterday takes time to fail. It's hard to simulate time. Imagine testing a battery - you really can't do anything but wait for it to run it's course through time to see if it works in the long run. And also because your work place always looks like this.
But if an idea comes up that motivates me enough to do it, here's a list of things to take care of. These are actually pretty obvious in hindsight, it's hard to see how I've seen companies mess it up, twice.
All this assumes you have a market already, and the problem isn't acquiring customers, but figuring the tech out. For most companies, I'd argue the problem is the other wa…

Two years at Tonbo Imaging

This year, compared to last year has been a lot more of software development and making the cameras a finished product - a device that can be sold with the highest quality standards. If you've worked on taking a proof-of-concept stage demo unit to a high-grade production ready, you'd know how time-consuming this is.
Media Libray for Android - Lib Graf
This is probably the company's first Media Library. A lot of the older systems use the same code copy-pasted from one git repository to another for media streaming or creating viewer applications with minor changes for different products. This a step towards stopping that and is specifically for Android devices. Works on Android Handheld and Wear devices.
Read more at SDK & Camera-Client Architecture
Tonbo has made over 50 different camera devices ranging from 80-pixel tiny cameras to handheld units to ones that go on helicopters. There's a lot of similar code over dozens of repositorie…

Limited by Nature

TLDR; We've been told the sky is the limit to imagination ever since we were kids, but really, all we can think of is limited by what we feel, see or experience from nature.

What makes us human? Is it our ability to feel happy, pleasure, sorrow, those triggered chemicals in our body we call emotions? Or is it our consciousness, our ability to think? We put a great deal of stress on our ability to philosophize, our nature of questioning everything we've been given - the only species to question it's existence - to think of genius or tackle things from a new angle and work collectively towards the betterment of human society.

I'm convinced by my will to not just happily accept that all-we-see-is-all-life-is, that the space we live in, the way we perceive time, the taken-for-granted lifespan given to us - none of it is as simple as we see it, that it probably is a form of a simulation and we'relimited by what we've been programmed into thinking. It's just that…

You say you want to use your phone?

If you have a brother, you know the satisfaction derived from constantly nagging, pinching, purposefully singing loudly when he's asked you to stay shut because he's working on something, saying why to everything on and on and on, asking silly questions, and asking them on repeat, obnoxiously staring at him, etc. etc. Well, now that he's in college and I live in Bangalore, I can't do all that. But I can make his phone unusable!

Paaras: "Bro. I'm really busy. Don't annoy me okay?"
Rish: "Of course not brother dear."
Paaras: "What?"
Rish: "Annoy you I will, and annoy you I shall. B|"
Paaras: "Go away."


Another 36 minutes later.

I wrote a Python script that mimics touch commands over adb to your Android device. It called my brother every 10 seconds, making his phone unusable when he was connected to the Internet. Except of course, he blocked me after this.
The script on Github.

An Architecture for a hardware-software system II

This is our solution at Tonbo Imaging to the question I put up here.

Very broadly, I'll break our solution into:

1. The various components and gluing them together
A whole lot of Managers that handle various aspects of the software, the Views, a CommandParser, and MessageResponse Queue, all glued together by an internal RxBus - asynchronously sending messages from various threads to one another.

2. Device Capabilities + Autogen UI
Each camera broadcasts its capabilities, a json file containing a list of commands it can take. Each command contains its parameters, their datatypes and the list/range of values they can take. A lot of the UI is autogenerated from this.

3. Versioning
This was fairly tricky and we're still not 100% sure we're happy with what we have. We have to take care of the versioning between various components:
- camera OS ⇌ camera software
- camera software ⇌ clients
- camera software ⇌ web

4. Camera-Graphics-Display-Streaming 
I'll add the graphics librar…

An Architecture for a hardware-software system

You are to design a single camera software, various client applications, and a communication model for a family of cameras. Each camera runs the Android OS, and will be crafted to make several variants; each of which takes up different forms. Each camera has various channels and interfaces to communicate with.

Variables in the camera variants:
headless or on-device display
ie, the camera may be wireless only; it may have an LED as an indicator, or it may have an OLED or LCDperform on-device analytics
not each camera is allowed to perform on-board analytics; some could do stabilization, some face detection, some motion detection, some may perform all. This is limited by what algorithms the customer sensor resolution, fps, camera lens
every variant has a different sensor and lens specificationmultiple camera sensors
some cameras might have multiple sensors; thermal, near IR, or visible lightmotor-driven PTZ
the camera might have a pan-tilt-zoom driven by motors... and many more th…