Skip to main content

The secret life of the OnePlus 3

So I bought the OnePlus 3 on launch day; it has been about a week since. Buying products on launch day is a practise I am personally against and don’t recommend, but end up falling for more often than not. More comprehensive reviews and bugs surface only after a few weeks from the public release; this time however, things were a little different. Reviews by both The Verge and MKBHD were released as soon as the launch event ended. For me, reviews by The Verge are nothing more than in-depth first impressions. It seems as if they don’t really use the phone as a daily driver or even for more than a day but instead they have some really talented people who produce great content and sometimes catch things that others don’t in the first go. MKBHD on the other hand has always been very reliable- he uses each phone as his daily driver for at least a week before publishing a review. The OnePlus3 got rave reviews by both and was marked to be nearly perfect.
The interesting bit however is that OnePlus 3 has been secretly leading a life which both of them failed to discover. This life has two aspects — the display and the RAM.
Let us first talk about the display. Switching from the iPhone 6S, I was very excited to move to an AMOLED panel. It meant that colours would pop and contrast ratios would be way better. AMOLED panels are also famous for looking good but not caring much about accurate colour reproduction. Knowing this, I gave my eyes time to settle to the new display even though I was immediately thrown off by the colours at certain places, for example, the emoji panel. The emojis looked pale and generally under the weather. I tried to tinker with the settings but nothing really helped much. Digging deeper I found out that the panel on this phone is actually a Pentile AMOLED. A pixel should ideally have 3 sub pixels one of each red, green and blue colours. A Pentile display however uses an alternating green sub pixel between red and blue, leaving the effective chroma resolution to be way lower than 1080p that too on a 5.5inch display. Now this is less of a problem if you aren’t switching from super high res phones like the Galaxy S6 or S7. To top it, OnePlus has made it worse by moving to an extremely high blue tone which cannot be modified. There is no RGB setting to play with and hence no way out. I fail to understand how this went unnoticed by almost all major reviewers out there. Again to most people this would not mean much and go unnoticed because the display is not washed out nor does it have especially poor viewing angles. I have realised that I can still tinker with it by using the night mode which adds a yellow tint to the entire screen.
Now the second aspect feels clearly like a big stab in the back once you discover it after buying. This phone has 6gb RAM which is a major attraction for a power user like me. I like to keep everything on memory and never really force close apps. This is usually a big problem for the OS and it will force apps out once it runs out of memory. But with 6gb RAM, I thought my life was sorted. Turns out OnePlus has not only implemented an extremely harsh memory eviction algorithm but there is also NO WAY to utilise all of its 6gb memory. So basically around half of your total RAM will just sit there doing nothing. This technically improves the battery efficiency of the phone but makes me super sad and not feel like talking to anyone. This does not mean the phone is in any way really slow but it is just not what it is sold to be.


Popular posts from this blog

ES6 Babel Transforms : Code Injection and Increase in File Size

This post aims to give a rough idea on the increase of file size after applying babel transforms to ES6 JavaScript. These figures depend highly on your style of writing code since each extra space leads to an additional byte. However, the transform comparisons will give you an idea on how they are treated by babel and how much of additional code will be injected in your file. 
These file sizes are non-uglify, non-gzipped and without any method of compression on OSX. let - var3 bytes for the first rename. 4 bytes for each subsequent rename.const - varSave 1 byte per declaration.
Class Tranforms852 bytes for using simple class declaration with a constructor. Adds two new functions, namely, _createClass and _classCallCheck.

2114 bytes for creating and extending a class.

Extending a class adds two more functions let us have a look at them, namely,
_get and _inherits.

Arrow => functions20 bytes per usage, depends on the usage as well.

Template StringsA little less than 4 bytes per variable cal…

FusionCharts Automated Testing Tool

While working at FusionCharts, every release we were faced with a daunting task of black box testing. Daunting mainly because of the breadth and the depth of the product. This post talks only about black box testing. FusionCharts Product as a whole contains about roughly 90 charts and each chart can be visually tweaked with a set of about 300 chart options/attributes. Ignoring any further permutation and combination, we have right there around 90*300 test cases. Apart from chart options, api testing which consisted of events and methods was needed. Clearly automation was required, as our manual testing would cover only a very small sample set that too based on smart assumptions.

With this problem at hand, I broke it down as follows:
Headless Browser
- Visual Regression
- API TestingUser Browser
- Visual Regression
- API Testing We liked to call it the FusionCharts Automated Testing Suite.

Headless testing would be based of a headless browser and integrated in to our nightly builds. It was…