Good news

November 28, 2006

Hi all,

After quite some time of hibernation, i wake up the development process of Gnome Scan. Gnome Scan hit the 100th revision ! This revision is the first contributed patch Olaf Leidinger. It added –disable-gnome option for xfce people and other. I’m also very pleased to see news Swedish translation and nearby Dutch translation

Gnome Scan seems to spread more and more. How surprised where i to see that Foresight Linux 0.9.4 include Gnome Scan/Flegita ! Gnome Scan 0.3.1 is now in feisty/universe. I even saw unofficial ebuild. A bunch of people talk about Gnome Scan all around the web in French and German (some consider it as a good replacement of xsane, i find Gnome Scan in a too early stage to fully replace xsane).

Emmanuel Fleury, associate professor at Bordeau-I university, submitted Gnome-OCR project to its student. The project will start in January. The idea is to link tesseract-OCR and Gnome Scan. I wish this project will end up with an Abiword plugin. Even if i mainly work on flegita, the purpose of Gnome Scan is not a standalone app, but flegita is the first step. As long as Gnome Scan has no stable API, i don’t want to provide too many unmanagable plugins. I don’t want to end up with 7.0.0 libtool version for gnome-scan 1.0 :).

I guess that 0.3.2 will arrive as Chrismas gift to the FOSS world :). It will include nice features that may make Gnome Scan a reasonable replacement of xsane for basic end user.

So yes, Gnome Scan is still alive ! And very active !

Étienne.

Using Rosetta for translation

November 15, 2006

Hi all,

I choose to upload a .pot for gnomescan launchpad product. So everybody can easily add or update translation of gnomescan/flegita :). Please translation according to Gnome Schedule as possible.

See https://launchpad.net/products/gnomescan/trunk/+pots/gnomescan .

Thanks to translators.

Hi all,

I’m very happy to announce you the availibility of Gnome Scan 0.3.1. This version is what should have been Gnome Scan 0.3. A lot of bugs has been fixed. Translations are uptodate in french, deutsch and catalan. The data receiving process has been review in order to support Grey, RGB and three-pass acquisition (e.g. all red then all blue then all green data). I intend to support multiple depth in the future. Note that the final result will always be a GdkPixbuf with its limitations : 8bit per sample, RGB only, etc. But choosing lower depth or different colorspace allow to fasten acquisition, and more.

This version include a filled NEWS file for maintainers. Sadly, svn log wasn’t able to output all changelog, need to investigate more in order to get a good ChangeLog file.

Hi all,

I’m releasing 0.3 release of Gnome Scan. This release add a major feature in GnomeScan and Flegita : Mass acquisition. Now GnomeScan implement acquisition as a set of image. This mean that user/application has to manually stop the acquisition process. The acquisition process take advantage of ADF. In flegita, this is shown by the buttons “Stop” or “Next”. If the output format is PDF, flegita write all image in the same file, one page per image. For other image format, the behavior keep being the same.

The acquisition dialog has been a lot review and is now far more HIG compliant, text are more useful. I also fix a lot of bug, including the crazy value of the progress bar. I updated translation and documentation. I weren’t able to contact the deutsch translator, so only the french translation is updated.

Download at usual download page. I update screenshots and documentation at GnomeScan homepage.

Étienne.

Gnome Scan 0.2.4

October 11, 2006

Hi all,

I made a bugfix release 0.2.4. I fix bugs for epson, v4l devices and more. Please test it and report bugs at GnomeScan bugzilla . Download it at the usual GnomeScan download page .

Étienne.

0.2.1: ready for use !

August 26, 2006

Hello all,

I released the 0.2.1 version of GnomeScan which include fixes for area size bug (which was a far deep and larger bug) and the “always-busy-after-first-acquisition”. See more details at GnomeScan newspage at Gna!.

Download is also at Gna! project page : http://download.gna.org/gnomescan/ .

Next step is the dbus service. Which means a lot of documentation to read, test to write. This is a huge mutation of the project which make it very different from any other sane frontends. I’ll also have to see how to integrate with hal.

Étienne.

Hello all !

Tomorow begin the final project evaluation. This is one more reason to release the exciting version 0.2 of gnomescan !

