Wednesday, January 21, 2009

Choosing a FLOSS Project Host

Tune in next week to hear Mrs Piggy say - oh wait a minute, this is next week, kinda.

So, the next step in building the GREATEST APPLICATION EVER (or at least another misc software thingy) is picking a place to host the code. (Those of you not paying attention can find out why we need a that already here.)

What are my choices?
Let's take those in order. (Good thing they are in the right order already, huh?)

Self hosting is out. As I said before, I want to work on the project, not the website, as much as possible. Mediawiki and bugtracker would likely be all I need, but I'd rather someone else do the plumbing on this.

Google Code is easy to say no to as well. Two big knocks here are unreliable downloads (I mirror a Google Code project on a cheap webhosting plan, because the Google Code repository barfs on people regularly...) and typical Google lack of support. I know I'll need hand-holding, and with Google I'm not going to get it.

Sourceforge is the biggest one of the bunch obviously. Fairly full featured from the public exposure side, and it obviously works for many people. From using sourceforge casually (i.e. as a user not a programmer) the experience has been ok, but annoying. I don't like their default web page setup, it seems quite unintuitive to me and that's likely why everyone puts their own web pages up in front of it. Their bug reporting and built in FAQ stuff is clumsy looking too - it often seems to be poorly handled by smaller projects. And again as an enduser, their registration process for many things I've had issues with in the past. I've also heard reliability issues, although not so much lately.

To sum up, lots of little niggly negatives that I might be exaggerating. It works for so many it must be a real alternative. If there wasn't a better alternative I'm sure I could make it work.

Savannah is the GNU project host. My comments here can be summed up pretty easily. GNU projects on average don't seem to be very attractively presented - and Savannah is no exception. I dunno how well it works, but it looks pretty GNUish :-) Knowing the GNU guys, it's likely reliable and has some cool features once you grok it. Savannah seems to have some sort of approval process where they make sure you are the kind of project they want to host. Since both the projects I've been thinking about may have some dependencies that aren't 100% GNU (I'm thinking out loud here, I could be wrong) that might be an issue, and I'm not sure my plans are firmed up enough to waste some body's time reviewing them at this point. Without worrying too much about what they provide, I don't think this is a good fit.

Github is a cool looking newer alternative. Git seems to be one of the current stylish new tools right now, and github jumps right in there with both feet. Free software projects host free, and proprietary pays, which is a logical enough way of approaching things. They've got some stuff you don't see elsewhere, leveraging (I assume) the power of git, like graphing code changes and other geeky good stuff. They've got training video, which shows you have new wavish they are, and a good vibe about the place. When I threw out a twitter query last week about potential project hosts, Github got two thumbs up from the responders. On the other hand, it's all very developer centric, rather than end user centric. As a regular ole 'how do I use this thing user, it's not very friendly. There are related hubs Campfire and Lighthouse that round out their offerings, but they seem to be a little more profit looking than Github itself. I doubt my project would ever hit the point of requiring one of their for pay services, but hey I can dream can't I ? The last thing I noticed, and probably the biggest negative is how Ruby centric the whole thing appears, at least on the surface. Ruby on Rails is the biggest project they have, and I bet it's presence there is why so many other related projects ended up there. I've nothing against Ruby, it's just another language I don't know (yet?) but it shows the emphasis of the place.

Again, like Sourceforge I think I could make this work, but I don't think it's the best choice.

Trac is pretty easy for me to rule out too. First up, it's subversion, which would be yet another CVS to learn. Second up is the web interface. I don't think I've ever used a Trac based site (again as an end user) that's made a lot of sense to me. These sights seem a confused mix of wiki, faq and bug tracker, with a real blurred line between end-user and developer, and no clear indication of what you can change and what you can't. A good admin could likely herd it into line, but I don't want to get into that.

Tux Family actually looked good for a couple of minutes. There are some neat projects there, and the atmosphere seems great too. It's a moderated sign up process like Savannah. The multilingual FAQ was nice touch I thought, and the European heritage seems to shine through in places, in a good way. What took them out of contention were these little tidbits - "Tux Family is not a test platform", We will not accept "student projects that will die in a month or two" due to lack of resources. Fair enough, but that might just describe these efforts pretty well, so let's go our own ways before we even start :-)

Which brings us to Launchpad. Those of you paying attention already knew my choice since they were on the bottom of the list, so there you have it.... Oh, ok I'll explain why too.

Launchpad looks too complicated, frankly, ala Trac. On the other hand, the emphasis seems to be in all the right places. They want to promote cross project communication and support, and my projects are going to lean heavily on other the efforts of already established software. Their philosophy seem to fit into my objectives pretty well. I'm especially intrigued by the mention of translation services. Multilanguage support was high on my list of things I wanted, and I'm hopelessly unilingual, so maybe I can get some real wins there. Just wandering through the tour made me feel like it's got the right approach. I'm already an Ubuntero, and Launchpad has always performed well for me. As I've started to work my way through the Launchpad documentation, I'm finding it helpful, because it talks alot about 'why' you do things rather than 'how'. That's valuable to me, since I've got zero exposure to software project management prior to this. Launchpad itself seems to have a lot of Python bits to it, so a Python project isn't going to be out of place. Sign up was simple and straightforward, with no moderation steps.

