Sunday, October 12, 2008

FLOSS Weekly #44: GNUstep

The taping went great and the show is up in twit here. I had a great time talking to Leo and Randal and getting the word about GNUstep out. Please have a listen!

Tuesday, October 07, 2008

Appearance on FLOSS Weekly

Hey guys... I'll be on FLOSS Weekly with Randal Schwartz and Leo Laporte. The show is hosted here.

Needless to say I'm very excited to be on the show and a good friend and fellow contributor to the project, Riccardo Motolla, will be appearing with me.

Talk to you soon!!

Sunday, October 05, 2008

Wednesday, May 28, 2008

On the market again...

With my current gig ending in about 3 weeks, so I'm told, I'm in the market for a new contract position. I really want to find something that will be more interesting than most and not just any old work.

Excite me, make me learn, challenge me and, most importantly, keep me from being bored because I get bored VERY easily.

Any takers? ;)

Tuesday, May 13, 2008

Death knocks on our door again...

Sometimes I'm forced to think about all of the people I've lost in the past couple of years. While I don't consider myself to be old enough to go through this, I seem to be starting to see death as an unwanted companion.

For the last two years people who have mattered to me have passed away one by one. First my Father... then my Uncle Victor, who was everyone's favorite uncle.. you know, the funny one who's good at telling jokes. Then my Uncle Frank. He was the talker the one who loved people and the one who always tried to be everyone's friend.

Perhaps the hardest blow recently to me, personally, was the death of my closest friend Jason Withers. He died of a stroke last year in December because of a piece of plaque that had formed in one of his arteries. That's a very cold and clinical description, but one I've come to accept. Jason was closer to me than a brother and I think of him often. He and I used to have a sarcastic humor together that only comes when you've known someone for many many years.

The most recent is my brother in law, Shawn. He passed away last night. He was a close friend. He suffered from cancer and fought it until the end. My sister loved him very much and she is extremely distraught over his death and, yet, I feel cold. Death has visited my family way too often in the last few years... Death is like an old friend whom you're at first surprised to see, but then becomes someone you know all too well.

I know that the emotions will come... that the tears will come... and that, soon, our pain will be done.

The one thing that all of this stresses is the importance of life. Death is the one thing that comes to us all in time. While love may elude us... death is certain. It's important to tell those that you love... that you love them without question. Because he may be at your doorstep, or theirs much sooner than either of you anticipate.

Sincerely, Greg C.

Monday, April 07, 2008

New Gorm Release!

Check it out... there is a new Gorm release it's 1.2.4. Please download it and try it. You can get it at www.gnustep.org.

Monday, February 04, 2008

Bad Company

As many of you who follow my blog may or may not know, I'm a software consultant. This means that I run my own small company consisting of, you guessed it... one employee... me.

Well, sometimes I find myself in the unfortunate position of dealing with an unreasonable client. Such was the case in the last 6 months. While I will not mention the client by name I will say that they were in the habit of underbidding contracts by hundreds of hours and hoping that the the heroic contractor (please note the generous dash of sarcasm here, folks) could come swooping in and save the day.

When you have project managers who don't know how to estimate jobs, then you will ultimately make mistakes that end up costing your company money. When you have people who don't understand software or how it's done and you feel like you can slog off all of the work onto your developers, you will lose developers. Herein lies the perfect way NOT to run a company because it causes several things to happen all at once:
  1. You're customers will be angry at you for not completing the projects in a timely way.
  2. You will piss off your developers because they will end up working 10-20 hour days. (Yes, I have worked two days in a row at one point non-stop... trust me I'm 38 and, at my age (while I'm not old... well not yet at least) my body doesn't forgive me very easily for punishing it like that. I learned this the hard way.)
  3. You will sour your reputation in the marketplace because of both #1 and #2 because, while people will not be talking maliciously about you they will speak the truth about you. Please remember it's not slander/libel if it's true.
  4. Because of ALL of the above you will lose money.
One of the worst situations I have run into is where companies hired account representative and "creative" people (i.e. graphic artists) and suddenly thrust them into the role of a PM. These people have no clue what to expect and tend to think of creating an application like one would think of writing a word document. They do not heed warnings, nor do they listen to reason when they make decisions that will cause issues with architecture down the road.

