Proxy Servers

A proxy server is a process that acts as an intermediary for requests from clients seeking resources from other servers. A proxy server can be a dedicated computer system for the job or merely an application running on a system along with other tasks performed by the system. Sometimes it can be a process running on the client system as well.

Other than one basic established fact that they exist to ensure that request and response passes through them there is no strict guideline on the roles or activities they may perform. Their job can be a mix of many activities/categories described below.

If it may help Proxy Servers can be considered as an employee of an company with mixed set of responsibilities of a receptionist, as intercom call router, security personal at gate, an access card swipe machine which needs card to be swiped every-time someone passes through a door. We can broadly classify them in following categories:

1. Gateway (or tunnelling) proxy:

They pass requests and responses unmodified. They are used as protocol translators, impedance matching devices, rate converters, fault isolators, firewalls or signal translators.

2. Forward proxy:

It is an Internet-facing proxy used to retrieve data from a wide range of sources. This can be further classified in two categories:

2.1 Anonymous Proxy –

Thіs type of server reveаls іts іdentіty аs а server but does not dіsclose the іnіtіаl IP аddress. It allows users to conceal their IP address while browsing the Web or using other Internet services. This is like a security personal allows you to go in and walk out without asking for your ID card(I think, this guys is like a Church security guy who doesn’t care who you are). How else had you been browsing websites(e.g. Facebook etc) from your school/college computer which were blocked by Firewalls.

2.2 Trаnspаrent Proxy –

Thіs type of proxy server аgаіn іdentіfіes іtself, аnd wіth the support of HTTP heаders, the fіrst IP аddress cаn be vіewed. The mаіn benefіt of usіng thіs sort of server іs іts аbіlіty to cаche the websіtes. Sometіmes, your IP mаy get bаnned аs а result of the use of trаnspаrent proxy. Your Internet Protocol аddress іs not hіdden іn thіs server.

3. Reverse Proxy:

This is an interesting one. As it exists to help or protect and internal network of hosts. Reverse proxies forward requests to one or more ordinary servers which handle the request. The response from the proxy server is returned as if it came directly from the original server, leaving the client with no knowledge of the origin servers. Reverse proxies are installed in the neighbourhood of one or more web/application servers.

Reverse Proxy
Reverse Proxy
  • Load balancing: It can distribute the load to several web servers, each web server serving its own application area.
  • Collapsed forwarding: When coordinating requests from multiple servers and can be used to optimize request traffic from a system-wide perspective. We can collapse the same (or similar) data access requests into one request and then return the single result to the user.
  • Static Caching: It can offload the web servers by caching static content like pictures and other static graphical content.
  • Compression: Optimize and compress the content to speed up the load time.
  • Encryption / SSL acceleration: A host can provide a single “SSL proxy” to provide SSL encryption for an arbitrary number of hosts; removing the need for a separate SSL Server Certificate for each host.

Further thoughts: Another great way to use the proxy is to collapse requests for data that is spatially close together in the storage (consecutively on disk). This strategy will result in decreasing request latency. If a bunch of servers request parts of file. We can set up our proxy in such a way that it can recognize the spatial locality of the individual requests, thus collapsing them into a single request and reading complete file, which will greatly minimize the reads from the data origin.

Distributed Cache and Consistent Hashing

A distributed cache is an extension of the traditional concept of cache used in a single locale.
In computer architecture a locale is an abstraction of the concept of a localized set of hardware resources which are close enough to enjoy uniform memory access. For instance, on a computer cluster each node may be considered a locale given that there is one instance of the operating system and uniform access to memory for processes running on that node.

Consistent hashing is a special kind of hashing such that when a hash table is resized, only K / n keys need to be remapped on average, where K is the number of keys, and n is the number of slots. In contrast, in most traditional hash tables, a change in the number of array slots causes nearly all keys to be remapped because the mapping between the keys and the slots is defined by a modular operation.

Recursive quest of robots

Today I stumbled across and article on techcrunch .