It's not perfect - they use bazaar rather than git, and don't provide any wiki services, or even a home page past the generic one, but I think I can deal with that when I get there.

Posts like this help make Launchpad seem to be the best choice
, let's try 'er out!

(Note to self - enough with the brackets already!)

Monday, January 19, 2009

The New Blog Title

For those of you that are curious - it revolves around my New Year's Resolutions for 2009:

Be
  • constructive
  • instructive
  • inclusive
  • communicative
  • responsive
  • empathetic
  • conciliatory
  • receptive
Entropy is the enemy !!!

Of course, after I thought it up and implemented it, I found out it was hardly original... Ah well, not much on the internet is. Doesn't look like we're doing the same material :-) Hopefully this blog is more to your taste than that one.

Of course talk is cheap, and it's already a couple of weeks into the new year - have I actually done anything? Well, I started keeping up this blog again, and I signed the Ubuntu Code of Conduct. Let's see if I can keep this going!

Saturday, January 17, 2009

Choosing a Project Repository

From that mythical reader out there who is actually following all my posts up to now I can hear the question - 'Are you nuts? You claim you are going to write a program in Python, and before you learn any you're worrying about where to host the project? Delusions of grandeur or what!'

Before you completely go over to my wife's side (who is quite sure I am nuts) let me explain.

The last time I tried anything like this at all, it had two problems. Since it was a sideline hobby, it was done in fits and starts, when I had the time. As a result I was always trying to figure out where I left off, what to do next, what was already done, etc etc etc. It wasted a lot of time I didn't have just trying to keep it all straight. Once it was finally completed (well, once I quit adding features anyway) it ran fine for years, but when I wanted out from under maintaining it, there was no one around who could pick up the pieces from my scattered pile of stuff and keep it running. The new maintainer ended up re-writing it all his way and throwing out all my work. I don't begrudge that - I wasn't doing it anymore and he can't support something he doesn't grok, but it hurt none the less to have all that effort pitched.

Since those who can't understand the past are condemned to repeat it, what can I learn from this?

One - you don't write software, you build solutions. Yeah, I know, sounds like an Apple ad or something, but here's the theory. Start with a clear vision, create a solid list of what the thing is supposed to do, then write the code to do it. Document, then execute, not the other way around. I can think of lots of projects I wish did things this way.... I used to have a friend in high school that was fond of saying 'Plan the work, then work the plan' Maybe I've finally started to listen :-)

Two - This project has zero resources (see rule one) and like the last one is going to be done piecemeal at whatever computer I happen to be sitting in front of when I get 10 minutes to think about it. An internet based, distributed setup is the easiest way to keep this on track and organized. I don't have time to worry about infrastructure any more than required, I want to work on the product. There's no privacy concerns here - quite the opposite, so keeping it local doesn't make any sense.

All right, now that I've blathered on this much, it's getting to be too long a post to discuss who I actually picked. I'll do that as a separate entry.

Thursday, January 15, 2009

Running In All Directions At Once

So, since I claimed I was interested in other things lately, what the heck am I going to put on this blog? Other stuff of course :-)

Here's one topic I'll be returning to again and again. I might finally stop saying "I'm not a programmer". I can't go back to school (unless somebody's willing to foot the bill) but I can try and figure this out on my own. Lots of people do it every day. I don't expect to get really good at it, but hey - who knows?

I'm starting for that old open-source traditional reason - I've got an itch to scratch.

I do know a smidgen of bash scripting and Perl. I even did a complete website from scratch using Perl and MySQL with a bit of help from a friend. The problem I find with Perl is the same thing pointed out in one of the Perl books I read. If you don't do Perl every day and really work at, it doesn't seem to 'stick' with you that well. When I go back and look at old work, I have to really stop and look at it to figure out what's going on. To boot, the whole 'object orientated programming' paradym didn't make all that much sense to me in Perl either.

My itch is actually to contribute some code to an existing project. It does a lot of what I want, but not all of it. I've even posted my ideas to their bug tracker, but it doesn't seem like anybody else is going to do the work for me, so maybe it's time I tried to do it myself. That project is written in Python, and Python should be a good thing to learn for lots of reasons.

Python has the reputation as being easy to learn, and very versatile. Lots of modules and add ons are already out there, and it runs on Linux, Mac and Windows. I've seen lots of interesting end user programs that are written in Python, and I might be able to get something that looks good as well as working well.

So, I need to learn Python. And revision control. And project management. And lots of other things too :-)

I'll post tidbits as I go along here, and I'll start tagging these blog entries better so my mythical audience can skip the parts they don't care about.

