Tuesday, February 12, 2013

Interview with Saul Mora on NSBrief


I recently had an interview with Saul Mora on his program NSBrief.  We discussed the history of the project and it's potential.  This interview went very well and I'm looking forward to seeing it posted on his site.

UPDATE: The interview has been posted. :)

Friday, November 23, 2012

Apportable using GNUstep to port applications from iOS to Android

I just found out about a company which is using GNUstep to port applications from iOS to Android.   There website is here.   They list GNUstep as one of the projects they are using here.   Upon further discussions with them they are using GNUstep Foundation very heavily with other parts of GNUstep in other places.

I have to say I didn't expect this, but it is an awesome thing to see!

Monday, September 03, 2012

Someone Finally Said It...

Someone finally said what I've been thinking all of these years.   Though, upon reflection, I think that this comment gives Miguel way too much credit.   Something like the GNOME desktop would have started with or without Miguel.   The fact of the matter is that there were a lot of objections to Objective-C back then.   People weren't used to it's syntax.  The climate seems to have changed lately, since Objective-C has passed C++ in popularity according to a recent statistic.

I have watched for a while and observed that GNOME has successfully reinvented the wheel on so many things which OpenStep and Mac OS X already had and, indeed, which GNUstep already had many years before.  One amusing recent example was a discussion about using app wrappers in GNOME.  Something GNUstep has had since the very beginning.

At any rate, I love GNUstep.  It's always been and always will be a labor of love.

Monday, February 20, 2012

Official GNUstep presence on GitHub

I'm pleased to announce that we finally have an official presence on GitHub.  Currently the mirror updates every few minutes from the SVN repository and is a one way mirror.   That will change in the next few days.    The repository is here: GNUstep github repository.

I have been working hard to put every single GNUstep repository onto the github account that I've created for this purpose.  I should complete this task sometime today or tomorrow so that developers will have access to all of GNUstep's code.   Once I'm done with putting all of the code up (there are still 39 more "repositories" to add) I will work on the scripts to make the commits from git propagate to subversion on GNA.

This allows people who are comfortable with git to use it, should they so choose, and allows people who are comfortable with SVN to stay with SVN and gives us a presence on a site which is very popular and has lots of potentially interested developers.

Please let me know if any of you have any questions or comments. :)

Thanks, GC

Saturday, July 16, 2011

Banning software patents....

I have been fighting against software patents for years.   It's upsetting to see things like this happening:

http://www.widgetpress.com/defense

And this:

http://developers.slashdot.org/story/11/07/16/1152252/UK-Developers-Quit-US-App-Store-Over-Patent-Fears

Doesn't the US realize that we are killing our software industry by doing this?   You can't even say that big business believes in software patents anymore since large companies in the US are now also turning against  them.

The EU and the UK both rejected software patents for a very good reason.  Because they realized that abstract ideas should not be patentable.   Software is fundamentally reducible to mathematical algorithms.   It is incremental in it's nature and, many times, there is only one way to do things.  For all of these reasons and many more.

Most companies today, especially small ones, are forced to patent certain things they do because they need to maintain a patent portfolio.   They do this to defend themselves.   So, like nuclear weapons, patents proliferate in a sort of MAD (Mutually Assured Destruction) approach.

As an incentive to reform I would like to see the USPTO take a dose of what it is creating.  The USPTO should be required to pay a fine for every patent which is found invalid with the money going towards a fund to pay restitution to those who've lost money due to the USPTO's negligence.  In addition, it should be an option to sue the USPTO for issuance of a bad patent by either the party holding the patent or the party which was sued due to the issuance of the patent or both.

Ultimately, it is the USPTO putting these weapons of mass destruction in everyone's hands.  They should be forced to reap what they've sown.

Saturday, July 02, 2011

Building clang for use with GNUstep

1) Build using the instructions here: http://clang.llvm.org/get_started.html

2) Once that's done, download the latest version of Hans Boehm's garbage collector here: http://www.hpl.hp.com/personal/Hans_Boehm/gc/

3) Untar, Build and install boehm-gc.... it should be gc-7.1.tar.gz
    build it with clang like so:
              ./configure CC=clang LD=gcc && make CC=clang LD=gcc
          make install
    NOTE: You only need to do step 2 & 3 if you want garbage collection, if not you can skip it.

