Monday, December 20

A mono-free Ubuntu desktop

An interesting thing turned up with the latest release of Ubuntu.  The replacement of f-spot with shotwell along with the ppa for Synapse has freed me from my mono dependency.  Previously there was no way I was giving up gnome-do and I have a love-hate relationship with f-spot.  However, since I couldn't find anything I liked better, f-spot it is.

Now, no one is going to confuse me with RMS as far as free software goes.  I am not necessarily dumping mono because of any free software concerns.  I am all for making money if you can off writing software, and I don't ascribe to the idea that software is knowledge that should be shared with everyone.  In my opinion, software is knowledge applied, which inherently makes it the intellectual property of the person or people who applied it.  The thing that makes open source software so practical and,  by nature free, is the fact that many people collaborate, so many that you either need to form some type of organization out of the contributors if you are going to make the software proprietary, or you open source and give it away because it just isn't worth the trouble to determine ownership share and so on.   That's a decision that is solely the developers and shouldn't be anyone's business in terms of pressure to make it open or closed.

That being said, the practical nature of open source usually means a better product for a number of reasons, not the least of which are artificial timelines and resource limitations that software companies are hampered with.  Don't get me wrong at all, I love open source software; I love the collaboration, I love the fact that it's a way to reduce cost for businesses, and I love the fact that such good software is available.  Lets face it, there are a large number of small businesses around the world who simply couldn't compete without open source software.  I just don't like the idea that the community can enforce it's sometimes artificially moralistic sentiment that software should be free... which is usually formed by people who just want software for free(as in beer) and don't give a rip about freedom(as in speech).

So why do I care about getting rid of mono at all?  I just don't like useless crap on my machine.  One of these days I'll get around to writing the article on why C# was a stupid idea and basically a redundant language but, in essence, I have seen mono in the past as a means to an end, one of those means being real interaction with an exchange server.  However, hasn't become a reality and I don't think it will be.  So right now, aside from the two programs I have needed it for in the past, mono is mostly useless to me.

Anyway, since I did the update from 10.04 to 10.10 and I have been heavily reliant on gnome-do mono came along for the ride.  However, a recent article I read on Synapse made me realize that, with the addition of Shotwell, I have replacements for all the mono-dependent software on my machine.  So out with Tomboy, F-Spot, and Gnome-do.  In with GNote, Shotwell, and Synapse.  So far so good.  I don't find that I'm missing much if anything and it feels good to keep my system clean.


Enhanced by Zemanta

Wednesday, October 13

Why does agile need a label?

Scanned image of standard 3x5 notecard / index...Image via WikipediaScrum, LEAN, XP.... for many years people have attempted to apply these types of labels to the art of agile software development and delivery.  In fact, one could even go so far as to call the meta-label of "agile" in the same way.  Each of these communities have devoted followings of people who believe they have the best way to deliver software.  Can we just extract some practices and just call them good software development without the brand-able label, t-shirts, associated conferences, certifications, etc,etc?

The agile manifesto is so much simpler.  Value individuals and interactions, working software is the number one goal, customer collaboration and response to change.... these are the concepts that so eloquently described the essence of the movement.  Yet, it didn't take long for people to define what those meant in terms of processes with tools that helped implement the processes.  It didn't take long for people to start saying, "This is how agile will work, it can't work that way." or "You MUST have a stand up meeting" and "You must use story cards only on white 3x5 index cards that must be pinned, not stapled, glued, or otherwise fastened to a bulletin board with exposed cork only and no one can do anything if they aren't told to do so by the index card and if you use software that's a tool and that's not agile."

What we're missing here is that many of these practices were already being done in a somewhat disorganized way because they worked.  Having a colleague look at a problem with you was just called "helping" before it had the term "pair programming".  Talking to a customer to refine requirements during the development process was just being complete and paying attention to detail before it became a part of a process.

It would have been amazing to be in the room when the authors of the Agile Manifesto were defining these things, but they weren't discovering new territory.  They were defining and simplifying to the concepts that, in their experience, made the difference between successful and failed projects.  At least that's my impression of the Agile Manifesto having not actually been in the room. :)

