Sunday, March 10, 2013

A Budget-Conscious Approach for the Photo Enthusiast

I've been in love with photography since I have use of reason (or as far back and my memory goes). There have been times that I've been obsessed with it -- I remember shooting over two hundred shots of waves crashing on the Malecon in north Havana when I got my first SLR over 20 years ago (for a humanitarian trip) and loving each of those that came properly focused and exposed -- my mother, however, was not entirely happy I spent so much film and money on crashing waves instead of other, less mundane things. I remember, too, being camera-less for a long time in my college years and how frustrating that was. However, what has always remained true is that my wallet/pockets seem to always lag far behind my photography needs. I've been using a decent Tamron 28-75/2.8 for at least five years, probably longer. It gets the job done and has its moments of heroism when it simply takes the shot better than what I had envisioned. However, I've been wanting to get more than just "getting the job done". I wanted versatility, I wanted range, I wanted sharpness, I wanted ridiculous bokeh, I wanted natural softness and so forth. But, a brief look on Amazon or any other photography establishment will discourage most people with a tight budget, including yours truly. A decent lens runs at least $700, hundreds more if it's an premium line (i.e. "L" glass from Canon). So, I never really had the pockets or guts to splurge on my beloved hobby.

Yashica 135/28

Then a few weeks ago, a co-worker and fellow photo enthusiast showed me some amazing results with a lens he had gotten off eBay for relatively very little money. I was, of course, very much apprehensive of buying anything off eBay having been burned a few times in the past -- let alone something as delicate as precision optics. But, if I was to get my photography needs met, I was going to have to take some risks. After researching what were the easiest lenses to adapt to the Canon EOS system, I settled for the Contax/Yashica. I bought the adapter for a little over $10 from Amazon. I then went on eBay and looked around for lenses for the C/Y mount. To my surprise there were literally hundreds of listings ranging from very inexpensive to quite pricey (for select Carl Zeiss lenses). A bit wary still I looked around until I found a good prime lens for under $50 (shipping included). I figured even if it was complete junk, $50 loss wouldn't be the end of the world. I narrowed it down to three or four candidates. They all met my price criteria and they were the same model (i.e. Yashica 135/2.8), so I went with the seller that had the best recent reviews/ratings regarding photo gear. A few days later, the lens arrived. I did an initial eyeball inspection looking for defects in the lens or lens assembly. All checked out. That day after work, took the lens for a spin. I took a few shots and came back to pixel peep on Lightroom. I was floored. The subject was tack sharp, the depth of field amazing. Alright, I officially contracted the photo bug. I went immediately on eBay this time with loftier goals: I wanted at least one Carl Zeiss glass in my repertoire. I looked and looked until I found the lens I wanted (50/1.7 Planar T*). I researched the closing price of similar lenses and I set my bid in the vicinity. I won the auction and a few days later the glass arrived. It passed my eyeball inspection and then blew my mind while looking through some of the test shots.

Carl Zeiss 50/1.7

So, then the question became more of "what lenses do I want?" instead of "what lenses can I afford?" With the 135 prime, the 50 prime, I wanted a wider one. So, went ahead purchased a Yashica 28/2.8 and upon arrival and testing I was not disappointed. All mechanical systems worked flawlessly and the optical performance exactly as expected. After taking dozens, if not hundreds, of test pictures of different subjects, I was convinced that my investment had yielded positive ROI (in terms of satisfaction, not monetization, of course). 

All set and done, I spent less than half (!) of what the cheapest "L" glass cost (which I believe it's the non-IS 70-200/4) and have three amazing lenses to play with. I feel photographically re-awakened and with the need to take pictures and visually express myself. I, of course, while highly encourage fellow photographers on tight-budgets to leverage eBay, it goes without saying to be very careful and selective when purchasing second- or third-hand glass. So here are my rules of thumb:
  • Always, always look for not just good ratings, but relevant seller ratings. I don't care a seller has a million positive feedback selling stickers, I want to see past and recent photo gear ratings. 
  • Look for the item description for condition and be fast and loose to ask questions to the seller.
  • Skip the canned item specs. They are of little use. Pay attention to the description as explained above.
  • Be in the lookout for copy-and-paste descriptions -- there were many. And, again, if ever in doubt ask away. Most legit sellers are all too happy to answer your queries in a timely fashion.
  • In order to avoid annoying and potentially expensive bidding wars, set your maximum bid to the maximum you're willing to pay. eBay's new automated bid system will always give you the lowest price up to the maximum you set.
Below is the whole set of test shots that I took with the above lenses. I have many more, but I think most people appreciate better inanimate subjects :)