Anki is doing some cool innovation and working on home robots, they named it Vector. Vector is supposed to reach closer on the parameters of “Human Like” experience scale. They aren’t using Alexa or Google Assistant, instead used some third party knowledge graph to build the embedded interactive technology. Interface looks pretty cool though on the aesthetic design.

#Not-TL-DR fiction

However this article delved me into a thought; what if we are super advanced robots ourselves created by a species(which also had many ideas about it’s inception like us). And at some stage technology enabled them to create something which can reproduce and grow using the available resources and continue to improve the embedded AI and pass on using genetic configuration strings. What if this is all recursive? And continuous exploitation of resources leads the change of planets and may be the gas we should breath accordingly. Somehow this doesn’t appear an crazy idea to me.

Microsoft acquiring Github; the cat going inside the window


Once a Cat walked inside a Window; owners said now it will grow on the skills of catching mice… and village surrounding the house will be stronger!!!

Cat Inside a Window

Github Logo Microsoft Logo

The announcement:

Satya Nadella announced:
Microsoft + GitHub = Empowering Developers


Github acquisition; One of the milestone acquisition of the history and industry, I feel.

Millions have crossed the teenage and adulthood with Github. We honed new skills and world’s most important source code bases grew stronger with Github. Geeks from different parts of the world met here to do wonders. Github become geek’s social hangout page and their pride geeky identity. Code URL are remembered as relative path after It has become a de facto of Open Source code developers and was a joyfully accepted synonym for code repository.

Lets see if this acquisition is win-win for everyone (Millions of developers, Third party tool developers, Github founders and Microsoft) or a subset of them? Fingers crossed!

Artificial Intelligence vs Human Social Existence

Rowing the boat against the wind in a continuous pursuit to explore the idea of self existence, is the process of human evolution.

“Against” is not an immediate intent while doing what we do. It is an unavoidable phenomenon. This is what we see from the history of evolution where humans were “trying” to solve a problem. All changes we made in the hope of “ease” and “growth” or in short “pursuit of happyness“, become such.

Sensing Around:

Alright, if this is all complex or not intuitive. If questions as “which history you are talking about?” are popping up. I shall spend no time presenting the stats and will ask you to witness next few years. Looking closely as a witness, not just letting things happen as an actor enjoying the show while performing.

I feel immense joy as a member of this world and specially a Computer Science Graduate, when great research and development teams of AI, Machine Learning, Deep Learning, Natural Language Processing, IoT accomplish historical milestone in the scientific innovations and technological advancement. And then they come to us as “means to ease out life“. accolades for the Google Duplex.Application though which you may experience this great technology in future is, Google Assistant. Google Assistant is still a great tool without this awesome new add-on powerful soul in it. Now I feel it is going on the lines of something I had already mentioned in my last post (before the above Keynote). There I was talking about the future possible with Google Assistant.

Point to Ponder:

We are stepping closer to the era where machines will coexist with humans almost similarly in Businesses, Industries and Social Life. Actually they might be regarded as smarter. They will be faster in doing what they are designed for. In future machines might design machines hence we will eventually loose the power(if not sense of accomplishment) on them to decide.  Below is how a typical organization hierarchy might be. A fair organization might keep transparent perspective towards the employed resources irrespective of type(which is a step ahead of color, race and gender fairness which is followed today).

Knowledge based Learning:

Why we want life to be eased? Let’s look at the skill learning cycle below to see why and the skill learning process is governed.Our current skill learning process is “Knowledge Based”. We hone our skills to do well in the industries areas we work for. So we train based on the knowledge we have gained in the era we are into, after industrial revolution. It is closely resembling to the world as described in the book “The World Is Flat” by Thomas L. Friedman.

What we can do?

Who shall be the consumer of “life to be eased out?” When humans go out of work they need to find new purpose and need skills for the purpose. I don’t know if that is right or wrong and if this is how things shall lead in Universe. One scary and weird idea comes to me if we ourselves are such complex machines and aren’t aware of it. And now I just want to let my “save my life” instinct kick in, and share the thoughts of Jack Ma.Jack says knowledge based study and skills won’t lead a path with humans leading the system. Knowledge based path means human trying to learns skills based on knowledge obtained over few hundred years, on which we are training the machines.  Knowledge based approach: is one of the approaches on which machines are based.


