Kontinuierliche Festplattenaktivität – lssave schreibt alle 5 Sekunden neu

lssave generiert com.apple.LaunchServices-0130.csstore alle 5 Sekunden neu. Die Launchservice Library ist defekt und muss neu generiert werden. Unter Mac OS X Lion kann die Datei so neu generiert werden. Achtung keine Haftung, also lieber erst mal ein Backup machen!

sudo /System/Library/Frameworks/CoreServices.framework/Versions/Current/Frameworks/LaunchServices.framework/Support/lsregister -kill -r -domain local -domain system -domain user
KategorienHardware, Unix shell Tags:

Rails Hosting bei Rocket Rentals – auch mit Staging Umgebung

Mein aktuelles Projekt an dem ich arbeite ist wheelmap.org. Wheelmap.org stellt eine Anwendung für Rollstuhlfahrer bereit, die es ihnen ermöglicht herauszufinden, welche Orte rollstuhlgerecht sind, und welche nicht. So werden Orte aufgezeigt, welche Fahrstühle, abgesenkte Bordsteinkanten oder auch sogenannte Rollstuhllifte anbieten. Wheelmap wird auf den Server von Rocket Rentals gehostet. Die Jungs von Rocket Rentals bieten neben Rails Hosting auch Co-Working Space und professionelle Anwendungsentwicklung.
Da ich hauptsächlich in meinem Büro entwickle, besteht die Notwendigkeit in regelmässigen Abständen meinen Fortschritt zu präsentieren. Und das möglichst auf einem Server im Netz und nicht auf meiner Entwicklungsmaschine. Dafür eignet sich die Live Anwendung allerdings schlecht. Kleinere Fehler oder unvollständige Features möchte man nicht auf den echten Benutzer loslassen. Deswegen habe ich eine Staging Umgebung eingerichtet, die jeweils den aktuellen Entwicklungsstand zeigt. Die Live Umgebung läuft weiterhin nur mit einer stabilen Version. Und so gehts: Mehr…

Ein letztes lautes Knirschen – Backup Platte defekt!

Nach 5 Jahren hat es heute Abend meine Maxtor OneTouch II 300GB Platte entschärft. In meinem Beisein gab sie während eines TimeMachine Backups ein herzhaftes Kratzen und Murren von sich. Danach noch einige lautstarke Versuche, noch mal auf die Beine bzw. die 7200U/min zu kommen … vergebens.

Möge sie, und meine Backups in Frieden Ruhen. 5 Jahre sind ein stolzes Alter!


Update: Ohne Backup geht’s natürlich nicht. Dank Cyberport arbeitet jetzt eine WD Caviar SE 500GB Platte in dem alten Maxtor OneTouch II Gehäuse. In ein paar Stunden wird auch das initial Backup fertig sein, so dass ich auch wieder ruhig schlafen kann. Für die nächsten Jahre wird die Platte hoffentlich noch reichen, man drücke mir die Daumen :)

Opensocial Gadgets – Apps für StudiVZ selbst entwickeln

29. Oktober 2009 4 Kommentare

Wie StudiVZ bereits angekündigt hat, werden die ersten opensocial Anwendungen für ihre Plattform bald live gehen. Entwickler können sich schon jetzt registrieren und ihre so genannten Gadgets in einer Sandbox ausprobieren.

Ich habe das Vergnügen für meinen aktuellen Kunden DaWanda ein Gadget für StudiVZ zu entwickeln. Ein Gadget besteht aus einer XML Datei, die definiert, um welche Anwendung es sich handelt, wer der Author ist usw. Dazu gehören wahlweise mehrere CSS und Javascript Dateien. Nachdem man alles in eine Zip Datei, die den gleichen namen wie die XML Datei trägt, gepackt hat, kann man die Anwendung in die Sandbox hochladen und ausprobieren. Eine Beispiel Datei könnte so aussehen:

