Slashdot Mirror


Hacking Quartz

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."

16 of 298 comments (clear)

  1. Good (not bad) article (interview) by Nick+of+NSTime · · Score: 3, Interesting
    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.

    1. Re:Good (not bad) article (interview) by drunkenbatman · · Score: 4, Interesting

      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.

  2. Many people feel Expose serves well enough by SuperKendall · · Score: 5, Interesting

    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.

    --
    "There is more worth loving than we have strength to love." - Brian Jay Stanley
    1. Re:Many people feel Expose serves well enough by geordieboy · · Score: 5, Interesting

      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.

      --
      The world is everything that is the case
    2. Re:Many people feel Expose serves well enough by TheRaven64 · · Score: 4, Interesting

      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.

      --
      I am TheRaven on Soylent News
  3. Re:Not such a good app by numbski · · Score: 3, Interesting

    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?

    --

    Karma: Chameleon (mostly due to the fact that you come and go).

  4. Hardly insightful, more like casual dismissial by SuperKendall · · Score: 4, Interesting

    Apple is not really about "One Way". They are about a "Crafted Way". That is, anything that Apple includes in the OS they like to have honed to a fine sheen before users can touch it.

    If Apple were about "One Way", you would not have the nice integration between the finder and Terminal. You can stick to the Finder to find documents or manipulate files - or you can just use the Terminal, or you can use a hybrid of the two and drag files into the Termainl from the finder and get a full path expanded for you in the middle of some command.

    Note in the article that he mentions Apple made some API changes which were very favorible to Desktop Manager. They could have switched stuff around to crush him like a bug. But they instead made changes that helped - does that sound like a company bent on the "One Way" to do everything?

    As I've said before I really think Apple and virtual desktops is not so much an issue that they do not want it, as they have not invested the mental energy to solve the UI problem of the user maintenience of virtusl desktops - moving windows between, making sure the right windows wind up in the right desktops, etc. If anything I think virtual desktops will arise in OS X through an evolution of Expose, though in the end it may not be quite virtual desktops as we know them today.

    --
    "There is more worth loving than we have strength to love." - Brian Jay Stanley
  5. Visual Basic is not bundled and manualed by SuperKendall · · Score: 5, Interesting

    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.

    --
    "There is more worth loving than we have strength to love." - Brian Jay Stanley
  6. This is only worrying by Anonymous Coward · · Score: 5, Interesting

    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...

    1. Re:This is only worrying by Twirlip+of+the+Mists · · Score: 4, Interesting

      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.

      --

      I write in my journal
  7. Re:Somewhere in the middle by larkost · · Score: 3, Interesting

    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.

  8. Re:Desktop Manager is Amazing by hunterx11 · · Score: 3, Interesting

    I would be more concerned about the fact that "secret" code is subject to change without notice. Objective-C doesn't support private methods, but leaving prototypes out of the header file makes it "pseudo-private." Aqua does have a few other unimplemented capabilities, like theoretical support for tear-off menus. Then again, we might see things like this in the future--it used to be that changing key bindings for menu items at runtime was partially coded but unsupported, but it was added as a feature to Panther.

    --
    English is easier said than done.
  9. Steals GPL source??? by nacturation · · Score: 5, Interesting

    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.

    --
    Want to improve your Karma? Instead of "Post Anonymously", try the "Post Humously" option.
  10. Re:Big Brick Walls by sparrow_hawk · · Score: 4, Interesting
    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());
    exit(1);
    }
    atexit(SDL_Quit);

    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());
    exit(1);
    }

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

    SDL_FreeSurface(screen);

    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.
  11. Think for me apps have replaced that need by SuperKendall · · Score: 4, Interesting

    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.

    --
    "There is more worth loving than we have strength to love." - Brian Jay Stanley
  12. Re:Or not... by shellbeach · · Score: 3, Interesting

    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 :)