Monday, September 15, 2014

ToDo for GNUstep

My personal todo list on GNUstep at the moment in no particular order:

  1. XIB v5 support, currently working on this.
  2. Complete XIB/NIB creation via Gorm
  3. NSMetadata classes
    1. Involves looking into GWorkspace to see how metadata is extracted for files and to separate this functionality out.
  4. Printing on Windows. Integration with PrintDlg and GDI Printing API on Windows.
  5. Fix issues in buildtool/xcodebuild clone.
  6. WebKit implementation/Browser using CEF+elements of SWK
  7. Class Parser bugs fixed for ProjectCenter.

Friday, June 06, 2014

GNUstep's position on Swift


I wanted to make this post to make it clear to the community regarding GNUstep's position on the new Swift language.    If the language is released as open source then GNUstep will fully support it.  If it is, however, not released as open source then we will either take steps to create an implementation ourselves or provide any assistance needed to a group of people other than ourselves who are willing to take that on.

I believe that the language itself is a good one and that it represents an opportunity for more people to take part in the OSX, iOS and GNUstep communities if it's properly done.

My previous post was to illustrate the dangers of lock-in if that is, indeed, Apple's intention.  Those warnings should not be construed as any condemnation of the language itself.  This post is not backpedaling, only a clarification of my previous position (see the comments in the previous post).

Wednesday, June 04, 2014

Swift



Swift is a new programming language developed by Apple as a replacement for Objective-C.   I've had some time to review the language by reading the iBook which Apple made available on it for free.   It seems to me that the language is very javascript  like in it's design and is a clear concession to those who don't like Objective-C's syntax.   The real purpose behind this language, however, is a little darker.  I believe that it's ultimate purpose is lock-in.   The more developers start using Swift the less they are going to be able to move to other platforms (such as Android).   

Please be cautious when using it and make sure that the only platform you wish to release on is iOS because that is very likely the decision you ARE making if you choose swift.

The language itself is a very nice language, the implications of it are what concern me.  Anything which impacts user/developer freedoms makes me concerned.

Friday, November 01, 2013

GNUstep Ohloh Stats

Here are the latest stats from Ohloh. :)

30 Day SummaryOct 2 2013 — Nov 1 2013

12 Month SummaryNov 1 2012 — Nov 1 2013

  • 1195 CommitsUp +159 (15%) from previous 12 months
  • 17 ContributorsDown -2 (10%) from previous 12 months

Monday, August 12, 2013

Wednesday, July 24, 2013

The Dangers Of Walled Gardens

Apple's current status with their development site illustrates just one of the many issues with walled gardens.   The most significant of which is the compromise if user freedoms.   The one illustrated by last weeks incident shows us just how much developers for the iPhone and Mac app stores are at Apple's mercy.   While this was inherently obvious it has never been more obvious than right now just how fragile this relationship always was.

The real evil of Apple's app store is not the app store itself, but the code signing technology that is tied to it.   Since Apple is the only entity which can approve binaries to run on iOS devices or to go into the iOS or Mac app stores it represents a single point of failure.   This is the true evil of it.  What happens if Apple goes away?   We're left with devices which can't be used since the mothership is now gone.  Is this right?

I only hope that this incident gives people who are enamored with this concept time to reflect on what it's weaknesses really are.  

Google has managed to implement an appstore without much of the evil that is inherent in Apple's implementation and, even though Google may have done some evil with the NSA, at least it didn't do quite as much evil as Apple did in this particular instance.

Saturday, June 15, 2013

GNUstep Mythbusting...

Myth #1: GNUstep doesn't care about or implement any of the Cocoa frameworks or classes

As illustrated by some of the comments here, people still don't understand, really, what GNUstep is all about.  Sometimes I think it's the name, and sometimes I think it's just that people are willfully ignoring the facts or just want to spew nonsense in order to sound intelligent.

