Archive for the 'General' Category


Apache startet nach Time Machine Backup nicht mehr 0

Folgendes Problem:

Nach dem erfolgreichen einspielen eines Time Machine Backups läuft der Apache 2 nicht mehr.

Lösung:

Time Machine backuped keine log Dateien d.h. das error_log und access_log sind nicht vorhanden. (Bei mir waren die Ordner nicht mal mehr vorhanden). Diese muss man wieder neu anlegen:

mkdir /var/log/httpd 
touch /var/log/httpd/error_log 

In meinem Fall konnte der Apache allerdings immer noch nicht starten. Die Konsole spuckte nur noch:

com.apple.launchd108 (org.apache.httpd10348): Exited with exit code: com.apple.launchd108 (org.apache.httpd): Throttling respawn: Will start in 10

Um den Fehler zu finden in die entsprechende error_log schauen:

locate error_log  
#Die entsprechende Apache error_log raussuchen
tail /private/var/log/apache2/error_log

Vielleicht hilft es dem ein oder anderen evtl.

Software Qualität 0

Ich bin ein großer Fan von Douglas Crockford und seine Präsentation für YAHOO. Ich hab mir letztens seine Präsentation über Software Qualität angeschaut und war fasziniert.

Ich möchte nun einige meiner Notizen und Eindrücken posten.

Eine gute Software Architektur ist nötig um ein Programm genügend Struktur und Stabilität zu geben, damit die sie wachsen kann ohne dabei in eine Qual von Verwirrung zu stürzten.

Überflüssiger Quellcode

Dieser Quellcode entsteht meist durch unfertigen Optimierungen, Unerfahrenheit und Feature Verbesserungen. Ungenutzt Code Passagen entstehen und kein Programmierer weiß mehr “Ist dieser Code Block wichtig?”. Meist gibt es auch keine Dokumentation zu diesen überflüssigen Code. Und so bleibt der Code ganz nach der Manier “Dont change a running code” in der Software.

Zusätzlich zum überflüssigen Source Code, gibt es die Aufblähungen - der Krebs der Software Entwicklung. Unter Aufblähungen versteht man mehrere Kopien vom selbem Code oder der selben Lösung (Methode,Klasse).

Diese Aufblähungen entstehen sehr schnell, auch schon bei wenigen Programmierern. Ich gebe mal ein Beispiel:

  • verschiedene Programmierer entwickeln an einer Software
  • Programmierer A hat folgendes Problem und implementiert Methode X
  • Programmierer B hat bereits eine solche Methode geschrieben, da Sie aber nicht dokumentiert ist gibt es nun zwei methoden mit unterschiedlichen Namen mit der identischen Funktion.

Häuft sich der uberflüssige Quellcode an, steigt die Komplexität und ein Weiterentwicklung wird langsam und zäh bis zum kompletten Stillstand.

Lösung? Refactoring!

  • Formatierungen verbessern ( Coding Standards einführen )
  • Dokumentation  ( API Doku, Referenz Doku etc. )
  • entfernen von Überflüssigen Quellcode und den Aufblähungen
  • Neu Strukturierung

Feature Freeze! Und überlegen: Was wurde falsch gemacht - Wie kann man das verbessern.

Worst Case - Das unerträgliche

Das Software Schiff kann nicht gerettet werden und auch das Stopfen der Löcher durch Refactoring versagt. Neuer Kurs:  kompletter Neuanfang!
Verlust von Jahren, Monaten, Wochen von Arbeit. Der graus eines jeden Projektmanager - investierte Geld für nichts?

Nein,  den ein Team kann durch die Erfahrungen des “first system” profitieren und kann die Entwicklungszeit sehr stark verkürzen. Es muss aber darauf geachtet werden, das jedem Entwickler die bisherigen Fehler klar sind und der Fokus auf die Einfachheit liegt.

