tag:blogger.com,1999:blog-50342373506673806242024-03-13T15:21:27.380+05:30AVAKASHAPradeep Fernando's blog spacepradeep fernandohttp://www.blogger.com/profile/18246479937906156682noreply@blogger.comBlogger42125tag:blogger.com,1999:blog-5034237350667380624.post-47453989291764878472016-12-02T23:10:00.000+05:302016-12-02T23:10:09.688+05:30Articles Worth Reading
Below is a reading list that i find interesting.
Working with native memory in managed languages.
- https://dzone.com/articles/understanding-sunmiscunsafe
pradeep fernandohttp://www.blogger.com/profile/18246479937906156682noreply@blogger.com0tag:blogger.com,1999:blog-5034237350667380624.post-88394749739868789342015-09-04T22:42:00.000+05:302016-01-07T23:30:31.218+05:30Debugging MPI applications with GDB
Basic GDB
'sayHello' being the program binary
> gdb sayHello
> b 10 - set the breakpoint at line 10
> run - run the program under debugger
> print 'variable_name' - print the variable name
Ctrl+x , a will enable the gui based debugging in the gdb.
MPI debugging,
running a program under gdb
> mpiexec -n 4 xterm -e gdb ./gtc
this will pradeep fernandohttp://www.blogger.com/profile/18246479937906156682noreply@blogger.com0tag:blogger.com,1999:blog-5034237350667380624.post-87769729737982124852015-05-05T04:50:00.000+05:302015-05-05T04:50:43.038+05:30Compiling/Installing Mainline Linux Kernel on Ubuntu
Canonical provides Ubuntu flavors of mainline kernel. However I wanted to install the latest kernel, straight from the Linus's git repo . :)I used a virtual machine environment to compile and install the kernel. We can install the followingsoftware packages using Ubuntu's package manager (apt).
- Qemu - virtualization platform- Virt-manager - GUI for qemuI used 14.04 Ubuntu distribution - pradeep fernandohttp://www.blogger.com/profile/18246479937906156682noreply@blogger.com2United States35.173808317999587 -83.6718750000000578.727644817999586 -124.98046900000006 61.619971817999584 -42.363281000000057tag:blogger.com,1999:blog-5034237350667380624.post-69927575753210591952015-05-04T00:29:00.000+05:302015-05-04T00:31:52.323+05:30Intel Processor Micro-architecture Code Names
It follows a tick-tock naming convention.
Tock - New micro-architecture while keeping the process technology the same.
Tick - Improving on the previous micro-architecture using process technology. (45nm etc.)
Nehalem (tock) 45nm
Westmere (tick) 32nm
Sandy Bridge (tock) 32 nm
Ivy Bridge (tick) 22 nm
pradeep fernandohttp://www.blogger.com/profile/18246479937906156682noreply@blogger.com0tag:blogger.com,1999:blog-5034237350667380624.post-92168723547039040442013-07-16T16:07:00.001+05:302013-07-16T20:16:49.584+05:30[Webinar] Extending WSO2 Carbon for Your Middleware Needs
I am going to conduct a webinar on the $title. In this webinar we are going to cover the possible usages of the extension points provided by Carbon platform. Carbon is a very powerful middle-ware platform as it is... , however it provides enough flexibility to the developer if he/she wants to alter the default behavior.
Carbon Runtime View - diagram by sameeraJayasoma.
pradeep fernandohttp://www.blogger.com/profile/18246479937906156682noreply@blogger.com1tag:blogger.com,1999:blog-5034237350667380624.post-30835646500737898492013-06-29T14:53:00.002+05:302013-06-29T15:04:25.262+05:30Enabling SAML2 SSO for WSO2 Carbon Server, OpenSSO/OpenAM as the IDP
WSO2 Carbon products comes with in-built web-SSO authenticators. Within minutes, you can enable web-SSO for any WSO2 Carbon server using WSO2 Identity Server as the IDP. In this blog post we are using, OpenSSO/OpenAM as the IDP and do the configuration.
Pre-requisites
1. Download and install openAM/openSSO [download the war file from here]
2. Download the WSO2 product.
Setting up the pradeep fernandohttp://www.blogger.com/profile/18246479937906156682noreply@blogger.com0tag:blogger.com,1999:blog-5034237350667380624.post-28642517752407763172013-04-26T13:10:00.000+05:302013-04-26T13:10:32.650+05:30Multiple Profiles and Shared Bundles With Eclipse P2 : Case Study
WSO2 Carbon is an OSGi based server framework. Number of WSO2 middleware products use Carbon as their base platform. Carbon make use of Eclipse Equinox as its OSGi framework implementation and use Eclipse P2 as its provisioning framework.
Problem Description
Some of the Carbon products has their own deployment patterns during actual production deployments. However to give a smooth evaluationpradeep fernandohttp://www.blogger.com/profile/18246479937906156682noreply@blogger.com0tag:blogger.com,1999:blog-5034237350667380624.post-77607632105910688952013-04-15T09:43:00.000+05:302013-04-15T09:46:42.721+05:30MQTT Transport for Axis2/Synapse
MQTT is an application layer broker based pub/sub protocol built on top of TCP/IP. It is very lightweight and hence ideal for usage in network/memory/computing power constrained environments. If I quote the MQTT spec, the protocol features,
Pub/Sub message pattern
Small transport overhead, fixed length header being only 2 bytes
Supports three QOS for message delivery, at-least once, pradeep fernandohttp://www.blogger.com/profile/18246479937906156682noreply@blogger.com0tag:blogger.com,1999:blog-5034237350667380624.post-19148437987668048842013-04-11T17:36:00.000+05:302013-04-11T17:36:00.151+05:30Dealing with Occasional Message Bursts : Message Broker Use Case
Recently I came across the following requirement,
An organization has a message delivery network and an application that makes use of those messages (process them). The delivery network directly communicates with the message processing application. Things seems to be working fine on a regular day. However if the load(incurred by the delivery network) is high, some of the messages may get pradeep fernandohttp://www.blogger.com/profile/18246479937906156682noreply@blogger.com0tag:blogger.com,1999:blog-5034237350667380624.post-18675873391938980392013-04-11T13:16:00.000+05:302013-04-11T13:16:33.513+05:30Application Profiling for Memory and Performance
Inspired by the experiences gathered during recent application profiling sessions at WSO2, we did a webinar on memory and performance tuning. Below are the slides.
Application Profiling for Memory and Performance from pradeepfn
pradeep fernandohttp://www.blogger.com/profile/18246479937906156682noreply@blogger.com0tag:blogger.com,1999:blog-5034237350667380624.post-60105512387625427902013-02-26T17:36:00.000+05:302013-04-11T13:17:19.804+05:30Understanding Java NIO : My Notes
Why this blog post?
Recently I was working with a team to improve the mediation performance of Apache Synapse ESB. Java NIO was new to me when i took up the challenge. I spent few days learning I/O concepts and NIO particularly. Soon after my background reading period, I was pulled out to optimize Carbon kernel. Tough luck!. Then again I learnt few things and thought of compiling a blog post pradeep fernandohttp://www.blogger.com/profile/18246479937906156682noreply@blogger.com0tag:blogger.com,1999:blog-5034237350667380624.post-39912081797641942212013-02-14T15:23:00.003+05:302013-02-14T15:25:00.139+05:30Fine Grained XACML Based Authorization With FuseSource ESB and WSO2 IS
Authorization - The bad way
In a typical organization that makes use of Service Oriented Architecture (fully/partially) to drive their IT requirements, chances are more to find tens/hundreds of services scattered across departments. If the legacy services are works fine for the organization, changing them is not a wise decision. However one always has to consider the maintainability&pradeep fernandohttp://www.blogger.com/profile/18246479937906156682noreply@blogger.com1tag:blogger.com,1999:blog-5034237350667380624.post-31942921313584174292013-02-10T16:29:00.000+05:302013-02-10T16:33:03.211+05:30Patterns in OSGi programming : White Board Pattern
A common solution for a recurring problem can be named as a pattern. Patterns are everywhere. More often than not, we adopt patterns for computer science from our day to day life experiences. White board pattern is one such common pattern. The pattern allows you to decouple two parties from each other (consumer/provider). I came across this pattern for the first time during my final year pradeep fernandohttp://www.blogger.com/profile/18246479937906156682noreply@blogger.com4tag:blogger.com,1999:blog-5034237350667380624.post-79344516944942145812013-02-07T07:53:00.000+05:302013-02-07T07:53:18.485+05:30BoF Session on Carbon at WSO2Con 2013
WSO2 has organized a Birds of a Feather(BoF) session targeting next major efforts on WSO2 Carbon platform. We all can discuss/brainstorm/etc and decide on the future of Carbon Server Framework. The session will be held in London Conference premises and I am going to lead the session.
Agenda can be found here
pradeep fernandohttp://www.blogger.com/profile/18246479937906156682noreply@blogger.com0tag:blogger.com,1999:blog-5034237350667380624.post-48582516825721016802013-02-03T22:26:00.000+05:302013-02-03T22:27:53.304+05:30Demystifying OSGi : Java Colombo Meetup
Java Colombo is the largest Java developer group in Sri Lanka. Recently, we (me and my collegue Sameera) did a introductory session on OSGi during one of their meetups. It was very well received. Below are the presentation slides we used during the meetup.
Me presenting at the meetup. :) The photo credit for below photo goes to Isuru Perera.
pradeep fernandohttp://www.blogger.com/profile/18246479937906156682noreply@blogger.com0tag:blogger.com,1999:blog-5034237350667380624.post-68388903054267509622013-01-10T14:26:00.000+05:302013-01-10T14:26:54.009+05:30Raspberry-pi : my notes
Raspberry-pi is a general purpose computer, that comes in the size of a credit card. The type B has 512 MB of memory and it comes with a ARM processor. It also has general purpose I/O (GPIO) which enables you to drive external I/O interfaces by means of programming. This getting started notes are for my own reference.
Download the OS image for Raspberry-pi pradeep fernandohttp://www.blogger.com/profile/18246479937906156682noreply@blogger.com1tag:blogger.com,1999:blog-5034237350667380624.post-64346371275518288312012-11-24T19:22:00.000+05:302012-11-25T18:23:49.851+05:30JMX client to monitor Carbon Servers
Recently we were doing some load testing against Carbon servers. Soon we realized that there was no easy way to get average memory usage and CPU utilization. (apart from taking jconsole screenshots). End of the day we automated the whole testing process. Below is the JMX client [1] that we used to get details out from the remote running Carbon Server.
It dumps the details to a CSV file. Later pradeep fernandohttp://www.blogger.com/profile/18246479937906156682noreply@blogger.com1tag:blogger.com,1999:blog-5034237350667380624.post-77839070280052600762012-11-09T15:40:00.001+05:302012-11-09T15:40:31.640+05:30Webinar: Artifact Synchronization Between Cluster Nodes
Recently I did a webinar on the topic of "Deployment Sysnchronizer" : the sync-up mechanism we use to synchronize artifacts and meta data in our Carbon product clusters.
WSO2 Dep Sync for Artifact Synchronization of Cluster Nodes from WSO2
pradeep fernandohttp://www.blogger.com/profile/18246479937906156682noreply@blogger.com0tag:blogger.com,1999:blog-5034237350667380624.post-18452129335130033622012-09-16T08:58:00.000+05:302012-09-16T08:58:47.166+05:30Running WSO2 Carbon as a web-app - Apache Tomcat
As I have explained in one of my previous posts, WSO2 Carbon has undergone some major architectural changes from its 3.x.x version to version 4. One of our main goals during those changes was to make Carbon running in a pure-OSGi container instead of running it in a bridged mode. At some point we were considering to drop off the web-app mode deployment, altogether from the C4 release pradeep fernandohttp://www.blogger.com/profile/18246479937906156682noreply@blogger.com5tag:blogger.com,1999:blog-5034237350667380624.post-30009871204883384972012-08-11T10:56:00.000+05:302012-08-11T10:56:50.078+05:30WSO2 Carbon 4.0 Architecture - My Notes
With the 4.0 release of WSO2 Carbon we have changed the internal architecture of the platform in a significant way. In the pre Carbon 4 era, WSO2 carbon used to get deployed as a web-app on apache-tomcat servlet container under the hood. The hight level architecture looked like,
As shown in the above diagram Carbon framework get deployed as just another web-app in Apache tomcatpradeep fernandohttp://www.blogger.com/profile/18246479937906156682noreply@blogger.com0Panadura, Sri Lanka6.717595 79.91282696.4653170000000006 79.5969699 6.969873 80.2286839tag:blogger.com,1999:blog-5034237350667380624.post-54644391824494213562011-10-06T23:58:00.000+05:302012-08-11T15:46:59.971+05:30Debugging your OSGi Application using OSGi console commands
This blog post is mainly targeted at the WSO2 Carbon developers who make
use of OSGi console to debug their bundles/components during the
runtime. I'm here assuming that you have the basic shell which you would
find in equinox environment.
You can start any of the WSO2 server products (that is based on Carbon)
with OSGi console enabled, by passing the system property 'osgiConsole'
during pradeep fernandohttp://www.blogger.com/profile/18246479937906156682noreply@blogger.com8tag:blogger.com,1999:blog-5034237350667380624.post-91226035096734116132011-08-17T10:33:00.001+05:302011-08-17T10:34:45.697+05:30Revert not-commited local changes of a file in Git
git checkout 'file-name'
just a small notepradeep fernandohttp://www.blogger.com/profile/18246479937906156682noreply@blogger.com0tag:blogger.com,1999:blog-5034237350667380624.post-34944191336762780492011-05-30T14:59:00.000+05:302011-05-30T14:59:11.309+05:30POST variables get dropped while going through the WSO2 ESB proxy ... ?This is more of a small note in case I forget what i did while trying things out. First of all I created a ESB proxy for a back-end service that accepts post request and does some manipulation on the received request.
Once you create a ESB proxy by giving the above REST service as the service endpoint , the InSequence element of the proxy.xml will look like this.
<inSequence>
pradeep fernandohttp://www.blogger.com/profile/18246479937906156682noreply@blogger.com1tag:blogger.com,1999:blog-5034237350667380624.post-10894708726305387092011-04-15T16:53:00.002+05:302011-04-15T17:07:39.506+05:30Delete a set of elements in a xml fileRecently I wanted to delete a certain search pattern in an XML file. Within the XML file I had a XML snippet;
and i wanted to delete the commented out part. I was able to do it with this, search replace command in vim.
:%s/<!--moved to nexus\_.\{-}-->
I got this to working by looking at the mail[1]
[1] http://osdir.com/ml/editors.vim/2002-06/msg00468.html
its a pradeep fernandohttp://www.blogger.com/profile/18246479937906156682noreply@blogger.com0tag:blogger.com,1999:blog-5034237350667380624.post-83296752441886855152010-12-05T21:56:00.001+05:302013-04-11T12:42:48.830+05:30Plotting graphs for scientific papers with gnuplot
I was writing our first IEEE grade paper few days back. It was first written using MS word as my text editor. Now that it got selected to be published on the IEEE explore, we thought of preparing a latex based paper for final publication.
One of the major proplem was the image quality of some of the figures. I tackled that using the popular open source vector grphics editor - > Inkscape. pradeep fernandohttp://www.blogger.com/profile/18246479937906156682noreply@blogger.com0