Uninteressantes von einem Anwendungsentwickler aus Linse
 

Beiträge in der Kategorie "Programmieren"

 
Seite 2 von 4

Eclipse und XML Dateien

Kategorie "Programmieren" Programmieren  Verfasst am 07.07.2010 09:56 07.07.2010 09:56  0 Kommentare 0 Kommentare  

Eclipse bietet Stndardmäßig für XML Dateien nur einen komischen "Editor", welcher die XML Datei als Baum darstellt. Man muss sich durch Ebenen und Attribute durchklicken. Alternativ gibt es dann nur noch den Schwarz-Weiß Editor ohne Vorkaufunktion.

Abhilfe schafft da das Eclipse Plugin Rinzo XML Editor. Das Plugin erweitert die Liste um einen Editor mit Syntax Highlighting und Vorkaufunktion.

Was will man mehr? ;)

Mal davon abgesehen das Netbeans viel besser ist. :P

 

Farbige Ausgaben auf der Linux Shell mit PHP

Kategorie "Programmieren" Programmieren  Verfasst am 20.06.2010 01:41 20.06.2010 01:41  0 Kommentare 0 Kommentare  

Die folgende Klasse ermöglicht recht simpel die Ausgabe von farbigen Text in einem Linux Terminal. Die Methoden der Klasse sind statisch. Die Erzeugung eines Objektes ist also nicht nötig.

Beispiel:

echo cmd_colors::bold( "black", "any text", "red" );

http://snippets.sim4000.de/show/27/

Have fun. ;)

 

PHP: Only variables should be passed by reference

Kategorie "Programmieren" Programmieren  Verfasst am 20.06.2010 01:17 20.06.2010 01:17  0 Kommentare 0 Kommentare  
Only variables should be passed by reference

Bei der Meldung handelt es sich um einen E_STRICT "Fehler". Also eine so genannte Laufzeit Notiz.

Der "Fehler" tritt immer dann auf, wenn man etwas anderes als eine Variable als Referenz an eine Funktion übergibt. Weiteres dazu auf php.net.

echo any_function($var, "foo", $bar=null);

Nein. Dieses Beispiel ist nicht von mir. So in der Art stand das in einer PEAR Klasse. Naja. Um diesen Fehler zu beheben, verlegt man die Deklaration von $bar einfach in eine eigene Zeile.

$bar = null;
echo any_function($var, "foo", $bar);

Schon hat der PHP Parser nichts mehr zu meckern. ;)

 

MySQL Groß- und Kleinschreibung

Kategorie "Programmieren" Programmieren  Verfasst am 05.06.2010 19:11 05.06.2010 19:11  0 Kommentare 0 Kommentare  

 Bei einem Projekt habe ich festgestellt das bei einem varchar gar nicht auf Groß- und Kleinschreibung geachtet wird. Definiert man Beispielsweise einen natürlichen Primärschlüssel und verwendet dabei MySQL und mysql jeweils als einen Schlüssel, wird es beim Anlegen von mysql Fehler hageln.

Wie man dies ändern kann, ist in der Dokumentation von MySQL beschrieben. Man muss nur eine spezielle Collation verwenden. Nutzt man normal latin1_general_ci, nutzt man in dem Fall einfach latin1_bin.

⇒ http://dev.mysql.com/doc/refman/5.0/en/case-sensitivity.html

Und schon sollte es Funktionieren. ;)

 

[PHP] Fehler Benutzerdefiniert abfangen

Kategorie "Programmieren" Programmieren  Verfasst am 30.05.2010 23:49 30.05.2010 23:49  0 Kommentare 0 Kommentare  

 In meinem neusten Projekt stand ich vor dem Problem, dass eine Klasse alle Fehler wie E_ERROR und E_WARNING abfangen sollte.

Die erste Idee ist natürlich die Funktion  set_error_handler(). Problem ist nur das damit nicht alle Fehler abgefangen werden können. Beispielsweise E_ERROR nicht.

Dies kann man mit den Funktionen  register_shutdown_function() und  error_get_last() umgehen. Man definiert einfach eine Funktion die bei dem Beenden des Scriptes aufgerufen wird. Nun prüft man innerhalb dieser Funktion ab, ob ein Fehler während der Ausführung aufgetreten ist. Ist dies der Fall, gibt man die Fehlermeldung aus.

http://snippets.sim4000.de/show/21/

