How to ensure methods are set in my GNUstep build

2020-04-29 Thread Gustavo Tavares
Hello!
> 
> I've installed GNUstep using this script from Plaurent: 
> https://github.com/plaurent/gnustep-build/blob/master/ubuntu-19.10-clang-9.0-runtime-2.0/GNUstep-buildon-ubuntu1910.sh
> and have been successfully building some projects with it.
> 
> For my current project, I'm encountering a build error. I was thinking it was 
> a config on the GNU install—and later I thought it was something I could 
> define in a Makefile—but I can't seem to work out how to solve it.
> 
> The error is this:
> 
> MyFile.m:130:50: error: no visible @interface for 'NSDateComponents' declares 
> the selector 'valueForComponent:'
> 
> I can see that the MAC_OS_VERSION and GS_API_VERSION are somehow determined 
> in GSVersionMacros.h and that this determines whether to inlcude this 
> NSDateComponents functionality—but I also don't know where the headers are in 
> my system. Looking in /usr/GNUstep/System/ and ~/GNUstep/Library/Headers and 
> I can't echo it out either.
> 
> https://github.com/gnustep/libs-base/blob/fc0c0da188eb4ee2800ab9643394aa16660ef6bd/Headers/GNUstepBase/GSVersionMacros.h
> 
> Would really appreciate it if someone could help me get this built :) What do 
> I need to do / invoke?
> 
> Thank you!
> 
> Gustavo


Running `buildtool` on OSX

2020-06-12 Thread Gustavo Tavares
Hello!

So I have a version of `tools-buildtool` on my Mojave Mac.

I was able to build it. On running it though—I got this error: 

> buildtool
dyld: lazy symbol binding failed: Symbol not found: _ASSIGN

Referenced from: /Users/gtk-air/Library/Frameworks/XCode.framework/XCode 


Expected in: flat namespace



dyld: Symbol not found: _ASSIGN

Referenced from: /Users/gtk-air/Library/Frameworks/XCode.framework/XCode 


Expected in: flat namespace



Abort trap: 6


Not sure what to do :/

What should I try?

Running `grep -R __ASSIGN .` shows *.o and *.dylib files so this is a bit above 
my pay-grade at present.

Thank you,

Gustavo

Re: Running `buildtool` on OSX

2020-06-12 Thread Gustavo Tavares
Hi Greg,

I wanted to build on all systems with `ONE TRUE COMMAND`.

Originally I was thinking of maintaining a GNUmakefile for all my projects 
because in theory it's supposed to work on Cocoa. In the process—I tried to 
build `buildtool` on the Mac.

Thought it could be a different approach to achieve the `ONE TRUE COMMAND`.

Or at the very least—begin an automatic process of creating GNUmakefile's for 
my projects from my main computer.

Thanks,

G


On Fri, Jun 12, 2020, at 1:48 PM, Gregory Casamento wrote:
> Gustavo,
> 
> What's the purpose of running it under Cocoa?
> 
> The buildtool utility is not meant to run on a mac. It's purpose is to build 
> xcode projects against GNUstep's libraries without the need for GNUmakefiles 
> on Linux/BSD/Windows etc. It is a replacement for xcodebuild on other 
> platforms. 
> 
> Yours, GC
> 
> 
> On Fri, Jun 12, 2020 at 12:23 PM Gustavo Tavares  
> wrote:
>> __
>> Hello!
>> 
>> So I have a version of `tools-buildtool` on my Mojave Mac.
>> 
>> I was able to build it. On running it though—I got this error: 
>> 
>> > buildtool
>> dyld: lazy symbol binding failed: Symbol not found: _ASSIGN

>> Referenced from: /Users/gtk-air/Library/Frameworks/XCode.framework/XCode 
>> <http://xcode.framework/XCode>

>> Expected in: flat namespace

>> 

>> dyld: Symbol not found: _ASSIGN

>> Referenced from: /Users/gtk-air/Library/Frameworks/XCode.framework/XCode 
>> <http://xcode.framework/XCode>

>> Expected in: flat namespace

>> 

>> Abort trap: 6

>> 
>> Not sure what to do :/
>> 
>> What should I try?
>> 
>> Running `grep -R __ASSIGN .` shows *.o and *.dylib files so this is a bit 
>> above my pay-grade at present.
>> 
>> Thank you,
>> 
>> Gustavo
> 
> 
> -- 
> Gregory Casamento
> GNUstep Lead Developer / OLC, Principal Consultant
> http://www.gnustep.org - http://heronsperch.blogspot.com
> https://www.patreon.com/bePatron?u=352392 - Become a Patron


Re: I: A window manager written in objective-c: uroswm and gnustep support problems

2020-09-14 Thread Gustavo Tavares
Hey Greg! Thank you for the info. Replying to you because I find this makes me 
want to ask:

What’s the difference between a window manager and an NSWorkspace? Or how might 
they be related?

https://developer.apple.com/documentation/appkit/nsworkspace?language=objc

http://www.gnustep.org/resources/documentation/Developer/Gui/Reference/NSWorkspace.html

To me, it seems like the communication protocol could fit in here.

On Cocoa, NSWorkspace already has: 

@property(readonly, copy) NSArray *runningApplications;

NSApplication has an array of Windows.

You could conceivably imagine a category method on NSWorkspace that could give 
you all the windows. 

- Then you could add styling that can be sent down from the workspace
- Inagine something like NSWindowArrangement that can be launched from an 
NSWorkspace and will launch the apps saved to it as well.

Would love to what you have in mind!

On Mon, Sep 14, 2020, at 3:38 PM, Gregory Casamento wrote:
> 
> I don't know if you guys will consider this off-topic, but I feel compelled 
> to offer the following information:
> 
> On OPENSTEP and NeXTSTEP before it, there was no need for a window manager.  
> NSWindow knows how to draw itself, including its decorations/border/etc.  The 
> need for window managers grew out of X's original implementation where 
> windows were just boxes without decorations.  The real value, in my opinion, 
> of a GNUstep based WM is the ability to easily communicate using common 
> protocols.
> 
> I realize this is not directly related to solving the problem mentioned, but 
> I thought I would chime in.
> 
> Thanks, GC
> 
> 
> On Mon, Sep 14, 2020 at 1:52 PM Alessandro Sangiuliano  
> wrote:
>> Hello guys, I'm still here with this problem. It is going to be tricky.
>> 
>> This time I have more informations;
>> 
>> I started to use the github projects and columns feature so I can clean 
>> ideas in my mind and put all toghether.
>> 
>> At this column called GNUstep support
>> 
>> https://github.com/AlessandroSangiuliano/XcbKit/projects/2#column-10827552
>> 
>> i wrote in a better way the problem, but with some additional informations 
>> about is going to happen after a debbugging session.
>> 
>> I noticed that the map just works, the client window of a GNUStep is mapped 
>> where I want to be apped inside the frame window at coordinates (0, 21).
>> 
>> The problem happens after the map request event, in the configure window 
>> request event. In the coulmn is well described.
>> 
>> Do you think that resetting the W;_NORMAL_HINTS of the client window will 
>> fix the problem?
>> 
>> I don't see how to fix the offset calculation that GNUStep does.
>> 
>> I tried to run GNUStep Apps with window managers that are going to be really 
>> poor in ICCCM and EWMH support; I tried with twm and echinus ( a dwm fork); 
>> With these GNUstep Apps are positioned inside the frame in the correct way 
>> (echinus is a reparenting wm).
>> 
>> The source code of echinus is really few lines of code, I give it a flash 
>> lookm it doesn't seem that play so much with offset or whethever. I'm just 
>> failing something.
>> 
>> GNUStep Apps are working quite well also with awesome wm, I wm that i 
>> studied to get some knowledge about xcb. The have totally no support for 
>> _NET_REQUEST_FRAME_EXTENTS, while they update the _NET_FRAME_EXTENTS to the 
>> window. 
>> 
>> I do that too, putting  the array as {3,3,21,3}. These values actually are 
>> my borders + the title bar window (21 in height).
>> 
>> I also tried to use xprop on SystemPreferences running on my desktopn 
>> environment, XFCE on Manjaro, the _NET_FRAME_EXTENTS are set to {2,2,28,2}. 
>> 28 is the height of the title bar window, indeed is slighty heghter than 
>> mine.
>> 
>> Thank you.
>> 
>> 
>> Cheers,
>> Alex.
>> 
>> 
>> *Da:* alex2...@hotmail.com 
>> *Inviato:* venerdì 4 settembre 2020 12:04
>> *A:* Fred Kiefer 
>> *Cc:* discuss-gnustep@gnu.org 
>> *Oggetto:* Re: A window manager written in objective-c: uroswm and gnustep 
>> support problems 
>>  
>> Hello,
>> 
>> 
>> 
>> 
>> I couldn't send the email for the values in the previous days, I was away 
>> for a little vacation.
>> These are the values and control flow:
>> 
>> At the time of the ap request uroswm maps to (0,21) the client window in the 
>> frame, where 21 is the actual size of the title bar.
>> 
>> uroswm output:
>> 
>> Client window decorated with id 4194378
>> 2020-09-04 12:08:48.584 uroswm[4358:4358]  Window id: 4194378. Parent window 
>> id: 2097169.
>> Window Position: (x: 0, y: 21), Size: (width: 592, height: 414)
>> 2020-09-04 12:08:48.584 uroswm[4358:4358]  Window id: 2097169. Parent window 
>> id: 970.
>> Window Position: (x: 200, y: 286), Size: (width: 593, height: 436)
>> 
>> The window with id 2097169 is the frame window.
>> 
>> SystemPrederences output:
>> 
>> 2020-09-04 12:08:48.542 SystemPreferences[4359:4359] Ignore left offset 
>> change from 0 to 3
>> 2020-09-04 12:08:48.543 SystemPreferences[4359:4359] 

