Tuesday, July 26, 2011

Tibbr and the other dimentions of social networking

Tibber is a commercial social networking and collaboration product which according to the Head of Enginnering and Product Management division Shriram Chakraborthi its a ground breaking technology that unifies social and communication in real time where everything is available as a wall post. Some of the existing feature of Tibbr are.




Tibbr allows people to follow not only people but also Subjects, Systems, Processes, Governance. This means people can watch activity streams of systems. System can be a Point of Sales POS Terminal or an assembly line. Just imagine how important this would be for a line manager to have this information cumming onto his wall. Not only that Tibbr can be inegrated with lagacy systems like Oracle ERP products. For example it can be integrated with Oracle Expenses which shows different expenses the subordinates has done and expects the approval from the Manager. Once this kind of wall post is clicked Tibbr will bring up the necessary interface of the legacy system which is the Oracle Expece Approval form in this case so that the  manager can do the approval staying inside Tibbr.


Tibcast of Tibbr allow a person to initiate a conference call or a presentation session. The initiator can select the presenter and once done Tibcast will show the webcam outputs of each memeber plus the desktop of the presenter which is screen shared. The edge of this feature is if the iniitator selected a person who is offline at
the time of the conference he will get a recorded version of the conference as a screecast which will be poped on his wall.

The voice memmo feature of Tibbr allows people to record somthing using the Tibbr smart phone app and post it to the Tibbr wall.

Tibbr also has widgets created to show activity streams which can be hooked into a CMS. These widgets are context aware which is it will filter out activities and show activities related to the page which the widget is sitting on.

It also has got this feature called  Tibbr communities. Just like Google+ Circles it allows to broadcast messages only to the interested community. This is like managing multiple social networks from a single location which manages Access, Policies and Authentications all at once.







 

Monday, May 2, 2011

Extending javascript functions

Method 1/

function Animal(name){
    this.name = name;
}
Animal.prototype.talk = function(){
    console.log("My name is "+this.name);
}
var a = new Animal("Brendan Eich");
a.talk();
var json = '{name: "Tim Berners-Lee"}'
var b = eval(b);
$.extend(b, Animal.prototype);
b.talk();

Method 2/

// declare function foo
var foo = function (a) { alert(a); };
// modify function foo
foo = new Function (
  "a",
  foo.toSource()
    .replace("alert(a)", "alert('function modified - ' + a)")
    .replace(/^function[^{]+{/i,"")  // remove everything up to and including the first curly bracket
    .replace(/}[^}]*$/i, "")  // remove last curly bracket and everything after
);
 
Method 3/
function m1(){
  alert('Initial function')
} 
webBrowse1.Navigate(@"javascript:m1=new function(alert('Replace after.'))");
 

Wednesday, March 9, 2011

Useful Linux commands

Descriptive processes list:
ps -aef -o pcpu= -o pid= -o time= -o vsz= -o user= -o args=

Ping broadcast:

ping -b [a].[b].[c].255

nmap -sP 192.168.0.0/24 or nmap -sP 198.162.0.*

arp list
arp -a

tcp dump:
sudo tcpdump -i en0

Linux version:
uname -a or cat /proc/version

Software RAID:
cat /proc/mdstat

CPU Information:
less /proc/cpuinfo

copy file without rsync scp or ftp
netcat listen on port 1212 (> 1024 if not root) waiting for files
nc -l 1212 | gunzip -c | tar xvfp -
send files from source
tar cfp - /home/myuser/mydir | gzip -c | nc -w 10 destination_ip 1212

Linux Performance Monitoring: htop, dstat, bmon, iftop, ifstat, sysstat
http://server.dzone.com/articles/6-command-line-tools-linux

List open files and associated by process IDs
lsof -p 6714 | grep REG

Thursday, December 23, 2010

Accents becoming garbage on form submits and Character Encoding

How non-ASCII data like Accents and Apostrophes gets displayed in HTML, retrieving such data through form fields and how data gets stored in the database with correct format is handled in few place. The trick is, in all these places the encoding format should be the same, which is typically UTF-8.

Following are the locations where encoding format is defined and how its done.

Page content format:
Set the HTML file's character encoding format through HTTP headers or meta tags.
Eg: < meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />  
If this is not set browsers assume  ISO-8859-1 to be the default character encoding format.

Form submits:
GET and POST request parameter are also encoded according to the page encoding format.
This can be overridden by using the accept-charset="UTF-8" attribute in the form tag. 


Server Request Parameters:
In Servelts, JSPs and Portlets, request paramter encoding format can be set by the following statement.
request.setCharacterEncoding("UTF-8");
If this is not set the web servers assumes the default format as ISO-8859-1.
To make the things more generic, the encoding format can be set
in doFilter method of a Servlet Filter.

