Divis Blog

Just another geeks blog.

Twitter ist ne nette Sache

clock Oktober 12, 2008 00:25 by author Divi

Ich war gerade dabei das Menü meines Blogs wiederherzustellen, da die Projektlinks und auch der Sprachwechsel nicht mehr angezeigt wurden. Dabei habe ich festgestellt, dass die BlogEngine ein eigenes Widget für Twitter hat.

Was ist Twitter?

Twitter ist eine Seite, auf der man einen kurzen Text (quasi in der Länge einer SMS) hinterlassen kann, um seinen Freunden mitzuteilen, was man gerade macht. Andere können sich dann registrieren, um immer auf dem aktuellen Stand gehalten zu werden. Quasi eine kostenlose Massen-SMS mit Anmeldung.

image

Wie ich Twitter finde?

Ich denke Twitter ist eine sehr nette Idee, die relativ schnell aufgehen kann. Das Problem an Twitter ist jedoch, dass die Leute, denen man etwas mitteilen will, auch daran interessiert sind etwas mitgeteilt zu bekommen. Das bedeutet - wenn niemand sich anschaut, was ihr schreibt, wird es auch nie jemand erfahren.

Wenn man also engagierte Freunde hat, die daran interessiert sind zu erfahren, was ihr den lieben langen Tag so treibt, dann ist Twitter auf jeden Fall eine sehr interessante Sache - wenn nicht - sollte man zumindest mal gehört haben, worum es geht, kann sich aber die Mühe sparen selber Texte zu verfassen.

Ein nettes Gimmick ist übrigens, dass man seine Nachrichten auch auf privat stellen kann. Danach müssen alle Leute vor dem Abonnieren des Feeds erst um eure Erlaubnis bitten.

Twitter-Widget

Eigentlich hatte ich vor der BlogEngine das selber beizubringen, denn Twitter stellt für jeden Benutzer einen RSS Feed mit dessen Nachrichten zur Verfügung, den man relativ einfach auslesen und über einen "limit"-Parameter sogar direkt schon so begrenzen kann, dass der Traffic nicht überhand nimmt. Netterweise habe ich allerdings, wie bereits oben geschrieben, feststellen dürfen, dass die BlogEngine bereits ein Tool besitzt, mit dem man lediglich seine Twitter-Daten (nur Adresse und RSS Feed) angeben muss und schon kümmert sich das Tool ums Auslesen.

Twhirl

Da es manchmal etwas nervig sein kann sich für jedes Update auf Twitter.com anzumelden, gibt es zahlreiche Tools, die man als Desktop-Anwendung ausführen kann und die einem dann die Anmeldung abnehmen und sogar direkt eine Liste der Twitter-Nachrichten seiner Freunde präsentieren. Eines der Tools, das leider nicht auf twitter.com selbst unter den Downloads geführt wird ist Twhirl. Twhirl ist ein Desktop-Client für Twitter, der auf Adobe Air basiert. Dies erfordert zwar, dass man Adobe Air installiert hat, aber sowohl die Air-, als auch die Twhirl-Installation laufen quasi selbstständig ab. Ist Twhirl erst installiert, erhält man folgend Listenansicht, für die man außerdem aus einer gut gefüllten Liste an Skins wählen kann:

image

 

Zusammenfassend:

Eine sehr nette Idee für Mitteilsamme, jedoch muss sowohl die Nerven haben die Einträge gut zu pflegen, als auch Leute, die gewillt sind sich ebenfalls dafür zu interessieren - sonst ist Twitter genau wie ein Instant-Messenger ohne Kontakte ;-).

Gib die erste Bewertung ab

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


Versteckspielchen mit WPF

clock Oktober 9, 2008 22:36 by author Divi

Momentan verbringe ich einen Großteil meiner Zeit damit mich mit WPF zu beschäftigen, da ich die wahnsinnige Idee hatte (da muss ich betrunken gewesen sein), dass das ja mein erster MCTS werden könnte. Seitdem durchlebe ich das fröhliche Auf-und-Ab, welches mir WPF mit jedem Öffnen des Visual Studios beschert. Ich meine - hey - ist ja auch langweilig, wenn man genau wüsste, was aus einer Methode raus kommt - so viel gecastet wie mit WPF hab ich lange nicht mehr - und es ist immer wieder eine Freunde sich zu überlegen, was man wohl in eine Methode reinwerfen kann, wenn dort nur ein mir völlig unbekanntes Interface gefordert wird.

