--- Log opened Tue Dec 13 15:41:16 2005
15:41 -!- robtaylor [n=rob@nat5.sesnet.co.uk] has joined #dogtail
15:41 -!- Irssi: #dogtail: Total of 8 nicks [0 ops, 0 halfops, 0 voices, 8 normal]
15:41 -!- Irssi: Join to #dogtail was synced in 1 secs
15:41 -!- Irssi: #dogtail: Total of 8 nicks [0 ops, 0 halfops, 0 voices, 8 normal]
15:43 < robtaylor> tko: hey what are you doing here? :)
15:44 < robtaylor> dhm_away: 'lo
15:44 < tko> idling
15:45 < tko> I came to ask about how to run python+dogtail on desktop and the necessary at bits on 770, but no one apparently has tried it (it should be a matter of configuring ORBit2 to work over TCP/IP but...)
15:45 < tko> and as usual, I forgot to go away :)
15:45 < robtaylor> uurk, soudsn difficult
15:45 < robtaylor> why not just run it on the 770?
15:46 < robtaylor> of course none of the current widgets have ATK iirc, so its a bit, umm acacdemic atm..
15:46 < robtaylor> ;)
15:46 < tko> robtaylor, run python + bonobo + orbit on 770? what are you smoking, I want some :-P
15:47 < robtaylor> tko: does dogtail require bonobo and orbit?!
15:47 < robtaylor> eek
15:47 < tko> adding atk support wouldn't be that difficult
15:47 < robtaylor> tko: no, but someone needs to do it...
15:47 < zack> robtaylor: it requires at-spi, which at the moment needs bonobo, yeah
15:48 < tko> robtaylor, yes, well, we're doing it *g*
15:48 < robtaylor> zack: argh
15:48 < robtaylor> tko: coool :)
15:48 < tko> but trying to squeeze python+dogtail there is.. err.. academic :)
15:48 < robtaylor> tko: hmm, difficult
15:49 < robtaylor> tko: which dept are you in btw?
15:49 < robtaylor> tko: python runs pretty well, if there wasnt a bonobo dep, i think it'd be fine
15:49 < zack> robtaylor: yeah, at-spi was designed to work with^W^Wneed CORBA, not that i've heard of anyone using at's over a network...
15:49 < tko> robtaylor, desktop, same as onne
15:49 < robtaylor> tko: we demoed the telepathy stuff just using python
15:50 * zack wasn't aware maemo didn't use atk! ;)
15:51 < zack> tko: any other issues besides the lack of atk/bonobo?
15:51 < tko> zack, we don't support left handed people that well, how well do you think we support the blind? :)
15:51 < zack> tko: haha
15:51 * zack imagines a 770 user with a braille monitor
15:51 < robtaylor> i can imagine one with a screen reader, mind you
15:51 < zack> well, a screen reader could work
15:52 < zack> but what kind of input would you need to replace the touchscreen? scary.
15:52 < tko> zack, bonobo isn't an issue as such, yes you can run dogtail on the device (I suppose) but the test framework would eat hogs of memory and limit our options
15:52 < zack> tko: would using huge RSMMC cards just for testing purposes help?
15:52 < robtaylor> well anyway, the reason i came in that we're planning soemthing similar to dogtail for frobbling dbus objects
15:53 < tko> and atk enables you to test only so much (completely lacks testing, for example, stylus drags)
15:53 < robtaylor> and i was wondering if it made sense to do this as a component of dogtail or not
15:53 < tko> but for application testing it's probably ok
15:53 < tko> zack, swap on mmc.. well, maybe :)
15:53 < zack> tko: yeah, well at-spi is more than just atk. dogtail has working raw input.
15:53 < zack> robtaylor: hmm, interesting - but i'm not quite sure i understand
15:54 < robtaylor> zack: heh, i'm not sure *i8 understand either, just trying out ideas atm..
15:54 < robtaylor> zack: what dont you understand?
15:55 < zack> robtaylor: i'm just trying to figure out what you're planning - a GUI test tool using dbus instead of at-spi, or...?
15:55 < robtaylor> zack: ooh no
15:55 < tko> I think there was some at-spi implementation using dbus which would be great for us... =)
15:55 < zack> tko: that'd be nice
15:55 < robtaylor> tko: hmm, well maybe we can think about that
15:55 < robtaylor> i have some resources
15:56 < zack> as long as you give me the same wonky api, it'll work
15:56 < zack> a better api would be... better, but then we'd have compatibility issues, of course
15:56 < robtaylor> zack: no, this is just calling dbus objects, or exposing 'fake' objects and responding to signals ets
15:57 < zack> robtaylor: oh ok, that was my second guess :)
15:57 < robtaylor> zack: heh
15:57 < tko> hmm.. using dbus gobject wrapper to wrap AtkObjects ?
15:57 < dhm_away> hi robtaylor!
15:57 < robtaylor> basically we're gonna do it, and it just needs a home..
15:57 < robtaylor> dhm_away: hey :)
15:57 -!- dhm_away is now known as dhm
15:58 < robtaylor> dhm_away: i sold dogtail to the N testing guys a couple of months ago..
15:58 < zack> robtaylor: N? Novell?
15:58 < robtaylor> dhm: think you can make it run without bonobo? ;)
15:58 < robtaylor> zack: no, the other one ...
15:58 < dhm> robtaylor: I think it can be made to work without bonobo
15:58 < dhm> nokia?
15:59 < robtaylor> yep
15:59 < zack> robtaylor: Nokia? then they need to use atk on the 770, no?
15:59 < robtaylor> zack: indeed, hence mine and tko's discussion earlier ..
15:59 < dhm> hi tko!
15:59 < zack> dhm: sure, it can be done, but someone would have to totally gut at-spi
15:59 * dhm is not a fan of bonobo
15:59 < robtaylor> is that the only way?
15:59 < zack> well
15:59 < dhm> robtaylor: that would probably be the best way
16:00 < zack> i guess maybe reimplement it
16:00 < tko> dhm, oh, we hate bonobo.. :)
16:00 < robtaylor> tko: if we managed that, do you think it would be tractable for testing?
16:00 * dhm contemplates founding #bonobo-haters
16:00 < robtaylor> tko: or do you think having this running on the device would squew results too much?
16:00 < robtaylor> dhm: go for it ;)
16:00 < zack> my understanding of bonobo is limited, but i can at least say that getting rid of orbit would mean a lot of work.
16:01 < dhm> robtaylor: would it basically be a port to dbus rather than bonobo?
16:01 < robtaylor> dhm: *shrug* just asking for theoretical purposes
16:02 < zack> there was some talk, long ago, about removing at-spi's dependency on corba in general
16:02 * zack doesn't know where that went
16:02 * dhm decides to actually _read_ the scrollback to gigure out what on earth you're trying to do
16:02 < tko> robtaylor, well, once we get atk support we could do a lot of testing on the desktop already. replacing bonobo/orbit with dbus would let us do more on the target device as well
16:02 < dhm> figure outm even
16:02 < robtaylor> tko: thats a good point, we can do a lot of testing just with xephyr
16:03 < zack> tko: yeah? what would moving to dbus give you besides getting rid of bonobo?
16:03 < robtaylor> dhm: after you've read scollback, some feedback on my origional q would be interesting :)
16:04 < robtaylor> zack: well the device is already running dbus
16:04 < zack> robtaylor: yes, but i'm wondering how that lets you do more
16:04 < robtaylor> so, i know nothing about at-spi..does this reside in every app?
16:05 < tko> zack, orbit+bonobo are nothing but overhead, and if you read any of the reviews you'd know there's not that much memory to spare
16:05 < robtaylor> zack: oh, its just a matter of limited resources
16:05 < zack> robtaylor: basically, gtk uses atk internally to export information and procedure calls to at-spi
16:05 < dhm> robtaylor: basically it's an IPC mechanism
16:06 < zack> tko: yeah, i understand the memory issue
16:06 < dhm> the applications expose the UI metadata in the form of a tree of objects that support interfaces
16:06 < zack> add more memory! :)
16:06 < dhm> which currently is published using a CORBA server...
16:06 < robtaylor> righty
16:06 < dhm> the AT-SPI C interface is simply a C wrapper around a load of CORBA client calls
16:06 < robtaylor> dhm: my initial guess was more or less right then ;)
16:07 < dhm> so a plan would be:
16:07 < robtaylor> so this defines the ipc that dogtail uses to talk to the app and control the ui.
16:07 < zack> robtaylor: yes
16:07 * dhm believes that in theory if you port two underlying wrapper layers from CORBA to DBus it ought to work...
16:08 < dhm> i.e. the wrapper layer in ATK that toolkits uses to expose themselves (as it were)
16:08 < robtaylor> modulo nasty bitty bits, of course ;)
16:08 < robtaylor> right
16:08 < robtaylor> dhm: but my origional question wasn't about this ;)
16:08 < dhm> and the wrapper layer in AT-SPI which is used by consumers of that metadata (screenreaders, andf the like, plus dogtail etc)
16:09 < robtaylor> dhm: my orgional question was would a module to do dogtail like frobbling of dbus objects be a welcome addition?
16:09 < dhm> robtaylor: OK, please help me. What's the original question?
16:09 < zack> dhm: sounds right
16:09 < dhm> ah
16:09 < robtaylor> (modulo spelling mistakes ;)
16:09 * dhm regrets that his telepathy skills are still under development :-P
16:09 < zack> robtaylor: i'm thinking about how that'd work. what's an example use case?
16:10 < robtaylor> dhm: heh ;)
16:10 < zack> robtaylor: bah, your *original* question was about dependencies :)
16:11 < robtaylor> zack: well, say, for example... you have an gui app thats controlled by dbus signals (e.g. notifications) and you want to script testing this
16:11 < zack> oh!
16:11 < zack> so f.e. for testing NetworkManager
16:12 < dhm> hmmm... my gut reaction is "use the python dbus bindings"
16:12 < zack> faking network events
16:12 < zack> (er, nm-applet)
16:12 < dhm> oh
16:13 < dhm> robtaylor: by "frobbling" do you mean (i) inspecting (ii) simulating ?
16:13 < zack> he wants to create fake dbus objects
16:13 < robtaylor> dhm: both, and emulating
16:13 < dhm> (there's a sentence I didn't think I'd be typing when I got up this morning)
16:13 < robtaylor> maybe for emulating, it makes more sense to just go straight to the bindings
16:14 < zack> robtaylor: well, how much of an abstraction layer do you need on top of the dbus bindings?
16:14 < robtaylor> but we need to build a suitably simple way for the simple testing people to do the script writing...
16:14 < robtaylor> probably not that big
16:14 < dhm> ah
16:15 < dhm> maybe that's a valid use case then
16:15 < zack> but it's safe to say you'll need one? (i don't know the dbus api)
16:15 < robtaylor> zack: yep, you need a little something, thats for sure
16:16 < zack> so it sounds like a certain amount of tests using dogtail might want to be able to fake dbus objects, as in the NM example
16:16 < zack> but i'm trying to think of a sane way to integrate it...
16:16 < robtaylor> cool, thats why i came to ask ;)
16:17 < zack> it probably doesn't help that dbus is a giant black box to me at the moment :)
16:17 < robtaylor> yep, at the moment the python bindings are very event oriented, this probably isnt great for those script writers..
16:17 < dhm> robtaylor: I just spoke briefly to J5
16:17 < robtaylor> dhm: heh
16:17 < zack> do the python bindings have docs online?
16:18 * dhm isn't that familiar with the dbus API or bindings atm
16:18 < dhm> robtaylor: one idea I had is that DBus supports introspection of interfaces
16:18 * zack is googling
16:18 * robtaylor is pretty familiar
16:18 < robtaylor> yep
16:18 < dhm> robtaylor: so you could do an XML dump of an interface...
16:18 < robtaylor> yep
16:19 < dhm> do the bindings allow you to use this to dynamically generate a python class?
16:19 < robtaylor> dhm: not at the moment, no
16:19 < dhm> is it the sort of thing for which a patch could be written and would be accepted into dbus?
16:20 < robtaylor> well, that i'm not so sure about
16:21 < robtaylor> it would kinda confuse the python bindings i think
16:21 < dhm> am i gith in thinking that currently a scriptwriter already has the ability to emulate a real DBus service, but that it's really longwinded ATM?
16:21 < dhm> gith = right
16:21 < robtaylor> i guessed ;)
16:21 < dhm> (dunno how that happened)
16:21 < zack> wow :)
16:21 < dhm> Microsoft "Natural" Keyboard
16:22 < robtaylor> well.. a python coder could pretty easily do it
16:22 < dhm> (about the only MS product I sill use)
16:22 < dhm> sill=still gah.....
16:22 * robtaylor always has days like that...
16:23 < dhm> robtaylor: would it (i) be a pain for an experienced python coder, and/or (ii) far too hard for a novice python coder?
16:23 < robtaylor> (ii)
16:23 < dhm> but not (i)?
16:23 < robtaylor> no, its pretty nice for an experience python coder, i think
16:24 < robtaylor> *d
16:24 < dhm> gah, it's contagious!
16:25 < zack> is it something that could be abstracted out to be easy enough, and still general enough, that said novice coder could emulate whatever dbus service he needs?
16:26 < robtaylor> zack: not sure i understand what you're asking :/
16:26 < robtaylor> dhm: http://cvs.freedesktop.org/dbus/dbus/test/python/test-client.py?rev=1.18&view=markup for example client code
16:29 < robtaylor> dhm: i'd really prefer a script writer to do soemthing more like "a = interface.get("/foo/Bar", "foo.Bar.Moo"); a.Badger(); waitforsignal(a, "Badgered"); "
16:29 < robtaylor> etc
16:29 < robtaylor> and was thinking that kinda fits in with the way dogtail works ;)
16:30 * dhm quite likes the idea of using introspection to dump the XML, and then having an Emulator class that takes this XML... simple for a novice to understand?
16:31 < robtaylor> maybe, maybe.i already have the code to dump xml from objects from arbitary object/interface lists
16:31 < dhm> that "methods" thing looks hard to explain to a newbie
16:31 < zack> dhm: yeah, that's not a bad idea
16:31 < robtaylor> (i use it to pull xml from python, then i generate gobjects from this... ;)
16:31 < dhm> so you'd have something like:
16:31 < dhm> class Emulator:
16:31 < zack> robtaylor: yeah, i was just asking in a confusing way if what you just typed was possible :)
16:31 < dhm> def __init__(self, xmlFile):
16:31 < dhm> etc
16:32 < robtaylor> oh, i gotta go pick up my gf from the station, bbiab.. i'll read scrollback :)
16:32 < dhm> and then e = EMulator("dump-of-NetworkManager.xml")
16:32 < dhm> dir (e) would show you the methods you can overrride
16:32 < dhm> and have sane defaults for each one
16:32 < zack> dhm: how do we know what sane defaults would be?
16:33 < dhm> though that's very much like a IDL/CORBA stubs approach
16:33 -!- s1aden [i=paul@starsky.19inch.net] has joined #dogtail