News:

Try the New Recent Posts Link available above Recent Topics on the Front Page

Main Menu

Cocoafibs Is Now Opensource

Started by agerson, November 15, 2005, 12:40:24 AM

Previous topic - Next topic

agerson

CocoaFIBS is now an Open Source project on sourceforge.net. Check us out.

Adam

webrunner

Congrats and very good!
Will you be keeping this forum as a support forum? :cool:  
"There is a difference between knowing the path and walking the path."
Bruce Lee
===================================
Orion Pax |

PolyphonicBrie

Has there been any progress on the opensource FIBS project.  Looking at sourceforge.net, I presume not.

It's a shame that CocaFIBS seems to be stuck at v0.5, it's a great program and easilly the best way to play Backgammon on OS X (IMHO).

I can't code and don't know much about software development... is there actually anything I could do to help?

Regds
PB

padski

I can't speak for those working on and with this software, but the stock response to that question generally tends to be something like "yes lots! feedback, testing, bug reporting, documentation, translation, helping other users in support forums, promotion, encouragement! ... lots of things :-)".  

There is a lot you can do, and in fact, by expressing your enthusiasm you are already contributing.  I was already on my way to take a look at cocoafibs, but now I am even more keen, and I can code, am looking for a free software solution, and fairly inevitably will work on it if I switch to it.

So, you already have the right idea: if you feel that itch, scratch it :-)

The other runner in that race for me right now is kbackgammon, which has a board with a very athena era feel (which I actually like, cos at least it scales), interacts badly with the macos x11 window focussing [anyone tell me how to fix that?], and aspects that would seriously need work for me, but could still win out on portability or general code quality.  If you're solely a mac user, and you have the kind of expectations that I imagine, then I couldn't recommend it to you right now. atm I'm mostly using javafibs, which is mostly okay, give or take a problem on macosx with saved games still waiting for a solution, but long term, without source code that's a dead-end for me, but it's a very popular client amongst fibsters.

The whole Free Software thing can take a little bit of getting your head around.  There is a proportion of projects that show great promise and then the authors move on to other things, and projects do sometimes stall for periods, because after all authors have real life to contend with too, and sometimes there is development going on but it is not immediately obvious. I've been in computing all my life, and there is *nothing* can compete with Free Software at it's best for quality of product, and a huge part of that is the contributions of users who are not coding but step up and do what they can, and importantly what they enjoy doing, in the multitude of tasks that make a thriving Free Software community.  Try it, maybe you'll like it :-)

On the other hand, as a coder myself, I respect any fellow coder who chooses to make a quality product and a great service, and proprietary products can just as easily be the best of the breed. As a macosx user, if you're looking for a good fibs client on macosx, I can recommend that you at least try javafibs because it is good [it took me a bit of work to install, ask if you need help.  although, as I've already indicated mine is not quite right, so you might get better help elsewhere! :-) ], but I've seen too few of the available clients to tell you anything beyond that. In any case, there is more than one way to do it, and different people like different things.

In the case of cocoafibs, having just taken a quick look the the CVS on sourceforge, there doesn't seem to have been much in the way of checkins (new development code published), and little other sign of activity, but it is sometimes the case (not that unusal in fact) with projects on sourceforge that most of the activity taking place elsewhere.

Anyway I'll go take cocoafibs for a spin, and I'll try to remember to post a follow-up here.

padski

ok, so I remember looking at this before.  On the basis of the author's statement that he would no longer be developing it, and comparison to kbackgammon, I went and looked at kbackgammon first.

I've played a few games with cocoafibs, and it is, by and large, a joy to use on macosx, if only because it's so pretty :)

after a little messing about I managed to get a copy out of cvs and it built.

I haven't dug around in the code, but I'm already concerned that a port to gnustep, which I could then build for macosx, free unices and win32, would be less than trivial, especially since I have no experience in this.

I would be willing to consider having a crack at bug-fixes and minor feature additions for anyone who cares to let me know.

Although some of the interface is a bit primitive, kbackgammon is actively developed, already far ahead of cocoafibs in some ways, and I already have it running on linux and macosx (and I imagine it can be got to run on windows fairly easily too).  So kbackgammon is where I'm leaning for my own future use, although it's always possible that could change as I get deeper into the code.

It will be hard to tear myself away from something as pretty as cocoafibs though :)

Mystyk

Well, the one thing that it would be nice to have which I don't think should be too hard is for the main window and the terminal window to remember where they were when closed, and reopen there.  The  public chat window does this already, but not the other two.

padski

sounds easy :-)  I'll take a look tonight and see what I can do.

padski

okay, this seems to work for me on OSX 10.4 with xcode 2.2


