Liferay, Sharepoint and Alfresco are considered as Enterprise Content Management Systems or ECMs which in essence support Document Management,
Web Content Management, Workflow, Enterprise Collaboration, Advanced Search and Administration. However Liferay is in contrast more powerful on its Extensibility
and Integration points while others are more forcused towards content collaboration. By integrating Liferay with Sharepoint or Alfresco an enterprise can create a mature editorial process management solution with advance visual content presentation capabilities. Liferay from version 6.1 support this idea by introducing the Content Management Interoperability Services or CMIS interface and OAuth and Open Social Portlet.
For example the enterprise product catalogs, Articles, Newsletters and Video etc. content authoring and collaboration can be done through Sharepoint/Alfresco while web presentation is done through Liferay.
Hippo CMS and Nuxeo ECM are the other content management systems which can be integrated with Liferay. Hippo uses JSR-286 Web Services Remort Portlet WSRP feature to integrate with Liferay while Nuxeo uses CMIS and OpenSocial for the integration. The reference section has links for Liferay Blog posts which explains on how to integrate Twitter Gadjet to a users private page using OAuth and Open Social and how to integrate Alfresco in Liferay using CMIS.
References:
Liferay's Enterprise Portal 6.1 Supports CMIS, Integrates Enterprise CMS Document Repositories
Open Source Alternatives To Microsoft SharePoint
Liferay + CMIS: do not expect too much
Content Management Interoperability Services
Liferay CMIS Repository - Wiki
Liferay Sharepoint - User Guide
Integrating Twitter Gadget in Liferay
Integrating Alfresco 3.4 in Liferay 6.1 via CMIS 1.0
Sunday, May 20, 2012
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.
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/
Method 2/
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
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
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/
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
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.
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.
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.
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.
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 OnWhen 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.domainThere 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
Subscribe to:
Posts (Atom)