I have personally always seen it as my duty to keep people informed about where they can improve their business, but, sometimes, there's little you can do especially when management is unwilling to listen.

At any rate, there are good jobs and bad ones. I'm simply thankful that I'm on a good one now.

Sincerely, G.

Sunday, August 19, 2007

Linus and Linux: Sycophantic Hero Worship

I must admit to getting really fed up with the Linux community lately.

They seem to believe that their hero, Linus Torvalds, can do nothing wrong.

In a recent post on slashdot I said this:
For anyone who can't think for themselves, yes, his opinion really counts.

I, personally, like to form my own opinions of things. While Linux has been seized upon by people as a great operating system. The only good thing about it is that it's free.

Linux is a monolithic kernel architecture which, as many operating systems experts will tell you, has number of problems.

Don't fool yourself into thinking that he's some kind of visionary, when he's not. The man never says anything positive about anyone else's work. I find it really tiring to listen to him rail on everything under the sun... speaking of Sun. Linus railed against them for not giving anything to the community.... let's examine that assertion for a minute:

Sun has:
1) Given it's OS out under a Free Software license
2) Given it's Processor out under the GPL
3) Released Open Office under the GPL
4) Is in the process of releasing Java under the GPL.

What else would you like them to give? Does he want them to drop Solaris and start being a Linux distributor?

Linus poo-poo's CVS and SVN as being "good enough." While I agree that CVS certainly does suck, SVN is not a the piece of crap he thinks it us.

He regularly criticizes RMS. I don't agree with everything RMS says, but some of the things that Linus dings him on are completely assinine. The GPLv2 was created before certain technologies existed. The GPLv3 was made to address the problems these new technologies present... and keeps with the spirit of the GPLv2. Linus is too blind to see this.

Don't kid yourself... he's no one's hero. He's just started to believe his own press.

Good day.

Thursday, July 26, 2007

Recent Fix for Gorm allows Mac style menus

I made a correction this morning which allows for Gorm to have a Mac style menu when NSMenuInterfaceStyle is set to the Mac style.

You may need to remove your Gorm preferences, or at least do the following:

defaults delete Gorm NSMenuInterfaceStyle

to reset the style so that it will show up properly.

Thursday, July 19, 2007

Linus, Linux and the GPLv3

What most people forget is that Free Software is a balance between the rights of the creator and the user. Anything that disturbs that balance needs to be dealt with. Both patents and DRM represent things that disturb the rights of the users in favor of the creators.

RMS is not trying to force his personal beliefs on people. You don't have to change to the GPLv3, no one does. Linus, on the other hand, is coming out and engaging in name calling. I've seen more and more of this from Linus over the past few years. I don't see him as any better than RMS, in fact, I see him as worse. To me he seems like the kind of person who, if you don't agree with him, he'll freely and publicly call you names. That doesn't seem to me to be the approach of an intelligent or reasonable person. It seems to be to be the approach of someone who's ego has gotten a little too big for his own good. Not one of the reasons Linus has yet given for his dislike of the GPLv3 has made a great deal of sense from my point of view. Linus seems unable or, possibly, unwilling to engage in a debate about this pertaining to the facts of the matter. Instead he would rather distract people from the real issues by calling RMS a fanatic and calling anyone that adopts the GPLv3 hypocrites.

He states that the GPLv3 will make it difficult for business' to use GPL'd software. This is, in fact, correct. The GPLv3 will make it more difficult for companies to restrict the rights of their users (people like you and me). The GPL was meant to protect against this type of thing. As the world evolved, the GPLv2 became inadequate due to the simple fact that many of the technologies and problems which exist now did not exist when it was drafted. It therefore, has legal holes it in nowadays that one could drive a truck through. The GPLv3 was meant to address the shortcomings and, in some cases, the lack of clarity of the GPLv2. It protects the users better and is clearer on what is and is not distribution.

