Thursday, November 09, 2006

Searching inherited methods

A neat feature of Class Viewer which deserves its own post is the way to search through inherited methods as to do that you have to type a search string into the "Search String" box, and hit Enter.

So why did I separate out searchers from inherited methods in that way, as the other ways to search methods like double-clicking on text in the left hand window will NOT pull up inherited methods?

Well back when I was developing the program I just thought at times way too many methods would get pulled in from superclasses, and figured, hey, I should stop that!

So I did. But I knew you needed at times to look for inherited ones so I connected that to the search string box, but I ended up with a bonus.

For instance typing in "Panel" in the Class Name area, I pull up java.awt.Panel, and notice that its superclass is java.awt.Container.

It turns out the superclass has a method called remove(Component). And I'm copying from the program so of course that means the method takes a Component as an argument.

Well, if you do a search on "remove" in the "Search String" box, you get nothing but methods from the superclass since Panel doesn't have any, and here's an example:

void Container.remove(Component)

And you can see that it has "Container" on the front of it, so you see what its inherited from which I thought was just this annoying little thing which was a problem with how I was pulling off package names, but here's another method from that list:

synchronized void Component.remove(MenuComponent)

And, of course, the superclass of Container is Component and you have a method inherited down the line from it, and because of that extra that I first thought was annoying, you know where it came from!

So I decided not to figure out a way to clear it out.

And then the neat trick of searching on inherited methods is that because of the way I clear out package names, you get left-over telling you where that method is coming from, as in which superclass, and now I like it, so it stays!

James Harris

Thursday, September 21, 2006

No new development

At this point I've done some cleaning up with the website and a few things here and there but no new program changes, so the version now is over a year old with no new development.

That kind of surprises me as I had come into this over two and a half years ago thinking there would be more of a group thing versus me being the only coder, and what is now the final version is more like a prototype to me, but based on the feedback I have, what is happening now is what is needed.

Program is being used, I guess, or at least it's still being downloaded, so I hope it is being used, and other than that, I don't really have much info.

James Harris

Tuesday, September 12, 2006

Maybe an Intranet friendly version?

I have thought about more development where the Class Viewer program can be used by a development company as a quick reference point for its own developers or others, and there are various ways I might make it work well from a server.

But I don't know if there is any demand.

As an applet I can have it ask users for permission so it can get to the classpath, as well as the packagedirectory.xml, so someone might, say, set it up on their own website, and users could come in and do searches on public methods, fields and constructors for their code.

Of course, it's open source so a company could have one of their Java developers do that anyway, so you see my problem. I figure, why should I do work for something that maybe no one wants?

Especially when if they want it, they can just do it themselves?

Maybe charge for it or something? Setup XYZ Company's webpage to have a quick reference tool for their own code? Gets people to their javadocs as well?

Don't know, but I can toss the idea out on my blog. Not that I'd do it though, even if there were interest. I have a problem committing myself to such things. And besides, it's not hard, some other programmer can do it easily enough, and it is open source.

James Harris

Thursday, August 24, 2006

Judging Links project idea

A while back I tried to start another open source project that I wanted to call Judging Links, which is about setting up a website that takes user suggestions for good webpages, and also has users who judge the picked sites, and a voting option for visitors which is used for administration of the linkers and judgers in a completely automated way.

Yup a bit of an ambitious project which I actually had up on as a project, as I hoped to mainly architect it and bring in a bunch of others to code, but I kind of stumbled on the recruitment, and gave up on the project before any code was written.

But I thought to myself, well, at least I can put it on my programming blog! So here is something from an early project document I started when trying to get things before. I didn't get a lot down, but it has the gist of it.

What is Judging Links?

The Internet offers the possibility of leveraging the efforts of many people from all over the world to find the best information. However, that capability is yet to be fully utilized while several projects like the Wikipedia have made substantial progress. The Judging Links project aims to fully leverage the power of the Internet to connect people by allowing people called Linkers to suggest websites, and people called Judgers to determine the value of those sites, to create a web portal that will have the best of the web. This is a working manual that will provide a guide. Developers will edit this document as the project develops, and it is to be the primary development document.