public void doFilter(ServletRequest request, ServletResponse response,
                         FilterChain chain)
   throws IOException, ServletException {
        if (request.getCharacterEncoding() == null) {
            String encoding = "UTF-8";
            if (encoding != null)
                request.setCharacterEncoding(encoding);
        }

chain.doFilter(request, response);       

//do it again, since JSPs will set it to the default       
     if (encoding != null)
        request.setCharacterEncoding(encoding);

}

One tricky point is if the form encryption type is "multipart/form-data" then each value should be
read by specifying the encoding type like below.

FileItem item = (FileItem) iter.next();
if (item.isFormField())
value = item.getString("UTF-8").trim();

The final point the data encoding format should be handled is the Database it self. This should be
set at the time the database is created. If this format is changed after creating the database, existing
data will be corrupted.


Reference : http://java.sun.com/developer/technicalArticles/Intl/HTTPCharset/

Friday, December 10, 2010

Oracle License

Oracle’s technology products are licensed using two metrics: Named User Plus (NUP) or Processor.

Named User Plus Metric:
This metric is used in environments where users can be identified and counted. Named User Plus includes both humans and non-human operated devices. A licensed Named User Plus may access the program on any instances where it is deployed, provided that the minimum on each server is met.
Named User Plus minimum is 25 Named Users Plus per Processor. Total number of Named User Plus Licenses required are  either Named User Plus for total processors or Total number of Named Users which ever is greater.

Processor Metric:
This metric is mostly used in environments where the software users cannot be easily identified or counted, such as internet-based applications.
Total Number of Licensable Processors = (number of processors) *(number of cores)*(multi-core factor)

Multi-core factor is:
0.25 for SUN's UltraSparc T1 processors
0.50 for Intel and AMD processors
0.75 for all other multi-core processors
1.00 for single-core processors

Useful commands to check the server configurations:
Number of CPUs and Cores => grep -i core /proc/cpuinfo
processor model and all other info => cat /proc/cpuinfo
Linux Version => cat /proc/version

Sunday, August 29, 2010

ProxyRequests and ProxyPass in Apache

Apache can do both forward proxying and reverse proxying.

forward proxying-
Acting as a tunnel to the internet. Users has to configure there application software (Eg. Internet Brower)  by adding the IP of the proxy server in order to access Internet.To activate forward proxying in Appache need to add the following configuration in httpd.conf file.
ProxyRequests On
When accessed through a proxy the ip of the user is not visible so users can do unauthorised activities by hiding himself. Because of this the administrator should secure the server and allow access only to authorised users.

Reverse proxying-
Acting as a web server to third party content. The server will grab content from
a third party server and send to the user as if the server it self is generating the content.To activate reverse proxying in Appache need to add the following configuration.
ProxyRequests Off #Not necessary however.
ProxyPass /path-to-content http://some-other-server.domain
There is however one glitch here. The browser headers will hold the original server
details plus the relative links in the provided content will link directly to the
original site. To avoid this need to add another configuration ProxyPassReverse
as below.
ProxyPass /path-to-content http://some-other-server.domain
ProxyPassReverse /path-to-content http://some-other-server.domain 

Serving sub directory content by the server it self-
Any sub directory of a directory path can be configured to serve contents of itself rather than serving content from the same third party server.To do this use the exclamation mark in front of the directory which needs to be blocked and serve own content.
ProxyPass /path-to-content/sub-directory !
ProxyPass /path-to-content http://some-other-server.domain
ProxyPassReverse /path-to-content http://some-other-server.domain 
 
References:
http://helpful.knobs-dials.com/index.php/Apache_URL_rewriting 
 

Sunday, July 4, 2010

Enterprise application integration the begining

The story goes back to the year 1985. It all started in one persons mind and his name is Vivek Ranadive an Electrical Engineer and an entrepreneur. He was trained as a Hardware Engineer in MIT Massachusetts Institute of Technology and that made him to think about creating a so called "software bus" which allows various softwares to plug in and communicate through a single interface just like the computer hardware bus and interface cards do. He applied this theory on one of the projects which was undertaken by his company Teknekron and that project was to automate a stock market trading floor of "The Goldman Sachs Group, Inc.". His project became successful so is his idea the "Information Bus".


Today we have several acronyms having this same meaning.
Or putting them altogether today we call  SOA - Service Oriented Architecture.

MillenniumIT is a leading technology solutions provider in Sri Lanka who now claims to have developed the fastest trading system in the world which is based on a messaging middle ware or information bus built in house. It handles trades in 130 microseconds, compared with 250 microseconds on Nasdaq OMX, which had claimed to be the fastest based on commercial application. MillenniumIT system said to be handling up to 1m messages per second, compared with 20,000 available on TradElect another platform. Chi-X Europe operates a system capable of handling 225,000 messages per second.

References:

TIBCO
Driving the information bus
WebMethods Vs TIBCO
Where Is the Real-Time Web Message Bus
NETSCOUT - Enterprise - Financial Services
About MillenniumIT
Distributed-JMS
JMS and Spring

Subscribe