Crockford berichtet das er bisher drei-mal ein Software Projekt neugestartet hat. Von Jahren zu 5 Monaten von 5 Monaten zu 2 Wochen.

Natürlich hängen diese Zahlen mit der Erfahrenheit der Entwickler und deren Kapazitäten zusammen.

Ein Entwickler sollte nur das machen was er wirklich am besten kann - so arbeitet er wirklich 100% und produktiv. Ein Team sollte aus mehreren Spezialisten bestehen die sich Reibungslos ergänzen und vorranbringen. Das Spezialisten Team könnte z.B. GUI Designer, Database Engineer, Schreiber, Beta Tester, etc. diese Liste lässt sich beliebig ändern und erweitern.

Ein weiterer Punkt den Crockford anspricht ist die Sicherheit.

Wer Sicher programmiert - programmiert maintainable und vorausschauend.

Fensterlose Welt 0

Ich bin ein Switcher. Nun gut - das ich zum Mac geswitched hab ist schon etwas länger her, doch hatte ich immer noch meinen alten PC für Spiele, Daten und Photoshop. Da ich meine Arbeit immer mehr und immer mehr auf mein Macbook verlagert habe, hatte der PC nicht wirklich mehr eine große Funktion.

Darum hab ich Heute nicht lang überlegt und mir die aktuellste Ubuntu Version ( 7.04) installiert. Und wie man es von Linux gewohnt ist - war die Installation einfach und sofort ready to go mit allen wichtigen Programmen für Office/Internet/Email/Musik .

Halt! “Wie man es bei Linux gewohnt ist”? Ich rede sicher von ein Mac System? Nein!

Ich muss zugeben das ich seit Jahren kein Linux für den Desktop Einsatz verwendet habe. Und meine damaligen Errinnerungen sind recht ernüchternd. Doch hat sich da wirklich einiges getan.

Nach der Installation war Netzwerk eingerichtet, es wurden nach Updates im Internet geschaut und herruntergeladen. Mit 2-3 Klicks waren die üblichen Orderfreigaben für Musik und Daten eingerichtet. Fertig :)
Mit dem neuen Desktopeffekten die seit Version 7.04 built-in sind füllt sich Linux toll an - Allgemein ist das Handlung gut und man kommt schnell zurecht.

Eins stört mich aber etwas. Mir fehlt Spotlight! :O

Ich werde mein Linux System nun komplett einrichten und es wird wohl noch ein Erfahrungsbericht folgen.

Archives 0

Do not edit this page

Stop Motion Fighter Video 0

Passt wohl wieder nicht in diesen Blog aber ich hab mal wieder unnütze Sachen produziert.

Ein Stop Motion Film - Viel Spaß beim anschauen - auch wenn er nicht lange geht.

[youtube zMbLl521dk8]

Cocoa RSS Reader 0

Heute habe ich mir vorgenommen einen RSS Reader in Cocoa zu schreiben.

hackdev_rssReader.jpg

Nach etlichen lesen von Tutorials schreib ist sozusagen meine erste richtige Cocoa Application.
Als erster Schritt war für mich das User Interface und das gaze einrichten von CoreData. (Entities eingerichtet, Relationen erstellt, Bindings gesetzt etc. )
Das Interface war etwas komplizierter als ich gedacht hatte. Besonders die Toolbar und die Highlighted gradient Cells.
Für die Toolbar hab ich die IBPalette generictoolbar benutzt. Das mir einiges an Code Arbeit erspart.

hackdev_rssReader_add.jpg

Um neue Feeds hinzuzufügen klickt man auf “+ Subscribe” und es öffnet sich ein Sheet Window.
Für das Sheet Window hab ich einen eigenen Controller implementiert der für das öffnen und schließen zuständig ist.
[code]
// SheetController.h
@interface SheetController : NSObject
{
IBOutlet id mainWindow;
IBOutlet id subscribeSheet;
}
- (IBAction)closeSheet:(id)sender;
- (IBAction)openSheet:(id)sender;
@end

