For posterity and beyondMon, 14th Jul '14, 10:35 pm::
Earlier today, Juliet and I were trying to remember the exact date something happened last year. We narrowed it down to a specific week and then figured out the specific date because we knew it was a Friday. It takes a lot of effort to remember past events, mundane or momentous, from just a year ago, let alone a decade. That's part of the reason I love writing this 'blog. Once I say "Today I went to the animal shelter and got two kittens" or "My car hit 33,333 miles yesterday at 1:23pm", it is remembered forever. This Saturday, Juliet took my car to go shopping with her friend and hit 111,111 miles. Thanks to technology, I can store irrelevant bits of information like this until the end of time. But not all bits are so trivial.
Four years ago, today was a day of mourning for my family when my paternal grandpa passed away. I wrote a few words about how I felt and have re-read them every year on this day. Almost a decade ago I wrote about the death of my maternal grandpa and the memories I had of visiting him during summer vacations. Sad or happy, exciting or dull, all I'm doing is writing down memories before I forget them.
Sometimes I don't write important details because I may not be ready to share it with anyone but I still like to write a bit so maybe later I can refer to it. The day I met Juliet, I wrote "Today turned out to be yet another unusual day" without even mentioning her. Eight months later, when she flew off to London to meet my parents, I harkened back to that unusual day when we crossed paths and set in motion the Universe's plans to create the cuddliest home zoo ever. Who knows what's going to happen in the future but it feels good to write things down so that some day, we can look back on a particular day and re-live it, even for a brief moment.
A sunny decade laterMon, 23rd Jun '14, 12:25 am::
What a busy weekend we had! Juliet and I are both halfway between introverted and extroverted. We love entertaining friends and family but we can only do that comfortably in small groups for a few hours at a time. We have been trying to plan a 50-60 people party at our house for three months now but have not made any progress yet. While we haven't been able to pick a date due to circumstances beyond our control (landscaping guys took too long, house projects got delayed because of damaged shipments etc.), I think even if everything was lined up perfectly, we would still be hesitant to get started because we're just not the big-party-for-no-reason kind of people.
In the meantime, we have been inviting all of our friends to come visit us any time they want. Coincidentally, a dozen folks visited us this weekend and it was awesome. It felt like Diwali back in India! My godson Jackson, his mom, and his cousin visited us Saturday morning so they could play with our home zoo. Then my buddy Brian came over for some serious table-tennis time, followed by Juliet's friend Karen and her three kids. Sunday morning my friend from Philadelphia Megan and her husband Chris dropped by to spend an idle day by the pool. In the evening, our friends Cary and Laura stopped by to bid us farewell before they move to Arizona this coming week.
Ten years and a week ago, I moved to Florida with the help of my buddy Arthur. For the past week, I have been trying to come up with something meaningful to write about the whole decade that passed by - words of wisdom, lessons learned, top 10 most embarrassing moments - anything to summarize the ten years of life I have built here. But now I realize that is pointless because it doesn't matter if I'm still driving the same car I bought in 2004 (I am!) or gained weight (15lbs/7kgs, mostly due to my awesome beard) or have lost friends or made new ones (who hasn't?). Life happens to all of us and while I made mistakes and learned or didn't learn from them, so did everyone else in their own respective lives. All I know is that ten years ago I was alone in the whole state of Florida and this weekend I couldn't find one minute of alone time to write this entry.
You have no email. Enjoy your day!Wed, 11th Jun '14, 12:05 am::
I used to fear ending up with a life where I would have a full, busy schedule. I was and still remain fiercely against living an eventful life where a lot of things happen every day. If a scheduling genie was granting three wishes, I would ask for (1) my email/voicemail inbox to be always empty (2) my to-do list to contain only one important item per day, and (3) absolutely no preset meetings or appointments.
Since I have not yet met a scheduling genie, my life continues to be a constant barrage of planned and unplanned events, tasks, commitments, and projects. Something is always going on. Be it house projects, work deadlines, or social obligations, there is something new happening every day. I have to maintain detailed to-do lists, from "server deployment plan" to "garage cleanup list" just so I can keep up with everything.
I am living the exact life that I feared.
But it's ok. I am getting a lot done in the meantime and I am slowly working towards a life that is closer to my ideals of doing just one thing and doing it right. Be it work or play, I avoid distractions and interruptions. I have never been a fan of multitasking. I don't check my phone when I'm having dinner or plan dinner when I'm on a conference call. Even though I am not in a position to live the idyllic leisurely life I want right now, I will never going to stop trying. I truly believe that nothing is more productive and beneficial than distraction-free single-minded focus, be it in work or play, business or charity. And a full, busy schedule is the antithesis of that.
Just one ticket pleaseSat, 24th May '14, 12:00 am::
In 2008, Iron Man I came out. I really wanted to go see it. I asked a few friends and nobody could make it. I asked coworkers and nobody could make it. I got bold and asked out a cute girl I knew and she couldn't go either. I went home and went to sleep early because I was so distraught. Over 7 billion people on this planet, a million of them in my own town, and not a single person wanted to go watch a movie with me.
But then suddenly out of nowhere, I thought, "Hey I can just go by myself. It's 10pm, late enough that chances of any embarrassing run-ins will be low, but not so late that I'll be late for work tomorrow." So I go out of bed, dressed up like I was going out with friends, bought a single ticket, and enjoyed the movie thoroughly. As I drove home, I called my best friend to say how great the movie was and that he should definitely see it. Next day I talked about the movie with my other friends and coworkers. I was constantly scared of them asking me "Who did you go see it with?" but surprisingly, nobody asked me.
Without realizing it, I had overcome my fear of rejection. The next day I told the same cute girl that I was going to the local mall and she should meet me there. She liked how confident I was and said why not. We had a great time at the mall and met up more often later. Soon she moved in with me, then we got engaged, then we got married. It's been the happiest six years of my life and I don't think any of that would have happened without that single ticket to Iron Man I.
I decided to write this down because I came across someone else online who didn't have a friend to go to the movies with.
We went to my old college friend Michele's wedding this weekend and had a great time. I'll post the photos soon.
Right now, we're in the middle of a lot of house projects: reorganize garage, level backyard, setup goat area, fix up bathrooms, and lots of minor upgrades. As soon as the goat area is ready, I'll share the pics.
Life's pretty busy with a lot of different things lately. Other than coding projects that keep me up all night, I've been dealing with a lot of boring but important paperwork for insurance, health, travel, and financial planning. I calculated that we pay more for insurance than any other expense except for taxes. We have home hazard insurance, flood insurance, mortgage insurance, health insurance, term life insurance, accidental life insurance, disability insurance, professional liability insurance, and auto insurance. On top of that, we pay for cellphone insurance (which I've availed of twice already thanks to my recklessness), pet health plans, and travel insurance for every trip we take.
Speaking of travel, now that I'm a US Citizen, I have to apply for a visa to travel back home to India and the paperwork for that is surprisingly exhaustive. I'm hoping that my schedule will become a bit more relaxed over the next few months once I've dealt with all of these tasks. Until then, it's just one thing on top of another every day.
This is NOT meSun, 20th Apr '14, 2:55 pm::
I don't know who this guy is but he is making me question my existence more than Descartes or Nietzsche ever did. For the first time in my life, I have found a doppelganger. Well, it was actually Juliet wondering what I was doing on a beach without her. It appears we both spend quality time on beaches flailing our arms around, wear garish clothing, sport a manly beard, and refuse to bow down to the tyranny of barbershops. To you Sir, I say "Congrats on being almost like me!"
The Goats have arrived: Marco & PoloMon, 14th Apr '14, 7:50 pm::
They constantly call out to each other when separated. Hence the names: Marco - Polo. Marco's the older black & white baby goat and Polo is the little waffles-colored kid.
The first four photos are from two weeks ago when we first saw them at a farm up north and the rest are from this weekend at our house. Right now, they're staying in a make-shift enclosure in the porch. Over the next few weeks, we'll setup a nice shelter for them next to the Prairie Dog and Rabbit enclosures in the backyard, and build a protection fence around the whole area so they can safely chomp grass all day.
I also uploaded the pics from our weekend trip to see family in Utah last month.
Enchanted!Sat, 5th Apr '14, 12:55 am::
Tonight, we went to see the comedy musical show Disenchanted with our friends Cary and Laura at the Straz Center in Tampa. I knew it was going to be funny but I had no idea it was going to be utterly hilarious. The play is a sarcastic take on the Disney's Magic Kingdom universe, comically yet bitterly mocking tropes like damsel in distress, prince charming, once upon a time, and happily ever after.
While I had read many positive reviews of the show prior to the ticket purchase, I expected the quality of the performance to be mediocre. Instead I was blown away by how beautiful the artists' voices were and how well the live orchestra performed. The lighting, sound, set design, and costume design were very well done, and although the theater and stage were small, it felt no different from any big budget Broadway show.
Guess whatSat, 5th Apr '14, 12:40 am::
Take a look at this cellphone photo I took at my friend Rick's house, peeking directly into his telescope. Try to guess what it is. Scroll down for the answer.
It's the sun through a special solar filter. You can clearly see the sunspots as the dark smudges.
Building an awesome home surveillance systemTue, 1st Apr '14, 12:10 am::
During the first year of moving into our house, we focused on function: fix what's broken, replace what can't be fixed, and make everything work as best as possible. The second year we focused on necessary furnishing and organization: bedroom sets, dining table, floor mats and so on. The third year we're splitting the upgrades - Juliet's in charge of paintings and decor and I'm geeking out on home automation and surveillance. I'm quite happy with the technical decisions I've made so far and would like to share what's worked for me:
Home Network: The cheapest, easiest, and most reliable way of controlling all the different systems in your home is over the good ol' LAN. Since every system in my house was going to be controlled via the LAN, the first thing I did was buy a powerful router: Netgear WNDR4500. In addition to having 4 Gigabit ports, the WNDR4500 supports dual band WiFi at 2.4ghz (usually 802.11g - good: long range, every WiFi device supports it; bad: all your neighbors use it, microwaves interfere with it) and 5ghz (usually 802.11n - good: better speed, less noise; bad: shorter range, only supported on latest devices). Connected to the router is my cable modem, couple of TP-LINK Gigabit switches and a TP-LINK Gigabit Power-Over-Ethernet (PoE) switch. If you want a solid home network, make sure all your core switches support 10/100/1000mbps and only use CAT5e or CAT6 cables. All my wired devices are connected to the TP-LINK Gigabit switches. The TP-LINK Gigabit PoE switch is connected to all of my wireless access points.
Wireless Access Points: Even though my router has very good WiFi connectivity, it does not cover my entire house and definitely not the yard. We installed four EnGenius EAP600 units around the house and porch so that almost every corner of my house gets blanketed with perfect signal strength. The EAP600 gets power from the Ethernet so mounting it on the ceiling is a very simple step if you have easy attic access. The best thing about EAP600 is that in addition to supporting dual-band WiFi at 2.4ghz and 5ghz, it supports band steering, "a technology that detects whether or not the wireless client is dual-band capable, and if it is, it will push the client to connect to the less congested 5GHz network." This means my iPad and laptops that support 5ghz automatically connect on that frequency while my older devices continue to work on 2.4ghz. The best part is that there is a single wireless network (SSID) to connect to. Having a good wireless network is necessary if you want to view the surveillance videos from anywhere in the house on any device.
Devices: Speaking of devices, I am absolutely in love with my iPad Mini Retina and highly recommend it as the remote control for your entire house. I find the regular iPad too bulky and the iPhone/iPod too small to operate. I can't speak for or against any Android or Windows tablets as I don't know if the software I use is available on those platforms. As for the hardware to record my 12 camera feeds, I went with something unconventional - an Acer Travelmate P6 laptop that was on sale! I set it up to never go to sleep, operate with the lid closed, and removed all unnecessary software since it was going to use a lot of CPU/RAM 24/7. Believe it or not, a modern laptop with Core i3 and Gigabit Ethernet is more than capable of recording 12+ cameras. Best part is I can hide the laptop somewhere inconspicuous for added security and not worry about it being a target itself. Only problem with a laptop is storage. While 500 GB ought to be enough for a week's worth of video for 4 cameras, it barely records two days worth from my 12 cameras.
Storage: I attached the Acer laptop to my Synology DS211J NAS. I cannot profess my love for the Synology brand enough. I've bought, setup, maintained, and troubleshooted probably 30 different brands of network-attached-storage devices in the last decade and absolutely NOTHING comes even close in performance, price, quality, and robustness to Synology - not even products 3-5x more expensive. Even the low-end DS211J version is very reliable and works great for home backups, media sharing, and in this case, recording video footage. Pop-in a couple of 2TB drives, create a shared folder, map the shared folder in Windows, and drive S: is now ready to store two weeks of videos!
Software: Before I arrived at the current laptop, storage, and software solution, I spent months trying out various software (both free and commercial) and hardware (plug PCs, mini PCs, even VMs). My requirements were pretty fixed from the start: (1) Must work on iPad and iPhone (2) Must work from inside and outside the house (3) Must support at least 12 cameras (4) Cost under $500 in software/device licenses (5) Must allow real-time video and easy playback of recorded footage. While I came across many different solutions, the one that worked best is the free-for-personal-use video monitoring software Genius Vision NVR. It only took minutes to install on the Acer laptop and barely 30 minutes to configure to record all footage from all 12 cameras. It has companion apps for the iPad and iPhone and has decent security to make sure nobody can access my cameras without the right credentials. When adding the cameras to Genius, make sure you name each camera channel properly because there's no way to change them later and the iOS apps automatically sort the cameras based on the channel name. Since you cannot rearrange the cameras on the iOS apps, you really want to get the order correct beforehand. I prefixed my camera channels with 01, 02 etc. to get my desired sort order. Once Genius was configured properly, I opened a random port on my WNDR4500 firewall and made it point to the laptop's IP and Genius port 3557. On the iPad and our iPhones, I added two NVRs (a) At Home (b) Away from Home. The At Home connection points to the internal LAN IP of the Acer and Away from Home points to my WAN IP. Since my ISP rarely changes that, it is not a big deal for me to update that if necessary. I could've used a dynamic DNS service but oddly enough, most of the popular ones are no longer free and the ones that are, I don't know well enough to trust.
Video Surveillance - IP Cameras: Having used many different IP cameras in the past, I knew this was going to be difficult. I wanted 12 identical cameras that worked perfectly in day and night, in full brightness and pitch dark. Nearly all of my cameras face East or West and so it was critical that as daylight fades away the infrared mode kick in automatically and vice versa at sunrise. Additionally I wanted outdoor PoE cameras that could handle moderate rain, high humidity and temperature changes. Weeks of research led me to try out Dahua IPC-HFW2100 (IP66) and I can honestly say that I am pleasantly surprised at how well they work and meet all of my requirements. I must add that configuring them was a pain times twelve and that without this Amazon review, I would not have been able to setup the RTSP stream necessary for Genius Vision NVR. Make sure you get an IP camera that supports NTP and point it to pool.ntp.org or another NTP server so that you never have to worry about the camera's internal clock, which is usually displayed on every stream. If you setup the camera to overlay the current time on the stream, you can immediately tell if any camera stream is frozen by just looking at the on-screen clock.
PoE Switch: I highly recommend getting PoE cameras so that you only need a single cable to the camera instead of power adapter and electric sockets everywhere. In terms of performance and reliability, PoE will always beat WiFi + power adapter. Problem with PoE is that the switches are usually expensive. Most PoE switches with 8 ports only have 4 PoE ports. I did not want to buy 3-4 PoE switches and instead got a BV Tech 16 port / 100Mb PoE switch. I was originally quiet worried about having just a single 100 Megabit cable connect all of my 12 cameras but believe it or not, it has worked quiet well. Even if all of my cameras are streaming at 4Mb/s, that is still under 50Mb/s, well below the theoretical capacity of a 100Mb switch. The best part is that since this device has individual switches to turn on/off the power to each port, I can use it to reboot any camera without unplugging the Ethernet cable.
It has taken me a good six months to plan, budget, purchase, test, and deploy all of the above and finally I feel content with it. I would like to setup Genius Vision NVR to record on motion detection instead of bulk 24/7 recording but that will take a lot of tweaking for each camera. Regardless, we now have a system that we can access from anywhere in the world and it works as well as any professionally installed solution that would cost 4x as much.
Other than the surveillance project, I've also replaced all of our regular A/C thermostats with CyberStat WiFi thermostats that Juliet and I can control from our phones. No more wondering if we left the bedroom heating on while we go on a weekend trip - we can check it and change it from anywhere with Internet access! Next up, I'm thinking of installing electric switches that can be controlled from the Internet and of course in person. And then some day, I plan on writing an algorithm to control colored LED lights in our living room based on a variety of factors.