Notes

  • Beware this is still an alpha release.
  • this version has been tested against gtk 2.10 and cairo 1.2 (cairo-pdf). I should reasonnabily work with gtk2.8, but cairo-pdf is required.
  • Please uninstall previous version, or old documentation will remain.
  • Please report bugs and patches at bersace03 at laposte dot net.
  • If you have any ideas for a rocking gnome scan experience, put them on the GnomeScan wiki !

Links

Overview

  • Localisation finaly enter the game. I translated to french, this allow me to commente string and make string easy to translated (no splitted string, avoid pango tags, etc.).
  • A new widget allow to choose scan resolution.
  • First plugin implemented : flegita-gimp which allow to scan in new image and scan as layer ! The plugin set default scan resolution to the image resolution or default resolution. But allow to manually set resolution using the new resolution widget.
  • The overal UI has been review in order to have HIG and consistent margins. The save as popup dialog has been replaced by a widget in the main dialog that allow to choose action (only save is available, Sent and Print are planned) and choose the format between PNG, JPEG, TIFF and …. PDF !!! Thanks to cairo-pdf backend 🙂
  • The preview widget has be rewrite in order to improve performance. The selection is now nicer and far more faster to render. (Thanks to #cairo people). Scrolling with mouse wheel is now supporte, both vertical and horizontal direction. And the most wanted Rotation feature !
  • GnomeScanUI provide new and improves icons for buttons and devices. Thanks to the Tango/ArtLibre project. GnomeScan no longer use “xsane” icons … 🙂

Under the hood

  • A lot of usefull enums are now declared in the GType system using glib-mkenum (which makes me some headhaches in collaboration with autotools).
  • New widget: GnomeScanAdvancedPreview. Used in Gimp plugins. For now, it just draw rulers around preview area which show the size (in centimeters) and the cursor position. Would be nice if the widget tel the exact size of the area.
  • GnomeScanPreview and GnomeScanAdvancedPreview now use GtkToolBar to display buttons in order to follow desktop toolbar policy.
  • libgnomescanui provide the gnome_scan_ui_init() function which declare stock items GS_STOCK_SCAN, GS_STOCK_ROTATE_COUNTER_CLOCKWISE and GS_STOCK_ROTATE_CLOCKWISE and intialize i18n.
  • GnomeScanDialog has been slightly review and use now one GtkHButtonBox with secondary group instead of two GtkHButtonBox inside a GtkHBox.
  • GnomeScanPreviewArea now draw to a buffer when neeed and just output the buffer at expose. It also correctly handle motion hint in order to keep a decent sync between drawing operation and pointer motion.
  • GnomeScanBackend now handle slightly better errors (i.e. does not crash, just jump), still lake some real errors handling.
  • FlegitaActionWidget now handle GdkPixbuf grab and execute the user request on it. If a file exists, it is save to the Filename-%i.png needed. Image are scanned at screen resolution (using a Gdk call), choosing PDF outpur format select 300dpi (which seems to be far too much, i need advice about that). This is how flegita is intended to work : carry option setting without people to know their screen resolution or what means dpi (think that most of the world uses ISO centimeters).
  • pkg-config modules files are provided for libgnomescan (module gnomescan) and libgnomescanui (module gnomescanui).
  • Documentation has been review including GObject hierarchy, chapters and sections, Indexes, True Widget gallery (not only widget screenshot per page). I wrote a ulgy hack, flegita-shoot that take screenshot of widget using Gdk features.
  • I upgraded to edgy on my box which means gtk2.10 and cairo1.2. I don’t try with cairo1.0. I wish this will allow to create a nice print UI 🙂 Scanning an Printing together in Gnome … so nice !

Known bugs

  • On my Canon CanoScan N1220U (plusteck:libusb), the area selection isn’t efficient. Don’t know on other backend/devices.
  • With networked all-in-on printer Hewlett-Packard OfficeJet 7140xi, the devices keep at busy state after the first acquisition (i.e. preview acquisition) until the app is closed 🙁
  • Acquisition progress bar is completely dumb. Don’t trust it !
  • Don’t click the about dialog, it strill segfault !
  • And many more, i’m waiting for reports 🙂

If you have problem with scanning (like ugly pictures, crash, etc.), you can enable verbose output by editing a source file. Remove the #undef g_debug and #define g_debug(…) ((void) 0) lines in libgnomescan/gnomescanbackend.c . Yes that’s not so nice as a –verbose or –debug option, but.

Future

The end of the holidays will surely reduce the rhythm of releases, but i’m very excited about developing and improve the stability of the project. I subscribe to various hosting service like sf.net, gna.org, launchpad.net and freashmeat.net. I also request for a SVN repo at gnome.org and a Gnome maintainer account.

Further development will be made first on GnomeScanBackend in order to get ride of those bugs with many devices. After that, here are functionnality i wish to implement (not in order) :

  • Fixed area (A4, A5, photo, US Letter, etc.)
  • Auto area selection.
  • Zoom.
  • X and Y resolution.
  • Multiple acquisition and multipage PDF output.
  • Sent by mail (with contact completion).
  • Print
  • Fax ?
  • Multiple area per scan.
  • Gamma, contrast
  • A dbus service that handle devices detection and sharing in order to get ride of the waiting dialog (are user waiting so much for printer detection ???).
  • A capplet to configure devices specific options and sharing.
  • Application provided about dialog.
  • AbiWord and gthumb plugins.
  • Split gnomescan (libgnomescan, libgnomscanui, dbus and capplet) and flegita (flegita-gimp, AbiWord and gthumb plugins).
  • And many more you would like to add to the wiki !

Even if that’s out of GnomeScan, i want to mention that I may write one or more backends for SANE. (since my father own almost 9 scanner devices and only 3 are supported). I have a Business card reader. Expect nice plugins for Evolution !

As a conclusion, I would like say i’m very very happy to contribute to Gnome and Free Software. Thanks to Google which allow me to get officially mentored by Gnome and to spend this summer coding for free developers and free users.

Enjoy ! 😀

Étienne.

After long work and deep rework, i’m please to announce the availability of GnomeScan-0.1 !

GnomeScan aim to provide scan to the Gnome infrastructure. The plateforme part of the project consists of two library : libgnomescan — which may be considered as libsane-glib — and libgnomescanui — a collection of widgets to write scan interfaces. The desktop part consists of a tiny app : flegita and more to come.

This release features a lot of changes in almost every part of the project, especially libgnomescan and libgnomescanui. The code has been entirely review in order to write documentation using gtk-doc tool. This lead to many changes in the naming schemes and coding style. The coding style is now much closer to gtk+ one. The code has been simplified in some part (e.g. using G_DEFINE_TYPE). The autotools files has been corrected so that make distcheck pass successfully.

What changed ?

  • libgnomescan:
    • GnomeScanBackend device probe has been deeply reviewed. API has been cleaned of loosy function such as gnome_scan_backend_compute_image_measure() and other. Use boxed type GnomeScanContextInfo to share context data instead of applying sane option (like “tl-x” and other). Work around some unfollowed SANE convention (never use string where an enum is possible).
    • GnomeScanner recevied the following properties:
      • “dimension”: the dimension of the device (in mm)
      • “resolution-range”: the range of available resolution on the device.
      • “sources”: an array of available source (Automatic document feeder, flatbed, etc.).
    • GnomeScanner:”device-type” is now an enum value which make it far more easy to use.
    • GnomeScanContext received new signals:
      • “preview-started”
      • “preview-terminated”
    • GnomeScanContext has been deeply review with GnomeScanBackend and GnomeScanner. rotation is appointing, but not yet implemented. The API has been cleaned. image-size, image-measure and other loose code has been dropped. More signals are to come since this allow GnomeScanContext to marshall all widgets of a scan UI.
    • GnomeScannerOptionSet has been drop.
    • Scan option (resolution, area, source, etc.) and device option (light, etc.) are now separated. gnome_scanner_get_options() now give only scanner options. Scan options are now handle only with GnomeScanContext.
    • gnomescanutils has been a lot completed. New types has been created. Glib enums are generated. Types used in GObjects properties are now registered in the Glib type system. Also a set of useful function has been implemented such as g_value_new_{int,boolean,double,string}(), g_enum_get_{name,nick}() and other.
    • The library is entirely documented.
  • libgnomescanui:
    • New widgets:
      • GnomeScanOptionWidget: a widget that make simple the creation of other option widget, showing a nice label, storing a GnomeScanContext and packing a child widget. That save a lot of codes :).
      • GnomeScanSourceSelector: a widget that allow to select a source if a device has several choices.
    • GnomeScannerSelector is now base on GnomeScanOptionWidget. Also the combo box now show an icon representing the device type. The overall look of this widget has been review so it take less place. See screenshots.
    • GnomeScanDialog now set it sensitivity according to GnomeScanContext “preview-started”, “preview-terminated”, “acquisition-started” and “acquisition-terminated”. One time it will also react on a “probe-started” and “probe-terminated” signal. That kill the bug of a partly insensitive window during preview acquisition.
    • GnomeScanPreviewArea now show an empty pictures of the size of the selected device (thanks to GnomeScanner:”dimension” property). The widget does not insensitive itself during preview acquisition.
    • The library has been entirely documented. That lead to a lot of code clean up. Most widgets has now a screenshot of it. Some widget screenshot are obsolete, but this is a details.
  • flegita:
    • Now use GnomeScanSourceSelector above the GnomeScannerSelector widget.
    • a new FlegitaActionWidget appeared in the code, but is still hidden and non functionnal. A preview screenshot is available. (Uncomment lines 113, 115 and 117-121 in order to show the widget).