diff -urN cocoafibs-0.5/AGFIBSGameController.m cocoafibs/AGFIBSGameController.m
--- cocoafibs-0.5/AGFIBSGameController.m        2006-09-01 20:19:13.000000000 +0100
+++ cocoafibs/AGFIBSGameController.m    2006-09-01 21:43:09.000000000 +0100
@@ -295,7 +295,7 @@
       [theAGFIBSGameView setTheAGFIBSGameModel:[[AGFIBSGameModel alloc] init]];
       [[theAGFIBSGameView theAGFIBSGameModel] newGame];

-       [[self window] setFrameAutosaveName:@"GameWindow"];
+       [self setWindowFrameAutosaveName:@"GameWindow"];
       [self toggleUserListDrawer:nil];
       [theAGFIBSGameView setNeedsDisplay:YES];
       [theAGFIBSGameView setParentWindow:[self window]];
diff -urN cocoafibs-0.5/AGFIBSInviteToGameWindowController.m cocoafibs/AGFIBSInviteToGameWindowController.m
--- cocoafibs-0.5/AGFIBSInviteToGameWindowController.m  2006-09-01 20:19:13.000000000 +0100
+++ cocoafibs/AGFIBSInviteToGameWindowController.m      2006-09-01 21:40:05.000000000 +0100
@@ -25,7 +25,7 @@
/*" Nib file is loaded "*/
{
       [[self window] setTitle:[NSString stringWithFormat:@"Invite from %@", [self playerWhoInvitedName]]];
-       [[self window] setFrameAutosaveName:@"inviteToGameWindow"];
+       [self setWindowFrameAutosaveName:@"inviteToGameWindow"];


       NSString *invitationString;
diff -urN cocoafibs-0.5/AGFIBSTerminalWindowController.m cocoafibs/AGFIBSTerminalWindowController.m
--- cocoafibs-0.5/AGFIBSTerminalWindowController.m      2006-09-01 20:19:13.000000000 +0100
+++ cocoafibs/AGFIBSTerminalWindowController.m  2006-09-01 21:37:41.000000000 +0100
@@ -25,7 +25,7 @@
- (void)windowDidLoad
/*" Nib file is loaded "*/
{
-       [[self window] setFrameAutosaveName:windowName];
+       [self setWindowFrameAutosaveName:@"TerminalWindow"];
}

- (IBAction)addToSavedCommands:(id)sender


although I suspect tabs will have been turned into spaces when I cut'n'paste that.

I found this helpfull CocoaDev: NSWindowFrameAutosizing

but it also suggests there might be issues with this approach on earlier versions.  I don't pretend to see deeply into that at this stage, but then I've never even touched Objective-C before :)

I'll set about trying to get the sourceforge machinery rolling: checking into CVS, building binaries and so on.  In the mean time, if you need help to apply this and build let me know.

Thanks for the suggestion! I never would have got around to doing anything with it on my own account, but that was fun :)  I must say the position the game window insisted on coming up on my ibook 12" was really annoying :) Keep them coming!

padski

okay, so that patch is now at

FrameAutosaveFix1.patch

and I've sent mail to agerson and the other listed developers.

interesting to note (I missed this out in the last one) that some of the NSWindowController classes just work. I get the impression from the url in my last post here that this is something to do with some of the evil xproj metadata :)

Mystyk

That's very cute and all, but... What does one do with it?  

padski

it's a patch. you either apply it and build, or you wait for someone else to distribute a build to you :-)

As I said, I've mailed the developers listed on the sourceforge project to try to get the machinery there rolling to distribute built packages, so hopefully I'll be able to simply point you at a built package to download shortly.

TO BUILD IT YOURSELF

get the source following the usual cvs instructions, see http://sourceforge.net/cvs/?group_id=149852


cvs -d:pserver:anonymous@cocoafibs.cvs.sourceforge.net:/cvsroot/cocoafibs login
cvs -z3 -d:pserver:anonymous@cocoafibs.cvs.sourceforge.net:/cvsroot/cocoafibs co -P cocoafibs


(this seems not to work on the mac, use a linux box, see http://sourceforge.net/tracker/index.php?f...852&atid=783234, or maybe if you use the SCM features in xcode they will cope with it ? I would like to get this fixed)

given that you have the source in ~/cocoafibs and the patch at ~/FrameAutosaveFix1.patch, applying the patch is as simple as opening a terminal window and


mac:~ padski $ cd cocoafibs
mac:~/cocoafibs padski$ patch -p1 < ../FrameAutosaveFix1.patch
patching file AGFIBSGameController.m
patching file AGFIBSInviteToGameWindowController.m
patching file AGFIBSTerminalWindowController.m


after that you find ~/cocoafibs/AGFIBS1.xcodeproj in the finder (open finder, doubleclick cocoafibs folder) and double click it to open the project in xcode (xcode comes with your mac, but you may need to dig out the CD and install it).  click "build and run".

what could be easier? ;)


