Archive

Archive for the ‘General’ Category

jQuery – noConflict() und die Fallstricke

January 26th, 2012 No comments

jQuery hat sich in den vergangenen Jahren zu einer weit verbreiten JavaScript – Bibliothek entwickelt. Der Slogan dieser Bibliothek “Write less, do more” ist keine leere Versprechung. Ich habe nun in verschiedenen Projekten jQuery erfolgreich eingesetzt. In einem Projekt bin ich jedoch auf etwas gestossen, was unbekannt war für mich: Die Verwendung von unterschiedlichen Versionen von jQuery auf einer geladenen Seite.

Wie erreicht man das Zusammenspiel? Hierfür bietet jQuery die Funktion “noConflict()” an.

Ein paar Hintergrundinformationen: Hat man die jQuery – Bibliothek importiert auf seine Seite, sind die Funktionen von jQuery mittels “$” oder “jQuery” verfügbar; z.b. ‘jQuery(“div p”).hide();’ oder ‘$(“div p”).hide();’

Verwenden nun andere Skript das ‘$’ – Zeichen um die Funktionen verfügbar zu machen, so kann führt es dazu dass die Funktionen von anderen Bibliotheken nicht verfügbar sind, da jQuery bereits das ‘$’ – Zeichen verwendet.

Was kann also getan werden?

1. jQuery.noConflict();
2. jQuery(“div p”).hide();
3. $(“content”).style.display = ‘none’;

Was wird in diesem Abschnitt getan?

1. Hier sagen wir: Gib dem anderen Skript den Alias ‘$’ zurück; so dass ‘$’ wieder für die andere Bibliothek zur Verfügung steht.
2. Arbeite hier mit “jQuery” um jQuery – spezifische Funktion aufzurufen.
3. Da wir in Zeile 1 “.noConflict()” aufgerufen haben, können wir hier mittels ‘$’ die Funktionen einer anderen Bibliothek aufrufen.

Mittels “.noConflict()” kann auch die Verwendung von 2 unterschiedlichen jQuery – Versionen realisiert werden:

1. <script src=”/domain/lib/js/jQuery1.3.2.js” type=”text/javascript”></script>
2. var jq = jQuery.noConflict();
3. <script src=”/domain/lib/js/jQuery1.5.1.js” type=”text/javascript”></script>
4. var player = jQuery.noConflict();

Was wird hier gemacht?

1. Importieren von einer jQuery – Bibliothek der Version 1.3.2.
2. Setzen eines Aliasses “jq”, so dass alle Funktionalitäten von Version 1.3.2. unter dem Alias “jq” verfügbar sind.
3. Importieren von einer jQuery – Bibliothek der Version 1.5.1.
4. Setzen eines Aliasses “player”, so dass alle Funktionalitäten von Version 1.5.1. unter dem Alias “player” verfügbar sind.

So weit so gut. Doch welche Fallstrickt ergeben sich hieraus?

Es muss im Code darauf geachtet werden, das die beiden Aliasses konsequent verwendet werden!

Folgendes Beispiel demonstiert diesen Fallstrick:

function initEvents(id)
{
var _this = jQuery(this);
var container = _this(id);

var viewSwitch = function(event, state){

}

viewContainer.bind(“viewSwitch”, viewSwitch);
}

function init(id)
{
initEvents(id);
}

In HTML – Seite steht folgendes:

jq(“body”).init(“list”));

Auf den ersten Blick sieht dieser Code fehlerfrei aus: Es wird eine Funktion aufgeruf, welche wiederum Events registriert (“bind”). Dies kann beim Starten der Zeit geschehen.

Das Problem liegt allerdings in der Zeile (“var _this = jQuery(this);”). Hier wird die aktive jQuery Bibliothek verwendet (unter dem Alias “jQuery” verfügbar).
Dieses Event ist nun also unter “jQuery” registriert. Wird nun später eine andere jQuery – Version verwendet z.B. 1.5.1, so ist das vorher registrierte Event nicht mehr bekannt, da es unter jQuery 1.3.2. registriert wurde, nicht jedoch unter jQuery 1.5.1. Merke: jQuery zeigt auf die zuletzt importierte jQuery Bibliothek.

Um dies zu verdeutlichen:

1. Import von Version 1.3.2
2. Setzen von Alias “jq” mittels “.noConflict()”.
3. “jQuery” und Alias “jq” zeigen auf Version 1.3.2.
4. Import von Version 1.5.2. <- Hier entsteht das Problem.
5. Setzen von Alias “jPlayer”
6. “jQuery” und Alias “jPlayer” zeigen auf Version 1.5.1.