Das erste Buch, dass ich zum Üben verwendet habe, war natürlich das "Training Kit" von Microsoft selbst. Und gerade dabei habe ich wieder eine nette Sache gesehen, die meine Gefühlslage sehr gut verdeutlichen kann.

Eines der Beispiele des Buches ließ mich meinen eigenen Button erstellen - ich hab mich nicht ganz an die farbliche Vorlage gehalten - aber prinzipiell kam ungefähr das hier dabei raus:

image

Während ich die unglaubliche Animation des Buttons betrachtete (er wird verschwindent klein und kehrt zur Ausgangsgröße zurück), bemerkte ich, dass irgendwas nicht stimmte: Er wurde kleiner ...

 image image

Offensichtlich setzt WPF die Ausgangsgröße des Buttons neu, wenn dieser während des AutoReverse der Animation erneut geklickt wird. Ok - das ist irgendwie logisch, denn ansonsten könnte man ja, während eine Animation läuft, nicht mehr auf das entsprechende Objekt zugreifen. Aber das sind so die Kleinigkeiten, die WPF in meinen Augen einfach ein wenig unausgegoren erscheinen lassen.

Gib die erste Bewertung ab

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


Neue Blog-Version aufgespielt

clock September 21, 2008 22:41 by author Divi

Nachdem ich den Blog schon eine kleine Weile habe schleifen lassen, habe ich mir nun die Mühe gemacht die Version der Blogengine 1.3.x durch 1.4.5 zu ersetzen. Wie man sehen kann, fehlen noch die ein oder anderen Texte, aber darum kümmere ich mich kurzfristig. Das Layout hat sich allerdings geändert, was an den neuen mitgelieferten Standardlayouts liegt. Das alte Layout hat zwar ebenfalls funktioniert, temporär möchte ich aber schauen, wie ich mit diesem auskomme.

Ich hoffe nach diesem kleinen Update mich auch wieder öfters hierauf konzentrieren zu können.

Einen schönen Abend noch.

Gib die erste Bewertung ab

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


MS ist nicht cool genug

clock August 25, 2008 15:54 by author Divi

Hey zusammen,

Wer es noch nicht kennt: "Photosynth" ist ein Projekt von den "Microsoft Live Labs", bei dem man Bilder hochladen kann, die Photosynth versucht zu einem großen Bild zusammenzufügen. Wenn das halbwegs gut funktioniert, kann man sich danach durch die einzelnen Teile des zusammengesetzten Bildes klicken, so dass sich ein dreidimensionaler Eindruck ergibt.

Vor ein paar Tagen habe ich mir das benötigte Plugin installiert und damit einige Bilder einer Hochzeitsfeier hochgeladen. Das hat soweit alles bestens funktioniert, doch als ich gerade das Album meiner Freundin zeigen wollte, erschien folgende Fehlermeldung:

"Leider sind wir nicht cool genug, um das schon auf deinem Betriebssystem laufen zu lassen. Wir wünschten uns wirklich, dass Photosynth schon auf allen Systemen laufen würde, aber momentan unterstützen wir leider nur Windows. Glaub uns: Sobald wir eine Mac-fähige Version haben, werden wir sie online stellen."

 

image

Ok - abgesehen davon, dass ich das Plugin schon installiert und laufen gelassen habe ... wie zur Hölle kommen die auf die Idee ich sei ein MAC User? Ok - würde ich mit nem Firefox oder Opera surfen, würde ich das ja als kleine Neckerei verstehen ... aber das ist ein MS-IE7! Ich hoffe sie fixen das die Tage, denn eigentlich fand ich die 3D-Ansicht recht cool ;-)

Bewertung: 5.0 von 1 Benutzern

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


Viel zu tun!

clock Juli 20, 2008 22:21 by author Divi

Seit einiger Weile hatte ich keine Zeit mehr hier Texte zu verfassen, doch da ich gerade ein wenig Verschnaufpause habe und sich einiges getan hat, dachte ich, ich könnte mal eine kurze Zusammenfassung abliefern:

Die Sache, die die meiste meiner Zeit auffraß in letzter Zeit war die Microsoft Prüfung 70-536: "Microsoft .NET Framework - Application Development Foundation". Nachdem ich bereits meine ganze Zeit in das Lernen für den ersten Versuch investiert hatte, musste ich mangels genügend Punkten einen zweiten Anlauf auf mich nehmen, den ich dann aber bestanden habe.

