Cover photo
Dhananjay Nene
Works at Consulting Software Architect
Attended Indian Institute of Management Ahmedabad
Lives in Pune, India
1,280 followers|26,892 views


Dhananjay Nene

Shared publicly  - 
Published my first even screencast. Python PEP-435 : Enums for the python standard library
Palak Mathur's profile photoNandan Vaidya's profile photo
It was really good. 
Add a comment...

Dhananjay Nene

Shared publicly  - 
The conference speaker checklist

I attended Pycon India 2013 over the weekend. It was a very well run conference, perhaps the best till date. Nevertheless, a few talks could've been better. Towards that end, this is the conference speaker checklist a speaker could review before stepping up on the podium.

* First think of what value the audience is going to get out of it, not the sales value or the bragging rights for the speaker.
* If you are going to talk about how cool your company is, get it done very quickly, in the first couple of minutes.
* Realise the core value the audience seeks. If they are a bunch of python developers don't stick them with a long lecture on consumer psychology. Give them something that they as python developers find useful.
* Do not make the title of the talk much grander than the content. The two need to be consistent
* Keep the title of your talk unambiguous. Else you will have a larger proportion of bored, uninterested audience, who will frequently be walking out of your talk.
* Don't reuse sales collateral blindly. Pass it through the relevance filter
* And please don't just talk about what considerations programs should be written with - show the code.

Anything else I missed? Add below
Vijay Sharma's profile photoMandar Vaze's profile photoSaurabh Kumar's profile photo
I couldn't attend Pycon India 2013 - But attended one in 2010 (b'lore) and 2011 (Pune) But several of these points were relevant event back then (At that time, I didn't find any "branding" talks)
One other thing, isn't "funnel" supposed to take care of some of these concerns ?
Add a comment...

Dhananjay Nene

Shared publicly  - 
Kenton Varda originally shared:
"Jeff Dean puts his pants on one leg at a time, but if he had more than two legs, you'd see that his approach is actually O(log n)."

A little bit of Google culture for you...

I created "Jeff Dean Facts" as a Google-internal April Fool's joke in 2007. Apparently, nearly five years later, it has leaked to the public!

It's basically just a web site (available only on the Google internal network) like those "Chuck Norris Facts" sites you used to see around the net, where people can submit "facts" about the person, rate other "facts", and see a list of the top-rated "facts". Except they're about Google engineer +Jeff Dean, not Chuck Norris.

I actually built the site on an early version of App Engine, which had not yet been announced to the public. Even back then, while they were still busily developing the thing, it was really easy! I even helped them find a couple bugs... :)

On April 1st, I sent out a company-wide announcement of the site as if it were a new Google project. I hid my identity by attributing the mail to a mailing list with private membership. April 1st was a Sunday that year, but the next morning, at 9:32 AM, I received an e-mail from Jeff detailing how he had hacked through my servers and discovered my identity. :)

The site has continued running ever since, and hundreds of Googlers have submitted "facts". At some point, +Ari Wilson took over maintainership and expanded the site to allow you to post "facts" about any employee, though Jeff remained the main focus.

No one ever had to approve any of this. I just did it, because I thought it would be funny, and people loved it. That's kind of how things work at Google. But my little creation is nowhere near the biggest or funniest of our internal prank sites... I'll let the creators of said sites decide if and when to talk about them. ;)

Here are some of my other favorite "facts" about Jeff (at least, of the ones that would make sense to people outside the company):

"Jeff Dean compiles and runs his code before submitting, but only to check for compiler and CPU bugs."

"Jeff Dean once failed a Turing test when he correctly identified the 203rd Fibonacci number in less than a second."

"The speed of light in a vacuum used to be about 35 mph. Then Jeff Dean spent a weekend optimizing physics."

"Jeff Dean was born on December 31, 1969 at 11:48 PM. It took him twelve minutes to implement his first time counter."

"Jeff Dean escews both Emacs and VI. He types his code into zcat, because it's faster that way."

"When Jeff Dean sends an ethernet frame there are no collisions because the competing frames retreat back up into the buffer memory on their source nic."

EDIT: I posted a few more as a reply to this post.
Add a comment...
Have him in circles
1,280 people
Tony Morris's profile photo
Saager Mhatre's profile photo

Dhananjay Nene

Shared publicly  - 
Where does Samsung Gear lead us

The primary attraction of Samsung Gear is that it is a wearable computer. That means you carry it with you, everywhere you go, it doesn't get in your way, and you are less likely to forget it.

The reviews eg: aren't necessarily so great. Perhaps this is just the first generation offering, and could do with a lot more improvement. But the possibilities are exciting. Here's where I hope it will lead us to in the next 3-5 years.

- The watch is the mobile. ie. you wear a mobile, not carry it