How to add a "Prefix" header in my GNUstep makefile

2020-10-15 Thread Gustavo Tavares
Hello!

I've looked everywhere—GNUstep make reference, the O'Reilly book on make and 
the GNU reference manual and I haven't found a way to add a Prefix header in 
the manner I specify in a *.xcodeproj file.

Is there a way I can do this so I don't have to modify my files for GNUstep?

Thank you!
G

What function sets up the GNUstep environment?

2020-11-02 Thread Gustavo Tavares
Hi!


Was wondering what function sets up a GNUstep environemtnt?

Getting this error:

GNUSTEP Internal Error:
The private GNUstep function to establish the argv and environment

variables was not called.



Mismatched library versions between GNUstep Foundation (base) and AppKit

(gui) is most often the cause of this message. Please be sure you

are using known compatible versions and not a mismatched set. Generally,

we recommend you use versions of base and gui which were released together.



For more detailed assistance, please report the error to bug-gnus...@gnu.org.


---

For context—I built a seperate framework that extracts some "GUI" classes with 
the intention to use them semantically on a server. (Such as NSImage, NSColor, 
NSFont...)
I already went through the business of overriding / deleting some of the 
backend functions so that the classes would be "initalized" and wouldn't need 
to be rendered to screen.

Stuck here. 

Where should I look?

Thank you,
G

Re: What function sets up the GNUstep environment?

2020-11-03 Thread Gustavo Tavares
Thank you! This is great.

I think I'm going to make some sort of subclass—NSCommandLineApplication.

I did implement some of the backend classes in a -doNothingMethod { ; } style: 
GSFontInfo / GSFontEnumerator.

Previously I just tried running X11 and calling it a day—but that didn't work. 
So goes the rabbit hole...

Looks like it will be fun though. Just gotta love Objective-C :)

Gustabo


On Mon, Nov 2, 2020, at 11:20 PM, Ivan Vučica wrote:
> Based on 
> https://github.com/gnustep/libs-base/blob/3752016/Source/NSProcessInfo.m#L140-L154,
>  this comes from 
> https://github.com/gnustep/libs-base/blob/3752016/Source/NSProcessInfo.m#L919 
> or 
> https://github.com/gnustep/libs-base/blob/3752016/Source/NSProcessInfo.m#L1021.

>  

> If these were GUI apps, I’d recommend calling NSApplicationMain which takes 
> argc and argv and sorts this out for you – in fact, that’s ideally exactly 
> what you should do if you’re using any GUI methods.  You’re saying you’re 
> using certain GUI classes on the server; if you believe they will actually 
> behave correctly in a server environment without gnustep-back (not a given; 
> hypothetically, NSColor could heavily depend on Opal’s CGColorRef), you may 
> be able to call NSProcessInfo +initializeWithArguments:..., too.

>  

> Otherwise study 
> https://github.com/gnustep/libs-gui/blob/0ccdb278d4cc8ad60f033892a5105e0532261838/Source/Functions.m#L63
>  carefully, but don’t be surprised if lack of x11 breaks GUI classes. You 
> break it (into pieces), you get to pick up those pieces and glue them 
> together :)

>  

> (Yes, I noticed you said you went ahead and removed some backend-dependent 
> code. This sounds like it’ll be a lot of fun…)

>  

> Ivan Vučica

>  


> *From: *Gustavo Tavares <mailto:muchol...@fastmail.com>
> *Sent: *Tuesday 3 November 2020 02:13
> *To: *GNUstep Discuss <mailto:discuss-gnustep@gnu.org>
> *Subject: *What function sets up the GNUstep environment?

>  

> Hi!

>  

> Was wondering what function sets up a GNUstep environemtnt?

>  

> Getting this error:

>  

> GNUSTEP Internal Error:

> The private GNUstep function to establish the argv and environment

> variables was not called.

>  

> Mismatched library versions between GNUstep Foundation (base) and AppKit

> (gui) is most often the cause of this message. Please be sure you

> are using known compatible versions and not a mismatched set. Generally,

> we recommend you use versions of base and gui which were released together.

>  

> For more detailed assistance, please report the error to bug-gnus...@gnu.org.

>  

> ---

>  

> For context—I built a seperate framework that extracts some "GUI" classes 
> with the intention to use them semantically on a server. (Such as NSImage, 
> NSColor, NSFont...)

> I already went through the business of overriding / deleting some of the 
> backend functions so that the classes would be "initalized" and wouldn't need 
> to be rendered to screen.

>  

> Stuck here. 


> 
> Where should I look?

>  

> Thank you,

> G

>  



Re: What function sets up the GNUstep environment?

2020-11-03 Thread Gustavo Tavares
Yes, Fred, Greg,

This is exactly what I need and was looking at doing just that. I did some 
no-op classes but I have very little experience with there system to do so 
immediately.

It doesn’t look like a lot of files but I might be wrong. There are a lot of 
subtle interactions that I have already bumped into.

For example, right now, I’m still working through the call to +[NSProcessInfo 
initalizeWithArguments:count:environment:] (I think I have the name right but I 
didn’t look it up on my phone.

Calling this didn’t solve my problem immediately.

As for testing it’s pretty wonderful. I already have some tests running by 
enclosing them in a framework (Marcel WeiHer does this in MPWTest)

The use case as a server backend is compelling too because you can save and 
interact with User preferences for Font, Color, Theme, etc on the backend just 
as you would on a frontend.


On Tue, Nov 3, 2020, at 4:19 PM, Gregory Casamento wrote:
> This is a really interesting notion.   Would the no-op backend (I think we 
> need a better name) be able to print, or output postscript?  Would it be 
> possible to use it for testing GUI in some way?
> 
> GC
> 
> 
> On Tue, Nov 3, 2020 at 12:06 PM Fred Kiefer  wrote:
>> Your problem got me thinking. Would it help you if we offered a „no-op“ 
>> backend for GNUstep? That is a backend where both the window and the drawing 
>> system would be implemented as no-operations.
>> 
>> We could try to get this done as a special GNUstep back configuration. Most 
>> likely we could cheat here by reusing the gsc classes as a real drawing 
>> backend, which of course would not draw but raise subclassResponsibility:. 
>> That means we only need code for the window/event part and a lot of 
>> configuration to switch all the extra libraries off.
>> 
>> Cheers,
>> Fred 
>> 
>> 
>> > Am 03.11.2020 um 16:02 schrieb Gustavo Tavares :
>> > 
>> > Thank you! This is great.
>> > 
>> > I think I'm going to make some sort of subclass—NSCommandLineApplication.
>> > 
>> > I did implement some of the backend classes in a -doNothingMethod { ; } 
>> > style: GSFontInfo / GSFontEnumerator.
>> > 
>> > Previously I just tried running X11 and calling it a day—but that didn't 
>> > work. So goes the rabbit hole...
>> > 
>> > Looks like it will be fun though. Just gotta love Objective-C :)
>> > 
>> > Gustabo
>> > 
>> > 
>> > On Mon, Nov 2, 2020, at 11:20 PM, Ivan Vučica wrote:
>> >> Based on 
>> >> https://github.com/gnustep/libs-base/blob/3752016/Source/NSProcessInfo.m#L140-L154,
>> >>  this comes from 
>> >> https://github.com/gnustep/libs-base/blob/3752016/Source/NSProcessInfo.m#L919
>> >>  or 
>> >> https://github.com/gnustep/libs-base/blob/3752016/Source/NSProcessInfo.m#L1021.
>> >>  
>> >> If these were GUI apps, I’d recommend calling NSApplicationMain which 
>> >> takes argc and argv and sorts this out for you – in fact, that’s ideally 
>> >> exactly what you should do if you’re using any GUI methods.  You’re 
>> >> saying you’re using certain GUI classes on the server; if you believe 
>> >> they will actually behave correctly in a server environment without 
>> >> gnustep-back (not a given; hypothetically, NSColor could heavily depend 
>> >> on Opal’s CGColorRef), you may be able to call NSProcessInfo 
>> >> +initializeWithArguments:..., too.
>> >>  
>> >> Otherwise study 
>> >> https://github.com/gnustep/libs-gui/blob/0ccdb278d4cc8ad60f033892a5105e0532261838/Source/Functions.m#L63
>> >>  carefully, but don’t be surprised if lack of x11 breaks GUI classes. You 
>> >> break it (into pieces), you get to pick up those pieces and glue them 
>> >> together :)
>> >>  
>> >> (Yes, I noticed you said you went ahead and removed some 
>> >> backend-dependent code. This sounds like it’ll be a lot of fun…)
>> >>  
>> >> Ivan Vučica
>> >>  
>> >> From: Gustavo Tavares
>> >> Sent: Tuesday 3 November 2020 02:13
>> >> To: GNUstep Discuss
>> >> Subject: What function sets up the GNUstep environment?
>> >> 
>> >>  
>> >> Hi!
>> >>  
>> >> Was wondering what function sets up a GNUstep environemtnt?
>> >>  
>> >> Getting this error:
>> >>  
>> >> GNUSTEP Internal Error:
>> >> The private GNUstep function to establish the argv and environment
>> >>