GNUstep implements most of the 10.5 APIs and is currently working on some of the 10.6, 7 and 8 Cocoa APIs.   Additionally, the project has implemented CoreFoundation, CoreGraphics and CoreAnimation is upcoming.   So, please, people.  Get off of this whole "GNUstep doesn't care" thing. We care and we are implementing as much as we can.   We are roughly 20 individuals, Apple is multi-billion dollar corporation.

Myth #2: No one uses GNUstep.

Wrong again, GNUstep is currently in use in millions of devices around the world.   This company http://www.apportable.com is using much of the GNUstep codebase to accomplish this.   It forms the basis for their UIKit implementation which is used to port applications from iOS to Android.   If we were only OpenStep, this wouldn't be possible.   Additionally, GNUstep is used by a number of companies to produce ports of their applications to Windows and to Linux.   See our wiki page about GNUstep success stories for more.

Myth #3: GNUstep can only look like NeXTSTEP

Not true.  GNUstep has devoted a lot of time to theming and the ability to make applications written using GNUstep look like just about anything you would like them to look like.

I'm sure these aren't the only myths circulating, but they are the most prominent and, to me, the most annoying.   I can't seem to get it through people's heads.  GNUstep is so much more than it used to be and so much more than people think it is.  I wish, for once, that people would actually look at the project before making judgements.

Myth #4: GNUstep looks like NeXTSTEP, so it must only implement NeXTSTEP

I honestly never expected developers to judge a book by it's cover, but many people do, even otherwise intelligent people.

Sunday, April 14, 2013

This is version 1.2.20 of Gorm.


1 ANNOUNCE
**********

This is version 1.2.20 of Gorm.

1.1 What is Gorm?
=================

Gorm is an acronym for Graphic Object Relationship modeler (or perhaps
GNUstep Object Relationship Modeler).

   Gorm is a clone of the Cocoa (OpenStep/NeXTSTEP) `Interface Builder'
application for GNUstep.

1.2 Noteworthy changes in version `1.2.20'
==========================================

   * Bug fixes #28643, #32827

   * Corrected issues with updating document when there is a change.

   * Add cells as objects to the document so they can be properly
     edited.

   * Changes to prevent recursive frame change notifications.

1.3 How can I get support for this software?
============================================

You may wish to use the GNUstep discussion mailing list for general
questions and discussion.  Look at the GNUstep Web Pages for more
information regarding GNUstep resources `http://www.gnustep.org/'

1.4 Where can you get it?  How can you compile it?
==================================================

You can download sources and rpms (for some machines) from
`ftp://ftp.gnustep.org/pub/gnustep/dev-apps'.

1.5 Where do I send bug reports?
================================

Bug reports can be sent to .

1.6 Obtaining GNU Software
==========================