Natürlich bedeutete das Bestehen der Prüfung nicht, dass ich mehr Zeit hatte, denn die angestauten Aufgaben wollten natürlich abgearbeitet werden. Einige der privaten Projekte waren folgende:

 

Pixelkämpferin - alias Jessika Wollstein

image

Eine gute Freundin von mir, die ihre Künste als Grafikerin anpreisen möchte. An dieser Seite habe ich gerne gebastelt, weil ich ein wenig Spielereien ausprobieren konnte. Unter anderen eine volle Konfigurierbarkeit mit automatischem einlesen der Icons für alle Bereiche und eine nette Idee mit einem diagonalen Menü, bei der mir aber keine andere Idee kam als eine Image-Map zu verwenden, an die ich dann MouseOver Effekte gebunden habe.

 

Spielefinder.Net

image

Auf einer abendlichen Feier unterhielt ich mich mit dem Bruder meiner Freundin und ich fragte ihn, was man denn noch für kleine Tools basteln könnte, die es im Web nicht gibt. Irgendwann im Gesprächsverlauf über die verschiedensten Ideen, brachte er mich darauf, dass es zwar viele Spieledatenbanken gibt, keine davon aber erlaubte nach der eigenen Hardware zu suchen. Darum brachte ich vor knapp einer Woche eine Webseite online, die in der Lage ist gespeicherte Spieldaten in einer eigenen Datenbank nach der gewählten Hardware zu durchsuchen. Außerdem steht die Möglichkeit bereit über Slider (übrigens aus dem ASP.Net Ajax Toolkit stammend) eine Toleranz zu definiere, falls man sich gerne seinen Rechner aufrüsten würde, damit das Spiel bei einem läuft.

 

Codeplex - DownloadCounter

Und zu guter letzt: Ich habe heute auf Codeplex ein neues Projekt eingestellt namens "DownloadCounter". Momentan besteht es nur aus einer ganz einfach gestrickten Assembly und einem Demo-Projekt. Ich kam darauf, als mich der Freund meiner Schwester bat für ihn ein paar Dateien zum Download anzubieten, denn ich wollte ihm gerne die Möglichkeit bieten die Downloads der Musikstücke (er ist ein kleiner Hip-Hopper) nachzuhalten, um seinen Erfolg messen zu können. Und da ich bereits öfters Download-Counter geschrieben habe, dachte ich mir - ich könnte doch mal unter .Net einen bauen, den man wiederverwenden könnte - und damit das Projekt sich stetig verbessern kann, hoffe ich nun darauf, dass einige User sich das Projekt anschauen und ggf. mit Verbesserungswünschen an mich herantreten.

Gib die erste Bewertung ab

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


Token noch nicht gueltig

clock Mai 15, 2008 20:50 by author Divi

Nach einiger Zeit, habe ich mal wieder das SecurityToken-Projekt ausgegraben, um das in einem aktuellen Projekt zu verwenden. Als ich das Projekt aber anstieß und mich einloggte, erhielt ich einige Fehlermeldungen. Ich wusste nicht wo diese herkamen und ging deshalb den Code Step-By-Step im Debugger durch. Faszinierenderweise trat der Fehler nicht mehr auf und alles funktionierte anständig. Darum lud ich die Seite erneut und wieder schien alles problemlos zu laufen. Deshalb ging ich zuerst einmal von einem Cache-Problem aus und vergaß das Problem.

Einige Zeit später hatte ich meine Cookies gelöscht und wollte mir ein neues Token ausstellen - doch wieder erhielt ich einige Fehlermeldungen - doch wiederum verschwand der Fehler beim durchsteppen.

Daraufhin beschloss ich über mehrere Stellen im Code Breakpoints zu verteilen und sprang wesentlich schneller von einem zum nächsten, um die Stelle des Fehlers besser eingrenzen zu können. Als ich dann an der entsprechenden Stelle ankam, fand ich folgende Fehlermeldung vor:

"Das SamlToken ist zeitlich nicht gültig. Die aktuelle Zeit "14.05.2008 11:29:21" liegt außerhalb der effektiven Zeit "14.05.2008 11:29:59" und der Ablaufzeit "14.06.2008 11:29:59" des Tokens.

image

Was war passiert? Zuerst dachte ich, ich hätte versehentlich ein Problem in der Datumsberechnung, bis mir auffiel, dass das Token erst einige Sekunden NACH dem Ausstellen gültig wurde. Doch warum? War das eine eingebaute Funktion?