<?xml version="1.0" encoding="UTF-8"?>
<Module>
  <ModulePrefs
    title="Example StudiVZ Gadget"
    title_url="http://www.christophbuente.de"
    author="Christoph Bünte"
    author_email="info@christophbuente.de"
    description="Example description"
    screenshot="http://www.christophbuente.de/images/screenshot.jpg"
    thumbnail="http://www.christophbuente.de/images/thumbnail.jpg">
    <Require feature="opensocial-0.8" />
    <Require feature="views" />
  </ModulePrefs>
  <Content type="html" >
    <![CDATA[
      <script>
        function init() {
          // Put initialization code here
        }
        gadgets.util.registerOnLoadHandler(init);
      </script>
    <div id='container'></div>
    ]]>
  </Content>
</Module>

Mehr…

Kalenderwoche – eine Einführung

18. September 2009 6 Kommentare

Ein Kalenderjahr besteht aus 365 Tagen á 7 Tagen je Woche, rein rechnerisch also aus 52,143 Wochen. In der Regel sind es 52 Wochen. Einzig wenn das Jahr mit einem Donnerstag beginnt, so wie in diesem Jahr, sind es 53 Wochen. Und weil es im deutschen für alles eine DIN gibt, hat auch die Berechnung der Kalenderwoche eine, und zwar DIN 1355. Darin ist auch geregelt, dass der Sonntag immer der letzte Tag der Woche ist, und nicht der erste. Die Kalenderwoche 1 ist übrigens die, in der 4. Januar enthalten ist.

Mehr…

Justizministerin Brigitte Zypries über das Zugangserschwerungsgesetz

10. September 2009 Keine Kommentare

War es ein Fehler, das Gesetz mit den Internetsperren zu machen?

Nein. Das Gesetz ist notwendig geworden, weil die Kollegin von der Leyen angefangen hat, Verträge mit den Providern über diese Sperren zu schließen. Ich habe gleich zu Beginn der Debatte deutlich gemacht, dass eine solche Vertragslösung nicht mit unserer Verfassung vereinbar ist.

Zugangssperren sind ein Eingriff in Grundrechte und bedürfen deshalb von Verfassungs wegen eines Gesetzes. Um so wenig Rechte wie möglich zu beschränken, hat die SPD im Gesetzgebungsverfahren den Grundsatz „Löschen vor Sperren“ durchgesetzt. Das Problem an der Debatte war, dass sie kaum sachlich zu führen war.

Sie haben bei dem Gesetz also mitgemacht, weil die Union Sie in die Enge getrieben hat?

Nein, ich musste vielmehr zur Kenntnis nehmen, dass die Provider bereit waren, diese Verträge abzuschließen. Und um in dieser Situation Rechtssicherheit für die Betroffenen zu schaffen, ging kein Weg an der gesetzlichen Regelung vorbei. Wir betreten damit juristisches und technisches Neuland, deshalb die Befristung, um nach drei Jahren zu überprüfen, ob sie hält, was wir uns davon versprochen haben.

Quelle: taz.de

Glückwunsch, wir zäumen das Pferd von hinten auf! Erst werden unter Inkaufnahme von Grundrechtsverletzungen Verträge geschlossen, und anschließend wird entgegen jeder Expertenmeinung und gegen den Volkswillen ein Gesetz erlassen, was diese Handlungen legitimiert. Morgen schließt der Herr Schäuble vielleicht Verträge mit allen Vermietern in Deutschland über Herausgabe eines Zweitschlüssels, damit das Aufbrechen der Türen nicht mehr so lange dauert. Und dann wird der Bundestag auch diese Verträge mit neuen Gesetzen legitimieren. Wollen wir hoffen, dass die Vermieter in diesem Land nicht bereit sind diese Art Verträge zu schließen. Sonst kann die amtierende Bundesregierung ja gar nicht anders. Wann wachen die Wähler endlich auf?

Apache startet nach Time Machine Restore nicht mehr

10. September 2009 Keine Kommentare

Sicherlich hast du gelesen, dass ich vor kurzem mein MacBook von einem Time Machine Backup neu aufsetzen musste, weil der Rechner nicht mehr bootete. Nach dem Restore schien alles gut zu laufen, aber der Apache Webserver startete nicht mehr:
Mehr…

500 Internal Server Error – Apache config vs. WP-Super-Cache

9. September 2009 1 Kommentar

Den ganzen Tag war die Seite nicht ereichbar. Alle Besucher (ausser mir) sahen nur ein:

500 Internal Server Error