People like to recommend and at its heart the project is about letting people who like to find things they like and recommend them to others operate with full freedom.
However, the reality is that what one person likes, many others may dislike, so there are people who supply the critical category, and, of course, there are usually plenty of people willing to criticize!

How it all works

The primary mission of development is simply providing a way for people to do what they do best with a minimum of fuss, while allowing management without a lot of developer involvement.

That mission defines the project and keeping it in mind is paramount for success. Users need to have a seamless experience where if they are recommending a link it’s easy and straightforward and if they are judging links, it is easy as well.
Simplicity is best.

Linkers and Judgers

The Linkers will have the option of recommending links to websites in various categories, with the requirement that they write a short description which tells what the link is about and why it’s a great link. That means that to be a good Linker a person will have to be able to not only find good links, but write well also. The two requirements go together, as it’s important that a Linker know why they’re recommending a particular link, and having to write about why, helps.

The Judgers will have their own categories where they specialize with an option to also do some critiquing in off-categories.

And that's all I had, where I did some editing to clean up some things as it was uglier than I remember. Well, I had just started.

Here's a bit more from another early planning doc.

The project would create a framework and beta implementation with a front end GUI for primary views, and two internal GUI's for superusers who after registering would either be able to suggest websites, or judge suggestions. Linkers would have their sites face judgement from the Judgers who would be judged by the overall site's success.

The front-end of the project will contain links to websites under maybe 5 categories as I don't like webpages that are full of stuff.

Under each category there will be 5 top sites, and 5 middle sites, where the order comes from ratings by the Judgers, while the sites are given by the Linkers.

The main front-end allows any user to give feedback on overall quality like with options to click good, bad, really crappy, or great links!

That minimizes fraud by making the easy input come from anybody while the real work is done internally, and hopefully there would be enough site visitors such that Judgers couldn't elevate themselves, but hey, if they can, then why not?

If they have good sites, then they have good sites.

Judgers can judge in only 2 of the 5 categories and depending on how well their categories do, the bottom 25% or 50% are dropped over any particular quarter.

That guarantees a lot of turnover in the judging field. Linkers are turned over by the Judgers.

Linkers whose sites are consistently judged poor are judged down, while for good sites they are rated up.

Their max rating is 3, if they're judged down below 0, they're out.

There are 3 categories for linkers:

New Linker
Super Linker

People can opt out of being a linker at any time, or they can get kicked out if they're not performing.

Judgers have a max rating of 3 as well. But rate higher based on longevity, and just get a title, as if they are in the bottom 50% or 25% depending on which is getting tossed, their rating doesn't matter.

Judgers have 3 categories as well:

New Judge

Judges can opt out at any time, or they can be kicked out based on their overall site performance.

I don't think it matters if people try to be both a Judger and a Linker at the same time for any reason like to try and help themselves as the job should be hard enough that if anyone can pull it off, more power to them.

Amazingly enough, people will work hard in a fair system, without getting paid.

People kicked out are x-Linkers or x-Judgers, and who cares if they sneak back in under a new ID as they have to perform.

Most of the project development will be on the database for managing information, and on the GUI's for ease of use, and to minimize the possibility for fraud.

Opportunities within the project abound for data management, GUI development, and utilization of distributed resources.

It's kind of pie in the sky but if successful the idea would be a real interactive way to dynamically get the best websites that could rival methods used by the current big players.

Yeah, that was a lot more detailed. So the idea is out there. Maybe someday I'll come back to this, but for now, at least it's on my blog.

James Harris

Sunday, August 06, 2006

Next step?

At times I wonder about how I might add new features to Class Viewer and one thing that seems obvious would be to have the possibility of opening up an editor and going to a method, to actually fiddle with the code, if you had the source code, like if it were your own project you were looking over.

But do current editors allow calls to them with a location within a program? I don't know.

If they do then coding that would be relatively easy and then I could just add something more to the packagedirectory.xml (or maybe create new xml file?) where you tell it what editor you use, and away it could go.

But that is just light musings at this point as development is still mostly on hiatus, but I'm starting to think I might do something more within the next six months or year.

James Harris