Nach kurzer Suche nach der Fehlermeldung fand ich einen Beitrag im Internet, der das selbe Problem hatte. Er hatte sich aber die Frage schon selbst beantwortet mit: "Ich stelle dann mal die Zeit meines Servers um" ... richtig ... der Dev-Server und mein PC hatten einen Zeitunterschied von ca. 30 Sekunden - deshalb war das Token NOCH nicht gültig, als es bei mir ankam - und deshalb funktionierte das durchsteppen immer, da dies die benötigte Zeit zum gültig werden überschritt, bis ich die entsprechende Stelle erreicht hatte.

Bewertung: 5.0 von 1 Benutzern

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


Prozess-Output abfangen

clock Mai 3, 2008 22:39 by author Divi

Als ich neulich an einem privaten Projekt arbeitet, in welchem ich unter anderem Dateien vergleichen musste, stieß ich auf die integrierte "Diff"-Methode von SVN. Um den Vergleich durchzuführen, kann man SVN nach folgendem Schema aufrufen:

svn diff -r ALTE_REVISION:NEUE_REVISION DATEI

und schon erhält man eine Ausgabe der Unterschiede im diff-Format.

 

Um SVN aufzurufen, wollte ich in einer ASP.Net Klasse den Prozess im Hintergrund starten und einfach die Rückgabe abfangen. Leider hatte ich dabei ein kleines Problem. Der Output schien immer leer zu sein.

Als ich mich dann irgendwann nochmal daran versuchte, erhielt ich plötzlich den gewünschten Output. Direkt als ich nach Hause kam, wollte ich diesen Aufruf dann einbauen, doch wiederum schwieg die Rückgabe. Darum überlegte ich mir, wo wohl der Unterschied sein konnte. Zuerst vermutete ich, dass Vista den Output unterdrücken würde, da auf meinem Arbeitsrechner XP läuft, während mein Rechner zu Hause Vista hat. - Die Idee stellte sich aber als falsch heraus, als ich das Programm des Arbeitsrechners auf meinem Heim-PC ausführte... doch da kam ich drauf: Der Unterschied lieg im Anwendungstyp: Während ich das Projekt selbst als Webanwendung aufgesetzt habe, hatte ich das Testprojekt auf dem Arbeitsrechner als Konsolenanwendung erstellt.

Mein Code sah folgendermaßen aus:

 

ProcessStartInfo ps = new ProcessStartInfo("svn", "diff -r 4:6 file:///MEINE_LOKALE_DATEI");
ps.UseShellExecute = false;
ps.RedirectStandardOutput = true;

Process p = new Process();
p.StartInfo = ps;
p.Start();
p.WaitForExit();

string output = p.StandardOutput.ReadToEnd();

 

Der String "output" war hier bei der Webanwendung stehts leer (nicht null), während die Konsolenanwendung den richtigen Output zeigte:

 

Konsole:

image

Webanwendung:

image

 

Das Problem musste ich natürlich lösen, denn ich wollte mein Projekt nicht zu einer Desktop-Anwendung machen. Darum probierte ich ein wenig rum. Zuerst vermutete ich natürlich, dass es Probleme mit dem TrustLevel der Anwendung gab und dass Webanwendungen wesentlich restriktiver behandelt werden würden, aber jegliche Änderungen an den Sicherheitseinstellungen brachten keine Änderungen. Bis ich irgendwann im Internet einen Code-Schnipsel fand und das diesen 1:1 kopierte. Dieser funktionierte auch in der Webanwendung. Jedoch kaum hatte ich den Code wieder an meine Bedürfnisse angepasst und den "sinnlosen" Schrott rausgeworfen, klappte der Code wieder nicht. Darum bin ich dann Step-für-Step durchgegangen und habe dabei rausgefunden, woran es lag:

Die magische Standarteigenschaft der ProcessStartInfo heißt "RedirectStandardError". Kaum hatte ich die in meinem Projekt auf "true" gesetzt, klappte das einfangen:

image

 

HINWEIS:

Als ich diesen Blog-Eintrag hier schreiben wollte, hatte ich zuerst vor eine andere Anwendung als SVN zu verwenden und nahm "PING" stattdessen. Interessanterweise hatte ich plötzlich auch ohne "RedirectStandardError" eine Ausgabe in der Webanwendung:

image

