rss

DBus-Explorer 0.5

3

Category : C#, DBus Explorer, English, Linux, Programming

Time for another release of DBus-Explorer, your favorite D-Bus API viewer.

Summary

D-Bus Explorer is a GTK+ application written in C# which use NDesk’s managed D-Bus library to display the API of D-Bus services. In summary, it’s a clone of dbus-viewer with a GTK+ interface.

New in this release

  • UI cleanup. Interface generation is now only available when right clicking interface item and allow to select items individually :

    2009-03-23-092546_647x631_scrot

  • Method invoking for simple methods (i.e. only when base type are involved in the method prototype) :

    2009-03-23-092916_404x207_scrot

  • Property support is back :

    2009-03-23-093007_802x625_scrot

  • Yet another parser rewrite. This time it’s definitely cool.

Download

Tarball : http://www.ndesk.org/archive/dbus-explorer/dbus-explorer-0.5.tar.gz

Future

For my usage, D-Bus Explorer is starting to get rather feature complete. Therefore, if you have any idea of a cool feature that could be implemented don’t hesitate to drop your thought in the comments.

DBus Explorer 0.4 Christmas release

4

Category : C#, DBus Explorer, English, Mono, Programming

Finally after months of postponing the 0.4 release of D-Bus Explorer I managed to get it out as a Christmas/New Year present :-) . For the impatient you will find download link at the usual place.

For those who doesn’t know what D-Bus Explorer is, it’s a little tool I wrote up a long time ago which allows to browse D-Bus bus services and services’ API. It’s similar in concept to dbus-viewer or DFeet with extra feature which make it sweet when you work with C# and Managed D-Bus.

For instance when you want to know the signature of a method/event/property it’s both shown with D-Bus own syntax and C# syntax. In this release this mechanism is extensible to other language though only C# is provided at the moment.

2008-12-27-215012_802x625_shot1

Coming to this release is also a C# generator which will create the necessary interface definition for use with Managed D-Bus. Simply right-click on the path / interface you want to use in your program and save it somewhere. Again this is extensible to other language.

2008-12-27-215639_802x625_shot3

In other news, the interface is now fully tabbed to let you browse different API at the same time.

2008-12-28-174241_802x625_shot4

Happy D-Bus hacking !

Bulk of changes for DBus-Explorer

Category : C#, DBus Explorer, English, Linux, Programming

Long time I hadn’t hacked on DBus-Explorer but as a exam stress killer I brought together all the piece I had already randomly coded. This resulted in a number of appreciable improvements that were long overdue like :

Tabbed browsing :

Good if you get lost like me with multiple DBus-Explorer windows (Ctrl+T to open and tab button to close, who say Firefox ?).

Multiple (possible) languages :



Just write a definition file like the one in the screenshot and drop it in ~/.dbus-explorer/langs, « possible » because I was too lazy to write another language than C# :P .

Stubs autogeneration :



For use with library like Managed D-Bus, yay \o/ .

There has also been work on the UI and other bugfixes but nothing major. All in one I think DBus-Explorer kept its KISS nature together with the few extra features it was missing. Now I just need to add dialogs for managing language definitions and stub generators in a friendly way.

Hot stuff to be grabbed on git at the usual place.

Good and bad things

Category : Capharnaüm, DBus Explorer, English, General, Life

The good :

  • I’m going to Prologin final ! (list here).
  • PH01′s teacher is an infinite source of fun (and he works on some computer-related researches, great).
  • Did the pole commission for Lolut this week. Productive meeting. Some good things already done.
  • General refactoring for DBus-Explorer, UI should be much better too. Not yet in public repository.

The bad :

  • Got a bad road contravention, feeling bitter.
  • General sentimental disillusion (or, how to have a bad timing during a party). It sucks…

General fact :

Pingback for Antti’s post. Usually, much of my hacking time is spent at home. I like the familiar sight of my badly tided desk and posters disseminated on the walls. Working in an animated place (like the MDE at UTBM) is also a good way to get things done with simple tasks (i.e. no design) for me. However, a constant variable is the absolute need for music in the background (see my last.fm page to get an idea).

ParserNg

Category : C#, DBus Explorer, Mono

First of all, happy new year everyone.

ParserNg is the name of the new parser that I committed today in git. It’s a somehow more flexible redesign of the precedent parser which allow to parse D-Bus type expressions to other things than just string and will, thus, facilitate the coding of, both, the code autogenerator and the langage-agnostic prototype viewer, the two main features I want to add for next release.

ParserNg uses a forward-only approach with IEnumerator instead of the old List.GetRange way resulting in no temporary List creation. Moreover the parser now display correctly complicated expressions like the ones in Telepathy (e.g : a{u(ua{sa{sv}})}Dictionary<UInt32, struct { UInt32; Dictionary<String, Dictionary>; }> ), expressions that were borked with the precedent code.

The actual processing is also deferred to an external class via a sort-of Visitor pattern allowing easier customization of the produced result (though for the moment I just rewrote a CSharpVisitor class to behave like the ancient parser).

Code available in latest git pull.

D-Bus Explorer 0.3

