Follow Slashdot blog updates by subscribing to our blog RSS feed


Forgot your password?
Programming Businesses Apple IT Technology

Hacking Quartz 298

Exposed writes "Meaty interview with Rich Wareham who is known to Linux users for his libdvdnav library which is used by Xine and other linux players. On OS X he created Desktop Manager, the GPL solution for VirtualDesktops on the Mac. Highlights are secret APIs in OS X for VirtualDesktops, who steals GPL source and why beginner programmers are at a disadvantage now."
This discussion has been archived. No new comments can be posted.

Hacking Quartz

Comments Filter:
  • by emo boy ( 586277 ) <hoffman_brian@ba[ ]om ['h.c' in gap]> on Tuesday July 06, 2004 @03:42PM (#9624811) Homepage
    I am just curious why OS X didnt' support this out of the box with at least Panther. Is it just me or was this a no-brainer?

    • by Ianoo ( 711633 ) on Tuesday July 06, 2004 @03:50PM (#9624906) Journal
      Perhaps Apple's HCI team didn't consider it to be "intuitive" or comprehensible/necessary for the average user. After all, the majority of Macs are shipped with high(ish) resolution screens these days, and the Dock and Exposé take care of managing your screen real estate fairly well.
    • by SuperKendall ( 25149 ) * on Tuesday July 06, 2004 @03:52PM (#9624945)
      For me Expose works well enough as a virtual desktop - I have a lot of windows opened, but when I used to use a virtual desktop on UNIX most of the rooms would be pretty much one thing anyway - like a room for browsing. Now I can just hit F10 on a browser and see all the current browser Windows.

      I think Apple has just not focused any energy on an "Apple Way" to manipulate virtual desktops. It's a tricky UI problem and probably the work needed to keep programs in different rooms is too "virtual" for many people. Note that he did state Apple made changes that were seemingly very favorable to the writing of DesktopManager, so it would seem the folks at Apple are at least nuturing the concept - and if they ever do include such a program I don't think you'll see any sour grapes from this guy as he is already giving it away.

      I did like his idea for "Window Wells" (even though I think that was the interviewers term) a lot, so instead of virtual desktops being really virtual you have "clumps" of windows on screen (which are your virtual desktops) that you can click on like small expose'ed windows to expand the desktop. I'm still not sure of the best way to get windows in or out of these desktops.
      • by geordieboy ( 515166 ) on Tuesday July 06, 2004 @04:59PM (#9625806)
        I couldn't use Expose as a replacement for virtual desktops. I tend to put separate projects on each different desktop, not windows of the same type. So for example I will have TeX files and a DVI viewer for a paper I am working on on desktop 1, C code and a plotting program on another, etc. etc.
        It would be much less efficient for me to collect all the files
        I need using Expose. I tend to use Expose as a cute way to switch between say 5 Safari windows. It would be hideous trying to organize 50 windows with it.
        • by SuperKendall ( 25149 ) * on Tuesday July 06, 2004 @06:07PM (#9626536)
          I think over time applications themselves have to some extent replaced the need for virtual desktops. You mention managin 50 windows would be hard to use with Expose (actually I don't think it would be that bad, especially if you were mostly using the grouped Expose) but between tabbed browsing, and IDE's that really only have a few windows but easy code navigation reduce the number of windows you actually have to take care of.

          For project sets, I generally tend to close open windows nad have project related Finder windows open - threating them sort of like rooms. Since it's so quick just to open a document and not have to think if the program is open or not, having an icon in Finder is almost as good as a live window.

          Even when I was using virtual desktops more heavily I was using programs like Emacs (actually I still use Emacs very heavily) where having 200 files open was as easy as two.

          I'm not saying your pattern of working is any better or worse than any other, evryone thinks in different ways - I'm just trying to explain how people can be OK with no virtual desktops and still using working on a lot of projects at once.
        • How often does the average MAC user have a DVI viewer, c code, a TeX file, and a plotting program open?

          I mean, they've got to develop for who they're selling to.
      • by SilentChris ( 452960 ) on Tuesday July 06, 2004 @05:25PM (#9626147) Homepage
        I'm still waiting for Expose to have a way to move windows around with the mouse. At least as an option. I like the feature, but often I find myself wanting to reorder the windows after it does so (put all the important stuff on one side, web stuff on the other, etc. If I could do that, AND Expose could remember it, the feature would be an absolute godsend. It would literally be like having a physical desk organized by work.
        • Now you're talking! Rather than bemoan the lack of virtual desktops, I think it's more useful to say "how can we make one desktop even more useful and usable?". That would be a great addition to Expose that would make it even more useful, even with a lot of windows. It would even elminiate the annoyance of having to define how a user moves windows between rooms or what rooms they show up in, as when new windows were open you could just shuffle them where you like with (as you say) some memory of where th
        • by TheRaven64 ( 641858 ) on Tuesday July 06, 2004 @07:09PM (#9627100) Journal
          I would like to see a nudge feature added to Exposé. Using this, you would press some combination of keys (or a mouse gesture, corner activation, or whatever) and get a different cursor. Any window you clicked on with this cursor would be nudged away (ideally off screen). When you got to the window you wanted, you would deactivate the nudge cursor, and the next window you selected would become the foreground window, at which point the others would all fly back to their old positions (behind the new front window). I believe that this would be better at preserving the spacial metaphor, and would scale to large number of windows, better than the current Exposé implementation.
  • by Nick of NSTime ( 597712 ) on Tuesday July 06, 2004 @03:43PM (#9624819)
    I was very interested by this interview, but the guys overabundance of parentheticals was very distracting. Sometimes I wondered if the editor was adding his own remarks to the interview, since the parentheticals were italicized.

    Regardless, I found the content to be very interesting, particularly the fact that Desktop Manager is the guy's first Mac application.

    • by Long-EZ ( 755920 ) on Tuesday July 06, 2004 @04:31PM (#9625422)

      ...the guy's overabundance of parentheticals was very distracting

      Programmers THINK parenthetically. If you see parentheses nested three or more layers deep, you can be sure the text was authored by a code jockey. And the parentheses always match, ensuring the article will compile properly.

      If you see programmer text that occasionally uses a semicolon to mark the end of a sentence instead of a period, you can make some educated guesses about the programmer's favorite language.

      You may occasionally see crayon scribbled text with line numbers, as penned by a larva geek.

    • Sometimes I wondered if the editor was adding his own remarks to the interview, since the parentheticals were italicized

      Just to clear this up, I didn't add anything to his remarks in any way, I did however format what was in parantheses in italics, simply because that's how I like to read (with something in italics being the continuation of a thought, and italics helps me jump out of it and back to the main thread). Whether or not that is the correct thing to do is something I'll have to be educated on.

      This is part of a larger series of chats I'm doing with people whose work/projects I find interesting, or topics I feel deserve some thought... and its obviously a case of a soup chef being given a piece of filet mignon and doing the best he can with it.
      • Whether or not that is the correct thing to do is something I'll have to be educated on.

        It's not. Italic type is used to indicate emphasis, or to set off things like the titles of books or the names of ships. Sure, there's room for style, but just arbitrarily italicizing everything in parentheses is a great way to confuse and frustrate your readers.

        So long as I'm being all rude and bitching at you for no good reason, next time it might be cool if you went through and got rid of the "ichatisms" like "IMHO" and "WTF." Expanding those acronyms would have made the interview a lot easier on the reader. If you look at a "real" interview (if you'll pardon the expression) you'll see that the author didn't transcribe every um and ah. It's part of the writer's job to take the interviewee's words and polish them into complete sentences so the prose doesn't get in the way of the ideas.

        Okay, I'll quit being a pedantic little shit now. For the time being.
      • I'm with Twirlip; italics have their place (to emphasise words, titles, &c), and parentheses have their place (to set off supplementary text). You should only italicise a parenthesis if you want to emphasise it particularly in addition to setting it off from the main text; there's very rarely reason to do so.

        Nothing personal, you understand :)

        Oh, and while I'm in pedant mode, you probably meant 'sous chef' -- 'sous' being French for 'under'. A 'soup chef', if such a role exists, would be someone w

      • It isn't. Italicisation is for
        • emphasis
        • foreign terms
        • titles of larger works (novels, for instance, but not songs).

        (On the subject, bolding is for keywords, headings &c. more than emphasis; whereas italicisation is only really noticeable when you're in the vicinity, bolding is visible pretty much anywhere on the page, drawing your attention to it. Avoid bold for emphasis.)

        ((Even more tangentially, anyone who has the capacity to use italics but still uses underlining for anything except for links will be hung, drawn and quartered when I'm ruler of the world.))
  • I read the interview, but I couldn't find where he mentions about it becoming harder for beginner programmers.. maybe I'm just blind, but if someone could point it out for me
    • by SuperKendall ( 25149 ) * on Tuesday July 06, 2004 @03:46PM (#9624857)
      It was a short section in the middle - to summarize:

      "The level of effort is much harder now for a kid to get into programming - PC's used to ship with Basic manuals and you could write code to draw a spaceship in ten lines of code, but now you have to learn the Win32 API + Directx to get a black triangle on the screen."
      • Or not... (Score:3, Insightful)

        by endoboy ( 560088 )
        ever heard of visual basic?
        • Re:Or not... (Score:2, Insightful)

          by Anonymous Coward
          Except that Visual Basic costs more than the entire home computer back in the 80's. It is also not included on the PC when you buy it as was customary back then (in ROM no less). Add that to the fact that VB is far more complicated than the old fashioned BASIC of yesterday (Shitloads of menu options versus what? LIST and RUN?)...
          • Re:Or not... (Score:3, Informative)

            by endoboy ( 560088 )
   standard edition-- $90

            even neglecting inflation, I don't think that that comes to "more than the entire home computer back in the 80's"

        • Re:Or not... (Score:2, Interesting)

          Maybe I'm just not good at VB, but I got less flicker making my own animated screensavers on my old 286+QBASIC than I get with VB. (VB does make some of the job easier, though.)

          Unfortunately, VB so spoiled me in elementary and middle school that I still can't sit down long enough to learn to combine C and GTK, or C++ and QT, or Perl and Tk. I have managed to do some stuff with C and SDL, though.
        • Re:Or not... (Score:4, Interesting)

          by shellbeach ( 610559 ) on Wednesday July 07, 2004 @12:02AM (#9628984)
          ever heard of visual basic?

          Actually, I would have said that Perl (and Perl/Tk for creating GUIs) is the equivalent BASIC these days. Simple, straightforward, free and cross-platform ... and there's some excellent O'Reilly books for beginners.

          YMMV, of course :)
      • by SuperKendall ( 25149 ) * on Tuesday July 06, 2004 @04:11PM (#9625124)
        But how many computers ship with VB, and a manual which shows you how to write cool little programs in VB? I really can't think of ANY!!

        Even OS X, which does at least ship with developer tools in every box really makes no mention of them.

        The thing about computers before was that it was super easy to just write ten lines of code and have something happen. Now you have to hunt down an IDE or an editor, and chances are you're writing a lot more than ten lines even for Hello World! The computers now have (as he said) a much higher barrier to entry of manipulation, though of course you can do a million times more if you do break that barrier - so I'd say the only hope is that the rewards of crossing that barrier are enough to lure people over.

        I agree with him that this is a real problem, far fewer people are exposed to the manipulation of computers at a young age and instead computers are treated as black boxes, not to be touched. Cars are headed the same way to some extent but there already was a much more powerful and widespread culture built up around people and engines, so it's a lot harder for that to vanish. I wish that more people would be able to think of computers as more like cars and less like toasters.
      • by cjwl ( 776049 ) on Tuesday July 06, 2004 @04:15PM (#9625175)
        Perhaps he should sit down and try Cocoa out while he's using OS X. ProjectBuilder/Xcode can generate a skeletel application that runs w/ no code. Interface Builder will generate code for your view, you fill in the drawing code. It's pretty damn easy and there are a lot of tutorials.

        I think it is far easier for young people to get started these days and they have access to far more powerful tools and OS than the beginners of the past. I didn't get a Unix machine (NeXT) until I was 20, we have 5 year olds using it on a Mac now. The barrier to entry is far lower now than it ever was and it will continue to be.

        The real problem is that there are far more people who know programming that you have to compete against for jobs...
        • by bfields ( 66644 ) on Tuesday July 06, 2004 @04:40PM (#9625543) Homepage
          The real problem is that there are far more people who know programming that you have to compete against for jobs...

          I don't know, it may be that the market for "programmers" is poor, but that doesn't mean there isn't a need for a higher level of computer literacy in the general population. If you're someone in another specialty (e.g., you're mainly a biologist) and have some programming skills, then there's probably a lot of people that will be very happy to have you around.

          think it is far easier for young people to get started these days and they have access to far more powerful tools and OS than the beginners of the past. I didn't get a Unix machine (NeXT) until I was 20, we have 5 year olds using it on a Mac now. The barrier to entry is far lower now than it ever was and it will continue to be.

          That's all true, it's amazing that these days you can get such high-powered hardware so cheaply, and run entire operating systems entirely from code that you can tinker with.

          On the other hand, even the lowest-end machine has so many other distractions on it now--games, email, etc. The basic interpreter was sometimes the only fun thing that came with the cheap home computers of the 80's--the only way to get a game might be to spend money on a cartridge or type one in from a magazine--whereas now you have to dig a little and look up documentation elsewhere to find a programming environment for your new PC.

          --Bruce Fields

      • by Kjella ( 173770 ) on Tuesday July 06, 2004 @04:19PM (#9625224) Homepage
        ...the distance between a beginning programmer and what you see commercially available is eons apart, compared with before.

        I programmed my C64 with "state-of-the-art" GFX (320x240x16 color, woot), SFX/music (think PC squeaker-like), most else was limited by memory/CPU constraints. In retrospect maybe my AI and gameplay wasn't quite up to par, but I was very close at least.

        One thing is to get a person started - which is hard enough, true, but it's also takes a lot more before you feel you're doing something that feels "cool". Something you could compare to everything that's out there and in some small, limited way be better than. Because once you've done that, you begin to believe you can do it in every other way as well.

      • by larkost ( 79011 ) on Tuesday July 06, 2004 @04:20PM (#9625235)
        While it has become harder to draw a black triangle on the screen programatically, it has become fire simpler to use an IDE to make a window that has a black triangle on it, and then draws "hello world" and asks you for your name, all well within ten lines of code (and 3 minutes of work).

        With XCode and InterfaceBuilder (the IDE tools that ship with MacOS X) I can whip up a text editor with support for rich text (fonts, formatting, colors, embedded images, etc) in under 20 lines of code (half of which are written for me), and a few minutes.

        I would say that it has become far easier to get complex things done in programming, and for a lot of tasks the entry level has gone down, but of course our expectations have increased enormously.
      • But consider, ( at least in the case of my old DOS VGA graphics ) accidently writing outside the video buffer would bring the computer down. Completely. As in hard-reset.

        Nowadays, the OS just brings up a dialog saying "blech! crashed!" or something.

        It's a fair trade.

        If you want easy prgramming today, you might have to go through a shell of some sort. Squeak might fit the bill [ ].

        The point is, modern systems are *robust* and as such, there's a higher point of entry. Nothing to see
      • Link in sig.

        I'm assembling a number of tutorials on doing software rendering using JavaScript. I used to think it wasn't good for much but after doing textured polygons with a color key my opinion has changed. Since it's all software the concepts can be transfered to any language that can plot a pixel, do math and store an array.

        I've also written a graphical adventure game in TI BASIC as well as some pretty basic 2D and 3D demos. Most of my graphics stuff is now done in OpenGL. I've worked with Direct
  • by Anonymous Coward on Tuesday July 06, 2004 @03:44PM (#9624842)
    I thought this was going to be an article about overclocking your wristwatch.
    • I thought this was going to be an article about overclocking your wristwatch.

      but if you did, how would you know how much faster it is? at best, you'll end up with a broken watch because then it means you have to do something different next time to succeed, ie, you'v elearned something. At worst, you've tried and been unable to conclude that your watch is faster (thus wasting time!), since measuring your watches speed with your overclocked watch would show it's as fast as before but no faster.

      in summatio
  • Virtual desktops (Score:2, Insightful)

    by mst76 ( 629405 )
    I don't really understand why Apple doesn't offer them. I've hears several reasons: the dock, expose, tranparent windows, or whatever makes them unnecessary, they're confusing for new users, etc, etc. But none of these addres the fact that Aqua WITH optionally selectable virtual windows (selectable for the "advanced user") is BETTER than WITHOUT. You can make all the same arguments for the presence of Terminal: it's unnecessary and confusing for the majority of users, but I bet few Mac users would want Appl
    • by Anonymous Coward
      But none of these addres the fact that [APPLE TECHNOLOGY] optionally selectable [FEATURE] (selectable for the "advanced user") is BETTER than WITHOUT

      If you are going to be an Apple customer you will have to let go of this idea. Apple simply does not add a lot of doo-dad features because a few nerds would like them.

      Try this attitude instead:

      [FEATURE] is bad, even if it's optional, because most people don't need it. It's just a kludge because Windows/Linux/DOS/Amigas is inferior to Macs. [APPLE TECHNOLOG
      • The amazing thing is you managed to contradict your own point. If I am using apple technology that means that I,*gasp* chose apple technology to begin with. IE I liked what Apple puts out. Nobody forced me to do it, just like nobody is forcing you to use Apple, Windows, Linux, BeOS etc. If you don't like the lack of choice on Apple's platform, then DON'T USE APPLE'S PLATFORM!! The people that do made the *choice* to do so, so please stop bitching about a lack of choices on Apple. Those of us that use
    • by Kenja ( 541830 )
      Apple is of the opinion that two buttons on a mouse is overwhelming. Do you realy expect them to think that we the consuming masses can handle more then one desktop?
    • by nine-times ( 778537 ) <> on Tuesday July 06, 2004 @04:36PM (#9625489) Homepage
      ' I don't really understand why Apple doesn't offer them. I've hears several reasons: the dock, expose, tranparent windows, or whatever makes them unnecessary, they're confusing for new users, etc, etc. But none of these addres the fact that Aqua WITH optionally selectable virtual windows (selectable for the "advanced user") is BETTER than WITHOUT. You can make all the same arguments for the presence of Terminal: it's unnecessary and confusing for the majority of users, but I bet few Mac users would want Apple to leave it out.'

      There's a weird Apple mentality at work here. I'm not Apple bashing, it's just that the reasons are ones that most on /. won't really identify with.

      Apple likes to control their product; they don't want the interface very customizable. They'll allow little tweaks, and they'll allow people to make 3rd party products that can do... whatever. But this is the issue from the point of view of Apple: look around at linux desktops. Heck, just find some screenshots online somewhere- they all look different. Both KDE and Gnome are very customizable. Great. But a lot of users are going to find it confusing. Here's an example:

      If I tell you I'm running Linux with a gui, and I want to reboot, can you tell me, without looking over my shoulder, where, spacially, on my interface, I need to go? Even if I tell you "I'm using Gnome" or "I'm using KDE", can you then tell me where the 'Log-out' or 'Reboot' button is? No- because it's very customizable, any button could be anywhere.

      This means that the user's understanding of where things are and how the interface operates is not necessarily portable from one installation of Linux to another, even if you're using the same window manager on the same distribution. So what you need to understand about Apple's design philosophy is this: they don't like that. They want it so, if you're using their software, with no complicated tweaks or 3rd party hacks, everything will look pretty much the same, act pretty much the same, and be in pretty much the same place.

      Virtual desktops would be fine with Apple, if they liked virtual desktops enough to use it with the standard interface, but they don't. It's not that they mind virtual desktops, but Apple doesn't want to add in extra options that will change the interface and confuse many users, unless it's necessary. They'd rather, instead, come up with another interface design feature that, they believe, will be as powerful as virtual desktops, but less confusing to users (like Expose). And if you want virtual desktops, their are 3rd party implimentations available.

      So, there's your difference between the Terminal and Virtual desktops. One is an application (of sorts) than can be run within the current standard Apple interface (Terminal), and the other actually changes the behavior of and the user interaction with the interface.

      • Choice (Score:5, Insightful)

        by gidds ( 56397 ) <> on Tuesday July 06, 2004 @08:43PM (#9627756) Homepage
        I think it comes down to the matter of choice.

        Now, in general, we tend to think of choice as a Good Thing(tm). But it's not always so -- e.g. when choice means incompatibility, confusion, fragmentation, duplicated effort.

        For example, here in the UK we have (basically) just one mobile phone system: GSM. That terrible restriction on our liberties means that mobile phones can work on all networks, and there's coverage almost everywhere. Result: mobiles are cheap, and just about everyone has one. In the US, so I gather, there's the wonderful free choice of GSM, CDMA, and goodness knows what else. Result: expensive phones, no coverage, lots of vendor lock-in, and mobiles are less popular. Lack of choice can be a good thing.

        The computing world is surprisingly close in terms of interfaces, APIs, and protocols.

        It's less so in terms of GUI features, admittedly, but some of the same economies of scale apply. However, I think Apple's principle here is that if a feature is done right, then people won't need alternatives.

        Far better to have one option that works right, than ten competing alternatives, none of which does the job properly. Easier to learn, easier to document, easier to code to, easier to administer, easier to support.

        Now, in this particular case, I do miss virtual desktops in OS X. (Codetek's is just too slow with the number of windows I have, and I can't use Desktop Manager in my 10.2...) I don't think Apple have come up with a better solution to the problem it solves. But I'm right behind most of Apple's other decisions. Simplicity and elegance are underrated virtues.

  • by pyite ( 140350 ) on Tuesday July 06, 2004 @03:51PM (#9624927)
    I really have to say that Desktop Manager is amazing. It even has eye candy transforms between desktops (such as the sides of a cube representation of things). And to boot, Rich emailed me back some time ago when I had a question.
    • by rjstanford ( 69735 ) on Tuesday July 06, 2004 @04:09PM (#9625106) Homepage Journal
      I really have to say that Desktop Manager is amazing. It even has eye candy transforms between desktops (such as the sides of a cube representation of things).

      Good ... but not exactly amazing ... from TFA:

      Q:[Y]our app feels faster than any of the competing apps out there by an order of magnitude, even though you arguably throw a hell of a lot more eye candy in there and you've recently made it even faster. Where is this speed coming from?

      A:Apple :). The actual 'switching' is performed by calling the secret API functions above. This is actually implemented in the Window Manager and hence is as fast as if I could delve in there myself and manipulate them 'by hand'. The transitions eye-candy in later releases is actually using Apple's own code.
      Does that mean that it's good code? Absolutely. But not startlingly good code, since most of the heavy lifting was done by the OS itself (Apple uses similar transitions for switching between multiple users, for example - which would lead me to belive that had Apple done this they would have used something visually distinctive for the desktop switch, come to think of it).
  • by Tassach ( 137772 ) on Tuesday July 06, 2004 @03:53PM (#9624958)
    I got all excited thinking there was going to be an article about DIY piezoelectric devices
  • Okay. (Score:2, Funny)

    by numbski ( 515011 ) *

    The man doesn't like spirits, but he likes beer.

    I've noted, most everyone either likes liquor, liqueur, or beer.

    Why is there such a lack of interest in cider? I have my own batch finishing up it's first rack right now, and I'll be moving it to second racking adding honey tomorrow. :P

    The more I've read the history of this country, it seems like the germans moved in and totally obliterated the cider makers and moved in with the beer. :( I love my cider dangit. :P
    • If it's clear and yellow, you've got juice there, fellow.
      If it's thick and brown, you're in cider town.
      Now there are two exceptions...
  • Not such a good app (Score:3, Informative)

    by Jeedo ( 624414 ) <asdfasdfasdfasdf ... m> on Tuesday July 06, 2004 @03:54PM (#9624969) Homepage
    I've used this application and it was highly unstable, crashed constantly and was generally nothing like the virtual desktop one has gotten accustomed to on UNIX desktops.
    • by numbski ( 515011 ) * <> on Tuesday July 06, 2004 @03:58PM (#9625009) Homepage Journal
      Eh, I think you just have bad luck.

      Granted, no, this is 'not your dad's desktop manager' in the sense that you're used to in X, but it's still a far cry improvement from not having it at all, and if you look at the sources, his readme's, and heck, just this interview, he has some interesting improvements coming down the pipe.

      But if you want to cry instability, let's hear it:

      What's your hardware specs?
      What OS?
      What version of Desktop Manager?
      • by Jeedo ( 624414 ) <asdfasdfasdfasdf ... m> on Tuesday July 06, 2004 @05:59PM (#9626472) Homepage
        I'll answer this to the best of my current capability, my iBook being in Ireland and all due to display problems.

        I usually use GNU/Linux on my iBook, which is one of the later G3 models, or a G3 800MHz 12.1". The OS i was using at the time was Mac OS X 10.3 booted from a 1GB partition i use when i want to muck around with OSX, as for the version, i dont remember nor am in a position to check, this was about 3 months ago though, and was the latest version at that time.

        Now, dont get me wrong, in it's core concept this is an okey app, however the implementation is somewhat bad.

        1. When you use the windowlist-in-macbar ( the file-edit.. thing at the top of the screen ( danm my mac-jargon knowlage is outdated )) it frequently underflows under other menus when you have a small screen, such as in my iBook. Of course this it not in all applications but it happens when you open certain apps that spawn lots of these menus not to mention having the iChat menu and others up there.

        2. It crashed, and often, when this happened all windows were gathered in one desktop on top of each other, nothing you couldnt solve with Expos&#233; but still a frequent annoyance which eventually led to me uninstalling it.

        3. To top it all off you got a "You are about to shut Desktop Manager off, this will gather your windows inn one desktop yadayadayada yes/no" message when the computer shut down, this in itself was not such an annoyance, just something that added to problem nr. 2.

        Don't get me wrong, i just said it was unstable at the time, it is however a great concept. I use this feature on my GNU/Linux desktop every day so it's not like i'm unused to the concept, however at the time i tested it it was at least on my machine way too unstable to be of any good use, so i just went back to Expos&#233;. However i wish the author the best of luck in future development and hope that by the next time i test it will actually work as desired, plust it had some neat ( if useless ) transition effects.

    • by aarku ( 151823 )
      The parent comment is most likely outdated knowledge. You were most likely using versions v0.1-v0.3. The latest v0.5.1, while still officially "alpha quality" has yet to crash on any of the machines I use or maintain. Try a more recent version.
  • narf? (Score:3, Funny)

    by happyfrogcow ( 708359 ) on Tuesday July 06, 2004 @03:58PM (#9625008)
    nicking my, now ex, girlfriend :)

    someone define "nicking" for the, um... curiously imaginative.
  • The last time I tried to use Rich Wareham's desktop manager on my PowerBook G4 (1 Ghz; 15"), it crashed in Jaguar/MacOS X 10.2.8 since it wasn't compatible with it. Only Panther.

    Are there any good free virtual desktops? Codetek's nice but it is not free and a bit bloated (too many features).

    I use GoScreen [] in Windows, and it rocks!
  • by mst76 ( 629405 ) on Tuesday July 06, 2004 @04:06PM (#9625074)
    I found this slightly disturbing:
    Sure. OS X has a couple of undocumented API calls 'CGSSetWorkspace' and 'CGSGetWorkspace' which allow you to split the window trees into different desktops and move between them.

    Believe me there is a lot in OS X that is undocumented and suggests interesting things.
    While not many people blame Apple for keeping Quartz closed source, many would argue that at least the APIs should be exposed. This gives independent app writers a level playing field when writing apps that might compete with Apple's own offerings.
    • by Otter ( 3800 ) on Tuesday July 06, 2004 @04:16PM (#9625186) Journal
      I don't think this is so much a way to stifle competition (competition with what Apple product?) as either 1) those calls are not stable yet or 2) they don't want to encourage use of certain things at the application level.
    • by Anonymous Coward on Tuesday July 06, 2004 @04:18PM (#9625213)
      If apple's apps then call these APIs. It is possible that these APIs are incomplete, experimental, or internal to the OS. If Apple documents these APIs, that means they're obligated to support them and keep them relatively stable between OS releases, etc...

      This isn't quite like the Windows situation for two reasons.

      One, the problem in Windows is mostly that MS's hidden APIs are for (1) very important and basic things and (2) used extensively by MS's in-house apps.

      Two, Apple's been very good not just about keeping competitors on a level API playing field with Apple's apps, they've been very good about actually moving functionality OUT of Apple's inhouse apps and into public APIs. Witness searchlight services, or CoreGraphics. These were functionalities in Apple inhouse apps that Apple decided would be useful to other people, so they sucked it into the OS and made a public API for it...
      • by Twirlip of the Mists ( 615030 ) <> on Tuesday July 06, 2004 @05:59PM (#9626477)
        If apple's apps then call these APIs.

        Well, they don't, not really. There are two sets of calls he was talking about. There are the calls related to organizing the window hierarchy and splitting it. Nobody uses those calls. They may--this could be completely wrong, because I have done zero reading on the subject--date back to NEXTSTEP. Lots of little things in Cocoa do.

        The other set is related to the rotating-cube transition. Only one process calls that code.

        So these aren't pieces of code that are widely reused within Apple's programs.
      • One, the problem in Windows is mostly that MS's hidden APIs are for (1) very important and basic things and (2) used extensively by MS's in-house apps.

        Not really. I work on Wine and most of the undocumented APIs I can think of are very boring, in fact they're mostly utility APIs implemented by various teams (especially IE and the shell). Certainly Microsoft tends to err on the side of exposing potentially dodgy APIs rather than keeping them quiet.

        While there are large chunks of undocumented APIs for i

    • I've heard that, generally speaking, some API calls are inserted into production libraries before they're truly meant to be used. Seems like this could potentially be such a case. But I do agree that in almost all cases, APIs should be as open as possible -- plenty of good ideas have come out of independent shops as a result of having good tools (APIs) available and well documented.
    • by Archibald Buttle ( 536586 ) < minus cat> on Tuesday July 06, 2004 @04:32PM (#9625434)
      Apple does indeed have a number of undocumented API calls in Mac OS X. Now whilst it would be nice for all of the API calls to be documented they simply aren't right now.

      Quartz actually can do a whole load of other things using undocumented APIs besides this virtual desktop stuff. It's also possible to rotate windows, shrink them, and zoom them up - I have an application that does this. However those that have investigated the APIs that allow these wild things to happen have found that they're not exactly complete.

      Apple has of course been challenged about these APIs, and they remain consistent: you shouldn't use these APIs. They are undocumented because they are likely to change in the future. When the API is complete they will be documented, but not before then.

      It's quite possible that all of these APIs (handling virtual desktops, rotation, and scaling) will be documented for 10.4 (Tiger).

      One example of this is the shadow effect that Mac OS X supports on windows and other graphics. It's been there since 10.0, but it wasn't publically documented (although some people discovered its API). Apple only used this API for shadowing windows and menus. An official API for shadows was introduced in 10.3 which is more fully featured and easier to use than the old unofficial API. Indeed there's two official APIs now for shadows - one for low level Quartz calls, and a high-level API for AppKit.

      Of course what Apple really should do is make sure that these new experimental APIs simply aren't present in the shipping OS. Apple themselves don't use them, so why leave them around?
    • by ebooher ( 187230 ) on Tuesday July 06, 2004 @11:43PM (#9628885) Homepage Journal

      Well, I couldn't help but whip my thang out here. I also apologize in advance for my patent pending Bullshit Theory of the Day

      Anyway. The API's for Quartz, and what you can do with the UI for the system is documented. Pick up some of the dog books from O'Reilly (Which, while I'm on the subject, where did the dog come from anyway. I mean .... it may not have been exactly public knowledge, but OS X has always been a cat.) Everything you need to know about how to do proper manipulation is there. All black and white.

      The problem enters the equation when developers poke around and find things that Apple didn't mean for them to find. Ergo the undocumented hooks this guy is using. Now, while I will agree there is a bit of coolness about being able to locate something and then add it into your own code so you can just make a simple call and use it like you wrote it yourself, there is a problem with it. A guy in an earlier post complained about it not working with Jaguar. Most likely, it won't work with Tiger either.

      You see, you have to understand that Apple, even though they are a big corporation out to make money off of both you and your grandmother, isn't specifically trying to hide something that you can use to write cool software to get your grandmother to buy a brand new G5. They want you to write something your grandmother will feel compelled to spend $2000 on a brand new Mac to use.

      Here comes the but....

      But the internal developers deep within the bowels of Apple are slaving day and night to make The Next Cool Thing (TM) that everyone will have to have in the newest version of OS X. These features are extremely fluid, sometimes disappearing completely in a simple increment upgrade within the same major version of the Cat. Because those same developers might have tried to create something too cool and have opened a hole somewhere else. They are undocumented because they might be gone tomorrow, or might change how they are called, or might become a butterfly all by the next major revision when they become concrete.

      You see, when they solidify and become concrete, then documents are written, then become published API's with which to write code against. I mean, I don't know about you, but I wouldn't want to write code against an API, documented or not, that I knew wasn't standard yet and would most likely change tomorrow.

      But this is all just the opinion of one old man.

  • Is Desktop Manager likely to work at least modestly on Jaguar? The download site refers to Panther, but it's not clear what to expect on older versions.

    Anyway, while I agree with his point about programming being a lot less attractive to new users than it was 20 years ago, I don't know if that's true when comparing to 10 years ago. GUI programming with new tools (VB, Cocoa and Interface Builder, Qt and Designer) is a much more attractive proposition for people with a little C/C++ than it was a decade ago.

  • With the old home computers one could get instant gratification by writing a program which drew a space-ship on the screen in 10 lines of BASIC. Nowadays you'd have to learn COM + Win32 + DirectX just to get a black rectangle.


    It required at least 300+ lines of Visual C++ to get a black screen and almost 150 lines of C++ to get SDL to throw up a black screen.

    What the hell is going on here?!?! I know a lot of things need to be set up, resolution, sound, etc. But most people were happy with the default options they were given on those old computers. They made Elitle out of it for christs sake.

    So how come I can't start a gaming project with a simple


    Is it too much to ask?
    • I've run across a few scheme tutorials that cover implemeting a basic turtlegraphics-like drawing system. It wouldn't be too hard to expand upon that to provide a simple programming environment for a beginning programmer...
    • Re:Big Brick Walls (Score:5, Interesting)

      by sparrow_hawk ( 552508 ) on Tuesday July 06, 2004 @04:55PM (#9625748)
      Umm... I'm not sure what version of SDL you're using, but all you need to throw up a black screen in SDL (in C) is the following:
      #include <stdio.h>
      #include <stdlib.h>

      #include "SDL.h"

      int main (int argc, char **argv) {

      if (SDL_Init(SDL_INIT_VIDEO) < 0) {
      fprintf(stderr, "Could not init SDL: %s\n", SDL_GetError());

      SDL_Surface *screen;
      screen = SDL_SetVideoMode(640, 480, 32, SDL_SWSURFACE);
      if (screen == NULL) {
      fprintf(stderr, "Could not set video mode: %s\n", SDL_GetError());

      SDL_Event event;
      int quit = 0;
      while (quit == 0) {
      while (SDL_PollEvent(&event)) {
      if (event.type == SDL_QUIT)
      quit = 1;


      return 0;

      Compile it with
      gcc -Wall -ggdb `sdl-config --cflags --libs` ./SDL_app.c -o SDL_app
      and bingo, you've got a black screen. That's 35 lines of code, and it could have been less if I hadn't included error-checking and other nice things like that. For the record, most of it was cribbed from the SDL Introduction [].

      SDL is a beautiful, compact API that's also nicely extensible (eg. SDL_image [], SDL_mixer [], SDL_net [], smpeg, etc.). There's no *way* you need 150 lines of code to do interesting things with SDL.
    • Re:Big Brick Walls (Score:3, Informative)

      by gidds ( 56397 )
      They made Elitle out of it...

      If you mean 'Elite', then that's a bad example. The original (Beeb) version hacked the display registers to create its own hybrid screen mode, with a highish-res black-and-white main view, and a lower-res 4-colour status panel beneath. (I guess they effectively switched between MODE 4 and MODE 5 using a timer interrupt that fired 2/3 the way down the screen, and switched back in the flyback.)

      In short, they didn't use the default options!

      Mind you, as someone else said, it

  • by SandSpider ( 60727 ) on Tuesday July 06, 2004 @04:15PM (#9625174) Homepage Journal
    He mentions that it's more difficult for beginning programmers to get a start, as compared to the old days. Partially because software companies have tried to hide everything, and partially because it's so much more difficult to write a small amount of code that will do something exciting.

    I disagree. Those points were more true a few years ago, but, at least with OS X, you have plenty of potential. First of all, there's Applescript and Applescript Studio. It's really easy to get a program started that does far more than in the old days, since most of your basic user interface work is done for you, and you can draw on the power of every installed application on your computer. Mind you, learning how to program Applescript is not like learning to program most languages, but it's a really good test of your problem-solving skills.

    The other part is web programming. Nowadays, if you can get a computer that's visible to the internet, or an account on a web server that allows custom CGIs, you can make custom programs that will not only be cool to you, but potentially cool to the entire world. That's a lot more incentive than you had in the old days, or at least a different kind of incentive. It might even make for more solid coders in the future, since hobbyist and learning programmers nowadays get to see people trashing their programs repeatedly, so there's good reason to make them work properly.

    No, it's not the same, and it's may not be particularly easy to get started in the windows world, but for the rest of us, there are plenty of good opportunities for the beginning programmers.

    • Sure the programming tools we have now are way more powerful than before, and you can as you say reach a much larger audience.

      But, there are two problems:

      1) How to know that anything is there, and
      2) The widespread display of programming is not really there for the masses.

      For (1), consider than before programming was like an old scooter left on the sidewalk. Anyone could see it was there, pick it up, and mess around. They might not get very far but it gave a feeling for driving.

      Now the scooter is gone,
      • I don't think the hurdle is as high as you make it out to be. I'll grant you, nobody's spoon-feeding every kid with a computer on how to program it, as it was in my day. On the other hand, there are far more kids who are using computers than did in the old days.

        I suspect a larger problem, if you want to call it that, is that computers do so much more than they used to. It's harder to find something that isn't already written, at least for the beginning programmer. On the other hand, the people who want to
    • by Tim Browse ( 9263 ) on Tuesday July 06, 2004 @04:38PM (#9625513)
      I don't buy this "it's much harder these days to start programming" bullshit. It's purely a perceived problem because apps are more complex these days, and there are lots of them. But don't expect to write complex stuff when you start.

      Hell, the first program I 'wrote' on my Commodore PET was something that made a rocket fly up the screen over and over. It was very simple. You could accomplish the same these days on any machine by downloading gcc and writing a C program of frankly a very similar length and nature.

      I don't actually remember my PET or my BBC Micro running ICQ or browsing the web, or doing any of these things that people seem to think they can just pick up a compiler and throw together in a few days.

      Stuff has got more complicated, and people expect more features and UI. But to complain that it's hard to get started is just not true.

      Hell, with the GUI toolkits around now, it's actually way easier to do some of these cool things. Think back to the early days of GUI programming. From my own experience, programming RISC OS GUI apps was horribly complex and difficult to get going with. On the other hand, I remember how cool I thought it was when I realised that the OS did stuff like those handy edit boxes for you - you didn't have to do anything! :)
  • by tyrione ( 134248 ) on Tuesday July 06, 2004 @04:29PM (#9625392) Homepage

    How is this giving Apple's consumer applications an advantage? What this shows is where Apple has optimized security and performance within the WindowServer and its functionality of Expose in conjunction with the Dock.

    This has nothing to do with Apple utilizing a secret API for all its consumer applications like Final Cut Pro, etc to put it one leg up on the competition.

    This has everything to do with strictly improving the performance of the Operating System and core functionality that all applications may benefit from by the fact they are written for OS X. There isn't a Core Graphics for third parties and a Core Graphics for in-house. Get real folks.

  • by Chuck Bucket ( 142633 ) on Tuesday July 06, 2004 @04:33PM (#9625455) Homepage Journal
    but it was in my book titled "OS X: The Missing Manual" and I can't find it.

  • Steals GPL source??? (Score:5, Interesting)

    by nacturation ( 646836 ) <> on Tuesday July 06, 2004 @04:41PM (#9625556) Journal
    Highlights are secret APIs in OS X for VirtualDesktops, who steals GPL source...

    Where is this in the article? I read the whole thing, then went back and searched for every occurrence of "steal" (zero results) and "GPL". The only part that mentions Virtual Desktops is that CodeTek can't use the Desktop Manager source in their closed source app because it's GPLed. The relevant section is:

    "I still get some emails accusing me of being petty and small minded for GPL-ing Desktop Manager since CodeTek can't easily use my code. That is silly since they are quite capable of re-implementing Desktop Manager in a far better way using my techniques. I haven't tried (nor could I probably) claim control over how people use the APIs I discovered."

    Nowhere does this claim that Virtual Desktops is using, let alone stealing, anything from his source. Unless I missed something here, I fail to see how such a statement is anything more than libel.
    • by saddino ( 183491 ) on Tuesday July 06, 2004 @05:09PM (#9625934)
      Yeah, you're missing something, but I don't blame you, the write-up is confusing.

      First, the poster mentions: on OS X he created Desktop Manager, the GPL solution for VirtualDesktops

      So, you see, the poster is using "VirtualDesktops" as a name for "virtual desktop technology," not as "VirtualDesktop Lite/Pro, the product from the company CodeTek."

      Second, the list at the end is suppose to be read this way:

      Highlights are:
      - secret APIs in OS X for [virtual desktop technology]
      - who [is it that] steals GPL source [?]
      - why beginner programmers are at a disadvantage now

      Thus, it's just a list of interesting items from the interview; it isn't supposed to be read "blah blah blah CodeTek, who steals".

      Finally, the answer to the second "highlight" -- is indeed in the article posed as:

      You mentioned all of your code being released as GPL, and much of it isn't throw-away stuff. Do you ever worry or wonder about it being 'lifted' and incorporated into proprietary software?

      So, yep, it's in there: "lifted" instead of "steals." Interesting answer from Rich, too.
  • by Anonymous Coward
    Why doesn't Apple support multiple virtual desktops?

    Because that would be confusing as there are real multiple desktops. You can have multiple desktops active at the same time. Say one for surfing and loading trojans by accident and another for online banking and you know that they are safely separated from each other.

    It's called Fast User Switching, but realise that they are all active at the same time. Adding virtual desktops which are not separate would confuse the user and water down simple secure sep
  • by isaac ( 2852 ) on Tuesday July 06, 2004 @05:28PM (#9626176)
    I'd love to use Desktop Manager instead of Codetek Virtual Desktop which has always felt iffy and bloated to me.

    Alas, multimonitor support is still pending, and Codetek gives me what I need even more than virtual desktops - Focus Follows Mouse!

    I sorely miss good focus-follows-mouse support; I know it's possible to enable it for X11 and, but only CTVD seems to allow enabling focus-follows-mouse across the whole system.

    -Isaac Salpeter
    iVillage Operations
  • by jbolden ( 176878 ) on Tuesday July 06, 2004 @06:28PM (#9626767) Homepage
    Just to throw in $.02 here. The project seems dead but I've been using space for years. It does very nicely as a virtual desktop manager and it is open source (QPL).

Recent investments will yield a slight profit.