jwz [entries|archive|friends|userinfo]
jwz

  www.jwz.org
  userinfo
  archive
  rss

Links
[»| DNA (Log) (iCal) WebCollage (LJ) Mixtapes ]

iPhone Dali Clock [Fri, 23-Nov-2007 2:26 PM]
[Tags|, , , ]
[music |New Order -- Everything's Gone Green]

Mike Akers ported Dali Clock to the iPhone. He says, "it's now installable via Installer.app, in the Utilities section."

I don't have (and don't want) an iPhone* so I don't know what that means, but presumably those of you who do, do.



* Hate the on-screen keyboard, find their policy of making third-party software difficult to install to be offensive.

link13 comments   ·   post comment

Dali Clock 2.25 [Mon, 12-Nov-2007 8:51 PM]
[Tags|, , ]
[music |Shriekback -- Speed of Clocks]

Dali Clock 2.25 out now. The only change this time around is that I converted it to a Dashboard widget.

I did the build on MacOS 10.5.0, but I think I have things set up so that it will all still run on 10.4.0 or newer. However, early reports indicate that the Dashboard widget doesn't work on 10.4.10. Update: Fixed! Re-download it. Version number unchanged.

Also I signed the code with a self-signed cert. I wonder if that did anything sane. It's surprising that signatures don't show up in Get Info in Finder.

Dashcode is weird. I couldn't figure out whether I should check the .wdgt into CVS or the .wdgtproj or both.

Also I couldn't figure out how to make the widget be resizable, or how to add color selectors to the preferences panel on the back.

link13 comments   ·   post comment

Dali Clock 2.24 out now [Sat, 28-Apr-2007 10:59 PM]
[Tags|, , , , , ]
[music |Cop Shoot Cop -- All the Clocks are Broken]

Dali Clock 2.24 out now for MacOS 10.4, PalmOS, and X11. This release includes a MacOS screen saver version of the clock, and there are a few minor display-glitch fixes to the PalmOS version. Also the PalmOS version has a color application icon now, ooooooh.

So, I tried to add a preference to the Mac version to let you hide the dock icon, but I couldn't make that work... )

link9 comments   ·   post comment

Dali Clock 2.23 [Sun, 8-Jan-2006 7:01 PM]
[Tags|, , ]
[music |Jem -- Just a Ride]

Dali Clock 2.23, source and binaries for MacOS 10.4 and PalmOS.

This will probably be the last release in a while; while finishing up the OSX version, I took the opportunity to fix some stuff that had been bugging me about the X11 and PalmOS versions too.

Changes:

  • OSX: prettier preferences panel (thanks [info]riffraff!)
  • PalmOS:
    • smoother morphing;
    • bigger "seconds only" font;
    • color cycling when possible;
    • high-resolution mode when possible.
  • X11:
    • smoother morphing;
    • better contrast and variety in the cycled colors;
    • added three new, larger built-in fonts.

Let me know how it works on your various PalmOS devices; it works good on my Treo 650 (which is both color and hires) but I don't know how much variety there is among the other PDAs.

Two things still bug me about the PalmOS version... )
Also, I might as well mention a couple of GTK-related things... )

link29 comments   ·   post comment

PalmOS emulation [Wed, 4-Jan-2006 10:38 PM]
[Tags|, , , ]
[music |Firewater -- Mr. Cardiac]

Dear Lazyweb,

Is it really the case that there is no way to emulate or develop for a color version of PalmOS on MacOS X?

I'd like to be wrong about this, but I think the answer is "yes", and that:

  1. Only the PalmOS "Emulator" runs on OSX (not the PalmOS "Simulator");
  2. Only the "Simulator" can run ROMs of version 5 or newer;
  3. Only the 5.x ROMs do color;
  4. Only the 5.x ROMs are ARM based (earlier ROMs are 68k);
  5. Therefore, development on a Mac (or Linux?) can only result in emulated, 68K non-color binaries.

Is all that true? Say it ain't so.


Update: Apparently the 3.5 ROMs can do color, but Palm never distributed development ROMs that corresponded to a color device! So you can only do color if you've sucked the right ROMs out of a physical color 3.5 - 4.0 device.

The other items seem to be true: the "Simulator" doesn't fake the hardware, it is a port of the whole of PalmOS to Windows NT: the Garnet microkernel is replaced with NT's kernel, and the OS source was recompiled for x86. So MacOS and Linux are dead as development platforms for modern Palm apps.

link30 comments   ·   post comment

DaliClock 2.22 [Tue, 3-Jan-2006 4:49 AM]
[Tags|, , ]
[music |Kelli Ali -- Tigermouth]

Dali Clock 2.22, source and binary.