Re: What function sets up the GNUstep environment?

2020-11-03 Thread Gustavo Tavares
Confirming, I just need headless so that I have access to the AppKit functions 
I call.

I don’t need any output whatsoever.

On Tue, Nov 3, 2020, at 5:22 PM, Gregory Casamento wrote:
> 
> Gustavo,
> 
> What is your true aim here?  If having a "headless" application is all you 
> really need, so that you have access to AppKit functions then that is pretty 
> easy.  You don't need to have a gui model (xib, nib, gorm, etc) attached to 
> the application.
> 
> I like the idea of a no-op or null backend as this might allow us some other 
> freedoms with respect to testing.
> 
> On Tue, Nov 3, 2020 at 3:53 PM Gustavo Tavares  wrote:
>> __
>> Yes, Fred, Greg,
>> 
>> This is exactly what I need and was looking at doing just that. I did some 
>> no-op classes but I have very little experience with there system to do so 
>> immediately.
>> 
>> It doesn’t look like a lot of files but I might be wrong. There are a lot of 
>> subtle interactions that I have already bumped into.
>> 
>> For example, right now, I’m still working through the call to 
>> +[NSProcessInfo initalizeWithArguments:count:environment:] (I think I have 
>> the name right but I didn’t look it up on my phone.
>> 
>> Calling this didn’t solve my problem immediately.
>> 
>> As for testing it’s pretty wonderful. I already have some tests running by 
>> enclosing them in a framework (Marcel WeiHer does this in MPWTest)
>> 
>> The use case as a server backend is compelling too because you can save and 
>> interact with User preferences for Font, Color, Theme, etc on the backend 
>> just as you would on a frontend.
>> 
>> 
>> On Tue, Nov 3, 2020, at 4:19 PM, Gregory Casamento wrote:
>>> This is a really interesting notion.   Would the no-op backend (I think we 
>>> need a better name) be able to print, or output postscript?  Would it be 
>>> possible to use it for testing GUI in some way?
>>> 
>>> GC
>>> 
>>> 
>>> On Tue, Nov 3, 2020 at 12:06 PM Fred Kiefer  wrote:
>>>> Your problem got me thinking. Would it help you if we offered a „no-op“ 
>>>> backend for GNUstep? That is a backend where both the window and the 
>>>> drawing system would be implemented as no-operations.
>>>> 
>>>> We could try to get this done as a special GNUstep back configuration. 
>>>> Most likely we could cheat here by reusing the gsc classes as a real 
>>>> drawing backend, which of course would not draw but raise 
>>>> subclassResponsibility:. That means we only need code for the window/event 
>>>> part and a lot of configuration to switch all the extra libraries off.
>>>> 
>>>> Cheers,
>>>> Fred 
>>>> 
>>>> 
>>>> > Am 03.11.2020 um 16:02 schrieb Gustavo Tavares :
>>>> > 
>>>> > Thank you! This is great.
>>>> > 
>>>> > I think I'm going to make some sort of subclass—NSCommandLineApplication.
>>>> > 
>>>> > I did implement some of the backend classes in a -doNothingMethod { ; } 
>>>> > style: GSFontInfo / GSFontEnumerator.
>>>> > 
>>>> > Previously I just tried running X11 and calling it a day—but that didn't 
>>>> > work. So goes the rabbit hole...
>>>> > 
>>>> > Looks like it will be fun though. Just gotta love Objective-C :)
>>>> > 
>>>> > Gustabo
>>>> > 
>>>> > 
>>>> > On Mon, Nov 2, 2020, at 11:20 PM, Ivan Vučica wrote:
>>>> >> Based on 
>>>> >> https://github.com/gnustep/libs-base/blob/3752016/Source/NSProcessInfo.m#L140-L154,
>>>> >>  this comes from 
>>>> >> https://github.com/gnustep/libs-base/blob/3752016/Source/NSProcessInfo.m#L919
>>>> >>  or 
>>>> >> https://github.com/gnustep/libs-base/blob/3752016/Source/NSProcessInfo.m#L1021.
>>>> >>  
>>>> >> If these were GUI apps, I’d recommend calling NSApplicationMain which 
>>>> >> takes argc and argv and sorts this out for you – in fact, that’s 
>>>> >> ideally exactly what you should do if you’re using any GUI methods.  
>>>> >> You’re saying you’re using certain GUI classes on the server; if you 
>>>> >> believe they will actually behave correctly in a server environment 
>>>> >> without gnustep-back (not a given; hypothetically, NSColor could 
>>>> >> heavily depen

Re: What function sets up the GNUstep environment?

2020-11-03 Thread Gustavo Tavares
To be even more specific, most of what I do would have to do with NSCoding and 
storing NSAttributedString attributes—most of which are part of AppKit, not 
Foundation.

On Tue, Nov 3, 2020, at 5:39 PM, Gustavo Tavares wrote:
> Confirming, I just need headless so that I have access to the AppKit 
> functions I call.
> 
> I don’t need any output whatsoever.
> 
> On Tue, Nov 3, 2020, at 5:22 PM, Gregory Casamento wrote:
>> 
>> Gustavo,
>> 
>> What is your true aim here?  If having a "headless" application is all you 
>> really need, so that you have access to AppKit functions then that is pretty 
>> easy.  You don't need to have a gui model (xib, nib, gorm, etc) attached to 
>> the application.
>> 
>> I like the idea of a no-op or null backend as this might allow us some other 
>> freedoms with respect to testing.
>> 
>> On Tue, Nov 3, 2020 at 3:53 PM Gustavo Tavares  
>> wrote:
>>> __
>>> Yes, Fred, Greg,
>>> 
>>> This is exactly what I need and was looking at doing just that. I did some 
>>> no-op classes but I have very little experience with there system to do so 
>>> immediately.
>>> 
>>> It doesn’t look like a lot of files but I might be wrong. There are a lot 
>>> of subtle interactions that I have already bumped into.
>>> 
>>> For example, right now, I’m still working through the call to 
>>> +[NSProcessInfo initalizeWithArguments:count:environment:] (I think I have 
>>> the name right but I didn’t look it up on my phone.
>>> 
>>> Calling this didn’t solve my problem immediately.
>>> 
>>> As for testing it’s pretty wonderful. I already have some tests running by 
>>> enclosing them in a framework (Marcel WeiHer does this in MPWTest)
>>> 
>>> The use case as a server backend is compelling too because you can save and 
>>> interact with User preferences for Font, Color, Theme, etc on the backend 
>>> just as you would on a frontend.
>>> 
>>> 
>>> On Tue, Nov 3, 2020, at 4:19 PM, Gregory Casamento wrote:
>>>> This is a really interesting notion.   Would the no-op backend (I think we 
>>>> need a better name) be able to print, or output postscript?  Would it be 
>>>> possible to use it for testing GUI in some way?
>>>> 
>>>> GC
>>>> 
>>>> 
>>>> On Tue, Nov 3, 2020 at 12:06 PM Fred Kiefer  wrote:
>>>>> Your problem got me thinking. Would it help you if we offered a „no-op“ 
>>>>> backend for GNUstep? That is a backend where both the window and the 
>>>>> drawing system would be implemented as no-operations.
>>>>> 
>>>>> We could try to get this done as a special GNUstep back configuration. 
>>>>> Most likely we could cheat here by reusing the gsc classes as a real 
>>>>> drawing backend, which of course would not draw but raise 
>>>>> subclassResponsibility:. That means we only need code for the 
>>>>> window/event part and a lot of configuration to switch all the extra 
>>>>> libraries off.
>>>>> 
>>>>> Cheers,
>>>>> Fred 
>>>>> 
>>>>> 
>>>>> > Am 03.11.2020 um 16:02 schrieb Gustavo Tavares :
>>>>> > 
>>>>> > Thank you! This is great.
>>>>> > 
>>>>> > I think I'm going to make some sort of 
>>>>> > subclass—NSCommandLineApplication.
>>>>> > 
>>>>> > I did implement some of the backend classes in a -doNothingMethod { ; } 
>>>>> > style: GSFontInfo / GSFontEnumerator.
>>>>> > 
>>>>> > Previously I just tried running X11 and calling it a day—but that 
>>>>> > didn't work. So goes the rabbit hole...
>>>>> > 
>>>>> > Looks like it will be fun though. Just gotta love Objective-C :)
>>>>> > 
>>>>> > Gustabo
>>>>> > 
>>>>> > 
>>>>> > On Mon, Nov 2, 2020, at 11:20 PM, Ivan Vučica wrote:
>>>>> >> Based on 
>>>>> >> https://github.com/gnustep/libs-base/blob/3752016/Source/NSProcessInfo.m#L140-L154,
>>>>> >>  this comes from 
>>>>> >> https://github.com/gnustep/libs-base/blob/3752016/Source/NSProcessInfo.m#L919
>>>>> >>  or 
>>>>> >> https://github.com/gnustep/libs-base/blob/3752016/Source/NSProce

Re: What function sets up the GNUstep environment?

2020-11-03 Thread Gustavo Tavares
Yes Greg, I want to archive / unarchive GUI classes for Attributed String. 
Colors, Fonts, Attachments, etc.

On Tue, Nov 3, 2020, at 6:38 PM, Gregory Casamento wrote:
> Gustavo,
> 
> NSCoder and all of its implementations 
> (NSArchiver/NSUnarchiver/NSKeyedArchiver/NSKeyedUnarchiver) are entirely 
> implemented in Foundation/Base.  Unless you need to archive (or unarchive) 
> AppKit/GUI classes, then you really don't have any need for AppKit/GUI.  What 
> are your requirements?  Perhaps we can close in on what you really need.
> 
> NSAttributedString is also implemented in Foundation/Base (see here... 
> https://developer.apple.com/documentation/foundation/nsattributedstring?language=objc).
>   So you should be able to use it without loading GUI as well.
> 
> GC
> 
> 
> On Tue, Nov 3, 2020 at 4:44 PM Gustavo Tavares  wrote:
>> __
>> To be even more specific, most of what I do would have to do with NSCoding 
>> and storing NSAttributedString attributes—most of which are part of AppKit, 
>> not Foundation.
>> 
>> On Tue, Nov 3, 2020, at 5:39 PM, Gustavo Tavares wrote:
>>> Confirming, I just need headless so that I have access to the AppKit 
>>> functions I call.
>>> 
>>> I don’t need any output whatsoever.
>>> 
>>> On Tue, Nov 3, 2020, at 5:22 PM, Gregory Casamento wrote:
>>>> 
>>>> Gustavo,
>>>> 
>>>> What is your true aim here?  If having a "headless" application is all you 
>>>> really need, so that you have access to AppKit functions then that is 
>>>> pretty easy.  You don't need to have a gui model (xib, nib, gorm, etc) 
>>>> attached to the application.
>>>> 
>>>> I like the idea of a no-op or null backend as this might allow us some 
>>>> other freedoms with respect to testing.
>>>> 
>>>> On Tue, Nov 3, 2020 at 3:53 PM Gustavo Tavares  
>>>> wrote:
>>>>> __
>>>>> Yes, Fred, Greg,
>>>>> 
>>>>> This is exactly what I need and was looking at doing just that. I did 
>>>>> some no-op classes but I have very little experience with there system to 
>>>>> do so immediately.
>>>>> 
>>>>> It doesn’t look like a lot of files but I might be wrong. There are a lot 
>>>>> of subtle interactions that I have already bumped into.
>>>>> 
>>>>> For example, right now, I’m still working through the call to 
>>>>> +[NSProcessInfo initalizeWithArguments:count:environment:] (I think I 
>>>>> have the name right but I didn’t look it up on my phone.
>>>>> 
>>>>> Calling this didn’t solve my problem immediately.
>>>>> 
>>>>> As for testing it’s pretty wonderful. I already have some tests running 
>>>>> by enclosing them in a framework (Marcel WeiHer does this in MPWTest)
>>>>> 
>>>>> The use case as a server backend is compelling too because you can save 
>>>>> and interact with User preferences for Font, Color, Theme, etc on the 
>>>>> backend just as you would on a frontend.
>>>>> 
>>>>> 
>>>>> On Tue, Nov 3, 2020, at 4:19 PM, Gregory Casamento wrote:
>>>>>> This is a really interesting notion.   Would the no-op backend (I think 
>>>>>> we need a better name) be able to print, or output postscript?  Would it 
>>>>>> be possible to use it for testing GUI in some way?
>>>>>> 
>>>>>> GC
>>>>>> 
>>>>>> 
>>>>>> On Tue, Nov 3, 2020 at 12:06 PM Fred Kiefer  wrote:
>>>>>>> Your problem got me thinking. Would it help you if we offered a „no-op“ 
>>>>>>> backend for GNUstep? That is a backend where both the window and the 
>>>>>>> drawing system would be implemented as no-operations.
>>>>>>> 
>>>>>>> We could try to get this done as a special GNUstep back configuration. 
>>>>>>> Most likely we could cheat here by reusing the gsc classes as a real 
>>>>>>> drawing backend, which of course would not draw but raise 
>>>>>>> subclassResponsibility:. That means we only need code for the 
>>>>>>> window/event part and a lot of configuration to switch all the extra 
>>>>>>> libraries off.
>>>>>>> 
>>>>>>> Cheers,
>>>>>>> Fred 
>>>>>>&

Re: What function sets up the GNUstep environment?

2020-11-04 Thread Gustavo Tavares
Hi Greg!

I started working on it and made some null classes.

My question is—how does AppKit know which backend to load?

I was reading GSBackend.m and I can see some macros there which determine which 
backend but I’m not quite sure how this happens.

Can you explain?

We can add that to the docs.

Thank you,

GT

On Wed, Nov 4, 2020, at 2:54 PM, Gregory Casamento wrote:
> Just FYI, you still need a display server (whether that's X or Windows or 
> whatever) to start a headless application.  Is this an issue?  If it is, then 
> we would need something like the null backend.
> 
> 
> On Tue, Nov 3, 2020 at 8:48 PM Gustavo Tavares  wrote:
>> __
>> Yes Greg, I want to archive / unarchive GUI classes for Attributed String. 
>> Colors, Fonts, Attachments, etc.
>> 
>> On Tue, Nov 3, 2020, at 6:38 PM, Gregory Casamento wrote:
>>> Gustavo,
>>> 
>>> NSCoder and all of its implementations 
>>> (NSArchiver/NSUnarchiver/NSKeyedArchiver/NSKeyedUnarchiver) are entirely 
>>> implemented in Foundation/Base.  Unless you need to archive (or unarchive) 
>>> AppKit/GUI classes, then you really don't have any need for AppKit/GUI.  
>>> What are your requirements?  Perhaps we can close in on what you really 
>>> need.
>>> 
>>> NSAttributedString is also implemented in Foundation/Base (see here... 
>>> https://developer.apple.com/documentation/foundation/nsattributedstring?language=objc).
>>>   So you should be able to use it without loading GUI as well.
>>> 
>>> GC
>>> 
>>> 
>>> On Tue, Nov 3, 2020 at 4:44 PM Gustavo Tavares  
>>> wrote:
>>>> __
>>>> To be even more specific, most of what I do would have to do with NSCoding 
>>>> and storing NSAttributedString attributes—most of which are part of 
>>>> AppKit, not Foundation.
>>>> 
>>>> On Tue, Nov 3, 2020, at 5:39 PM, Gustavo Tavares wrote:
>>>>> Confirming, I just need headless so that I have access to the AppKit 
>>>>> functions I call.
>>>>> 
>>>>> I don’t need any output whatsoever.
>>>>> 
>>>>> On Tue, Nov 3, 2020, at 5:22 PM, Gregory Casamento wrote:
>>>>>> 
>>>>>> Gustavo,
>>>>>> 
>>>>>> What is your true aim here?  If having a "headless" application is all 
>>>>>> you really need, so that you have access to AppKit functions then that 
>>>>>> is pretty easy.  You don't need to have a gui model (xib, nib, gorm, 
>>>>>> etc) attached to the application.
>>>>>> 
>>>>>> I like the idea of a no-op or null backend as this might allow us some 
>>>>>> other freedoms with respect to testing.
>>>>>> 
>>>>>> On Tue, Nov 3, 2020 at 3:53 PM Gustavo Tavares  
>>>>>> wrote:
>>>>>>> __
>>>>>>> Yes, Fred, Greg,
>>>>>>> 
>>>>>>> This is exactly what I need and was looking at doing just that. I did 
>>>>>>> some no-op classes but I have very little experience with there system 
>>>>>>> to do so immediately.
>>>>>>> 
>>>>>>> It doesn’t look like a lot of files but I might be wrong. There are a 
>>>>>>> lot of subtle interactions that I have already bumped into.
>>>>>>> 
>>>>>>> For example, right now, I’m still working through the call to 
>>>>>>> +[NSProcessInfo initalizeWithArguments:count:environment:] (I think I 
>>>>>>> have the name right but I didn’t look it up on my phone.
>>>>>>> 
>>>>>>> Calling this didn’t solve my problem immediately.
>>>>>>> 
>>>>>>> As for testing it’s pretty wonderful. I already have some tests running 
>>>>>>> by enclosing them in a framework (Marcel WeiHer does this in MPWTest)
>>>>>>> 
>>>>>>> The use case as a server backend is compelling too because you can save 
>>>>>>> and interact with User preferences for Font, Color, Theme, etc on the 
>>>>>>> backend just as you would on a frontend.
>>>>>>> 
>>>>>>> 
>>>>>>> On Tue, Nov 3, 2020, at 4:19 PM, Gregory Casamento wrote:
>>>>>>>> This is a really interesting notion.   Would the no-op backend (I 
>>>>>>>> think we need a 

Re: What function sets up the GNUstep environment?

2020-11-05 Thread Gustavo Tavares
Having thought I isolated the problem—I now realize that I might actually have 
another issue which really shouldn't be happening.

So far—I've built the so-called "headless" config and reconfigured my "command 
line" app so that it launches through an NSApplicationDelegate.

This way I'm calling all the GNUstep functions as is.

The strange thing? This exception:

Throwing 0x1677ab8, in flight exception: (nil)

Exception caught by C++: 0

/root/Build/GTKApp.app/GTKApp  : Uncaught exception 
NSInvalidArgumentException, reason: [NSMutableArray-addObject:] should be 
overridden by subclass


This exception gets called by `subclassResponsibility` 

In theory this would be easy—I just need to fix the my NSMutableArray 
subclasses and fix them. The puzzle? I don't subclass NSMutableArray anywhere. 
Besides, the code that throws this exception in 
[NSObject-subclassResponsibility:(SEL)] gets the class name by executing 
`NSStringFromClass([self class])` so it would have given me a great clue as to 
where I should look and how to fix it. I also checked to see if I did a [super 
addObject:] anywhere which might have been something to fix. Nope—nada.

The mismatch error gets printed right after so that the full transcript looks 
like this:

Throwing 0x1677ab8, in flight exception: (nil)

Exception caught by C++: 0

/root/Build/GTKApp.app/GTKApp : Uncaught exception 
NSInvalidArgumentException, reason: [NSMutableArray-addObject:] should be 
overridden by subclass



GNUSTEP Internal Error:

The private GNUstep function to establish the argv and environment

variables was not called.



Mismatched library versions between GNUstep Foundation (base) and AppKit

(gui) is most often the cause of this message. Please be sure you

are using known compatible versions and not a mismatched set. Generally,

we recommend you use versions of base and gui which were released together.



For more detailed assistance, please report the error to bug-gnus...@gnu.org.







On Thu, Nov 5, 2020, at 5:40 AM, David Chisnall wrote:
> On 04/11/2020 18:54, Gregory Casamento wrote:
> > Just FYI, you still need a display server (whether that's X or Windows 
> > or whatever) to start a headless application.  Is this an issue?  If it 
> > is, then we would need something like the null backend.
> 
> I have worked around this issue in the past by running Xvnc and 
> configuring the DISPLAY environment variable to look for the UNIX domain 
> socket where Xvnc was listening.  Xvnc was configured to listen on a 
> socket that no one had access to.
> 
> This is more overhead than a proper null back end (it's still rendering 
> all of the things, its just sending them nowhere), but it's a quick hack 
> that lets you run things on a headless machine.
> 
> David
> 
> 
> 


Re: What function sets up the GNUstep environment?

2020-11-05 Thread Gustavo Tavares
I think I built it with master? Used this script: 
https://github.com/plaurent/gnustep-build/blob/master/ubuntu-20.04-clang-10.0-runtime-2.0/GNUstep-buildon-ubuntu2004.sh

Relevant sections:


git clone https://github.com/gnustep/libobjc2.git
cd libobjc2

git submodule init

git submodule sync

git submodule update




# Build libobjc2
echo -e "\n\n"

echo -e "${GREEN}Building libobjc2...${NC}"

cd ../../libobjc2

rm -Rf build

mkdir build && cd build

cmake ../ -DCMAKE_C_COMPILER=$CC -DCMAKE_CXX_COMPILER=$CXX 
-DCMAKE_ASM_COMPILER=$CC -DTESTS=OFF

cmake --build .

sudo -E make install

sudo ldconfig



On Thu, Nov 5, 2020, at 11:16 AM, David Chisnall wrote:
> On 05/11/2020 14:54, Gustavo Tavares wrote:
> > Throwing 0x1677ab8, in flight exception: (nil)
> > Exception caught by C++: 0
> 
> This bit looks as if I accidentally left some debugging code enabled in 
> the runtime.  Did you build the trunk version of libobjc2?
> 
> David
> 
> 
> 


Re: What function sets up the GNUstep environment?

2020-11-05 Thread Gustavo Tavares
So this is getting off track—but I've been able to isolate the problem.

It occurs when trying to initalize an Array or a Set inside the function 
`_gnu_process_args` of `NSProcessInfo.m`

Here is a printf debugging transcript of mine:

Starting NSApplication main.
Inside NSApplicationMain(argc,argv)

Will create autorelease pool...

Running NSObject self

Running NSObject self

Running NSObject self

Running NSObject self

Running NSObject self

Did create autorelease pool...

Starting up NSProcessInfo...

Running NSObject self

Inside _gnu_process_args.

Checking for argv

Processing argv into NSMutableSet.



Will crete gnu_arguments - have added 1

Running NSObject self

Running NSObject self



GNUSTEP Internal Error:

The private GNUstep function to establish the argv and environment

variables was not called.



Mismatched library versions between GNUstep Foundation (base) and AppKit

(gui) is most often the cause of this message. Please be sure you

are using known compatible versions and not a mismatched set. Generally,

we recommend you use versions of base and gui which were released together.



For more detailed assistance, please report the error to bug-gnus...@gnu.org.


It's very odd that this would crash. Totally perplexed and in the weeds here :(

On Thu, Nov 5, 2020, at 11:45 AM, Gustavo Tavares wrote:
> I think I built it with master? Used this script: 
> https://github.com/plaurent/gnustep-build/blob/master/ubuntu-20.04-clang-10.0-runtime-2.0/GNUstep-buildon-ubuntu2004.sh
> 
> Relevant sections:
> 
> 
> git clone https://github.com/gnustep/libobjc2.git
> cd libobjc2
> 
> git submodule init
> 
> git submodule sync
> 
> git submodule update
> 
> 
> 
> 
> # Build libobjc2
> echo -e "\n\n"
> 
> echo -e "${GREEN}Building libobjc2...${NC}"
> 
> cd ../../libobjc2
> 
> rm -Rf build
> 
> mkdir build && cd build
> 
> cmake ../ -DCMAKE_C_COMPILER=$CC -DCMAKE_CXX_COMPILER=$CXX 
> -DCMAKE_ASM_COMPILER=$CC -DTESTS=OFF
> 
> cmake --build .
> 
> sudo -E make install
> 
> sudo ldconfig
> 
> 
> On Thu, Nov 5, 2020, at 11:16 AM, David Chisnall wrote:
>> On 05/11/2020 14:54, Gustavo Tavares wrote:
>> > Throwing 0x1677ab8, in flight exception: (nil)
>> > Exception caught by C++: 0
>> 
>> This bit looks as if I accidentally left some debugging code enabled in 
>> the runtime.  Did you build the trunk version of libobjc2?
>> 
>> David
>> 
>> 
>> 
> 


Can you compile a selection of files with ARC within a project as in OSX?

2020-11-15 Thread Gustavo Tavares
Hello!

Can you compile a selection of files with ARC within a project as in OSX?

Reading the docs it seems clear that this isn't possible.

> # Projects may control the use of ARC by defining GS_WITH_ARC=1
> # or GS_WITH_ARC=0 in their GNUmakefile, or in the environment,# or as an 
> argument to the 'make' command.
> # The default behavior is not to use ARC, unless GNUSTEP_NG_ARC is
> # set to 1 (perhaps in the GNUstep config file; GNUstep.conf).
> # The value of ARC_OBJCFLAGS is used to specify the flags passed
> # to the compiler when building ARC code.  If it has not been set,
> # it defaults to -fobjc-arc -fobjc-arc-exceptions so that objects
> # are not leaked when an exception is raised.
> # The value of ARC_CPPFLAGS is used to specify the flags passed
> # to the preprocessor when building ARC code.  If it has not been set,
> # it defaults to -DGS_WITH_ARC=1

Thank you :)

Swizzling Alloc

2021-05-30 Thread Gustavo Tavares
Hi All,

So—I am trying to use swizzling for my first ever and my goal is to swizzle 
`alloc`. Why? I want to run a unqiued counter of where my objects are allocated 
by analyzing the call stack symbols. Sort of like Valgrind so that I can see 
where my program is leaking data—but I figured since I don't know how to parse 
Valgrind Objective-C might be an easier way to get something very similar.

Unfortunately when I follow this guide to swizzle the methods—I am getting a 
segmentation fault. 
https://newrelic.com/blog/best-practices/right-way-to-swizzle

He basically tell me to do: 
> 
> id gtkDebugAlloc(id self, SEL cmd) {  } 
> 
> {
>  Method nsObjectAllocMethod = class_getClassMethod([NSObject 
> class], @selector(alloc));
>  IMP orginalAlloc = 
> method_setImplementation(nsObjectAllocMethod,(IMP)gtkDebugAlloc);
> }

Instead of:

> @interface GTKDebugObject
> @end
> @implementation GTKDebugObject
> +(id)alloc { id toReturn = [self 
> allocWithZone:NSDefaultMallocZone()]; if (toReturn { ... } return toReturn;  }
> @end
> 
> {
> 
>  Method nsObjectAllocMethod = class_getClassMethod([NSObject 
> class], @selector(alloc));
>  Method gtkObjectAllocMethod = 
> class_getClassMethod([GTKDebugObject class], @selector(alloc));
>   method_exchangeImplementations(nsObjectAllocMethod, 
> gtkObjectAllocMethod);

> 
>   }


Both methods immediatley give me a segmentation fault when I run this.

Not really sure where to begin debugging this given it's my first time ever 
swizzling something.

Another approaoch would be to have my own build of `Foundation`. I am probably 
going to do that next—but this would be a much handier tool if I didn't have to 
rebuild my system everytime I wanted to debug my mistakes. So far, I don't 
really know how to tell GNUmake to use another version of Foundation.

It seems like I can change my Foundation library for cross-compiling but not 
the location of Foundation lookup. 

 . /usr/GNUstep/System/Library/Makefiles/GNUstep-reset.sh
 export LIBRARY_COMBO=ng-gnu-gnu
 . /usr/GNUstep/System/Library/Makefiles/GNUstep.sh
Ref: http://manpages.ubuntu.com/manpages/impish/man7/library-combo.7.html

Seeing also: http://www.gnustep.org/resources/documentation/make_1.html#SEC33

Would appreciate the help as I go off and bang my head on this. Might have a 
very easy solution. 

Thank for any help in advance,

G


Re: My future GNUstep contribution

2021-07-18 Thread Gustavo Tavares
This isn’t my project. I do however love GNUstep. Also, I think I know a thing 
or two about community and people. 

The written word leaves out so much emotion and compassion that the spoken word 
can’t include.

My suggestion: would be great to have a monthly or quarterly “Zoom” party 
(GNU-equivalent) that is time limited to one hour.

First party could celebrate all of Fred’s contributions and whatever role he 
chooses jn the transition.

Would also love to have little breakout rooms where people can chit chat, talk 
shop, side projects,  in a more intimate fashion.

If you’re doing it for fun, make sure you have a party! Work is part of it. But 
fun should be too.

Thank you Fred, Ricardo, Greg and everyone else who has worked on this project.

It is amazing—warts and all. Im so happy to have found this 2 years ago and I 
look forward to using it far into the future.

Awesome work! :) Long live the spotted whale :) 🐳 

On Sun, Jul 18, 2021, at 6:06 PM, Riccardo Mottola wrote:
> Hello Fred,
> 
> On 2021-07-16 23:34:03 +0200 Fred Kiefer  wrote:
> 
> > as some of you may have noticed I was on a break from the project for
> > some time. This hiatus was caused by the way Greg reacted on the mail
> > from Johannes on RMS. Just to state the obvious, I think that Johannes
> > was wrong here, still he deserved a friendlier reply. I was not
> > surprised that Johannes choose to quit the project. The tone on the
> > GNUstep mailing lists, and sadly on many free software projects, is
> > often very unfriendly.
> 
> I noticed it and I am sad about this. I did not like Johannes' 
> considerations and was hurt by them - also because at the same time I 
> read similar discussions on several Mailinglists of OS projects I am 
> involved in.
> In this specific case, I think Greg's answer was appropriate, but in 
> other cases the tones on the mailing list weren't nice either, so I 
> guess it is more the last drop in the bowl.
> 
> What I dislike especially is that these discussions and reactions that 
> came from them overshadowed a very important thing, the release we did 
> this year is one of the best we ever did. The work on MinGW-2 and 
> 64bit, the fixes in Big Endian encoding and many others are amazing 
> and we should be proud of them, but things were put in the background.
> The high quality of this release is thanks to you too, Fred, as well 
> as Richard. We collaborated all together and it is to be proud of.
> 
> > After this I needed some time to think about what my role in such a
> > project should be. Why would I subject myself to treatments in my 
> > spare
> > time that I would not accept in a payed position?
> 
> I have to agree with you - there is not much fun left in the 
> discussion of our mailing lists, but also generally in other projects.
> I think these hard past two years stressed all our souls, including 
> mine, making us more suscepible, the pandemic affected our minds 
> differently, but no-one was left unscathered.
> But I also think there is some fundamental difference in Open Source 
> today than 10 years ago... some signals were present before the 
> pandemic, but it got worse.
> 
> > The result of all this thinking is that I still want to contribute to
> > this project, for which I have worked more than twenty years. But I 
> > will
> > scale down my involvement. I would like to give up on chores that I
> > never enjoyed and work on fun stuff like problem analysis and bug 
> > fixing.
> 
> And I hope this can continue.
> 
> > There are three main jobs that I would like to pass on:
> > - Maintainership of GNUstep gui and back. Here it would be great if
> > somebody could at least take over the review of Greg's pull requests.
> > Somehow we are not able to sort out our communication and this results
> > in a rather frustrating experience for me.
> 
> I must admit it is not easy at all, but you are just good.
> 
> > If you are interested to take over one of these jobs, please contact 
> > me
> > directly. I will stay out of further mailing list discussion but will
> > still be around to help developers and users with their issues.
> 
> I hope to continue to have the privilege to work with you on GNUstep 
> and fix one bug after the other and improve it one piece at a time.
> Maybe you can at least partially reconsider your decision - I don't 
> see anybody in this project with your knowledge to be able to take 
> over, but I want to discuss with this you privately.
> 
> The fact that I can type this answer on a full stack of FOSS, from the 
> operating system up to GNUstep and GNUMail is partially als your and 
> mine work and I want to continue pursue this improvement with you so 
> that this freedom remains available for others who to not wish to get 
> caught in Google Mail or the future Window Cloud or whatever else.
> 
> 
> Riccardo
> 
> -- 
> GNUMail running on GNUstep on OpenBSD/i386 Toshiba Tecra
> 
> 
> 


Re: GNUstep Quarterly Meeting

2021-08-06 Thread Gustavo Tavares
I'm inside the meeting. Don't see anybody Lars. Are you there?

On Fri, Aug 6, 2021, at 9:58 AM, lars.sonchocky-helld...@hamburg.de wrote:
> Hi Greg,
> 
> is this surely the correct link? It looks a bit to generic to me …
> 
> regards,
> 
> Lars
> 
>> Am 22.07.2021 um 13:46 schrieb Gregory Casamento :
>> 
>> The meeting link is here...
>> 
>> Jitsi Meeting - https://meet.jit.si/LiveAttendancesConfrontInitially
>>  
>> It is on August 6th from 10AM to 12PM (2 hours) EST.
>> 
>> A few people have been explicitly invited, but anyone may attend.  You are 
>> all hereby invited to join on that date.
>> 
>> Thanks for being part of this project.
>> 
>> Yours, GC
>> -- 
>> Gregory Casamento
>> GNUstep Lead Developer / OLC, Principal Consultant
>> http://www.gnustep.org - http://heronsperch.blogspot.com
>> https://www.patreon.com/bePatron?u=352392 - Become a Patron
>> https://gf.me/u/x8m3sx - My GNUstep GoFundMe
>> https://teespring.com/stores/gnustep - Store


Re: GNUstep Quarterly Meeting

2021-08-06 Thread Gustavo Tavares
3 of us are here inside the link. Bob, Lars and me :) 

On Fri, Aug 6, 2021, at 10:00 AM, Gustavo Tavares wrote:
> I'm inside the meeting. Don't see anybody Lars. Are you there?
> 
> On Fri, Aug 6, 2021, at 9:58 AM, lars.sonchocky-helld...@hamburg.de wrote:
>> Hi Greg,
>> 
>> is this surely the correct link? It looks a bit to generic to me …
>> 
>> regards,
>> 
>> Lars
>> 
>>> Am 22.07.2021 um 13:46 schrieb Gregory Casamento :
>>> 
>>> The meeting link is here...
>>> 
>>> Jitsi Meeting - https://meet.jit.si/LiveAttendancesConfrontInitially
>>>  
>>> It is on August 6th from 10AM to 12PM (2 hours) EST.
>>> 
>>> A few people have been explicitly invited, but anyone may attend.  You are 
>>> all hereby invited to join on that date.
>>> 
>>> Thanks for being part of this project.
>>> 
>>> Yours, GC
>>> -- 
>>> Gregory Casamento
>>> GNUstep Lead Developer / OLC, Principal Consultant
>>> http://www.gnustep.org - http://heronsperch.blogspot.com
>>> https://www.patreon.com/bePatron?u=352392 - Become a Patron
>>> https://gf.me/u/x8m3sx - My GNUstep GoFundMe
>>> https://teespring.com/stores/gnustep - Store
> 


Re: Notes from GNUstep quarterly meet up...

2021-08-18 Thread Gustavo Tavares
Very happy to see Patryk on here.

Would love it if his scripts to install GNUstep were on the homepage.

This was by far the easiest way for me to get started.

https://github.com/plaurent/gnustep-build



On Sat, Aug 14, 2021, at 6:17 AM, Patryk Laurent wrote:
> Hi Steven,
> 
>> On Aug 12, 2021, at 16:58, Steven R. Baker  wrote:
>> I would like to volunteer to have website tasks assigned to me.  You can be 
>> vague and open ended with these.
> 
> FYI — It is fairly easy to edit the version of the website hosted at 
> https://gnustep.github.io via its repo 
> https://github.com/gnustep/gnustep.github.io
> 
> Patryk
> 
> 


Re: Website organization Re: Notes from GNUstep quarterly meet up...

2021-08-19 Thread Gustavo Tavares
My perspective?

Focus on the “Develop” portion and have an application showcase. 

My guess is that most of the visitiors to the website are developers and if 
they are users—they are likely to be highly technical.

If an application is indeed meant to be used by someone who does not know how 
to press build—then the application owner can and should build a separate 
marketing page.

This is in fact a throwback to the “Bicycle for the mind” instead of today’s an 
“Appliance in every pocket.”

Etoile for example—is a developement environment. The main attraction is its 
customizability and customizability is basically development by point and click.

Focusing on developers is probably the best way to highlight the promise of 
GNUstep: that it is built on an easy to use framework and you can easily make 
it your own.


On Thu, Aug 19, 2021, at 7:10 AM, Riccardo Mottola wrote:
> Hi
> 
> Xavier Brochard wrote:
> >
> > Regarding users, there is something totally missing for this public on 
> > the website : there is no single point entry for applications and 
> > appearance (howto, themes, icons and related tools). It is more easy 
> > to discover something than to find it again.
> >
> > For example, let's find available applications from the home page:
> >
> > - First there is the GNUstep Application Project with a link pointing 
> > to a readable list of apps.
> > - A bit below this link there is two links pointing to more complete 
> > lists of softwares (Wiki application pages and Software Index), but 
> > these lists are more difficult to read, and Software Index contains 
> > also libraries.
> > - Between these two parts there is the link to the Experience page 
> > with same Wiki application pages and Software Index, and another 
> > lisst, the Official GNUstep Applications.
> >
> 
> I don't fully agree with this. We have main entries to lists, but it is 
> perfectly possible to have multiple-links to sub-parts of it.
> 
> So, while menus and other structured navigation part need to point 
> consistently
> 
> Software Index contains "all software". We also have other software but 
> guessing a user is more interested in application we point prominently 
> to it, making shortcuts in navigation.
> We also have frameworks, like:
> wiki.gnustep.org/index.php/Category:Frameworks
> 
> > It is confusing. While developers or sysadmins can find their way, 
> > users expect something easier. As a user all I need are simple answers 
> > to some questions:
> >
> > 1. if I install it, what does it looks ? (the look)
> > 2. what is possible ? (the useful)
> > 3. how can I do this or this ? (the help)
> >
> > Answer to the first one is easy : screenshots and a bit of text.
> > The second one can be answered with screenshots and a short list of 
> > applications sorted by theme.
> > The third is where you put the complete list of available software, 
> > the list of customizing tools, themes and icons and users related howtos.
> 
> Thise the possibilities of the project are a bit wider and it does not 
> itself contain "all apps" this is a bit misleading. Just hitting on the 
> looks is diminutive for the project. However I think the idea of putting 
> more prominence to a showcase is good, but please read my ideas below.
> 
> > 1) in GNUstep Overview, just remove the end: "which other projects can 
> > complete." as it can be told later and it is a bit confusing.
> 
> Did that, although it can be further improved with a showcase.
> 
> > 2) Add entry points for Users and Developers. Developers will contain 
> > both Experience (instead of User Experience) and Develop!. Users will 
> > contain something graphical (the look), a very short list of good apps 
> > (might be GNUMail, Cenon, PikoPixel, Cynthuiune, Gworkspace, Gorm, …), 
> > this list could be a carrousel (to combine the look with the useful). 
> > Then provide a link to a User page on the wiki where we can provide 
> > application list, tools, themes, help, other projects, etc. 
> 
> I did a POC carousel for that, I attach a screenshot. I think it is of 
> impact and it can be added, but some thoughts about which and how to 
> present the images. For this reason I did not commit anything, not even 
> the POC.
> 
> * We could present specific apps and/or "tasks" (e.g. development tools, 
> generic themes).
> * For each image one can have a title but also a link/button in the 
> style of Bootstrap. This can be for example a quick shortcut: GWorkspace 
> links directly to its experience page, Gorm or ProjectCenter to the 
> developer page, etc.
>- should we such boldly link to external projects or apps? perhaps 
> not: it would be unexpected to have a navigation take you away from the 
> site when you did not yet explore it
> * Images resize only with tricks inside a carousel, so it would be 
> really best to have a set of specific images, all of the same size and 
> aspect ratio "special" for the carousel. I propose super-wide screen, so 
> cut/resized to 1

