Archive for the 'Banu' Category

tinyproxy is back

The last maintainer of tinyproxy transferred over maintainership of the project yesterday. So the fork nanoproxy is now obsolete and has been removed. The tinyproxy project will keep its old name, because existing users know it as that.

Visit the tinyproxy project!

Forked tinyproxy

I forked tinyproxy to create nanoproxy today.

I’ve been a regular user of tinyproxy for the past 2 years, as it allows me to masquerade as a user in another country/university pretty easily through a SSH shell account. Unfortunately, tinyproxy has been unmaintained for about 3 years now and is marked as inactive on SourceForge.net. There are known bugs in it. I also want it to be a part of my Linux distribution. So what’s better than to maintain it. I tried to contact the last active author to ask for access to maintain it, but didn’t get any responses so I forked it to a new project called nanoproxy. There’ll be releases after a few things are fixed.

Gum update

Following last week’s post on Gum (free software for DRM-free media distribution to refresh your memory), I have received some suggestions from various people. One of them was to try and build a community around Gum. So I’ve made a project website for Gum (as it is free software) which lists things to do, access to source code, etc. and I’ve setup a mailing list and IRC channel (#gum on irc.freenode.net). Everyone is welcome to participate. :) I’ll upload whatever source code is done till now to the Subversion repository in the morning tomorrow.

In the past week after the post, I did some database development for the backend. I also contacted Magnatune on the phone and and they have kindly agreed to have their whole catalogue available on Gum under CC licenses (it was free, but I had better ask them before using such a large catalogue, no?). It was a very nice gesture from them, and their data is in various tables now, helping with database testing and query optimizations. A rudimentary web interface is also done for audio items which shows metadata (you can find it if you know where to look ;) ). More things are in the works.

I re-request help for Gum. If any software company can sponsor salary, hardware and bandwidth, I can work full-time on this project and perhaps get a full-time co-developer or two. There are many items to do. It will definitely rock to have funding. Nokia, Red Hat, Novell, Sun.. are any of you interested? It can’t hurt much to hire one guy to work on DRM-free media distribution software and your desktop/handheld OS gets a nice GTK+ application. Well everyone does.. that’s the beauty of free software.

Gum - a free software media distribution system

From the start of this year, in my non-work spare time I mostly stayed away from that other project (GIMP) and have been designing and writing a GTK+ application in C for distribution of high definition video, audio and documents over the internet. There is a big opportunity in the media space, and many apps are structured towards commercial content with DRM. We need something in our community backyard, and so Gum is a media distribution system which doesn’t implement DRM and works around the need for piracy. But this is not the only difference.

The following are going to be Gum’s 1.0 features, and I will continue to work on it in my free time (but you can help me speed this up—see further below):

  • Support for playback of high-definition full-length video, audio and documents (similar to Acrobat Reader / Evince).
  • Support for multiple audio-streams for different languages, or things like director’s commentary (video, audio)
  • Support for multiple video angles (video)
  • Support for chapters (video, audiobooks, real books)
  • Support for subtitles (video, audio - lyrics and text, documents - text and annotations)
  • Multi-channel audio and high-definition video (1080p)
  • Full UTF-8 i18n and localized in various languages, with country-specific cultural focus
  • There is no DRM. There will be support for exporting these media into portable files for use in other applications, apart from support for portable devices such as iPod and eBook readers.
  • We will start with existing content from various publishers such as Librivox, Archive.org, Magnatune, PLoS, etc., and will add an upload facility later.
  • P2P system for handling high traffic loads (details further below).
  • Gum is and will remain a free software application licensed under the GNU GPL.
  • Ad-free Creative Commons, public-domain and other freely licensed content.
  • We will have commercial content with advertisements. This will mean convincing publishers such as O’Reilly, Hollywood and Bollywood to publish on Gum. Ads will pay for the plays just like on television, and hopefully viewers won’t have to pay for content. This could kill the need for many forms of digital copying and re-distribution called ‘piracy’, as everyone now has free and convenient on-demand access to content. We have a reasonably nice implementation to combine the use of P2P, advertisements and the ability to export to files.
  • We will also likely have support for purchasing digital content without ads (and without DRM).
  • Banu’s website will contain the web-application, with categorized browsing, metadata, previews, accounts, bookmarks, channel subscriptions, comments, ratings, charts, suggestions, etc.

These are a LOT of items for a single person to do quickly for 3 types of media (video, audio and documents). But everything in the list above is do-able now. There are excellent free software libraries to implement all of the functionality such as libc, GTK+, poppler, GStreamer and libavcodec (ffmpeg), GNet, libxml2, Cairo, Tango icons, etc. and it can all be ported to multiple platforms. I know how to implement all of the GTK+ application and web application (and you have some of the proof below and on Banu’s website). Let’s make Gum the standard free software system for digital media distribution, free of DRM issues and other blues. So what needs to be done? I’m posting an article about it here as I need help and any advice you may want to share. Here is what the program currently looks like. It is a GTK+ app, so it’s themed according to the default theme. It can be themed to look different too.

So far a lot of the main multi-threaded app including UI, updates checking including XML schema changes, and XML HTTP communication between server and client are implemented. It is written in C using GObject and uses GTK+/GIMP’s coding style. The Banu website framework with user accounts management is also ready (the public site is an old branch). Currently I am working on the backend database.