Anscheinend ist es also auch ein wenig von der Art der Anwendung abhängig.

Bewertung: 4.0 von 1 Benutzern

  • Currently 4/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


Verschiedenes 20080406

clock April 6, 2008 15:28 by author Divi

In letzter Zeit kam ich nicht oft dazu an dem Blog oder privaten Seiten zu arbeiten, da die Arbeit (glücklicherweise) viele Aufträge zu bieten hatte, die (leider) immer recht straff geplant waren.

Um kein größeres Thema hier aufzumachen, an dem ich dann länger schreiben würde und dass dann ggf. nicht so sauber abgehandelt werden würde, wie ich das gerne hätte, hab ich mir vorgenommen wenigstens die letzten Tools, die mir im Alltag über den Weg gelaufen sind hier vorzustellen:

 

VSO DivxToDVD

Die Tage wurde ich gebeten ein im Internet sehr umstrittenes Video auf DVD verfügbar zu machen, da einer meiner Bekannten keinen Computer hatte, um ins Internet zu gehen, geschweige denn sich das heruntergeladene DivX Video anzuschauen. Nach einigen Versuchen mit Software, die mehr schlecht als Recht war, führte mich Google auf die Seite von Softonic, wo ich den VSO DivxToDVD Converter 0.5.2.99 fand. Ein sehr cooles Tool, einfach gehalten und auch noch kostenlos:

image

Als ich mich nach einem Update beim Hersteller umschauen wollte, fand ich heraus, dass (zu meinem Bedauern) das nette kleine (und vor allem kostenlose ;-D) Tool mittlerweile kostenpflichtig geworden ist. Ich find gut, dass VSO sich dazu entschlossen hat, dieses Programm professionell zu vermarkten, denn ich finde, dass das Programm echt gut ist, aber natürlich habe ich keine Lust für eine einfache Konvertierung ab und an Geld auszugeben. Das Programm heißt mittlerweile ConvertXToDVD und kostet rund 40€.

(Hinweis: Softonic hat aber immer noch den Link zur alten, kostenfreien Version).

 

SDP Multimedia

Während der Suche nach einem Problem, fand ich letzte Woche zufällig einen Webcast, den ich mir gerne angeschaut hätte, der aber keinen direkten Downloadlink hatte. Er schien mir einige gute Infos zu enthalten, aber war einfach zu lang, um ihn mir mal kurz nebenbei anzuschauen. Darum versuchte ich ihn auf verschiedene Weisen runterzuladen, was allerdings nicht klappte, bis ich den Streamripper SDP Multimedia fand.

image

Er ist zwar ein wenig langsam im Download (oder vielleicht war das auch der Streaming-Server :-D), aber auf jeden Fall wiederum kostenlos.

Man braucht lediglich einen Stream über das MMS Protokoll angeben, und schon wandert das Video auf die Platte.

 

FileSystemWatcher

Nachdem wir bei uns auf der Arbeit schon seit längerer Zeit VisualCron verwenden, um unsere Dateibasierten-Cronjobs aufzusetzen, musste ich neulich feststellen, dass beim .Net Framework ebenfalls eine Hilfsklasse zu diesem Zweck vorhanden ist: System.IO.FileSystemWatcher.

