server {
listen 80;
server_name mywiki.com;
access_log /var/log/nginx/wiki.access.log;
error_log /var/log/nginx/wiki.error.log;
#maximum file upload size is 4MB - change accordingly if needed
client_max_body_size 4M;
client_body_buffer_size 128k;
rewrite ^(/)_media/(.*) $1lib/exe/fetch.php?media=$2 last;
rewrite ^(/)_detail/(.*) $1lib/exe/detail.php?media=$2 last;
rewrite ^(/)_export/([^/]+)/(.*) $1doku.php?do=export_$2&id=$3 last;
location / {
root /var/www/wiki;
index index.html index.htm index.php;
if (!-f $request_filename) {
rewrite ^(/)(.*)?(.*) $1doku.php?id=$2&$3 last;
rewrite ^(/)$ $1doku.php last;
}
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /var/www/wiki;
}
location ~ \.php$ {
root /var/www/wiki;
fastcgi_pass unix:/tmp/.fastcgi.www-data/socket;
fastcgi_index doku.php;
fastcgi_intercept_errors on;
fastcgi_connect_timeout 30;
include /etc/nginx/fastcgi_params;
fastcgi_param SCRIPT_FILENAME /var/www/wiki/$fastcgi_script_name;
fastcgi_param QUERY_STRING $query_string;
}
}nginx + dokuwiki
thetvdb.com Ruby Lib
Zu finden mein Repository bei GitHub. Vielleicht kanns ja jemand brauchen. Wird bestimmt noch etwas bearbeitet die nächste Zeit.
# # Howto use: # require "tv" # # Find TV Show # series = Series.new res = series.find "Dexter" res.each do |s| puts "#{s[:id]} - #{s[:name]}" end # # Get Data # serie = Serie.new 79349 # TheTvDB ID puts serie.name puts serie.first_aired.to_s serie.seasons.each do |s| puts "Season: #{s.number}" s.each do |e| puts " Episode: #{e.number} - #{e.name}" end end # # Get Banners # serie.banners.each do |b| puts b.path end
Fritz.box NAS via SMB mit Snow Leopard
hat mich gerade 3 Stunden gekostet.
Lösungen gibt es kaum welche, nur ein paar nicht funktionierende Workarounds.
Geklappt hat aber folgender Tipp:
Ich habe das gleiche Problem gehabt und es vor 2 Wochen dem fleißigen AVM-Team gemeldet. Deren vorläufige Antwort: Als Workaround kann man als Passwort für den USB-SMB-Zugriff ausschließlich dezimale Zahlen (0-9) nehmen, dann funktioniert es.
iPhone + AirTunes – Proof of Concept
Warum, weshalb und wieso
Das macht mich jetzt schon seit Monaten fuchsig. Da kauft man sich ne AirPort Express, freut sich über die Vorteile von AirTunes und dann bekommt Apple es nicht auf die Reihe dass die iPod.app vom iPhone/iPod touch sich mit dem Gerät verständigt.
Nachdem heute Sonntag ist, ich viel zu früh aufgewacht bin und ich keine Böcke hatte mich auch noch am Sonntag mit der Arbeit rumzuschlagen, hab ich etwas rumgegooglet und experimentiert.
Warum hab ich mittlerweile rausgefunden. Dazu aber “später” mehr.
Auf die AirTunes Technik will ich jetzt mal nicht eingehen. Da man das bestimmt woanders besser nachlesen kann.
( Das folgende läuft ohne Anpassungen prima auf nem Mac. Linux dürfte ebenfalls klappen, ist aber nicht getestet )
Wir brauchen
Um AirTunes ausserhalb von iTunes zu nutzen, gibts bereits ne tolle Bibliothek (hier) und eine Portierung für Ruby die ich verwende (hier).
Getestet hab ich es mit einem ge-jailbreak-ten iPhone 2G, auf das ich mit OpenSSH zugegriffen hab. Dann via apt die folgenden Packete installiert:
(alles folgende als “root” – Default Passwort beim iPhone ist “alpine”)
ruby, lame, rubygems
apt-get install ruby apt-get install lame apt-get install rubygems
Nachdem mir ein
gem --version
1.2.0nur 1.2.0 ausgegeben hat. Hab ich das dann kurzerhand auch noch aktualisiert:
(1.3.4 weil (bei mir – und laut Google noch ein paar anderen die 1.3.5 nicht funktioniert hat))
gem install rubygems-update -v=1.3.4
Das wars noch nicht ganz:
update_rubygems
Und *tadaaa*
gem --version
1.3.4Die oben erwähnte Bibliothek “raop-client” holt man sich dann mit dem frischen GEM
gem install raop-clientIch hab dann im /root Folder, wo ich mir ein simples Vz. “test” angelegt hab, weitergearbeitet:
cd ~ mkdir test cd test
( Albern das zu Dokumentieren? )
Musik? Musik!
Über SCP hab ich mir vom Mac ne MP3 File auf das iPhone kopiert:
scp ~/Music/test.mp3 root@192.168.100.5:/root/test
192.168.100.5 ersetzt ihr natürlich durch eure iPhone IP
“Der” Player
So: jetzt kommt das Ruby-Script (das Ihr z.b. als airtunes.rb lokal speichert.
require 'rubygems' require 'raop' raop = Net::RAOP::Client.new(ARGV[0]) raop.connect raop.volume=2 raop.play $stdin raop.disconnect
… und dann vorzugsweiße auch mit SCP auf eure überteuerte Funkhupe kopiert:
scp ~/airtunes.rb root@192.168.100.5:/root/test
Press Play on Tape
immer noch im ~/test Verzeichnis! Sagen wir dem lame-Encoder unsere vorhin kopierte MP3 Datei zu dekodieren (ins WAV Format – was anders versteht die AirPort nicht). Das ganze schieben wir über ne Pipe an unser eben gebautes Player-Script.
lame --decode test.mp3 - | ruby airtunes.rb 192.168.100.6
wobei hier die 192.168.100.6 (natürlich) durch eure AirPort Express IP ersetzt wird.
Wichtig: Die “raop” Bibliothek (der Ruby Port) kommt anscheinend noch nicht mit Passwortgeschützen AirTunes Lautsprechern klar. (Wobei ich mich damit noch nicht auseinandergesetzt hab. Zum Testen hab ich lediglich das Passwort auf Leer gesetzt.
Und? Hört ihr was?
Wenn man lange genug wartet (in meinem Fall ~20 Sekunden) kommt was :D (soviel zum “Proof of Concept”). Bei mir aber höchsten 4 – 8 Sekunden Bruchstücke.
Ich bin mir leider noch nicht sicher an WAS es liegt: Ob der lame Decoder auf nem 2G zu langsam ist, die WLAN Verbindung damit nicht klar kommt, oder schlimmstenfalls beides. Natürlich kann auch Ruby an sich zu langsam sein.
Nächste Woche gibts für mich hoffentlich das 3Gs mit dem ich den Spaß nochmals probieren werde. Vorausgesetzt natürlich, ich bekomm den Jailbreak hin.
Ich will ne App!
Ich auch :-) . Neben der Tatsache dass -ICH- weder mit dem iPhone SDK noch mit Objective C gearbeitet hab; keine Ahnung hab ob man den dekodierten Stream der iPod.app abfangen kann, oder wie man auf die iTunes Library zugreift um die Audio-Files zu dekodieren (Und das ohne JB).
Halte ich für ein Gerücht dass Apple eine App, die via Reverse Engineering das “geheime” Protokoll nachgebaut hat, zulässt.
Paralles 4 Desktop + Windows 2008 Small Business Server
Bin zwar noch nicht ganz fertig mit der Installation – aber schonmal folgende Tipps um das halbwegs in den Griff zu bekommen:
- Festplatte sollte MINIMUM auf 40 GB (Expandierend ist zu empfehlen) eingestellt werden ( 60 GB um keine Warnmeldung zu bekommen)
- Arbeitsspeicher MINIMUM 4 GB
Nach dem Kopiervorgang kommt die Meldung “Keine Netzwerkkarte gefunden” (oder so ähnlich). Den Treiber kann man über einen (wahrscheinlich unbeabsichtigten Trick) installieren:
- Es gibt zur Auswahl “Durchsuchen” – da drauf hauen
- In Parallels auf “Virtual Machine” => Parallels Tools installieren.
- Schon sieht man in dem Datei öffnen Dialog unter “Computer” (unser heißgeliebter Ex-Arbeitsplatz) die CD. Diese öffnen. Rechtsklick auf installer.exe Ausführen. Die Tools installieren sich, danach fährt sich die Kiste runter und startet neu. Theoretisch sollte jetzt eine Netzwerkkarte vorhanden sein :-)
Delphi: UTF-8 / HTML => WideString
Nachdem ich keine Funktion gefunden hab die mir die Arbeit abnimmt, hab ich se eben selber geschrieben.
Tut folgendes: HTML Typen wie #323; (irgendein komisches Polnisches l mit strich ;-) ) in nen WideString umwandeln:
function Html2WideString(s: string): widestring; var i: integer; f: boolean; tmp: string; begin i := Pos('#', s); if i = 0 then begin Result := s; exit; end; f := false; Result := ''; tmp := ''; for i := 1 to Length(s) do begin if (s[i] = '&') then Continue; if (s[i] = '#') then begin f := true; Continue; end; if f and (s[i] = ';') then begin f := false; Result := Result + WideChar(StrToInt(tmp)); tmp := ''; Continue; end; if f then begin tmp := tmp + s[i]; Continue; end; Result := Result + s[i]; end; end;
lässt sich bestimmt noch optimieren, für mich reichts erstmal.
Update
Jetzt auch in Funktionierend
RoR: Rails Tidy Installation & Konfiguration
Erstmal sollte man schauen dass man tidy auf seiner Mühle installiert. Bei Debian bzw. Ubuntu geht das mit nem schönen apt-get install tidy (als Root versteht sich / bzw. mit sudo)
Auf nem Mac geht es z.B. mit MacPorts sudo port install tidy fast genau so einfach
Natürlich kann man sich auch das Tidy-Packet von Sourceforge holen und selbst zusammenbauen. Auf jeden falls sollte man dann unter Linux die Tidy-Bibliothek hier /usr/lib/libtidy.so liegen haben bzw. auf nem Mac unter /usr/lib/libtidy.dylib
Anschließend holt man sich mit gem die Ruby Bibliothek für Tidy mit gem install tidy (hier ggf. sudo voranstellen )
Jetzt braucht ihr noch vom Blog des RailsTidy Plugin Entwicklers die letzte Version (im Moment 0.2) und entpackt den Spaß in ./vendor/plugins (die Tar-Datei sollte sich als Unterverzeichnis entpacken)
Bei mir hatte das ganze nen Bug, in der Datei ./vendor/plugins/rails_tidy-0.2/lib/rails_tidy.rb musste ich in der Funktion self.filter(response) die Zeile mit “logger” rausschmeissen (glaube es war 163), da der Bibliothek irgendwie das logger Objekt nicht bekannt war (wer will schon Logs?)
Mir hat im Moment gereicht, dass meine HTML Ausgabe ge-tidy-ed wird. Dazu muss man nur eine after_filter Methode im ApplicationController einbauen:
class ApplicationController < ActionController::Base ... after_filter :tidy_html def tidy_html RailsTidy.filter(response) end ... end
Na? hats geklappt? Bei mir sah die Ausgabe zwar formatiert aus, aber net so wie ich sie wollte. Abhilfe schafft hier eine eigene Tidy Konfigurations-Datei die man unter ./config/tidy.rc anlegt:
indent: yes indent-spaces: 2 hide-comments: true wrap: 180 split: true tidy-mark: no
(Weiteres hierzu in der Tidy Referenz) Wer das ganze in seine Tests einbauen möchte schaut sich am besten die offizielle Doku.
RoR: link_to
Bei Rails link_to Methode kann man mit :params beliebige Parameter mitgeben, so etwa:
link_to "Test", :controller => "controller", :action => "action", :params => { :id => @picture.id}
Weitere HTML Eigenschaften (zB. :class lassen sich zwar auch übergeben, dafür müssen aber :controller & :action mit “geschwungenen Klammern” abgegrenzt werden:
link_to "Test", {:controller => "controller", :action => "action"}, :class => "css-class"
Bei der Kombination von den beiden “Tipps” muss auch der :params Parameter in die Klammern:
link_to "Test", {:controller => "controller", :action => "action", :params => { :id => @picture.id}}, :class => "css-class"