Dali Clock 2.39

Dali Clock 2.39 is out now, including the iOS version.

Didn't I just do this? Yes, but of course as soon as I released the previous version, someone sent me "Oh yeah, I've been meaning to report this" mail with a reproducible crash! It affected new iPads and very, very old Macs: two systems that cope poorly with very large textures.

While I was at it, I fixed a visual glitch that had been bugging me for a while: the transition from 3 to 4 to 5 left a stray chunk that disconnected and floated left and right in a weird looking way, so I manually tweaked the character outlines to make the up-turns on the 3 and 5 line up with each other and with the horizontal bar on the 4. I'm sure nobody will notice the difference but I DO.

Are any of you still running this thing on Linux? Someone who is not me should finish the port in the gtk subdirectory one of these days.

Also someone should probably send me a Pebble. I don't even wear watches but that's a port that seems necessary.

Tags: , , , , ,

21 Responses:

  1. relaxing says:

    New iPads more so than older ones? That seems unexpected.

    • jwz says:

      Yeah, some old Macs fail at creating a 4096x1024 texture, and new iPads sometimes (but not always) fail at creating a 8192x2048 texture.

      The morph is pixel-based, so it does anti-aliasing by using a bitmap that is twice the size of the target image size and letting GL scale the result. GL texture dimensions have to be a power of 2.

      • Owen Shepherd says:

        Non power of two textures are core in OpenGL 2 and OpenGL ES 2. They were also widely available on OpenGL 1.X hardware with the GL_ARB_texture_non_power_of_two extension (circa 2003).

        On "modern" hardware, using a very charitable definition of "modern," non-power-of-two textures should just work

  2. Tet says:

    Yes, I'm still running it on Linux. One of these days, I might finish the port in the gtk subdirectory. Not that I see why. Xlib is sufficient for everything xdaliclock needs. Surely gtk just adds unnecessary bloat?

    • jwz says:

      The half-finished GTK version uses a more modern version of digital.c that can choose the correct font size as the window is resized, instead of that needing to be specified on the command line, which is nice.

      Also it has the capability of having a preferences panel instead of using .Xdefaults, and, in theory, could be embedded as a Panel applet (assuming GTK even has those any more).

      Making it do its rendering via a single textured OpenGL quad, like the Mac version does, would probably be the right approach these days.

      • Tet says:

        People resize their clocks rather than have them launch at startup and just sit in the corner of the screen for all eternity? Bizarre!

  3. Dusk says:

    I suggested that a friend write a Pebble app for XDaliClock, and he replied:

    … That would actually be rough as a watch app, though - they can only redraw 1 time per second. Regular (non-watchface) apps can redraw faster, but they eat up battery faster.

    So, as appropriate as it'd be, I'm not sure how well it would work in practice. Damn.

    • Erbo says:

      A long while back, JWZ encouraged me to look at converting PalmOS DaliClock to a "watch app" for the Fossil Abacus WristPDA (a watch that ran PalmOS 4.0). I looked into it, but ultimately decided that it wouldn't work out, for much the same reasons: "watch apps" on the WristPDA were restricted to redrawing once a minute, and running DaliClock constantly as a regular app would have killed the battery in nothing flat. (The battery life on those things was pretty crappy anyhow; the watch had to be plugged into its special USB charging cable, with its own external power supply, every night to keep the battery from dying and losing the time--the one thing you don't want a watch to lose.)

      • jwz says:

        This is not the future that Dick Tracy promised me.

        • Erbo says:

          In large part, it's because Scotty was right: ye canna' change the laws o'physics. There's only so much energy you can cram into a battery small enough to fit into something the size of a watch.

          That's part of what makes me wonder about the current rush to develop "smartwatches"; unless either battery energy density or efficiency has improved a hell of a lot since the days of the WristPDA, the results are likely to be disappointing, especially since these watches are going to be expected to do a lot more than the WristPDA did.

          • jwz says:

            And yet, I have a Cray-2 in my pocket. I don't even know what the laws of physics are any more.

            • Erbo says:

              Judging from the state of my iPhone 4S battery level at night after having taken it off the charger in the morning, they're probably not much different. (Related: why I keep a 12V charger in my car's glove box and a charging cable in my computer bag.)

              • jwz says:

                "The power consumption was 150 - 200 kW. Each vertical stack of logic modules sat above a stack of power modules which powered 5 volt busbars, each of which delivered about 2200 amps. The Cray-2 was powered by two motor-generators, which took in 480 V three-phase."

          • John Morton says:

            That was ten years ago. Die sizes have shrunk, aerial designs have improved, and the display only draws current to change a line. My pebble manages 10 days between charging, which seems to be about 50% beyond spec.

            It helps that they're not trying to use the device to do things your phone is obviously better at doing. Just confining it to simple status display and haptic notification seems to be the right choice.

      • Ben says:

        I presume the designers of these things have looked into making them self-winding? I've no idea how much power it gives you, but I would expect the amount required to wind a clockwork watch to be quite a lot by modern electronic standards.

        • Ben says:

          Seiko invented an automatic quartz watch. Self-winders are big, though, which is probably why they aren't in most electronic watches. There's also the conversion needed from mechanical to electrical, and the mechanism is too slow to be very efficient.

          It also takes a special kind of designer to think "hey, I should put some mechanical elements in this electronic watch."

    • John Morton says:

      Pebble watchface apps can launch animation on second and minute timers, however performing several frames per second animations for second ticks will drop the battery performance from several days to several hours.

      A Dali Clock face would still look pretty good just morphing every minute. I don't think it could switch to the date on a button press without being a full app, or by cheating, however.

      Maybe I'll try porting, one of these months.