lottanzb team mailing list archive
-
lottanzb team
-
Mailing list archive
-
Message #00002
Planning LottaNZB 0.6
Hi everyone,
you have probably noticed that I just approved Eran C's team
membership. I hope everyone is fine with that!
Welcome aboard, Eran!
We talked about how the development of LottaNZB 0.6 will take place,
what needs to be done and what still needs to be discussed. I attached
the full conversation and hope this is okay for you, Eran. What was
discussed is the creation of a simple component management system
inspired by the one of Trac and also how GUI development will take
place in the 0.6 branch. I also had a look at setuptools for plug-in
management, but as setuptools has been dead for over a year, I don't
think it's worth the risk. One should wait for the built-in distutils
to make a step forward (which is long overdue).
There are various reasons pro and contra Kiwi, some of which I pointed
out in a previous message. Another thing to mention is that the GUI
would probably be more responsive without Kiwi, because right now,
every widget is removed and recreated as a Kiwi-based widget, because
Glade has never been working well with Kiwi. It's just that something
like this should be discussed early enough and not after half of the
GUI code has been migrated to SABnzbd.
I'd really like to hear all thoughts, concerns and ideas regarding the
development of LottaNZB 0.6!
On Sun, Sep 13, 2009 at 1:39 AM, eran cohen <shush6@xxxxxxxxx> wrote:
> Hi Severin, I tried to join the mailing list but it seems like I have to be
> a member of the development team so I applied to be a member.
> I've download the 0.6 branch from bzr. It's the updated code that use
> SABnzbd, right? (other than the gui of course)
> I'll take a look and try to understand what's going in it...
Exactly. The branch is called lp:lottanzb (or lp:lottanzb/main):
https://code.edge.launchpad.net/~lottanzb/lottanzb/main
>>Now I have doubts if we really want to continue
>>using Kiwi in LottaNZB 0.6
>
> I took a look at the code and saw that it heavily used throughout the code.
> I didn't understand everything that it used for, but if I understand
> correctly it's mainly used to manage and update the UI, but I'm pretty sure
> using pure pygtk will provide more flexibility. I always prefer to my own
> code when possible because it allows me to learn more and it usually fit
> better because it tailored made to fit my needs. It sounds like a good idea
> to drop it and using pure pygtk.
In my opinion, a GUI framework can simplify things alot, but only if
it's kept up-to-date and covers all the needs of its clients or at
least is extensible enough. To my regret, that's not the case with
Kiwi. :-( As you pointed out, when writing pure PyGTK code, you're in
charge on don't depend on a framework to be updated if you want to
make use of new stuff that has been introduced with recent versions of
GTK. That's a huge plus.
>>Please note that LottaNZB 0.6 depends on SABnzbd 0.5
>
> I'm using Archlinux atm so I installed SABnzbd-svn from AUR so I think it
> won't be a problem for me.
>
>>I started to work on a very basic and incomplete UML diagram
>> yesterday. I'll send it to you as soon as possible
>
> Thanks. Don't work to hard on it, I just want it to get the general idea
> about lottanzb. We had an assignment to write a fairly detailed UML diagram
> at Uni, I hated it :) but I must admit it does help in the developing
> process.
>
>>Pydev is an awesome piece of software if the pylint integration
>>works. Sadly, this doesn't seem to be the case in Ubuntu Jaunty.
>
> I haven't used pylint before, but it looks nice and seems to fine on my
> machine. This is the advantage of Arch, it's a rolling release so all the
> software is up to date and generally work.
I'm not exactly sure how you conclude that a rolling release implies
that things generally work. ;-) Looks like I'll really need to give
Arch a try.
Regards,
Severin
> Regards, Eran.
>
> 2009/9/12 Severin Heiniger <severinheiniger@xxxxxxxxx>
>>
>> Hi Eran,
>>
>> On Fri, Sep 11, 2009 at 6:38 PM, eran cohen <shush6@xxxxxxxxx> wrote:
>> > Don't feel bad about not giving me anything to do right away, that's
>> > fine
>> > with me. I'm lazy :) but seriously, I'll take my time learning how
>> > lottanzb
>> > work while you finish the component management system and when it's
>> > ready to
>> > use, I can help with developing the additional plugins and implementing
>> > the
>> > gui.
>>
>> it's good to hear that! I'm really looking forward to join forces with
>> you. I suggest you not to spend too much time learning how the how the
>> whole GUI stuff works. Also, the way how plug-ins hook into the
>> application is probably going to change with the introduction of the
>> component management system.
>>
>> Regarding the GUI: You might have noticed that LottaNZB 0.5 uses the
>> Kiwi PyGTK framework. I decided to use it because it provides a
>> Model-View-Controller implementation, a nifty form validation feature,
>> etc. However, It also has some major flaws and is not developed
>> anymore and therefore outdated. This required me to introduce several
>> ugly hacks to keep things working. Now I have doubts if we really want
>> to continue using Kiwi in LottaNZB 0.6, since we need to rewrite major
>> parts of the UI code anyway. The advantage is that using pure PyGTK
>> code, it would be easier for new developers like you to join the
>> development, as they don't need to learn another framework. However,
>> it would require us to write more code, but won't prevent us from
>> achieving our goals. Thousands of other PyGTK (some of them pretty
>> complex) don't make use of a full-blown PyGTK framework either, and
>> still work just fine. For some tasks, we might need to write our own
>> little helper classes, an application-specific mini-framework so to
>> say... or borrow ideas from other applications.
>>
>> If you've got any thoughts about the GUI code issue or about how to
>> connect the components LottaNZB is made of, I'd really like to hear
>> them. You might have more experience in how to organize the code of
>> complex applications.
>>
>> > I installed Sabnzbd yesterday and it looks like a great program. I never
>> > tried it before because lottanzb provided anything I need, but it has
>> > some
>> > cool features, especially the rss feature. I checked it's api and it
>> > does
>> > looks like it can provide a lot of useful info. It's only drawback is
>> > the
>> > user interface but of course this is going to be solved with lottanzb
>> > 0.6.
>>
>> You're right about this. I really prefer a polished and clutter-free
>> GTK interface over a webbased interface. The API indeed provides much
>> information and many methods to control SABnzbd. There are still some
>> things missing, but in collaboration with the SABnzbd developers, the
>> API has already gained some new capabilities LottaNZB will make use
>> of. Please note that LottaNZB 0.6 depends on SABnzbd 0.5 (not yet
>> released), because it features a much more complete API. I really hope
>> that they'll show a little more love to the Linux platform, especially
>> when it comes to the application deployment. At least, a SABnzbd user
>> did a fine job packaging the application for Debian/Ubuntu. Also, I
>> just don't understand why they decided to implement their own i18n
>> infrastructure instead of using the widely used, built-in gettext.
>>
>> > Is there a UML diagram for the lottanzb? it can help me understand how
>> > lottanzb work, even though I can manage without it because from what I
>> > saw
>> > so far, the code is well constructed and straight forward.
>>
>> As I've studied Computer Science for only a year, we haven't covered
>> UML in depth yet. I started to work on a very basic and incomplete UML
>> diagram yesterday. I'll send it to you as soon as possible.
>>
>> > May I ask which IDE you use for developing Python and GTK? I've tried
>> > many
>> > of them but haven't found my favorite yet. Currently I switch between
>> > eclipse with pydev and geany, but always looking for more option.
>>
>> I've used both Gedit and Pydev recently. Pydev is an awesome piece of
>> software if the pylint integration works. Sadly, this doesn't seem to
>> be the case in Ubuntu Jaunty.
>>
>> You might want to join the newly created LottaNZB mailing list
>> (https://edge.launchpad.net/~lottanzb). We could move our conversation
>> there as the other team members are probably interested in it as well.
>>
>> Regards,
>> Severin
>>
>>
>> > Thanks again for your response, I'm really excited about joining the
>> > development of lottanzb.
>> > Regards,
>> > Eran.
>> >
>>
>> >
>
Older messages:
------------------------
> 2009/9/10 Severin Heiniger <severinheiniger@xxxxxxxxx>
>>
>> Hi Eran,
>>
>> it's been a pleasure for me to read your message! Honestly, I wasn't
>> exactly sure what to answer.
>>
>> It's certainly great thing to dive into the world of free software.
>> Working together with other people all around the globe to create
>> awesome applications, sharing knowledge and being friends is something
>> I wouldn't want to miss anymore.
>>
>> Getting started might be a little hard at first, mainly because one
>> doesn't know where to start. It's a coincidence: Marcel de Vries from
>> the Netherlands has joined the team yesterday. He didn't write a
>> formal mail asking how to get involved, but he offered to fix two bugs
>> I hadn't paid attention to yet and during the whole process, I
>> introduced him step by step to the workflow at Launchpad. Launchpad is
>> what we use to coordinate the whole development of LottaNZB. Managing
>> bug reports is quite easy to understand, dealing with code branches
>> using Bazaar etc. takes a little more time to understand. I'd be happy
>> to guide you and there are also some docs about it [1].
>>
>> It's great to hear that you already had a look at the LottaNZB source
>> code. You're right, that the code doesn't look that bad, but it's far
>> from perfect. Right now, we're in a special situation. We're currently
>> very close to the release of LottaNZB 0.5.1, which will mostly include
>> bug fixes and two minor new features.
>>
>> After that, the development focus will finally move to LottaNZB 0.6. I
>> already wrote quite some code in the 0.6 branch (now called
>> lp:lottanzb). The new SABnzbd backend is mostly ready, but the UI
>> hasn't been ported yet. Porting the existing UI and designing and
>> implementing the UI for all the features SABnzbd provides will be a
>> lot of work, and I'll be thankful for everyone who will join me in
>> this effort. The problem is that right now, I'm still fiddling about
>> some basic infrastructure in the 0.6 branch:
>>
>> What I have in mind is to make the application as modular as possible;
>> to make development and maintenance easier. You probably learned that
>> loose coupling of application components is a good thing. Each and
>> every part should do its work and shouldn't know too much about the
>> whole application. The (non-GUI) components are already in place: the
>> backend with all kinds of queries and hubs that store the received
>> information, the config module (reading, storing and writing LottaNZB,
>> HellaNZB and SABnzbd configurations), the session module (takes care
>> of starting and stopping SABnzbd, managing the backend). All of these
>> components (including the yet to be written GUI and plugins) need to
>> be connected in some efficient way. We used to have a singleton App(),
>> which allowed things like
>> App().gui.main_window.download_list.get_selected_download(). That's a
>> bad thing. I'd like to implement a component management system similar
>> to the one used by Trac [2]. I'm pretty sure that this would allows us
>> to write the UI code and plug-ins in a much more reasonable way. I
>> really hope to complete this work soon (within the next two weeks).
>>
>> I'm not sure if it made much sense to ask you to do this and that in
>> the 0.6 branch at this point of time as the basic infrastructure is
>> still being changed. After that I should think of small chunks of work
>> that would be suitable to get started. Launchpad offers a mentoring
>> feature for that. I'm really sorry that I cannot assign you to a
>> concrete bug or blueprint right now.
>>
>> Feel free to contact me at any time in case of questions.
>>
>> Regards,
>> Severin
>>
>> [1] https://help.launchpad.net/Code/FindingAndDownloading
>> [2] http://trac.edgewall.org/wiki/TracDev/ComponentArchitecture
>>
>>
>> On Wed, Sep 9, 2009 at 3:27 PM, Eran C <shush6@xxxxxxxxx> wrote:
>> > Hi there, I use lottanzb all the time, it's a great little piece of
>> > software and I wanted to ask if I could join the development of it.
>> >
>> > I'm a 29 student from Israel who study Eingennering of information
>> > systems. I have experience with C, C# and java from my school. I also
>> > have experience with python and pyGtk which I learned by myself.
>> >
>> > I went over the code of lottanzb and I must say you did an ecxellent
>> > job. It's well structure and I understood what's happening quite easily.
>> >
>> > I haven't done any development on any open source yet, and I think the
>> > lottanzb project can be a great starting point for me. Please advise
>> > how I can contribute and help developing.
>> > Thanks for your time,
>> > Eran.
>> > --
>> > This message was sent from Launchpad by the user
>> > Eran C (https://launchpad.net/~shush6)
>> > using the "Contact this user" link on your profile page.
>> > For more information see
>> > https://help.launchpad.net/YourAccount/ContactingPeople
>> >
>
Follow ups