Friday, March 8, 2013

Pebble: not quite a "smart watch" ... yet?

Sometime in the spring of 2012, myself along thousands of fellow tech enthusiasts, committed to back Pebble in their Kickstarter funding campaign. After months of delays, vitriol and nonsense in late January Pebble announced it would soon begin shipping. Earlier this week, nearly 6 months after their original estimated shipping date, my Pebble finally arrived.

The watch looks pretty slick and has a "nerdy" chic design to it. The e-paper screen is pretty easy on the eyes and the initial setup/pairing  as well as adding new watch faces with my iPhone was a breeze, so kudos to them in that regard. But, regretfully, that's all it does -- at the moment.

The watch lacks many crucial features that would make it more than a mere tech novelty. For instance, the watch is just begging for a touch screen. The whole 3-button navigation interface feels almost anachronic. Pebble also lacks comprehensive notification settings -- it currently only supports phone Caller ID and incoming SMS. The watch lacks and badly needs a recent history of notifications: how good are notifications if you can only see the latest one?

An important aspect that, in my opinion, Pebble either forgot or just didn't have the time to implement is the one-directional nature of Pebble. Pebble's use case is not very strong at the moment because of it. If Pebble was capable of, say, sending canned or predefined replies to text messages or if it was capable of sending a quick reply to a rejected phone call, it would have a place in the wrist of not only tech aficionados but also business types and the public in general.

As of right now, however, Pebble is merely an accessory; a luxury, if you will. There really isn't any feature in it that, at the moment, makes it a requisite for daily life. For instance, my smart phone, my car, my computer and so on are things that I need in order to get things done. Pebble is nowhere close to that level of "neededness" (sic) and until it does it will remain nothing more than a glorified wrist watch.

Sunday, January 20, 2013

iPhone 5: a (somewhat) dispassionate review

In a previous post I briefly explained why I decided to give iOS and iPhone 5 a chance after years of using Android devices. It has been a bit more than a week since I got my iPhone 5 and I've used it extensively since then. I have to say that I am fairly impressed with it so far.

Hardware Case and Design: it's very light (and I mean about half as heavy as Galaxy Nexus) and feels super well built and durable. It feels right in my hands. The buttons are well placed and tucked away. Definitely an outstanding example of form and function.

Screen: in one word, gorgeous. Both, when it's on and when it's off. When it's off, it melds beautifully with the case design (at least with the Black version), un-intrusive and well placed. When it's on, it's even more impressive: tack-sharp, well balanced colors, contrast and saturation. Under direct sun light, it's surprisingly useful, you can still read text well and see web sites and apps (mostly) alright.

Battery Life: of all the features, I have to admit the one that has impressed me the most has been the battery life. After heavy 3G/4G usage, WiFi, camera both still and video, a few games, mobile banking plus my usual mobile activities, I charge my iPhone 5, literally, once every two days. That is approximately three times better than my Thunderbolt and about two times better than the Galaxy Nexus under similar usage.

Camera: as a photography enthusiast, the camera on my phone is a very important feature. I was thoroughly disappointed on all the cameras of all the Android phones I owned. The shutter lag made it almost impossible to shoot anything that moved, the auto-focus was always way off, shutter speed was entirely too slow and exposure would be easily thrown off (and no way to override any of these settings). The iPhone 5's camera, on the other hand, has been great. Near zero-shutter lag, auto-focus works well, not excellent, but good enough for most of my usage, shutter speed is much better (although it could be improved) and auto exposure has proven to work about as good as a point-and-shoot camera. So, overall, I'm pleased with the iPhone 5's camera -- but I will not be completely satisfied until (some day) I can manually control every aspect of the on-board camera.