4) Build gnustep-make like so and install it:

              ./configure CC=clang LD=gcc && make CC=clang LD=gcc
          make install

5) Build libobj2 and install it:
              make CC=clang CXX=clang++ LD=gcc
         make install
              
6) Build base, gui and back and install them:
         ./configure CC=clang CXX=clang++ LD=gcc && make CC=clang CXX=clang++ LD=gcc messages=yes
         su
         . /usr/GNUstep/System/Library/Makefiles/GNUstep.sh && make GNUSTEP_INSTALLATION_DOMAIN=SYSTEM install

That should be all there is too it.  Not much, but a few little details which might serve to make it enough of a pain to discourage some people.

Thursday, June 16, 2011

Talk in Western Pennsylvania (Pittsburgh) April 21, 2011 - Report



I realize this is a little late, but I figured that I should post my impressions anyway.   First I have to say I was honored when Mark Darymple invited me to come and talk at Cocoaheads in Pittsburgh.  I tend to give talks off of the cuff since I don't usually do well sticking to a script and that's what I did at this meeting and it worked fairly well.

The reception of GNUstep was very positive and the members of the group were eager to learn.  I got a lot of questions about the project including what we're planning to do with respect to an iOS compatibility layer and also what we're currently working on.   I also did get a lot of complaints about how GNUstep looks, in general.  I showed them the work that's being done on both Windows and GNOME to improve how GNUstep blends in with those environments using the new theming code.   They seemed very impressed by that as well as by Bean.

I did a basic demo of how Gorm works as well as PC and showed them pbxbuild building a Mac OS X project.  

Most of the members of the group knew about GNUstep, but didn't know it currently followed Cocoa and some had not followed it in a while since they assumed the project was no longer active.   This is one of the many reasons why I am trying to do this talks.  To make sure I spread the word that it is still out there and still kicking.

I sincerely thank the people of Cocoaheads, Pittsburgh for giving me the opportunity to come and talk.  It was a distinct pleasure meeting each and every one of you. :)

Sunday, January 02, 2011

How to build the GNOME theme...

This article is in response to a request for instructions on how to build the theme...

Given that this is currently very experimental code I didn't think an article about how to use it was in order yet since it's not released, but it makes sense to do this nevertheless. :)

Here's how:

  1. Get the code from SVN per the instructions at the gna.org project page.  The URL for the SVN project page is https://gna.org/svn/?group=gnustep 
    1. You should be able to go to the GNUstep project and choose Source Code->Use Subversion and follow the instructions there.   Once you check out, the code should be located at gnustep/modules/plugins/themes/GnomeTheme.
  2. Make certain you have all of the necessary GNOME packages installed as well as their dev equivalents, these include (please let me know if I'm missing anything):
    1. gtk-x11-2.0
    2. gdk-x11-2.0
    3. atk-1.0
    4. pangoft2.1.0
    5. gdk_pixbuf-2.0
    6. pangocairo-1.0
    7. gio-2.0
    8. pango-1.0
    9. gobject-2.0
    10. gmodule-2.0
    11. glib-2.0
    12. gconf-2.0
  3. Build GNUstep's core libraries... there are plenty of tutorials on how to do this.
  4. You should then be able to build the GNOME theme and install it simply by doing: 
    1. make
    2. make install (as root)
  5. Once that's done, you can start using the theme in one of three ways:
    1. defaults write NSGlobalDomain GSTheme GnomeTheme
    2. open the Info panel of the app you want to test the theme with and choose the theme for the application there
    3. open SystemPreferences and go to the Themes module and choose the theme from the list of themes available there. 
Please let me know if there's anything I missed here or if any further information is needed.  GC

Wednesday, December 29, 2010

Menu Separator goodness...


Menu separators make a big difference. ;)   I know this is a relatively minor change, but it looks excellent with the theme.

Monday, December 27, 2010

More GNOME Theme Improvements

Bean running with the GNOME native theme
As you can see...  I'm making some progress.   I've corrected a number of problems with GNUstep's in window menu generation.   It's now very close to what most other apps generate in GNOME.

I considered a few approaches, one was to leverage some of the code I wrote for the Windows theme to generate the menu from the menu structure and create a GtkMenu to attach to the Window... the issue with this approach was that it would have required the window to be a GtkWindow, which wasn't a good idea.  The other approach I considered was to reparent the GNUstep created window into a GtkWindow which contains the GtkMenu.  The issue with this was that it would have been impossible to switch back to another theme which doesn't use the GNOME widgets and GtkWindow.