Check out the GNUstep web site. (`http://www.gnustep.org/'), and the
GNU web site. (`http://www.gnu.org/')

Tuesday, April 02, 2013

Version 0.23.1 of the GNUstep GUI library (`gnustep-gui') is available

1 ANNOUNCE
**********

This is version 0.23.1 of the GNUstep GUI library (`gnustep-gui').

1.1 What is the GNUstep GUI Library?
====================================

It is a library of graphical user interface classes written completely
in the Objective-C language; the classes are based upon Apple's Cocoa
framework (which came from the OpenStep specification as release by
NeXT Software, Inc).  The library has been enhanced in a number of ways
to take advantage of the GNU system.  These classes include graphical
objects such as buttons, text fields, popup lists, browser lists, and
windows; there are also many associated classes for handling events,
colors, fonts, pasteboards and images.

   The GNUstep GUI Library is designed in two parts.  The first part is
the front-end component which is independent of platform and display
system.  This front-end is combined with a back-end component which
handles all of the display system dependent such as specific calls to
X/Windows.  This design allows the GNUstep applications to have the
"look and feel" of the underlying display system without any changes to
the application, and the library can be easily ported to other display
systems.

   The GNUstep GUI Library requires the GNU Objective-C compiler, the
GNUstep Base Library, the TIFF Graphics library, and a back-end
component like the GNUstep 'Back' Backend.

1.2 Noteworthy changes in version `0.23.1'
==========================================

This is a bugfix release, primarily to deal with coding/archiving
issues.

1.3 Where can you get it?  How can you compile it?
==================================================
The gstep-gui-0.23.1.tar.gz distribution file has been placed at
`ftp://ftp.gnustep.org/pub/gnustep/core'.

Read the INSTALL file or the GNUstep-HOWTO for installation
instructions.

1.4 Where do I send bug reports?
================================

Please log bug reports on the GNUstep project page
`http://savannah.gnu.org/bugs/?group=gnustep' or send bug reports to
<bug-gnustep@gnu.org>.
1.5 Obtaining GNU Software
==========================

Check out the GNUstep web site. (`http://www.gnustep.org/'), and the
GNU web site. (`http://www.gnu.org/')

The GNUstep Base Library, version 1.24.4, is now available.

1 Announcement
**************

The GNUstep Base Library, version 1.24.4, is now available.

1.1 What is the GNUstep Base Library?
=====================================

The GNUstep Base Library is a library of general-purpose, non-graphical
Objective C objects.  For example, it includes classes for strings,
object collections, byte streams, typed coders, invocations,
notifications, notification dispatchers, moments in time, network ports,
remote object messaging support (distributed objects), and event loops.

   It provides functionality that aims to implement the non-graphical
portion of the OpenStep standard (the Foundation library).

   There is more information available at the GNUstep homepage at
`http://www.gnustep.org'.

1.2 Noteworthy changes in version `1.24.4'
==========================================

   * Updated time zone data

   * OSX 10.7 NSCalendar methods

   * Portability improvments and minor bugfixes

   * More testcases in the testsuite

1.3 Where can you get it?  How can you compile it?
==================================================

The gnustep-base-1.24.4.tar.gz distribution file has been placed at
`ftp://ftp.gnustep.org/pub/gnustep/core'.

The GNUstep Makefile Package version 2.6.4 is now available.

1 Announcement
**************

The GNUstep Makefile Package version 2.6.4 is now available.

1.1 What is the GNUstep makefile package?
=========================================

The makefile package is a simple, powerful and extensible way to write
makefiles for a GNUstep-based project.  It allows the user to write a
project without having to deal with the complex issues associated with
configuration, building, installation, and packaging.  It also allows
the user to easily create cross-compiled binaries.

1.2 Changes in version `2.6.4'
==============================

Test framework extended equality tests.

   Android build target

1.3 Obtaining gnustep-make
==========================

You can get the gstep-make-2.6.4.tar.gz distribution file at
`ftp://ftp.gnustep.org/pub/gnustep/core'

   Please log bug reports on the GNUstep project page
`http://savannah.gnu.org/bugs/?group=gnustep' or send bug reports to
<bug-gnustep@gnu.org>.

Monday, March 04, 2013

Viking by Brilliant Service is using GNUstep in the Objective-C based software for their Head Mounted Device, pictured here:



Their website is here.  :)  I'm very happy to see GNUstep being used in so many new and different places.   The prospects for the future are exciting.

Sunday, March 03, 2013

The GNUstep Base Library, version 1.24.3, is now available.

1 Announcement
**************

The GNUstep Base Library, version 1.24.3, is now available.

1.1 What is the GNUstep Base Library?
=====================================

The GNUstep Base Library is a library of general-purpose, non-graphical
Objective C objects.  For example, it includes classes for strings,
object collections, byte streams, typed coders, invocations,
notifications, notification dispatchers, moments in time, network ports,
remote object messaging support (distributed objects), and event loops.

   It provides functionality that aims to implement the non-graphical
portion of the OpenStep standard (the Foundation library).

   There is more information available at the GNUstephomepage at
`http://www.gnustep.org'.

1.2 Noteworthy changes in version `1.24.3'
==========================================

   * Implementation of the NSXML DOM classes

   * Implementation of consistent TLS/SSL support

   * Implementation of new/selectable sorting algorithms

   * More explicit dependencies on external libraries.

1.3 Where can you get it?  How can you compile it?
==================================================

The gnustep-base-1.24.3.tar.gz distribution file has been placed at
`ftp://ftp.gnustep.org/pub/gnustep/core'.

Please log bug reports on the GNUstep project page
`http://savannah.gnu.org/bugs/?group=gnustep' or send bug reports to
<bug-gnustep@gnu.org>.

GNUstep GUI 0.23.0

1 ANNOUNCE
**********

This is version 0.23.0 of the GNUstep GUI library (`gnustep-gui').

1.1 What is the GNUstep GUI Library?
====================================

It is a library of graphical user interface classes written completely
in the Objective-C language; the classes are based upon Apple's Cocoa
framework (which came from the OpenStep specification as release by
NeXT Software, Inc).  The library has been enhanced in a number of ways
to take advantage of the GNU system.  These classes include graphical
objects such as buttons, text fields, popup lists, browser lists, and
windows; there are also many associated classes for handling events,
colors, fonts, pasteboards and images.

   The GNUstep GUI Library is designed in two parts.  The first part is
the front-end component which is independent of platform and display
system.  This front-end is combined with a back-end component which
handles all of the display system dependent such as specific calls to
X/Windows.  This design allows the GNUstep applications to have the
"look and feel" of the underlying display system without any changes to
the application, and the library can be easily ported to other display
systems.

   The GNUstep GUI Library requires the GNU Objective-C compiler, the
GNUstep Base Library, the TIFF Graphics library, and a back-end
component like the GNUstep 'Back' Backend.

1.2 Noteworthy changes in version `0.22.0'
==========================================

New features include:
   * This version is binary incompatible with previous versions due to
     the change of NSNotFound in GNUstep base.

   * Support for drawing the GUI with a scale factor, for high-DPI
     monitors.

   * Character panel

   * Color picker "Magnifier" tool, for grabbing the color of arbitrary
     parts of the screen

   Many NSImage improvements (Mac OS X 10.6 drawing methods, better
selection of image reps, better support for icons). Many bugfixes,
including in Xib loading, printing, and NSView geometry.

1.3 Where can you get it?  How can you compile it?
==================================================

The gstep-gui-0.23.0.tar.gz distribution file has been placed at
`ftp://ftp.gnustep.org/pub/gnustep/core'.

Read the INSTALL file or the GNUstep-HOWTO for installation
instructions.

1.4 Where do I send bug reports?
================================

Please log bug reports on the GNUstep project page
`http://savannah.gnu.org/bugs/?group=gnustep' or send bug reports to
<bug-gnustep@gnu.org>.
1.5 Obtaining GNU Software
==========================

Check out the GNUstep web site. (`http://www.gnustep.org/'), and the
GNU web site. (`http://www.gnu.org/')

GNUstep-make 2.6.3

1 Announcement
**************

The GNUstep Makefile Package version 2.6.3 is now available.

1.1 What is the GNUstep makefile package?
=========================================

The makefile package is a simple, powerful and extensible way to write
makefiles for a GNUstep-based project.  It allows the user to write a
project without having to deal with the complex issues associated with
configuration, building, installation, and packaging.  It also allows
the user to easily create cross-compiled binaries.

1.2 Changes in version `2.6.3'
==============================

Minor bugfix release.

1.3 Obtaining gnustep-make
==========================

You can get the gstep-make-2.6.3.tar.gz distribution file at
`ftp://ftp.gnustep.org/pub/gnustep/core'

   Please log bug reports on the GNUstep project page
`http://savannah.gnu.org/bugs/?group=gnustep' or send bug reports to
<bug-gnustep@gnu.org>.

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.

Swift->ObjC interop

Some interesting notes. I will update this posting as i find more: * https://dart.dev/guides/libraries/objective-c-interop