Twitter shared items of Google Reader

Software, Web No Comments »

As I stated already multiple times I am a big fan of Google Reader. Since I am using Twitter more and more I searched for a way to inform my followers about new items on my Google Reader shared feed. I found this solution Bob Lee uses. It is basically a Greasemonkey JavaScript that allows you to post directly from Google Reader to Twitter.

I decided to do it another way. Since I am already using twitterfeed for updating Twitter from my blog I added another entry that points to the RSS feed of my shared items.

Which browser user type are you?

Fun, Web No Comments »

iPod touch zu gewinnen

Fun, Web No Comments »

MountainGrafix.at verlost einen iPod touch 32GB unter allen die sich ihren RSS Feed abonnieren. Es müssen mindestens 150 Abonnenten sein am 3.8.2008 - also mitmachen!

Do you web 2.0?

Web 3 Comments »

Ich muss jetzt mal eine Frage stellen die mich schon länger beschäftigt:

Nutzen die Besucher meines Blogs Web 2.0?

Und damit meine ich nicht (nur) die “lustigen” social-networking Seiten wie facebook, Xing, StudiVZ und wie sie noch alle heißen. Natürlich haben diese Seiten auch einen Nutzen und ich hab dort auch Accounts aber es gibt ja noch so viel mehr.

Verwendet ihr RSS Feeds? Wenn nein, wie bekommt ihr neue Informationen auf euren Liebliengseiten mit? Wenn ja, welchen Feed-Reader verwendet ihr? Ich habs ja schon mal gepostet, aber es sei nochmals gesagt: Ich liebe Google Reader:

Damit kann ich auf jedem PC sofort die aktuellesten Einträge auf meinen Lieblingsseiten sehen und lesen. Ausserdem verwende ich den Shared-Items-Mechanismus um Posts die mir besonders gut gefallen anderen mitzuteilen - siehe grüne Box in der rechten Sidebar meines Blogs oder meine Shared Items Seite.

Also nutzt Google Reader und gebt mir Bescheid, denn ich würde gerne die Shared Items Seite von Kollegen und Freunden abonnieren!

Nutzt ihr social bookmarking sites wie del.icio.us? Auch da wär es interessant mal bei Bekannten ein paar gute URLs zu finden.

Verwendet ihr Online-Foto Seiten wie flickr oder Picasa?

Relativ wenige von euch werden Twitter verwenden - ich bin dabei es ein wenig zu probieren ;-) Aber gerade Twitter ist ein Dienst der nur wirklich Sinn macht wenn ein paar Leute aus dem Bekanntenkreis ihn verwenden.

Eine sehr geniale neue Seite ist friendfeed.com - dort kann man alle zuvor genannten Web 2.0 Services die man nutzt zusammenfassen und so über einen einzigen RSS Feed Aktivitäten verfolgen die einen interessieren. Funktioniert so ähnlich wie auf der facebook Profil Seite.

Ich weiß nicht an was es liegt das sich diese ganzen Services und Seiten in unseren Breitengraden nicht so verbreiten wie man das anderswo beobachten kann. Natürlich hat das alles mit Privatsphäre zu tun. Allerdings kann ja jeder selbst entscheiden was er online stellt und weitergeben möchte.

Ich würde gerne ein paar RSS Feeds von meinen Freunden, Kollegen und Bekannten abonnieren anstatt die von irgendwelchen Unbekannten (auch wenn es darunter ein paar interessante gibt).

Firefox Download Day World Record

Downloads, Software, Web No Comments »

Help us to set a Guinness World Record: most software downloaded in 24 hours. The version 3 of Firefox, the best browser in the world, is released today.

Download Day 2008

UPDATE: Seems like the Mozilla servers are hit hard by the traffic - they seem to be down. Still waiting for the final version (20:48 CEST)

Opera Mini 4.1 released

Blackberry, Mobile, Web No Comments »

Today Opera Mini 4.1 was released. This version comes with the following new features:

  • up to 50% faster
  • Find text within a Web page
  • Auto-completion of URLs
  • Download and upload files
  • Save pages for offline viewing

As every former version of Opera Mini I already downloaded and installed it on my BlackBerry - go to www.operamini.com and grap it there.

JavaScript games

Fun, Java, Web No Comments »

Lately there a lot of people are experimenting what is possible wiht JavaScript. Libraries like prototype and scriptaculous are building the base für writing extensive object oriented JavaScript code. Some weeks ago the nihilogic blog presented a Super Mario implemented in 14kB of code playable in the browser. It even includes music ;-)

Today I found ProtoRPG an RPG engine written in JavaScript based on prototype and scriptaculous. There is also a playable demo online.

The last example is very interesting: A japanese user group managed to port parts of the Java VM to JavaScript. It allows to convert Java into byte code and embed it into the document. They created a cool Tetris clone.