The approach I settled on is a good middle ground.   The changes fix a number of issues which were present in the code previously.   Also, it gives more control to us regarding the look of the in-window menus.

My plans are to work out the remaining bugs with this and release it so that people can start playing with it.   I will have more screenshots in the future as it becomes more mature.  Feel free to comment on anything you think can be improved. :)

Wednesday, December 22, 2010

GNOME on GNUstep: First look

Here is what it currently looks like:

As you can see, it's not perfect.  The icon is still on the bottom left, the menu is still floating.   I've made all of the changes necessary to get the GNOME theme working again.   I've also refactored it so that it loads nicely from SystemPreferences, which the previous version didn't do.

Once I get the final details worked out, you should be able to run your GNUstep applications alongside GNOME applications without any problems and without them sticking out like a sore thumb.

Any comments are appreciated.   I am trying to make GNUstep blend into GNOME as much as possible so that you can port your Cocoa apps to many different environments easily.

Sunday, November 21, 2010

Sony SNAP using GNUstep as it's development environment...

Sony SNAP is using GNUstep as it's development environment.   They are, apparently, going to use it as the basis for an SDK they're developing to build software for their Consumer Electronics devices, such as TVs and etc.

Here is the link: http://snap.sonydeveloper.com/pages/develop/

We have been in touch with SONY about this and are very excited about the prospects.   More soon. :)

Tuesday, November 16, 2010

GNUstep Is Not OpenStep...

Hey guys.   I thought I would make this blog post to make a point: GNUstep is not OpenStep.  GNUstep is a Cocoa implementation and has been for quite some time.   I'm concerned that every so often in books or on blogs I see "GNUstep is an OpenStep implementation for Linux."  This statement is blatantly wrong in two different capacites: 1) GNUstep is Cocoa and 2) GNUstep works on Linux, Solaris, BSD, Windows, etc.

Let's also address a few other misconceptions.  GNUstep has been used to port a number of applications to Windows and Linux without any issues.  So when people say "GNUstep is incomplete" they, honestly, don't really know what they're talking about.  In most cases, GNUstep will contain whatever you need and, if it's not there then, for goodness sake, do the thing that supposed to be done in Free Software... implement it and contribute the code to us.

I'm beginning to wonder why so many people have trouble with this very simple concept.   Please, people, stop spreading misinformation about GNUstep.   GNUstep is not OpenStep, OpenStep is a dead standard.  GNUstep is [an attempt to implement a Free Software version of] Cocoa.  While GNUstep does retain some of the OpenStep methods which are useful, it is a Cocoa implementation at this point in time and I'm really tired of correcting people on this point.

Tuesday, August 10, 2010

GNUstep Development Visualization using Gource :)

I've just used gource to produce several videos to show GNUstep's development over the years.   I've only done the parts of GNUstep which reside under core and, of course, Gorm.

Special thanks to Andy Ruder for setting up his GNUstep git repositories at gitweb.aeruder.net. :)  Without these I would have had to suffer through the pain of importing GNUstep into git from SVN, not a painless operation. ;)

Hopefully, you'll see some familiar names from the past and present.

NOTE: I suggest viewing these in 720p (HD) as that will make the information easier to make out.

Here is Base:



Here is GUI:



Here is Back:



Here is Make:



Here is Gorm:



The command I used to make these was this (using gnustep-back as an example):

gource -s 0.01 --stop-at-end --highlight-all-users gnustep-back --output-ppm-stream - | ffmpeg -b 3000K -f image2pipe -vcodec ppm -i - ./gnustep-back.mp4

I was able to download gource using Mac Ports and also got ffmpeg from the same place and installed it on my MacBook. I also have gource built on my Linux box as well and it should work the same there for anyone who wants to give it a try. :)

Thursday, July 01, 2010

Analysis of the Bilski case

It's unfortunate that SCOTUS has ruled as it has on In Re: Bilski since this was a landmark opportunity to strike down the patentability of software.   Instead they bowed to business as usual and decided to preserve the patentability of software, so our fight goes on with respect to fighting this.

