Copy Link
Add to Bookmark
Report

Interview Zach Tibbitts - Deluge Bittorrent

eZine's profile picture
Published in 
Full Circle Magazine
 · 3 Jan 2023
Deluge Bittorrent for Ubuntu
Pin it
Deluge Bittorrent for Ubuntu

Written by Spyro

So Zach, what's your background with computers and programming?

Well, my mother is a software engineer for IBM, so I've been exposed to computers from a very early age. My first experience with programming was in the seventh grade, when I got a programmable TI-83+ calculator and began to program in BASIC. After that, I took a class in Visual Basic, and then C++ during two summers, and then an AP Java class in high school.

At this point, I'm a Junior at the University of Louisville's Speed School of Engineering, majoring in Computer Science and Computer Engineering.


Is Deluge the first piece of software you have worked on?

It's the first really big piece of software that I've worked on. I've done several little things in the past, but this has been my most involved project to date.

Well, I'm not the only one working on it. The other original developer, Alon Zakai (a.k.a. Kripkenstein), helped a lot, and really deserves more credit than he seems to get. Also, we used the libtorrent library, so we didn't have to do a lot of the torrenting process ourselves.


How did you learn to program and how long did it take?

Mostly just from experience. While I have taken a few classes, most everything I know about computers comes from just trying and learning, including programming. Deluge was actually the first time I had used Python before, and I just learned as I went along. As I said earlier, I first started programming in the seventh grade, so that was about 8 years ago.


What made you decide to create a bittorrent client?

The lack of a good, lightweight, GTK+ client. Deluge (then gTorrent) started as a discussion on Ubuntuforums.org about the need of a good GTK+ bittorrent client. That discussion is where I first met Kripkenstein, and we began to brainstorm ideas to create the client.


What advantages does Deluge have over other linux bittorrent clients?

Not a ton, at the moment. It is a nice, lightweight client, and offers a decent feature set. At the moment, it supports DHT, resuming partial downloads, and downloading multiple torrents in the same window. While other linux clients, such as Azureus, offer more features than Deluge does currently, they typically do so at the cost of increased system resource usage. Not to knock Azureus, but Deluge is intended to get the job done and just download the file without all the extra bells and whistles.


How would you rate the success of Deluge, and where would you like to see it going?

I think it's going great, so far. I've been outright amazed at the level of attention Deluge has received. People often find me online to thank me for starting it, and often tell me that they had never found a Linux client they liked before Deluge.

Obviously, I'd like to see Deluge go far, and I've got some plans for the future. My top priority is bugfixes and other stability issues, after that, I can get to the actual new features.


Are there any specific features you would like to develop further?

As far as new features, the new release of Libtorrent supports Peer Exchange, so we'll probably make use of that. Also, the development branch of Libtorrent has encryption support as well, so look for that in the future. I'm also wanting to incorporate UPnP support, though I've heard that Libtorrent is working on that as well, and finally, I'd like to work on a WebUI for the client.


'Andrew M' asked if there will be a KDE version?

I'm not going to say no outright, but there probably won't be. As it is, Deluge will run just fine under KDE assuming you have the necessary libraries installed, but it's unlikely that we'll develop a QT interface for it. If you really want a native KDE client, you'd probably be best off using KTorrent


Do you have a preferred Linux Distro you work in?

Ubuntu, for the most part.


How difficult is it working with the bittorrent format?

Well, we don't really work with bittorrent directly, all of that is done via libtorrent, which in turn is done using Kripkenstein's wrapper class, so I haven't really worked with it directly very much.


Other clients seem to be adding custom features these days, does that create too much of a competitive streak? Do client programmers feel like they have to create a killer 'new feature'?

Yes and no. First off, I don't plan on creating any Deluge-specific "killer features," but rather on making a good implementation of the existing bittorrent features. The problem with creating your own features is that other clients won't have them. An example of this is Azureus's implementation of DHT, which can only connect to other Azureus clients.

I'm not concerned about creating the "Killer feature." Instead, I just want to create a simple, yet full featured client that incorporates the best features that the bittorrent protocol offers.


Is a WebUI (similar to utorrent's) planned? And will there be a way to select/deselect all files in the files list? Clicking one at a time is a pain.

Yes, I know that's a pain, and I plan on fixing that when I get a chance.

As for the WebUI, I mentioned that earlier, and yes, I'd like to do one. I just played with uTorrent's WebUI earlier today, and I was fairly impressed with it, and would like to implement something similar in Deluge.


Do your family use Linux or is it hard to promote it in a currently Windows dominated environment?

Well, I use linux, and my mother dual-boots for work. My father uses Windows, but doesn't have trouble if he has to use one of my linux boxes to check his email, etc.

I've had several people ask me to "teach" them linux, especially recently, now that Vista has been released. Most of them don't want to migrate to Vista and are looking for an alternative.


What programs and development systems do you use?

Well, really all I use is a basic text editor and a compiler, at least when it comes to Python. Really, my development environment will change depending on what language I'm working in, i.e. Eclipse for Java, Monodevelop for C#, and either a simple text editor or Eclipse/CDT for C/C++ clients.


And finally; what advice would you give to a budding programmer?

Start by writing small programs that do something neat. Keep it interesting, because you need to be able to have fun while you're developing. The best resources available to you are the source code of other programs, and other developers online. Look at the source for other programs to see how they work, and how you can apply similar strategies in your own projects. Finally, find that "killer program" that's missing and write it. For me, that program was a GTK bittorrent client, but you should find something that you think Linux (or whatever OS you use) is missing. You don't need a ton of experience to start work on a project, but as you work on it, your skills will improve, and actually programming on a real project will develop your skills well past what simple programming exercises can do

full circle would like to take this opportunity to thank Zach for taking the time to sit under the spotlight and be grilled!

Next months interviewee will be none other than Colin Watson, Installer Team Leader, Ubuntu Community Council Member and Line Manager for half the distro team!

Please email your questions for Colin to: questions@fullcirclemagazine.org

← previous
next →
loading
sending ...
New to Neperos ? Sign Up for free
download Neperos App from Google Play
install Neperos as PWA

Let's discover also

Recent Articles

Recent Comments

Neperos cookies
This website uses cookies to store your preferences and improve the service. Cookies authorization will allow me and / or my partners to process personal data such as browsing behaviour.

By pressing OK you agree to the Terms of Service and acknowledge the Privacy Policy

By pressing REJECT you will be able to continue to use Neperos (like read articles or write comments) but some important cookies will not be set. This may affect certain features and functions of the platform.
OK
REJECT