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

15 of 298 comments (clear)

  1. Somewhere in the middle by SuperKendall · · Score: 4, Informative

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

    --
    "There is more worth loving than we have strength to love." - Brian Jay Stanley
    1. Re:Somewhere in the middle by cjwl · · Score: 5, Informative

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

  2. Desktop Manager is Amazing by pyite · · Score: 5, Informative

    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.

    --

    "Nature doesn't care how smart you are. You can still be wrong." - Richard Feynman

    1. Re:Desktop Manager is Amazing by bnenning · · Score: 4, Informative

      Aqua does have a few other unimplemented capabilities, like theoretical support for tear-off menus.

      Not theoretical.

      --
      How to solve most of our problems: 1.Lots of nuclear plants. 2.Cure aging.
  3. Not such a good app by Jeedo · · Score: 3, Informative

    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.

    1. Re:Not such a good app by Jeedo · · Score: 4, Informative

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

      Cheers.

  4. Re:Undocumented API calls by Archibald+Buttle · · Score: 4, Informative

    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?

  5. Re:Why it wasn't put in already by boaworm · · Score: 4, Informative

    Of course this is a matter of taste, but i dont agree with you. Expose for me is pretty useless. OK, we can highlight a few applications, but that's not my problem.

    My PROBLEM is that i dont want to mess around finding my apps. Expose is simply too slow to use, i cannot find everything with a single click.

    On my Gnome workstation i have 11 virtual desktops, one for each server i'm maintaining, plus some for mail, comms and web. I know that by pressing CTRL + i instantly move to a desktop with all my windows positioned they way I want them. Desktop Manager does the same for me on OS X

    My problem with Expose is that I'm not trying to find ONE application, but a whole bunch. I dont want to find "Word" or "Netscape". I want to find everything "Mailserver-related", "Primary Nameserver-related" etc. Simply put, i want to find more than one window/application, expose cant do that, Desktop Manager does.

    --
    Probable impossibilities are to be preferred to improbable possibilities.
    Aristotele
  6. Re:Steals GPL source??? by saddino · · Score: 4, Informative

    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.

  7. Re:Why it wasn't put in already by dasmegabyte · · Score: 3, Informative

    My PROBLEM is that i dont want to mess around finding my apps. Expose is simply too slow to use, i cannot find everything with a single click.

    WHAT? THIS IS EXACTLY WHAT EXPOSE DOES -- SHOW/HIDE EVERYTHING WITH ONE CLICK.

    F7: Find all windows for one app.
    F8: Find all non-hidden, non minimized windows.
    F9: Show desktop (Pushes all windows off to the sides).

    One click for each. Hold down the button and you get mouse over selection, otherwise it's mouse click selection. You can remap the keys as is convenient (I map Expose All to the middle mouse button). And what's best -- all of your windows continue to update while Exposed. Damn useful. It means if I have Safari open full screen, and want to change the mp3 playing in iTunes in full screen, i press and hold the middle mouse button, mouse over itunes, let the button go. To get back to Safari, I do the same. This to me is the best aspects of click-to-highlight, mouse-over to highlight, virtual desktops and single desktops while utilizing existing hardware to perform new functionality.

    What you're talking about -- granularly assigning arbitrary windows to a particular desktop set across applications -- is something new that expose can't do, this I'll grant you. It's also a very specific use. Most people's jobs are task oriented, not server oriented. Therefore, it makes sense for the desktop to be task oriented, to work with EVERYTHING you're doing, rather than spaces of work. And it also makes sense that a third party application which offers you a solution for your needs would be valuable.

    But the default? I dunno about that. Most people don't want two desktops, let alone an arbitrary number of them. I *can* say that if Apple were to offer us a fourth programmable Expose button, one that would group arbitrary application windows visibility and placement, I'd definitely toy with it. But I imagine most of what I'd use that functionality for is already covered by the dashboard.

    --
    Hey freaks: now you're ju
  8. Re:Good (not bad) article (interview) by Twirlip+of+the+Mists · · Score: 3, Informative

    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 write in my journal
  9. Re:Why it wasn't put in already by Jeremy+Erwin · · Score: 4, Informative

    Expose is somewhat slower if you don't have a Quartz Extreme Card. Classic apps tend to slow it down even further. On my faster mac, Quartz Extreme eliminates the annoying milliseconds of latency.

    It's rather useful, I think, when switching between mail, a web browser, and a few finder windows. It's less useful when one is trying to use multiple xterms, for say, writing a fink package. (one for constructing patches, one for writing the .info file, and one for monitoring compilations...)

  10. Re:Steals GPL source??? by nacturation · · Score: 3, Informative

    Its a shame I can't mod the parent +1 astroturf...how about:

    "Interestingly CodeTek uses this exact same bit of code for their latest VirtualDesktop program."

    Seems pretty clear to me.


    Perhaps you should read it again, in context this time:

    "To allow DM to modify windows I had to use a little bit of code by Jon Rentzsch which allowed me to stick a bit of DM inside the Dock process (see later question). This bit of code communicates with the main app and performs much of the magic you see.

    Interestingly CodeTek uses this exact same bit of code for their latest VirtualDesktop program."


    The "exact same bit of code" referenced is obviously the Jon Rentzsch code, which you can find here. As you'll note from the site, it's released under a BSD license which can be incorporated into closed source projects. Since the article summary referenced "who steals GPL code" this doesn't even apply, now does it?

    How's that astroturf feeling?

    --
    Want to improve your Karma? Instead of "Post Anonymously", try the "Post Humously" option.
  11. Re:Secret APIs? by aristotle-dude · · Score: 3, Informative
    Um no, considering Apple a history of releasing those Apis once they are mature enough to use. A recent example of this was Core Image and Core video which they had used in motion.

    I believe these API's in this case are secret because they are still in flux and not ready to be used. They probably still have bugs and memory leaks in them.

    --
    Jesus was a compassionate social conservative who called individuals to sin no more.
  12. Re:Good (not bad) article (interview) by zsau · · Score: 3, Informative
    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.))
    --
    Look out!