robert.schöbel.net
November 3rd, 2010
Es kann vorkommen, das Excel plötzlich anstatt eines Kommas für Dezimalstellen einen Punkt verwendet.
d.h. 5.000.78 anstatt 5.000,78
Problem Summen in Teilergebnissen ergeben Null (0)
Lösung: Ursache hierfür ist das falsch eingestellte Dezimaltrennzeichen in den Sprach und Ländereinstellungen in Windows
Start –> Systemsteuerung–>Datum, Zeit, Länder und Sprache (oder Region und Spracheinstellung)
dann Dezimaltrennzeichen von Punkt (.) in Komma (,) ändern und Excel neuladen
Robert Schöbel |
usefull stuff |
October 28th, 2010
Ein neues Projekt steht ins Haus und ich strebe dafür die Nutzung von Codeigniter 2 mit Doctrine 2 an.
Beide liegen noch noch nicht in einer stable Version vor, sind aber sicher bald erhältlich.
Um die Doctrine zum laufen zu bekommen wird der Ordner einfach unter applications/librarys/ entpackt,
der Rest ist auf der folgenden Seite erklärt (gute Erläuterung, aber leider schlecht bei Google zu finden)
http://wildlyinaccurate.com/integrating-doctrine-2-with-codeigniter-2/
Damit die Doctrine Console in Windows mit dem Xampp auszuführen geht, muss nur folgendes getan werden:
Windows –> Ausführen –> CMD
dann Xampp Pfad auswählen und dort die php.exe ausführen
X:\Anwendung\xampp\xampp\php\php.exe -f “X:\Anwendung\xampp\xampp\htdocs\Projektordner\application\doctrine.php” orm:schema-tool:create
Dies erzeugt das Tabellenschema und es kann losgehen
weitere Hinweise in meinem HOW-TO
Robert Schöbel |
PHP |
October 13th, 2010
Problem:
Nutzung der Codeigniter Language Class
gesamtes Projekt auf UTF-8
Es soll ein Button mit folgendem Text erstellt werden
{code type=PHP}
<?php echo form_submit(‘change’,'Ändere Datensatz’); ?>
{/code}
Das Ä ist aber nicht akzeptabel, eine Änderung in Ä wird auf dem Button nicht in Ä umgewandelt
zusätzlich soll die Language Class genutzt werden d.h. es ergbit sich:
{code type=PHP}
<?php echo form_submit(‘change’, $this->lang->line(‘aendere_pw’)); ?>
{/code}
in der text_lang.php Datei steht der Text als HTML Tag
$lang['aendere_pw'] = "&Auml;ndere Datensatz";
jetzt ist die Ausgabe kein Ä sondern Ä
deshalb muss die Ausgabe in UTF-8 umgewandelt werden
{code type=PHP}
<?php echo form_submit(‘change’, html_entity_decode($this->lang->line(‘aendere_pw’),ENT_COMPAT,’UTF-8′)); ?>
{/code}
Robert Schöbel |
PHP |
July 31st, 2010
Heute habe ich nach langer Zeit mal wieder ein Ordner zu meinem SVN Repository hinzufügen wollen.
Da stellte sich die Frage: Wie bekomme ich einen bereits gefüllten Ordner in mein bestehendes Repository
dafür gibt es zwei Möglichkeiten mit TortoiseSVN
- SVN Add
- SVN Import
SVN Add
SVN ADD wird dann verwendet wenn der Ordner den ihr importieren wollt bereits unter einem Versionierten Ordner liegt
Ordner(versioniert)
Unterordner(versioniert)
Unterordner2(nicht versioniert)
Vorgehen:

- Rechte Maustaste auf den Unterordner –> SVN–>ADD (wie auf dem Bild)
- Das Adden bestätigen
- Der Ordner muss jetzt noch Committed werden
- Dazu Rechte Maustaste auf den Ordner und Commit des Ordners durchführen
SVN Import
Wird verwendet wenn sich der Ordner auserhalb eines versionierten Ordners befindet
Order(versioniert)
Unterordner(versioniert)
Ordner2(nicht versioniert)
Vorgehen
Rechte Maustaste –> SVN Import

Pfad auswählen
Hierbei ist zu beachten, dass der Pfadname den Ordnernamen des zu importierenden Ordners enthält
bei mir soll der Ordner Texmakerwin32USB importiert werden deshalb wird in den Ordner svn…/Texmakerwin32USB importiert
fehlt die Angabe des Ordners, werden alle Dateien in den Übergeordneten Ordner kopiert (das ist sicher nicht gewollt)

dann wird das ganze bestätigt
Achtung: der Ordner ist zwar im Repository, aber auf dem Laufwerk auf dem Ihr euch befindet ist er noch nicht unter Versionskontrolle.
Um dies zu erreichen wird vom Ordner eine Sicherheitskopie gemacht (falls Fehler auftreten, oder beim ersten Versuch)
Jetzt wird der zu versionierende Ordner von der Festplatte gelöscht.
Im nächsten Schritt wird der Ordner aus dem Repository ausgecheckt
Dazu im Übergeordneten Ordner auf Checkout klicken und einen Ordner angeben

Nun steht dieser versioniert zur Verfügung
Wenn alles geklappt hat, kann die Sicherheitskopie gelöscht werden
Robert Schöbel |
SVN |
July 25th, 2010
Die Silbentrennung in Latex erfolgt normalerweise automatisch.
Trotzdem kann es vorkommen, dass Latex über den Rand schreibt, weil es nicht umbrechen kann.
In meiner Diplomarbeit hatte ich ziemlich oft dieses Problem, weil ich viele Englische Wörter und IT-Fachbegriffe verwendet habe.
Ich verwende die Pakete
\usepackage[utf8x]{inputenc} %\UTF 8
\usepackage[T1]{fontenc} %damit Latex keine Probleme mit der Silbentrennung bei Worten mit Umlauten hat
Hier sind deshalb ein paar Tipps
| Ausgabeziel |
Latexformatierung |
Beschreibung |
| Analyse- und Berichtsfunktion |
Analyse”~ und Berichtsfunktion |
Mit dem “~ bleibt der Aufzählungsbindestrich erhalten und es wird kein Umbruch an dieser Erstelle erzeugt |
| BI-Produkte |
BI”~Produkte |
“~ verhinder eine Trennung der Beiden Worte und der Bindestrich bleibt erhalten, das Wort Produkte wird weiterhin normal getrennt |
| Management-In|for|mations|system |
Management-In\-for\-mations\-system |
Ein normales - verhindert das die Worte Management und Informationssystem getrennt werden, deshalbt muss mit \- wieder die Trennungsmöglichkeiten eingebaut werden |
| Fragenkatalog |
Fragen”-katalog |
Latex kennt Beispielsweise das Wort Fragenkatalog nicht, deshalb muss es getrennt werden, mit “- wird es in Fragen und Katalog getrennt und wird wieder nach der richtigen Silbentrennung verarbeitet |
Robert Schöbel |
Latex, usefull stuff |
July 5th, 2010
Es ist Zeit etwas über meine Bauberichtssoftware Speed.up.Work zu schreiben.
In der aktuellen Version gibt es folgende Auswertungsfeatures:
Visualisierung der Arbeiter je Firma,
einfache Zeitraumauswahl durch markieren des Bereiches
Firmenaus- und Abwahl durch setzen eines Hakens



Visualisierung der Arbeiter die sich pro Firma auf dem Bau befanden

Es können jetzt auch Mängel eingetragen werden (inklusive Bild).
Diese Mängel können dann als PDF (inklusive Bilder) oder als Excel (ohne Bilder) exportiert werden

weiter Infos
Robert Schöbel |
usefull stuff |
June 24th, 2010
Um allen zu helfen, die den hohen Einarbeitungsaufwand für Latex umgehen wollen, biete ich hier ein Latex-Portable Zusammenstellung für Windows an.
Ich habe alles in einer Zip-Datei zusammengestellt, was benötigt wird um ein Dokument (pdf) zu erzeugen.
Natürlich können die einzelnen Komponenten auch einzeln von den Anbietern geladen werden
- Miktex (Bibliothekslader für Latex)
- http://miktex.org/2.8/setup
- texmaker (Schreibprogramm für Latex) (
- http://www.xm1math.net/texmaker/download.html)
- jabref (Literaturdatenbank für die *.bib Datei)
- http://jabref.sourceforge.net/
- FoxitReader (PDF-Betrachter)
- http://foxit-pdf-reader.softonic.de/
einfach die Datei extrahieren und lostexen
hier ist die Zusammenstellung als rar download
Das Beispiel Dokument (Typ article) steht auch in einem Ordner bereit
Das Dokument ist als Diplomarbeit aufgebaut und besitzt dann folgende Komponenten
- Inhaltsverzeichnis
- Deckblatt
- Abbildungsverzeichnis
- Tabellenverzeichnis
- Abkürzungsverzeichnis(\glossaries)
- Glossar (\glossaries)
- Literaturverzeichnis(bibtex)
- Kopf und Fusszeilen
- Grafiken (png)
- Zitate
- und viele Beispiele
Texmaker darf allerdings nicht mit der normalen texmaker.exe ausgeführt werden, dabei werden die Umgebungsvariablen nicht gesetzt. Es steht eine start_texmaker*.bat im texmaker Ordner zur Verfügung die dies erledigt.
Dazu einfach die im Archiv Ordner liegende readme druchlesen.
Normalerweise ist alles vorkonfiguriert aber evtl. müssen in Texmaker der Übersetzer angepasst werden
Ich habe es mit Windows XP und Vista getestet und es hat super funktioniert.
Option->texmaker konfiguriern->schnelles Übersetzen
{code type=text}
pdflatex -interaction=nonstopmode %.tex|bibtex %.aux|pdflatex -interaction=nonstopmode %.tex|makeindex -s %.ist -t %.alg -o %.acr %.acn|makeindex -s %.ist -t %.glg -o %.gls %.glo|pdflatex -interaction=nonstopmode %.tex
{/code}
Wenn das Übersetzen nicht geht müssen die Pfade zu den einzelnen Komponenten neu eingestellt werden.
Bei fragen steht das Board zur Verfügung
Robert Schöbel |
Latex |
June 11th, 2010
Die USB-Festplatte wird nicht erkannt oder die USB Geräte
The connection to the VMware USB Arbitration Service was unsuccessful. Please check the status of this service in the Microsoft Management Console.
Lösung:
Start->Ausführen->services.msc
Den Dienst:
VMware USB Arbitration Service
starten und auf automatisch umstellen stellen
Robert Schöbel |
usefull stuff |
June 3rd, 2010
Dinge die beim Einrichten des Cronjobs für den MySQL-Dumper zu beachten sind
- pl oder cgi Datei in den Ordner /cgi-bin/ ablegen, dieser liegt oberhalb des normalen Webverzeichnisses welches oft “https” oder “web” heißt, allerdings trotzdem als http://deine_website/cgi-bin/ aufgerufen wird
- pl bzw. cgi Dateien müssen Rechte 755 besitzen
- in der datei crondump.pl ist folgendes anzupassen (my $absolute_path_of_configdir=”")
{code type=”text”}
…
my $absolute_path_of_configdir=”/var/www/……pfad………/web/mysql_dumper/work/config/”;
…
{/code}
die Pfad kann aus der MySQLDumperOberfläche entnommen werden
Die Url lautet dann
http://deine_webseite/cgi-bin/crondump.cgi?config=mysqldumper
Wenn die Mail nicht zu versendet geht, fehlt oft nur MIME-Lite. Dieses kann einfach mit in den cgi-bin Ordner kopiert werden
Ausführlich ist dies unter http://forum.mysqldumper.de/probleme-mit-sendmail-und-mime-lite-t3549.html
und http://forum.mysqldumper.de/features-perl-cronscript-einstellungen-von-konfiguration-cron-t502.html beschrieben
Robert Schöbel |
usefull stuff |
May 10th, 2010
Dies soll eine kleines HowTo sein, wie man mittels JSON und PHP amCharts in einer Webseite einbindet
Ziel ist ein Chart wie hier abgebildet
Als erstes die Amcharts .js Dateien in den Header einbinden
<script src="deinewebseite/amcharts/amline/swfobject.js" type="text/javascript"></script>
Im HTML Code legt wird ein div-Tag angelegt. Dieses div-Tag bekommt eine ID, um später den Flash-Content einzuspielen zu können.
Nachfolgend die Javascript Funktion die ein FlashChart zeichnet
function draw(data,settings,print_id,width,height){
//mit jquery ist die base_uri auf der Seite hinterlegt und wird geholt
var main_path_on_server = $('#base_uri').val(); // website url
var so = new SWFObject(
main_path_on_server + "/amcharts/amline/amline.swf", "amline", width, height, "8", "#FFFFFF");
so.addVariable("path", "amcharts/amline/");
//Chart Wertepaare einfügen
so.addVariable("chart_data", escape(data));
//Chart Settings einfügen
so.addVariable("chart_settings", encodeURIComponent(settings));
so.addParam("wmode", "opaque");
//flash in das div, mit der übergebenen id schreiben
so.write(print_id);
}
Die Funktion draw wird von der folgenden Funktion aufgerufen
//diese Funktion bekommt ein Json Objekt als Rückgabe einer AJAX-Anfrage vom Server
// dieses Objekt enthält die Member: xml,settings,flash_name,height,width
function prepare_draw(json_data){
var data = json_data.xml;
var settings = json_data.settings;
var flash_name = json_data.flash_name;
var height = json_data.height;
var width = json_data.width;
//call der draw funktion mit vorangestelltem xml- Syntax
draw("<?xml version=\"1.0\" encoding=\"UTF-8\"?>" + data,
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>" + settings,
flash_name, width, height);
}
Das JSON Objekt wird über ein Ajax Aufruf in PHP erstellt.
Um es zu füllen, ist die JSON Funktion aus PHP 5 zu nutzen.
Die Amcharts XML wird mit den Libraries von AmCharts-PHP 0.2.0 generiert.
in Pseudo Code sieht das ganze dann so aus
......
/*
* Die AMCHARTS-PHP libraries einbinden
* APPPATH = deine Website Url
*/
require_once( APPPATH
. 'libraries/amxml_dateien.php');
......
$chart = new AmLineChart
("Mychart");
//hole Daten aus der Datenbank in ein result
foreach ($query->result() as $row) {
//x-Achse
$chart->addSerie($row['id_x'],"titel");
//Array mit Wertepaaren
$werte_paare[ $row['id_x'] ] = $row['y_wert'];
}
//Graph zum Chart hinzufügen
$chart->addGraph("Wetter_id", "Wetter_name", $werte_paare);
//Titel setzen
$conf = array('text_size'=> '12', 'align' =>'center');
$chart->addLabel("<b>Wetter</b>", 10,25,$conf);
/* settings */
$chart->setConfig("column.balloon_text"," {title}: {value}");
$chart->setConfig("values.x.rotate","90");
$chart->setConfig("grid.x.approx_count","30");
$chart->setConfig("export_as_image.file","export");
$chart->setConfig("export_as_image.target","_blank");
//nun das JSON-Objekt befüllen
$json->data['xml'] = $chart->getDataXml();
$json->data['settings']= $chart->getConfigXml();
$json->data['width'] = 800;
$json->data['height']= 400;
$json->data['flash_name']= "my_chart";
//JSON-Objekt abschicken, hier dient als Beispiel ein einfaches echo
....
<code
>echo
json_encode($json);</code
>
...
Ich hoffe es hilft jemandem.
$json->data['xml'] = $chart->getDataXml();
$json->data['settings']= $chart->getConfigXml();
Robert Schöbel |
PHP |