My idea for education for next generation resonates around his thoughts that human values, believing on intuitions, independent thinking, care for others, team work and such notions which build deeper connection with nature. They will keep human unique in the world after few years when machines will be lot more smarter than us in following and learning the skills we have obtained in last few years.

What apps do you wish someone would make for you?

This question was originally posted on Quora. I had posted an answer there and then thought of making it a part of my blog as well.

What apps do you wish someone would make for you?

While framing the answer I felt this is potential of a great design discussion and it was opening gates to many ideas with with great flow charts. In order to not let is explode I tried to keep my answer brief and if anyone interested I am all sport for a discussion upon it further.

Seriously! with so many apps in market, it has become an Amazon like jungle with many trees and fruits, where we know(or at-least have a hunch) the fruit exists, but challenge is how to find the one you are looking for. And most importantly here fruit is something you can hypothesize and most probably it would already exist quite closer to your imagination. But how do I reach to it? Suppose I found a fruit which appears like the one I was thinking off, I don’t know it for sure unless I taste it, and worse is, when I taste it I realize naah! not what I wanted. And now should I re-imagine a different fruit or try a different similar looking fruit? OMG! thinking about apps appear pretty complex now.

Breaking into sub-problems:

The way I would further break the problem in following sub-problems:

1. When would I know I might need a app? (or) How would I know what I am thinking can be helped by an app?

2. If I am sure of what I am thinking then how would I create a proper search string to find them(app)?

3. How would I be sure that the search string I have created is exactly how the app publisher would have kept it in the tags to be searched?

4. When I am give 1000+ choices how would I find the one without trying them one by one?

5. Because I don’t know which all apps exist and I won’t know there might exist an app for the problem I am thinking. Hence I might not go and search for it. And just live with all that comes to be from recommendations.

One potential solution to address above sub-problems:

I guess we should use something like AlterEgoAlterEgo is a device in evolution, which is growing the capability of reading our thoughts. Now modify it a bit for our use case. Let’s feed this(thought) to an AI system which breaks the need into “app capabilities”, I am looking for and makes the search for me. But this search will be more like “machine searching machine” and I hope better chances of mutual understanding here<wink>. Sounds crazy! but if you try to design, it would make sense. Now question is search where? We have all systems designed to be searched by Humans. Great! lets make that too.

A google like search for machines: While publishing an app, it would be tested by AI bots and their capabilities would be fed to a Database before they are uploaded to any app store. There will be a many to many relationships between apps and their capabilities. Database will capture the mapping of capability and corresponding apps.

There you go:

You think something -> AlterEgo Like Deice reads it feeds it to machine learning engine-> This Engine translates what yo need to capabilities and -> Google for machines gets the app(s) for you, which has highest rank in the capabilities score.

I guess this is what I would want as an app to do for me. My search app. I am not sure if this is the future of Google Assistant

What should be colour choices for my app and website: color Marketing and Psyche

I have spent time wondering this question and thought maybe you too. Then I hit search and found, there is so much to understand and so much to know about colors other than of course liking them. For an instance, while I was writing this article I felt as if I am promoting or branding some colors (I am not). Trust me(or not and/or verify), if you go ahead and spend some time on colors research on it’s uses, it’s history and most importantly trends, you will be amazed to find out, how we are genetically programmed in so many years to tend to like some colors in particular, in general. If you dive deeper into the reasons you might feel voilà.

What color to choose for my app??
What color to choose for my app?? [picture courtesy:]

Building the sample space:

Now let’s look at these company logos:

Different company logos.
Different company logos.

If you tell me I am trying to be choosy to present my case, then fine look as these too:

popular share buttons
popular share buttons

Above are worlds popular share buttons inspired from the logos of their representative firms.

Some research and insights:

And now let’s look at these too:

Sky Forest and Sea.
Sky Forest and Sea.