Re: Web site matrix

2021-08-21 Thread Gustavo Tavares
I second Daniel’s notion here. Either have a little hide / expand button or 
have a link to the full chart. 

Very helpful info and would accelerate set up immmesley.

On Fri, Aug 20, 2021, at 6:31 PM, Daniel Boyd wrote:
> Riccardo,
> 
> I appreciate not wanting to have an overly complex chart on the main web
> site. And I think having a comprehensive chart on the Wiki is a great idea.
> 
> However, I do not think that's a good reason to exclude this (or something
> similar) from the main web site. I think a simplified version of the chart
> would still be really helpful. Identify the most common configurations (from
> the standpoint of how frequently do visitors to the web site come looking
> for configuration X?)
> 
> I think one of the most common use cases for the site (and, again, I'm
> assuming; analytics could confirm), is new (new to GNUstep) developers with
> a particular idea in mind -- writing a new app, porting a macOS or iOS app,
> etc etc. And they want to be able to quickly discern if GNUstep is a viable
> option. "Can I use GNUstep to port my Mac app to Windows/Linux?" "I keep
> hearing great things about Cocoa. Can I use GNUstep to get into Cocoa
> programming in Linux?" 
> 
> I think people want to know:
> 1) what operating system(s) can I run this on?
> 2) Can I use ObjC 2.0 features (this will be a deal breaker for many, if not
> most developers coming from the Apple ecosystem)
> 3) How can I quickly get an environment set up so I can start coding? (hence
> the link to the installation instructions)
> 
> I think one of the major goals of the web site should be to surface this
> information to new visitors quickly and simply. And I don't think the
> current web site does this well enough. There very well may be a better
> approach--the matrix was just the first thing that popped in my mind.
> 
> -Original Message-
> From: Riccardo Mottola  
> Sent: Friday, August 20, 2021 4:19 PM
> To: Daniel Boyd ; 'Discuss-gnustep Discuss'
> 
> Subject: Re: Web site matrix
> 
> Hi Daniel,
> 
> 
> Daniel Boyd wrote:
> >
> > I think the web site could benefit from a matrix along these lines:
> >
> > This is just a example. Obviously, you'd want to add lines for the 
> > BSDs and MacOS etc. And there may be better columns and a better 
> > layout. This was just my original thought.
> >
> 
> I just re-read your suggestion understanding it differently.
> This "Matrix" could get very long.. we support a lot of combinations. I am
> personally a tester and debugger of the less usual stuff. Especially with
> gcc we can get currently very far.
> 
> I think this should live in the wiki instead, so it can be edited easily and
> cross-linked with relevant tutorials to build or configure it. I would leave
> out the "installation method" and referring to the table for building.
> Adding a note if e.g. packages are available and recommended for "Debian"
> (Linux is not debian).
> I would add also architectures where relevant (e.g. ppc32, arm, etc... 
> since it makes a difference with certain combinations)
> 
> I can help with a lot of data here in about a fortnight, when I plan to
> re-run full builds.
> 
> Riccardo
> 
> 
> 


