Showing posts with label gEDA. Show all posts
Showing posts with label gEDA. Show all posts

Sunday, 12 December 2010

PCB+GL

I just couldn't resist posting a gratuitous eye-candy shot..




Sadly, static screen-shots just don't do this branch justice, as they can't capture its rendering speed, or just how natural it feels to navigate the board. Perhaps I'll have to produce a screen-cast at some point.

gEDA development

There has been a lot of talk recently about how, as a community, gEDA (including PCB), has failed to make best use of its community contributions. The standard excuses have all been made for why we have not been better at integrating patches:

  • Developer bandwidth
  • Unfamiliarity with the code, so I can't review it
  • Submitted code quality not high enough
  • Sumbitted code not confirmat to our (non-existant) formal coding style.
  • "I hate SourceForge" - Ok, that one was just me!

All of the above are true for various cases, but as a community we need to do better. As such, I've been trying to devote some spare cycles to doing what I can to improve the situation.

For me, the SourceForge trackers are a real productivity drain when reviewing code. I've been doing some of the groundwork to trial Canonical's Launchpad as an alternative. This has meant exporting a dump of data from SourceForge, and applying various scripts and manual editing to convert this data into a format Launchpad admins can import into their database.

There have been a few snags along the way, mostly just requiring customisations to the python script which converts the SourceForge export into a Launchpad import format. I have added custom code for mapping release targets assigned to our bugs, cleaning up various auto-generated headers from comments, and tagging the imported bugs to specify which of the SourceForge trackers they originated from.



The results look promising, and in a few days I hope to be able to show people an editable demonstration of the import (for PCB), on the Launchpad staging server.




An example of an imported feature request

Long time, no post!

I just noted that it has been over two years since I wrote anything here!

Whilst I've been constantly encouraging other people I know to blog more about interesting projects they have been working on, I have not been writing anything myself.

Interesting projects have been happening though - mostly afforded by the fact I've had to take some time off from my PhD work in order to overcome some personal problems with depression. I'm pleased to report that I'm feeling a lot better now, and that addressing the issue was what needed to be done.

Anyway, on to the fun stuff..

I've been trying to slowly persuade the PCB+GL branches I've been maintaining into a shape suitable for being pushed back upstream. This effort is taking shape, and a number of commits have already been pushed.

I recently had a cleaning spree, pushing over 30 new commits to make PCB compile without warnings. We now stand a chance of seeing new warnings as and when they appear, and hopefully not letting bugs hide in the forrest that was until recently, our compile output.

Sunday, 4 May 2008

gschem with b-spline paths and filled sections

Just thought I'd share a couple of screen-shots of a feature hopefully targeted for gEDA 1.6.0, support for closed / filled polygons.

Since its simple to do so with cairo, I've implemented this a an arbitrary SVG type path string. Code-reuse from librsvg (LGPL) made this a more approachable task.



At the moment, the code allows modification of existing paths from within gschem by dragging the control points, but you can't yet create new paths, add / remove nodes or change node-types.

At the very least, we could hope to support reading and rendering polygons / closed arbitrary paths for gEDA 1.6.0, so if anyone is keen, the stock libraries can be improved with this pretty'fication. I already made a stab at the bipolar transistors.

Saturday, 3 May 2008

Cairo support for gschem

Following the merge of Werner's branch elimitnating the remaining usage of screen coordinates in gschem's graphics state, gschem is far better at allowing you to zoom and pan whilst making drawing operations.

I have since rebased my pending changes to the object "place" code (inserting symbols, copy / paste with buffers, move, copy, multi-copy etc..) and on top of that branch, have revived the experimental cairo rendering code I started what seems forever ago.



The screenshot above shows cairo rendering of all primitives, including the text (which is via cairo's "toy" text API). Work to allow support of gschem's existing line-font is underway, but dependant on new API aditions scheduled for cairo 1.8. I think I'm getting used to the "Sans" font in gschem, so perhaps that will have to remain an option.

The code is distilling nicely now, and by cooperating with existing code (XOR drawing with GDK during rubberbanding and placing), I now have a branch where pretty graphics are available without the bugs and cut down functionality of my old branch (which removed essential code, but hadn't quite got to replacing it).

Sunday, 13 April 2008

PCB Close confirmation dialog

Work has been keeping me very busy recently, so I haven't had much chance to write gEDA or PCB code. I am using both for a my work though, so I am finding ideas for various improvements.

One small thing which took my fancy this morning was PCB's "OK to lose data ?" prompt when you accidentally forget to save before closing your layout.

It had to go, and now the GTK HID of PCB sports a dialog which looks very much like gschem's.

Obligatory screenshot:


I've hooked this in such a way that it should be relatively trivial to add the same kind of dialog to the Lesstif HID, but I'll leave that as an excercise for the reader.

Monday, 7 January 2008

PCB Library browser

Using code from gschem's symbol selection dialog, I've been working on a replacement for pcb's library window. The aim is to target an area where discoverability is perceived as poor for new users, making footprint selection from within pcb an easier task.

There is a little work remaining in tidying up the code, but this dialog will hopefully be a feature of the next pcb release.

Before:


After:

gEDA releases shaping up

Things seem to be shaping up nicely towards having a 1.4.0 stable release of gEDA within the coming month or so, with a great deal of activity in the various GIT trees, and pcb's CVS.

Ales has announced intention to release the second unstable development snapshot in the 1.3.x series on Thursday 1oth Jan, and I'm tentatively planning to match this with an xgsch2pcb 0.1.2 release.

The desktop integration I was working on is mostly finished and committed. We now have MIME icons (original artwork by Tomaz Solc), menu entries and application icons installed with the various gEDA tools. Work remains to add the PCB half of the MIME icons, however there shouldn't be too much work involved in doing this.

The list of blocking bugs for a 1.4.0 release has almost vanished now, so it seems we're all set for a fantastic release. Once 1.3.1 is out, brave users help checking for last minute bugs would be very much appreciated by all.