Above are not logos; these are mere screenshots after searching for keywords Sky, Forest and Sea respectively.

Do you see a connection, yet? I am sure you feel something interesting out there or maybe you already know by now. Then let’s delve into something more interesting now.

A picture is worth a thousand words, is not a mere idiom, it is actually a scientific phenomenon. This great article (6 Powerful Psychological Effects That Explain How Our Brains Tick) on our tendencies of liking and disliking suggests that visual sense is strongest guide of our choices in life. And when we like something in appearance rest of our logic goes in attempting to gather more supporting facts and makes an innocent yet biased attempt to convince us for what we are already influenced by. Follow these great talks which suggest how we create reality around a fact:

Having said all that let’s see what our search trends suggest below is the color search trends in last 15 years worldwide i.e. since 2004. Below bars in chart represent Black, Red, Blue, Green and Yellow search from left to right. Please bear with the fact that the representation of color bars might be misleading and check the color names to map the color bar with actual color it is trying to depict.

Top color search trends
Top color search trends [Courtesy]
It shows somehow yellow search trend has radically reduced over the years. While other color Black, Red, Blue and Green show a continuous growth in search trends over the year hence their relative popularity has not changed.

How business’s do a psyche mapping when the design something:

Now let’s try to do a psyche mapping of these colors to see what it means in terms impact of these on people and when any particular color should be chosen or rather let’s say appropriateness of the color.

Color inspiration
Color inspiration [Courtesy]
Now we can relate color sentiments with the brands we had mentioned above. These inferences probably can be used to decide the color when you design your app/website.

Below is another great-find; it shows some brands and the color they choose.

Color Emotion Chart
Color Emotion Chart [Courtesy]
If you are perplexed upon choosing colors while targeting your app for any gender segment you can be guided by the color trend below.

Color targeting
Color targeting [Courtesy]
Now last but not the least, this in an aha moment for you. Just scroll over the list in the  below given link. If it is not clear from the thumbnails check their logos by hitting a Google search.

Forbes powerful brands list

How can I get an app made?

This question was posted on Quora:

Below is my answer:

  1. Easiest(ask someone to do it for you and you watch the show) steps to follow:
    1) Contact a freelancer or firm(e.g. Reformeta Technology Labs ( or TapChief ( who can get your app built and tell him/her what you want ask for quotation and once you have plan and price, it should be followed by,
    2) Discussions on possibilities of improvement and ways of cutting down the cost and again followed by,
    3) Updated(more or lesser) cost after incorporating the changes and (this is optional if you choose the suggestions from step 2) and then discuss,
    4) Terms of service in terms of fixing the issues and further enhancements in terms of feature and scalability if you need in future.
    One catch here is usually firms are more stable in terms of their availability and chances of their vanishing away(as that might affect support for your app) is lesser. If you are least interested in wandering into the forest of app making technologies and just want to focus on your app (either for your business or hobby or whatever), you better choose this approach.
    Ease of development (maximum), Cost (depends on who is making and what is the offering), Enhancement and Maintenance (depends on the offering negotiation and freelancer/firm, typically it should be good)
  2. Lesser Easy(use ready to use lego-like tools and build it yourself, more independent than above approach) steps to follow:
    1) Define the problem clearly
    2) Build a sketch known as Wireframing (
    3) register yourself to one of the app making online tools e.g.
    Google App Maker ( , App Maker (
    4) Follow the steps mentioned by their quick guides, this involves bit of understanding the system and also(important) testing the app.
    Ease of development (pretty easy), Cost (almost zero unless app internally uses some paid services), Enhancement and Maintenance (easy)
  3. Even lesser easy(use app making frameworks, better material designs, involves understanding the system a bit, more control than above steps) steps to follow:
    1) Define the problem clearly
    2) Build a sketch known as Wireframing (
    3) Use a app making platform e.g. Ionic Framework (, PhoneGap ( , xamarin (
    4) Follow the steps mentioned by their quick guides, this involves bit of understanding the system and also(important) testing the app.
    Ease of development (you need to learn a bit), Cost(depends on offerings of channel of development and/or paid services if app is using), Enhancement and Maintenance (depends on how good you proficient you have become on using the tool)
  4. Least Easy(do what you want, maximum control, you essentially became the one you were talking to in first approach “Easiest”):
    1) Define the problem clearly
    2) Build a sketch known as Wireframing (
    3) You need to decide upon the app backend(e.g. REST based service if necessary, either using Java, nodejs or any other technology) and frontend tool e.g. React, Angular etc
    4) If your app has security feature you also need to see how to engage security e.g. using Java Spring Security
    5) Test the app
    6) This approach shall be used only if you have any combination of reasons below.
    6.1) You do it as you love to do it
    6.2) You think no one can understand your need better than you can so you choose DIY
    6.3) You have time, patience and money(you may need money to buy some tools, services which app making firms and freelancers already have and they share the resource for apps they make for clients and offset the cost, in your case you shall bear it alone exclusively for your app)
    Ease of development (pro mode not easy unless you know programming), Cost(depends on tools and services used during development and paid services if any used by the app), Enhancement and Maintenance (if you know programming its all your game)

