Posts

Showing posts from 2018

Perceptron Networks - 1: Did I Win?

Image
Recently I embarked upon a journey of making the IRC bot  play tic tac toe. The idea seemed interesting at first, but my mind being the cat it is, started wandering off. After a long tussle, a side quest and three espresso shots later  I finally had the cat under control, and the patience  to resume with the journey I had embarked upon. I had given the tic tac toe problem a try before too - as part of a school project. The result were not that great though, as I had to practically hand run all possible moves, and hand code the winning IF conditions. The computer was practically a god in it. It never lost, and the moment it realised it was about to lose, it would crash. The current endeavour was no different, except,  I could now utilise some of the more advanced technologies, compared to the ones which I had ( or was capable of, with my limited skill set ) some 12 years ago. if ((x[ 0 ] == -1 && x[ 1 ] == -1 || X[ 2 ] == - 1 && x[ 6 ] == - 1 ||

Dying Technologies: IRC

Image
It was just before the day break on a lovely Sunday night, that I realised, I was facing two big issues: first, I was stuck with a dynamic public IP; second, sleep was hitting me hard.  I had just successfully pulled an all nighter to set up my home server, with an Arch Linux running in a headless mode, powering my archaic pentium Core 2 Duo machine. All of my data had been categorically listed and filed into my new home 'Server', which I conveniently named 'The Upside Down' drawing inspirations from the nerdy Netflix series: The Stranger Things. Like every other human being, I also grew a bit greedy after I had set up my local server. I wanted to access it from the wild, from the comfort of my bus ride, where I could sync files, dump pictures and everything else I could think of, while being on a mobile network. The only problem seemed to be the ever changing dynamic IP of my home network which somehow devised ways to disappear from my prying eyes. The Dynami

How bad is your memory?

Image
We all know that one person, who religiously forgets, or even better, we might be that person. This is my journey from 'I don't remember, I have a bad memory' to 'I remember that, we talked over it for a minute in a tech huddle about resource points, 3 months ago.' [Just a little bit of exaggeration, but still close] 1. Memory Castle My first approach started with the 'Memory Castle'. My workplace was converted into my memory storage. The security desk started storing my passwords - each drawer storing a different one. The printer started storing facts and figures. Cafeteria was turned into a storage for conversations. It felt good, finally being able to remember things, but soon I started over storing things. Storing memory took time, retrieving was a nightmare. I was overwhelmed with information, and I was running short of place in my memory castle to categorically store information. I had to expand my Memory Castle, and It started taking a lot of time

Shopping for Bananas: An Optimized approach

Image
The other day I went to buy bananas with 28 Banana Money in my hand. My end goal was well defined. 'Buy as many bananas as possible with the money I had'. The only problem was, there were many banana vendors, each quoting their own prices and their own discount policy. This brought me to a thought: If I have the necessary tools with me, will I be able to purchase bananas in the most optimal way. The Optimized banana purchase: To simplify the problem, lets just assume there were only three vendors, and these vendors had 10 bananas each. All the vendors sold at different base prices and offered different discount schemes. Vendor A: Base Price of 9 Banana Money, 8% reduction in the cost Vendor B: Base Price of 7 Banana Money, 4% reduction in the cost Vendor C: Base Price of 8 Banana Money, 7% reduction in the cost The X-axis denotes the number of bananas purchased from a Vendor, and the Y-axis denotes the Price in Banana Money for the total purchase.

The life story of NEON-1432

Prologue Hi, I am NEON-1432, and I form a really important part of NEON corporation. I am currently employed on a feature, live in production, happy, satisfied and serving close to a million users daily. I din't make all of this in one shot, neither was it sheer luck. Instead it was a cycle of learning, improvements, tests and finally deployment. It was hard reaching the pinnacle of my career, but I did make it. It was not always bliss for me, it was a difficult journey. Chapter 1: The birth onto a card. I was not always the ever performing functionality of the feature. I started out small, like every one else in my league. I started out as an Idea. I was born out of a 'business requirement'. I was an idea in some one's brain. There were great debates on whether I was required. Debates on whether I will be of use to the feature. Whether the feature itself would be of use. I have seen many ideas been born, lucky ones like me saw the light of the day. There were

The Introvert's Diary - A day at work

Image
I am an introvert, and yes I am proud of being one, though I may not come across as being proud. To start, let me just clear off some misconceptions about introverts. We are not shy. We just hate attention, and spotlight ('Hate' being a really strong word). We are not unapproachable. We just hate having to indulge in meaning-less conversations. We are not anti-social. We just hate the small talk. We are not lonely, (At times we are, like every other human being). We just cherish the time spent alone. We are not snobbish. (We like it that way though, It keeps the small talks at bay) The  'we are not'  list will grow indefinitely, so let me not waste time there (Oh, by the way, we introverts don't like beating around the bush either), instead let me just give you a peak into the life of an introvert. I was pre-warned by a fellow mate, that this place was going to be over-whelming for me, just from the sheer amount of energy floating around here. Yet,

The Chronicles of Circle CI - Headless Chrome

With my level of patience, I would say running an automated end to end test in circle CI ( v1.0, yes, I am still living in the yesteryears) is quite a nerve wrecking experience.  Our requirement was simple - to be able to run end-to-end tests using protractor wrapper over selenium running chrome headless . Out of the box syndrome The first trial run was setting up the end-to-end execution in native circleCI environment. CircleCI  v1.0  comes shipped with Ubuntu 14.04 , Google-Chrome v54 , and Java1.8   &   1.7 . The default Java version under CircleCI is set to  v1.7 . Versioning  Driver We started the trial run by fixing the versions in native CircleCI environment, finalising on protractor v5.2.2 , and upgrading  webdriver-manager ,  selenium ,  chrome-driver  and gecko  ( FireFox) drivers. The final fixed versions looked something like this: protractor v5.2.2 selenium v3.8.1 chrome-driver v2.34 Update the drivers using  webdriver-manager  from node_modules/p