Changes:

  • It should always remember window sizes now. Specifically, coming out of full-screen mode no longer leaves the window in a huge size if the title bar had been turned off.
  • Full screen mode hides the mouse pointer.
  • ESC exits full screen mode.
  • It's a universal binary now (PPC and Intel). If you actually run it on Intel, let me know if it looks right: I fear there might be an endianness check needed.
  • Added "Pin to desktop" preference. (Is this common terminology?)
  • Minimize (Cmd-M) and Close (Cmd-W) work when the window is titlebar-less or full screen.

Still busted:

  • "Zoom" doesn't work if the titlebar is turned off.
  • "Close" (Cmd-W) always closes the clock window even if the Preferences window was selected. Both of these are because MacOS seems to really, really not want you to use titlebar-less windows for "real" application windows. Patches welcome.
  • The layout of the Preferences dialog is pretty ugly. Make it nice, if you are so moved.

Are there other keybindings that Mac users would normally expect to work that don't? Are there any packaging-and-distribution niceties that I should know about that I haven't already done?

Where do the cool kids announce their Mac software (besides Freshmeat)?

link23 comments   ·   post comment

Dali Clock for OSX [Sat, 31-Dec-2005 7:14 PM]
[Tags|, , ]
[music |The Kills -- No Wow]

Stick a fork in it, it's done: Dali Clock for OSX, binary and source.

Requires MacOS 10.4.0 or newer (if you try to run it on an older version, it will now display a dialog box instead of just crashing.)

I expect those of you in the western hemisphere to all be running this in full-screen "countdown" mode at your parties tonight!

link34 comments   ·   post comment