Dieses Objekt erlaubt es das Dateisystem zu beobachten und auf bestimmte Änderungen zu reagieren. Dazu muss man lediglich das Objekt instanziieren, das Verzeichnis, welches es zu überwachen gilt nennen, (auf Wunsch eine Maske (z.B. nur .cs-Dateien) definieren und dem Objekt sagen, dass es die Überwachung starten soll:

 

System.IO.FileSystemWatcher fsWatcher = new System.IO.FileSystemWatcher();

fsWatcher.Path = @"C:\fsWatcherTest";
fsWatcher.Created += new System.IO.FileSystemEventHandler(FileCreated);
fsWatcher.WaitForChanged(System.IO.WatcherChangeTypes.Created);

 

Mit diesem Code würde der FileSystemWatcher auf das Erstellen von genau einer Datei warten und dann die Methode FileCreated aufrufen. Um auch Umbenennungen zu reagieren und zwar nicht nur einmal, sondern mehrfach, habe ich das Programm folgendermaßen erweitert:

 

class Program
{
    static void Main(string[] args)
    {
        System.IO.FileSystemWatcher fsWatcher = new System.IO.FileSystemWatcher();

        fsWatcher.Path = @"C:\fsWatcherTest";
        fsWatcher.Created += new System.IO.FileSystemEventHandler(FileCreated);
        fsWatcher.Renamed += new System.IO.RenamedEventHandler(FileRenamed);

        while (true)
        {
            fsWatcher.WaitForChanged(System.IO.WatcherChangeTypes.Created);
            fsWatcher.WaitForChanged(System.IO.WatcherChangeTypes.Renamed);
        }
    }

    static void FileCreated(object sender, System.IO.FileSystemEventArgs e)
    {
        Console.WriteLine(String.Format("File Created: {0}", e.FullPath));
    }

    static void FileRenamed(object sender, System.IO.RenamedEventArgs e)
    {
        Console.WriteLine("---");
        Console.WriteLine("File Renamed:");
        Console.WriteLine(String.Format("Old path: {0}", e.OldFullPath));
        Console.WriteLine(String.Format("Old name: {0}", e.OldName));
        Console.WriteLine(String.Format("New path: {0}", e.FullPath));
        Console.WriteLine(String.Format("New name: {0}", e.Name));
        Console.WriteLine("---");
    }
}

 

Folgende Schritte habe ich danach gemacht:

1.) Das Programm gestartet.

2.) Eine Textdatei in dem Ordner erstellt.

3.) Diese Textdatei umbenannt.

Dabei entstand folgende Ausgabe:

image

 

Interessant dabei: Wenn ich eine neue Datei unter Vista via Rechtsklick erstelle, dann erscheint die Datei in dem Verzeichnis und der Name (ohne Dateiendung) wird markiert, damit ich den Namen direkt ändern kann. Wie ich es gerade in diesem Satz beschrieben habe, wird die Datei wirklich zuerst erstellt und dann nachträglich geändert (was auch in der Anwendung oben zu sehen ist). Also passt auf, denn die Datei könnte nach dem Erstellen evtl. noch nicht den finalen Namen haben.

Gib die erste Bewertung ab

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


Verschiedene Javascript Bibliotheken

clock März 10, 2008 22:04 by author Divi

Ich habe in den letzten Tagen die Zeit gefunden ein paar liegengebliebene Zeitschriften durchzulesen und bin dabei auf ein paar sehr interessante JS-Bibliotheken gestoßen:

 

Bevel-JS

Link: http://www.netzgesta.de/bevel/

Ein cooles Script, um Grafiken via Javascript zu modifizieren.^

image

Im Vordergrund könnt ihr die Grafikdatei aus dem Beispielordner sehen, während im Hintergrund die Beispielseite mit angewendetem Javascript dargestellt ist. Beide mitgelieferten Javascript-Dateien haben nur eine Größe von 48kb.

 

Flot-JS

Link: http://code.google.com/p/flot/

Der folgende Code stammt aus dem Beispielverzeichnis:

$(function () {

var d1 = [];

for (var i = 0; i < 14; i += 0.5)

d1.push([i, Math.sin(i)]);

var d2 = [[0, 3], [4, 8], [8, 5], [9, 13]];

// a null signifies separate line segments

var d3 = [[0, 12], [7, 12], null, [7, 2.5], [12, 2.5]];

$.plot($("#placeholder"), [ d1, d2, d3 ]);

});

Was hier ein wenig sehr mathematisch aussieht, ist nicht mehr als die Beschreibung bestimmter Graphen - und zwar folgender:

image 

Das ist noch eine relativ einfache Darstellung für das, was die Flot-Bibliothek anbietet. Eine schon etwas komplexere Beispieldarstellung gleich mehrerer verschiedener Graphen findet sich ebenfalls im Beispielverzeichnis:

image

Um es mit den Worten eines Arbeitskollegen zu sagen: "Das werd ich nicht mehr als einmal pro Jahr brauchen, aber dann könnte es echt interessant sein."

Das nette an den Diagrammen ist, dass die Bibliothek gleichzeitig Methoden mitbringt, die bei der Wertebestimmung oder dem vergrößern von Ausschnitten helfen.

 

Ext-JS

Link: http://extjs.com

Die ExtJS scheint sehr nette vordefinierte Controls mitzubringen. Ein Screenshot der API-Doku des Frameworks demonstriert gleichzeitig einige der Controls, die auf der hauseigenen Seite zum Einsatz kamen:

image