http://www.patentlyo.com/patent/2010/06/bilski-v-kappos-business-methods-out-software-still-patentable.html

While it does seem to make software harder to patent, it doesn't go far enough and it seems to be too little too late.   More on this is here:

http://www.lexology.com/library/detail.aspx?g=0a681b87-8340-4759-8de9-1dd495a405e7
http://www.groklaw.net/article.php?story=20100628100422167

This is a frustrating day for me and many others, since it seems to make very little change to the status quo.   As others have said, this is a "no-op" and we're back to where we were before Bilski was even started.

Tuesday, June 29, 2010

Spam on my blog.... changing to members only for now...

I've recently been getting a lot of spam on my site, so I'm changing it so that only members can make comments.   I apologize for any inconvenience.

Sunday, May 16, 2010

Progress on Plans for Change...

The old blog post is here. Even though it's been four years, I'm happy with where things are at the moment. Over the past few years the following things from that list have been accomplished:

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.

This has been accomplished by the Etoile folks without question. But my blog post was meant to push the project itself to adopt a more modern looking GUI. So far we haven't done that yet, but the mechanisms are in place now to do it. The theming engine is now much more capable than it was before and should be able to allow the creation of some killer themes.

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.

Given that our last release was last year and it's now the middle of 2010, we've still got a long way to go on this one too. This release, however, was a big one since it included a lot of functionality, not the least of which is the theme engine I mentioned above.

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

We have a GNUstep.conf file in /etc/GNUstep which environment variables get read from.

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.

This has happened. More free software and proprietary projects are starting to take notice of GNUstep and it's helped improve GNUstep since contributions have been made to the project which have increased stability, performance and efficiency for all concerned.

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.

This has happened just recently with Fred's recent change making Cairo the default backend. Cairo provides the ability for us to really forget about writing another graphical backend for any operating system that Cairo supports which takes an ENORMOUS burden off of the project and allows us to leverage the work done by the Cairo project.

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.

This has happened and has worked out pretty well. GNUstep has defined itself as a development environment. GNUstep is what powers a desktop environment whether that is Etoile or just WindowMaker with GWorkspace.

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.

The recent theming capability has accomplished this. :)

I believe we should commit ourselves to getting the rest of these tasks completed. They should all help GNUstep move forward. Right now stability, and more applications are key for the project.

Tuesday, May 04, 2010

An Artist's Concept of GNUstep's redesigned UI


A few years back Jesse Ross came up with this concept for a new look for GNUstep.

I'm wondering if there are any ideas/looks/concepts we can glean from this which might be of use. I have always liked the general look of it.

One person I talked to about it suggested being able to "dock" the menu bar. That is... attach it to a particular place on the screen, such as the border or something so that it could act like the menu bar on OS X, if we really wanted it to. Interesting thoughts. :)

Saturday, April 24, 2010

A little fun with SIMH and OpenVMS

VAX/VMS has always been interesting to me. I'm currently a member of the OpenVMS Hobbyist program, so I have a copy of OpenVMS 7.3/VAX.

I decided to run it on SIMH which is an excellent collection of software aimed at preserving computer history through virtualization of obsolete machines.

I must admit that, for me, VMS brings about a bit of nostalgia, since it's where I cut my teeth. Some of the first systems I was ever lucky enough to play with when I was young were VMS systems and it inspired me to learn more and more about software and computers in general.

What I did here uses the latest version of SIMH built for PPC. You'll need to change SIMH a little in order to get it to build on the Mac, the instructions are here. Also, you'll need to follow Phil Wherry's excellent guide on getting VMS installed in the first place, that's here. And, finally, you'll need to get DECWindows installed, that information is provided here.

Information about the VMS Hobbyist program is available from HP and from this site. The only issue I found was that it takes a while to actually get the software since they want to first make certain that you have the membership so that you will not use the copy of VMS that they send for commercial purposes. :)

A fair amount of free and open source software is available for OpenVMS. I'm currently working on installing the latest version of GCC for VAX on my virtual VAX here.

GC

Monday, April 19, 2010

Here's Toetag. Another example of portability. :)

Here's "Toetag." It's an open source Quake level editor being ported by Eric W.

As you can see he's been able to make a fair amount of progress in a number of things. The NSStepper/NSStepperCell for instance has been improved as well as Font display among other things.

Here's the original website here.


More to come... :)

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...