diane

Never give up on the things that make you smile

burper

Quote
kbackgammon is actively developed, already far ahead of cocoafibs in some ways,

padski, where is this active development?
It's not on sf.net, and the hoefkens site says "under dev".

It what ways would you say that it is ahead of cocoafibs?

burper

I was going to try installing GNUstep on a linux/i86 and see how far I got.
Not far: ./configure in gnustep-base complains that  it
"Could not find Objective-C header files".
I have gcc 4.0.2-8, but apparently not the package needed for Obj-C?
Oh well.

padski

burper, you wrote:
>> kbackgammon is actively developed, already far ahead of cocoafibs in some ways,
> padski, where is this active development?

good question, I'll try to come back to you with the cvs or something.  In the final analysis, I'll cheerfully stand by this statement even if the author of kbackgammon has been MIA longer than the author of cocoafibs: there can be more to the momentum of a piece of software than just the originating author(s) (although, conversely, the author(s) can more easily make differences of kind, rather than degree).

> It's not on sf.net, and the hoefkens site says "under dev".

yeah, great web page, huh? :)

> It what ways would you say that it is ahead of cocoafibs?

it is already abstracts the server end, talks to gnubg, and the author indicates an interest in ng inet bg.  I have yet to look at the code, so these statements are very initial impressions.

previously (irl, not here) I compared kbg to javafibs, and also came to the conclusion that the option of the traditional seperate windows (as also found in cocoafibs), is a good one.  the current fibs may not allow you to watch one match and play another, or to play three at once, but I see no obvious reason why not.

kbg falls down on sensitivity of the user interface to the average user [to be fair, not just the average user, I can bearly stand it ;) ], but that's nothing that couldn't be fixed fairly fast.

By comparison, I'm most of the way through the 472 compiler warnings I get when I build cocoafibs ;)  Now all I need to do is sort out the copyright and licensing, port it, get gnustep finished ;), add important missing features like saved games, stats, etc. and I'm ready to take over the world ;)

and:

> I was going to try installing GNUstep on a linux/i86 and see how far I got.
> Not far: ./configure in gnustep-base complains that it
> "Could not find Objective-C header files".
> I have gcc 4.0.2-8, but apparently not the package needed for Obj-C?
> Oh well.

yeah.  don't do that, world of pain.  what distro ?

suggest:

 apt-get install gnustep

or equivalent.

(not sure, apt/yum on redhat, guess similar on suse.  on slackware ... zzzz. in communist russian linux the packages own you. ubuntu is the "emerging countries" speak for "can't install debian", and in gentoo we are mostly emerging this week. config, make install, "you had to do what?")

if you really want to walk around the dependency chain you could do worse than start at http://packages.debian.org/testing/x11/gnustep, although I would check the documentation that came with the source.

mind you, last time I really tried (some years ago) to get it running, it wasn't really ready. Recent reviews of their webpages (and I've tracked them over some years), suggest to me that it is likely mostly there now, YMMV.

In any case, porting from cocoa to openstep/gnustep is a special case in it's own right:  inexperienced authors targetting the proprietary cocoa implementation, rather than the more general openstep spec, will tend to fall needlessly into the trap of producing unportable code.  Sadly, I am a total newbie to this tiny corner of the portability metaverse, even if I did bring my towel, and I figure the schedule for me to do a port, if I can even raise the interest, would be measured in months or years.  If you [with your prodigous energy:) ] feel like having a go, or even just hacking on it as it stands, let me know: we could sync repos - I could save you the first 300 compiler warnings and then watch in admiration :)


burper

#15
Thanks.
I'm past at least some of the package headaches. I'm on FC4, but it sounds like ubuntu is the place to be these days. Can't keep changing horses though.

In any case, gnustep-base seems to be making alright now. Will forge ahead with it.
Are you saying that you are building cocoafibs on linux/gnustep when you mention the 472 compiler warnings? Or is that on mac?

My energy may not last long, if history is any judge. Many other things to care for.
I'll let you know how far I get.

more:
gnustep-make, base, gui and back built and installed ok I think.
Trying to build cocoafibs now. It at least starts, but there is no GNUmakefile, so I started my own. Any idea what it should look like, at least wrt source file ordering?

webrunner

This is off-topic, please start a new topic for this discussion.
"There is a difference between knowing the path and walking the path."
Bruce Lee
===================================
Orion Pax |


burper

QuoteThis is off-topic, please start a new topic for this discussion.
by all means, let's take the discussion elsewhere

webrunner

That is not what i meant :( and you know it.
"There is a difference between knowing the path and walking the path."
Bruce Lee
===================================
Orion Pax |

diane

You know, my son just made an interesting observation.  As you get older, all that changes is the way the playground looks.....
Never give up on the things that make you smile