Re: Test Driven Development in GNUstep

2021-11-06 Thread Gustavo Tavares
This is my favorite way to test Objective-C code:

https://github.com/mpw/MPWTest

To reduce size on release—I usually write the tests in a category and I wrap 
them in a macro such as:
> 
> #if TESTABLE_BUILD
> 
> @implementation
> 
> #endif

On Sat, Nov 6, 2021, at 3:44 PM, Tito Mari Francis Escaño wrote:
> Hi everyone,
> Looking for test driven development tools for Objective-C, I ran into OCUnit 
>  and OCMock , are 
> these commendable tools to use with GNUstep?
> What are the recommended alternative if these are not viable?
> Please provide pointers on specific versions we should work with since it 
> seems the most recent versions are iOS-specific and if there are things we 
> should watch out for when using these tools with GNUstep.
> Thanks so much.
> 


Re: GNUstep on Hackernews

2021-12-14 Thread Gustavo Tavares
Hi all,

My 2 cents: market it as Cocoa / DevToolkit.

Make the “Hero” element on the webpage a “Hello World” style program with a 
link tk download it. (Sidenote-would add an automatically installed helper tool 
such as `gsteprun` which will compile and run a 1-file program that does not 
need a Makefile.

Right below link to a “Hello World” GUI version.

The Distribuition is a big cherry on top which to my eye, distracts from the 
power offered by the DevKit.

This is the best DevKit.

Not sure how many of you use GNUstep as a daily driver—but I don’t see myself 
using the app environment as my daily anytime soon. I think there are more 
people like me out there. When and if the time comes I could switch—but far 
more people will come to the project if the toolkit is put front and center.

Cocoa is the bicycle for the mind.

G



On Tue, Dec 14, 2021, at 1:06 PM, Gregory Casamento wrote:
> 
> Graham,
> 
> I have to admit to being very happy that many people have changed their minds 
> about GNUstep, but this subject... HelloSystem actually has me pretty 
> irritated.
> 
> On Tue, Dec 14, 2021 at 10:23 AM Graham Lee  wrote:
>> Hi all,
>> 
>> 
>> *From: * Riccardo Mottola  
>> * To: * Liam Proven , discuss-gnustep 
>>  
>> * Sent: * 14/12/2021 3:29 PM 
>> * Subject: * Re: GNUstep on Hackernews 
>> 
>>> 
>>> They evaluated us and discarded GNUstep on what basis? I had no 
>>> interaction with any of them nor did i see things on the mailing list.
>>> 
>> The hello system thing was preceded by Livestep, which was fully GNUstep 
>> based and which Steven and I almost used as the basis for the [objc retain]; 
>> stream before switching to Debian. The design rationale for hello describes 
>> Qt as a pragmatic choice for UI toolkit while GNUstep "doesn't really leap 
>> forward into the present time" 
>> https://github.com/helloSystem/hello/wiki/Welcome-and-unwelcome-technologies.
> 
> Just like every other project they seem to dismiss us without actually 
> speaking to any of us.   I have posted a question asking why none of us were 
> consulted and requested that they remove the remark from their wiki.   I am 
> appalled that they didn't even bother.  What does "leap into the present 
> time" even mean.
> 
>>> 
>> 
>> That's one of those frustrating ideas that is probably part perception and 
>> part reality (probono did after all make a full GNUstep live image and 
>> worked on PureDarwin so has reached this conclusion from a position of some 
>> experience) but that doesn't have enough information to resolve. _What_ does 
>> a "present time" Cocoa reimplementation have, or look like, that GNUstep 
>> lacks?
> 
> Indeed.  I remember LiveStep https://github.com/probonopd/LIVEstep
> 
> It seems to look okay, so what was the problem?!
>  
>> Does GNUstep actually lack that? We could ask him…I doubt to change his mind 
>> back to adopting GNUstep, but to see where what we have and what others want 
>> can come together.
>> 
> 
> SMDH
> 
>  
>> 
>> Cheers,
>> Graham.
> 
> 
> -- 
> Gregory Casamento
> GNUstep Lead Developer / OLC, Principal Consultant
> http://www.gnustep.org - http://heronsperch.blogspot.com
> https://www.patreon.com/bePatron?u=352392 - Become a Patron
> https://gf.me/u/x8m3sx - My GNUstep GoFundMe
> https://teespring.com/stores/gnustep - Store


Re: GNUstep on Hackernews

2021-12-14 Thread Gustavo Tavares
Hi Greg, 

Happy you like the idea of the Download / Fast Script version. 

As an example of what I have in mind is RunKit.com—which happens to have been 
made by Tolmasky—a fellow Objective-C lover. His work on promoting Cappuccino 
and Cocoa did not see widespread commercial success but via Open-Source we can 
learn from what worked and what  lessons he may be applying in his future work. 
I think there is a lot to learn and GNUstep could benefit tremendously by 
targeting a "similar" audience.

Now what would that "similar audience" be? It would be people near the bottom 
of my "GNUstep" user funnel. 

1 - Worst: Does not know about GNUstep.
2 - Not as bad: Knows about GNUstep but thinks the project won't compile or 
work without a whole lot of hassle. (For example, does not know that there are 
1 file scripts which will install everything perfectly om Ubuntu.)
3 - Even less bad: Knows more or less that GNUstep will work with minimal 
effort and that it can deliver a good app.
4 - An inch better: Uses a Mac (or Windows) as a daily driver and logs into a 
remote computer with Ubuntu command line—and a GNUstep installation.
5 - Slighly better: Uses a Mac (or Windows) as a daily driver and logs into a 
remote computer with an Ubuntu GUI and a GNUstep installation. May use one or 
two GNUstep apps.
6 - Better: Uses Ubuntu GUI for development and many GNUstep applications.
7 Best: Uses GUI based on NEXTSpace work and the main GNUstep application 
including File Browser, etc.
8 - God-Level: Contributes to GNUstep.

To my mind, levels 2/3/4 are perhaps what should be addressed in the "Hero" 
section next bulltets.

Now—all levels will be on the home page—it just so happens that the would be 
addressed via a link or something like—"Did you know—GNUstep also provides you 
with a workspace for development. Check it out here."

I think these changes on the homepage could double or triple the number of 
people who have compiled a GNUstep program and that would be a huge success. 
Plus this narrower vision would do wonders for the workspace as more people are 
already on the ladder.

One more thing to keep in mind. Apple is no longer marketing Cocoa to Devs with 
a high priority. Swift and SwiftUI are the things they are selling. GNUstep 
needs to pick up that mantle.

Ricardo—I don't think we are dissimilar in our vision—I just think that if we 
sequence things the right way and in the right manner—more people will go 
further with this awesome project. And that would be awesome for us all.

Crossing my fingers GNUstepl :) 