For basic operations don't use a touch screen, just a set of voice commands (google glass like). You no longer need to absolutely carry another mobile or laptop with you.

- Personal data and app store, wherever you go

The watch serves as a datastore/app repository thats available to you everywhere you go. Come to think of it, its better than the cloud. Currently the mobile is the server and the watch the client. I imagine the roles will be reversed. Since the watch will be the personal data and app store, you can now use it via any number of clients - mobiles, tablets, laptops or desktops. Anything but the most rudimentary UI and data entry is managed by the clients. Should even be helpful where people do not want to keep really private data on the cloud - just keep it on the watch.

- Non obtrusive secretary

One of the issues with mobiles is that everyone needs to keep their heads down staring at the mobiles. Now you could be dictating or listening to the content, with the watch no longer being the center of your attention. 

- Health gets a priority

Health and fitness related apps will definitely get a boost. 
Add a comment...

Dhananjay Nene

Shared publicly  - 
Did PEP443 just introduce open classes to python?

A simpler explanation :
The formal PEP :

My first reaction was to think static type based dispatch was so unpythonic (definitely not duck typing). But then I realised that Python already had that differently in the sense that you could dispatch polymorphically based on the target instance so long as the function was defined as a method on a class.

I cannot shake off the feeling that one of the (perhaps intended since the PEP does mention monkeypatching) consequences of this is to introduce open classes to python (albeit in a bit round about manner). 

So if I have to use a class T1 defined by someone else and want to add method foo() to it (and different implementations for other types T2, T3, .. etc.) I could use the PEP to in effect bolt on foo() to all these types even though I never defined the original types myself and thus had no ability to actually add the method to the class definition. 

The only caveat is that now I should invoke foo(t, ...) instead of where t is an instance of one of the types.  

So this does offer me an ability to bolt on additional methods to predefined types. However would I use this feature on classes I define myself .. so far I haven't been able to come up with a use case. 

Another interesting possibility stems from the fact that this is indeed a bit of a haskellish construct. So it might be easier to implement some of the functional constructs. eg. I could now introduce map / reduce etc. to work differently based on whether the input type was a list, or a Option type that I create (I am not referring to the built in map / reduce functions which work only on generators, but to more generic ones which can work off other custom types such as Options). 
Add a comment...

Dhananjay Nene

Shared publicly  - 
Is requiring job candidates to be graduates of a specified list of educational institutions discriminatory?

Came across an interesting piece of information today. A job board has decided that job listings will not be admitted if it "Discriminates among candidates on the basis of their age, sex, educational institution or any other factor unrelated to their skills."

Call me old fashioned. But I thought discrimination was meant to prevent against entry barriers that unfairly impact a person due to attributes which are beyond the control of a person and typically attributes at birth (age, sex, gender, religion at birth) or attributes that the person may accrue (current religion, purely social affiliations) which are not relevant to job performance. 

We as students try to get into the best educational institutions because we believe that there is a good likelihood of getting better education which is then likely to provide a better likelihood of being able to carry out one's professional responsibilities in a superior fashion. 

When educational institution a person attended is treated as a discrimination factor, and mind you with an assertion that it is unrelated to their skills (and I must add without any citation to support such an assertion) it is questioning the very basis students work hard to get into good institutes. If you send out a message that your educational institution does not reflect on your skills on the job, you are making a bold statement (albeit a bit implicitly) - if you think you are struggling hard to get into a few educational institution because you think you might be able to better perform your job in the future, you are wrong because it is not indicative of your future job performance.

I must confess I haven't read enough scientific papers to understand exactly how much educational institutes impact on the job performance, but I would love to see a few which state that your choice of an educational institution does not influence your future job performance. On the contrary the conventional wisdom, empirical observations do seem to suggest that educational institutes do. 

On the other hand if educational institutes do influence performance, then specifying one is looking for candidates from specific institutes could simply not be termed discriminatory. In which case I submit such terms of service do open themselves up to a counter allegation of being potentially unfairly discriminatory and engaging in censorship itself (it is discriminating against and censoring how potential employers would want to frame their job requirements - job requirements which do not break any law.).

There are social reasons why such a constraint in terms of service might feel like it is a good thing. Yet there are always two standards one needs to apply. One for behaviour about oneself. Another for how one thinks others should behave if the two parties need to engage. The former is self imposed and can be as hard as one wishes it to be. The latter needs to be very carefully calibrated to be fair to stakeholders. eg. I never wear my religion on my sleeve. Yet I've always defended other's right to do so if they wish to. Thus the standard of behaviour I set for myself cannot always be the standard of behaviour I expect from others. One has to be careful that when one accuses others of discrimination, one isn't engaging in unfair discrimination in the same breath. 

