Skip to main content

Posts

Showing posts from 2013

The joys of having a haircut

One of the great things about getting a haircut besides the feeling of freshness, is the enjoyable conversations that I have with my barber. The conversations usually span multiple topics, and are mostly random, but sometimes we chat about technology, and it is always great to get the perspective of someone not embedded in the field. Last time we talked about how the younger generations are using technology to communicate. My barber made astute observations about the topic, gleaned from his observations on how his kids, nephews and their friends communicate. It was interesting to learn that despite having cell phones, the younger generation has forgone all types of voice communication on the mobile device, and instead has opted for text messages and instant messaging. My barber was complaining that his kids rake in thousands of text messages a month, and if he did not select the right cell phone plan he would have gone broke by now. Despite not using voice communication on the mob

It is not just about the hardware

About a year ago I switched from the iPhone to the Samsung S3, and was initially pleased with the switch. What's not to like about a bigger screen, better technical specs, and easy expandability and connectivity. As I gained more experience with the phone, I started getting annoyed by the quality of the software, the inconsistencies between applications, and all the wonderful carrier add ons that I could not remove from the phone, unless I rooted it. And not to mention the dropped calls and the garbage collections that rendered the phone unusable at times. The poorly written software and the carrier add ons drained my stock battery so quickly even with minimal use, that I had to replace the stock battery with one that has 4x the capacity to get a usable phone. The replacement came with its own inconveniences that a bulky phone brings. It made me think about how a superior hardware spec and a bigger screen do not necessarily make a good phone, and that the unified experience

Amazon knows when I finish reading books

Recommendation systems are in wide use today, and Amazon's website is a prime example of that use.  In addition to the recommendations on the site, whenever I buy a new Kindle book, I receive emails with recommendations for other items I would be interested in. The recommendations are usually spot-on, and I end up buying more Kindle books, and the cycle continues. Recently I noticed that whenever I finish a Kindle book, Amazon sends me an email with related books that I might be interested in, which is pretty cool if you ignore the fact that an algorithm is watching when you finish a book, and triggers a recommendation email to entice you to read more. The feature might have been in place for some time, and I might not have noticed it, were it not for a very long book that I was reading on and off over the last year. After I was done, I received an email recommendation for other books by the same author, equally as long. Even though the recommendations are good, I am sure I am

F.lux and custom color temperatures for Mac OS X

There is something to be said about using computers before going to sleep, and the effects they have on how well we sleep at night.  The authors of the free software  F.lux  believe that one of the reasons for the sleep disruption after using a computer is the color temperature of the screen. They postulate that computer screens are designed to feel like sunlight during the hours of the day, which is great, but they don't change how they look at night, which is not so great. They designed and implemented the F.lux software to warm up the screen as the sun goes down. And to make things easier, the software can automatically read the location of the computer, and adjust the warming schedule accordingly. The software is free, and works on Windows, Mac, and the jailbroken iPads/iPhones. I have only tried it on the Mac, and while I cannot attest to any changes in my sleep patterns, I admit that the screen looks a lot more pleasing at night: warm and soft, unlike how it looked befor

Samsung S3 and the poor battery life

I have had my Samsung S3 phone for a bit over a year, and the most annoying thing for me is its poor battery life. I mainly use my phone for work email, with the occasional phone call or text message, and the minimum Internet browsing, and despite that light usage, I can barely survive a day on a single battery charge. I used every trick possible, from power savings mode, to manually syncing emails and accounts, and finally through installing Juice Defender, an Android application that turns off most of the unnecessary radio antennas when the phone is not in use to maximize battery life. The most I got was almost 10 hours of usage without charging. Better than nothing but not ideal. I attribute the poor battery life to the poor software that runs on the device, including Samsung's and AT&T's add-ons, that I cannot uninstall after their latest update. Most of that background software eats up the battery in no time. Barring a software fix, a hardware answer would do. A

Software Requirements 3, by Karl E Wiegers, Joy Beatty, Microsoft Press

One of the areas often overlooked when writing software systems is thoroughly understanding what needs to be developed. Specifically who are the users that are going to interact with the system, what are they trying to accomplish with the software, and how is the system expected to behave under normal and error conditions. In short, developing software requirements and specifications before the software is written. " Software Requirements 3 " addresses these questions, with clear answers and advice in a rather longish format of roughly 673 pages. The book starts with a story about the importance of software requirements: a case of an employee who changed her last name without getting married, and the accounting software's inability to handle the change, with the repercussions that the employee will not get paid until the the "bug" is fixed. The book mentions that this is not an atypical situation, and that  ... errors introdu

Sign language

One of the frustrating things for new parents is that their baby's communication is usually 1-bit: the baby is either crying (on), or not crying (off). When the baby is crying it is for different reasons. They could be: Hungry Sleepy In need of change Hot Cold Over-stimulated Bored It is hard to decode these competing and sometimes conflicting needs, although some people claim they can from the tone of the cry, and its duration. Lucky them. Most parents look forward to their babies' talking so that they can communicate their needs. What they don't realize is that when the talking stage arrives, so does the arguing stage. I am looking forward to that. It turns out we don't have to wait that long. We can teach babies sign language early on, and it will help them communicate their needs through signing as early as 6 months, which sounds like a blessing. There are a ton of videos on youtube that teach baby sign language but nothing beats attending a cla

