Friday, December 11, 2009


It looks like I've nearly got it all working. I have been creating a custom highlighting view for the ChangeLogs.

See for yourself...

When it's done you'll also be able to click on the bug #'s to open your browser to bugzilla's bug

gotta go... more later.

I have it all working now including opening your browser opening bugzilla to the bug number.

next on the list is to customize the installed files view and add functionality there too.

Thursday, December 10, 2009

Dependencies revamp

Lately I've been working on a revamp of the dependencies code. I have made good progress at cleaning up the code base for easier maintainability and updating to all the latest EAPI's. It now caches dependency atoms to save memory and help speed things along. I have also made the dependency tree fully dynamic and deps can be expanded as long as there are unsatisfied deps or options to expand. And because of this it loads so much quicker due to it not digging deep into the tree. It is done piecemeal every time an expander is toggled open.

I have already completed syntax highlighting for the ebuild view and am working on a custom highlighted ChangeLog view that works with the new view structure I've started using.

Also in svn are translation updates for German (Timo Gurr) and Polish (Arkadiusz Kowalski) so a very big "Thank you" for your work.

All the other languages are in need of translation updates so if you are capable, please help to update the translations. I plan to release -0.6.1 by Christmas with some exciting feature improvements and several bugs I've fixed.

Til next time... Brian.

Thursday, November 26, 2009

Knees, a hazard of aging.

Well, I've gone and done it. I've popped a knee 2 weeks ago just walking after being down working on a piece of equipment. This past several weeks has had me limping trying to take it easy on it. I even was able to spend a bunch of time at my computer without complaint from my wife. It was getting better (sort of) but now is worse. Good news is that I'll be off work for a while to give it a chance to heal. That will give me more time to work on some coding projects.
Who knows maybe I'll be able to get out a new porthole release soon with some new features and updates.

Saturday, November 21, 2009

gentoolkit fun

I've been having some fun working with djanderson on the gentoolkit equery code. We've made great speed improvements to the depends module for reverse dep searches. The real speed improvements were by djanderson's rewrite of the base search code after I had initially split it up into separate search and print modules. There have been 2 benefits so far
  1. Is that consumer apps will be able to import the python modules for its own use without having to parse terminal output. Great for making a plugin for porthole (my original intent)
  2. Is the major speed improvement as a result of the complete rewrite of all the dependency related code from the original package object into its own class. The speeds are now about 25% that of the original code. most equery depends package will now be around the 2 to 3 second mark instead of 8 to 12 seconds. Really long detailed searches are down from 2 - 3 minutes to around 2o seconds!
With the depends module nearing its completion, I'll get back to working on the belongs module. Maybe we'll be able to get more speed out of that one as well.

Sunday, November 15, 2009

Back to coding

Current coding work I'm poking at:

  • I've just added syntax highlighting to the ebuild view courtesy of portato code. I would have done it earlier, but for trying to get the final version done with. I didn't want to add yet another change that might delay it's release due to more testing being needed...
  • I've updated the file chooser widget used from the deprecated gtk.FileSelector to the new gtl.FileChooserDialog. It does also have file filtering options, and if I've done my testing correctly should be working properly everywhere it's used.
  • I've gotten back to the dev branch that I'm using to split out all hard-coded emerge commands. The commands used to build the command lines used for emerging, etc. will come from config file(s). That will allow a user to customize the actual commands sent to the terminal. ie. use a custom wrapper script. It will also make it possible to use pkgcore commands for the merge. Once it is working, I'm sure some pkgcore devs will help to make a pkgcore backend for the information gathering as well.
  • I've added a USE Flag tab to the package notebook. It is currently not selectable since I do not have any code for it yet. I plan to separate out the advanced emerge use flag portion of code into its own module so it can be used in both places, or anywhere else in the future.

Gentoolkit: I've begun poking around the gentoolkit code to see about using it for a plug-in module. I'm sad to say it was not designed to be used as an imported module. That said, I've seen on #gentoo-portage that djanderson has been working on the code. I've contacted him and have begun re-writing some of the code to separate out the data gathering and printing to the screen. This will improve the code base overall along with some major updates he is working on which will make the code py3k compliant as well as keep it up to date with current portage.
Together the changes should speed things up some for command line users. It will also make it possible for apps like porthole to import the gentoolkit code for its internal use and display of info such as reverse dependencies. (the first module I worked on splitting up)

Gpytage: A nice little gui utulity program for editing your /etc/portage/package.* files. I had helped Ken out a little in the past. I have started to poke at him some more to finish some updates he was doing so I can help debug it. I also hope to add some code to validate the entries and report any obsolete data & package entries. That code will come from another standalone utility script that I came across some time back. It will need some slight re-write to make into a library module and separate command line script. I am getting anxious waiting to make a plug-in module for porthole which will be linked in to the summary view and its menus. The existing version in the tree is somewhat outdated with portage, so will not be use-able. The new code will have a significantly different API.

IRC: I've created a #porthole support channel on freenode. feel free to drop by and chat. I can also be found on #gpytage, #gentoo-guis, #gentoo-portage, #gentoo-amd64, #gentoo-desktop, #pkgcore. I have been playing around with bots a little as well. You'll find a basic bot called portholes there. I intend to replace "portholes" with a different more powerful bot when I get the chance to get it set up.

Saturday, November 14, 2009

First Rambling's

Welcome to my blog.

Well, this is something new to me. It was suggested that I get a blog to help promote Porthole and to get more feedback, etc. So here goes, It seems that like most things, they change and evolve. I remember a time when the forums were buzzing with activity. Some of that activity seems to have been replaced by blogs. I have been reading a few of the Gentoo dev's blogs and find them informative, interesting and can be a good source of knowledge. I hope to do well in that respect and not blab on about nonsense or get too carried away into details few people will care about.

Anyway, I am currently the only developer/maintainer for Porthole, It is a graphical gui front-end for Gentoo's package management system "portage". I was not the original creator(s), They were Daniel G. Taylor and Fredrik Arnerup. I started in fairly early in it's development cycle and have continued with it. There have been others that have come and contributed some good advancements and features over the years, but I am currently alone in it's development.

I welcome feedback from users, both good and not so good as to how they use porthole and things they might like added or changed. As in nearly all things, that does not mean it shall be done, but it does help evolve things for the better. I will try to get things done in a timely manner, but it is something I do in my spare time for fun, relaxation and good mental exercise. A person has to keep those synapses firing :)

I have recently released porthole-0.6.0 final after several years of trying to get it finished. This last big update from -0.5.x was a major one, porthole's code was getting too large and unwieldy in many ways and was in need of a major slice and dice. This has sped things up significantly and reduced it's memory usage. Along the way I have been able to add more features and improve functionality of others. There is still far more that I want to achieve with the code and user interface, but that discussion will have to wait for other blog entries.

Take care...