iOS: is a very opinionated OS, but from my experience thus far, I'd say it has a reasonable and well thought out opinion. A beautiful, simple and intuitive UI, predictable gesture and navigation patterns, what you need right in front of you, anything you don't is stashed away. It feels very snappy and seamlessly integrated with most apps. One thing iOS lacks that Android OS is excellent at, in my opinion, is sharing assets among apps. For instance, in the Camera Roll I cannot select a picture or video to be opened with another app, be it Instagram or Pixlr and so forth. Instead, I have to go directly to the app I want to use and open the asset from within it. It's a minor inconvenience, but it's one feature I sure miss from the Android world.

A valid argument could be (and has been) made about iOS's lack of user customization and why Android OS is better in this regard; but, I'm not big on UI customization neither on my PCs nor on my phones, so the lack of UI customization is not all that important to me. Although I can see how it will be a hinderance for those who do.

Since I don't use and didn't use Apple Maps, I cannot comment on that fiasco, but I imagine that would have been annoying and disappointing to those who rely on Apple Maps. But Google Maps works fantastic, and, again, its look-and-feel is much better than Google Maps for Android (ICS and Jelly Bean).

I hope this review will be useful to those researching before making their minds one way or the other. Comments/feedback from zealots on either side of the Apple vs. Google (imaginary war) will be deleted.


Friday, January 11, 2013

Sending My Money To Cupertino (instead of Mountain View)

Let me preface this post by saying that I've owned four different Android smart phones for the last four years. Beginning with the Eris, then to the Incredible, on to the Thunderbolt and a Galaxy Nexus as of late. And also, it's worth saying that in spite of my very recent jump to the iOS world, I still think AndroidOS has a great deal of potential and unparalleled access to its development tools.

So, why did I send my hard-earned dollars to a corporation whose litigious "thermonuclear" war against all competitors I vehemently and fervently oppose?

  • Because, in my opinion, they currently have the best overall smart phone. While it could be argued that late-version Android OS has a better feature set and some Android devices have superior hardware specs than iOS and iOS devices respectively, the end result of an Android device is much less than the sum of its parts.
  • Android's openness is actually too much of a good thing: while open source sounds great in theory, in practice it means that Google has very little control over the OS as it cascades downstream (the exception being Nexus devices). This means that, at the very least, the OS that finally makes it to the device has been modified and/or tweaked by both the hardware vendor and the carrier. This actually is a bigger deal than you would think. Often either the hardware vendor or the carrier add unremovable UI  layers that are not aesthetically pleasing, intrusive, and resource hogs. Then, on top of that, the carrier usually loads your phone with an Imperial shittonne (pardon my French) of unremovable bloatware. So, you get a device and have to choose to either root it (and lose the warranty) or spend quite a bit of time deactivating each of the offending bloatware apps and then having to live with an inefficient and possibly unsightly UI layer.
  • Rooting/Modding: if you must root and mod your phone just to get decent performance and rid your phone off unneeded vendor UI layers, you are doing it wrong. People often see rooting as a solution, I see rooting and modding as solving one and opening two different problems. For one, you'll lose your device's warranty and secondly, you are now at the mercy of a fickle and capricious "community" that at least in my experience has shown itself to be rather ineffective and hostile. 
  • Uniformity and predictability: although Google has made great strides in and is pushing hard for UI design and usability best practices as of late, there is no enforcement at the app submission level. This means that adherence to their guiding principles is completely voluntary and the end result is UI chaos. Developers each do things their way and often leave outdated apps in the market with no consideration for UI looks and usability. While many developers have complained about Apple's draconian manual app approval process (including myself),  it results in a more cohesive, predictable user experience. I was a big believer of Google's "market self-policing"philosophy, but this has proven to be ineffective at encouraging developers to comply with Google's design guidelines and this very likely will remain to be the case.
  • Even Google's own apps look and work better in the iOS platform. Case in point, the gmail app, the Maps app, G+ app all look and work much better on iOS than on Android! No, seriously, some of them are not even a judgement call, they simply are heads and shoulders above their Android counterparts. Not really sure why Google doesn't use that same quality and UX emphasis on the Android versions. And just like that, at least in my experience so far, many other apps that exist in both platforms, they tend to have a much user experience in the iOS world. 
There are other smaller factors, but the points above are the main drivers of my decision. For instance, Verizon thought it would be a wonderful idea to brand every single Android device with their horrible and gaudy red-black "DROID" looks and sounds. Although that's a Verizon-specific complaint, it highlights the root problem (which was mentioned above): Google has little control over the end product. And I'm guessing it has been the same issues for many people who have switched away from the Android platform. Perhaps in a few years' time Google will figure out a way to keep vendors' and carriers' hands off Android and they'll find an automated way to vet app submissions for UI/UX compliance. If and when that happens, there's a good chance I'll jump back into the Android bandwagon.

Thursday, November 8, 2012

A Humble Open Letter to the Republican Party

Last night's electoral vote trounce has surely left you thinking, soul-searching and (of course) trying to find an escape goat. But don't look at Romney's campaign for an answer or someone to blame.

1. If you really want to know where the problem lies you need to look back at least four years back. Think how you collectively and myopically chose to fully embrace the "Tea Party" movement and all of its ilk for short-term congressional wins, disregarding the fact that such choice was sure to comeback and haunt you sooner or later. Not every conservative aligns him or herself with the "principles" and message of the Tea-Partiers, and as a matter of fact, some feel repulsed by them.

2. Your talking-heads and leaders have sent the party into a negative downward spiral. Yes, your dear Rush-baugh, Hannity, Boortz, and so forth have actually done more harm than good. Their venomous vitriol and rhetoric has accomplished nothing other than to push off your ship all center-right and independent-minded voters. I distinctly remember a Rush Limbaugh speech nearly four years ago in front of the who's-who of the Republican party spewing negative and abrasive rhetoric against the Democratic party. He being the proverbial 800 lbs. gorilla, he persuaded your far-right base to think of the Democratic party as "the enemy", to think that "we're not their friends, we're at war with them, and I hope Obama is a failure" (paraphrasing, of course. Text of said speech can be found here). How can you expect people to vote for your candidate when your have these "talk masters" name-calling, cussing, insulting and verbally demeaning any voter who isn't your constituent on the TV and radio on a daily basis? How can you expect to reach to the swing voters with such caustic and divisive tone?

3. For something more recent, you surely are aware that part of your constituents are Libertarian-leaning. You, as a party, spat and kicked dirt on their faces this election. You did everything you could to get Rep. Ron Paul off the map. You cast him out. You left him out. His integrity, impecable voting record, uncompromised principles and intelligence were apparently a threat too big to the Republican establishment. And then you are surprised when his supporters voted for someone else instead.

As a colleague mentioned today, your party is at a crux and, in my opinion, the possibilities range from healing the wounds with all constituents, bring the negative tone and venom of your talking heads down, expel the extreme and fringe elements, bridge and reach to the independents, the center-right and the youth factions to keep on the downward spiral you're in and risk becoming irrelevant in a few years time.

Sunday, October 28, 2012

Never Underestimate the Learning Abilities of a 7-year-old

First of all, I'm not a teacher, cognitive scientist, or pedagogy specialist, so please don't take my experience described below to be anything more than a brief anecdotal narrative.