What didn’t happen ?

  • The Gimp plugin: This is the next step before the end of the Summer of Code. I wish to publish it before the end of the month in GnomeScan 0.2. This plugin require a new widget : GnomeScanAdvancedPreview.
  • Rotation: This feature needed the deep review i made in libgnomescan. A bit of code has been written for that feature. This feature include another widget : GnomeScanRotationSelector based on GnomeScanOptionWidget. Also, all the infrastructure of the post acquisition image manipulation has to be designed. Since the review of the acquisition configuration design, this should be a lot simpler.
  • Preview zoom: Not for 0.2.
  • Mass acquisition: source selection is one step in the way to implement this feature. But a lot of work has to be done do design and implement this feature. GnomeScanAcquisitionDialog is to be deeply review for this feature. Not for 0.2.

Notes

I made myself the icons using the great Inkscape and trying to follow Tango guidelines. But I’m not satisfied with the icons. If anyone wants to contribute a bit and create an icon for each device type described in the libgnomescan reference manual, I’m open to any contribution :-).

Known bugs

  • Preview: the scan area selection is not efficient.
  • Preview: dimension of the preview seems buggy on certain devices.
  • Funky picture: raw data aren’t handle correctly. Currently, GnomeScanBackend just put raw data into a GdkPixbuf using gdk_pixbuf_new_from_data().