Internationalization and JavaScript

Java, Web 2 Comments »

Lately the amount of JavaScript in web applications has grown a lot. JavaScript has always been there but with the need of AJAX and more and more dynamical features modern web developers can not avoid it.

Luckily there are a lot of good concepts arising and libraries available (e.g. prototype, yui, …) that show how to control the JavaScript monster. Something that always bothered me was that I was not able to find a good editor for JavaScript. Since about six months I am using JSEclipse from Adobe which is a free Eclipse plugin that provides a lot support for writing JavaScript (code-completion, syntac check, …).

The JSEclipse editor allows me to edit standalone JS files and script code included in JSPs but many times I ran into the problem that I needed to mix JavaScript and Java code. For example to define an URL for an AJAX request or to get a message from a resource bundle that has to be displayed in a JavaScript dialog. The JSEclipse editor does not understand this “mixed” code parts. Additionally it is not possible to externalize the JavaScript code into external files and the code looks ugly.

Yesterday I found this article about how to do I18N in JavaScript. I like the approach with the externalized constants very much because

  • it allows me to create a central include containing all the information from Java needed for the JavaScript code -> only one place to change
  • the main JavaScript code is “JavaScript only” -> editable by the JSEclipse editor
  • the JavaScript only code may be externalized into separate files
  • the appearance of the constants instantly makes their purpose clear and the JS code looks clean

There Ain’t No Such Thing as Plain Text

Java, Web No Comments »

Jeff Atwood posted a link to a site that sells T-shirts and stickers with the following image:

unicode

I am thinking of ordering some of them. Handling encodings is a very important part of programming and from my experience a lot of developers do not care enough about it. I encourage every developer to read “The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!)” from Joel Spolsky. It describes the evolution of encodings in a very easy way.

Some months ago I wrote a post about how to deal with encodings when using Tomcat as web application container.

Fixing memory leaks of Internet Explorer 6

Software, Tools, Web No Comments »

Lately we experienced a lot of performance problems in our AJAX applications. Since we went online a year ago we always had problems with users of Internet Explorer 6 but within the last three months they got more and more.

We already knew that this had something to do with the huge memory amount the Internet Explorer 6 uses after some hours of working with our application. I used the Process Explorer to analyze which page causes the problem. After identifying the page I did some reloads of it and generated the following image:

leaking ie

As you can see, with every reload the memory amount consumed by the Internet Explorer 6 increased (for about 2 megabytes). This memory amount was never released, even if a complete different page of the application was loaded. The only way to release the memory again was to close the instance of the browser.

I did a web search and found this interesting link about “Understanding and Solving Internet Explorer Leak Patterns”. It describes four different situations that could lead to memory leaks in Internet Explorer by using good graphics and example code.

I was really shocked when I realized that the Internet Explorer 6 holds those elements in memory even after the user left the page and loaded another one. In other browser it is just important to make sure that inside the page the references to elements are released proper when working with a lot of AJAX code without reloading the page.

We are using prototype and scriptaculous as JavaScript libraries. Another library used to display a clickable calendar for date input fields is the JSCalendar from dynarch.com. To find out which elements of the DOM and which script code cause the memory leak I searched for another tool – and found sIEve.

With sIEve it was easy to detect to suspicious elements. After reloading the page inside of sIEve a lot of possible leaks were detected and the list looked like this:

sieve leaks

By looking through the code of the page I found out that all the elements in the list had events registered (onclick, onkeyup, onchange, …) and the assigned methods contained closures (see this link for details again).

Some were caused by the used calendar library. I already sent an email to the author Mihai Bazon. He wrote a very good article about the problem and I could not believe that there is exactly that bug inside his library. Maybe we are using it incorrect.

The other leaks were caused by prototype. Although prototype has a built in mechanism that should unlink registered events when the page is unloaded they survived the reload. I found out that there is a bug in the 1.6.0 version of prototype. The mechanism was changed between version 1.5 and 1.6. This explained why the problem got bigger after updating out application to the new prototype version.

To fix the problem I registered a method to the unload event of the page that removes all the critical registered events. This looks like:

1
2
3
4
5
6
7
8
function breakLeaks() {
	$('img_calendar').onclick = null;
	Event.stopObserving("fieldX", "keyup", keycheck, false);
	Event.stopObserving("fieldX", "click", mousecheck, false);
		...
}
 
Event.stopObserving("window", "unload", breakLeaks, false);

After changing the page like that I tested it again with sIEve and no more leaks were detectd. Then I used the Process Explorer again to monitor the memory consumption of the Internet Explorer. The graph now looked like:

noleak ie

The memory footprint is a lot smaller now and memory allocated by the reload was completely released again.

WP Theme & Icons by N.Design Studio
Entries RSS Comments RSS Log in