Archive for August, 2009

Kungle.de: One Month Later

Friday, August 28th, 2009

27. Juli – 28. August:

oldPage newPage

I hope you like the new design.  I have spent some time with sketching, splicing and converting.

Kungle is now generating about 720.000 datasets every day. That’s enough information to provide you with interesting facts about “News”.  You will see first results sometime in the coming weeks.

Kungle.de: New Subsystem

Thursday, August 20th, 2009

In trying to build an autonomous IA I added a new subsystem to Kungle.de.

The Housekeeper undertakes the task of system clean-up. It takes over a dozen process steps to do this job. It is carried out hourly.

subsystems

Further updates

I have removed unnecessary js libraries which reduces the pagesize to 180kb. The average startup time should benefit from this optimization.

Next system updates will cover additional data aggregation methods and should be imperceptible for you.

Kungle.de: Render Bugfix

Saturday, August 15th, 2009

Due to a render bugfix for PS3 and IE6 first image code was also published.

The Results should improve over the time.

UPDATE: I have disabled the image code until completion.

Kungle.de News

Friday, August 14th, 2009

This and next week I’m heavily loaded with business & finance. Therefore the Kungle.de development is halted.  This is really distressing for me because I have planned to add the feature “related images” to my front page.

Another short term goal is the improvement of Kungle’s ability to read additional news sources. For example Mongolia, parts of Africa and South America aren’t accessible at the moment.

Long term goals (Next 30 Days)

  • I will start to present additional data.  Every News Entry receives an ID card with additional information.  Don’t panic! The direct link to the article remains.
  • The next phase of topic identification will be released. With enough collected indicators it is possible to use advanced algorithms.

Of course you can send me your comments and critics at any time to support@kungle.de or leave a comment here.

Kungle.de Sitemap update

Thursday, August 13th, 2009

I have updated the kungle.de sitemap without announcement.
I apologize for the trouble caused. Please update your bookmarks.

Scala’s simple strategy to reduce debugging costs: “Some” and “None”

Sunday, August 9th, 2009

Null Pointer Exceptions (NPEs) are most common runtime errors in Java (more than 500.000 results in Google). Most Java libraries are interspersed with methods returning null if the computation could not be finished. Invoking method calls on null raises Null Pointer Exceptions.

The best practice in Java to avoid such errors is a test against null.

if(aObject == null) {...

or pass the null test to another function.

For example, Instead of writing:

if(aResultString.equals(“literal”)) {
...

you write:

if(“literal”.equals(aResultString)) {
...

More than eleven years ago (beginning with the java era) a data type existed, avoiding the NPE problem:

data  Maybe a =  Nothing | Just a deriving (Eq, Ord, Read, Show)

A Haskell one-liner ported to Java could have prevented thousands of errors.

Why?

You cannot forget to test against None (unlike the null check) because this would raise a compile time error. Based on Haskells Maybe-Type, Scala defines the Some and None Type with:

final case class Some[+A](x: A) extends Option[A]
...

and

case object None extends Option[Nothing]
...

To test an Option Type against None you write:

val result =  a getOrElse b..

If a is Some(_) than result is _. If result is None, than result is b. The value of result is therefore always defined!

Runtime Errors on my News Page Kungle.de so far

To Keep it short:
None