* I did graduate from one of the educational institutes which seemingly were listed in some of the job profiles as a requirement due to which the said terms of service were modified.
* _It is in my opinion distasteful, unnecessary, and easily avoidable to constrain applications based on educational institutes. I don't like it, I don't think it is appropriate. But it is not discriminatory or wrong._
Dhananjay Nene's profile photoVenkatesh Prasad Ranganath's profile photoKiran Jonnalagadda's profile photo
+Venkatesh Prasad Ranganath yes, but is it non impacting on job performance ? I've been looking for a paper but have found none yet. Yet the overriding intensity with which people seem to invest in high quality educational institutions and want to get educated in them, and then employers wanting to hire them suggests some correlation. My own experience leaves me unequivocally convinced of the substantially positive impact a good educational institute can have. My empirical observations also suggest reasonable but not ultra tight correlation. Thats enough empirical evidence for me to feel convinced. 
Add a comment...

Dhananjay Nene

Shared publicly  - 
Concise guide to digital camera features

This is an intentionally brief note. It intends to provide the reader with a quick summary to help him/her graduate to other far more detailed articles on the topic, rather than being a replacement of the longer guides.

Digital cameras can be classified into :

Mobile cameras : The cameras built in into your mobile phone. They are almost always available to quickly shoot a moment since one generally always carries a mobile around. On the other hand, the camera competes with a number of other features all cramped into a tiny space and picture quality generally suffers.

Compacts : A dedicated camera. Usually at a relatively low price point, and quite small in size. Easy to carry. Generally fit into a trouser pocket or a purse easily. Assumes minimal sophistication / capability on part of the user, and thus its software attempts to automatically do a lot of decisions regarding the photograph. Also usually have a few specific modes for optimising for portraits, landscapes, sports etc. along with a few more creative controls. Have a fixed lens with good zoom capabilities but a rather tiny sensor. Photograph quality is often good for normal use. They can however leave a lot of room for improvement for many usage scenarios eg. low light, strong flash requirement, large prints etc. Generally the photo quality is hard to control beyond the basic settings, since the sophisticated manual controls when available are embedded deep in the menus.

Bridge Cameras : The higher end compacts. They still do not have an optical viewfinder or interchangeable lenses, but often have larger zooms, a slightly larger sensor, and have a little better support for manual controls for shooting. 

Mirrorless Cameras : These cameras have interchangeable lenses. However they do not use a mirror to project the image into a view finder which allows the body to be a lot thinner. Thus the lens could be a little large, but the main body is often quite thin, in a few cases approaching the size of a compact. The sensor size here is a compromise between the larger ones in DSLRs and the tiny ones in compacts. The lens sizes are also quite small corresponding to the equivalent lenses in DSLRs. While not as easy to carry in a trouser pocket, they still weigh comfortably low enough to be carried around in a separate case. Some of these cameras are optimised towards consumers wanting to graduate beyond the compacts whereas some others are targeted towards a relatively compactish camera which can be easily carried around by enthusiasts. The latter often have good controls to help the enthusiast quickly configure the various settings manually.

DSLRs : The cameras used by the richer prosumers or many professionals. Their sensor sizes are huge compared to the compacts or mobiles. Moreover they have a viewfinder which accurately portrays the photo being composed which requires a flipping mirror between the lens and the rear of the camera. This leads to these cameras being on the larger side and often requiring a medium sized case or sling or small back pack especially if one is carrying multiple lenses. However they are quite fast in their ability to focus or take multiple shots quickly, and offer very fine control on all aspects of the photograph.

There might be a few more fringe categories but the above hopefully include most of the cameras out there.

Evaluating and comparing digital cameras can be based on the following characteristics.

Ergonomics and Budget friendliness :

Cost: Needs no further explanation.

Size: Smaller size is easier to carry, thus making the camera more likely to be available when you need it and imposing lesser constraints in terms of carrying it around and keeping it safe.

Weight & Robustness: Less weight is easy to carry. But just be careful if that makes it a bit too plasticky and potential to be damaged easily.

Optical and Sensor Characteristics :

Resolution: The overemphasised megapixel feature. This was particularly important in the early days when cameras used to be sub mega pixel or later into single digit megapixels. Usually for most, this is not particularly important once one goes beyond 7MP unless one wants to print really large size prints (think A2 and beyond) or crop and enlarge small parts of the photograph.

Lens Zoom: Quite important for consumers. Many cameras will advertise both optical and digital zoom. Just consider the optical zoom, and ignore the digital zoom. The latter is really not important, and can just as easily be implemented in your image editor on the computer. Note that high zoom means less light entering the lens. Moreover zoom lens sizes are proportional to the amount of zoom and underlying sensor size. So do check out the reviews if you are evaluating a very high zoom in a compact size, 