Great journey Steve Jobs

Known for Apple Inc and every impact Apple’s products and technologies had over people’s lives and IT business trend changes brought in by iPod, iPad, iPhone and everything around it.

He was co-founder, chairman, and CEO of Apple Inc.
Served as CEO of Pixar Animation Studios
Served as member of the board of directors of The Walt Disney Company in 2006, after the acquisition of Pixar by Disney.
Credited in Toy Story (1995) as an executive producer.

Born as Steven Paul Jobs on February 24, 1955 in San Francisco, California, U.S.
Died on October 5, 2011 (aged 56) Palo Alto, California, U.S.

when he started, it was
Steve Jobs -> Apple -> great and wonderful ideas -> amazed and happy consumers

later it turned out as
Steve Jobs -> Everything wonderful, amazing and great!

His every product launch event was highly awaited and everything he used to say, used to get applause. Those applause were for Steve Jobs for the perception he had over people’s mind. A perception formed in years.

There are not many products and devices who are as loved and awaited as iPhone,iPad,iPod and iMac and other Apple products and technologies. Steve was behind them since inception till perception. He will remain one man whom people used to think and will continue to think when they will talk about apple products. People loved him!

A self made man who had seen toughest and darkest sides of life and carrier and witnessed brightest sides of success and change. A man who will be known for the decisions he made, for the passion and determination he had to bring in the change he wanted to bring.

Great journey Steve

Diaspora Share Button for WordPress

Today I have added the diaspora share button to my blog today. 🙂

Though irony is, I am still waiting for the account promised by the cool n ambitious team by the end of October.Though the buzz about Diaspora can’t be termed as viral, as it could be, given the claims/possibilities/potential of it replacing Facebook or other similar platforms. Yet, how so ever far they have come, is really commendable, specially when they say that some of the coolest things in facebook and google+ are inspired by diaspora.

I remember when these NYU folks put their revolutionary idea at Kickstarter. I really wanted something to happen in the near future and I wanted to be a part of it.

Its amazing to see how fat they have come. I am sure, some of us would have thought them a mere bunch of high-energy university geek kids inspiring other geek kids with not much of business vision or practicality in establishing it as social networking platform model. And now I must say I can see a good momentum around the echo-system it is building. Given the fact that it is growing in a model which generally grows popularity amongst the techies of universities and other geeks, I am not sure how soon it can be a channel where-in people would start using it as much part of their lives, as much as Facebook or twitter is now. They way diaspora is growing, it reminds me of college days when Linux used to be a buzz and we used to try-out things on it, and used to love everything about it more than Windows, yet we know Windows is still far more popular platform in commons. Having said all above, I would like to conclude with a note, that I am exited about it. And post is my tribute to that exitement.

You may want to try out adding the cool share-on-diaspora button. Follow the link below.

Diaspora home page:
Diaspora blog:
Facebook page: