• Explore Vox
  • Culture
  • Entertainment
  • Life
  • Music
  • News & Politics
  • Technology
  • Join Vox
  • Take a Tour
  • Already a Member? Sign in
∞

∞. the (new) voice of.

  • ∞’s Blog
  • Profile
  • Neighbors
  • Photos
  • More 
    • Audio
    • Videos
    • Books
    • Links
    • Collections

Thought.

  • Sep 30, 2006
  • Post a comment

Everybody's a geek about something.

It's just that, "normal" people don't care. Everybody else lives for it.

... well, the same way addicts live for their drugs.

Post a comment Tags: thought, deep, profound, not really profound

Happily enjoying being idle.

  • Sep 27, 2006
  • Post a comment

Doing nothing and being happy for it. :)

And this time I didn't procrastinate or forget anything. How cool is that? All relax and no worries. :)

Post a comment Tags: rant, happy, relax

Afloat Sneak Peek: 2

  • Sep 26, 2006
  • Post a comment

The slimmed-down Adjust Effects pane:

Afloat Slimmed-down Pane from development
Afloat Slimmed-down Pane from development

The difference from the previous one? This one's smaller, nicer, actually works (via bindings).

Post a comment Tags: development, afloat, sneak peek

Mail.

  • Sep 26, 2006
  • Post a comment

It's been seen,

and it's been liked, too.
I'm busy repressing giggles.

Post a comment Tags: poem, afloat

Afloat tech: Cocoa and Carbon, or, "why doesn't Afloat work with EyeTV?"

  • Sep 24, 2006
  • Post a comment

Since my Developer Docs have gone fubar, and I sincerely hope the September '06 ADC update will fix this, I have quite a bit of time before I can start again working for Afloat as the docs get redownloaded from Developer Connection (sigh). So I'm going to blog about Afloat's internal structure.
Afloat is clearly divided in two parts: a preference pane and an injector. The pane is the one the user interacts with; it manages the preferences (which currently include only "is Afloat on or off?"), and turns the injector on or off. The injector, instead, adds ("injects") Afloat's code into any and all apps.
So, to get to the titular question, I'm going to tell you exactly how the injector works. The current injector is an InputManager, a kind of system-wide plug-in that should be used to give the user tools to write in hard-to-write languages; for example, OS X supplies an InputManager that gives Japanese users a way to easily write kanji, hiragana and katakana (different kinds of Japanese characters), or another one that shows a keyboard onscreen (the Keyboard Visor). Usually, InputManagers live in the keyboard language selector menu (which you can enable in the International System Preferences pane).
However, sneaky programs like Afloat can exploit a property of InputManager that makes them very interesting: IMs are loaded in every application that requests advanced text services. With "in", I mean inside the app's address space — which means we can modify the application as it runs, more or less at will. Afloat, when enabled, simply tells the system to load the injector in each application as it would with a regular InputManager (by placing a symlink -- a kind of alias -- in your Library's InputManagers folder; previously, I was simply using SIMBL, that exploits the same mechanism). Once the system loads Afloat inside the application, it injects itself in key places to intercept any interesting operations and adds its menu items to the Window menu.

So what?
The problem in supporting Carbon has two facets. The first and more obvious one is that InputManagers are written using Cocoa, and they're only loaded by Cocoa apps and (it seems) by Carbon apps that use advanced text services (of which there aren't many); this means that Afloat simply never gets to add its code to many popular Carbon apps. Secondarily, the internals of a Carbon app are similar in conceptual structure, but completely different in execution, than the internals of a Cocoa app — events "flow" in different places and are responded to in a fashion that Afloat currently does not know how to hijack (for the techheads out there, this translates to: I use method swizzling on NSApplication and NSWindow); also, windows created by Carbon can't be seen easily by Cocoa code, and vice versa. Since Afloat is designed to work with Cocoa-created windows, and I don't want to duplicate code (that is, I want things to work the same on all kinds of applications without having to recreate Afloat features twice), things are veeery messy on that front. There are techniques that can be used by Afloat to let my Cocoa-using code work on Carbon applications, but unfortunately method swizzling, one of the main tricks I use, is Cocoa-only: it does not deviate the flow of events for Carbon apps, which kills a few things (like for example window moving with command-control down).

