Development
A preview of Inkscape 0.49
The Inkscape vector graphics editor is approaching its next milestone release, version 0.49. As always, the update rolls together a wealth of new tools and features. This development cycle is relatively light on large-scale additions, but there is a long list of small usability enhancements that will add up to a smoother design experience for most users.
The project just released a bugfix to the stable 0.48 series, and although Inkscape is decidedly a "released when ready" application, the murmuring is that Inkscape 0.49 could hit virtual shelves as soon as January 2013. In the meantime, there are fairly stable nightly builds available from the trunk for those who wish to experiment.
Drawing
Two new tools debut in Inkscape 0.49. The first is the measure tool, a long-awaited addition that has applications in computer-aided drafting (CAD) and other drawing tasks that require precision object placement. As is the case with most graphics applications, one can measure an object by clicking with the tool and dragging out a line. However, where a raster application like Gimp can only measure the length of the line segment defined by the mouse movement, Inkscape measures the distance between drawing objects. Wherever the measure tool's line intersects a path or object, an "x" appears, and the tool overlays the distance in pixels between intersections, the total distance if there are multiple intersections, and the angle of the line.
![[Inkscape 0.49's measure tool]](https://static.lwn.net/images/2012/12-inkscape-measure-sm.png)
The other new tool is the PowerStroke pen previewed at Libre Graphics Meeting (LGM) 2012, which we discussed in May. PowerStroke is an effect that produces calligraphy-like lines that change width, much like hand-inked pen or brush strokes. Of course, the advantage of using an Inkscape tool rather than actual ink is that the paths drawn as well as their attributes are fully adjustable after the fact. PowerStroke is better integrated now than it was at LGM, with improvements to the sometimes tricky joints at sharp corners.
Several of the existing tools pick up noteworthy features in this release. The node editor (which allows the user to adjust and edit the on-curve points and control points of Bézier splines) can now automatically add points at the curve's maxima and minima. Not every design task is improved by ensuring that a curve has points at its extrema, but there are a lot of scenarios where it makes calculations easier — consider calculating the bounding box of a path, for example. Consequently, having curve points at the extrema is sometimes required, and having Inkscape create them with one click is a genuine time-saver.
The gradient editor has been reworked. In previous releases, editing a gradient opened a floating window in which one could add or remove gradient stops and adjust colors. The new editor works on-canvas, with add/remove buttons and a color selection widget on the toolbar. The "snap to" functionality is not a tool in its own right, but over the past few releases, Inkscape's snapping has evolved into a complex beast. New in this release is the ability to set snap-to-path-intersection and snap-to-guide-intersection, plus the ability to snap a path perpendicularly or tangentially while drawing it. Snapping to text is also improved.
Similarly, Inkscape's new "symbols library" is not a tool per se, though it does add functionality. The library is based on SVG's <symbol> element, which is used to define reusable graphical objects. One could always duplicate a normal SVG object, of course, but the idea is that SVG can be used to create common collections of frequently-referenced symbols, in the same way that named colors can simplify SVG documents that need to reuse identical color in multiple spots. Whether one finds that idea enticing or not, Inkscape can now take advantage of it, providing access to "libraries" of symbols and enabling users to create their own. Two symbol libraries are built in: one with logic gates, and the other with international road and travel symbols.
![[Inkscape 0.49's Voronoi diagram generator]](https://static.lwn.net/images/2012/12-inkscape-voroni-sm.png)
Beyond the basic tools, a handful of new extensions is included that also offer new functionality. Inkscape extensions tend to be more task-centric, so not every user will find them helpful, but they can also offer surprisingly sophisticated features. For example, one new extension allows N-up page layout for printing large documents. Another allows converting drawings to the G-code format used by computer-controlled cutting machines. There are also extensions for generating QR codes, isometric grids, and Voronoi diagrams, plus smaller extensions to replace fonts in a document, extract text, and the "guillotine," which can split a drawing up with guide lines to export it as multiple PNG images.
Environmental and usability tweaks
In practice, Inkscape's tool set is extensive enough that it can be mind-boggling to hear that some users still find it lacking, but such is the lot of the general-purpose creative application. On the other hand, the diverse tool set can frequently result in enough complexity that the application begins to get in the way. On that front, the project is making frequent small improvements that fix minor annoyances.
For instance, layers have often felt like an afterthought in Inkscape. The layer controls are small and tucked away at the bottom of the window. Changing layer visibility or order was not intuitive. Inkscape 0.49 improves things by allowing the user to re-order layers with a simple drag-and-drop. Gimp and Krita still provide a nicer layers interface (in Inkscape, a drawing's layers are listed in a drop-down selection widget, rather than a list with all layers visible at once), but the fix is an improvement.
Selecting the right object from a position where multiple objects are stacked or overlap has been another pain point; Inkscape 0.49 allows the user to cycle through the options at the cursor point using the mouse scroll-wheel. Users can also increase the size of the "handles" shown for grabbing and manipulating path nodes, toggle the visibility of guides, and edit keyboard shortcuts. Inkscape will now remember from session to session which tool palettes are open and their various screen positions, too, eliminating the need to reconfigure the application at every start-up.
A particularly novel feature is the ability to enter arithmetic operations into spinboxes. For example, if a rectangle is 1071 pixels wide and needs to be shrunk to 1/7 of that size, the user can simply enter /7 into the width box and hit Return, rather than waste precious minutes hunting for a pencil or searching for the calculator in GNOME Shell's "Activities overview." The Inkscape wiki does not provide a canonical list of which calculations are supported, but it does provide examples with nested parentheses and even physical units (e.g., mm instead of pixels). No word yet on logarithms, infinite series, or complex numbers — mathematicians take note; this is clearly a feature in need of serious stress-testing....
There are also several improvements aimed at using Inkscape for print work. The background display color of the canvas can be changed without changing the color of the document itself. That would be useful, for example, if designing a flyer that will be printed on tan paper — one needs to see how the design will look against tan, but adding a solid-color rectangle as a background object is a kludge. The interface can be toggled between normal full-color display and grayscale, which again allows the user to preview output — although this feature has other uses; it is often a good idea to design a logo in grayscale first, to establish contrast and readability, and grayscale is important for supporting people color-impaired vision.
PDF and TeX export have been improved, which can benefit print or electronic output. The PDF exporter can now automatically add a "bleed" margin, and TeX export now supports text styles — including, font nerds will be happy to learn, distinguishing between oblique and italic styles. In addition, support for export to Gimp's XCF format has been improved, and it is now possible to export drawings to Flash XML Graphics (FXG), XAML, and to the native format for the open source vector animation application Synfig.
Over and out
The new Inkscape series is not all bling, however. There are a number of performance and rendering improvements rolled into 0.49, too. The first is the long-awaited merging of Google Summer of Code work from 2010 and 2011 that ported the rendering engine to the Cairo raster graphics library. This results in improved responsiveness when editing and closes a number of outstanding rendering bugs. Responsiveness is also improved through caching, and memory usage is reduced; the release notes cite a four-fold reduction in the memory required over Inkscape 0.48. Cairo is also responsible for the grayscale preview mode mentioned earlier, and is used as the PNG export engine.
The other under-the-hood change of significance is the addition of multithreading through OpenMP. This change is primarily felt through speed improvements when using filters; the OpenMP parallelization can take advantage of all CPU cores on the system. Inkscape implements many effects through SVG filters even when they are not labeled as such explicitly (such as the "blur" slider available on every object). In addition, each release adds more live previews to path effects and extensions. The upshot is that multithreading is likely to benefit a lot of users even if they do not employ complex filters in their normal workflow.
Overall, Inkscape 0.49 is shaping up to be a solid improvement. It is hard to generalize about the impact of features like Cairo rendering and multithreading; some users may feel no improvement at all, while others may be ecstatic. The same goes for the new tools and features — if you use G-code or TeX the benefits are clear, if you have some other design needs you might not even notice the new features. On the other hand, the usability improvements (particularly to selection and window management) are more or less universal. But the truly interesting aspect of any new Inkscape release is seeing how users will take to a new drawing mode like PowerStroke, because that is ultimately unpredictable. Inkscape is a "creative" application: its biggest enhancements are in how it allows end users to think, and act, a little more creatively with every new release.
Brief items
Quote of the week
Perl turns 25 years old today. COBOL was 25 years old in 1984, right at the time when I first started programming. To those young people who start programming today: I hope you'll learn from my mistake. Don't scoff at the Perl programmers. 25 years from now, you may regret scoffing at them as much as I regret scoffing at the COBOL developers. Programmers are programmers; don't judge them because you don't like their favorite language.
The eudev project launches
Eudev is the Gentoo-based fork of udev which was covered here in November. The project has now officially announced its existence. "udev often breaks compatibility with older systems by depending upon recent Linux kernel releases, even when such dependencies are avoidable. This became worse after udev became part of systemd, which has jeopardized our ability to support existing installations. The systemd developers are uninterested in providing full support in udev to systemd alternatives. These are problems for us and we have decided to fork udev to address them."
Qt 5.0 released
Digia, the current owner of the Qt code base, has sent out a press release announcing the Qt 5.0 release. "Key benefits of Qt 5 include: graphics quality; performance on constrained hardware; cross-platform portability; support for C++11; HTML5 support with QtWebKit 2; a vastly improved QML engine with new APIs; ease of use and compatibility with Qt 4 versions."
Status.net service to phase out, replaced by pump.io
Evan Prodromou of StatusNet announced that the company's microblog-hosting service running at the status.net domain will close to new customers over the coming weeks, as the company begins migrating its offerings from the StatusNet software to it successor, the just-unveiled pump.io. User accounts on the existing sites running from the status.net domain will continue to function, as will the Identi.ca site. Self-hosted StatusNet instances will be unaffected by the move.
PulseAudio 3.0 released
Version 3.0 of the PulseAudio subsystem is out; see the release notes for details. "The tl;dr version for the lazy is: easier setup when your device is a Bluetooth source, some ARM NEON optimisations, configurable latency offsets, ALSA UCM [use-case manager] support for embedded folks, and a _lot_ of other fixes and infrastructure changes."
Gnumeric 1.12 released
Version 1.12 of the Gnumeric spreadsheet application is available. This is a major stable release wrapping up two years of development. Among the improvements are porting the interface to GTK+ 3, improved accuracy in computed cells, and additions to the graph tool. Gnumeric is also now available under two licenses, GPLv2 or GPLv3.
Newsletters and articles
Development newsletters from the past week
- Caml Weekly News (December 18)
- What's cooking in git.git (December 12)
- What's cooking in git.git (December 16)
- What's cooking in git.git (December 18)
- Mozilla Hacks Weekly (December 13)
- Openstack Community Weekly Newsletter (December 14)
- Perl Weekly (December 17)
- PostgreSQL Weekly News (December 16)
- R Journal (December 14)
- Ruby Weekly (December 13)
Fontana: What open source licensing could learn from Creative Commons (Opensource.com)
At Opensource.com, Red Hat's Richard Fontana expresses his admiration for the "coordinated, centralized manner in which CC licenses are conceived, drafted and revised, and the successful occupation of the full policy field of open and quasi-open content licensing by Creative Commons.
" By comparison, he says, the de-centralized and organic growth of free software licenses lacks the "great emphasis on simplification of use, understanding, and identification of the various license categories
".
Perl: The First Twenty-Five Years
The Perl Foundation News has posted a detailed history of the first 25 years of the Perl language. "Before the advent of Perl 5 the resources for collecting these scripts were few and far between, and one or two have fallen into legend and are now taken out by wizened Perlers around a flickering light where the Tales of Terror are shared and Matt's Script Archive comes into its own magnificent glory. In these Enlightened days it is easy to mock those early pioneers and to smile fondly at some of the erroneous efforts, but they were the only resource of their time and they were formative in the evolution."
Vernooij: Bazaar-NG: 7 years of hacking on a distributed version control system
At his blog, Jelmer Vernooij has written a detailed retrospective on the history of the Bazaar version control system, including a lot of analysis of the project's ups and downs over the years. "We just made these changes to the file format as they came along, rather than accumulating them. This meant that at one point there was a new format every couple of months. Later on, we did slow down on format changes and no new format has been introduced since 2009. Unfortunately we have been unable to shake the image that we introduce a new file format every fortnight.
"
Balazs: About Antiquated Metaphors in Icons
Björn Balazs reports on some surprising results from the recent LibreOffice Writer icon test, which (among other things) pitted Tango's "floppy disc" icon against Oxygen's "filing cabinet" icon for the save action. "The results are stunning. There was not the slightest problem with using the floppy disc, while the filing cabinet metaphor more or less failed [...] Even when looking at the group of young users the results do not change significantly and the antiquated floppy disc still scores a perfect 10.0.
" Balazs speculates on possible explanations; whatever the cause, surely additional interesting findings are still to come from this survey project.
Page editor: Nathan Willis
Next page:
Announcements>>