Posts

Showing posts from 2013

Ethernet Fabrics: An Overview

What is Ethernet Fabric?Fabrics offer one alternative for meeting the demands of the modern data center. An Ethernet fabric is a type of network topology that collapses traditional three-tier data center switching architectures into one or two tiers, ensures network traffic is never more than two hops away from its destination and operationally behaves like one big switch. The goal of an Ethernet fabric is to increase the scalability, performance and resilience of highly virtualized and cloud-ready data centers.Vendors typically sell commercial Ethernet fabrics as a product suite comprising specialized hardware and software. Fabrics can be implemented using various architectures, the most common among them leaf-spine and mesh. Several terms -- including data center fabric, switch fabric, network fabric and Ethernet fabric, or some amalgamation of all four -- are often used interchangeably to refer to this topology.Ethernet fabric refers to flatter, highly scalable topologies that enab…

Cloud Operations with SAN Infrastructure Visibility – Brocade | VMware Cloud Management - VMware Blogs

Cloud Operations with SAN Infrastructure Visibility – Brocade | VMware Cloud Management - VMware Blogs:

Cool blog out this morning by Wayne Greene, VMware’s snr director in charge of cloud management about the Brocade SAN Analytics Management Pack for vCenter Operations Management Suite.

More details at Brocade site - http://community.brocade.com/t5/Data-Center/SAN-Visibility-for-Virtual-Infrastructure-Managers/ba-p/249

Eclipse 4.2 in Ubuntu 12.04

Eclipse 4.2 in Ubuntu 12.04 | Bruno Braga:

Install the version of eclipse that comes with Ubuntu repo (for 12.04 its eclipse 3.8)Then follow the below steps to update that version with the latest eclipse. After that, when you click on the original Eclipse icon it will launch the updated eclipse.Note: We will need to redo the steps every time we want to update eclipse installation. 
# Get the Eclipse installer for Linux # (if you do not know the flavour, just choose "Classic")# http://www.eclipse.org/downloads/# Unpack it $ tar-zxvf eclipse-SDK-4.2-linux-gtk.tar.gz     # if you have a previous Eclipse version installed# just move it (in case anything goes terribly wrong, # you can just rollback) $ sudomv/usr/lib/eclipse /usr/lib/eclipse-old     # move the unpacked directory to lib $ sudomv eclipse /usr/lib/

Why OpenTSDB chose HBase for Time Series data storage? - Stack Overflow

Why OpenTSDB chose HBase for Time Series data storage? - Stack Overflow:

Nice reply to this question by OpenTSDB author for why StumbleUpon uses HBase (and in fact facebook does the same for big data analytics):

I chose HBase because it scales. Whisper is much like RRD, it's a fixed-size database, it must destroy data in order to work within its space constraints. HBase offers the following properties that make it very well suited for large scale time series databases:
Linear scaling. Want to store data? Add more nodes. At StumbleUpon, where I wrote OpenTSDB, our time series data was co-located on a 20-node cluster that was primarily used for analytics and batch processing. The cluster grew to 120 nodes fairly quickly, and meanwhile OpenTSDB, which makes up only a tiny fraction of the cluster's workload, grew to half a trillion data points.Automatic replication. Your data is stored in HDFS, which by default means 3 replicas on 3 different machines. If a machine or a drives dies…

Installing Groovy & Grails on Linux

http://gvmtool.net/ GVM is a tool for managing parallel Versions of multiple Software Development Kits on most Unix based systems. It provides a convenient command line interface for installing, switching, removing and listing Candidates. GVM was inspired by the highly useful RVM and rbenv tools, used at large by the Ruby community. Candidates that are currently supported are: GaidenGroovyGrailsGriffonGradleGroovyservLazybonesSpring Bootvert.x

Groovy REST Client

Using RESTClient for Groovy - http://groovy.codehaus.org/modules/http-builder/doc/rest.html

Example code:
package restclient

import groovyx.net.http.RESTClient
import static groovyx.net.http.ContentType.JSON


restClient = new RESTClient( 'http://localhost:8080/CustomerDB/webresources/', JSON)
def resp = restClient.get(path: 'entities.customer')
assert resp.status == 200
println resp.data
def respHeaders = resp.getAllHeaders()
respHeaders.each { header ->
println header
}


Groovy By Example: For Java Programmers

This is based on - http://www.infoq.com/presentations/Groovy-for-Java-Programmers

Groovy is a JVM scripting language, it supports dynamically typed variable, comes with groovyc (interpreter), groovyConsole (small Swing editor). It interoperates with Java seamlessly - can call any Java method and use any Java class. The same holds true for Java - it can call into groovy scripts.

Example 1:
class GroovyPerson {
    // dynamically typed - no semi colons needed.
    def age
    // statically typed
    String name

    def printName() {
        println name
    }

    static void main(String[] args) {
        // default constructor can accept any number of properties - no getters/setters
        def person = new GroovyPerson(age:7, name: 'Jake')
        person.printName()
    }
}

Example 2:

def cal = Calendar.instance
cal.clear() -- parens required if not passing params to a method
cal.set Calendar.MONTH, Calendar.JULY -- parens optional if passing params to method.
cal.set Calendar.DATE, 4
cal.set Calend…

