Older blog entries for derupe (starting at number 26)

14 Dec 2004 (updated 14 Dec 2004 at 21:03 UTC) »
Eclipse QuickFix problem

Encountered a strange problem while working on Eclipse [In the latest integration build - Version: 3.1.0 Build id: 200412081200]

I wrote a small snippet of code -

        return true;
The method getContentSpec was not implemented in the class; so it gave a compilation error. I took the QuickFix route and asked Eclipse to generate the stub for me. To my surprise, it generated the following code -
* @return
private AbstractList getContentSpec() {
    // TODO Auto-generated method stub
    return null;
I didn't really expect the method to return a String - but I at least expected it to return an Object. But it ended by returning an AbstractList!!!!! This was s t r a n g e!

To recreate the problem, before I submit the bug, I created a simple class -

public class QuickFixEquals {

public boolean hasChildren() { return(getContentSpec().equals("Test")); } }

Applied QuickFix ... and the code generated was
    private Object getContentSpec() {
        // TODO Auto-generated method stub
        return null;
Well, thats what I wanted in the original code ... why did it behave differently here?

I finally tracked it down to ... guess what? ... an import statement.

Try QuickFix on the following code

import java.util.List;

public class QuickFixEquals {

public boolean hasChildren() { return(getContentSpec().equals("Test")); } }

It will generate
	private List getContentSpec() {
		// TODO Auto-generated method stub
		return null;
Better yet, try this code
import java.util.ArrayList;
import java.util.List;

public class QuickFixEquals {

public boolean hasChildren() { return (getContentSpec().equals("Test")); }

public List<String> getList() { return new ArrayList<String>(); } }

Apply QuickFix, and lo, you get -
    private AbstractList<E> getContentSpec() {
        // TODO Auto-generated method stub
        return null;
Here's the link to the QuickFix Bug.
3 Dec 2004 (updated 3 Dec 2004 at 18:57 UTC) »
Languages based on the Java VM

I read the article "GJ: Extending the JavaTM programming language with type parameters" [by Gilad Bracha, Martin Odersky, David Stoutamire, Philip Wadler, March 1998; revised August 1998]. It introduces the GJ compiler that is an extension of Java (during the time of JDK 1.2) which provided generics support. The current generics support in Java 5 is based on GJ.

GJ, per the article, is based on Pizza. "GJ is based closely on the handling of parametric types in Pizza".

This led me to search around for Pizza and other languages based on the Java programming language.

The Pizza compiler is hosted on sourceforge. Its current version is 1.1 [released 03-Jan-2002].

The Pizza language is an extension to Java with three new features:

  • Generics (aka Parametric polymorphism)
  • Function pointers (aka First-class functions)
  • Class cases and pattern matching (aka Algebraic types)

The Pizza Tutorial explains the three new features listed above.

GJ - A Generic Java Language Extension - is currently on version 0.6m. It is a superset of the Java programming language and is compatible with existing libraries.

Bistro is a new programming language that integrates the best features of Smalltalk and Java. It is currently on version 3.5 [21-Apr-2002?]. You can read about Bistro in the language neutrality article.

Kiev is another language derived from Java. It was initially written in (and tries to be source compatible with) Pizza language. It is currently on version 0.09a.

You can check many more languages at the list of languages based on the Java VM.

19 Nov 2004 (updated 19 Nov 2004 at 16:57 UTC) »
pipeman asked: What does the numbers next to the names in the Advogato recentlog mean?

Could it be what others have rated your dairy?

Everyone's home page has a question similar to this -

How interesting is pipeman's diary, on a 1 to 10 scale?

It could be the average of all the ratings - hence the fraction against some dairy entries ...

Released version 2.2b of Kaprekar Series Generator.

This is more of a code refactoring release. The code was changed to be more modular. The serialization, SVG generation and statistics code had crept into the Kaprekar Engine. I extracted those into separate classes - this also fixed some cut-and-paste code.

The only bug-fix in this code is for the progress bar in the GUI - the progress bar would not show the progress while searching for Kaprekar Series with more than 19 digits. This is fixed now. Well I had written the code, but for some reason I didn't invoke it. Ok, I thought it was an expensive call so didn't invoke it. Now I'm keeping track of the heartbeat and invoking it initially every 50 heartbeats and then every 500 heartbeats. It didn't seem to have too much of an overhead.

This change was in preparation of moving Kaprekar Series Generator to Java 1.5 to use the new language features.

Found this article on Functional programming in the Java language at IBM DeveloperWorks. A good read ... now need to explore about the Apache Commons Functor.

This is fun - never knew that something like Elephant Polo existed! ;-)

8 Jul 2004 (updated 8 Jul 2004 at 20:43 UTC) »

So, Advogato is back up finally!!! I had nearly given up checking on it!

My last post was on May 27th and a lot has happened since then. I've talked about it in my blog on blogspot and the project blogs for kaprekar and matra. Also started a photo blog and a blog for my genealogy interests.

Well I got Gmail and am comfortably using it. Got a set of invites and distributed it too. Meanwhile my email accounts at yahoo and hotmail stand neglected (though they have increased the capacity). Gave a lot of feedback to Gmail - looks like they have been overwhelmed by the suggestions. :)


Added a lot of dtdtrees on the Matra site -

1. Bioinformatic Sequence Markup Language dtdtree.

2. WAP Wireless Markup Language dtdtree.

3. Speech Synthesis Markup Language dtdtree.

4. RSS 0.91 dtdtree

5. XHTML strict dtdtree.


7. GedML.


Two releases were made for the Kaprekar application -

Released version 2.0b. The main changes in this release includes addition of a Gui interface to the application and processing of hexadecimal numbers. Other changes include a few minor bug-fixes and changes to the algorithm.

Released Version 2.1b. The main changes include removing dependency on the Ganita package (Huge and Number classes). So now the Demonstrate process uses BigInteger - and consequently can handle numbers with any number of digits! Changed the algorithm a little bit to improve the performance while seaching for Kaprekar Series.

Lots of changes to the Kaprekar project web site. The site now uses valid XHTML and CSS. Added an introduction to the UML SVG documents.

Kaprekar Site: Making it XHTML Valid.

Here are my observations while making the site xhtml valid.

1. The biggest culprit was the <p> tag. Out of years of habit, I hadn't closed any of them. Removing this problem reduced the number of validation errors to the minimum.

2. Another one was the use of the < sign in the proofs without escaping it to <

3. XHTML does not have a "target" attribute. I have used the target attribute in the navbar - this invalidates all my pages. I could not find a non-javascript alrenative for this one, so just had to delete that attribute.

4. The second problem - only on one page (release: changes) - is the use of the font tag. This one was somehow missed when I changed my site to use css. This was an easy fix for me, but many sites who use font tags will have a tough time on this one.

5. The last problem was the missing alt attribute in the img tag - again only in one page (playing with numbers). The alt tag seems to be mandatory!

Other changes to the site

Made some changes across both the Kaprekar and Matra sites.

Changed the background color of the site to floral white to make it more pleasant to the eyes. And changed the links style so that they are underlined - so that its apparent that they are links.

Added Google search and ads on the site.

Added a separate CSS for the print media. Now the navbar and ads won't print - when you fire a printout - so only the content will be printed.

A few more updates on the Kaprekar site:

Added the proof on the divisibility of Kaprekar Series numbers in any radix r.

Added the Kaprekar Series for 11-digit to 20-digit numbers to the site.

Added the Kaprekar Series for 2-digit to 10-digit hexadecimal numbers to the site.

I modified the Matra project site along the lines of the Kaprekar project site ... and it was a breeze! The whole change was done in an hour or two!

So the Matra site no longer has any frames and still retains a navbar - a dotted one that doesn't have the no-scroll problem. The site uses CSS. An the pages are php based.

I reused the tempate and CSS from the Kaprekar site with a few minor modifications.

I tested the Kaprekar site on Win ME (Firefox 0.8, IE 6.0), Win XP Pro (Firefox 0.8, IE 6.0) and Red Hat Linix (Mozilla 0.7 and Konqueror 2.1.1). The site behaved normal ... hopefully should be the same using other browsers. If you encounter a problem, lemme know. It didn't seem to work too well on Amaya ... will check on that.

I fixed the link problem (in the Kaprekar site). Now the W3C link checker reports no problem! Also validated my CSS stylesheets against the W3C CSS Validation Service.

Also, added the change history to the site.

Have a long way to go for xhtml compatibility.

17 older entries...

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!