Als eingeloggter User bekam ich eine andere Seite serviert und sah diesen Fehler nicht. Einzig die Tatsache, dass der Traffic total eingebrochen ist machte mich stutzig. An dieser Stelle vielen Dank an Wolfgang Klenk, der mich bei Facebook darauf aufmerksam machte, dass mein Server nicht richtig funktioniert. Die Fehlerlogdatei enthielt massenhaft folgende Fehlermeldung:

wp-content/cache/.htaccess: ExpiresActive not allowed here

Der Übeltäter war das WP-Super-Cache Plugin in Kombination mit meiner Apache Konfiguration. Meine Direktory Direktive im Virtualhost Eintrag sah so aus:

<directory "/var/www/htdocs/www.christophbuente.de">
   Options FollowSymLinks
   AllowOverride FileInfo
   Order allow,deny
   Allow from all
 </directory>

Wie in der readme.txt des WP-Super-Cache plugins zu lesen ist, wird aber für die AllowOverride Option der Wert All vorausgesetzt. Nachdem ich das nun angepasst habe, ist der Server auch wieder. Hier die richtige Konfiguration.

<directory "/var/www/htdocs/www.christophbuente.de">
   Options FollowSymLinks
   AllowOverride All
   Order allow,deny
   Allow from all
 </directory>

Vielleicht bewahrt es jemanden in er Zukunft vor dem gleichen Problem. Mich auf jeden Fall!

Korruptes Dateisystem – Datenrettung mit Time Machine und Drobo

8. September 2009 5 Kommentare

Mein Tag fing an wie immer! Frühstücken mit meiner Freundin – Latte Macchiato und Toast. Danach kurz E-mails checken. Mein Notebook und das Netzgerät untder den Arm klemmen und ab zur Arbeit. Dort angekommen wird alles ordentlich verkabelt und ab geht die wilde Fahrt. Weit gefehlt! Das erste Kuriosum was mir auffällt ist, dass skype sich nicht mehr verbinden kann. Na gut denk ich, auch die haben mal Computerprobleme, ohne zu ahnen, dass ich das Problem hatte! Ich will vorsichtshalber in meinem Schlüsselbund das Skype Passwort raussuchen und es mal auf der Skype webseite versuchen. Mein Gesicht :O hätte ich gerne gesehen, als ich die gähnende Leere in meinem Schlüsselbund sah! Alles weg, aber wirklich alles. Nicht nur sämtliche Passwörter für Webseiten und installierte Anwendungen, sondern auch die sicheren Notizen mit allen Lizenzschlüsseln meiner gekauften Software. Na großartig! Boot tut gut denke ich, und starte den Rechner neu.

Mehr…

Remarkable – Rails Anwendungen automatisch testen


Seit über einem Jahr entwickle ich Webanwendungen mit Ruby on Rails. Und seit dieser Zeit schreibe ich Tests für meine Anwendungen. Angefangen von Test::Unit über test/spec bis zu RSpec. Doch selten gingen mir Tests leicht von der Hand. Ständig stelle ich mir die Frage: Wie viel teste ich? Habe ich genug getestet? Teste ich schon Rails Code?

Die verschiedenen Test Frameworks haben ihre Vor- und Nachteile. Test::Unit ist relativ einfach und schnell. test/spec und RSpec hingegen deutlich lesbarer, jedoch auch langsamer. Sie eigenen sich deshalb besser, um die Tests als Dokumentation zu verwenden. Test::Unit und test/spec verwenden für Viewtests den Umweg über die Controller, was sie im Vergleich zu RSpec deutlich langsamer macht. In Rspec testet man jede Schicht des MVC Musters separat. Das Verhalten der jeweils anderen Schichten wird mit Mocks und Stubs simuliert. Integration Tests mit Cucumber testen dann das Zusammenspiel aller Schichten.

Carlos Dandos und José Valims Remarkable ist das mit Abstand großartigste Plugin für Ruby on Rails, was mir seit langem über den Weg gelaufen ist, denn es reduziert Tests auf das nötigste! Man schreibt in unglaublich expressiver Form, was das erwartete Verhalten ist. Das auf RSpec basierende Remarkable testet mit einer Vielzahl von Custom Matchers die Erwartung ab.

Mehr…