Long story short: I'll be working on it, but it'll require a number of changes that I'm not sure I'll be able to make easily. So, for now, I'm simply cleaning things up; but know that I'm working for it. After all, I also want to buy an EyeTV — the siren of digital TV recording has lured me too :p.

Post a comment Tags: technical, afloat

A moment of fatigue.

  • Sep 23, 2006
  • Post a comment

Muscles hurt everywhere —

Lights dance in front of my eyes.
I do not want to sleep.

(A morning follow-up:

I was right; I had nightmares
of courses, Latin, and Mike Bongiorno
There were two of him, in fact.)

Post a comment Tags: poetry, rant

Et tu, Nomura.

  • Sep 22, 2006
  • Post a comment

Should I fork out €660 for a PS3 and a single game? That slow-motion trainwreck of a console?

Damn you Nomura. You condemned me to a sweet, sweet, bittersweet life of Kingdom Hearts. And we all know it won't be the Wii that gets that sublime War of the Keyblade (video + spoiler link alert), will it?
(Will it?)

Post a comment Tags: rant, playstation, kingdom hearts

The difference.

  • Sep 22, 2006
  • Post a comment

When the sun is hot

The heart beats and you can hear it
Time to get outside.

Post a comment Tags: poetry, simple and clean

∞ says: Region coding sucks.

  • Sep 20, 2006
  • Post a comment

Item: The TV show part of the iTunes Store still does not exist in Italian or anywhere in the EU, several months, three iTunes versions and two store iterations later.
Item: All free video content offered by big media companies sniffs my IP. ABC's ad-supported Lost? Yahoo TV's preview of NBC's Heroes? Showtime's Dexter? All of them are available "in the US only" – even those that should not have a licensing agreement, not having been aired yet.

Why?

PS: The absurd thing is that you end up paying more for original-language versions of TV shows and movies — that, of course, require less work on the distributor's part (no dubbing, no adaptation). Gah!

Post a comment Tags: tv, rants, infinite says

Afloat: Teasing.

  • Sep 20, 2006
  • Post a comment

A few niceties:

  • Menu items in the Window menu are kept at a bare minimum.
  • Overlays. (See below.)
  • A nice adjustment panel.
AfloatAdjustmentPanel
AfloatAdjustmentPanel
More to come (but no sooner than tomorrow :p)

Post a comment Tags: development, afloat, tease

Read more from ∞ »

∞

About Me

∞
Italy
View my profile
AIM:
evthethinker

Neighborhood

  • Team Vox
    Team Vox Updated: Jun 17, 2009

Explore friends, family, friends & family, or entire neighborhood.

View my neighbors

Tags

  • afloat
  • blue
  • cloud
  • deep
  • development
  • happy
  • infinite
  • infinite labs logo
  • infinite says
  • kingdom hearts
  • mess
  • millenomi
  • playstation
  • poetry
  • rant
  • relax
  • simple and clean
  • sneak peek
  • tease
  • thought

View my tags

Archives

  • September 2006 (11)
  • 2006 (11)

Subscribe

  • Subscribe to a feed of these posts
  • Powered by Vox
  • Theme designed by Tiffany Chow
  • Use this theme
  • Home
  • Explore
  • Tour Vox
  • Start a Vox Blog
Already a member? Sign in

Back to top

View Vox in your language: English | Español | Français | 日本語

Brought to you by Six Apart, creators of Movable Type, Vox and TypePad.
Six Apart Services: Blogs | Free Blogs | Content Management | Advertising

Vox © 2003-2008 Six Apart, Ltd. All Rights Reserved.
Help | Learn More | Terms of Service | Privacy Policy | Copyright | Advertise | Get a Free Vox Blog

Loading…

Adding this item will make it viewable to everyone who has access to the group.

Adding this post, and any items in it, will make it viewable to everyone who has access to the group.

Create a link to a person
Search all of Vox
Your Neighborhood
People on Vox

(Select up to five users maximum)

Vox Login

You've been logged out, please sign in to Vox with your email and password to complete this action.

Email:
Password:
 
Embed a Widget
Widget Title: This is optional
Widget Code: Insert outside code here to share media, slideshows, etc. Get more info
OK Cancel

We allow most HTML/CSS, <object> and <embed> code

Processing...
Processing
Message
Confirm
Error
Remove this member