Thanks

If you read this blog you may know i wheren’t motivated to dive back in the code. I want to thank my mento Vincent Untz that help me re-entering the game. Thanks all the people who help me on IRC, especially on -hackers (chpe, nud, hub, etc.) and on , etc. Thanks to all Gnome developers that help making great software in happyness. Thanks to Marc-André Lureau, GSmartMix developers with whom i had nice discussions and happy testings of the the wonderful Vista killer GSmartMix project !

Further

Documentation, code review, 0.1 release. All that things make GnomeScan an ever more mature project. This release is kind of Request For Comments. Especially for the API of both libgnomescan and libgnomescanui. Sent me your comments. Add your ideas in at http://live.gnome.org/GnomeScanning/Ideas.

Hosting is a key point in order to get feedback and code. The bzr branch at http://bersace.ath.cx/bersace/flegita is far from accessible. I’m wondering wether to use sf.net, gna or launchpad. More important, i don’t know well if and when this project will be included in Gnome and then hosted in cvs.gnome.org. After using bzr, CVS looks really backward for me :|.

Next step is 0.2 realease which mainly include GnomeScanAdvancedPreview widget and Gimp plugin based on this widget. This will end the Summer of Code projet. Of course, i intend to continue the work as long as the project is useful. At the end of the Summer of Code, a lot of work has been done. But the overall project is still in an obvious alpha state. Key feature like rotation, save as pdf, mass acquisition are missing.

Thanks.

Update: A 0.1.0.1 version has been released which use gnome crash report tool !