Wie man im Baum auf der linken Seite lesen kann, sind einige der vorhandenen Controls sehr sinnvolle Controls, die in den meisten Anwendungen ihren Platz finden könnten. Darunter u.a.: Grid, Menu und Tree.

Für die Lesefaulen gibt es dort übrigens ebenfalls eine Seite mit Videotutorials.

 

zXml

Link: http://nczonline.net/downloads/

Auf der oben genannten Seite, findet man mehrere nette Bibliotheken für Javascript. Eine davon ist z.B. eine Erweiterung der JS-Arrays um Methoden wie "Clone".

Die Klasse, die mich aber am meisten interessiert hat, stellt eine browserunabhängige Schnittstelle für die Verarbeitung von XML zur Verfügung. Die JS-Datei ist gerade einmal 14kb groß und erlaubt es einem über Code ähnlich dem folgenden zu verwenden:

//create a DOM document

var oXml = zXmlDom.createDocument();

//fill it with some XML

oXml.loadXML("<root><child index=\"1\"/><child index=\"2\"/> <child index=\"1\"/><child index=\"3\"/></root>");

//look around

alert("Root is: " + oXml.documentElement.tagName);

alert("First child is: " + oXml.documentElement.firstChild.tagName);

Wie man sehen kann, kann man über übliche Begriffe wie firstChild oder tagName auf die einzelnen Elemente und ihre Werte zugreifen.

 

Dojo-Offline-Toolkit

Link: http://dojotoolkit.org/offline

Im "entwickler"-Magazin (Ausgabe: März/April) befindet sich ein Artikel über die Verwendung des Dojo-Offline-Toolkits in Zusammenarbeit mit Google-Gears. Google-Gears stellt eine SQLite Datenbank und einen Proxy zur Verfügung, mit dem sich dynamischer Content auf dem Client ablegen und bei Bedarf gesteuert angezeigt werden kann.

Das Dojo-Offline-Toolkit fügt Google-Gears keine neuen Methoden hinzu, jedoch stellt es einige Methoden zur Verfügung, die die Arbeit mit Gears wesentlich erleichtern sollen. Darunter fallen Methoden wie den Dojo-Storage, bei dem sich Objekte persistent ablegen lassen, sowie Befehle zur Ausführung von SQL oder dem Nachladen von Ressourcen einer Webseite.

 

Nur der Vollständigkeit halber hier noch einige weitere Links von mir bekannten Javascript-Frameworks:

- Prototype

- Script.Aculo.Us

- Moo-Ajax und Moo-FX

- JQuery

- ASP.Net Ajax

Alle von diesen sind großartige Frameworks, die sich nicht nur auf die normale Arbeit mit Ajax beschränken, sondern auch perfekte Effekte liefern. Ich gehe jedoch davon aus, dass diese Frameworks den Leuten eher geläufig sind und deswegen eher weniger Erklärungsbedarf bestehen dürfte.

Bewertung: 5.0 von 1 Benutzern

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


Kostenloser PDF-Printer von Bullzip

clock Februar 22, 2008 19:25 by author Divi

In den letzten Wochen wurde ich vermehrt danach gefragt, ob ich eine Möglichkeit kennen würde, wie man am einfachsten Word-Dateien zu PDF-Dokumenten konvertieren könnte. Daraufhin fielen mir im Normalfall die folgenden Möglichkeiten ein:

- OpenOffice bietet die Möglichkeit als PDF zu speichern

- Das Office 2007 Plugin "Save as PDF" (setzt allerdings Office 2007 voraus)

- Der Acrobat Distiller (Teil des kostenpflichtigen Acrobats von Adobe)

 

Ab und an habe ich mir sogar die Mühe gemacht nach gerade aktuellen Tools zu suchen, jedoch war meine Standardempfehlung, für die Leute, die kein Office 2007 haben, sich einfach OpenOffice zu installieren.

 

Seit heute wäre für Leute, die kein Office 2007 haben, denn das Plugin find ich einfach klasse, der "PDF Printer" von Bullzip. Der PDF-Printer ist kostenlos und benötigt lediglich als Voraussetzung "Ghostscript". Beide Downloads erhaltet ihr auf der Download-Seite von Bullzip:

 

image

Nach der Installation erhaltet ihr einen neuen Drucker in der Systemsteuerung. Wenn ihr diesen auswählt und das Dokument ausdruckt, erscheint ein Dialog, welcher euch nach dem Speicherort für das PDF fragt. Der Rest geschieht automatisch.

Gib die erste Bewertung ab

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5