Tuesday, January 13, 2009

Creative Commons and the General Public

I was struck at our users group meeting the other day just how 'foreign' the concept of creative commons is to many many people.

I was demonstrating some social networking stuff, facebook and this 'flickr feed'

Some of the audience members just couldn't get over the fact that people let their pictures show up in public like that. What if someone wants to steal them, or sell them for money or....

To me it's kind of obvious - it's a picture of my kids, or a piece of landscape. I don't own the rights to that piece of landscape, and if somebody else can profit on it, why not? I couldn't...

I was discussing real estate with an older cousin of mine once, and something he said has stuck with me for a long time now.
You can't own a piece of property, you just look after it for a while. It'll be here one way or another long after you and I are gone.


That's what CC is all about now isn't it....

Monday, January 12, 2009

Installing Twirl on Linux

I'd read somewhere installing Adobe Air and Twirl on linux was a real pain. I looked into it about a month ago, but the instructions at Adobe were not trivial. It was still marked as 'Beta' at that point, so it seemed reasonable, but I didn't want to spend the time at it then.

I tried gtwitter and gwibber since, but gtwitter is only twitter, and gwibber has an (upstream) webkit bug currently on Hardy that makes it unusable. gwibber does seem like the way to go on linux going forward, but I'll wait for an update there before I mess with that again.

Which brings us back to Twirl. Installing it now is pretty painless. Unfortunately it's not via a .deb, so it takes it outside the apt updates system, but it does have it's own updating system, so at least it's not completely orphaned. Personally I think any internet facing application has to have an active update system before I'm interested. The biggest security threats all seem to come from this quarter currently.

Just visit the twirl site. The big 'install now' button doesn't work, but just below it is the 'manual install' link. Download the Air installer, chmod +x it, and run it. It prompts for admin rights properly, and installs painlessly. Then visit the Twirl site again, and at the top of the page click on 'linux users use this installer.' It installs like a regular Adobe Air program, except it prompts to place the program in /opt which I thought was nice touch.

Incidentally, if you install the regular Twirl app instead of the linux version, it still works, but it doesn't dock in the panel correctly. (Ask me how I know :-)

So, all in all, it's pretty cool. It's not the click-n-drool operation it is in XP or OSX, but it's not kernel hacking either, and the program itself runs and looks exactly the same as it does elsewhere. I bet the final little niggles will get worked out eventually too. A big thumbs up to Adobe for supporting linux users as first class citizens these days - It's their support that makes it easy for me to feel comfortable recommending Air programs and avoiding things like Silverlight like the plague.

Saturday, January 10, 2009

Home Server - the recap to date

So where am I at right now?

It turns out the Xbox Media Centre is a hit. I like it, it works simply, and has been pretty reliable.

All I need for it is a file share. That same file share works well as a backup drop spot. Right now I've got an old Celeron box running Ubuntu desktop with a couple of bigger drives and LVM to join them together. Simple and effective.

I've never been happy with using a file share on the same box as a firewall, and the sucky firewall built into my modem makes we want to keep a linux box doing that job along with DHCP and DNS for the local network. I'm using SME server for that, although I might revert to IPCop or something else. I'm missing a WEP network for the kids Nintendo DS's, and someone gave me a PCI wireless card that might just do the job without me adding more equipment to the house.

Central authentication is still on the wishlist I suppose, but doesn't seem to be too important right now.

Running my own mailserver just doesn't seem worth the effort. As long as Gmail's privacy issues aren't pushing my buttons too badly, it seems like the right solution.

So, all and all, it's working ok right now.

What's caught my attention lately is python. I'd like to try and learn at least a little bit... So, expect a couple posts on that topic and others (like CVS) in future.

Thursday, January 8, 2009

Unending

Yep - another gratuitous Stargate reference.

And a change of direction.

If you haven't noticed - it's been pretty quiet around here lately. Truth is, I've been very busy, and when I'm not busy, I've been interested in other things.

Oddly enough, I've started using identi.ca, and twitter, and that's what got me interested in writing blog entries again. And while I've been kicking out some entries for a user group blog I write on, I've been wanting to express things that just don't belong there, or on my family website, and too long for twitter.

It's amusing, but my nickname 'furicle' actually is a pretty unique Google search, with identi.ca and twitter entries one and two, and this blog somewhere down the list a bit. The rest of the hits are all me too. So I'm not going to abandon this blog, just change it around a bit.

I know all the advise says if I want a successful blog to pick a narrow topic and beat it to death, but audience share isn't my definition of success anyway. This is more therapeutic than serving some desire for fame - an audience isn't really necessary. If I provide useful info from time to time that a google search picks up for future readers, that's great too.

The four rules still apply, just expect a lot more wandering around various FLOSS topics, not just home server stuff. And you still can't expect a schedule :-)

Up in a day or two is a recap of where I ended up with my home server to date.