Dali Clock again [Wed, 28-Dec-2005 4:24 AM]
[Tags|, , ]
[music |Tricky -- You Don't]

More Dali Clock: source and this time two binaries, one using the straightforward Aqua way of rendering, and the other using the lower level Quartz way, which I thought would be faster, but as far as I can tell, it's not. In fact, I think it's slower. Certainly it's flakier and a lot more complicated... Check out "#ifdef BE_QUARTZY" in DaliClockView.m for the difference.

All I'm able to understand from Shark is, "yup, spending all your time pushing bits to the screen." Shark seems to suggest that the Quartz way is faster, but Top disagrees. Grumble.

Is there an Aqua way to draw a 1bpp bitmap with a given fg/bg, besides dropping all the way down to CGContextFillRect? Because (as you can see in drawRect) that's a fuckin' pain in the ass when you're dealing with foreground and background colors that can have different amounts of transparency (e.g., making it continue to work when the numbers are a "hole" in the window.)

link10 comments   ·   post comment

Dali Clock [Tue, 27-Dec-2005 10:02 PM]
[Tags|, , ]
[music |Massive Attack -- Karma Coma (Bumper Ball Dub)]

OSX Dali Clock is just about done... try it out and let me know?

All the preferences work, and I think it doesn't leak. I'm not sure how good it is about CPU usage.

The application icon is kinda crappy. Someone make me a nicer one!

I played around with making it use CGContextClipToMask to draw a 1bpp bitmap instead of using NSImage-drawInRect, but I couldn't see how to do that and have transparency still work. I'm also not sure it would make that much of a difference anyway; any informed opinions? (It's in DaliClockView-drawRect).

link31 comments   ·   post comment

"Hello, World." [Mon, 26-Dec-2005 8:41 PM]
[Tags|, , , ]
[music |50 Foot Wave -- Vena Cava]

Dear subset of the LazyWeb who hack on OSX,

I've finally started on the OSX port of XDaliClock. (And there was much rejoicing.) Since this is my first native Mac program, I could use some help figuring out what I'm doing wrong so far.

  • I made a preferences panel, but I still have no clue how I'm supposed to actually hook it up, so that I can read the settings in it and act on them. One of the tutorials I saw seemed to imply that I needed to have both a "DaliClockView" and a "DaliClockController", but I still just follow how this crap works at all.

  • And once that stuff's hooked up, how do I cause the settings to be saved across sessions?

  • When I test the interface from Interface Builder, the color picker dialog has an "Opacity" slider, but in the real application, that slider's not there. Why?

  • I'm confused about the lifetimes of objects, and whether, when, or how I'm expected to increase or decrease the reference counts. Especially the "fg" and "bg" instance variables. Am I leaking stuff? I think I probably am...

  • Calling setMovableByWindowBackground from initWithFrame doesn't seem to do anything (it needs to be called later) so I'm calling it from acceptsFirstResponder, which is clearly bogus. What's the right place for this sort of thing?

  • How do I make the window always stay on top?

  • How do I make the app exit when the window close box is clicked?

  • Is there a more efficient way of taking a 1bpp bitmap and rendering it on a window with a given pair of foreground/background colors than the horrible way I'm doing it (scale the 1bpp bitmap up to a 24bpp pixmap and render that instead)?

The code is here: xdaliclock-2.21alpha.tar.gz. Please don't distribute this yet, but please do take a look at it and tell me what parts I did in a crazy ass-backwards way. The XCode project is in the "OSX" subdirectory.

link14 comments   ·   post comment

Cocoa programming [Fri, 24-Jun-2005 11:17 AM]
[Tags|, , , , ]
[music |White Zombie -- Electric Head Pt. 2 (Sexational After Dark Mix)]

What's a good tutorial on writing native, modern OSX programs? I figured I'd start by porting Dali Clock since that's both pretty simple and somewhat ironic.

I gather that use of the XCode interface builder and stuff is pretty much mandatory?

I found Apple's "Currency Converter" tutorial, but I find it kind of opaque. Like, how do I cause a window to appear when the Preferences menu item is selected? Where do I store my settings? Stuff like that.

Update: Online resources greatly preferred to paper books. I gather that this "dead tree" medium is still popular, but I find it really awkward for things like this.

link40 comments   ·   post comment

Dali Clock, week one. [Tue, 17-Dec-2002 3:37 PM]
[Tags|, , , ]
[music |Skinny Puppy -- Yes He Ran]

An update to last week's retrocomputing adventure: the Mac ("Model M0001"!) has been running Dali Clock like a trooper since last week, except for having inexplicably crashed once. (But hey, four days is still probably a record uptime for a Mac, right?)

But I'm sad to report that it can't keep time worth a damn: it's running ten minutes ahead already! After four days! That's pretty bad.

(Wait, I'll just run NTP. Right after I get TCP and PPP going.)

link3 comments   ·   post comment

Dali Clock: further adventures in retrocomputing [Sun, 8-Dec-2002 4:54 AM]
[Tags|, , , , , ]
[music |Veruca Salt -- Shimmer Like a Girl]

So, for those of you tuning in late, back in 1991 I wrote this program called XDaliClock, which is a clone of a similar program that I had on my Mac in 1984. I sold that machine in like, 1987, and I'd been halfheartedly trying to find another ever since, because I wanted a machine that was still capable of running the original Dali Clock. Well, back in April, [info]cyantist bought me one! And tonight, I finally got around to getting the original Dali Clock running on it. That means that I now have a dedicated Dali Clock Appliance, made of the absolute wimpiest computer capable of generating that effect.

Even the original Palm Pilot (on which XDaliClock also runs) is a way beefier computer that the original Macintosh is: the screens are almost the same resolution, but the Pilot's CPU is at least 4x faster (maybe more?) and it had 1 or 2 megabytes of RAM. The Mac had 128K. K.


No, my office isn't crowded, why?

This was quite a production. I had files that purportedly contained the Dali Clock executable, that had been floating around in my home directory for a decade, and I needed to find a way to get those files onto the Mac.

The problems standing in the way of this:

  • 128K Macs didn't have ethernet (ha!) or SCSI (are you joking?)
  • I think they might be able to run AppleTalk over the serial port, but I don't have the drivers for that -- so I'd have to find them, and install them, which is something of a chicken-and-egg problem.
  • 128K Macs can only read 400K single-sided floppies.
  • No floppy drive manufactured in the last 6+ years can read or write 400K disks. (Or the 800k double sided variant.) Apparently modern disks are made of different material and are written with a different magnetic field strength, so it's a hardware issue, not software.
  • No Mac that does have a disk drive that can write 400K disks also has ethernet.
  • For that matter, no Mac manufactured in the last 3 (?) years comes with a floppy drive at all!

So, here's how I did it. Barry loaned me a Mac Classic II that he had lying around (it's toaster shaped, but has a hard drive! Oh, BTW, you could get a hard drive for the original Macintosh: it plugged into the serial port.) I used the Classic II to format a modern floppy disk. I tracked down a USB floppy drive. I downloaded the files used an iMac, and wrote them to that floppy. (The iMac can read disks formatted on the Classic II but not vice versa.) I got the files onto the Classic II's hard disk that way.

Then I had to figure out how to unpack the files, because there were several layers of decade-obsolescent packager formats wrapped around them, the trickiest of which was PackIt (which apparently only Jurassic versions of Stuffit Expander can read: versions which only run on Jurassic Macs...)

Finally, I formatted a 400K disk on the 128K Mac (a disk that came with it, i.e., a disk manufactured in 1984) and copied the files from the Classic II's HD to that. And, success!

The original (Steve Capps) version of Dali Clock only works on the 128K Mac: it crashes the Classic after one second. However, in 1987, Ephraim Vishniac disassembled the original clock binary and hacked it to work on (then-) modern Macs. So (for the sake of completeness) I was able to get his version working on the Classic II (OS7.) Sadly, that version does not work on OS9 or OSX, though surprisingly, it doesn't crash OS9. It seems to be assuming a 1-bit display, so you just get some static at the top of the screen.

link4 comments   ·   post comment

writing programs for hardware you don't own [Wed, 11-Sep-2002 4:47 AM]
[Tags|, , , , ]
[music |L7 -- Riding With a Movie Star]

Do any of you hack PalmOS? I need some advice...

hack hack )

Update: I figured it out. The trick is:

    WinHandle w = WinGetDisplayWindow();
    if (!w)
    ;
    else if (rom_version < ROM_35)
    frame_buffer = (unsigned char *) w->displayAddrV20;
    else
    { /* functions from "3.5 New Feature Set" */
    BitmapPtr b = WinGetBitmap (w);
    frame_buffer = (unsigned char *) (b ? BmpGetBits (b) : 0);
    }

linkpost comment

watch me disappear down a retrocomputing rathole [Sun, 21-Apr-2002 9:52 PM]
[Tags|, , , , ]
[music |Pailhead- I Will Refuse]

I have a sore throat. Waah.

So I got vMac running on Linux, and I found the ROMs and a MacOS 1.1 boot disk image for it. I figured I'd be able to use that to get the original Dali Clock executable running; then from there, I'd generate a disk image that I could boot in the Mac 128, once I figured out how to actually get that image onto a 400k floppy.

But I can't find any unix tools that can generate MFS file system images. MFS is the original file system, before HFS (it was not yet hierarchical -- there weren't any directories, that was all implemented in the Finder, not in the file system!)

