Web hooks Protocol – Pubsubhubbub

A simple, open, server-to-server web-hook-based pubsub (publish/subscribe) protocol as an extension to Atom and RSS.

Parties (servers) speaking the PubSubHubbub protocol can get near-instant notifications (via webhook callbacks) when a topic (feed URL) they’re interested in is updated.

The protocol in a nutshell is as follows:

  • An feed URL (a "topic") declares its Hub server(s) in its Atom or RSS XML file, via <link rel="hub" …>. The hub(s) can be run by the publisher of the feed, or can be a community hub that anybody can use. (Atom and RssFeeds are supported)
  • A subscriber (a server that’s interested in a topic), initially fetches the Atom URL as normal. If the Atom file declares its hubs, the subscriber can then avoid lame, repeated polling of the URL and can instead register with the feed’s hub(s) and subscribe to updates.
  • The subscriber subscribes to the Topic URL from the Topic URL’s declared Hub(s).
  • When the Publisher next updates the Topic URL, the publisher software pings the Hub(s) saying that there’s an update.

The protocol is decentralized and free. No company is at the center of this controlling it. Anybody can run a hub, or anybody can ping (publish) or subscribe using open hubs.

To bootstrap this, we’ve provided an open source reference implementation of the hub (the hard part of the protocol) that runs on Google App Engine, and is open for anybody to use.

<iframe src="http://docs.google.com/present/embed?id=ajd8t6gk4mh2_34dvbpchfs&size=m" frameborder="0" width="555" height="451"></iframe>

Mylyn: Task-focused interface

Mylyn is a task-focused interface[Image] for Eclipse that reduces information overload and makes multi-tasking easy. It does this by making tasks a first class part of Eclipse, and integrating rich and offline editing for repositories such as Bugzilla, Trac, and JIRA. Once your tasks are integrated, Mylyn monitors your work activity to identify relevant information, and uses this task context to focus the user interface on the task-at-hand. This puts the information you need at your fingertips and improves productivity by reducing searching, scrolling, and navigation. By making task context explicit Mylyn also facilitates multitasking, planning, reusing past efforts, and sharing expertise.

Mylyn 3.1 Screenshot

Distributed searching with SPHINX

When we performing full-text searching through a number of large indexes it is important that we get results in shortest time possible. To ensure this SPHINX provides feature of “Distributed Searching”.

Today we will look how we will look on SPHINX’s ability to perform distributed searching. If you don’t know what sphinx is please refer to my other post Introduction to Sphinx Search.

For example if you have a large index you can easily distribute. You can create this index in chunks and assign each chunk to each sphinx agent. You will query to this index and sphinx will do the searching in parallel and give you final results. This dramatically improves the speed of searching. This concept similar to table partitioning in mysql.

Here is the example to setup a distributed index
index mycompleteindex
{
type = distributed
local = chunk0
agent = localhost:3312:chunk2
agent = localhost:3312:chunk3
agent = localhost:3312:chunk4
}

Here type = distributed tells that this is not a normal index. As we only have one searchd instance installed so we are using same instance localhost:3312 and declaring it an agent.

With each agent are have specified an chunk to be served by this agent. The example shows distributed searching in one system the same can be achieved by using separate server for each chunk.

Note that this post is only introduction to this feature for further details refer to sphinx documentation.

http://wasimasif.wordpress.com/2009/09/09/distributed-searching-with-sphinx/

Code Review Tools (free)

When the developers had written the codes, we need the Code review Tools to find the BUG out. So, we can review the style, logic,……., and find the problems ,and modify the code. The Code Review is the key in coding. There are five Open-source Code Review tools below:

1. Review board :
Review board is a tool based on web,which was primarily designed to those who like to use Python Programming Language and Django .Review could help to trace the change of the pending code and make the Code-Review more easily and simply. Although Review board was originally designed to the VMware, it could be universal. At present, it can support such management soft wares as SVN,CVS, Perforce, Git ,Bazaar, Mercurial.Yahoo is one of the review-board users.
“Review board has changed the way to review code, which could be a mentor to the programmer .When you access the site ww.search.yahoo.com, all of the codes are reviewed by the Review board tools.”These words you will see :”We’re great fans of your work!” – Yahoo! Web Search”.
13
2. Codestrike:
Codestrike is also a Web-based tool, which was chiefly used to review the online code the GCI-Perl script supported. Traditional document reviews are supported, as well as reviewing diffs generated by an SCM (Source Code Management) system and plain unidiff patches. Codestriker could be integrated in CVS, Subversion, ClearCase, Perforce and Visual SourceSafe.
Codestriker is written in Perl, and runs on all of the major platforms and browsers, and is licensed under the GPL.
View an example code review:
2
3. Groogle
Groogle is a web based peer code review tool providing a range of features aimed at easing the code review process. Features include:
• Subversion integration, working against live repositories.
• Syntax highlighting for a wide variety of languages.
• Comparisons of entire repository trees to find added, removed and modified files and directories.
• Diffing of individual files and a graphical representation of modifications.
• E-mail notifications to notify review participants when a reviews status changes.
• Optional integration against a wide range of existing authentication mechanisms.
3