4

Category : C#, DBus Explorer, Mono

Time for a new (small) release of D-Bus Explorer which is now 0.3

New in this release :

  • The treeview now supports search & sorting
  • Added checks to prevent some exceptions both from Gtk# and D-Bus
  • Added the corresponding dialogs to nicely report these errors
  • Miscellaneous refractoring and bug fixing

Downloads :

Tarball : http://www.ndesk.org/archive/dbus-explorer/dbus-explorer-0.3.tar.gz

Debian package : http://www.ndesk.org/archive/dbus-explorer/dbus-explorer_0.3-1_all.deb
(Credits goes to slomo for helping me to make a correct package ;-) ).

D-Bus Explorer 0.2

Category : C#, DBus Explorer, Mono

I decided to make a 0.2 release of D-Bus Explorer which contains, among others improvements, the fix for the speed caveat.

D-Bus Explorer is a GTK+ application written in C# which use NDesk’s managed D-Bus library to display the API of D-Bus services.

Here is the ChangeLog :

  • Fixed the speed caveat with the XML parsing.
  • Use XmlTextReader for fast and memory-efficient parsing.
  • Added support for D-Bus property and signal.
  • Reorganized the type parser to behave faster and more accurately.
  • Added --dump command-line option to write to the console the Introspection XML data.
  • Other miscellaneous bug fixes and source reorganization.

Here is the link to the tarball : http://www.ndesk.org/archive/dbus-explorer/dbus-explorer-0.2.tar.gz.

This release doesn’t ship anymore with Managed D-Bus so you have to install NDesk.DBus >=v0.6 and NDesk.DBus.GLib >=v0.4 either via your packages or manually (be careful to have a recent version as prior Managed D-Bus releases are not working well with D-Bus Explorer).

Next version will bring some appreciable things like language-customizable prototypes (instead of only the current C#-ish representation) or the possibility to search/sort the displayed API.

Enjoy !

Story of a strange bug

Category : C#, DBus Explorer, Mono

Yesterday I just squashed the « bug » which was causing DBus Explorer to be so slow. Alp had said that it was probably something simple and indeed it was. But first a little background : D-Bus Explorer’s first development took place when I was at school and thus without direct access to Internet. At that time the XML parsing was very quick though I used the worst possible way, XmlDocument + XPath, which was both resource hungry and overkill for a simple reading. Problems surfaced when I came back home with direct access to the net : suddenly and with no apparent reason D-Bus Explorer became very slow.

At first I suspected it was the way I was doing the XML parsing, as D-Bus explorer introspect (= parse XML data) recursively across D-Bus paths, thus loading ~5 different XML documents for a bus. So I ported the code to first use XPathDocument+XPathNavigator and then, as there were no improvements, to XmlTextReader which is the fastest way to read XML data. Still the problem was persisting.

So I decided to take the problem at the root and put Stopwatch at every possible place. It resulted that it was the first call to ReadToFollowing that was taking approximately 3 seconds. Then, because of the speed difference between here and at my school, I came to a realization : is this stupid parser trying to download the DTD file from Freedesktop each time I create a new XmlTextReader ? Turned out that it was exactly that. Each time I loaded a new XML document, XmlTextReader issued a WebRequest for the DTD (even though DTD validation was disabled) which is of course what slowed up everything. Setting the XmlResolver property of XmlTextReader to null solved the speed caveat and now the parsing of a normal service like Banshee is instantaneous (changement available in Git btw ;) ).

D-Bus Explorer get a home

Category : C#, DBus Explorer, Mono

Thanks to Alp, D-Bus Explorer is now hosted on NDesk.

The wiki page of the project is here : http://www.ndesk.org/DBusExplorer
You can track the development in the Git repository : http://git.ndesk.org/?p=dbus-explorer;a=summary

D-Bus Explorer First (alpha) Release !

Category : C#, DBus Explorer, Mono

WTF ?

D-Bus Explorer is a Gtk# application written in C# which use Alp’s DBusSharp library to display the API of DBus services. For the big picture it’s a clone of dbus-viewer but with a Gtk interface.

A little screenie :

d-bus_explorer.png

Features and what is missing

Features :

  • Viewing of a D-Bus service’s methods
  • Selectable bus
  • Description of the method’s prototype with, both, a standard and a C#-ish syntax
  • A (what I hope to be) clean interface
  • Gtk# GUI

What is missing/buggy :

  • For the moment the parsing is still pretty slow so don’t get impatient for big services like Hal
  • Apparently some services aren’t showing up (bad introspection data ?)
  • Only methods are displayed in this release but signals and properties will be added soon
  • No way to call a method and see the result, this will be added later too

In short don’t expect too much from this release apart from a nice viewing of your DBus services API ;) .

Download

Grab the tarball here : http://netherilshade.free.fr/mono/dbusexplorer-0.1.tar.gz

Conclusion

ATM there is no website or such, so if you have a suggestion, a bug report or anything else catch me on #mono@GimpNET (look for Garuma).

Finally I would like to thanks Alp for all his suggestions and for writing a so cute D-Bus library ;) .