Posts

Showing posts from 2016

My view on Security

People in the Software Industry seem to be quite a bit bothered by the notion of Security. Security seems to be this ooh-so-magical castle that's innately "more important" than anything else that your company does and any and all pain and sacrifice demanded at the altar of security is justified (because oooh! Users! & Privacy!!!). Well, let's face it - security is a pain... a massive pain that provides very little reward in return. Security is like brushing. Do it once everyday and you'll be happy, your teeth will be healthy and you'll have a long life. And that's all the importance it deserves.  ACLs are like flossing. You know you should be doing it, but you keep putting it off as long as possible. ACLs give you a sense of security, a warm fuzzy feeling of being in control. An easy way of saying - yeah, we know what we're doing - look! ACLs! And every single day, an engineer's creativity dies a little bit when he or she spends 3 hours trying

I love my lawyer lyrics - Ofelia K

Black suit... morning... wakes up... window...  His face... got it covered... bouquet. I want your pheromones, messing with my hair on my time. Feeling self destructive, I want someone who wants to fight. Nervous bloody nose, smiling for a poloroid again. Let me be your witness, everybody is looking for a way out, I want in. I wanna lose control x 4 I love my lawyer, my angel in a black suit. Looks like he's mourning, everytime he wakes up. If you were my age or close to my age, anywhere near my age, I would marry you.... You, whoo oo ou. I want you in the shadows, want you in the blinding light of day. Nothing fricking matters, tell me do you feel the same way. I wanna lose control x 4 I love my lawyer, my angel in a black suit. Looks like he's mourning, everytime he wakes up. If you were my age or close to my age, anywhere near my age, I would marry you.... You, whoo oo ou. I wanna lose control, Do you ever feel the same

Advice

"Never base your life decisions on advice from people who don't have to deal with the results." "Don't make a permanent decision for your temporary emotion." "The people with the best advice are usually the ones that have been through the most." "Sometimes we need to be hurt in order to grow, fail in order to know, lose in order to gain, some lessons are best learnt through pain." "When you say yes to others, make sure you're not saying no to yourself." "Forget what hurt you in the past, but never forget what it taught you."

The Principles of Leadership

You know... over the past many years in software development, I've seen and gone through several projects and seen a bunch of teams do their work. I've worked with several managers and directors and I've learnt a few golden principles of leadership: 1. You need to be a master of the area relevant area that you're going to be working on. 2. Lead by example: set high standards and then meet them. The second part is critical. 3. Be the hardest worker on your team. 4. Have a clear vision and work towards it. 5. Know your goals. 6. Do not get sidetracked. Sidetracking is a killer disease. 7. Have a heart. A leader doesn't remain a leader if he / she doesn't have a heart. Cheers! Divye

What is Software Quality?

"Software quality isn't really getting 90% code coverage, test cases for the domain, formal proofs or conforming to APIs and specs. Software quality is defined by the sustained rate of change a codebase can support through the promotion of clarity of thought and fluency of execution."

About me

I love to create beautiful things with elegant code. I particularly like low-level optimisation for bare metal performance and systems programming, but I also enjoy high-level functional programming. I prefer a strong type system over excessive unit testing and I prefer common sense over agile development methodologies. I am mildly allergic to buzzwords. Data should be immutable. -- Ruud van Asseldonk, https://ruudvanasseldonk.com/ Sums up my feelings completely.

Features that I wish C++ had out of the box

As some of you might know from my last post , I've recently joined LinkedIn after 4 years at Google.  LinkedIn is a Java company through and through. It's not a bad thing: it allows the company to consolidate its efforts and spend its resources wisely. The flip side is that everything assumes that Java will be around. I've spend the past month ramping up on the tooling, infrastructure and code. Coming from C++, I've been pleasantly surprised by a few things: Refactoring Support Java has a mature IDE ecosystem.  IntelliJ is an awesome IDE, *much* better than Eclipse . Even though I'm coming from the Vim / Emacs world and I'm used to high productivity editors, there are things that IDEs can do for you much faster than you can do yourself (the big one is of-course extracting, moving and renaming methods). C++ needs to get its act together and expose ASTs for C++ code. There's a dire need to write tools that can automatically refactor parts of C++ code

