AjaxChat Adminpanel 1.0
Verfasst von dreiling unter Entwicklung, PHP am 7. Januar 2011
Dank Patrick Hofmann konnte ich noch einen Bug fixen der dann aufgetreten ist, wenn man in der Datenbank einen zweiten Benutzer zum Admin gemacht hatte.
Auch ist inzwischen eine Crossplattform Version entstanden, welche auf allen Sytemen funktionieren sollte.
Da hiermit auch ein letzter Bug gefixt ist, habe ich hier eine 1.0 Version gebastelt
Den Download gibts hier:
ajaxchat_adminpanel_1.0
und die Anleitung im Ursprungspost ist hier zu finden: Adminpanel für Blueimp-Ajaxchat
Einmal Japan – New York bitte…
Verfasst von dreiling unter zum schmunzeln am 11. November 2010
Google Maps kennt inzwischen jeder und hat wahrscheinlich auch schon jeder in irgendeiner Form genutzt. Im Normalfall ists auch eine sehr zuverlässige Sache. Bis auf das Grenzegbiet zwischen Nicaragua und Costa Rica… aber das war eine andere Geschichte.
Wer nun mit Hilfe von Google von Japan nach New York reisen möchte, wird spätesten bei Punkt 27 der Reise etwas überrascht sein:

Unter Punkt 28 ist dann auch schon Google StreetView auf Hawaii verfügbar und in der Tat kommt man mitten am Strand an.
Die Reisedauer ist auch sehr präzise mit 36 Tagen und 9 Stunden angegeben.
Sehr schön
PS: von Japan nach China ist man mit dem vorgeschlagenen Verkehrsmittel schon etwas schneller unterwegs (Punkt 43)
LaTeX unter Windows
Verfasst von dreiling unter std::artikel, Studium am 8. November 2010
Wie viele Andere, muss auch ich irgendwann mal die wunderbare Welt der Abstraktion verlassen und eine echte Bachelorarbeit schreiben… allerdings war ich noch nie großer Fan von Dokumentation o.ä. (wem es genauso geht kann sich ja mal das Eclipse Plugin JAutodoc anschauen
)
Nun erzählt man sich dass echte Informatiker solche sachen mit diesem LaTeX erledigen, und genau das versuch ich nun hier mal etwas näher zu bringen:
Die Windows Distribution für LaTeX ist MiKTeX, bei mir hat die 2.9er Version einwandfrei funktioniert.
Zum schreiben genügt eigentlich jeder etwas bessere Texteditor ala Notepad++, da man aber bei den Notationen oder Sonderzeichen nur wenig bis gar keine Unterstützung erhält, habe ich mich hier für das TeXnicCenter entschieden.
TeXnicCenter wird beim ersten Start nach der LaTeX Distribution fragen, hier muss man das bin Verzeichnis der MiKTeX angeben (in der Standardinstallation als “C:\Program Files (x86)\MiKTeX 2.9\miktex\bin”).
Grundsätzlich war das nun schon alles… wären da nicht ca 1800 Zusatzpakete für LaTeX, von denen das TeXnicCenter (zumindest bei mir) nicht in der Lage war die benötigten Pakete eines Templates automatisch herunterzuladen. Der die Exception über fehlende Pakete könnte nicht sprechender sein: “cannot initialize GUI Framework”. Wenn man nun aber die Ursache kennt, kann man den Fehler auch recht einfach beheben. In der gleichen Zeile wie die Exception müsste auch der Paketname zu finden sein, das muss nun manuell installiert werden. Dazu unter dem oben genannten bin Verzeichniss von MiKTeX die Datei mo.exe ausführen und im letzten Reiter (“Packages”) ein Repository auswählen und dann über den “Start Package Manager” Button den Paket Manager starten. Die Filterfunktion tut einwandfrei ihren Dienst und liefert im Normalfall das fehlende Paket. Nun nur noch über das + oder über Rechtclick/install das Paket installieren und das Kompilieren neu starten und das nächste fehlende Paket suchen
Wer einen guten Mirror für ein Repository gefunden hat und über eine entsprechende Leitung verfügt kann auch die Dampfhammermethode wählen und über “Edit/Select Installable Packages” alle auswählen und runterladen.
Noch ein paar Tips zum Schluss:
- Das Paket Listings macht einigermaßen brauchbares Syntaxhighlightning. Zu benutzen:
\begin{lstlisting}[language=Java]
Code
\end{lstlisting}
- Für Links hilft das hyperref Paket enorm weiter:
\href{www.drailing.net}{subba Blog} - Falls sich über das TeXnicCenter gar nichts kompilieren lässt, ist die Fehlerausgabe und hilfe in der Konsole um einiges besser, auszuführen über:
pdflatex Bachelorarbeit.tex
In diesem Sinne,
nach dem Post kann ich kein Camelcase mehr sehen und allen die auch grade anfangen zu schreiben: Viel Erfolg!
Rails3 und jQuery Implementierung
Verfasst von dreiling unter Entwicklung, JS / AJAX, Ruby on Rails am 18. Oktober 2010
Hiho,
da ich die letzten Tage unsere Bachelorprojekts auf die serverseitige Programmierung umgestiegen bin, hatte ich auch mit ein paar Neuheiten von Rails3 zu tun.
Da ich mir selbst nen Wolf gegoogelt hab und vieles nicht finden konnte, schreibe ich hier einfach mal die kleinen Stolpersteine zusammen:
1. jQuery mit Rails installieren
dazu gibts inzwischen schon reichliche Tutorials. In Kurz: von github die rails.js runterladen und includen.
Das Problem dabei war, dass Prototype (die JS Library die Rails normalerweise benutzt) und jQuery das Dollarzeichen als Selector benutzen. Das heisst einfach nur includen zerstört die restlichen Javascript calls von Rails – weiterlesen hätte geholfen, denn auf github wird die Installation gut erklärt.
2. respond_to mit jQuery AJAX
da Prototype von Haus aus dabei ist, hätte die Implementierung in einem AJAX Update wohl so ausgesehen
respond_to do |format| format.js { render :update do |page| page.replace_html :divId, :partial => "partialName" end } end
die Methoden wie replace_html gibt es nun in der Form in jQuery nicht mehr.
Der Javascript Generator bietet uns allerdings eine andere schöne Form um nun jQuery funktionen aufzurufen. Das äquivalent zum obigen Code sieht dann so aus (in 2 Schritten da die jQuery Methode replaceWith() nicht funktioniert hatte)
render :update do |page| page["#divId"].empty page["#divId"].append render(:partial => "partialName") end
3. Ein Partial aus verschiedenen Controllern aus updaten
Die Rails Doku liefert uns unter dem Punkt “shared Partials” schon einen guten Ansatz. Zur Vollständigkeit hier das Codebeispiel von Oben erweitert
render :update do |page| page["#divId"].empty page["#divId"].append render(:partial => "controllerName/partialName", :locals => {:objectName => @context.objectName }) end
4. jQuery UI Icons in den Links
nach vielen Versuchen die CSS Wrapper drumherum zu bauen, hat einfach das zufügen der jQuery Klassen selber gereicht. Ein “Delete” als Mülleimer würde dann entsprechend so aussehen:
<%= link_to 'Destroy', restfull_route_path(object_to_destroy), :confirm => 'Are you sure?', :method => :delete, :class => 'ui-state-default ui-corner-all ui-icon ui-icon-trash', :title => "Delete" %>
Ich hoffe dem Ein oder Anderen kanns etwas Zeit sparen
AjaxChat Adminpanel – Neuer Fix
Hiho,
leider musste ich feststellen, dass in dem Adminpanel noch ein “kleiner” Bug auf Unix Systemen versteckt ist, was das Schreiben der Datei verhindert:
Das Problem sind die Slashes… aktuelle, Windows-Server Version:
$datei = fopen("lib\data\users.php", "r+");
für Linux-Server in den Zeilen 265 und 315 die Slashes drehen:
265 - $datei = fopen("lib/data/users.php", "r+"); 315 - $datei = fopen("lib/data/users.php", "w");
Zu Allem Überfluss habe ich im Mini-SQL auch noch ein Semikolon zwischen den Statements vergessen…
Daher hier nochmal beide zips zum Download:
ajaxchat_adminpanel_win_fix2
ajaxchat_adminpanel_unix_fix2
Update: Crossplattformdownload: ajaxchat_adminpanel_1.0
ajaxchat_adminpanel_1.0
Ich hoffe das passt nun
Tip: Wolfram|Alpha
Verfasst von dreiling unter std::artikel am 12. August 2010
Schon vor einiger Zeit wurde ich auf Wolfram Alpha aufmerksam, allerdings war ich bis vor kurzem der Meinung es ist ein etwas besserer Taschenrechner. Nun wurde ich eines besseren belehrt, indem ich auf zwei Videos hingewiesen wurde, in denen sehr schön die Mächtigkeit von Wolfram Alpha demonstriert wird.
Beispiel:
“2 cups orange juice + 1 slice cheddar cheese” liefert eine genaue Auflistung der Kalorien und Bestandteile und Rechnungen wie “height of mt everest / length of golden gate bridge” sind damit auch kein Problem mehr.
Reinschauen lohnt auf jeden Fall
Probleme und Lösungen mit JS/jQuery
Verfasst von dreiling unter Entwicklung, JS / AJAX am 23. Juli 2010
Nachdem ich mich die letzte Woche mit jQuery etwas beschäftigt habe, möchte ich hier einmal kurz die aufgetretenen Probleme und die damit verbundenen Lösungen festhalten:
Parallele Abläufe
Da es in Javascript und somit auch in jQuery keine Threads gibt und eine endlose while Schleife keine Parallelität bietet (und ausserdem den Browser abstürzen lässt) muss ein anderes Konstrukt herhalten. Die Lösung hier lautet Rekursion (schön erklärt von Markus Kühle auf Javathreads).
setTimeout mit Parametern
Auf anhieb findet man für die Rekursion viele Beispiele mit der setTimeout Methode, leider aber immer ohne Parameterübergabe (in meinem Beispiel der CountUp):
setTimeout("countUp()", 1000);
Sobald nun countUp() mit einem Parameter übergeben werden soll, funktioniert dieser Aufruf nicht mehr. Die Lösung war, den ersten Parameter der setTimeout Methode durch eine Funktion zu ersetzen:
setTimeout(function(){ countUp(date); }, 1000);
Countup und die Zeit
Ich hatte eigentlich erwartet dass mich Google mit kleinen Codeschnipseln überhäuft wenn es um einen Simplen Countup für Zeit geht. Gefunden habe ich ein paar wenige, die aber so unschön anzuschauen waren, dass ich mir kurzerhand was kleines Simples selbst zusammengeschrieben habe:
//Parameter inzwischen global um einfach und dynamisch zur Laufzeit zu ändern var year, month, day; function countUp(){ //month-1 da die Monate von 0-11 codiert sind var startDate = new Date(year, month-1, day, 0, 0, 0); var currentDate = new Date(); var diff = new Date(currentDate.getTime() - startDate.getTime()); //(diff.getYear()-70) da der Zeitliche Nullpunkt bei 1970 liegt, und wir nur die Anzahl der Jahre benötigen var diffString = "Years " + (diff.getYear()-70) + " Months " + diff.getMonth() + " Days " + diff.getDate() + " Hours " + diff.getHours() + " Minutes " + diff.getMinutes() + " Seconds " + diff.getSeconds(); //String schreiben $('#countUpDiv').html(diffString); //rekursiver Aufruf setTimeout(function(){ countUp(); }, 1000); }
noch ein Tip zum Schluss
Um die komplette jQuery Doku auch offline (solls ja ab und zu geben…) nutzen zu können, gibts diese auch als PDF oder sogar als Windows Help File zum Download.
Link
Nichtraucher mit jQuery
Verfasst von dreiling unter Entwicklung, JS / AJAX, PHP am 22. Juli 2010
Nachdem ich seit inzwischen 3 Wochen dem Laster des Rauchens trotze und in meiner freien Zeit vor Praxisphase und Bachelorarbeit noch etwas sinnvolles machen wollte, habe ich mich etwas mit dem Javascript/AJAX Framework jQuery beschäftigt. Beides kombiniert, kommt bei mir eine kleine Nichtraucher”Uhr” raus:
Zur Zeit wird das Datum der letzten Zigarette (, durchschnittliches Gerauche und Preis einer Schachtel erfasst und daraus die Zeit als Nichtraucher und das dabei gesparte Geld errechnet.
In Zukunft wird die Toplist noch um das gesparte Geld erweitert, eine kleine API gebastelt die die “Uhr” ausgeben kann (ohne angemeldet zu sein) und bei ganz viel Laune wird noch das Standarddesign ersetzt.
Wer sich nicht registrieren will, kann sich mit test/test auch das innenleben mal amschauen.
Eine schöne Sache dieses jQuery
Rückmeldung zum Wintersemester 2010/11
Zur Erinnerung: vor einer knappen Woche hat wieder die Rückmeldefrist fürs nächste Semester begonnen (231 Euro) und kann bis zum 04.08.2010 überwiesen werden.
Alle benötigten Daten sind hier zu finden: Link
Java 4-Ever
Verfasst von dreiling unter zum schmunzeln am 26. Juni 2010
Ein kleines Video was grade unter den Kommilitonen die Runde macht und mehr als sehenswert ist!
Edit: Video tut wieder!

Letzte Kommentare