// SheetController.m

@implementation SheetController

- (IBAction)closeSheet:(id)sender
{
[subscribeSheet orderOut:nil];
[NSApp endSheet:subscribeSheet];

}

- (IBAction)openSheet:(id)sender
{
[NSApp beginSheet:subscribeSheet
modalForWindow:mainWindow
modalDelegate:self
didEndSelector:NULL
contextInfo:nil];
}
@end
[/code]
Das IBOutlet subscribeSheet ist das Fenster mit den Titel & URL Textfeldern - mainWindow das Hauptfenster (Eltern Fenster).

Allerdings habe ich noch große Probleme wie ich mit Cocoa die Feeds einlese und dann in CoreData speichere.
Mit der Refresh Funktion sollen alle Feeds geladen werden und neue Einträge in CoreData geschrieben werden.
Ich hab mir bisher NSUrl, NSXML und den Webservice Bereich in der Dokumentation angeschaut. Hab aber noch keine ideal Lösung gefunden - bzw. eine die ich auch verstehe ;-)

LG Shine 0

Vielleicht passt es nicht ganz in diesen Blog aber das neue LG-Shine Handy sieht verdammt stylisch aus! Dieses brushed metal - und ein auf-schieb-handy - ja auf sowas stehe ich ;).

lgshine.jpg

Das neue Vorzeigemodell hat eine Dicke von gerade einmal 13 Millimetern und verfügt über 2-Megapixel-Kamera mit Blitz, einen Media-Player und 1-Gigabyte internen Speicher.

Leider wurde das LG-Shine vorerst - wie soviele Handys - in Korea vorgestellt. Wann dieses schicke Ding nach Deutschland kommt ist nicht bekannt.

Im Juni wird das Iphone von Apple kommen und dann im Q4 auch nach Deutschland. Mein Handy Vertrag mit O2 läuft im August aus. Bis dahin hab ich noch etwas Zeit mich zu entscheiden.
Schwierig Schwierig wirds :)

Begrifflichkeit: RIA (=Rich Internet Application) 0

Vielleicht hat der ein oder andere diesen Begriff noch nicht gehört. Ich denke dieser ist aus den ganzen Web 2.0 Gedanke entstanden.

Der Begriff Rich Internet Application (RIA) beschreibt eine Anwendung, die Internet-Techniken benutzt und eine intuitive Benutzeroberfläche bietet.

Der englische Begriff “rich” steht dabei für die “reichhaltigen” Möglichkeiten wie z.B. Drag-und-Drop-Fähigkeit oder Bedienbarkeit über Tastenkürzel, suggeriert dabei aber auch einen “Mehrwert”, gegenüber herkömmlichen Webanwendungen.

Weiterhin ist auch die Leistungsfähigkeit der Applikation gemeint, die z.B. Berechnungen auf Clientseite ausführen kann, ohne eine Anfrage zum Server starten zu müssen. Dadurch lassen sich RIAs viel flüssiger bedienen und geben Rückmeldungen sofort zurück.

Quelle: Wikipedia.de

Gedanken in Bubbles! 0

bubbl.us ist ein neuer online Mind Mapping Service

Sowas hab ich schon immer gesucht. Da ich derzeit noch keinen vernünftigen Mindmapper für Mac gefunden hab.

Die Bedienung ist wirklich sehr einfach mit Enter / Tab gelöst und man kann in der Tat einfach los tippen und seine Gedanken und Ideen in kleine Blasen schreiben.

Auch ohne Anmeldung kann man sofort los mappen.

Eine Export Funktion hab ich leider noch nicht gefunden. Aber diese sind derzeit in der Entwicklung.

Ältere Beitrage 0

Ich werde die älteren Beitrage nach und nach übersetzen und erweitern. Es sind einige interessante Themen dabei die ich gerne nochmal aufgreifen möchte.

Solange gibt es diese in englischer Form auf diese Seite.

Next Page »