Arranged marriages aren't so bad after all

"Arranged marriages aren't so bad after all"....can u elaborate? Ramnik asked me this question over chat and it was thought provoking... I've always held a few beliefs about marriage that I established after quite a bit of research (journals and plain old internet trolling). I can't really reference everything that I went through but these are the principles that I established for myself: Why an arranged marriage? In an arranged marriage, "you" are taken out of the picture while selecting a pool of eligible candidates... Your parents know you and seek to find people with a similar background, culture and most importantly values... Having shared values is super important.... it's very risky to have a marriage where the two partners have been brought up in such disparate environments that they value things differently (eg. would one of the partners consider it beneath them to help maintain the house? How do you treat parents? What is the role of helper

Crazy free hand drawing

Image
Divya and I had some free time. We spent it making this crazy free hand drawing. We did it turn by turn, each putting in a stroke or two from a blue pen. It's kind of reflective of the times. :)

Bye Bye Google... It was a great run.

Image
Today's my last working day at Google... Hi folks,    After 4 years, 1500+ CLs, 50 design docs, 15 major launches and 2 amazing teams, it is now time for me to hang my boots at Google. It's been an amazing journey and a great feeling to have touched the lives of millions / billions of people and I'm sad for having to leave all of this behind. I have learnt a lot from all of you: about life, about people and about code. It's been exhilarating and instructive and I'm very happy to have been a part of it.  Google is an amazing company, possibly a company that comes once in a generation. However, a new future awaits me at LinkedIn (just down the street) with different problems to solve and new people to meet. I hope the future for all of you will be just as bright. Wishing you the best. Do stay in touch! I'm sure our paths are likely to cross again another day. LI:  https://www.linkedin.com/in/divyekapoor FB:  https://www.facebook.com/divye.ka

Static sites on Github with a Custom Domain

I recently tried hosting a static site on Github with a custom domain. Github's docs on getting this done are unnecessarily confusing. Here's a quick snapshot of how to get this done quickly: I'm going to use the zigndog.com Github repo as an example. The custom domain is zigndog.com . You can just change the values in the 2 bash variables below and execute the same sequence of steps. Verify that everything worked by visiting your website published on Github: eg. http://divyekapoor.github.io/zigndog.com/ for the zigndog.com repo. If you have a different repo name, just use that along with your username: eg. http://${GITHUB_USER}.github.io/${REPO_NAME} Next, visit your domain's DNS registrar and add a DNS A record pointing to Github. The Github static IP addresses are detailed here:  https://help.github.com/articles/tips-for-configuring-an-a-record-with-your-dns-provider/ . For reference, at the time I did my configuration, they were: 192.30.252.153 192.3

India Inflation History 1958 - 2014

India's had some terrible inflation lately, I took some time to figure out the cumulative 2-year, 3-year, 5-year and 10-year cumulative price index (CPI) based inflation figures in the cumulative price index (CPI) over the past 56 years. These numbers are based on a dataset from inflation.eu. Here are the numbers: annual inflation (dec vs. dec) inflation 2-year trailing inflation 3-year trailing inflation 5-year trailing inflation 10-year trailing inflation CPI India 2014 5.86% 15.53% 28.43% 49.72% 124.06% CPI India 2013 9.13% 21.32% 29.19% 62.60% 119.66% CPI India 2012 11.17% 18.38% 29.60% 63.45% 108.77% CPI India 2011 6.49% 16.57% 34.03% 55.13% 93.80% CPI India 2010 9.47% 25.86% 38.07% 55.19% 91.38% CPI India 2009 14.97% 26.12% 33.07% 49.66% 80.91% CPI India 2008 9.70% 15.74% 23.30% 35.09% 58.09%