G


On Tue, Dec 14, 2021, at 3:25 PM, Riccardo Mottola wrote:
> Hi Gustavo,
> 
> Gustavo Tavares wrote:
> > The Distribuition is a big cherry on top which to my eye, distracts
> > from the power offered by the DevKit.
> >
> > This is the best DevKit.
> 
> you just proved what I wrote long ago. GNUstep has many souls: it is a
> DevKit. It is the basis of a possible (or more than one) Desktop and
> even a distribution.
> Everyone wants to "see" it presented in one way or the other.
> 
> That's why I and others ("we") have choosen to be neutral: all aspects
> are presented and you can choose the one you prefer.
> 
> Personally, I like it to be a Workspace environment and I have great
> plans for it, but I don't want to force that on anybody, also because my
> views of a Desktop are different from others that are pursuing it; yet
> there is so much in common that can be done that it is just best to do it.
> 
> Riccardo
> 
> 


Re: People think we are for nostalgics or dead.

2021-12-23 Thread Gustavo Tavares
So GNUstep makes it pretty clear "The framework closely follows Apple's Cocoa 
APIs and is portable to a variety of platforms and architectures."

But what I would love—more than trying to play "catch-up" is to also sell 
people on the idea of Cocoa. "Switch from Apple" is a feature—not the reason to 
exist.

