Google Alerts for Research

If you’ve been working on research papers, you must realize how difficult it is to keep track of latest papers and upcoming conferences. So, here’s the solution. Use Google Alerts to set up alerts for yourself. Here’s a screenshot of my settings. I’ve set up alerts for IEEE, ACM and Usenix for “remote attestation” so that whenever there appears a new paper, I’ll see it. (The CFP thing also works fine. I’ve managed to find many conferences this way.) If you can think of any more alerts, do let me know.

Writing a New Data Connector in Shibboleth

I’ve been working on the Shibboleth project, trying to implement the identity management framework and trying to extend it. You’ll have to wait for a paper or thesis for more details about the work we’re actually doing.

In essence, the Shibboleth (shib) Identity Provider (IdP) authenticates a user and releases certain attributes of the user to the Service Provider (SP). The standard implementation of the IdP can extract attributes from the filesystem, an LDAP server or an RDBMS. If you want to retrieve attributes from some obscure place (like your application specializing in dynamically generating some attributes), you need to write your own data connector. Here are the steps you need to take in order to create a new data connector: (I’m assuming you’re using the IdP provided by Internet2 — written in Java)

  1. Add a dataconnector to shibboleth-2.0-attribute-resolver-dc.xsd in src/main/resources/schema
  2. Add resolver-new-connector.xml where resolver-ldap.xml is (this is only for the tests through)
  3. Add new-connectorfactorybean.java where ldapconnectorfactorybean.java is.
  4. Add new-connectorbeandefinitionparser.java where ldapconnectorbeandefinitionparser.java is.
  5. Add new-dataconnector.java to common.attribute.resovler.provider.dataconnector
  6. Register the new bean parsers… this one’s a little tricky… See code for details.

After that, you need to write the relevant XML in conf/attribute-resolver.xml and conf/attribute-filter.xml to release the new attribute. Also, you need to write an attribute map on the SP side to map the new attribute to a header.

I’m sure this doesn’t make much sense right now but we’ll be releasing the code of our data connector pretty soon inshaallah and you’ll be able to see the whole thing work. Stay tuned.

Web services using Apache Tomcat and Eclipse

After working for almost a week with outdated and severely complicated yet unhelpful tutorials for web services using Eclipse (Europa), I decided to put together a simple, step-by-step, to-the-point tutorial on how to use a simple, small web service. It’s mostly a screencast with some explanations.

Read it here in PDF.

Alternative link: here.

Mirror post on: http://serg.imsciences.edu.pk

UML and Patterns

UML is an essential tool in SE today. I’m especially interested in finding ways of introducing MDE to students and for that UML and OCL are an essential requirement.

I’ve been reading “Applying UML and Patterns”, 2nd Ed by Larman and I really like it. The site offers good resources, especially in the “diagrams” section. You can download Visio sources of the UML diagrams used in the book which are really helpful in creating presentations for courses.

You can find them here.

Eclipse, Java, C++, Lisp, LaTeX and Isabelle

I’ve recently re-discovered Eclipse. My first encounter with it was back when I was learning Prolog. I worked with it and while I liked the work-flow, I never got to using it full-time. It’s back and it’s staying.

Most people may think of Eclipse as simply a Java IDE but there’s a lot more to it that just that. Eclipse is at heart, a plugin framework and is very very extensible. Let me tell you why:

I’ve configured Eclipse to work as my primary C++ IDE, as my primary Lisp IDE, as my thesis word processor using LaTeX and am working on using it for as my Java IDE too. Now, I may be wrong but there’s no other IDE which can do all this.

As an example, see how easy it is to get Lisp working in Eclipse on Linux.

  • Download CUSP plugin for Eclipse
  • Extract the contents of the archive
  • Copy the folder jasko.tim.lisp to the plugins folder of Eclipse
  • The Lisp distro used is SBCL which sits in the sbcl sub-folder
  • Create a symbolic link to sbcl executable in someplace accessible globallly:

ln -s /usr/share/eclipse/plugins/jasko.tim.lisp/sbcl/sbcl /usr/bin/sbcl

  • assuming you installed Eclipse in /usr/share
  • Start Eclipse and change perspective to Lisp.

Six easy steps and you have a lovely Lisp IDE. Oh, and if you’re worried about Java being a “slow” language, you haven’t been around the latest JREs. Get the latest JRE and try Eclipse. You’ll love it.

Now, if I can only get my Isabelle to work with Eclipse! Yes, there is a plugin that does this. It’s just too crude right now.