<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Masud&#039;s Web</title>
	<atom:link href="http://www.masudk.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.masudk.com</link>
	<description></description>
	<lastBuildDate>Sun, 29 Jan 2012 23:31:39 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Research target for 2012</title>
		<link>http://www.masudk.com/2012/01/research-target-for-2012/</link>
		<comments>http://www.masudk.com/2012/01/research-target-for-2012/#comments</comments>
		<pubDate>Sun, 29 Jan 2012 22:20:35 +0000</pubDate>
		<dc:creator>Masud</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Research]]></category>

		<guid isPermaLink="false">http://www.masudk.com/?p=1101</guid>
		<description><![CDATA[I was thinking about what I should achieve research wise during this year. I am a bit torn between my work (innovative solutions around resource discovery and library management systems) and my personal interest (model-based testing). I thought about it a lot and decided that I need to do something which satisfies my personal interest [...]]]></description>
			<content:encoded><![CDATA[<p>I was thinking about what I should achieve research wise during this year. I am a bit torn between my work (innovative solutions around resource discovery and library management systems) and my personal interest (model-based testing). I thought about it a lot and decided that I need to do something which satisfies my personal interest (as it is absolutely vital for consistency and self-motivation) but is directly applicable to numerous work-related systems. The topic of research that I finally decided upon is <em>model-based testing of web applications and services</em>.</p>
<p>What I find most fascinating about this topic is that I can do a lot of theoretical pure computer science research, but then can directly apply it to world class systems that we develop and implement here at Bodleian Libraries, University of Oxford. This will not only feed my passion for pure computer science research, it will also provide me with opportunities of doing hands on research, actually resulting in some benefit to the vendors of the product.</p>
<p>So my personal targets now are:</p>
<ol>
<li>Make a comprehensive bibliography of existing research</li>
<li>Read one paper a week</li>
<li>Write my notes &#8211; preparation for a literature survey</li>
<li>Find a real problem and possibly think of a solution</li>
<li>Write the theoretical portion of problem/solution</li>
<li>Generate the dataset against which problem can be proven</li>
<li>Implement/Code the solution</li>
<li>Generate results against the original dataset with (hopefully) better results this time</li>
<li>Write up the whole thing</li>
<li>Submit the paper</li>
</ol>
<p>The overall target for achieving all these 10 steps is by the end of this year. That is the only realistic possibility (considering I am fairly out of touch from research). I am also thinking Irum&#8217;s input here might be very beneficial as she is already doing her research on a very similar topic.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.masudk.com/2012/01/research-target-for-2012/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Installing Oracle JDK 1.7 and Oracle SQL Developer on Ubuntu 11.10</title>
		<link>http://www.masudk.com/2012/01/installing-oracle-jdk-1-7-and-oracle-sql-developer-on-ubuntu-11-10/</link>
		<comments>http://www.masudk.com/2012/01/installing-oracle-jdk-1-7-and-oracle-sql-developer-on-ubuntu-11-10/#comments</comments>
		<pubDate>Mon, 23 Jan 2012 09:57:29 +0000</pubDate>
		<dc:creator>Masud</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[featured]]></category>

		<guid isPermaLink="false">http://www.masudk.com/?p=1093</guid>
		<description><![CDATA[I recently installed Ubuntu 11.10 with a lot of hesitation. After the upgrade, I realised why I was hesitating. Somewhere in the back of my mind, I had this feeling that something won&#8217;t work. To say the least, Unity on Ubuntu 11.10 is rubbish and I absolutely hated it. I thought I will do the [...]]]></description>
			<content:encoded><![CDATA[<p>I recently installed Ubuntu 11.10 with a lot of hesitation. After the upgrade, I realised why I was hesitating. Somewhere in the back of my mind, I had this feeling that something won&#8217;t work. To say the least, Unity on Ubuntu 11.10 is rubbish and I absolutely hated it. I thought I will do the same thing that I did previously, revert to the classic desktop. However, the classic desktop is not that nice with Ubuntu 11.10. Long story short, I have moved onto to Xfce 4.8 and I absolutely love it. Clean, classic style.</p>
<p>Coming back to the topic of this post, I needed to install Oracle&#8217;s SQL Developer. As I did a clean install of Ubuntu, I first needed to install JDK. I decided to go with Oracle&#8217;s JDK 1.7. Here is how I installed it.</p>
<p>For Ubuntu 11.10 64 bit OS, download and extract the right version of JDK for your platform.</p>
<p><a href="http://www.oracle.com/technetwork/java/javase/downloads/jdk-7u1-download-513651.html">http://www.oracle.com/technetwork/java/javase/downloads/jdk-7u1-download-513651.html</a></p>
<p>Copy the extracted directory to /usr/lib and follow the steps as shown below:</p>
<pre class="brush: bash; title: ; notranslate">
masud@masud:/opt$ sudo mv jdk1.7.0_01/ jdk1.7.0
masud@masud:/opt$ ls
jdk1.7.0
masud@masud:/opt$ sudo mv jdk1.7.0/ /usr/lib
masud@masud:/opt$ ls
masud@masud:/opt$ sudo update-alternatives --install &quot;/usr/bin/java&quot; &quot;java&quot; &quot;/usr/lib/jdk1.7.0/bin/java&quot; 1
masud@masud:/opt$ sudo update-alternatives --install &quot;/usr/bin/javac&quot; &quot;javac&quot; &quot;/usr/lib/jdk1.7.0/bin/javac&quot; 1
update-alternatives: using /usr/lib/jdk1.7.0/bin/javac to provide /usr/bin/javac (javac) in auto mode.
masud@masud:/opt$ sudo update-alternatives --install &quot;/usr/bin/javaws&quot; &quot;javaws&quot; &quot;/usr/lib/jdk1.7.0/bin/javaws&quot; 1
masud@masud:/opt$ sudo update-alternatives --config java
There are 2 choices for the alternative java (providing /usr/bin/java).

Selection Path Priority Status
------------------------------------------------------------
* 0 /usr/lib/jvm/java-6-openjdk/jre/bin/java 1061 auto mode
 1 /usr/lib/jdk1.7.0/bin/java 1 manual mode
 2 /usr/lib/jvm/java-6-openjdk/jre/bin/java 1061 manual mode

Press enter to keep the current choice[*], or type selection number: 1
update-alternatives: using /usr/lib/jdk1.7.0/bin/java to provide /usr/bin/java (java) in manual mode.
masud@masud:/opt$ java -version
java version &quot;1.7.0_01&quot;
Java(TM) SE Runtime Environment (build 1.7.0_01-b08)
Java HotSpot(TM) 64-Bit Server VM (build 21.1-b02, mixed mode)
masud@masud:/opt$ sudo update-alternatives --config javac
There is only one alternative in link group javac: /usr/lib/jdk1.7.0/bin/javac
Nothing to configure.
masud@masud:/opt$ sudo update-alternatives --config javaws
There are 2 choices for the alternative javaws (providing /usr/bin/javaws).

Selection Path Priority Status
------------------------------------------------------------
* 0 /usr/lib/jvm/java-6-openjdk/jre/bin/javaws 1061 auto mode
 1 /usr/lib/jdk1.7.0/bin/javaws 1 manual mode
 2 /usr/lib/jvm/java-6-openjdk/jre/bin/javaws 1061 manual mode

Press enter to keep the current choice[*], or type selection number: 1
update-alternatives: using /usr/lib/jdk1.7.0/bin/javaws to provide /usr/bin/javaws (javaws) in manual mode.
masud@masud:/opt$
</pre>
<p>Now download the Oracle&#8217;s SQL Developer package for your system from the following address.<br />
<a href="http://www.oracle.com/technetwork/developer-tools/sql-developer/downloads/index.html">http://www.oracle.com/technetwork/developer-tools/sql-developer/downloads/index.html</a><br />
Now go through the following steps:</p>
<pre class="brush: bash; title: ; notranslate">
masud@masud:~/Downloads$ sudo mv sqldeveloper /usr/lib
masud@masud:~/Downloads$ cd /usr/lib
masud@masud:/usr/lib$ cd sqldeveloper/
masud@masud:/usr/lib/sqldeveloper$ ls
dataminer ide jdbc jdev.label jviews modules readme.html sqldeveloper sqldeveloper.sh timingframework
icon.png j2ee jdev jlib lib rdbms sleepycat sqldeveloper.exe sqlj view-source-paths.lis
masud@masud:/usr/lib/sqldeveloper$ ls -lrt sqldeveloper.sh
-rw-r--r-- 1 masud masud 71 2011-03-25 14:59 sqldeveloper.sh
masud@masud:/usr/lib/sqldeveloper$ chmod +x sqldeveloper.sh
masud@masud:/usr/lib/sqldeveloper$ ./sqldeveloper.sh

Oracle SQL Developer
 Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.

masud@masud:/usr/lib/sqldeveloper$
</pre>
<p>You may get a message by SQL Developer that version 1.7 of Java is not supported at this time.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.masudk.com/2012/01/installing-oracle-jdk-1-7-and-oracle-sql-developer-on-ubuntu-11-10/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>New year, new goals!</title>
		<link>http://www.masudk.com/2012/01/new-year-new-goals/</link>
		<comments>http://www.masudk.com/2012/01/new-year-new-goals/#comments</comments>
		<pubDate>Sun, 22 Jan 2012 21:49:14 +0000</pubDate>
		<dc:creator>Masud</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.masudk.com/?p=1089</guid>
		<description><![CDATA[Today, I was thinking about what the year 2012 will bring for me. Although in the past, I used to make new year resolutions, I have stopped doing that for a couple of years. However, I have decided to set up some S.M.A.R.T goals for myself. These are: To get PRINCE2 certified. To get a [...]]]></description>
			<content:encoded><![CDATA[<p>Today, I was thinking about what the year 2012 will bring for me. Although in the past, I used to make new year resolutions, I have stopped doing that for a couple of years. However, I have decided to set up some <a href="http://topachievement.com/smart.html">S.M.A.R.T</a> goals for myself. These are:</p>
<ol>
<li>To get PRINCE2 certified.</li>
<li>To get a driving license.</li>
<li>To get my ILR.</li>
<li>To publish, either in the field of library and information sciences or mobile/multi -agent systems or model based testing.</li>
<li>To be a better photographer and learn more about using my Nikon D3100.</li>
<li>To blog more often.</li>
</ol>
<p>Now these are in no particular order and they may not sound S.M.A.R.T to you at all, but I have done my calculations on what, why, time scales, etc. and I will slowly share my experiences through this blog (goal number 6).</p>
<p>Let the good times begin <img src='http://www.masudk.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.masudk.com/2012/01/new-year-new-goals/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>jQuery Palindrome textbox colour change effect</title>
		<link>http://www.masudk.com/2011/08/jquery-palindrome-textbox-colour-change-effect/</link>
		<comments>http://www.masudk.com/2011/08/jquery-palindrome-textbox-colour-change-effect/#comments</comments>
		<pubDate>Sun, 21 Aug 2011 20:28:29 +0000</pubDate>
		<dc:creator>Masud</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Web 2.0]]></category>
		<category><![CDATA[jquery]]></category>

		<guid isPermaLink="false">http://www.masudk.com/?p=1062</guid>
		<description><![CDATA[I was recently asked how to write a palindrome function where a string entered in a text box is confirmed as palindrome by changing the background colour of the text box. Following is the code for that. If you want to see it live in action, click here.]]></description>
			<content:encoded><![CDATA[<p>I was recently asked how to write a palindrome function where a string entered in a text box is confirmed as palindrome by changing the background colour of the text box.</p>
<p>Following is the code for that. If you want to see it live in action, click <a href="http://www.masudk.com/palindrome.html" target="_blank">here</a>.</p>
<pre class="brush: jscript; title: ; notranslate">
&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.01//EN&quot;
    &quot;http://www.w3.org/TR/html4/strict.dtd&quot;
    &gt;
&lt;html lang=&quot;en&quot;&gt;
&lt;head&gt;
    &lt;title&gt;jQuery Textbox Colour Demo&lt;/title&gt;
    &lt;script src=&quot;//ajax.googleapis.com/ajax/libs/jquery/1.4.3/jquery.min.js&quot;&gt;&lt;/script&gt;
    &lt;style type=&quot;text/css&quot;&gt;
        #textbox.green {background-color:green;}
        #textbox.red {background-color:red;}
    &lt;/style&gt;

    &lt;script type=&quot;text/javascript&quot;&gt;

    $(document).ready(function() {

        $(&quot;#textbox&quot;).keyup(function() {
            if(($(&quot;#textbox&quot;).val() == &quot;&quot;)) {
                $(&quot;#textbox&quot;).removeClass(&quot;red&quot;);
                $(&quot;#textbox&quot;).removeClass(&quot;green&quot;);
            }
            else {
                if(isPalindrome($(&quot;#textbox&quot;).val())) {
                    $(&quot;#textbox&quot;).removeClass(&quot;red&quot;);
                    $(&quot;#textbox&quot;).addClass(&quot;green&quot;);
                }
                else {
                    $(&quot;#textbox&quot;).removeClass(&quot;green&quot;);
                    $(&quot;#textbox&quot;).addClass(&quot;red&quot;);
                }
            }
        });
    });

    function reverseString(strval){
        var  reversestrval = &quot;&quot;;
        var  len = strval.length;
        for (var i = len ; i &gt; 0 ; i--){
            reversestrval += strval.charAt(i-1)
        }
        return reversestrval;
    }

    function isPalindrome(strval)
    {
        if(strval == reverseString(strval)) {
                return true;
            }
            else {
                return false;
            }
    }
    &lt;/script&gt;
&lt;/head&gt;
&lt;body&gt;
    Enter string: &lt;input type=&quot;text&quot; name=&quot;query&quot; id=&quot;textbox&quot;/&gt;
&lt;/body&gt;
&lt;/html&gt;
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.masudk.com/2011/08/jquery-palindrome-textbox-colour-change-effect/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Log4perl for file and email logging</title>
		<link>http://www.masudk.com/2011/04/log4perl-for-file-and-email-logging/</link>
		<comments>http://www.masudk.com/2011/04/log4perl-for-file-and-email-logging/#comments</comments>
		<pubDate>Mon, 18 Apr 2011 11:04:03 +0000</pubDate>
		<dc:creator>Masud</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Perl]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[log4perl]]></category>
		<category><![CDATA[logging]]></category>
		<category><![CDATA[perl]]></category>

		<guid isPermaLink="false">http://www.masudk.com/?p=1045</guid>
		<description><![CDATA[I have recently started using log4perl for logging in Perl.  I have used log4j before and was hoping log4perl delivers in a similar fashion and it surely does. I have found it extremely powerful, especially with different logging levels, categories and appenders available. To write a simple logger, one can write a simple configuration file. [...]]]></description>
			<content:encoded><![CDATA[<p>I have recently started using log4perl for logging in Perl.  I have used log4j before and was hoping log4perl delivers in a similar fashion and it surely does. I have found it extremely powerful, especially with different logging levels, categories and appenders available. To write a simple logger, one can write a simple configuration file. For example, I have called this file log4perl.conf:</p>
<pre class="brush: plain; title: ; notranslate">
log4perl.logger=INFO, LOGFILE
log4perl.logger.Loggers.MailLogger=ERROR, Mailer

log4perl.appender.LOGFILE = Log::Log4perl::Appender::File
log4perl.appender.LOGFILE.filename = ../logs/plif.log
log4perl.appender.LOGFILE.mode=append
log4perl.appender.LOGFILE.layout = Log::Log4perl::Layout::PatternLayout
log4perl.appender.LOGFILE.layout.ConversionPattern = %d{dd MMM yyyy HH:mm:ss} - [%p] Line %L - %m%n

log4perl.appender.Mailer = Log::Dispatch::Email::MailSender
log4perl.appender.Mailer.to = masud.khokhar@bodleian.ox.ac.uk
log4perl.appender.Mailer.from = Masud Khokhar masud.khokhar@gmail.com
log4perl.appender.Mailer.subject = Fatal Error!
log4perl.appender.Mailer.smtp = smtp.ox.ac.uk
log4perl.appender.Mailer.layout = Log::Log4perl::Layout::PatternLayout
log4perl.appender.Mailer.layout.ConversionPattern = %d{dd MMM yyyy HH:mm:ss} - [%p] Line %L - %m%n
log4perl.appender.Mailer.buffer = 0
</pre>
<p>and initialise it in the code (I use Readonly but that&#8217;s not the important part here):</p>
<pre class="brush: plain; title: ; notranslate">
#### For logging
use Log::Log4perl;
use Log::Dispatch;

#### Global logger initialisations
Readonly::Scalar my $LOG_PATH =&gt; '../config/log4perl.conf';
Log::Log4perl-&gt;init($LOG_PATH);

#### Set up a file logger for logging
Readonly::Scalar my $FILE_LOGGER =&gt; Log::Log4perl-&gt;get_logger('logger');

#### Set up a mail logger
Readonly::Scalar my $MAIL_LOGGER =&gt;  Log::Log4perl-&gt;get_logger('Loggers::MailLogger');
</pre>
<p>and then you can log to file by using</p>
<pre class="brush: perl; title: ; notranslate">
$FILE_LOGGER-&gt;info( 'Processing record:' . $row_ref-&gt;{record_id} );
</pre>
<p>and send an email by using</p>
<pre class="brush: perl; title: ; notranslate">
$MAIL_LOGGER-&gt;fatal( 'Error processing record:' . $row_ref-&gt;{record_id} );
</pre>
<p><em><strong>Tip: </strong>If the mail part of your logging is not working, try installing Mail::Sender through CPAN or through other source (e.g. apt-cache search mail sender)</em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.masudk.com/2011/04/log4perl-for-file-and-email-logging/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>McShib &#8211; The Future of Shibboleth</title>
		<link>http://www.masudk.com/2011/03/mcshib-the-future-of-shibboleth/</link>
		<comments>http://www.masudk.com/2011/03/mcshib-the-future-of-shibboleth/#comments</comments>
		<pubDate>Wed, 02 Mar 2011 14:40:17 +0000</pubDate>
		<dc:creator>Masud</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Events]]></category>
		<category><![CDATA[Shibboleth]]></category>
		<category><![CDATA[McShib]]></category>
		<category><![CDATA[shibboleth]]></category>

		<guid isPermaLink="false">http://www.masudk.com/?p=1014</guid>
		<description><![CDATA[I recently attended McShib, a Scottish Federated Access Management Forum held in Edinburgh on the 24th of February, 2011. Well known Shibboleth developers, Chad La Joie, Scott Cantor and Brent Pullman flew from US to provide us with a roadmap and future of Shibboleth, which I found extremely useful. Considering that I recently jumped into [...]]]></description>
			<content:encoded><![CDATA[<p>I recently attended <a href="http://www.rsc-eden.co.uk/events/event_details.asp?eid=804" target="_blank">McShib</a>, a Scottish Federated Access Management Forum held in Edinburgh on the 24th of February, 2011. Well known Shibboleth developers, Chad La Joie, Scott Cantor and Brent Pullman flew from US to provide us with a roadmap and future of Shibboleth, which I found extremely useful. Considering that I recently jumped into the the world of federated access, I could relate to a lot of frustrations and questions that other colleagues were raising. This also made me realise that I am not the only one who went through those challenges. The good news though is that Shibboleth developers are aware of this, and they are trying really hard to overcome these initial obstacles.</p>
<p>I am going to write down some important points from the presentations for people who were unable to attend but are interested in knowing what happened.</p>
<ul>
<li>Revamp of documentation</li>
<li>Looking for a new stable home for Shibboleth</li>
<li>Enhance attribute resolver functionality in future, which means you can merge attributes at SP, drop scopes, or do some other things with an attribute on the SP side.</li>
<li>The audit logs will be revamped, in Apache shortcode styles which you can use. E.g. %D, %u, etc. You can chose whichever detail you want to go in. You can therefore feed that into log analysers, e.g. AWStats.</li>
<li>Embedded discovery service (1.0 beta) releasing very soon. Consumes data from SP 2.4+.</li>
<li>The centralized discovery service will also have a major release soon. It will use the embedded DS as UI.</li>
<li>The centralized DS will also package a Servlet container within itself, so it lowers the learning barrier for that.</li>
<li>IdP 3.0 (major release) – separate credential extraction from validation. (As an example, to dig up things easily from a packaged message). This might be useful for sending credentials through software rather than a browser and then digging response from the returned packaged message.</li>
<li>SPNEGO support (so you login to active directory means you login to your IdP).</li>
<li>Conditional evaluation will be introduced, e.g. if the username is @student, it goes to one LDAP directory, and if the username is @staff, it goes to another.</li>
<li>Out of the box attribute consent engine, similar to uApprove (Shib documentation has screenshots for IdP 3.0).</li>
<li>Performance metrics will be introduced for IdP, e.g. that filter policy is taking a long time to run, e.g. that LDAP server is not responding in time, etc.</li>
<li>IdP 3.0 shipped with installer configured container (again lowers learning barrier).</li>
<li>Metadata Aggregator (to overcome the so called national boundaries).</li>
<li>ETag and Last-Modified based conditional GETs for metadata. Already supported by UK metadata servers. Not gzip compression yet though.</li>
<li>Metadata is now reloaded in a background thread. IdP 2.2 and SP 2.4 supports this.</li>
<li>Dynamic metadata retrieval</li>
<li>Just in time fetching of metadata by entity ID.</li>
<li>As Sha1 becomes weak, rollout of new cryptographic algorithms is becoming an important question. However, rollout can cause problems. Does your relying party support the same, e.g. Sha512.</li>
<li>In future, simple string attributes will be supported for release filter policy which is based on entity attributes (e.g. EU, so release the name attribute, US so don’t).</li>
<li>For better UI purposes, the metadata has two new extensions.
<ul>
<li>UIInfo – display name, description, logo, keywords, information and privacy URLs</li>
<li>DiscoHints – IP Address ranges, domain names, geolocations. This is used for sorting purposes in the discovery services. Discovery service will not automatically pick or remove an IdP on this basis.</li>
</ul>
</li>
<li>Regarding SP UI, there should be a focus on Lazy Sessions and use of isPassive (do not disturb the user unless absolutely necessary). True SSO experience.</li>
<li>SP UI should use errors that tell a user to contact the support team of the organization in question, not their home organization.</li>
<li>Regarding IdP UI, it is recommended that you put your contact information on all pages, including error.jsp, login.jsp and consent pages which are *.jsp. Put your branding on all pages as well.</li>
<li>Keep the login page as simple as possible. Keep each page focussed on one job.</li>
<li>Detect and trap lack of LoginContext
<ul>
<li>Happens when people bookmark the authn page.</li>
</ul>
</li>
<li>Install uApprove
<ul>
<li>Even if consent isn’t required, informing the user is a good thing.</li>
</ul>
</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.masudk.com/2011/03/mcshib-the-future-of-shibboleth/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Configuring AWStats for Response Time Parameters</title>
		<link>http://www.masudk.com/2011/02/configuring-awstats-for-response-time-parameters/</link>
		<comments>http://www.masudk.com/2011/02/configuring-awstats-for-response-time-parameters/#comments</comments>
		<pubDate>Fri, 18 Feb 2011 10:25:53 +0000</pubDate>
		<dc:creator>Masud</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Web 2.0]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[awstats]]></category>

		<guid isPermaLink="false">http://www.masudk.com/?p=1005</guid>
		<description><![CDATA[Recently I was looking at various web log analysers that I can use with Apache to generate standard and custom statistics. The package that seemed most promising was AWStats. AWStats does a great job, especially with standard statistics. It is also very easy to install. However, if you want to see performance related attributes in [...]]]></description>
			<content:encoded><![CDATA[<p>Recently I was looking at various web log analysers that I can use with Apache to generate standard and custom statistics. The package that seemed most promising was AWStats. AWStats does a great job, especially with standard statistics. It is also very easy to install. </p>
<p>However, if you want to see performance related attributes in AWStats, you need to use the &#8220;Extra Sections&#8221; in AWStats. I was interested in the response time parameter for a query in Apache. As a result, my Apache LogFormat looks something like:</p>
<blockquote><p>LogFormat &#8220;%h %u %l %t \&#8221;%r\&#8221; %>s %b \&#8221;%{Referer}i\&#8221; \&#8221;%{User-Agent}i\&#8221; %T %D&#8221; 443_combined
</p></blockquote>
<p>Where %T represents the response time in seconds (useless as most requests are performed in under a second) and %D represents the response time in microseconds.</p>
<p>Equivalent AWStats log format is:</p>
<blockquote><p>LogFormat=&#8221;%host %other %logname %time1 %methodurl %code %bytesd %refererquot %uaquot %other %extra1&#8243;</p></blockquote>
<p>And to show the %extra1 parameter in the graphical page, you use the EXTRA SECTIONS.</p>
<pre class="brush: plain; title: ; notranslate">
ExtraSectionName1=&quot;Response Time (in microseconds)&quot;
ExtraSectionCodeFilter1=&quot;200 304&quot;
ExtraSectionCondition1=&quot;URL,\/&quot;
ExtraSectionFirstColumnTitle1=&quot;Response Time&quot;
ExtraSectionFirstColumnValues1=&quot;extra1,([0-9]*)$&quot;
ExtraSectionFirstColumnFormat1=&quot;%s&quot;
ExtraSectionStatTypes1=P
ExtraSectionAddAverageRow1=0
ExtraSectionAddSumRow1=0
MaxNbOfExtra1=200
MinHitExtra1=1
</pre>
<p>Details of these parameters are in sample AWStats config file.</p>
<p>To configure AWStats to keep the data before Apache logs are rotated, you can write a pre-rotate routine in /etc/logrotate.d/apache2 just above postrotate, e.g. </p>
<blockquote><p>prerotate<br />
          /usr/share/awstats/wwwroot/cgi-bin/awstats.pl -update -config=/etc/awstats/awstats.YOUR-CONFIG-FILE-NAME.conf</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.masudk.com/2011/02/configuring-awstats-for-response-time-parameters/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Perl &#8211; Oracle Configuration on Debian Linux</title>
		<link>http://www.masudk.com/2011/02/perl-oracle-configuration-on-debian-linux/</link>
		<comments>http://www.masudk.com/2011/02/perl-oracle-configuration-on-debian-linux/#comments</comments>
		<pubDate>Sat, 12 Feb 2011 23:45:10 +0000</pubDate>
		<dc:creator>Masud</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Perl]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[configuration]]></category>
		<category><![CDATA[dbd]]></category>
		<category><![CDATA[dbi]]></category>
		<category><![CDATA[oracle]]></category>
		<category><![CDATA[perl]]></category>

		<guid isPermaLink="false">http://www.masudk.com/?p=982</guid>
		<description><![CDATA[Establishing a connection between Perl and Oracle on a Debian based system should be a fairly straightforward thing to achieve. However, in practice, it is far from that. The most common problem that many people face is the installation of Oracle client on the system, especially if the system on which you will run your [...]]]></description>
			<content:encoded><![CDATA[<p>Establishing a connection between Perl and Oracle on a Debian based system should be a fairly straightforward thing to achieve. However, in practice, it is far from that.</p>
<p>The most common problem that many people face is the installation of Oracle client on the system, especially if the system on which you will run your script is not the same as the Oracle database server (which is quite often the case). </p>
<p>Let&#8217;s first download the important bits of software. At this time, the most recent version of instant client is 11.2, which can be downloaded from <a href="http://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html" target="_blank">here</a> (for Linux x86-64). Download the basic package, the SDK package, and the SQL Plus package. Extract all these files in the same folder (the sdk files should automatically extract in a sub folder called sdk in the main folder), the default folder created is called instant_client_11_2. Place this folder somewhere you would like to keep your instant client permanently, e.g. /usr/share/instant_client_11_2.</p>
<p>Now, as root, install the DBI module. The least problematic way to do this is to get the package and install it manually. To do this, use CPAN, e.g. as user masud,</p>
<pre class="brush: bash; title: ; notranslate">
masud@monkey:~$ sudo cpan
cpan[1]&gt; get DBI
...
...
...
DBI-1.616/ex/corogofer.pl
DBI-1.616/ex/perl_dbi_nulls_test.pl
DBI-1.616/ex/profile.pl
CPAN: File::Temp loaded ok (v0.18)
Warning (usually harmless): 'YAML' not installed, will not store persistent state
cpan[2]&gt;quit
</pre>
<p>Now as user root, install the module. To install the module properly, set your LD_LIBRARY_PATH to your instant client&#8217;s path. Also make sure you have cc or gcc installed. </p>
<pre class="brush: bash; title: ; notranslate">
masud@monkey:~$ sudo su -
monkey:~# export LD_LIBRARY_PATH=/usr/share/instant_client_11_2
monkey:~# cd /home/masud/.cpan/build/DBI-1.616-LWq6lO
monkey:~# perl Makefile.PL
monkey:~# make
monkey:~# make install
monkey:~# exit
</pre>
<p>Once DBI is successfully installed, it&#8217;s time for installation of DBD::Oracle. To do this, become root and use CPAN.</p>
<pre class="brush: bash; title: ; notranslate">
masud@monkey:~$ sudo su -
monkey:~# cpan install DBD::Oracle
monkey:~# exit
masud@monkey:~$
</pre>
<p>which should go fairly smoothly. The next thing to do is to install libaio1. This can be simply done by using apt-get. Don&#8217;t forget to export the LD_LIBRARY_PATH for the user running the script, in our case, &#8216;masud&#8217;.</p>
<pre class="brush: bash; title: ; notranslate">
masud@monkey:~$ sudo apt-get install libaio1
masud@monkey:~$ export LD_LIBRARY_PATH=/usr/share/instant_client_11_2
</pre>
<p>If you work with a tnsnames.ora file, you can place it in the instant client folder (in the sub folders network/admin). You need to create these folders yourself. </p>
<pre class="brush: bash; title: ; notranslate">
masud@monkey:~$ cd /usr/share/instant_client_11_2
masud@monkey:~$ mkdir network
masud@monkey:~$ cd network
masud@monkey:~$ mkdir admin
</pre>
<p><strong>Important:</strong> Your connection with SQL Plus won&#8217;t work unless you have exported the LD_LIBRARY_PATH to the instant client folder for the user running the SQL Plus. A warning sign for this is when you get the following error when trying to run SQL plus (./sqlplus):</p>
<blockquote><p><em>./sqlplus: error while loading shared libraries: libsqlplus.so: cannot open shared object file: No such file or directory</em>
</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.masudk.com/2011/02/perl-oracle-configuration-on-debian-linux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Primo Central &#8211; Oxford&#8217;s Experience</title>
		<link>http://www.masudk.com/2011/02/primo-central-oxfords-experience/</link>
		<comments>http://www.masudk.com/2011/02/primo-central-oxfords-experience/#comments</comments>
		<pubDate>Fri, 11 Feb 2011 12:10:11 +0000</pubDate>
		<dc:creator>Masud</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Ex Libris]]></category>
		<category><![CDATA[Primo]]></category>
		<category><![CDATA[Primo Central]]></category>
		<category><![CDATA[articles]]></category>
		<category><![CDATA[central]]></category>
		<category><![CDATA[exlibris]]></category>
		<category><![CDATA[primo]]></category>

		<guid isPermaLink="false">http://www.masudk.com/?p=970</guid>
		<description><![CDATA[Many of us working on the library systems side already know about Primo Central index. For those who don&#8217;t, here is an excerpt from Ex Libris&#8217;s official site. The Primo Central index is a mega-aggregation of hundreds of millions of scholarly e-resources of global and regional importance. These include journal articles, e-books, reviews, legal documents [...]]]></description>
			<content:encoded><![CDATA[<p>Many of us working on the library systems side already know about <a href="http://www.exlibrisgroup.com/category/PrimoCentral" target="_blank">Primo Central index</a>. For those who don&#8217;t, here is an excerpt from Ex Libris&#8217;s official site.</p>
<blockquote><p>The Primo Central index is a mega-aggregation of hundreds of millions of scholarly e-resources of global and regional importance. These include journal articles, e-books, reviews, legal documents and more that are harvested from primary and secondary publishers and aggregators, and from open-access repositories. Ex Libris works with the world’s leading providers of global and regional information to benefit its customer community. The Primo Central index fully exploits the richness of the underlying data to facilitate fast and easy search.</p></blockquote>
<p>Oxford went live with Primo Central in September 2010. We made Primo Central index part of our resource discovery platform <a href="http://solo.bodleian.ox.ac.uk" target="_blank">SOLO</a> based on Ex Libris&#8217;s <em>Primo</em>, and introduced it as a new tab called &#8220;<em>Journal Articles (beta)</em>&#8220;. We tagged it as beta, because we still believe that there are areas where Primo Central is not as comprehensive as it could be, e.g. Law resources. We also provided a brief description of the limitations and the advantages of Primo Central on SOLO&#8217;s home page so that people don&#8217;t think of it as comprehensive and the only place to look for resources. So far, we have received really good feedback from our users, excerpts of which follow:</p>
<blockquote><p>This evening a reader successfully found the article he was looking for with just a couple of words in the title, rough year of publication and journal title. He (and me) were delighted.</p></blockquote>
<blockquote><p>the beta version of the solo journal search is truly great!
</p></blockquote>
<blockquote><p>Solo Journal Articles (beta) &#8211; good stuff: User-friendly, and it&#8217;s made clear that this is not an exhaustive search of all subscribed databases. </p></blockquote>
<blockquote><p>I think Primo central is very promising. I started showing it to students and staff, mostly because I have observed that this years new students &#8211; grads and undergrads &#8211; tend to use SOLO.</p>
<p>Primo Central will often get good results even if you do a fairly rubbishy search, and compares well with google scholar. For Law researchers, I just give the usual advice that it&#8217;s not going to pick up westlaw articles etc, and that it won&#8217;t be comprehensive&#8230;</p></blockquote>
<p>In my opinion, Primo Central as a resource is very valuable and promising. With more and more publishers providing their metadata to Ex Libris for addition to Primo Central, things are moving in the right direction. Please do share your experience if you subscribe to Primo Central or any other mega-aggregated index tool, such as <a href="http://www.serialssolutions.com/summon/" target="_blank">Serial Solutions Summon</a>, <a href="http://encoreforlibraries.com/products#es" target="_blank">Encore Synergy</a>, <a href="http://www.ebscohost.com/discovery/eds-about" target="_blank">EBSCO Discovery Service</a>, etc.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.masudk.com/2011/02/primo-central-oxfords-experience/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Primo Enrichment Plugin for Nielsen Data</title>
		<link>http://www.masudk.com/2011/02/primo-enrichment-plugin-for-nielsen-data/</link>
		<comments>http://www.masudk.com/2011/02/primo-enrichment-plugin-for-nielsen-data/#comments</comments>
		<pubDate>Mon, 07 Feb 2011 22:25:21 +0000</pubDate>
		<dc:creator>Masud</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Ex Libris]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Primo]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[enrichment]]></category>
		<category><![CDATA[nielsen]]></category>
		<category><![CDATA[primo]]></category>
		<category><![CDATA[solr]]></category>

		<guid isPermaLink="false">http://www.masudk.com/?p=948</guid>
		<description><![CDATA[Primo, the Ex Libris resource discovery platform, provides an architecture to write plug-ins on top of it. One of these plug-ins is the Enrichment plug-in. I have recently written one of these plug-ins, which enhances Oxford&#8217;s resource discovery platform called SOLO (based on Primo). The plug-in searches Nielsen data against every record in Primo and [...]]]></description>
			<content:encoded><![CDATA[<p>Primo, the Ex Libris resource discovery platform, provides an architecture to write plug-ins on top of it. One of these plug-ins is the Enrichment plug-in. I have recently written one of these plug-ins, which enhances Oxford&#8217;s resource discovery platform called <a href="http://solo.bodleian.ox.ac.uk" target="_blank">SOLO</a> (based on Primo). The plug-in searches Nielsen data against every record in Primo and enriches the record (more precisely record&#8217;s PNX) with table of contents, short descriptions and long descriptions (whichever available). The enriched data is displayable and searchable. Nielsen data is indexed in Apache&#8217;s Solr search server and request for the data are made through a web service call from within the plug-in.</p>
<p>More details about the plug-in along with source code and installation instructions can be found here.</p>
<p><a href="http://www.exlibrisgroup.org/display/PrimoCC/Nielsen+Enrichment+Plug-in+for+Primo"  target="_blank">http://www.exlibrisgroup.org/display/PrimoCC/Nielsen+Enrichment+Plug-in+for+Primo<br />
</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.masudk.com/2011/02/primo-enrichment-plugin-for-nielsen-data/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