Verwendet man nun noch ob_start() und ob_end_clean(), kann man bei einem Fehler eine saubere und evtl sogar schöne Fehlermeldung ausgeben und auch Emails verschicken oder Einträge im Log machen.

via insomanic.me.uk

 

MySQL und Referenzierung

Kategorie "Programmieren" Programmieren  Verfasst am 19.05.2010 13:51 19.05.2010 13:51  0 Kommentare 0 Kommentare  

 Bei einem größeren MySQL Projekt mit InnoDB und Referenzierung gab es einige Probleme, die ich hier einmal klären möchte. Vielleicht hilft es dem einen oder anderen ja weiter.

Zirkuläre Referenz

Diese Fehlermeldung warf mir DBDesigner4 an den Kopf, als ich versuchte den SQL Code zu exportieren. Dieser Fehler tritt auf wenn man den Haken Order Tables by Foreign Key drin lässt, und gleichzeitig zwei Tabellen hat die gegenseitig auf einander verweisen.

Circular Reference

Beim Export kann man dieses Problem durch das Entfernen des Hakens umgehen. Allerdings nicht beim Import in den MySQL Server. Dort würde immer die Meldung erscheinen, dass die Referenzierte Tabelle vermisst wird. Das kann man mit einem SQL Befehl aber auch umgehen.

SET foreign_key_checks = 0;

Dadurch wird die Überprüfung der Referenzen temporär deaktiviert und alle Tabellen können angelegt werden. Ist das Anlegen abgeschlossen, sollte dies unbedingt wieder aktiviert werden. Ansonsten können Inkonsistenzen in der Datenbank die Folge sein.

MySQL Error Number 1005 Can’t create table

Hier gibt es viele Ursachen. Eine Liste von Ursachen gibt es im Blog VerySimple (thx!). Die Fehlermeldung enthält immer eine errno. Diese Error-Nummer kann man mit folgendem Befehl "lesbar" machen:

perror 150

Unter Linux befindet sich das Programm in $PATH und kann direkt im Terminal ausgeführt werden. Unter Windows müsste man evtl erst in das bin/ - Verzeichnis von MySQL wechseln.

Der Fehlercode 150 erzeugt die Fehlermeldung Foreign key constraint is incorrectly formed. Diese wurde durch einen FK ausgelöst, der kein NULL zuließ. Kurz das NOT NULL aus dem SQL Code entfernt und schon ging es. :)

 

[PHP] Return einer Referenz auf eine Eigenschaft/Variable

Kategorie "Programmieren" Programmieren  Verfasst am 27.04.2010 12:22 27.04.2010 12:22  4 Kommentare 4 Kommentare  

Dieses kleine Beispiel zeigt, wie man eine Referenz auf eine Variable/Eigenschaft über eine Funktion zurück geben kann. Wichtig ist dabei das "&" vor dem Namen der Methode get().

class classfoo {
   private $var = "asdf";
 
   function &get() { return $this->var; }
   function mkecho() { var_dump($this->var); }
}

Im return von get() wird die Referenz auf die private Eigenschaft $var zurück gegeben. Wenn man also diesen Wert außerhalb der Klasse ändert, ist er auch innerhalb der Klasse geändert.

Man greift also von zwei verschiedenen Stellen auf den selben Speicher zu. Hier wird auch nicht auf private oder public geachtet. Das funktioniert immer.

Detaillierteres Beispiel: http://snippets.sim4000.de/show/17/

 

SQL Query mit zwei Limits

Kategorie "Programmieren" Programmieren  Verfasst am 18.04.2010 08:11 18.04.2010 08:11  0 Kommentare 0 Kommentare  

Wer schon mal versucht hat mit SQL eine Blätterfunktion zu basteln kennt das Problem: Man hat ein Query wo bereits ein LIMIT drin ist, und will nun wegen dem Blättern ein weiteres einfügen und evtl noch anders sortieren. Hier kann man sich eines Subquerys bedienen.

SELECT
   *
FROM (
   SELECT * FROM real_table WHERE field='xyz' ORDER BY field2 DESC LIMIT 0 , 150
) AS vtable
ORDER BY field ASC
LIMIT 0 , 10

http://snippets.sim4000.de/show/15/

 

[JavaScript] Object.firstChild in reinem HTML

Kategorie "Programmieren" Programmieren  Verfasst am 11.04.2010 02:02 11.04.2010 02:02  1 Kommentar 1 Kommentar  

In einem Projekt hatte ich eben ein JavaScript, welches die Höhe eines divs an die reale Höhe des ersten Kindelementes anpasst.

