Skip to main content

Posts

Two concepts to help upgrade our definition of science

Two concepts to help upgrade our definition of science.  Everybody agrees that there are a ton of things which people believe in to have some basis in science but don’t. This agreement is however limited to what somebody else believes in and not they themselves. Applying the scientific method to everything that we come across is not possible. We as individuals have neither the resources nor would our experience as a single data point count for anything more than an anecdote. There are two concepts to help us check if what we believe in would even qualify to be evaluated by the scientific method. The first is “correlation does not imply causation”. Just because two things are found to be correlated, it does not mean one is the cause of the other. The more popular version of it is a similar fallacy, an event that followed another was necessarily a consequence of the first event. For example, you bought a car on a Saturday and then later met with an accident. Drawing a conclusio...

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 t...

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 - var 3 bytes for the first rename.  4 bytes for each subsequent rename. const - var Save 1 byte per declaration. Class Tranforms 852 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 =>...

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 Testing User 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 night...

uCharts - Financial Charting API

A few months back, the first stable release of the charting API, that I have been working on was released. A part of the uTrade product portfolio, it has been aptly named uCharts. uCharts is a general purpose charting API with prime focus on financial markets and data. In this post, I will give a brief overview of the features, compatibility and scope of extensions. Features The API currently supports 6 types of charts: Line Area CandleStick OHLC Bar Pie It has been designed in a manner that all aspects of the charts are user defined. Starting from the color of the charts, width of the candle bars till the number of ticks on each axis. Mentioning each element seems like a futile exercise. However, brushing over a few notable features seems more fruitful. Aggregation Formula The number of data points that can be displayed on a screen or inside a DIV is limited by its resolution. The number of pixels available can lead to a severe limitation especially ...

Charting API for Financial Markets - JavaScript (SVG)

A brief about the released version of this API is available here . As a part of the last semester of my graduation program (Bachelor of Engineering in Information Technology), I have been interning with a start-up, namely uTrade Solutions .  uTrade™ Solutions is a financial trading technology company with various products including multi-asset trading platform, algorithms and analytics. Instead of walking through my experience of working in a start-up, I would directly move to a short discussion about my project.  uTrade Solutions is working to develop a financial analytics portal and every financial analytics portal employs the use of advanced charting. To draw and display different types of charts on the web, there are two main options which are widely used and acknowledged. Namely, Adobe Flash and Scalable Vector Graphics (SVG) .  Using Adobe Flash has two main disadvantages: It requires the installation of an additional plugin to run content on t...

X.Org Developer Conference (XDC2012) - A Nuremberg Experience

SUSE HQ, Germany X.Org Foundation Board of Directors organizes and sponsors annually this conference which brings together developers working on different parts of X. The X.Org Developer Conference (XDC2012) was held from 19th to 21st  September in Nürnberg (Nuremberg), Germany. The event was hosted by  SUSE  at their company headquarters in Nuremberg.  A detailed schedule of the conference and all related content/videos can be found over here . Being an EVOC student, I was lucky enough to have been sponsored the trip and present a talk on my project/ work done over the summer. This post is mainly be about my experience rather than a summary covering everything important that happened during the conference. skipping the initial travel The trip started off with my flight landing at the Nuremberg Airport from where I took a taxi to my hotel. The airport resides in the outskirts of the city and is lovely ride through farms and green patches in to t...

Nouveau Summer Project : The End and The Beginning

The following are the IRC nicks of two Nouveau contributors without whom I wouldn't be where I am and none of this would be possible. I could never thank them enough for keeping up with my noobness. Thanks guys! mupuf : Martin Peres   Email: martin.peres@labri.fr | mupuf.org mwk : Marcin Kościelnicki   Email: koriakin@0x04.net |  http://0x04.net/~mwk/reblog/ The end and the beginning refers to two things, the end of the X.Org EVOC program and the beginning of a new Nouveau contributor. The experience till now has proved to massive learning opportunity, at the same time rewarding as I was able to actually implement code and obtain results. I started off as someone who was completely alien to such low-level programming and have grown to be someone who actually loves it more than the stuff he used to do. My student life began as web-developer, engaging in which gave instant results and was hugely motivating at every step to progress further. It...

Nouveau Summer Project : Pdaemon -> Host & Fermi Scripting Engine

I had known and was warned that once I start working on this, there will not be a definitive end. I guess after some time you need to put a stop, just so that you can move on to the next phase. This post will mark the end of X.Org EVOC program and begin my journey as a Nouveau contributor.  The second phase of the program has been a rather complex one and filled with unexpected hurdles.   Many changes had to be introduced to command submission algorithm, that we had thought was fit to be implemented. The new implementation after testing proved to work almost completely bug-free. Probably the most glaring difference would be the omission of 'memcpy' and 'wrap_around' functions. The 'memcpy' performed a simple a task of copying a fixed length of data from a given location to another specified destination. It took three arguments, namely source, destination and length. This simple function however had a very basic problem. It did not account for the wrap...

Nouveau Summer Project - Progress Update

This is a summary of all the proceedings related to my project on Nouveau. The start was a little bumpy due to some bugs and incompatibilities with Ubuntu. After spending quite some time to fix things I decided it was better to shift to Arch rather than spending anymore time on it. It took over a day and many reinstalls to get the base system up and running. Then the xorg server was setup and nouveau was installed. This got a basic window system running. It was followed by a git clone of PDAEMON + envytools which was then compiled and successfully run on Arch system. Things worked perfectly on Arch and I would be posting a tutorial on how to install Arch on a usb stick because I find the official documentation not so friendly to newbies. Designing and implementing a PDAEMON to Host communication was my first objective. I planned to work on it in C. I started off with a basic implementation of the  command submission. From there I made incremental modifications improving and te...

KDE - Authors //Promoting book writing in KDE

If you are in any way related to KDE even if you are just a user and think you can/want to help/join us then without giving a second thought fire an email to me. (supreetpal@gmail.com) How it all began . . Last October, Google invited proposals for a GSOC Doc Camp Sprint. The sprint was organised at their offices in Mountain View, California and luckily a team of KDE-Contributors got their proposal selected (I was one of them). Over there, we were teamed up with independent volunteers who were basically professional editors and were briefed about the whole plan. The layout was simple, we had to spend the first few hours outlining the chapters and target audience for our book, then spend the rest of the sprint working on the content. We had proposed to work on a beginner’s guide to KDE development, for developers. Most of the content required by us was available on the wiki but writing a book is a totally different approach than writing a wiki. Working 12+ hours a day ...