Do what works.  If you want to label something as agile, that's it.  It means at the end of a period of time you have to spend some time evaluating if your choices worked or not, but it's a lot better than having people roll their eyes and perform a task because it's required of them, not because it does something valuable.
Enhanced by Zemanta

Saturday, October 9

A way for Linux to succeed as a gaming platform

If there's one thing where I have to concede the superiority of Windows to Linux, it is in the gaming world.  Not because DirectX is so much better than OpenGL or because the engines are better or anything fundamental to technology.  It's a 100% business decision, no one is willing to spend millions of extra dollars in game development, possibly to the detriment of gameplay, for the game to be cross-platform for the 1% of their population it will serve.  It's the same reason a lot of software and native hardware drivers are not available for Linux.  In most cases, the open source community writes the drivers they need for hardware and the projects are small enough that most hardware ends up getting support by people who need to do it in order to make their equipment work.  However, for large, complex software such as big title games, it's tough for open source developers to product equivalent products.  So for the most part, the gaming landscape for linux pretty much stinks.

There are a few major issues.  The number of different distributions is one of them.  With differences in dependencies and the fractured nature of the way linux is distributed, it is tough for a gaming vendor to predict all the different dependencies available to them.  There needs to be an abstraction layer that takes care of all this, but such an abstraction layer could definitely hinder performance.

Another issue is cohesiveness.  Just as there are lots of different dependencies on different distributions, there are lots of different choices as far as window and display managers.

There is, however, a way for Linux to succeed as a gaming platform and that's for hardware vendors like Nvidia and ATI to use the open source nature of Linux to their advantage and write their own "console" that runs on Linux.  They have already started doing this in a lot of the quick-boot media only distros that ship with some laptops.  You may be familiar with these if you have a computer where you can pop in a DVD and bring up a player without booting the entire operating system.  These players are often embedded into the chipsets and, more often than not, there's a Linux kernel running somewhere under the covers there.  Why not take that idea and give users a way to suspend their currently running session(regardless of hardware) to disk, and reboot their system in the "console" giving the user the opportunity to install and run gaming software titles.  This could work regardless of operating system, provide gaming vendors with the same consistency they now get with DirectX on Windows, give users nearly bare-metal performance since the system is devoting almost all its resources to the gaming environment with no interruption for overhead from OS services, and give all  users access to the full gambit of gaming titles regardless of operating system they are using.

I know what you're going to say, technically this is not gaming on Linux in the same way you may have thought about it previously.  But it is using the Linux kernel to provide a working system for a hardware vendor to work from that already provides a massive amount of hardware support, is low on resource consumption, inherently secure, and proven to work well in environments where optimum performance is a must.  It's already proven that it can work as a quick booting, media environment on numerous PCs, and everyone knows that the fact that it is open source means that game developers can optimize their code to the environment rather than having to guess at how Windows is doing something behind the scenes.

Sunday, August 8

Did I do *anything* today?

Ever get to the end of your day and ask yourself that question?  I often have that sinking feeling that I just got nothing done because I have nothing to show for it.  I may have spent the day doing useful things like helping a colleague accomplish a task or giving direction or helping with sales, but if there's nothing to show for it at the end it's tough to know what just happened.

In the windows world there are apps like "RescueTime" that monitor your environment and tell you what you've been doing... but that I know of, there is nothing like that for Linux.  That is, until now.

http://github.com/lightsaber/Script-Central/blob/master/incubator/worklog.sh

The amazing thing is, I could do it all in a shell script of less than 100 lines. It gets a little hack-ish in that I have to depend on the dbus api from gnome-screensaver, but it's a fairly accurate way to do it. Anyway, if it's something you've been wanting for linux, give it a shot and see if i does what you are looking for.

** Disclaimer:  This app will record what you are looking at if it is reported by xprops or dbus.  It does not log keystrokes and does not send any information off to me or anyone else.  That said, I am not responsible if this script logs you doing something you weren't supposed to be doing nor the ramifications of that action.  I use it to monitor the way I spend my time while on my computer.  If your wife catches you watching porn that is 100% your fault.