4.Rietveld: Code Review for Subversion, hosted on Google App Engine .It was based on Mondrian, which was similar to Review board. But it used django that was the most popular web development frame, and supported the Subversion. At present, All who used Google Code can use Rietveld and Python Subversion server, too.
4

5. JCR
JCR (or jcodereview as it’s known on Sourceforge) is a web application for performing and managing formal code reviews. It can be used for reviews of any type of source code, although it has some special smarts for reviewing Java projects. It has special features to make large-scale reviews not only practical but easy and fast. JCR is intended to assist:
• Reviewers. All changes to code are highlighted, and syntax highlighting works for most languages. Code extracts are shown for context when adding comments. If reviewing Java code, references to other classes within the file are clickable, so that you can drill into the detail if required. After review comments have been made, those comments can themselves be reviewed, and the required actions decided on and tracked
• Project owners. Review projects are easy to create and configure, and support (but don’t require) integration with your source code management (SCM) system
• Process bigots. Details of all comments are held in the database, along with any actions required, and whether they’ve been completed. Status reports can be viewed at any time, and also show how much review activity took place on each file (to make sure they were all reviewed)
• Architects and developers. As well as viewing the comments made for a project, it’s possible to see details of all review projects and comments for a specified file – good for finding code that would benefit from refactoring.
JCR is generally targeted at larger-scale and more formal code reviews than other review tools.
5

Source: http://www.microsoftbible.com/open-source-code-review-tools-review-board-codestrike-groogle-jcr.html

Online GZip Testing Tools

Sharing some online gzip testing tools for knowing if gzip is enabled on server or not.

1. http://gziptest.com/

2. http://www.gidnetwork.com/tools/gzip-test.php

3. http://nontroppo.org/tools/gziptest/ (browser based testing)

Force a PDF or MP3 to download (without loading in memory)

Just add this line in .htaccess file, and it’ll force PDF file to download rather than opening it on adobe reader.

<FilesMatch ".(?i:(pdf|mp3))$">
<IfModule mod_headers.c>
ForceType application/octet-stream
Header set Content-Disposition attachment
</IfModule>
</FilesMatch>

Here are the helpful links …

1. http://www.thingy-ma-jig.co.uk/blog/06-08-2007/force-a-pdf-to-download
2. http://www.askapache.com/htaccess/using-http-headers-with-htaccess.html

Mysql Client for Ubuntu / Eclipse

Today, i found a nice Mysql client after migrating to Ubuntu. Previouly i was using Emma which was not so user friendly.

QuantumDB is a simple but powerful database access plug-in for the Eclipse Development Platform. QuantumDB allows you to:

  • connect to databases using standard JDBC drivers
  • review schemas, tables, views and sequences
  • look up column, index and foreign key information
  • issue ad-hoc queries or other SQL statements against the database
  • manage, edit, and work with SQL files (*.sql)
  • issue updates, deletes, and inserts using simple, easy-to-use wizards

QuantumDB works with any JDBC-complaint database, including:

  • Adabas
  • DB2
  • DB2 on AS400
  • HSQLDB
  • Informix
  • MySQL
  • Oracle
  • Pointbase
  • PostgreSQL
  • Sybase

The QuantumDB developers regularly use a wide variety of database products as they add new features to the plugin.

Point eclipse at : http://quantum.sourceforge.net/update-site

You will still have to download mysql java connector from here or download connector file here

[Image]

Updated 03 Oct, 2009:  It has very poor usability with eclipse version. I think the currently realeased version is not stable enough.

Agile Design Tool for prototyping Rich User Interfaces

Fluid Information Architecture? fluidIA is an emerging agile design tool for prototyping rich user interfaces. The big idea behind this experiment is whether we as interaction designers, IA’s, UX professionals and developers can create our own prototyping tool in an open way.

here is the link …
http://www.fluidia.org/

Scrum Excel Sheets – Free Scrum Tool Option

I was doing some research (and it’s in-progress) on using free tools for scrum at office … so there are some options using excel files. As we can use excel files for such purpose.
Here are my findings …

1. Scrum for self

An Excel sheet to help you plan one-man Scrum for weekly sprints.

Screenshot of Excel

http://vsbabu.org/mt/archives/2006/12/25/scrum_for_self.html

2. Bas Vodde Templates

collected and published examples and templates of the Scrum product and Sprint backlogs. @ http://www.odd-e.com/home_page/html_files/bl_example.html

Product backlogs:

  1. A backlog from a company starting with a “c”.
    Download from here
  2. Product backlog provided by Craig Larman
    Download product backlog from here

Sprint backlogs:

  1. Sprint backlog from PFA Denmark provided by Jens Ostergaard.
    Download from here
  2. Sprint backlog provided by Richard Banks
    Download from here
  3. Sprint backlog provided by Craig Larman
    Download iteration backlog from here
  4. Spint backlog provided by Hubert Smits
    Download from here

Enable “ll” command in ubuntu

This might be known to many *nix gurus, but it was new to me. Many systems come with the ll command that is a shortcut for ‘ls -al’.

To activate this in ubuntu, modify your ~/.bashrc file and uncomment the alias command settings

alias ll=’ls -l’

There are other options available. Now all you have to do is type ll and you get the equivalent of ‘ls-al’!

source: http://jimcortez.com/blog/?p=5