04.01.07
Logitech-Z10-Hacking
Logitech hat mit den Z-10 ein Paar Lautsprecher mit erstaunlicher Klang- und Verarbeitungsqualität herausgebracht. Ich war davon so begeistert, dass ich mir spontan ein Paar als günstige Monitor zugelegt habe.
Leider hat sich Logitech entschlossen, zunächst keine Mac OS X-Unterstützung für die Lautsprecher anzubieten. Die Standard-USB-Audio-Funktionen sind zwar auf jeden Fall verfügbar, aber das schicke Display sowie die Sondertasten bleiben so ungenutzt. Nach einem Blogeintrag von Marc Liyanage hatte ich mir schon Hoffnung auf eine baldige Mac-Unterstützung gemacht, dass es aber so schnell und einfach geht, hätte ich nicht gedacht: Gestern hat Marc ein Logitech LCD-Tool veröffentlicht. Siehe dazu auch seinen Blog-Eintrag sowie ein interessantes Interview.
Das geniale an Marcs Tool ist, dass er eine Plugin-Architektur gleich von Anfang mit eingeplant hat. Über HTML und JavaScript lassen sich eigene, beliebige Anzeigen programmieren -- allerdings natürlich nur in schwarz/weiß (beziehungsweise schwarz/gelb)
Ich habe das gleich mal ausprobiert und ein Applet zur Anzeige von Wetterdaten von Yahoo! programmiert. Es funktioniert schon ganz gut, wenngleich es auch noch einige Kanten hat. Die verschiedenen Displays lassen sich mit den Knöpfen 1 bis 4 einstellen. Es gibt sogar einen Doppelklick-Modus, der die zugehörige Yahoo!-Wetterseite bzw. die Homepage des Applets im Browser öffnet.
Mir fallen schon ganz viele Ideen für nützliche Plugins ein…
Verfasst von crenz um 07:56 | Kommentare (4) | TrackBack
13.12.06
PHP wird sicherer (?)
I have realised that any attempt to improve the security of PHP from the inside is futile.
Für viele kann PHP genau das, was sie brauchen. Ich selbst aber kann eine gewisse Schadenfreude nicht verbergen. Aus verschiedensten Gründen habe ich eine starke Abneigung gegen PHP.
Verfasst von crenz um 08:54 | Kommentare (0) | TrackBack
15.09.06
Entstehung einer Skriptsprache
Lambda the ultimate erwähnt einen interessanten Artikel über die Geschichte der in Mac OS eingebetteten Programmiersprache AppleScript. Ich war schon immer davon fasziniert, wie leicht verstehbar die Sprache ist für Leute, die nichts über Programmieren wissen.
Verfasst von crenz um 07:21 | Kommentare (0) | TrackBack
30.05.06
Web 2.0
Web 1.0 was about owning, Web 2.0 is about sharing
Habe gerade eine schöne Liste gefunden, die die Unterschiede zwischen Web 1.0 und Web 2.0 darstellt.
Verfasst von crenz um 09:50 | Kommentare (1) | TrackBack
07.04.06
DLL Hell
Wieder was Technisches zwischendurch... Microsoft hat die unter Windows schon immer nervige DLL hell auf ein neues Level gebracht: dependent side-by-side assemblies. Eigentlich ein ganz interessanter Ansatz, mit dem Anwendungen spezifizieren können, welche Version einer Bibliothek sie benötigen. Leider ging das hier in einem konkreten Beispiel gehörig schief: Eine Applikation wollte eine mit Visual Studio 2005 Express Edition gebaute DLL verwenden. Beim Laden erscheint dann allerdings eine Fehlermeldung, dass MSVCR80D.DLL (bzw. MSVCR80.DLL für Release-Versionen) nicht gefunden werden kann. Wagt man es, die genannten DLLs aus dem SxS-Verzeichnis umzukopieren, erhält man den Fehler R6034. Die einzig vernünftige Lösung ist, eine MeinProgramm.exe.manifest-Datei anzulegen, mit folgendem Inhalt:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<dependency>
<dependentAssembly>
<assemblyIdentity type="win32" name="Microsoft.VC80.DebugCRT" version="8.0.50608.0" processorArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b"></assemblyIdentity>
</dependentAssembly>
</dependency>
</assembly>
Verfasst von crenz um 10:57 | Kommentare (2) | TrackBack
12.02.06
Multiple monitor desktop madness
Wie findet man unter Microsoft Windows heraus, wie groß der Desktop ist? Richtig, man frägt das Desktop Window:
OSHwnd getDesktopWindow
getWindowRect: (rect := OSRect new).
Man könnte jetzt erwarten, dass das bei einem Dual-Monitor auch funktioniert. Tut es aber nicht. Stattdessen muss man den Program Manager fragen, der seit Windows 95 ein Schattendasein führt:
(OSHwnd findWindow: 'Progman' lpszWindow: 'Program Manager')
getWindowRect: (rect := OSRect new)
An manchen Tagen möchten man den Leuten, die sowas verbrochen haben, gerne eindringlich die eigene Meinung kundtun...
Seufz.
Verfasst von crenz um 23:11 | Kommentare (0) | TrackBack
24.01.06
Debugging
In Wulfs Blog gefunden: Der allererste Computer-Bug.
Verfasst von crenz um 22:38 | Kommentare (0) | TrackBack
24.09.05
Pugs unter Mac OS X 10.4 in 22 einfachen Schritten zum Laufen bringen
Ich fand es nicht ganz leicht, Pugs auf meinem PowerBook zum Laufen zu bringen. Daher habe ich hier mal eine Installationsanleitung aufgeschrieben. Wenigstens bei mir hat's so funktioniert. Diese Anleitung bezieht sich auf GHC 6.4.1, hs-plugins auf dem Stand vom 24.9.2005, parrot 0.2.3 und Pugs 6.2.9. Denke daran, die angegebenen Pfade falls nötig anzupassen. Der Rest der Anleitung ist auf Englisch.
Install parrot
This will enable parrot support in Pugs. Plus, who doesn't want a parrot?
- Download parrot
- Copy the parrot-0.2.3 directory to /usr/local (the built parrot will remember its path, so choose someplace where you can leave it, not a temporary location)
- perl Configure.pl
- make
- make test
Install DarwinPorts
DarwinPorts is needed to install GHC
- Download the binary installer for DarwinPorts (right now, version 1.0)
- Edit your ~/.profile, add the paths mentioned in the installation package. E.g.
# add the DarwinPorts path behind the standard path, so the # perl installed by DarwinPorts will not override your system perl :( export PATH=$PATH:/opt/local/bin export MANPATH=/opt/local/share/man:$MANPATH export INFOPATH=/opt/local/share/info:$INFOPATH
- sudo port -d selfupdate
Install GHC
The Glasgow Haskell Compiler is needed to compile Pugs
- sudo port install ghc. This will take quite a long while.
Install darcs
Darcs is a revision control system needed to retrieve hs-plugins
- sudo port install darcs
Install hs-plugins
This is a GHC plugin that is needed for Pugs' parrot support
- darcs get http://www.cse.unsw.edu.au/~dons/code/hs-plugins
- Change into hs-plugins directory and runhaskell Setup.hs configure
- runhaskell Setup.hs build
- runhaskell Setup.hs install
- I don't know why, but I had to do sudo ranlib /usr/local/lib/plugins-0.9.10/libHSplugins-0.9.10.a.
Install Pugs
- Download Pugs
- export PUGS_EMBED=perl5,parrot
- export PARROT_PATH=/usr/local/parrot-0.2.3
- Edit Makefile.PL: Remove the error message that GHC 6.4.0 won't work with GCC 4 (since we installed GHC 6.4.1)
- perl Makefile.PL
- make (again, this takes quite a while)
- make install
Et voilà!
$ pugs -e 'say "Hello, World!"' Hello, World!
Verfasst von crenz um 09:51 | Kommentare (1) | TrackBack
08.05.05
A History of the GUI
Auf ars technica ist ein interessanter Artikel zur Geschichte der grafischen Oberflächen erschienen. Das folgende Zitat fand ich sehr anregend (Hervorhebung von mir):
Douglas Englebart completed his degree in electrical engineering in 1948 and settled down in a nice job at the NACA Institute (the forerunner of NASA). However, one day while driving to work he had an epiphany: he realized that his real calling as an engineer was not to work on small projects that might only benefit a few people. Instead, he wanted to work on something that would benefit all of humanity.