Posts

ElasticSearch - Sniff ! Sniff!

Note: Below is a brief discussion of the issues i have encountered using Elasticsearch's  Client  behind a VIP. As I had written previously, I had to setup an Elasticsearch cluster. In order to take advantage of balancing the load between the nodes of the cluster. I used a DNS pointed to VIP that does a round-robin load balancing among the nodes. The reason i choose this is because I can add servers to the VIP without changing the Transport Addresses in the Elasticsearch Client java code which uses a TransportClient. Without the VIP I need a coding change and deploy to add the new Transport Address. The cluster would not be really useful if I cannot take away nodes and add nodes to the cluster as I wish without any coding change. The drawback in hiding the cluster behind the VIP is that you don't know which node the java code client is going to get in order to process a search request.  This is causing an issue in the client code.  Since I only have one Transport Addre

ElasticSearch - Preventing Split Brain With a Cluster!

Image
Elasticsearch - Brain Cluster ! After reading this about article about elastic search cluster -- Split - brain problem  I wanted to be careful about setting an elastic search cluster. I have to setup a 3 node cluster of elastic search. After reading a few articles about it, it comes down to how the cluster will be used mostly. Here are some of the questions that i asked when setting the cluster up. I hope that this can be a good starting point for anybody setting up elastic search cluster. 1. How many nodes are you going to use for the cluster ?    We only have 3 physical servers that is why i decided to use a 3 node cluster.       Here are the settings that i used          Gave the cluster a name [cluster.name: brain] - brain cluster           Gave each node a name [node.name: "brain_1"']                                                [node.name: "brain_2"']                                                 [node.name: "brain_3"'

FontAwesome 4.1.0

I had the recent task of upgrading our website typography and icons from FontAwesome 3.2.1 to FontAwesome 4.1.0. I have to scrub our source code for every tag. The good thing about our source code is that we are using less (css pre-processor) that made my life easier. The hardest part in upgrading is making sure that you are referencing the same icons The upgrade change a lot of names of the previous icons that are not really related to the previous name like icon-remove is now fa-times (I don't know the reason why) but here is a list of the names of the icons that have changed Icon name changes from 3.2.1 to 4.1.0 Upgrading to 4.1.0 gives us 71 new icons to use Here are some of the new icons i like (I added the colors) Font Awesome - Galactic Empire Font Awesome - Rebel Alliance Font Awesome - Space Shuttle Font Awesome - The Bomb Font Awesome - Recycle Font Awesome - QQ

Network Speeds: As a developer you should be mindful!

Network? What Network? In any complex enterprise application system network communications is an inevitable part of how the system will get accessed. Web applications are accessed through a complicated infrastructure of communication devices. Developers never take notice nor care about the network (most of the time) that delivers application to users, but developers should care, specially now that more applications are accessed through mobile devices. Here is a link that talks about how mobile networks might affect the performance of applications from Google IO. This talk really presents a valid point on how you can develop a strategy around your application in order to be more responsive within the constraints of mobile networks. Mobile Performance Wifi Networks! After seeing this talk I started wondering about Wifi networks. Even though mobile networks are becoming ubiquitous, the speed and performance are still not comparable to Wifi networks. Any enterprise system appl

Shadow Master: Shadow DOM

I have had many sleepless nights trying to deal with CSS bleeds and clashing element id attributes. You have to expect this when you are working on a code base that is accessible to a lot of developers especially in an enterprise setting. Good thing that I am not the only one encountering this problem and the new w3c specification hopefully would address this problem. ( http://www.w3.org/TR/shadow-dom/#dfn-functional-encapsulation ) The SHADOW DOM As defined in the specification this addresses the functional encapsulation of element in the DOM tree. What does this mean? Well first you can now have chunks of html elements with styling that will not affect the rest of the DOM tree. Why would you want to have chunks of html elements? Of course to create widgets. This is the reason why the Shadow DOM is an important part of building web components. Once you created a chunk of html (like a widget) you can now re-use this widget all over the place without the fear of having

How is the Weather ? Quick use of OpenWeather API

The Weather Now that spring is here and good nice weather. I can't resist trying out the Openweather api . So I quickly created an Single page app using Google's hosted jquery library . Here is the source code you can fork from GitHub from here  https://github.com/petabyte/HowsTheWeather Here is the link to the hosted page in github http://petabyte.github.io/HowsTheWeather.html

Some Fat are good for you: Fat Arrow Functions in ECMAScript 6

Image
The Fat Arrow I have been hearing about the arrow functions lately and everybody is excited about it. Arrow functions are still in experimental stage and are part of the Harmony (ECMAScript 6) proposal. Here is the  Arrow Function Reference on MDN . So I am curious what the excitement is about and wanted to try it. Spider Monkey Build But before I can try it I have to build my own SpiderMonkey engine that has this new javascript features. Here is the link to  Spider Monkey Build Documentation .  Sublime Text Build System Config After building SpiderMonkey i added it as a new build system in Sublime Text using this configuration. {     "cmd": ["js", "$file", "$file_base_name"],     "working_dir": "${project_path:${folder}}",     "path": "/usr/local/bin:/bin:/usr/sbin:/sbin",     "selector": "*.js" } Note: path may vary where the js executable is installed in your syste