So, as project for the day, I decided I would teach my second grader, 7-year-old son about functions (the math kind). He knows all the addition, subtraction and multiplication tables by heart and he knows how to solve math word problems and solve for unknowns and other "advanced" grade-school level math judo (for instance, he knows how to solve basic algebraic equations, he just doesn't know they are called that or any of the lingo involved). Even though he has the needed "machinery" to do advanced math (for his age and level), I forewarned him that he might not understand the topic and reassured him it was perfectly OK if didn't get a good grasp by the end of the class. Further, I emphasized that he was not going to be needing any of this knowledge for a few years, but I just wanted him to be acquainted with the basic concepts surrounding functions.

So, the first thing we did was define what functions are (in a language he could understand). I diluted the definition to something to the effect of: a function is like a machine that you feed it a number, it does stuff with that number and the gives back another number. He looked a bit puzzled, so I went ahead and wrote down a concrete example: f(x) := x, then together we walked through a table like this:

--------------
  x   |  f(x)
--------------
  0      0
  1      1 
  2      2
  3      3
  4      4

at this point I could tell he was trying to make sense of this stuff. So, instead of explaining more material, I gave yet another concrete example f(x) := x + 1, just as we had done with the previous example, we walked through filling a table with inputs and outputs. He still looked a bit confused, so we did yet another example, this time using multiplication f(x) := 2 * x, as we walked through the input and output table, I saw the light bulb lighting up on top of his head, so to speak. Shortly thereafter, he interrupted me as I was slowly going through the table and said something to the effect so the 'x' gets switched out by whatever number you have 'f' thing. I told him that it was very clever of him to see the pattern, but there was more to it than that (you see, positive re-enforcement it's a bit of a balancing act with him because if I would've told him that he was exactly right, he would've left thinking he was a math functions expert). So, I was pleased that he grasped the concept that here we have this math construct/machinery that you feed it a number, does something with that number and then spits out the result. I was also a bit surprised that he saw the pattern that the input was replacing the mysterious variable 'x' in a mere three examples. So, I was confident that I could introduce more material and not leave him in the dust. I taught him the concept of x and y- axis, again on terms he could understand. So, I drew a 10-line by 10-line chart in a piece of graph paper. Together we labeled the axes  and the origin (which I had just explained) and added the line ticks. Then I had him read me the inputs and outputs for the f(x) := x + 1 from the table we had previously created. I plotted point by point and then had him draw the lines from dot to dot. I could see by his smile that he was understanding the material thus far. So with basic concepts, definitions, examples and charts under our belt I decided to see if it was true that he understood the material (as opposed to my biased opinion). I wrote a short quiz consisting of three functions f(x) := 5 + x, f(x) := x * x and f(x) := x - 1  and he was supposed to fill the tables from zero to five for each of them. A little over fifteen minutes later, he told me he was done. He got all the answers correct with the exception of two. The first one he wrote f (0) = 0 even though it should've been 5 and the other he left blank f(0) for the last function even though it should've been -1. However, my wife (and his full-time teacher) later told me they haven't done negative numbers yet. Of course, I was (secretly) super excited that he had just done so well with a brand-new topic and one that most of his peers won't see for a few years. At the same time, I was amazed at his learning abilities and given that he is not a genius or gifted (to be objective), this probably is a potential that many 7-year-olds have but due to the nature of mass education goes unused, or perhaps it just means I'm crazy for trying to tech things to my kid that are out of his league.

 Either way, before the Math Gestapo rears its ugly head, I will say that I'm well aware that there are many other facets and nuance to functions that were purposely left out of this lesson that I will try to introduce in time.

Saturday, October 20, 2012

Strange Loop 2012: Day 2

Day 2 of Strange Loop 2012, in my opinion, was the best day of the conference proper: lots of good choices on each time slot and promising keynotes. Even though I attended great sessions in all time slots but two (due to health reasons), I'm going to highlight only three of those since they had the most impact or resonated with me the most.

To kick things off, the morning keynote "Computing Like The Brain" was a tour de force of state-of-the-art Computational Neuroscience. The speaker, although limited in time, tried his best to give the audience a survey of basic Neuroscience and from these concepts he built models, constructs and abstractions that can be (and have been) implemented with computers. Overall a great presentation with tons of new concepts to mull about.

"How Plato and Aristotle invented modern programming" was a session I attended in the lunch-time slot. This session resonated with me at many levels. For one, the speaker was well-informed and well-versed in the fields of Philosophy and Computer Science. He used that knowledge to beautifully craft his thesis: that the notions of Potentiality and Realization, from abstract thought to palpable implementation are the foundations of a programming language or even the computer itself. He was very attentive to the audience and always made sure we were following his argument and would stop and backtrack as needed. I got the sense the audience was left both marveled and very interested in the subject matter.

To close the day and conference, a keynote by EcmaScript's inventor and designer Brendan Eich. Titled "The State of JavaScript", the presentation started as a Mea Culpa of sorts -- taking blame for some of ES/JS early and current problems. After that, he gave a brief history of the language and all the politics surrounding its development. About half-way through the talk, he delved into the good stuff: what's coming down the pipeline for ES specification version 6 (ES6). If you like or are curious about Python, ES6 will be right up your alley, so to speak, since it's heavily influenced by Python. Introduction of List, Sets, List and Set comprehensions, lambda expressions and a host of other language features that will be warmly welcome by the programmer community at large. The presentation definitely spurred the interest of many in the audience to keep an eye on the implementation of the spec.

Then, to continue with the excitement, after a quick farewell from the organizers, we were told the area was under Tornado Warning and to take cover if things got ugly (at which time someone in the audience cheered). But, of course, the warning was ignored by most of the audience who left the opera hall with copious amounts of rain, wind and lightning overhead. :)