Often the lens may instead be specified in terms of the focal length range (eg. 18-55 mm which would approximately be 3x). The focal length also indicates the kind of perspective it offers (or angle of view) eg. 28mm for full frame SLRs is considered a wide angle lens whereas 85 mm or above will be considered telephoto. But these numbers vary based on sensor size and thus need to be considered in context of the sensor size.

Sensitivity: Most digital cameras will have an adjustable sensitivity range. More the sensitivity, the easier it is to capture a photo in low light, though increasing sensitivity will also increase the graininess. Typical ranges might be 100 (least sensitive) to 800 (very sensitive) ISO. Many cameras will advertise very high sensitivity modes eg. 3200, 6400 ISO etc. However do checkout the camera reviews for the particular model if you intend to use these settings. Occasionally you might find that some of the most sensitive settings even if feasible might yield poor results.

Lens Maximum Aperture: A wider aperture (opening to let the light in) will allow you to shoot in lower light (since more light can flow through a larger aperture) or allow you to use faster shutter speeds (reduce camera shake) or use less sensitivity thus reducing graininess. Since the it is expressed as a ratio to the focal length, lower aperture number actually means a larger opening (desirable). Some lens may allow f/1.4, many others will only stop at f/5.6. Since in case of zoom lenses, the maximum aperture can vary with the zoom settings, it may often indicate a range eg. 1:3.5-5.5 for different zoom settings.

Sensor Size: The big differentiating factor. This is the component which actually records the light. So larger it is, the easier it is to better record in low light or high speed situations. Sometimes cameras which otherwise seem big may actually hide a very small sensor. The standard size used by most professionals is 36*24 mm ie. 864 sq. mm. which is the size in higher end DSLRs. Lower end DSLRs use a smaller sensor (indicated by a crop factor). The crop factor often varies between 1.3 (548 sq. mm) and 1.6 (329 sq. mm), though some might use a crop factor as low as 1.7. These have an aspect ratio of 3:2 Many mirrorless cameras use the four-thirds system with crop factor 2.0 ie. 225 sq. mm., (the aspect ratio is 4:3). While some compacts may have larger sensor sizes of 1/1.7" (43 sq. mm), most will be 1/2.5" (25 sq. mm.) or far smaller. In general larger sensor sizes mean bigger and heavier (since the lens size also has to increase correspondingly) and more expensive cameras. It is because of the sensor sizes that expensive DSLRs will struggle to offer zoom range beyond 4x whereas many medium budget cameras will easily offer 30x and beyond. Its a tradeoff between image quality and convenience.

Other characteristics 

Creative modes: The camera should have auto modes for frequently used situations like portraits, landscapes, sports shooting etc. Usually most cameras have these by default.
Image stabilisation: Help for shaky hands (to a limited extent). Very useful to have, since at lower light the camera will drop down to speeds where hand shake can be an issue.
Startup time: How much time does it take to be ready to snap a photograph after the on button is pressed? This can be important where you sense a photo opportunity and quickly have to start the camera and get ready before the opportunity is lost or having to make people wait.
Raw Mode: Ability to store image in lossless formats (jpegs usually lose a small amount of detail during image file compression). Requires lot more storage space, but gives you an ability to use the real source image for further editing in a image processing application. Not useful if you do not process images on the computer.
Storage: Clearly the more storage you have the more images you can store before having to head back to home or hotel to transfer the images to your computer
Battery Life: There is nothing more frustrating than running out of a battery miles away from the nearest charger. 
Video: I have not touched on video shooting capabilities, but you might want to use the same camera to shoot both stills and video.

There are a few more advanced capabilities that enthusiasts may want to consider eg. exposure metering, auto focus modes etc. which have been intentionally kept out of scope.
Add a comment...
Have him in circles
1,280 people
Tony Morris's profile photo
Saager Mhatre's profile photo
Software Architect
  • Consulting Software Architect
  • Citicorp Software
  • AT&T
Map of the places this user has livedMap of the places this user has livedMap of the places this user has lived
Pune, India
Baroda - Baroda - Ahmedabad - Mumbai - Coral Springs, FL - Irving, TX - Cincinnati, OH
Programmer in the guise of an Architect
Software Architect, Passionate Programmer
Python, Scala, Erlang
  • Indian Institute of Management Ahmedabad
  • Maharaja Sayajirao University of Baroda
Basic Information
Other names
Dhananjay Nene's +1's are the things they like, agree with, or want to recommend.
Baneshwar Temple

Baneshwar Temple hasn't shared anything on this page with you.

Angry Birds Star Wars

JOIN THE ANGRY BIRDS IN THEIR BIGGEST ADVENTURE YET!A long time ago in a galaxy far, far away... a group of desperate rebel birds faced off

Deal Tadka

powering social deals!

Top 10 Mobile OS in India – Android 5th!

If there is any doubt about Symbian’s Indian connection, Statcounter’s numbers should dispel all of them. Symbian occupies a prominent posit