04.01.07
Hacking your Logitech Z-10
With the Z-10, Logitech has created a pair of speakers with an astonishing sound quality and finish. I was so taken aback that I spontaneously bought a pair as affordable monitors.
Unfortunaltey, Logitech decided to not offer Mac OS X support for now. The standard USB audio functions are of course available, but the spiffy display and special keys cannot be used that way. After reading a blog entry by Marc Liyanage I already hoped for a Mac software to be available soon, but I wouldn't have thought that it will be available that fast: Yesterday, Marc released a Logitech LCD toolblog entry as well as an interesting interview.
Ingeniously enough, Marc decided to build in a plugin architecture right from the start. Using HTML and JavaScript, it is possible to create your own displays – obviously only in black and white (or rather black and yellow).
I had to try this out, so I created an applet to show Yahoo! weather data. It works rather well, even though it still has a few rough edges. The different displays can be switched using the buttons 1 to 4. The applet even features a double-click mode that opens the Yahoo! weather page or the applet's homepage in the browser.
I think I still have quite a few ideas for useful plugins…
Verfasst von crenz um 07:56 | Kommentare (4) | TrackBack
13.12.06
PHP about to become more secure (?)
I have realised that any attempt to improve the security of PHP from the inside is futile.
For many, PHP does exactly what they want. I, however, have to admit I feel a certain schadenfreude. There are various reasons that make me strongly dislike PHP.
Verfasst von crenz um 08:54 | Kommentare (0) | TrackBack
15.09.06
The creation of a scripting language
Lambda the ultimate mentions an interesting article on the history of the AppleScript language embedded into Mac OS. I've always been fascinated by how easily understood it is by people who don't know programming.
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
I just found a nice list that shows the differences between Web 1.0 and Web 2.0.
Verfasst von crenz um 09:50 | Kommentare (1) | TrackBack
07.04.06
DLL Hell
Some more technical content in-between... Microsoft has brought the well-known and well-hated DLL hell to a new level: dependent side-by-side assemblies. It is actually an interesting way to let applications specify the versions of libraries that they need. However, that went rather wrong with a concrete application I was dealing with: Our application wants to use a DLL built using Visual Studio 2005 Express Edition. When loading the DLL, a message appears that MSVCR80D.DLL (MSVCR80.DLL for release versions) cannot be found. When copying the DLLs from the SxS directory into the Windows directory, you get error R6034. The only solution I found is to create a file MyApplication.exe.manifest, with the following contents:
<?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
How do you find out on Microsoft WIndows how big your desktop is? Just ask the desktop window:
OSHwnd getDesktopWindow
getWindowRect: (rect := OSRect new).
One might expect this to work with dual monitors as well, of course. It doesn't. Instead of asking the desktop window, you have to dig out the program manager from the shadows it's been condemned to ever since Windwos 95:
(OSHwnd findWindow: 'Progman' lpszWindow: 'Program Manager')
getWindowRect: (rect := OSRect new)
This is one of those days where I'd want to give the person responsible for that a vivid impression of what I think of it.
Sigh.
Verfasst von crenz um 23:11 | Kommentare (0) | TrackBack
24.01.06
Debugging
Via Wulf's blog: The first computer bug ever.
Verfasst von crenz um 22:38 | Kommentare (0) | TrackBack
24.09.05
How to install Pugs on Mac OS X 10.4 in 22 easy steps
I found it not really straightforward to get Pugs up and running on my PowerBook, so I thought I'd share some installation instructions that worked for me. These instructions refer to GHC 6.4.1, hs-plugins as of 2005-09-24, parrot 0.2.3 and Pugs 6.2.9. Make sure you adapt the paths mentioned as needed.
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 (0) | TrackBack
08.05.05
A History of the GUI
There's an article on GUI history on ars technica. It's a nice read. It has this interesting quote that intrigued me (my emphasis):
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.