If Linus wants to play name calling games, that's just fine. If, however, he wants to actually discuss the facts, he and the rest of his sycophantic followers should engage the FSF in a debate.. or, at least, they should have been more of a part of the drafting of the GPLv3 than they were... certainly... if you don't put your 2 cents into something, especially when you're invited to do so (GPLv3 comments were open to the public and, indeed, Eben Moglen publicly asked the Linux contributors to participate)... then, in my opinion, you have no cause to complain when the process is finish.

Linus and his ilk had their chance to say something and they remained silent. Why should they be listened to now?

The GNUstep project is moving to the GPLv3, as are Samba and many other Free Software projects. Linus has forgotten what Free Software is all about... a balance of individual rights. The GPLv3 is, quite honestly, the best way to proceed forward, since it addresses critical issues in the previous version. If Linus want's to think us all hypocrites, then so be it. I would submit, however, that he is the one engaging in hypocrisy. When someone can take Linux and add DRM code to it and then distribute it under the GPLv2 and get away with it, then that defeats the spirit of the GPL in the first place. Perhaps, then, it's not so much hypocrisy on Linus' part as it is a sheer lack of understanding. Perhaps he never understood the GPL in the first place.

Sunday, December 17, 2006

What GNUstep is and is not....

Recent replies to my previous post on the gnustep-dev mailing list have made it necessary for me to further define what I believe GNUstep should become in the future.

GNUstep is a development environment and API, first and foremost. While GNUstep contains a few apps which comprise a minimal desktop... mainly GWorkspace... I feel as though it should not be considered as a desktop project. Yes, I know this contradicts what I said in part of my previous posting, but here's why I've had this change of heart. It is necessary for GNUstep to focus on being one thing and doing that extremely well. GNUstep's main purpose, like OPENSTEP's, is to provide a multiplatform development environment and API.

The way I see it right now, the project is divided into two camps:
  1. The group of people who feel that GNUstep should be an API/development environment
  2. The group of people who feel that GNUstep needs to be a desktop and possibly a standalone OS which is a clone of OPENSTEP/NeXTSTEP.
What I am saying is that if we do #1, #2 can follow. There is no reason why GNUstep cannot be a strong, multiplatform API AND provide the basis for a desktop/OS.

My point, quite simply is, that we must be the first one. The second one can be done in other projects. Examples of these projects are Etoile, Backbone and GAP. These projects all contain applications which make up a desktop environment on top of GNUstep. Once completed they will complement GNUstep's offering. The LiveCD provides the other part of this, which is a self-contained GNUstep environment that people can sample.

Friday, December 15, 2006

Plans for Change

As Chief maintainer, it is up to me to determine the direction of the project.

Over the past several years interest in GNUstep has steadily increased, but not nearly by enough. In order to reach a wider audience, GNUstep needs to do a number of things (not necessarily in priority order):

1) Adopt a more modern look. This includes the look of the windows, the color scheme and how the menus are rendered. It's okay to let that old gui go, it's not going to kill you to do so. ;) Users like things to look "good". This is entirely subjective. Personally, I think GNOME and KDE are quite ugly under the best of circumstances. To this end, we need to make integrated theming available in GNUstep and make it easy.

2) Make regular releases. Start courting different distributions to include GNUstep in their package set. Start getting the word out. Start making sure that people KNOW that GNUstep is alive and well. This, I believe, is the main reason why people have the perception that GNUstep is dead. We don't push ourselves hard enough and into enough distributions to be visible enough for people to care.

3) Eliminate the need for GNUstep.sh, either by making GNUstep place it's binaries and libraries in more "standard" places, or by providing an installation procedure

4) Start appealing more to the Mac OS X/Cocoa crowd. While some people disagree with me, I believe that this group IS the group we need to be playing towards. In the past some have advocated that GNUstep be an "OPENSTEP-like" or a "Cocoa-like" environment. While I don't believe that GNUstep should necessarily follow all of the design decisions Apple has made, I believe that it should implement all of the classes which are useful and which are being commonly used in spite of whether or not people personally agree with having that class in GNUstep or not. A good, and recent, example of this is NSToolbar. It's not about us, remember, it's about them... the users and developers USING GNUstep. We are here to make life easier for our users not to make GNUstep into the epitome of "perfect design" by excluding classes we personally don't like. This is not productive and, not to mention, highly subjective.