More water please

At work I always enjoy chatting with our lead designer, who is also a strongman, and competes in strongman competitions. In addition to talking about design, I love to pick his brain about how to become more healthy and fit, and he is very generous with his advice and the lessons learned during his training. One day I noticed that he is filling a huge one gallon bottle of water, and I could not resist to ask why. He explained that he needs to drink more than a gallon of water everyday, and that without measuring how much water he consumed, at the end of the day he's not sure if he hit his goal or not. I was intrigued, and decided to see how much water I drank everyday, even though I had no intention of matching his consumption. I bought a 1 liter bottle of water, and set to drink 3 liters of water a day, as the  Mayo Clinic recommends . To my surprise I discovered that I am no where near the recommended quantity, even after factoring in the incidental drinks I consume everyday

Hungry for Change -- the documentary

Documentaries about food and health are almost always controversial, especially if they include a view on dieting and weight loss. They end up espousing a myopic view of how to lose weight and be healthy, and lose the viewer who is a long time skeptic after seeing a lot of fad diets come and go. The documentary "Hungry for Change" was a pleasant change. It focused on giving out balanced information on how the US as a nation has a high percentage of obese individuals, despite all the health awareness, and diets in circulations. The premise of the documentary is that we have strayed from eating the foods our bodies evolved with through million of years to consuming highly processed foods, and if we change that by eating less processed foods, we'd have a better health. The documentary starts with some eye-opening highlights: Supermarket foods are engineered to have a long shelf life, to be appealing and addictive, and be not fulfilling so that we buy more The proto

Enterprise Data Workflows with Cascading, by Paco Nathan, O'Reilly Media

For people interested in developing Hadoop analytic applications there is a plethora of options. The options range from writing low-level, hand-tuned Java map-reduce code, to using a higher level language to manipulate the data such as Pig and Hive. There are pros and cons for each option. For the first, the code becomes complex for anything other than the canonical word-count example, and for the latter, to do anything meaningful, you almost always end up augmenting the higher level language with user-defined functions written in a different language to regain power and flexibility, causing maintenance nightmares. A happy medium in between is to use one of the data-flow libraries for Hadoop, of which Cascading is one. Since Cascading has been around for some time, the online documentation is relatively mature, and includes a gentle introduction to the library, with example source code, and a well written user's guide. However this does not obviate the need for a book that desc

Compiling the Firefox codebase

Out of curiosity, I decided to take a look at the Firefox codebase, and compile it on my Mac. Mozilla's developer pages are great, with elaborate instructions on how to get the source code from the mercurial repository, to compiling and running the codebase on various platforms. You can find the details at: the Mozilla developer guide , and on Mac OS X they are as simple as: Get the source code from mercurial repository hg clone https://hg.mozilla.org/mozilla-central Install a specific version of autoconf (2.13) brew tap homebrew/versions brew install autoconf213 Build Firefox cd mozilla-central ./mach ./mach build The build took roughly 2 hours to finish on my MacBook Air. Run ./mach run The resulting build is similar to Firefox nightly, and includes all the bleeding edge features and instabilities, but is great for tinkering.

Back to Firefox

I have been using Chrome as my primary browser ever since it first came out, and have been pretty pleased with it. At the time I switched from Firefox because Chrome was the faster browser, and arguably had fewer memory leaks, and with its growing ecosystem of extensions and applications, I never felt the need to use any other browser. However, lately I started having problems accessing some legacy sites that I needed for work, that employ Java for some of the content, and starting or joining WebEx meetings. Both problems are due to the fact that Chrome is a 32-bit browser, and the available Java and WebEx plugins are 64-bit for the Mac. Since Safari is a 64-bit browser, I used it for a bit as my backup browser to launch WebEx meetings, and access the legacy websites, but it was a minor inconvenience to use two browsers. A friend sold me back on Firefox, with the cross-device sync feature--one that I heavily love on Chrome, the tab groups feature, and the recent memory leak fixes.

The Shallows

I finally finished The Shallows --a book by Nicholas Carr--about how the Internet is changing our thinking, and how the social network distractions are making us stupid. The book argues that with advances in technology, we have lost our ability to immerse deeply in reading, and consequently the ability for deep thinking. The book traces how knowledge transfer has evolved through the ages: from the early days of oration, where people had to focus hard to comprehend the message that is being conveyed, to writing on the scrolls without the use of punctuation, to the modern printed form, and finally to the digital display of information using devices with continuous scroll. Even though the book is an interesting read, it took me a long time to finish, probably for the same reasons listed in the book. I read the shallows on and off using my Kindle App on my laptop, and during these short spouts of reading, I was distracted by e-mail, social media, and researching topics on the web. What