Like—why should you consider Cocoa when making an app? What is it that makes 
the framework great? Apple seems to longer care about Cocoa. At some point, 
Cocoa may even cease to exist. (e.g Swift / SwiftUI)

I think there is a case to be made for Cocoa—and that GNUstep could lead the 
charge in making people fall in love with Cocoa again.

What do I love most about Cocoa? You can actually read your code 6 months 
laters. The parameters are labeled appropriately—and many `selectors` are 
English phrases. Concepts are more important than saving a character here and 
there. I would go as far as to say that Cocoa is the most readable API of all.

So...what do you love about Cocoa?


Personally, I would love a section on the front page that makes it clear to 
Cnew devs (many of whom never have used Objectice-C or Cocoa) that "Hey, Cocoa 
is amazing. Try it. You'll want to use it forever." And we could make a 
separate page just rattling off the benefits. The framework needs and can be 
sold on its merits. Apple be dammed.

Ideas
- It is a faster building GUI toolset relative to C++
- It is easier to read
- You can drop down to C if needed
- You can stay in memory-safe Smalltalk as desired
- Any more??

PS — So...what do you love about Cocoa?



On Wed, Dec 22, 2021, at 7:52 AM, Gregory Casamento wrote:
> Liam,
> 
> On Wed, Dec 22, 2021 at 6:43 AM Liam Proven  wrote:
>> On Wed, 22 Dec 2021 at 12:21, Gregory Casamento
>>  wrote:
>> >
>> > I have updated the website recently to show the themes.
>> >
>> > I am also posting, pretty much daily, about progress with GNUstep on 
>> > twitter.  The best we can do is to try to put ourselves out there the way 
>> > we really are.  Looking at GNUstep's stats on github tells the story that 
>> > we are not dead.
>> >
>> > Also, the discussion on hackernews showed that a lot of people are turning 
>> > around their opinions.   We will not change the general impression of the 
>> > project in a day (or even a month or a year) but if we persist in making 
>> > it known that we are not a bunch of Luddites, then people will, 
>> > eventually, pick up on that.
>> >
>> > We must strive to change people's opinions.
>> 
>> What is the best way to suggest text changes, new content, new links
>> etc. for the website?
>> 
> 
> Right now the website is still hosted on CVS on savannah.org... (I know)... I 
> am going to change this, but at the moment I need some assistance since there 
> are some things in the hosting (at gandi.net) which complicate moving the 
> site.  More on that in another email.
> 
> A strong argument for moving the site is that it is currently hosted on a 
> very old machine.
> 
> There is a duplicate of the site at 
> g...@github.com:gnustep/gnustep-github-io.git (https://gnustep.github.io).  
> So, for now the best thing to do is to make suggestions here.  Once I get it 
> moved, you can submit PRs.
>  
>> Greg, since I note you now have your own Twitter account – @bheron
>> (and may I ask why that? Just curious) – then I suggest you, or the
>> community, or something, take your name off @gnustep and try to post
>> something on there every day.
> 
> That's a good idea.  Originally that was my intention, but it just became 
> easier to post on @bheron.
> 
>> www.bufferapp.com may be useful for this. I use a free account there
>> myself. You can put a load of stuff in, every day, and schedule when
>> it gets posted.
> 
> Ah, cool, I will check it out.
> 
>> -- 
>> Liam Proven ~ Profile: https://about.me/liamproven
>> Email: lpro...@cix.co.uk ~ gMail/gTalk/FB: lpro...@gmail.com
>> Twitter/LinkedIn: lproven ~ Skype: liamproven
>> UK: (+44) 7939-087884 ~ Czech [+ WhatsApp/Telegram/Signal]: (+420) 
>> 702-829-053
>> 
> 
> 
> -- 
> Gregory Casamento
> GNUstep Lead Developer / OLC, Principal Consultant
> http://www.gnustep.org - http://heronsperch.blogspot.com
> https://www.patreon.com/bePatron?u=352392 - Become a Patron
> https://gf.me/u/x8m3sx - My GNUstep GoFundMe
> https://teespring.com/stores/gnustep - Store


Re: Fascinating blog post on software design

2022-03-15 Thread Gustavo Tavares
Funny. Beatifully written but the first thing I tried to do in the calculator 
sucked.

I wanted to know the percentage I’m responsible for in a new budget and all the 
calculator showed me was some fraction. There was no easy / obvious way to get 
the decimal representation.

So…neat idea but my incredibly common use case is not supported. Goes to show 
sometimes you need focus on what’s important-otherwise the fancy features won’t 
be remembered the day you do need it.

On Tue, Mar 15, 2022, at 6:53 PM, Riccardo Mottola wrote:
> Hi Liam,
> 
> 
> Liam Proven wrote:
> > I especially recommend section 6 (which is short) as relevant to GNUstep.
> 
> Well, it contains the truth.
> 
> >
> > https://chachatelier.fr/chalk/article/chalk.html
> >
> > But I very much like and admire the analysis in §1-3 myself.
> 
> I think it is a bit extreme and voluntarily biased, but I enjoyed the
> reading, both the UI part and the math part.
> I agree that most calculators are broken: that's why I produced mine. I
> just addressed many o his complaints in a different way.
> 
> I disagree with certain conclusions though and also the extreme
> complexity he went through: WebKit and all the related stuff to make a
> Calculator? You know you went too far... and he knows himself how
> fragile is monstrum is.
> 
> Riccardo
> 
>