5) Focus and concentrate on one and only one set of display technologies per platform. We expend way too much time and energy on maintaining mulitple backends (xlib, art and etc) when we really don't have to. For Linux/BSD we have two functional backends and another on the away for cairo. What's the point of this? In my opinion we should complete the cairo backend and deprecate BOTH the xlib and art backends. xlib is hopelessly outdated and libart isn't really supported by anyone anymore.

6) Decide what we are. Yes, that's right. Some people view GNUstep as a desktop, others view GNUstep as a development environment. GNUstep needs to define itself as one or the other. The website says it's a development environment, but it has many aspects which fit the definition of a desktop environment. In truth, I believe it should be both.

7) Make GNUstep friendly with other environments like GNOME, KDE, Windows and etc. Make sure that GNUstep functions sanely in these environments. This might mean that we need to have behaviors for each different environment. How to implement this is unclear, but it's something that I believe would make the user experience better overall.

All of this is just for starters. Anyone who is familiar with my work on Gorm knows that I tend to focus intently on things until they succeed. I intend to do the same with this project as a whole.

If you have anything to add to or detract from the above, please feel free to comment. I would love to hear all opinions.

Monday, December 11, 2006

Chief Maintainer for GNUstep

I have been involved with GNUstep for seven years now, since 1999. It is my great pleasure to take leadership of the project so that I can help it grow. From my first commit to NSScreen to the latest Gorm nib modifications, this project has been a labor of love for me, and it will continue to be so for many years to come.

I sincerely hope that Adam will remain a part of the project. A "thank you" hardly expresses what the project owes him. You have our deepest gratitude, Adam, for everything.

Friday, November 24, 2006

Qt, Interface Builder and "Modern C++ programmers"

I just don't understand what it is about some people. While reading slashdot, I came upon this article at regdeveloper and I'm thinking to myself that it's nice to see another crossplatform library, aside from GNUstep, in the open source world, but when I get to page 3 the author pops up with this little tidbit:
In fact, on the Mac, I find the combination of Qt and C++ far more intuitive than the weird Objective-C language and the frighteningly non-intuitive Interface Builder.
Whoa there... did he just say Interface Builder is unintuitive? Wow.... of all of the lame brained things I've heard Qt developers say, this really tops the list. If you take a look here.. you will see that it is quite easy to learn InterfaceBuilder, or alternatively, GNUstep's Gorm.

Interface Builder is built on one basic principle: making connections between objects. That's really it. Everything else is peripheral. "Modern" C++ programmers complain about Objective-C because they are completely convinced that C++ personifies what is meant by Object Oriented Programming. In fact, quite the opposite is the case. The person who coined the phrase, Alan Kay, has specifically said that when he did so he was NOT referring to C++:
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind.
He, in fact, had Smalltalk in mind. Objective-C, for the uninitiated, is a dialect of C which incorporates some Smalltalk like features. So, as you can see, it is not the weirdness of Objective-C or the "non-intuitiveness" of InterfaceBuilder, but it's really the closed mindedness and relative stupidity of most "modern C++" programmers which causes this type of thing to happen.

And, as we all know, it's much less common to be intelligent than to be dumb. Perhaps this explains why there are so goddamn many of them.


Tuesday, September 12, 2006

Nice To See Someone Feels The Same Way

It's funny, but this article here really cheered me up today. I've always, personally thougth the exact same thing about GNOME. It is butt-ugly. Nice to see someone else in this world has some sense.

Wednesday, August 30, 2006

New Release of GNUstep available!

The latest release is available on the ftp site. You can also go to the gnustep website to download. This version has support for NSStreams, RTFD, Nibs and lots and lots more... go check it out!

Saturday, August 26, 2006

Nib Encoding Now Working in GNUstep

Although it's experimental at the moment it's working. As you can see here, I'm saving a nib file from Gorm to the "Cocoa Nib" format:














Here is the same nib file after being loaded into IB on OSX:














This functionality opens up all kinds of possibilities for GNUstep. It will ease porting by allowing developers to utilize one format or to easy translate from nib->gorm and vice versa. All Mac OS X developers need to do is to make sure they save the nib files as 10.2 or later, and GNUstep will be able to read the archives.

I'm going to continue refining these enhancements until they are perfected. They're very close at the moment, but like anything new they need to be shaken out a little.

Feel free to comment. Thanks, GJC

Friday, August 25, 2006

NeXTbuntu?

I read a blog today called "nextbuntu" it can be seen at nextbuntu.wordpress.com. A few things stated on the website are entirely false:

1) That GNUstep has changed the names of the classes "and everything"
GNUstep has done nothing of the sort. For all of the classes in the published API of OpenStep and Cocoa, we have used the same class names, constants, method and function names. Period. It is trivial to port applications from Cocoa or OpenStep to GNUstep so long as Carbon and the Core* libraries (for which we have no equivalent) aren't used. The only classes which use GS as a prefix are private classes which are not part of the NS (Cocoa) framework.

It's immediately apparent that no review whatsoever was done by NeXTbuntu regarding the current state of GNUstep.

2) Graphics makeover
This is something that has been on the top of my personal list, as GUI maintainer, for a long time. RIO and others have made some progress in getting this done on the theme branch.

3) Give the user the option of using cascading menus instead of the menu bar.
GNUstep currently has cascading menus, it also has the capability to show the menu as a menu bar on the top of the screen. To change it is a matter of changing a default.

All of these concerns are known and are being addressed in GNUstep at present. The goal of NeXTbuntu seems compatible with that of GNUstep. The only thing about his post that concerns me is his "dislike" of the GPL. Currently GNUstep is under the LGPL, which is a "lesser" version of the GPL which lacks certain things that some people don't like about the GPL.

4) Mac OS X/Cocoa compatibility
Porting from Cocoa to GNUstep or from OpenStep to GNUstep is quite easy. Please see this link: http://mediawiki.gnustep.org/index.php/Portability for more information. Also, recently, as you may or may not have noticed, I've implemented nib compatibility, so it's currently possible to read/write nib files for use on OS X.

Cocoa compatibility is one of the main aims of the GNUstep project. It's a very challenging one because Apple keeps adding things, so It's a moving target.

5) The Desktop Env. vs Development Env. issue
GNUstep needs to be both, or, at least, have a separate desktop project which is the official desktop.

Conclusion
I would suggest that the person behind NeXTbuntu should contact a member of the GNUstep team such as myself, Richard, or Adam to discuss collaboration. If you are planning on re-writing all of this stuff yourself, good luck, but it would go much more quickly for you to use GNUstep. Also, I suggest you drop the attitude that you seem to have, it won't make you any friends.

Saturday, July 15, 2006

Nib loading working in GNUstep

As you can see from the screenshot, Gorm is now able to load nibs just fine.



Gorm should be able to save nibs in the next few weeks. This is a huge step forward for GNUstep. Builder and Loader classes have been added along with a factory class which gets the appropriate builder/loader for a given format. Gorm has also been changed so that it is effectively format agnostic. This means that it can accept any format that a builder/loader class can give it.

In addition to the above Gorm also uses the NSDocument* classes instead of implementing it's own framework.

Monday, April 17, 2006

Why Linux is boring

It seems, for whatever reason, that the Linux community has stopped evolving. We only seem to be heading towards one of two environments: GNOME or KDE. Now, of course, I'm not blind, this trend has been obvious for a very long time. It's amusing, however, that so many people buy into it. They don't see the potential for other possibilities, and they assume that anything which challenges the current two dominant players must be "nuts".

Is this the brave new world of open source? Will KDE and GNOME be all we have? I have looked at both and I am unimpressed with what they offer. Both are poorly designed, amateurish pieces of software. They both feel like they have "evolved" to this point and were never *designed* to be like this. In my next few articles, I'll examine them both further.

What Apple has forgotten...

 When NeXT still existed and the black hardware was a thing, Steve Jobs made the announcement that OPENSTEP would be created and that the ob...