Wednesday, December 21, 2005

Mono-compliant Development Platform

There is a growing and unseen need for a Mono-compliant development platform. This would be something like Eclipse, but much lighter in base. This would allow people to extend it very easily in pretty much any language and a lot of different targets could be found. Extensability needs to go very far, too. Syntax highlighting and code-folding rules is not enough. If I want to define that all lists and tuples be displayed an element-a-line and no more than 5 lines used (with an embedded scrollbar to go through it) then let me do that. If I want dictionary literals to be displayed as tables, then so be that. If I want to very the if and else blocks side-by-side in color-coded boxes, then let me do that, too.

Just a thought.

No, this should not use Gtk+, because that isn't productive (.Net has a GUI API, already!).

My Name is not Scott

Some may know and now all will, that my name is Calvin. Over the years of working in various positions that require me to deal with lots of people over the phone (fielding calls from customers managing the furniture store, dealing with vendors and carriers for K-Mart, now) I have noticed a very odd and very consistent trend.

I tell them my name, "Calvin", and they persist to call me "Scott". How on Earth does anyone mistake the two? Now, many people (just ask my wife) will tell you that I speak softly and sometimes am misunderstood. But "Scott" for "Calvin" just doesn't make any sense, especially for the pure consistency of the occurrence! What is going on here?

People of Earth: My name is Calvin. Not Scott. It is Calvin.

Paint.Net on Mono

I technically admire the .Net platform, although I don't use it much myself, except following the tutorials on MSDN for C#, which I compile and run with Mono. Part of this is subscribing to the feed from the MS blogs, just to see if there is anything interesting going on. Through this I found Paint.Net, a nice little project that started small and seems to be growing nicely. I looked into running it on Mono, and was very discouraged to find the developers don't care and don't seem to want it to run on anything but the official .Net implementation on Windows. They act like Mono is a nothing to the side to whisk away like dust on the floor.

Now, am I wrong in expecting anything more? I don't think they should all install Fedora and start using Linux, but as long as they are developing a .Net project, couldn't they at least open the door a little? Their installer even refuses to install with Mono, so I can't even test the damn thing.

That's too bad, because I'm disliking GIMP more and more every day.

Saturday, December 17, 2005

Linux Packaging and Autopackage

I got a comment on my previous little quip about the problems with Linux-based operating systems. It was just a link to the Autopackage website. I find it odd, as I had just got wind of Kyle Brooks response to some of the negative commentary about Autopackage. So, basically I agree with everything Kyle said and I know things like Autopackage exist. But, the user still needs to know how to run the .package, which is more difficult on some systems than others. Of course, a quick google of autopackage will tell them, but how will they know to google for autopackage? Now, some distros might be able to configure KDE or GNOME to look at the first line of the file and see its actually a shell script, but I believe most would not. Of course, doing so might open up some security holes, but if the user is running as the root user, they're screwed anyway.

Now, why do we even need things like Autopackage and why is there such controversy over it. (Yes, there is controversy) Quoting mike from the Autopackage forums:

As you may have realized, many Linux developers are very conservative. Some feel autopackage is bad, others just feel that software installation is not their problem.

The culture of "my responsibility ends once I upload a tarball" is very deeply ingrained in the open source landscape I'm afraid - over a decade of distros controlling everything has made any true innovation in this field nearly impossible.

In the beginning there was source code in a tarball and it wasn't good. Programmers would release a tarball, and maybe some compiling tips, and others would acquire the code from an FTP server at 150 baud or mail-order a copy of the code on magnetic tape storage. Systems were varied and different and often a user would work hard to build the program for his (or her) particular setup. Some did this so much, that they developed little scripts and tools and practices to make the whole thing a little easier, and organizations and businesses that adopted this software would follow the same lines. These evolved into the idea of distributions, which made it easier to do all this work.

Free Software/Open Source operating system distributions can be traced back to the three major BSD derivatives: FreeBSD, NetBSD, and OpenBSD. These used the Ports system to control the compiling of software for the system. Guidelines about library locations and configuration files were created and software intended for a particular distribution would follow those guidelines. However, due to the days before real distributions, the developers were not directly targeting these distributions. As many distributions came to be, their volunteers and employees would port useful software, making just enough changes to get it to work on their distribution. Sometimes this would make it to the main source, but usually it would be bundled in some way, such as a tarball, along with installation scripts for their distribution, like Ports for the BSDs. These were called packages. The users were happy because they had good software, the distros were happy because they had users, and the developers were happy because they didn't have to do the work to make the software run on all those different distros.

Fast forward twenty years or so and we haven't come far. Developers find it hard to package for so many targets and many refuse to do so, even believing they have no such responsibility. And, why should they? Most are working for free, anyway. Reducing the number of targets is an option, but anyone is free to make more and that is a large portion of the value of free software.

Through these years, those standards and guidelines have converged in many ways. Something like autopackage was finally possible and perhaps we need it.

Let me tell you what bugs the crap out of me. I hate finding a good program on-line and then having to open up a terminal and typing "emerge search foobar" to find this app. I hate having to tell my roommate, who uses an extra computer of mine, how he has to go through Mandriva's software management app to find out if that game has a package available or not.

I welcome Autopackage, but we need cooperation from the community and the distributions to make it work. Perhaps work like Autopackage can converge the much repeated work of packaging all this software and we can reduce distributions to installation auxiliary scripts.

All I know is I am tired of waiting for a package after the tarball is released.

Saturday, December 10, 2005

What's wrong with Linux

I love Linux and the community it spawned and so much about it. However, overall, I've grown increasingly distressed. Things only seem to go downhill, and everyone just keeps on cheering.

Binary support is in desperate need and barely cared about. Packaging is a complete joke. The distributions are a mess.

I shall elaborate.

Friday, December 02, 2005

Pat 0.5.0 for this Weekend

This weekend I'll release Pat 0.5.0 with the following features (and more?):
  • Selection from multiple tables with a From(table1, table2).select(table1.colA) type syntax
  • Column instansiations to pass to insert and update operations, such as table1.colA("foo")
  • Streamlined and cleaned up unittests
  • More complete unittests
  • Deletion of rows
And, possibly some other things. This should be good enough that I'll return my focus to Involgo, which is also about to shape up into a nice prototype of what I'm trying to accomplish. Hopefully, by the end of 2005, I'll be able to show what I've been trying to acheive, and maybe I can actively search for some VC to put my work to better potential.

Thursday, December 01, 2005

Pat 0.5 Not Released on Time!

I was going to release Pat 0.5.0 tonight, with full support for multiple table queries with From(tbl1, tbl2).select() syntax, but its getting late. I've gotten selection working fine. I need to centralize all query generation and keep things cleaner, and that also includes migration of the update query generation to the new From class, which will control all CRUD, now. Internally, single table operations will just create a From with themselves to handle the request. This should all be operation by tomorrow and I'll release then.

I may have broken my release-a-day spree with Pat, but at least I did make progress tonight, and that's the important part.