Installing Oracle JDK on Ubuntu

JDK version 1.7.0 update 45
Linux Mint 15 x86-64


Reference: http://www.wikihow.com/Install-Oracle-Java-JDK-on-Ubuntu-Linux


Remove OpenJDK sudo apt-get purge openjdk-\*sudo mkdir -p /usr/local/javasudo cp -r jdk-7u45-linux-x64.tar.gz /usr/local/javacd /usr/local/javaExtract the archive: sudo chmod a+x jdk-7u45-linux-x64.tar.gzsudo tar xvzf jdk-7u45-linux-x64.tar.gzCreate a symbolic link as: jdk7 -> jdk1.7.0_u45sudo ln -s jdk1.7.0_45 jdk7This is so to avoid doing all the steps when the next time we update the jdk then we just change the jdk7 symbolic link to point to the then latest jdk. Add JAVA_HOME to PATH environment variable:sudo gedit /etc/profilePaste and save:JAVA_HOME=/usr/local/java/jdk7
PATH=$PATH:$HOME/bin:$JAVA_HOME/bin
export JAVA_HOME
export PATH Inform Linux system where Oracle JDK is located:sudo update-alternatives --install "/usr/bin/java" "java" "/usr/local/java/jdk7/bin/java" 1sudo update-alternatives --install "/usr/bin/javac" …

REST Web APIs - Part 1

This my notes from the book REST Web APIs by Mike Amundsen.


RESTful architectures are designed for managing change. We all understand hypermedia in the context of the Web. It’s just a fancy word for links. Web pages link to each other, and the result is the World Wide Web, driven by hypermedia. Hypermedia is the single most important aspect of REST, and the least understood.We say that a URL is the URL of some thing: a product, a user, the home page. The technical term for the thing named by a URL is resource.When a web browser sends an HTTP request for a resource, the server sends a document in response (usually an HTML document, but sometimes a binary image or something else). Whatever document the server sends, we call that document a representation of the resource.URL identifies one and only one resource. If a website has two conceptually different things on it, we expect the site to treat them as two resources with different URLs.The principle of addressability just says that eve…

XPath Cheatsheet

<root xmlns:foo="http://www.foo.org/" xmlns:bar="http://www.bar.org"> <actors> <actor id="1">Christian Bale</actor> <actor id="2">Liam Neeson</actor> <actor id="3">Michael Caine</actor> </actors> <foo:singers> <foo:singer id="4">Tom Waits</foo:singer> <foo:singer id="5">B.B. King</foo:singer> <foo:singer id="6">Ray Charles</foo:singer> </foo:singers> </root>
Excerpted from: http://www.freeformatter.com/xpath-tester.html


1. Select the document node/
2. Select the 'root' element/root
3. Select all 'actor' elements that are direct children of the 'actors' element./root/actors/actor
4. Select all 'singer' elements regardless of their positions in the document.//foo:singer
5. Select the 'id' attributes of the 'singer' elements regardless of …

OpenID Connect - OAuth 2.0 with Authentication

Connect | OpenID:
OpenID Connect 1.0 is a simple identity layer on top of the OAuth 2.0 protocol. It allows Clients to verify the identity of the End-User based on the authentication performed by an Authorization Server, as well as to obtain basic profile information about the End-User in an interoperable and REST-like manner.
'via Blog this'

Single Sign-on with Shibboleth IDP Server

Image
What is Single Sign-on?
Single sign-on (SSO) is a property of access control of multiple related, but independent software systems. With this property a user logs in once and gains access to all systems without being prompted to log in again at each of them. Conversely, Single sign-off is the property whereby a single action of signing out terminates access to multiple software systems.

Single sign-on requires that users literally sign in once to establish their credentials. Systems which require the user to log in multiple times to the same identity are inherently not single sign-on. For example, an environment where users are prompted to log into their desktop, then log into their email using the same credentials, is not single sign-on.

SSO shares centralized authentication servers that all other applications and systems use for authentication purposes and combines this with techniques to ensure that users do not have to actively enter their credentials more than once.

Common …

Python

Python is an interpreted and Object oriented language.

Variable is simply defined as:
my_int=7
my_float=1.23
my_bool=True
my_string = "Always look on the bright side of life!"

Never use quotation marks (' or ") with booleans, and always capitalize the first letter! Python is case-sensitive (it cares about capitalization). 

In Python, statements are separated by whitespace (no ; at the end!).

Code needs to be indented by 4 spaces (or a tab).
Ex:
def spam():
    eggs = 12
    return eggs

Comments begin with # or use triple quotation marks for a multi-line comment.
Ex:
""" Hi there 
this is my comment

Long one indeed!"""

Arithmetic operators: +, -, *, /, % and ** (Exponentiation). The ** operator raises the first number, the base, to the power of the second number, theexponent.
Ex:
my_var = 10**2
Ans: 100

Backslash (\) escapes a string with quotes.
Ex:
'Help! Help! I\'m being repressed!'

So if you wanted "Y", you could just type &qu…