var id = document.getElementById('div');
id.style.height=(id.firstChild.offsetHeight+20)+"px";

Nach einer Änderung am Inhalt des divs funktionierte auf einmal das Verändern der Höhe nicht mehr. Die Ausgabe von id.firstChild brachte nur ein plumpes undefined zu Tage.

Lösung des Problems waren Leerzeichen zwischen dem div-Tag und dem Kindelement. Durch den Umbau des div-Inhaltes haben sich die Leerzeichen eingeschichen. Nachdem diese wieder entfernt wurden, ging wieder alles.

Durch die Leerzeichen wurden die Kindelemente nicht erkannt. Der Browser ging davon aus, dass nur reiner Text in dem div ist. Darauf muss man auch erstmal kommen...

 

[PHP] Wiederholende Zeichenketten

Kategorie "Programmieren" Programmieren  Verfasst am 28.03.2010 16:21 28.03.2010 16:21  1 Kommentar 1 Kommentar  

Wenn man als Beispiel 100 Punkte durch einen einzigen ersetzen möchte, kann man dies ganz einfach mit der PHP Funktion str_repeat() lösen.

<?php
   $str = "hallo...........................................(usw)";
   echo str_replace(str_repeat(".", 100), ".", $str);
?>

Ist doch einfacher als die 100 Punkte auszuschreiben, oder? ;)

Seite 2 von 4

Tag Cloud

28c3   3D   ASCII   Akismet   Allgemein   Animation   Apache   Arbeit   Arch Linux   Archos 5   Asterix & Obelix   Audio   Auto   BOINC   Bash   Bitlbee   Blog v2.0   Bluetooth   Bodenwerder   Bouncer (BNC)   Bundestagswahl 09   Bücher   CCC   Chromium   Comics   Computerspiele   Content Managment System   Creative Commons   CyanogenMod   Cybton   DAU Alarm   DLRG   Datenbanken   Datenschutz   Debian   Deutsches Rotes Kreuz   Domains   EZFlash Vi   Eclipse   Eingabegeräte   Ekelhaft   Email   Essen   Ethernet   Evernote   Facebook   Fanartikel   Feiertage   Fernsehn   Firefox   Flash   Flattr   Fotografie   Fritz!Box   Fun   Fußball   GEZ   GPS   Gameboy Advance   Games   Gnome   Google   Google Android   Google Android Hacking   Google+   Grafiken   Grand Theft Auto IV   HTC   HTC Desire Z   HTML   Handhelds   Handy   Handy Apps   Hardware   Homebrew   ICQ   IRC   ImapFilter   Internet   Internet Explorer   Internet Relay Chat (IRC)   Internetzensur   Java   JavaScript   JeeGeek   Justiz   Kino   Konzert   Kultur   Kumpels   Legend of Zelda   Linux   MS SQL Server   Marilyn Manson   Microsoft .NET   Minecraft   Mobile   Mozilla   Music Player Daemon (MPD)   Musik   MySQL   NPD   Natur   Netbeans   Netbooks   Netzwerk   Nintendo   Nintendo DS   Nintendo DSi   Nintendo Wii   Notebook   OpenOffice   OpenOffice Impress   OpenWRT   PC Hardware   PHP   Pandora   Papierkorb   Patentrecht   Pidgin   Piratenpartei   Piwik   Politik   Privat   Programmieren   Projekte   PulseAudio   QR-Code   RSS   Rammstein   Root   SOGo Scalable OpenGroupware   SSH   SVN   Schlüsselband   Schule   Seagate Freeagent Dockstar   Server   Serversicherheit   Sesamstraße   Shellscripting   Shopping   Shortlinker   Skype   Social Networks   Software   Spam   Spenden   Spongebob   Straßenverkehr   Support   TV   Technik   Textverarbeitung   Thunderbird   Truecrypt   Twitter   Typo3   UMTS   USA   USB   Ubuntu   Underground Shopping   Urheberrecht   Urlaub   VMWare   VNC   Vereine   Verkaufen   Verstärker   Videorecorder   Viren und andere Schädlinge   Virtual Box   Vorratsdatenspeicherung   WLAN   Wahlen   Webspace   Wehrdienst   Weserbergland   Willkommen   Windows   Windows 7   X11   XFCE   XML   XStylus   Zeitschriften   Zensur   bind9   ffmpeg   netcup   openSSL   r0ket   sim4000.de   vim   Überwachung   Überwachungsstaat   üäx.de   1337