Gum search page
Gum video page
Gum documents page
Gum transfers page
Gum preferences dialog
Gum about dialog
Gum in terminal


Help!
The reason I’m posting this here prematurely is to ask for help.
I want to work full-time on Gum, and if possible, have one or more co-developers to speed up its development. Banu will also require hosting for the web application and content (machines, disk space, bandwidth, we’ll take care of the distribution software).

With bambi eyes, I am looking towards a free software company such as Red Hat / Sun / Novell / Nokia / etc. (any employees want to take this up?), or even any media houses such as Sony, Warner Bros, Paramount/Viacom, or rich individuals who want to bring about DRM-free media to help me by funding salaries and providing hosting, if they think that such an application will be beneficial to the CC / free software community and the general public. I can’t offer a percentage of Banu as collateral for this. The reason is simple. There’s a mission, a plan to do good with Banu and Gum, and at this point I don’t want to be influenced away from it. There’s a solid plan and it just remains to be acheived. If Gum gets funded, and generates commercial revenue eventually, I will thank them appropriately *Grin*. How much money can a company lose by paying a salary to just one or two more developers to do good things? Come on, please try and help!

About me, I have an MS degree in computer science. You can go through my resume too. If you can help me, please contact me. I’m also open to advice and criticism (if you’re reading this blog somewhere, I’m a member of that community and you can tell me).

Why yet another iTunes-like GTK+ app? Or why not extend an existing app?
Sorry if I have offended anyone by this, but although Gum seems similar to apps like Rhythmbox and Banshee, it isn’t. It has to support multiple media types, do P2P (not straightforward because we are going to have ads in here) and has plenty of web-service integration. It’s perhaps possible to start with one of these apps, but it’ll likely be more work than starting from scratch, especially to a developer who doesn’t already understand these projects. So the code was started from scratch.

What P2P system does this use?
The app is being written to use a P2P method similar to Bittorrent to handle media distribution under loads. It isn’t exactly Bittorrent due to implementation differences, but the protocol structure is very similar and it will have that system’s benefits. I am also looking at integrating UDP NAT hole punching with the tracker’s help and STUNT so that connections can happen through firewalls without inconveniencing users with manual configuration.

What media codecs can this system support?
For video/audio, anything GStreamer and libavcodec (ffmpeg) supports, including 1080p H.264, MPEG-2 video, Theora, MP3, 5.1 channel AC3, Ogg Vorbis, AAC, etc. For documents, PDF and DjVu.

How is this different from Democracy Player, Bittorrent, Azureus, iTunes, Joost, Google’s plans, etc.?
Each of these apps has a slightly different feature set, and Gum has its own way of doing things: Gum is specifically for non-streaming pre-download high-quality content, with the ability to view items free of cost with ads. There is no DRM. Gum provides 3 media types (video, audio, documents) and uses P2P.

How can I keep an eye on what’s happening? How can I help?
I’ll post updates on this blog (syndicated wherever you’re reading this). I’ll publish Gum’s source code once the backend and app code have stabilized a bit, and request gnome.org project support at that point (if you know me, ask me for access).

I request you to please tell everyone you know or publish on your blog that I’m requesting help to allow me to work full-time on Gum and pay for/host Banu’s servers, and perhaps bring on one or more co-developers so that this can be sped up.

What is BanuIdCrawler and why is it accessing my RSS feed?

Some of you may notice entries in your httpd access_log like the following:

BanuIdCrawler/0.9.1 +http://www.banu.com/crawlers/id.html

I have used some Planet feeds to seed an itch I’ve been scratching lately. This is basically the Id software which gets the feeds to play around with. I hope you don’t get convenienced—it is supposed to be a well-behaved “bot” and follows /robots.txt and things such as HTTP’s Etag and Last-Modified headers and DEFLATE compression to save bandwidth.

If you visit Id’s page, you’ll see that it’s for Blah which is the public system. I’ll describe what Blah is in another post some other day.

Here is a titbit for you: Planet SUSE and Planet Python did not add a single unique feed to my list. All members of these planets seem to be members of other planets too.

Banu website

Banu has a new website! Some projects have been introduced in the Banu labs section, and hopefully they’ll slowly be built. They are open projects distributed under free software licenses, and everyone is welcome to participate.

Currently its HTTPS services use Nerdfest CA signed certificates, but I plan to get in-browser-CA signed certificates for them soon.

Manga, Batman and The Green Hornet

I have had a few strange dreams of my geek days, of weird DC comics and MAD… it feels as if I have some kind of hidden energy surfacing up to get back to what I was. I have always felt as if I lost something a few years ago, when I left intermediate college. I want to ride this wave.

This site will get a new look soon. I’ll be starting work on it as soon as I get DSL access back (ETA of 48 hours according to BT last). I have many things to write about. First things first: I tried GNOME2.. it looks great, it can look great, it can be better. I tried Red Hat Limbo.. it looks great.. blah blah. The Mozilla 1.1 Alpha Milestone has some weird ANNOYING table drawing bugs.

Not many but my closest friends know about Banu. I think it is time all my friends knew about it. It is a place which I am trying to build up with a little help from friends. The site just contains a placecard for now, but it will be ready and available one day.

Yesterday I was goofing with my camera after a friend mentioned about how cunning and devious I looked :) . There
are some pictures here.