Category: Dev

  • Wechsel zu Netbeans 6.5

    Brandneu ist das Final Release der neuen major Netbeans Version. Netbeans 6.5 bringt viele Neuerungen – vor allem für nicht Java Entwickler, welche die IDE auch für andere Sprachen nutzen wollen. Ich bin ja ein Anwender, der neben Java, Java Mobile Projekten vorrangig Dinge in php – neuerdings auch groovy – codet. Für meinen Anwendungsbereich bietet mir als das neue Netbeans alles was ich brauche in einer IDE. Hat den riesigen Vorteil, dass ich mich nicht permanent, wenn ich beispielsweise ein php Projekt mache neue Hotkeys merken muss und ständig falsche Funktionen in den unterschiedlichen IDEs suche.

    War bis dato so, dass ich für meine php Dinge das Zend Studio für Eclipse verwendet hab. Das war auch ganz nett. Was mir aber Netbeans 6.5 in Bezug auf php bieten kann hat mich überzeugt. Einzig das profilling mach ich noch im Zend Studio. Die Grails Unterstützung ist die beste, die man momentan für eine IDE bekommen kann.

    Also war der Wechsel beschlossene Sache. Verlief eigentlich alles reibungslos. Alle alten Projekte wurden perfekt übernommen. Das alte Problem bestand noch immer, dass meine Web Projekte die Server Zuordnung verloren haben (Wechsel von Glassfish 2 -> 3). War aber kein Problem das im Nachhinein zu konfigurieren. Nun hab ich endlich eine IDE für fast alles – danke Netbeans.

  • Google Ajax Lib API

    Google hat ja gestern ihre AJAX Libary API vorgestellt. Im Prinzip ist diese API ja nichts anderes als ein Ersatz für die Speicherung der Libs am eigenen Server. Die API bietet dabei die bekanntesten Vertreter an:

    • jQuery
    • prototype
    • script.aculo.us
    • MooTools
    • dojo

    Sie erlaubt den Zugriff auf die jeweiligen JS File einerseits über ein URL:


    als auch über den Google AJAX Loader:
    google.load("jquery", "1");

    Den Vorteil den die AJAX Lib API mit sich bringt ist mit der oben angeführten Syntax, dass automatisch immer die letzte Version der Libary eingebunden wird. Ein manuelles Updaten der Files am eigenen Server entfällt dadurch völlig. Natürlich ist auch das einbinden einer bestimmten Version und ein komprimiertes File möglich:

    google.load("jquery", "1.2", {uncompressed:true});

    Für mehr Infos zur Funktionsweise der sehr simplen API gibts eine kleine Doku.

  • JS Port of Processing

    John Resig is really the man. He just ported the processing language into a javascript api. For drawing the forms he is using the canvas object, so unfortunately the api won’t work in older browsers who don’t support it. Nevertheless awesome work.

  • Awsome JS Editor in Netbeans


    Yeah, netbeans rocks that’s for sure. Look at this sophisticating autocoplete feature hitting netbeans in its new 6.1 release. Also have a look at the screencast of Roman Strobl explaining the key features of the new javascript editor.

  • Simple JSON-RPC Class

    JSON-RPC is a simple methode to transfer data without site refreshing from the server to the client. It’s an alternative to AJAX calls and used in many web applications, for example most of the google apps use it for their client-server communication. Here’s my simple implementation:

    The Class

    jsonRPC = function() {
       cbstore = new Object();
       var counter = 0;
       var base = "insert your base url here";
       var encode = encodeURIComponent;
    
       var cleanup = function(id, s) {
          delete this.cbstore[id];
          setTimeout(function() {
             document.body.removeChild(s);
          }, 0);
       }
       this.send = function(params, callback) {
          var id = "cb" + ++counter;
          var timeout = setTimeout(function() {
             cleanup(id, s);
             callback(null);
          }, 2000);
          cbstore[id] = function(data) {
             //cancelTimeout(timeout);
             cleanup(id, s);
             callback(data);
          };
          var s = document.createElement("script");
          document.body.appendChild(s);
          s.src = base + "?callback=cbstore." + id +
          "&" + (params);
       }
       this.call = function(params, callback) {
          this.send(params, function(data) {
             if (!data || data.Status.code != "200") {
                callback(null);
             } else {
                var c = data.pois;
                callback(c);
             }
          });
       }
    }
    

    The Serverside

    To trigger the clientside callback function you must insert it in your server-side response. The response must look like this:

    print (insert the callback function process from GET here + "({Status: { code: 200, request: \"getpois\" }, pois: [");
    
    
    //output of your data in JSON format
    
    print("]})");
    

    Usage

    mycall = new jsonRPC();
    mycall.call("insert some params here", function(json) {
    	if (!json || json == undefined || json == null)
    		return;
    
           //do something with the response data here
    
    
    
    });

    What’s next

    To be honest, this is a very ugly implmentation and I have to work over it quite soon. It’s now not possible to use the class for different requests. So I will add a constructor in a next version, allowing to pass a the base url when instancing the object. Also the response data object (pois) is not changeable via constructor variable -> need to be changed. (FYI: I used this class to load objects onto a visual map, therefore the name pointofinterst.) For now you can play with that code a litte bit an evaluate how it works for you as an AJAX alternative.

  • Android Tutorial

    Kürzlich hatte ich das Vergnügen mich 1 Tag mit Google Android beschäftigen zu können. Dazu passend gibt es ein kleines Howto um auch anderen da draußen den Einstieg zu erleichtern. Voraussetzung für das Tutorial sind eine fertig installierte Eclipse IDE und Java Kenntnisse. Eine kleine Einführung was Android eigentlich kann und ist hab ich hier geschrieben.

    (more…)

  • High Performance MySQL bei Youtube

    Paul Tuckfield,MySQL DBA bei YouTube über seine Erfahrungen mit MySQL:


    als Podcast oder Video

  • Wechsel zu Netbeans 6

    Gestern hab ich meine Java IDE Netbeans 5.5 durch die frische final Version von Netbeans6 ersetzt. Ich dachte es wäre ein leichtes Update mit einmal installieren und fertig – war aber dann schlussendlich nicht ganz so einfach. Grundsätzlich kommt Netbeans6 in schönen Installer Packages daher, wo ich mir gleich die All-Inclusive Version mit allen Zusatzmodulen geladen hab. Vorher noch NB5.5 und alle vorhanden Module deinstalliert und danach den umgekehrten Weg mit der neuen Version. Trotz das es auf der Downloadseite so gekennzeichnet war, ist Tomcat nicht im Bundle enthalten und muss seperat installiert und in NB als Server hinzugefügt werden. Standard Servlet Engine ist nun Glassfish2. Leider fehlt auch der Sun App Server aus dem Enterprise Package und muss ebenfalls seperat nach installiert werden. Da sich für mich alle Deployment Server geändert haben, musste ich sämtlichen Projekte ihre neuen Server zuweisen.

    Was dagegen erfreulich einfach – wie in der letzen Version auch schon – funktionierte ist die Installation des WTK und Mobility Packs für J2ME Applikation (sehr interessant: Mobile Game Builder). Auch die ganz neue Ruby Unterstüzung ist schon fertig betriebsbereit und liefert als Beispiel “Das Depot” aus Agile Web Development with Rails, 2nd Edition mit.

  • Ajax Frameworks Roundup

    In the past week some popular Ajax/JS Frameworks released new milestones. Here’s a litte summary of what happened: