Showing posts with label free software. Show all posts
Showing posts with label free software. Show all posts

Tuesday, April 22, 2008

Why do we bother with Linux? Also, UIA status, and Twitter revisited...

The Question

My good friend Aaron is a PhD student in Geology at Penn State. We've known each other since we were toddlers, and connect on many levels. He uses Matlab and god knows what other crazy software to write molecular simulations for his experiments, but he's not the same kind of geek as I am. After reading about Banshee on my last blog, he comments:
I really like reading your blog. I click on all the links and feel like I'm learning something. I do have one question though. When you are working to create these programs for Linux does it ever feel like you are reinventing the wheel? It seems like a lot of time and effort is spent creating linux versions of programs that already exist. Sure there are a few new features that are neat but the bulk of the work seems like recreation. I'm totally missing the point here right?
I've been thinking about this for a few days now. I'm not going to waste time arguing specifics about Banshee, bringing up examples of truly new and unique software on Linux, or explaining how even when we are reinventing the wheel, it is a worthwhile and fulfilling endeavor. Instead, in the spirit of Passover, I will address the general question, "four children" style:

So, why do I spend so much time working on Linux, when a no-cost proprietary solution may already be available?

The free software zealot says: "I will not use software unless it is free (as in freedom). Whether or not a proprietary solution exists is irrelevant; I have problems I need to solve, and if there is no free software that solves it I will create a new project. It is simply unacceptable to sacrifice my freedom for the sake of convenience. As Benjamin Franklin said, 'Those who would give up Essential Liberty to purchase a little Temporary Safety, deserve neither Liberty nor Safety.'"

The pragmatic user or programmer says: "It is in my best interest to use free software. If I find a bug or wish there was a certain feature, I can talk directly with developers about it, pay somebody to fix it, or fix it myself. I don't have to wait until it's in the best interest of some corporation. I don't have to be afraid of being stuck with unsupported abandonware."

The young developer says: "Reinventing the wheel is half the fun of writing software! Even if there *is* an existing free software project that mostly does what I want, I'll probably start one from scratch because then I can do it *my* way. If it's useful to others, then that's great, too. Duplication is par for the course in the software world; after all, weren't there plenty of media players before iTunes, and aren't there still? If there are multiple operating systems, applications, or web sites that appear to serve the same need, then you just need to look closer to understand what niche each is for."

The user who does not understand enough to know the difference says: "My friend/child/administrator set up my computer with Linux. If popular software isn't available on Linux, I'm usually lucky enough to find a suitable free alternative. I get free updates and no weird restrictions on how I can use my computer."


My own answer is a mix of those. Sure, sometimes when I'm writing code that could literally be copy/pasted from some Microsoft engineer's workstation, it's a bit frustrating. It's frustrating that other companies rarely see fit to release their code. But in reality, most code that I write isn't like that at all. It's written to solve a specific, unique problem, and when I solve that problem I feel fulfilled. Using and writing free software gives me warm fuzzies. And as a developer and demanding user, it is very important to me to have access to source code, so that I can fix bugs and add features I care about. Nobody at Apple ever cared about the problems I had using iTunes to burn CDs (every version and OS), and I couldn't do anything about it. That's the opposite of feeling warm and fuzzy.

I'd be interested to see how other developers answer this question, though.


Yay, UIA

Andres has started adding support for firing ATK events, so now we can see Windows Forms appear and disappear, as expected, in Accerciser. It's been fun working with him on this...I get the feeling we'd be a good pair for XP, if he wasn't on the other side of the globe. :-P I've written a lot of unit tests against Microsoft's classes and fixed ours to match that behavior.

This week I'll be continuing with that, and probably working with Andres to expand our event support. I'm excited to be able to send and receive standard window and button events. But I guess I'm easily excited?


Yes, Twitter

I've been experimenting with twitter, because it turns out people I care about are using it in non-masturbatory ways. I'm looking for a better client that I can read on *my* time (instead of being IM'd whenever a friend updates). Gtwitter isn't getting updates for some reason and Twitux requires newer GNOME libraries. If I start checking for new tweets more than twice a day I'll have to do something about this...

Saturday, November 24, 2007

Bringing Freedom to Web Apps: Introducing Forkolator

For a while now the back of my mind has been crunching away on web apps/services. It probably started with my work on Tomboy note synchronization, which is disappointing in that we were unable to provide centralized note storage for our users...they'd have to provide that themselves. So of course the idea of providing that service via the Online Desktop is very attractive, but it inevitably leads to demand for a web app for interacting with those notes. Hmm...

Recently, Luis' posts on Gmail have really got me thinking about where free software fits into this whole web apps/services sphere. And then I went to BarCamp...



Erik Pukinskis talked about how he believes that web apps are killing free software. That Gmail takes away even more freedoms from you than Outlook ever did. That even wikipedia.org and wordpress.com cripple your ability to meaningfully exercise your freedoms. For example, you may be able to access and modify the source of the wordpress software, but you can't use your modified source on your data at wordpress.com. Useful web apps/services are not distributed to users in the same way as traditional software. So how can the open source methodology thrive in this situation?



Erik's idea for solving this is Forkolator. Imagine you're using your favorite web app. You find a bug or think of a feature you'd like to implement. What do you do? Think for a minute of how you would hack on wordpress or mediawiki. Is it a worthwhile investment of your time? Now imagine that you can just click a button that says "Fork this page!". You are taken to a personalized instance of the web app with all the same access to your data, and you can drop into a web-based IDE and tweak your branch live. You can file a bug report that points directly to your live branch, and if the dev team merges in your changes, you can choose to switch back to using the upstream service or keep running your own branch. Maybe the dev team chooses not to accept your changes. With normal free software, you can build your own from source and live happily ever after. Wouldn't it be nice to be able to do this with popular web apps, and not lose the advantages of having hosting and social data handled by a reliable entity?



Right now Forkolator is a web-based IDE which can be forked and modified live. Your fork is not integrated into revision control yet, and the problem of borking your PHP code isn't really addressed. But these are technical hurdles that should be easy to overcome. The difficult problems are staggering:

1. Security.
2. Privacy.
3. Stability.

So Forkolator isn't hosted anywhere yet.

This post is pretty long so I'll have to write later about different ideas for addressing these issues with respect to user data. To sum up insufficiently, Erik believes that the data layer of the app would probably have to be well-defined and untouchable by forkers.

I think that Erik's idea is one that we need to explore. I think it could takes us to a whole new level of community development. I think a combination of social and technical measures can address the huge unanswered problems. We really need people with experience in hosting, security, etc, to hop on the mailing list and weigh in with their opinions. How would you solve these problems? We need to know how start so that we can begin hosting this thing!

Oh, and we need to talk about the GNU Affero GPL at some point...

Saturday, November 10, 2007

Woah

Eric Pukinskis just gave a super-awesome presentation entitled "Web apps are killing free software! (and how to save it)". His surprising teaser answer: a web-based IDE.



I went in to heckle, I came out totally energized. In my opinion, the IDE is the least important part of the whole thing.

I'll post more later. Hopefully he'll set up a website or upload the code or something soon.