swfupload is a great utility to do fancy uploads. Supports multiple uploads at once, nice progress bars, uses flash. So all things have good and bad sides.
If you work in a distributed enviroment and want to upload not to your metadata server but to one of you satelite-servers, flash says: no cross domain posting. But there is a workaround. Create a crossdomain.xml
in the root folder of the server you’re uploading to. It should look a bit like this
<?xml version=”1.0″?>
<!DOCTYPE cross-domain-policy
SYSTEM “http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd”>
<cross-domain-policy>
<allow-access-from domain=”tintifax.yourdomain.com” />
<allow-access-from domain=”*.otherdomain.com” />
</cross-domain-policy>
Using an external Programm do do rewriting – in fact it can do anything depending on the request.
First a non-mentioned fact: if you use an external rewriting program apache will spawn it as a child process. Yes, a deamon child spawned by mod_rewrite. Be shure to know what you do, otherwise you’ll do more harm than good.
First a simple rewrite Statement
RewriteEngine On
# define the rewrite map – videoMap will be spawned and used by rewrite rules. php-win does not open a window
RewriteMap videoMap “prg:c:/path/php-win.exe -c E:/path/to/php.ini/ E:/path/external_rewriteMap.php”
# match for /video/v= and throw anything after v= into the daemon child
RewriteRule ^/video/v=(.*) /vardump.php?param=${videoMap:$1} [NC]
# RewriteLock file is needed for process communication
RewriteLock rewriteLockFile.txt
The PHP file for it
<?php
// HERE BE DRAGONS
// as php runs as daemon, NEVER exit(), and note that input comes from STDIN as we are piping
while($input = trim(fgets(STDIN, 1024))) {
if ($input) {
fputs(STDOUT, decode($input) ); // IMPORTANT: write out result to STDOUT
}
fputs(STDOUT, “\n” ); // end processing for this line with linebreak
flush(); // flush sends the result to STDOUT, this is very important to, no buffering
}
function decode($encoded) {
// some code to decode encrypted request parameters
}
?>
Pitfalls for the php: if your php deamon exits, your rewritemap will return nothing. Make shure apache has a php child. Testing is a pain as you can use $argv[] while writing your php, but you need STDIN in the apache version. Make shure you pass the correct php ini when spawning the php process (-c path/to/php.ini/ )
Wenn man wie ich lange weit weg von Design ist und doch mal wieder ein wenig mit Farben spielen muss – Colorblender kann automagisch passende Farben berechnen.
Ein weiteres nettes Tool für Farbschemas kann die Farbgebung auch einfacher machen.
It’s NanoCMS
Features:
- Filebased
- Easy Integration
- Easy Installation
- Tiny
- Full Templating
- Simple ( or simplest ) Interface
- WYSIWYG
- Automatic Sidebar Linking!!
- Add Content other than pages also.
- Easy to Extend
- Multilingual & Easy to Translate
- Use PHP Scripting…
Most of the stuff you need for a small website without getting your hands dirty
Zuallererst: Einen Editor. Eclipse sollte bekannnt genug sein. Eine IDE kann ungemein viel Arbeit “nebenbei” erledigen: Code Vervollständigung, Syntax Checks, Syntax Highlighs ersparen viel lästige Handgriffe. Ultra Edit ist leichtgewichtiger, kann mit riesigen Dateien umgehen, HEX-editieren falls mans mal braucht und weitere low-level Operationen durchführen bei denen ich Eclipse nicht traue.
Ein Versionskontrollsystem: SVN kümmert sich drum das kein Code verloren geht, Releases verwaltbar sind, mehrere Leute vernünftig zusammenarbeiten können,
Die Toolbox:
Was sich im Laufe der Jahre als praktisch erweist:
Cygwin ist einfach gesagt eine bash-Shell die auf Windows läuft. Ein grep über ein 200 MB Logfile ist Gold wert.
Pstools sind eine Sammlung von Unix-Utilities (Prozesslisten anzeigen, Prozesse killen, Services abfragen) auf Windows portiert. Weiters findet man dort mit dem Process Explorer einen detailierteren Taskmanager, Autoruns – ein Tool das anzeigt welche Programme beim Windows Start ausgeführt werden.
Winmerge ermöglicht es über ein sehr gutes GUI Dateien oder Verzeichnisse zu vergleichen
TailXP ist ein grafisches Tail für Windows mit der Möglichkeit mehrere Logs gleichzeitig zu öffnen oder auch mittels RegEx Zeilen optisch hervorzuheben.