So I need to use a later version of MacOS, so that I can transfer the files into the Mac world with HFS, and then tell it to write a 400K MFS floppy image from there. Which I could do, if I could find boot disk images for later versions, but I can't. All I've found is lawyer detritus where people who used to distribute these things say that Apple made them take them down. Apple, of course, distributes disk images themselves for free -- but only as far back as MacOS 6, sigh.

I'm told that when you run this Dali Clock executable on MacOS 9, it looks all wrong because it assumes a 1-bit frame buffer. From reading the ASM, it looks like it wouldn't be too hard to hack it to work by spreading the hardcoded bitmaps into byte-maps and multiplying a few variables by 8. It'd be better to draw into an off-screen bitmap and then copy that onto the screen, but I'm not feeling quite motivated enough to learn to hack QuickDraw in 68K assembler in this day and age. Actually, I wonder how hard it would be to get an assembler running at all. It might be easier to just hack the executable file by hand in emacs...

This original Dali Clock executable is 16k (including the 7k of bitmaps.) My X Windows version is 74k, not counting all the libraries it uses. But my PalmOS version is only 15k, so it's not my fault, it's X ("Complex Nonsolutions to Simple Nonproblems."[tm])

link1 comment   ·   post comment

[Fri, 19-Apr-2002 6:32 PM]
[Tags|, , , , , ]
[music |some track whose name I don't know from that CD]

New DNA Update. You are all buying of the KMFDM / Pig / Kidneythieves tickets now, yes?

The lineup for next thursday has been updated again, check the CODE page for details. Be there or suck.

Ghreg gave me this CD with a bunch of Atomic Reactor and Hecate tracks on it which is blowing me away. This KLOQ track "What You Are" (with the the guy from Nitzer Ebb singing) just kicks so much ass.

[info]cyantist got me a 128k Mac! It's in pristine condition, though the H key doesn't seem to work (didn't really need that anyway.) I've been looking for one of these for years, and she managed to track one down on ebay. Whee! This is the original Mac from 1984; they're hard to find, because they weren't on the market very long (the 512k "fat mac" came out shortly after.) I had one, but I foolishly sold it in the 80s. But now I've got one again. Why? Because it's the smallest computer capable of running Dali Clock, and my apartment Clearly needs a dedicated Dali Clock Appliance.

Now I need to figure out how to actually get the Dali Clock executable onto a disk that this machine can read. No small trick, as modern floppy drives are no longer capable of writing the the 400K floppies that these machines use.

Hmmm, I wonder if I can run PalmOS on this thing. I'm guessing not... it'd probably take way too much memory to emulate the Palm's frame buffer. These machines are 68000s, and the first Palms were (basically) 68020s (faster, and with a 32 bit address path instead of 16), but the killer is that they had like 8x as much RAM.

"Why in my day, we had to XOR our forward and backward lists pointers into the same word!" "You had XOR? Luxury!"

link2 comments   ·   post comment

navigation
[ viewing | most recent entries ]