Saturday, February 09, 2008

Simpleology

I'm evaluating a multi-media course on blogging from the folks at Simpleology.  For a while, they're letting you snag it for free if you post about it on your blog.

It covers:

  • The best blogging techniques.
  • How to get traffic to your blog.
  • How to turn your blog into money.

I'll let you know what I think once I've had a chance to check it out. Meanwhile, go grab yours while it's still free.

Sunday, February 05, 2006

My Last Post

Ya this is my last post on this blog. Why? have I stopped blogging? no way.

Now I have my very own blog at jigar.org/blog/.

So why buid a blog, where ther are so many available for free? well, here's the answer.

Thursday, February 02, 2006

Why is the invoker evil?

copy pasted shamelessly from tomcat faq:

Why is the invoker evil?
This is opinions of the writer (YMMV)
Quickie about the invoker: The invoker is a dynamic servlet which allows run-time loading of other servlets based on class name. This servlet is the one that allows http://localhost/servlet/com.foo.MyClass?more=cowbell, where com.foo.MyClass is some class which can be loaded as a servlet but was never explicitly declared in a config file.

Evil because:
  • Security risk ... see links above
  • Configuration hiding - There is NO way to determine which servlets are used vs which are not used. In web.xml, every servlet is declared and mapped. In that one file you instantly have a road map to how the webapp works.
  • Back doors. Servlets which are mapped can be alternately called via the invoker by class name. Since the URL is different, all security constraints might be ignored since the URL pattern is VERY different.
  • Back doors. Bad programmers make it easier to do bad things.
  • Back doors. It may be common to use common 3rd party jars in a shared area. If that shared jar has servlets in them and that servlet has a hole in it, bad things happen.
  • Configuration hiding - it's important enough to say twice. Explicit declaration while a PITA, will be more helpful in the maintenance scheme of your webapp.

For another explanation of the invoker servlet, why it's evil, and what to do about it, see JavaRanch FAQ.

Six hours of sleep is more than enough, anything more is waste of time

this is what Bhavin told me yesterday. Humm, let me try this for a week.

New words

Arsalan Zaidi's Blog has been a good place for me to learn new words. I am always amazed with his wordplay, let alone his vocabulary.

I would have, probably, never used words such as Redux, fanboyz, osmosis in my writings. This is not to say that his blog is loaded with such words, But almost every post has some new word which reminds me that I need to finish building 52words.

How Users Read on the Web

excerpts from page How Users Read on the Web. Something we all can learn from.

"People rarely read Web pages word by word; instead, they scan the page, picking out individual words and sentences"

"Credibility can be increased by high-quality graphics, good writing, and use of outbound hypertext links"

"Users detested "marketese"; the promotional writing style with boastful subjective claims ("hottest ever") that currently is prevalent on the Web"

"Web users are busy: they want to get the straight facts"

Patterns of XUnit Test Automation

"Automated test are more repeatable than manual tests because they execute exactly the same way every time. They don't forget things after long weekends and vacations. They don't leave to work on other projects. They don't get sick or run over by a bus." excerpt

I always loved the promise made by "tests", will try writing them some day. For now, Patterns of XUnit Test Automation is a good place to read and get excited.

"Why is Test Automation Important?

Automated unit tests (A.K.A. "developer tests") and functional tests (A.K.A. "customer tests") are a cornerstone of many agile development methods (such as eXtreme Programming). The availability of automated, self-checking tests allows developers to be much bolder in how they modify existing software. They allow a more evolutionary form of software development that support incremental delivery of functionality to the customer (motto: Deliver early; deliver often!) that speeds up user feedback and improves the quality (both "fitness for purpose" and "software quality") of the software being built. The techniques are also spreading to less agile development methods via the introduction of "Test Driven Development" as a less extreme process alternative." excerpt


Wednesday, February 01, 2006

Thursday, January 26, 2006

Keyword Density Checker