Die Lösung des Problems: In der Funktion “initEvents” muss statt “jQuery” das Alias “jq” verwendet werden.

Categories: Development, General Tags: , ,

Wo kommst das Event her?

January 26th, 2012 No comments

Jeder kennt die Situation: Man entwickelt in Javascript, registriert u.a. viele Events etc. oder man arbeitet an einem bestehenden Projekt und muss das bestehenhe Javascript anpassen. Wie behält man in beiden Fällen den Überblick über die Events auf einer Seite?

Ein Tool das ich im Rahmen einer Arbeit bei einem Kunden kennengelernt habe ist “visual event”. Dieses Tool ist ein sogenanntes Bookmarklet.

Wie funktioniert es und was macht es? Man fügt per Drag’n'Drop von der Seite http://www.sprymedia.co.uk/article/Visual+Event den Button “Visual Event” in die Bookmarkleiste des Browsers.

Danach geht man auf eine beliebige Seite deren Events man untersuchen möchte. Ist die Seite geöffnet, klick man auf das zuvor hinzugefügte Bookmark. Nach kurzer Zeit wird die Seite abgedunkelt und es erscheinen kleine, farbige Kästchen die über die Art des Events (Maus: Klick, Doppelklick, Mouseover; HTML – Events: select, blur, focus sowie UI Events: Key down, Key up etc.).

Fährt man mit der Maus über die Kästchen, erhält man Informationen wo im Skript diese Event behandelt wird.

Sehr hilfreich, wenn man den Überblick verliert, wer was wann wieso wo macht!

 

 

 

The Pencil Project – A Prototyping tool

October 9th, 2011 Comments off

Have you ever been in the situation to develop a User Interface? With the help of “Pencil” you can do this quite easily!

This project has the following main features:

  • Stencils for diagraming and prototyping
  • Multiple pages per project
  • Linking between each page
  • Text editing including rich – text editing
  • Exporting to HTMl, PNG, Office documents (Open Office & Word), PDF
  • Supports Undo/redo
  • Installing user-defined stencils and templates
  • Aligning to a grid, z-ordering, scaling, rotating etc.
  • Cross-platforms
  • Clipart Browser
  • Object snapping

The Pencil Project has two versions: Desktop version and a Firefox – Plugin. I have made the experience that the desktop version is faster then the Firefox – Plugin. Another advantage of the desktop version is the that its independet. Imagine you update your browser and the Pencil projects hasnt updated yet. There are of course portable versions of the Firefox. But its a point to consider!

The project is published under the GPLv2 license. It works under GNU/Linux 2.6 (Fedora, Ubuntu and Arch) with GTK+, Windows XP and Windows Vista/7.

The application can be downloaded  http://pencil.evolus.vn/en-US/Home.aspx.

 

Categories: General Tags: , , ,

Enterprise Architect – Reverse Engineering: Klassendiagramme aus Quellcode erzeugen

September 19th, 2011 Comments off

Wer bereits fertigen Sourcecode vor sich hat und daraus für den Enterprise Architect (hier in Version 7.5) Klassendiagramme erstellen möchte, der kommt mit der Funktion “Code Engineering” zum Ziel.

Man erstellt einfach ein leeres Package und hat dann im Project-Browser im Kontextmenü den entsprechenden Eintrag “Code Enigneering” -> “Import Source Directory”.

Nun kann man zum einen die entsprechende Codesprache auswählen, zum Anderen kann man hier einige Parameter des Import bestimmen.

Mit einem abschließenden Klick auf “Ok” werden alle Klassen in den Enterprise Architect importiert. Feintuning ist dann natürlich noch nötig, aber das automatische Importieren erspart Unmengen an Tipparbeit.

Neues Statistik-Plugin

September 12th, 2011 Comments off

Ich habe heute das für uns neue Plugin “get_post_views” installiert. Dieses Plugin ermöglicht, für jeden Artikel automatisiert eine Zugriffsstatistik anzulegen und abzurufen.

Ab sofort wird darum unter jeder einzelnen Artikelseite diese Statistik sichtbar sein. Die Zahlen geben Ergebnisse für Gelesen, Vorschau und Suchmaschinen (je für heute und gesamt) zurück.

Für den Admin gibt’s dann noch eine hübsche Auswertegrafik :-)

Categories: General Tags:

PowerPoint Alternative Prezi

July 8th, 2011 Comments off

Prezi Logo


Präsentation und PowerPoint sind zwei Begriffe, die augenscheinlich untrennbar zusammengehören. Und auch wenn es sehr einfach ist mit PowerPoint Präsentationsfolien zu erstellen, kann man dabei doch sehr viel falsch machen. Das führt leider oftmals dazu, dass das eigentliche Ziel der Präsentation nicht erreicht wird.

Dabei kann Präsentieren auch Spaß machen und die Zuhörer an das eigentliche Thema fesseln. Eine Alternative zu PowerPoint, die dazu in der Lage ist, ist Prezi. Prezi vermittelt ein ganz neues Feeling von Präsentation, das losgelöst von unendlich aufeinanderfolgenden, überfüllten und überanimierten Folien ist und durch Leichtigkeit und Dynamik überzeugt. Mit seinem sehr kleinen Werkzeugvorrat verhindert Prezi erfolgreich das Herumexperimentieren mit Farben, Schriftarten, Formen und Animationen und zwingt den Ersteller dazu, seinen Inhalt kreativ in den Vordergrund zu stellen.

Ein weiterer Vorteil gegenüber “herkömmlichen” Tools ist die Fähigkeit Präsentationen online zu erstellen, zu verteilen und auch gleichzeitig zu bearbeiten. Fertige Prezis können dann runtergeladen werden und standalone offline vorgeführt werden. Ein Editor zum Offline-Bearbeiten steht auch zur Verfügung.

Es sei jedem nur empfohlen, sich Prezi mal genauer anzuschauen: http://www.prezi.com

Categories: General Tags: , ,

File Extensions

March 9th, 2011 Comments off

Have you ever received a file with an extension you don’t know?
And have you wondered what software it comes from?

Have a look at http://www.endungen.de to get more information about the file type.

Where has all the time gone?

December 12th, 2010 Comments off

Have you ever wondered what time vampire has consumed all your working time during the working day? Now here comes to the answer…or more a tool to answer this question: Grindstone.
This tiny tool comes with the following functions:

  • Define one or more tasks and measure the time
  • Create report statistics to get an overview all the tasks in a certain time.
  • Billing calculation

Give it a try under: http://www.epiforge.com/Grindstone2/

Categories: General Tags:

Preventing Eclipse from opening MS Office documents in OLE editor component

October 10th, 2009 1 comment

I’m working with Excel and Word documents in my latest java project. On Windows plattforms Eclipse opens those documents with its own OLE editor by default. But I feel much more comfortable in using the Office apps to edit them. This can be done by right clicking on the file icon and choose “open with -> system editor” for example. But you will have to do this for each new or moved file in your workspace the first time you open it.
Thus Eclipse opens these files with Excel or Word by default you need to navigate to “Window -> Preferences -> General -> Editors -> File Associations”. You will notice, that there are no file associations for Excel nor Word. You have to explicitly add the file types (*.xls and *.doc for example) and add the desired applications as associated (external) editors.

Categories: General Tags: , , , ,

vTiger CRM 5.0.4 umlaut display issue

August 25th, 2009 Comments off

The freely available CRM software vTiger (version 5.0.4) still has issues with the display of UTF-8 and ISO-8859-1x characters (German umlauts like äöü and ß).

When you open an EMail in the Webmailer module, the text following such a character is completely gone – the rendering engine of vTiger simply stops the rendering of all characters starting from here.

After many reading in the internet and in the relevant forums and trying out several proposals for fixing this issue, one simple change did the trick:

Open ../modules/Webmails/Webmails.php and scroll down to the function declaration load_mail() – in our sources, this is located around line 712.

712
713
714
715
function load_mail($attach_tab)
{
    // parse the message
    $ref_contenu_message =  @imap_headerinfo($this->mbox, $this->mailid);

Right after the “parse…” comment add the following line

716
    global $default_charset;

Now the beginning of the function looks as follows:

712
713
714
715
716
717
function load_mail($attach_tab)
{
    // parse the message
    // HK 25.08.2009 fix for umlaut display problem - added the following line
    global $default_charset;
    $ref_contenu_message =  @imap_headerinfo($this->mbox, $this->mailid);

This solved the issue for us.

After upgrading to the new version 5.1.0, we will have to see whether the developers of this really outstanding piece of software have provided a common fix for all of those Hungarians, Germans and other poor special-character-users like us :-)

Categories: General Tags: , ,