Tag Archives: java

Hyphenate texts with PHP

Hyphenation is something not widely used on the internet.

But sometimes it is something you need to do in Browser-based applications.

Just think of a PDF-File created on the fly by an application and the text is hyphenated in very strange ways or not at all. All just because of an algorithm that might hyphenate english texts in one way or an other but certainly not german, french or other texts.

But it is possible with a bit of LaTeX (don’t worry, you need no kowledge of that whatsoever)
Continue reading Hyphenate texts with PHP

Shorten Texts via JavaScript

One day I ran into the trouble of having labes too long for the space they should go into.

In this special case I had a navigation area with a width of 150 pixel but the strings that had to go into the navigation where much longer.

So I decided that shortening the Labels by replacing the middle part by a ‘…’ would do the trick.

Here is the code for it.

fitText : function(element){
    cn=element.childNodes;     
    node=document.createElement('div');     
    node.setStyle({'float':'left',visibility:'visible','font-weight':700});
    document.body.appendChild(node);
    for(var i=0;i<cn.length;i++){
        if(cn[i].nodeType != Node.TEXT_NODE){
            continue;
        }
        origText=cn[i].data;
        text=cn[i].data.trim();
        if ( text == ''){
            continue;
        }         
        wo=element.getInnerWidth();         
	counter=0;         
	fits=true;         
	do{
            mid=Math.ceil(text.length/2);
            text1=text.substring(0,mid-counter);
            text2=text.substring(mid+counter);
            text=text1+text2;
            newText=text1+'...'+text2;
            tn=document.createTextNode(newText); 
            node.appendChild(tn);
            w=node.getInnerWidth();
            if (w>wo){ 
                fits=false;
            }
            node.removeChild(tn);
            counter++;
        } while((w>wo)&&(text.length>0))
        if ( ! fits ){
            cn[i].replaceData(0,origText.length,newText);
            element.setAttribute('title',origText);
        }
    }
    document.body.removeChild(node);
    return true; 
} 

This code requires the Prototype API.

And I believe that there are a lot of possibilities to improve that bit of JavaScript.

TV-Browser and Growl

Ever wanted to find an electronic TV-Guide?

Some time ago I found TV-Browser. Very nice Tool.

One fancy feature was the Growl-Integration on MacOS-X.  Well at least until TV-Browser 2.7. Somehow the integration of Growl was broken under MacOS X 10.4. 

The complete information about this can be found in the TV-Browser-Forum

Well at least until yesterday.

I implemented this Patch and – voila – Growl notification works as expected.

For those who do not want to go through the hassle of compiling the plugin themselves:

Here you can download the compiled plugin that works for me under MacOS-X 10.4.11

 

Hello world!

So.

This is my first ‘real’ blog.

Let’s see, what it will bring.

I hope to find the time to write some stuff about the things I know. The chances are fair that it will include some words about PHP, Java, Gardening or Renovating our home.

Feel free to read and comment.