Keyword Density Checker: check out this "cool tool" by my friend Amit Bhawnani, webmaster of webconfs.com. "Keyword Cloud is a visual depiction of keywords used on a website, keywords having higer density are depicted in a larger fonts. Ideally your main keywords should appear in larger fonts at the start of the cloud."

webconfs.com is a one stop shop for a number of Search Engine Optimization Tools.

Gmail: Finally, the long awaited delete button is here

delete_btn2

Friday, January 20, 2006

Rails vs TurboGears

Rails vs TurboGears, good comparison of the explicit(TurboGears) and implicit(Rails) framework. And for some java bashing read TurboGears vs Java.

Agreed that Rails is more magical, but once you start using it, you realize that it more intuitive. And at the same time being more explicit is not a good thing, when there is no need to be. One of the reason why java web applications take so long to develop is that its too explicit and verbose, and does lots of XML situps.

So why get into the same trap? What good is explicitness? Rails has got sensible defaults and it allows developer to be more explicit when necessary.

In the end its always about personal preference. But I, for one, don't want to get back in the trap of "unnecessary explicitness".

Java: can null be typecasted to String?

Will this compile and run without any ClassCastException?
 String s = (String) null;
System.out.println((String) null);
Wont typecasting null to String throw ClassCastException?

Answer: Both lines compile and run fine. null can be typecasted to any reference type. But the question is why is this behavoiur allowed?
Here's my explaination:
Consider following line of code.
  String s=null;
This compiles fine, so it means that the String reference can safely hold the value "null". Since null is an valid value for any reference type, casting it to that type will never throw a ClassCastException.

Have a better explaination? feel free to comment.

Thursday, January 19, 2006

Thinking Machine 4

Watch the Thinking Machine plan his next move, while it plays chess with you.

The Java Modeling Language (JML)

Now this is very intresting, I am surprised I have never heard about it before.

"The tools jmlc and jmlrac provide a JML aware compiler and runtime environment. The advantage of compiling and running code with such tools is that JML annotations are converted into assertions which are checked at runtime, making it easier and faster to discover and locate bugs. For the small cost of writing a few annotations you can significantly speed up the testing and debugging cycle." read more...

"The Java Modeling Language (JML) is a behavioral interface specification language that can be used to specify the behavior of Java modules. It combines the design by contract approach of Eiffel and the model-based specification approach of the Larch family of interface specification languages, with some elements of the refinement calculus."
read more...

"Sometimes ideas don't get the attention that they deserve. The Java Modelling Language (JML) is just such an idea. JML is something every Java programmer should know about. That does not mean every project in Java should make use of JML, only that developers should be aware of it so they can use it wherever it does make sense. The fact is that JML provides so many benefits for so little extra work that it deserves far more use than it gets. If you program in Java it could definitely make your life easier" read more...

Have you started "flickr"ing ?

Flickr is an online photo sharing tool. One can upload upto 20mb of photos every month, for free. Flickr is overtaken by yahoo so no need to signup, just login with your existing yahooid. So what are you waiting for? Share your photos and dont forget to add me as your contact at flickr ;)

Find my photos here.

Thursday, January 12, 2006

Ek Chidiya, Anek Chidiya....

Does it ring a bell... Good old summer holidays... When DoorDarshan was the only TV channel. Checkout the video and mp3. It brings back sweet childhood memories.

The Web Developers HandBook

Loads of resources and links for web-developers. Now this is what I needed. Go check it out.

Tuesday, January 10, 2006

TiddlyWiki, version 2.0 is out

Too cool, 2.0 has got tones of new features.

from http://www.tiddlywiki.com/

"Welcome to TiddlyWiki, an experimental MicroContent WikiWikiWeb built by JeremyRuston. It's written in HTML, CSS and JavaScript to run on any modern browser without needing any ServerSide logic. It allows anyone to create personal SelfContained hypertext documents that can be posted to any WebServer, sent by email or kept on a USB thumb drive to make a WikiOnAStick. This is revision 2.0.1 of TiddlyWiki, and is published under an OpenSourceLicense."

Also check out tiddlydesktop.