The other week, I made a post on my webpage about people not using GNU Radio enough, which sparked off quite an interesting debate on the mailing list. Just the other day, I went and pushed out some simple examples using the UHD interface in GNU Radio. This, too, caused some discussion. And the two are not unrelated.
As has been pointed out by a number of people, myself included (many times), is that GNU Radio is a very challenging project both in its scope and its usage. It's it not an end product, but a development platform to build some very complex systems. Communications is not an easy subject, and mixing RF, comms theory, information theory, computer science, and raw programming together is a very special skill set. But despite me thinking not enough people are using it, a ton of people ARE using GNU Radio (my real point was that I see many situations where others could have benefited from using our project instead of rolling their own), so it definitely has a good base of users. What I'm now seeing, and this where the recent UHD apps comes in, is that there we really have a lack of developers.
One thing that I keep hearing is feature requests. Some of these are small. A consistent coding style is one of them. More apps and examples. Better/more documentation. These are all on my todo list, and the other hard working GNU Radio developers are doing their best to help out and move the project forward (we've all see what Josh is capable of doing when he's pulling one of his 25 hour days). But there is so much more to do! It was great to get feedback immediately for my UHD examples in GNU Radio. That just tells me there was a hole that needed filling. Some of them were bug reports, which is fine. Instead of bug reports, though, I want to see bug fixes. This could come in the form of a patch or even a Git branch somewhere else (I use Github for all of my branch development work; see http://gnuradio.squarespace.com/blog/2010/10/29/using-git-with-github-for-developing.html
What it seems to come down to is a lack of initiative. We are all willing to wait until someone else does something for us, and then report on the problems. But it's hard to start something and push it out there. First, you expose yourself to criticism and bug reports. You might feel uncomfortable about your code. Don't. Don't worry about those things. We the community as a whole will be much more grateful for your efforts in making the project better than insulting you for mistakes or "ugly" code. We can work on minor issues like that. Especially if everyone is helping.
There are two things that I want everyone to consider helping with. First, look at my post on using Github (and use whatever Git-supported service you prefer) to help develop, add features, and fix bugs in branches. I can then pull them into the master branch easily. Second, I have started to build a Coding Guide on our GNU Radio Wiki (http://gnuradio.org/redmine/wiki/gnuradio/Coding_guide
). It's very basic right now, but we can pull in the text that is in README.hacking, too. I find, and I think others do as well, that getting information in the form of a webpage is preferable to a text file. We can use this space to iterate and evolve our style, and then hopefully (over time) backtrack and improve the existing code that we find lacking.
If we can get your help for stuff big and small, I really think we can start to see us making the project even better than it is now.
Thanks for your time,