Re: Substitute for kill(2)?

2023-07-25 Thread Jack Brindle via Cocoa-dev
I would agree with the use of Distributed Notifications, but there is a new 
limitation that was added a few years ago. The receiver must be in the same 
login. You can no longer use it to send notifications from one user app to a 
different user’s app. This came to light for me when I was trying to send a 
notification from a root app to a user app. Fear not, though, there is a form 
of Notification that works perfectly for this - CFNotifications. The two, of 
course, are closely related, but CFNotifications allow you to use the Darwin 
Notification Center which allows cross-user notifications.

These are easy to use, and, I believe, still the best way to send info from one 
app to another in the Mac system. 

Jack


> On Jul 25, 2023, at 9:38 AM, Rob Petrovec via Cocoa-dev 
>  wrote:
> 
> NSDistributedNotificationCenter is a way to send a notification out across 
> the system. Only processes that are listening for the notification will 
> receive it and have a chance to do something with it. It’s like yelling out 
> in a crowded room to tell a single person something. Everyone will hear your 
> message, but only one will be listening. Make sense?  
> https://developer.apple.com/documentation/foundation/nsdistributednotificationcenter?changes=_4&language=objc
> 
> But what it really sounds like you want to use XPC (Cross Process 
> Communication) for a more targeted messaging (possibly with payloads) between 
> your app and menuling.  
> https://developer.apple.com/documentation/xpc?language=objc
> 
> —Rob
> 
> 
>> On Jul 25, 2023, at 7:51 AM, Gabriel Zachmann  wrote:
>> 
>> Thanks a lot for your responses!
>> 
>> Sorry for the misunderstanding: I don't want to kill the other process.
>> (In case you forgot: the kill(2) system call is for sending unix signals to 
>> processes, which can listen to those signals (at least, most of them). I 
>> just want to signal the other process, not really kill it. So, SIGUSR1 
>> would've been my choice, if macOS would allow me to send a signal.)
>> 
>> What do you mean by "distributed notification" ?
>> How would I send it?
>> 
>> Best regards, Gabriel
>> 
>> 
> 
> ___
> 
> Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)
> 
> Please do not post admin requests or moderator comments to the list.
> Contact the moderators at cocoa-dev-admins(at)lists.apple.com
> 
> Help/Unsubscribe/Update your Subscription:
> https://lists.apple.com/mailman/options/cocoa-dev/jackbrindle%40me.com
> 
> This email sent to jackbrin...@me.com

___

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com


Re: Proper way to retrieve the NSScreenNumber in a screen saver ?

2022-11-17 Thread Jack Brindle via Cocoa-dev
The NSScreen screen property is nullable.  From the docs for NSWindow screen:

"The value of this property is the screen where most of the window is on; it is 
nil when the window is offscreen."

I would go with Steve’s suggestion as much as possible, The NSScreen class has 
the info you need.

Jack


> On Nov 17, 2022, at 10:44 AM, Gabriel Zachmann via Cocoa-dev 
>  wrote:
> 
> In my screensaver (macOS), 
> I am trying to retrieve the 'screen number' (NSScreenNumber) for the screen 
> on which I am running.
> 
> So, in   
> - (void) viewWillMoveToWindow: (NSWindow *) newWindow
> I have this line of code:
> displayID_ = [ [[newWindow screen] deviceDescription] objectForKey: 
> @"NSScreenNumber"];
> 
> This sometimes works (I get the correct screen number),
> and sometimes it does not, i.e., I get displayID_ = nil!
> (Usually after invoking some other screen savers in System Preferences.)
> 
> I don't see a pattern.
> 
> Curiously, these lines in viewWillMoveToWindow always work:
> 
>for ( NSScreen * s in [NSScreen screens] )
>{
>NSDictionary * device_description = [s 
> deviceDescription];
>NSNumber * n = [device_description objectForKey: @"NSScreenNumber"];
>   [...]
>}
> 
> I always get non-null and correct 'screen numbers' n.
> 
> 
> So, I am wondering, why does the first line sometimes NOT work?
> And what is the proper way to retrieve the screen number on which my screen 
> saver is running?
> Should I use [NSScreen mainScreen] ?
> 
> Please note, that there might be several monitors attached to the Mac!
> (Some users have up to 6)
> 
> Thanks a lot in advance.
> 
> Best regards, Gabriel
> 
> ___
> 
> Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)
> 
> Please do not post admin requests or moderator comments to the list.
> Contact the moderators at cocoa-dev-admins(at)lists.apple.com
> 
> Help/Unsubscribe/Update your Subscription:
> https://lists.apple.com/mailman/options/cocoa-dev/jackbrindle%40me.com
> 
> This email sent to jackbrin...@me.com

___

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com


Re: Retrieving the EXIF date/time from 250k images

2022-08-16 Thread Jack Brindle via Cocoa-dev
Instead of using NSOperationQueue, I would use GCD to handle the tasks. Create 
a new Concurrent queue (dispatch_queue_create(DISPATCH_QUEUE_CONCURRENT)), then 
enqueue the individual items to the queue for processing (dispatch_async(), 
using the queue created above). Everything can be handled in blocks, including 
the completion routines. As Christian says the problem then is that data may 
not be in the original order so you will probably want to sort the returned 
objects when done. This should significantly speed up the time to do the whole 
task.

Jack


> On Aug 16, 2022, at 12:26 PM, Steve Christensen via Cocoa-dev 
>  wrote:
> 
> You mentioned creating and managing threads on your own, but that’s what 
> NSOperationQueue —and the lower-level DispatchQueue— does. It also will be 
> more efficient with thread management since it has an intimate understanding 
> of the capabilities of the processor, etc., and will work to do the “right 
> thing” on a per-device basis.
> 
> By leveraging NSOperationQueue and then keeping each of the queue operations 
> focused on a single file then you’re not complicating the management of what 
> to do next since most of that is handled for you. Let NSManagedObjectQueue do 
> the heavy lifting (scheduling work) and focus on your part of the task 
> (performing the work).
> 
> Steve
> 
>> On Aug 16, 2022, at 8:41 AM, Gabriel Zachmann  wrote:
>> 
>> That is a good idea.  Thanks a lot!
>> 
>> Maybe, I can turn this into more fine-grained, dynamic load balancing (or 
>> latency hiding), as follows:
>> create a number of threads (workers);
>> as soon as a worker is finished with their "current" image, it gets the next 
>> one (a piece of work) out of the list, processes it, and stores the iso_date 
>> in the output array (dates_and_times).
>> Both accesses to the pointer to the currently next piece of work, and the 
>> output array would need to be made exclusive, of course.
>> 
>> Best regards, Gabriel
> 
> ___
> 
> Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)
> 
> Please do not post admin requests or moderator comments to the list.
> Contact the moderators at cocoa-dev-admins(at)lists.apple.com
> 
> Help/Unsubscribe/Update your Subscription:
> https://lists.apple.com/mailman/options/cocoa-dev/jackbrindle%40me.com
> 
> This email sent to jackbrin...@me.com

___

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com


Re: Indexing broken for one project

2022-02-13 Thread Jack Brindle via Cocoa-dev
In Monterey, /tmp is now only writeable by root. It is quite possible that 
Xcode couldn’t write there for the indexing.

When you changed to a new account, it probably changed where the derived data 
went.

It used to be that /tmp was writeable by anyone. That change bit me recently as 
well. Security?

Jack


> On Feb 13, 2022, at 4:09 PM, Gabriel Zachmann via Cocoa-dev 
>  wrote:
> 
>> This seems to indicate an error somewhere in the Xcode prefs.
> 
> Oh, wow, maybe I have resolved the issue!
> 
> The Derived Data directory is set to /tmp (i have had that setting for years).
> 
> Now, in Xcode / Preferences / Locations / Derived Data / Advanced,
> I set Custom = Relative to Derived Data.
> (Before , it was set to Absolute.)
> I have no idea, why it would not do the indexing before, and exactly what the 
> setting "Absolute" means, 
> but it looks like now it's working! 
> 
> Thanks a million to you all!
> 
> Best regards, Gabriel
> 
> ___
> 
> Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)
> 
> Please do not post admin requests or moderator comments to the list.
> Contact the moderators at cocoa-dev-admins(at)lists.apple.com
> 
> Help/Unsubscribe/Update your Subscription:
> https://lists.apple.com/mailman/options/cocoa-dev/jackbrindle%40me.com
> 
> This email sent to jackbrin...@me.com

___

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com


Re: App can't be opened

2021-09-09 Thread Jack Brindle via Cocoa-dev
In 10.13 this is not a Notarization problem. It could be a quarantine problem, 
though. Have him move the application to any directory other than the one where 
he unzipped the app, then launch the app. That should remove the quarantine and 
allow him to run the app if that was the problem. The Applications folder is a 
good place to move these things.

Jack


> On Sep 9, 2021, at 12:45 PM, Rob Petrovec via Cocoa-dev 
>  wrote:
> 
> The text in an error dialog is typically a washed down version of the actual 
> error.  See if you can get the user to give you a sysdiagnose log, taken just 
> after reproducing the problem, so you can check out the .logarchive to see 
> what the actual error was from the system.  It should provide more insight 
> into what the problem actually is.
> 
> btw, if you sent the app as a zip file you should double check the 
> permissions on the app, including its bundle contents.  Your uid may not be 
> the same has the users uid, so the privs could be set to not allow anyone but 
> you to open it.  Thats why installers are better than sending the raw bits.
> 
> —Rob
> 
> 
>> On Sep 9, 2021, at 7:13 AM, Gabriel Zachmann via Cocoa-dev 
>> mailto:cocoa-dev@lists.apple.com>> wrote:
>> 
>> I have compiled my app for macOS 10.12, because one user runs macOS 10.13.
>> 
>> Now he reports that he gets the error message "app can't be opened due to a 
>> problem"
>> (the err message is in German, but I guess this is what it would say in 
>> English.)
>> 
>> The error message does NOT say ".. unidentified developer"
>> and it does NOT say ".. cannot check it for malicious software".
>> 
>> I have notarized my app using Xcode's Archive utility.
>> I sent the user the app as a zip file - if you want , you can try it for 
>> yourself:
>> 
>>   https://owncloud.informatik.uni-bremen.de/index.php/s/9i3DCYodkgHZeZw
>> 
>> It goes without saying that I can run the app from that very zip file on my 
>> Mac.
>> 
>> Does anyone have an idea what might be causing this funny error message?
>> 
>> Best, G.
>> 
>> ___
>> 
>> Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)
>> 
>> Please do not post admin requests or moderator comments to the list.
>> Contact the moderators at cocoa-dev-admins(at)lists.apple.com
>> 
>> Help/Unsubscribe/Update your Subscription:
>> https://lists.apple.com/mailman/options/cocoa-dev/petrock%40mac.com 
>> 
>> 
>> This email sent to petr...@mac.com 
> 
> ___
> 
> Cocoa-dev mailing list (Cocoa-dev@lists.apple.com 
> )
> 
> Please do not post admin requests or moderator comments to the list.
> Contact the moderators at cocoa-dev-admins(at)lists.apple.com 
> 
> 
> Help/Unsubscribe/Update your Subscription:
> https://lists.apple.com/mailman/options/cocoa-dev/jackbrindle%40me.com 
> 
> 
> This email sent to jackbrin...@me.com 
___

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com


Re: Scroller and not apple's mouse

2021-04-14 Thread Jack Brindle via Cocoa-dev
Apple made a change in Catalina to add a system preference to Show Scroll Bars: 
“Automatically based on mouse or trackpad”. This is now the default. I believe 
you are wanting an alternate choice - “When scrolling”.
Note that the user makes the selection as they wish, so trying to force them to 
an alternate will only alienate users, and is obviously not  good thing.

Jack


> On Apr 13, 2021, at 6:44 AM, Alex Zavatone via Cocoa-dev 
>  wrote:
> 
> And WHICH non-Apple mice are you using?
> 
> Sent from my iPhone
> 
>> On Apr 13, 2021, at 8:44 AM, Alex Zavatone  wrote:
>> 
>> Please show your code.  Otherwise, we have little to go on.
>> 
>> Sent from my iPhone
>> 
>>> On Apr 13, 2021, at 2:41 AM, Allan Odgaard via Cocoa-dev 
>>>  wrote:
>>> 
>>> Probably two things relevant here.
>>> 
>>> One is General in system preferences which look like this:
>>> 
>>> ![](cid:2C16BC1B-F302-426F-9F6A-665F55C99045@simplit.com "PastedImage.png")
>>> 
>>> A Magic Mouse may count as a “track pad” so if you have this setting to 
>>> automatic, the scrollers will only be shown when scrolling.
>>> 
>>> You can manually override the scroller setting: 
>>> https://developer.apple.com/documentation/appkit/nsscroller/1523591-scrollerstyle
>>> 
>>> The style it sounds like you prefer is NSScrollerStyleOverlay.
>>> 
>>> However, I would discourage you from changing this.
>>> 
>>> 
>>>>> On 13 Apr 2021, at 9:24, IOS NACSPORT via Cocoa-dev wrote:
>>>> 
>>>> Hi,
>>>> 
>>>> I connect any non-Apple mouse, turn off the Apple mouse and the scroll 
>>>> shows, in it I can´t change the background color. I used swift and macOS. 
>>>> Without another mouse, only magic mouse I can change this color without 
>>>> problem.
>>>> 
>>>> Regards
>>>> 
>>>>> El 12/4/21 a las 23:40, Jack Brindle escribió:
>>>>> What is the mouse, and is there any installed software involved that goes 
>>>>> with the mouse?
>>>>> 
>>>>> Jack
>>>>> 
>>>>> 
>>>>>> On Apr 12, 2021, at 12:30 AM, IOS NACSPORT via Cocoa-dev 
>>>>>>  wrote:
>>>>>> 
>>>>>> Hi,
>>>>>> 
>>>>>> I don't kown is the correct place, In a NSScroller, when I conect the 
>>>>>> external mouse, not apple's mouse, the scroll change and show always, 
>>>>>> the problem is that I can't change its background color. How could it? 
>>>>>> or at least make it clear.
>>>>>> 
>>>>>> 
>>>>>> Regards
>>>>>> 
>>>>>> ___
>>>>>> 
>>>>>> Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)
>>>>>> 
>>>>>> Please do not post admin requests or moderator comments to the list.
>>>>>> Contact the moderators at cocoa-dev-admins(at)lists.apple.com
>>>>>> 
>>>>>> Help/Unsubscribe/Update your Subscription:
>>>>>> https://lists.apple.com/mailman/options/cocoa-dev/jackbrindle%40me.com
>>>>>> 
>>>>>> This email sent to jackbrin...@me.com
>>>> ___
>>>> 
>>>> Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)
>>>> 
>>>> Please do not post admin requests or moderator comments to the list.
>>>> Contact the moderators at cocoa-dev-admins(at)lists.apple.com
>>>> 
>>>> Help/Unsubscribe/Update your Subscription:
>>>> https://lists.apple.com/mailman/options/cocoa-dev/lists%2Bcocoa-dev%40simplit.com
>>>> 
>>>> This email sent to lists+cocoa-...@simplit.com
>>> 
>>> ___
>>> 
>>> Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)
>>> 
>>> Please do not post admin requests or moderator comments to the list.
>>> Contact the moderators at cocoa-dev-admins(at)lists.apple.com
>>> 
>>> Help/Unsubscribe/Update your Subscription:
>>> https://lists.apple.com/mailman/options/cocoa-dev/zav%40mac.com
>>> 
>>> This email sent to z...@mac.com
> ___
> 
> Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)
> 
> Please do not post admin requests or moderator comments to the list.
> Contact the moderators at cocoa-dev-admins(at)lists.apple.com
> 
> Help/Unsubscribe/Update your Subscription:
> https://lists.apple.com/mailman/options/cocoa-dev/jackbrindle%40me.com
> 
> This email sent to jackbrin...@me.com

___

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com


Re: /Library/Application Support off limits?

2021-04-14 Thread Jack Brindle via Cocoa-dev
/Applications is owned by root, and has rwx privileges only for the system, and 
rx for group (admin) and all. This means you will need to have your installer 
(with root privileges) to create your company/application directory inside. 
As an alternative, you can certainly place your directory in /Users/Shared. 
That directory has rwx privileges for everyone. I believe it also has the 
sticky bit set, which means that the “user” that created the file(s) must be 
the one to delete them.

Both are good places to put things that must be shared among multiple users. 
Note that ~/Library/Application Support is not a good place for sharing things 
since it is not accessible by anyone but the ~ user.

Jack



> On Apr 14, 2021, at 11:26 AM, Marco S Hyman via Cocoa-dev 
>  wrote:
> 
> 
>> Our app isn't sandboxed, but when I try to create a "/Library/Application 
>> Support/NewFolder" folder in there I get the following message:
>> 
>> /*You don't have permission to save the file "NewFolder" in the folder 
>> "Application Support."*/
> 
> Yup.  You want ~/Library/Application Support/NewFolder for per user files.  
> Use FileManager.  In swift something like
> 
> let fileManager = FileManager.default
> let supportDir = fileManager.url(for: .applicationSupportDirectory,
> in: .userDomainMask,
> appropriateFor: nil,
> create: true)
> 
> that creates the app support directory for your app.  You can then append 
> NewFolder to the resulting URL and create it.
> 
> I *think* (never used it, might be wrong) if you replace .userDomainMask with 
> .localDomainMask you will get a URL available to all users on the local 
> machine.
> 
> There may be other options that are better suited to your use.
> ___
> 
> Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)
> 
> Please do not post admin requests or moderator comments to the list.
> Contact the moderators at cocoa-dev-admins(at)lists.apple.com
> 
> Help/Unsubscribe/Update your Subscription:
> https://lists.apple.com/mailman/options/cocoa-dev/jackbrindle%40me.com
> 
> This email sent to jackbrin...@me.com

___

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com


Re: How to check signature and notarization?

2021-04-12 Thread Jack Brindle via Cocoa-dev
Quick followup:

Howard’s app: ArchiChect will do the job you need. The product page is at:

https://eclecticlight.co/32-bitcheck-archichect/

And it is free!

Jack


> On Apr 12, 2021, at 3:40 PM, Jack Brindle via Cocoa-dev 
>  wrote:
> 
> From the code sign man page:
> codesign --display --verbose=4 Terminal.app
> 
> replace Terminal.app with your application name (be sure to unzip first). The 
> information shown will tell you whether it is has a valid signature.
> You might try it on a few other apps just to see what that looks like.
> 
> Be sure that the customer copies the app from wherever they unzip it to the 
> Applications folder, or anyplace else. That will remove the quarantine on the 
> app.
> 
> As for checking Notarization, I don’t remember how, but there is a way. You 
> might explore the apps from Howard Oakley at his Eclectic Mac Light Company 
> web page. He has some very good tools that should show the security info.
> The URL: https://eclecticlight.co <https://eclecticlight.co/>
> 
> We distribute our app in zipped form (no dmg). It is in an installer app that 
> the user unzips, then runs, usually at the same place where they unzipped the 
> file. No problems with GateKeeper in over two years of Notarization so far.
> 
> Jack
> 
> 
> 
> 
>> On Apr 12, 2021, at 10:48 AM, Sean McBride via Cocoa-dev 
>>  wrote:
>> 
>> On Mon, 12 Apr 2021 18:36:12 +0200, Gabriel Zachmann via Cocoa-dev said:
>> 
>>> Is there a way to check that the signature and notarization is proper?
>>> Are there any other checks I can do to determine what is going wrong?
>> 
>> You might find this helpful:
>> 
>> <https://mjtsai.com/blog/2021/03/29/c0design-checker/>
>> 
>> Sean
>> 
>> 
>> ___
>> 
>> Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)
>> 
>> Please do not post admin requests or moderator comments to the list.
>> Contact the moderators at cocoa-dev-admins(at)lists.apple.com
>> 
>> Help/Unsubscribe/Update your Subscription:
>> https://lists.apple.com/mailman/options/cocoa-dev/jackbrindle%40me.com
>> 
>> This email sent to jackbrin...@me.com
> 
> ___
> 
> Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)
> 
> Please do not post admin requests or moderator comments to the list.
> Contact the moderators at cocoa-dev-admins(at)lists.apple.com
> 
> Help/Unsubscribe/Update your Subscription:
> https://lists.apple.com/mailman/options/cocoa-dev/jackbrindle%40me.com
> 
> This email sent to jackbrin...@me.com

___

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com


Re: Scroller and not apple's mouse

2021-04-12 Thread Jack Brindle via Cocoa-dev
What is the mouse, and is there any installed software involved that goes with 
the mouse?

Jack


> On Apr 12, 2021, at 12:30 AM, IOS NACSPORT via Cocoa-dev 
>  wrote:
> 
> Hi,
> 
> I don't kown is the correct place, In a NSScroller, when I conect the 
> external mouse, not apple's mouse, the scroll change and show always, the 
> problem is that I can't change its background color. How could it? or at 
> least make it clear.
> 
> 
> Regards
> 
> ___
> 
> Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)
> 
> Please do not post admin requests or moderator comments to the list.
> Contact the moderators at cocoa-dev-admins(at)lists.apple.com
> 
> Help/Unsubscribe/Update your Subscription:
> https://lists.apple.com/mailman/options/cocoa-dev/jackbrindle%40me.com
> 
> This email sent to jackbrin...@me.com

___

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com


Re: How to check signature and notarization?

2021-04-12 Thread Jack Brindle via Cocoa-dev
From the code sign man page:
codesign --display --verbose=4 Terminal.app

replace Terminal.app with your application name (be sure to unzip first). The 
information shown will tell you whether it is has a valid signature.
You might try it on a few other apps just to see what that looks like.

Be sure that the customer copies the app from wherever they unzip it to the 
Applications folder, or anyplace else. That will remove the quarantine on the 
app.

As for checking Notarization, I don’t remember how, but there is a way. You 
might explore the apps from Howard Oakley at his Eclectic Mac Light Company web 
page. He has some very good tools that should show the security info.
The URL: https://eclecticlight.co 

We distribute our app in zipped form (no dmg). It is in an installer app that 
the user unzips, then runs, usually at the same place where they unzipped the 
file. No problems with GateKeeper in over two years of Notarization so far.

Jack




> On Apr 12, 2021, at 10:48 AM, Sean McBride via Cocoa-dev 
>  wrote:
> 
> On Mon, 12 Apr 2021 18:36:12 +0200, Gabriel Zachmann via Cocoa-dev said:
> 
>> Is there a way to check that the signature and notarization is proper?
>> Are there any other checks I can do to determine what is going wrong?
> 
> You might find this helpful:
> 
> 
> 
> Sean
> 
> 
> ___
> 
> Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)
> 
> Please do not post admin requests or moderator comments to the list.
> Contact the moderators at cocoa-dev-admins(at)lists.apple.com
> 
> Help/Unsubscribe/Update your Subscription:
> https://lists.apple.com/mailman/options/cocoa-dev/jackbrindle%40me.com
> 
> This email sent to jackbrin...@me.com

___

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com


Re: Several different NSUserDefaults in the same app?

2021-04-06 Thread Jack Brindle via Cocoa-dev
I agree with you, to an extent. NSUserDefaults is very good when used as a 
single-level repository for settings data. When you want to categorize the 
settings by using collections, it starts to show the same problems that a 
regular file has, except slightly worse. Collections are saved as an object, 
which means that the collection itself will be mutable when it is read (i.e. 
you can replace it), but the contents (nodes and leaves) are not. You must do a 
mutable deep copy into a local mutable collection before you are able to modify 
settings in the collection. At this point you are now managing the settings 
yourself. Of course, saving the data in a plist file has the same problem, 
except that you can read in a plist into a collection and have it be mutable 
without too much fuss. As soon as you start using collections in your settings 
you negate much of the benefits provided by NSUserDefaults, especially if the 
collections are very deep.

I have saved preferences using both methods - I prefer using the NSUserDefaults 
method, but I still keep a settings manager for the collections that are saved 
in the defaults. The system gives you the standard user defaults, and 
automatically keeps things like window frames in that version. It also provides 
a nice KVC/KVO facility that is a bit more difficult (but doable) with your own 
plist file. In short, just about everything that NSUserDefaults gives you, you 
can create yourself by saving your own settings plist file. For simple apps, it 
is a no-brainer to use NSUserDefaults. For a much more complex app, with 
multiple collections needed for settings, it is a much more difficult call - 
since you are already having to manage the settings yourself, it may actually 
becomes easier to save and read the settings file yourself.

The collection issue also plays a part in using defaults write to modify 
settings. To use it, the prefs file needs to be copied, collection extracted 
and placed into its own file, change made, then you can use defaults write to 
save it back. I would not put my QA people through that process.

As for populating the defaults, you still have to do that yourself with 
NSUserDefaults. The [NSUserDefaults registerDefaults:] method does that, If you 
are using collections, you still have to create the collection and save it in 
the NSDictionary you create to hand to registerDefaults. In my experience with 
large apps with complex settings, I already have created the managers for 
handling the settings, so this actually becomes less of a feature - the 
managers handle reading in the data and giving the user whatever settings they 
need. Adding a setting is very easy here.

As usual, in the Mac, there are multiple ways of doing things. Each has its own 
tradeoffs. The designer needs to consider the needs of that application in 
order to make the right choice for that app. If the app needs to save multiple 
collections of data, then it very well may be easier to save those collections 
in multiple files, something that NSUserDefaults in not designed to do.

By the way, I also know developers who use an SQLite database for their 
settings. It was the right way for their app...

Jack 

> On Apr 6, 2021, at 6:41 AM, Gabriel Zachmann via Cocoa-dev 
>  wrote:
> 
> 
>> We don?t use NSUserDefaults in the app. Instead we have an 
>> NSMutableDictionary that holds the settings, and we write them to a file 
>> when they change. We read them in at app startup.
>> That allows us to actually have different settings for various items
> 
> Yes, that certainly works.
> 
> There is, however, a nice feature of NSUserDefaults that you will, I think, 
> loose,
> or that you will have to implement yourself by hand:
> when the app runs for the first time, NSUserDefaults gets populated by the 
> (real) defaults that come (more or less) hard-coded with your app.
> When a user changes one of those settings himself, then the system will know 
> that this is an actual user setting.
> Now, if you later change the values of the (real) defaults that come with the 
> app, maybe because the new default values are better,
> then those new defaults will take effect *except* for those settings that the 
> user has changed himself.
> 
>> (these are USB devices like mice and keyboards), and allows us to work 
>> around the restrictions of NSUserDefaults.
>> 
>> My only real issue with NSUserDefaults is that you cannot hand edit the 
>> prefs file since the system will overwrite your changes with its own cached 
>> data.
> 
> But you can always change them using the 'defaults' command , can't you?
> ('defaults write' even takes a plist as argument.)
> 
> 
> Best regards, Gabriel
> 
> 
> ___
> 
> Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)
> 
> Please do not post admin requests or moderator comments to the list.
> Contact the moderators at cocoa-dev-admins(at)lists.apple.com
> 
> Help/Unsubscribe/Update your Subscription:
> ht

Re: Several different NSUserDefaults in the same app?

2021-04-04 Thread Jack Brindle via Cocoa-dev
We don’t use NSUserDefaults in the app. Instead we have an NSMutableDictionary 
that holds the settings, and we write them to a file when they change. We read 
them in at app startup.
That allows us to actually have different settings for various items (these are 
USB devices like mice and keyboards), and allows us to work around the 
restrictions of NSUserDefaults.

My only real issue with NSUserDefaults is that you cannot hand edit the prefs 
file since the system will overwrite your changes with its own cached data. 
There was also a time in High Sierra
where changes in NSUserDefaults would trigger two KVO calls instead of just 
one. It caused interesting issues with analytics, making it look like the user 
triggered setting changes twice instead of just once.
Thankfully, Apple fixed that in Mojave.

Having said this, unless there are extenuating circumstances (like a 
requirement for multiple prefs files), I would rather use NSUserDefaults 
because of the facilities it gives us. Having a single file with a dictionary 
for each setting entity is a very valid way of doing things. It still means you 
have to write your own settings handler though, to maintain the individual 
settings dictionaries. It seems like the two approaches end up with the same 
amount of work either way.

Jack

> On Apr 4, 2021, at 8:01 AM, Richard Charles  wrote:
> 
> 
>> On Apr 4, 2021, at 4:50 AM, Mike Abdullah  wrote:
>> 
>>> From the docs - init returns an initialized NSUserDefaults object whose 
>>> argument and registration domains are already set up. This method does not 
>>> put anything in the search list. Invoke it only if you’ve allocated your 
>>> own NSUserDefaults instance instead of using the shared one.
>>> 
>>> So it appears that using alloc int does not return the shared instance.
>> 
>> Where in the docs do you read that? The current NSUserDefaults docs say 
>> contrary:
> 
> 
> Sorry for the confusion. It is older 10.9 documentation for the init method. 
> Apple depreciated initWithUser: and added initWithSuiteName: around this same 
> timeframe.
> 
> 
>> On Apr 4, 2021, at 12:15 AM, Jack Brindle via Cocoa-dev 
>>  wrote:
>> 
>> Gabriel;
>> 
>> It appears you are trying to get NSUserDefaults to do something that Apple 
>> doesn’t want it to do these days. Why not create your own defaults,
>> writing the data to a dictionary that is then written to a file that you 
>> save in the ~/Library/Preferences folder, with a name of your choice?
>> 
>> This does work in Big Sur, we use it ourselves. The down side is that you 
>> don’t have the nice (and infuriating) caching of defaults that the system 
>> provides.
>> Note that the system will still create the standard user defaults file for 
>> you, to save things like window positioning. But, you can save these things
>> yourself in your own files. Just make sure you don’t use the same file name 
>> as the system uses, or it will overwrite yours. You can modify it as you 
>> suggested previously, though.
> 
> 
> So Jack I am curious, do you use alloc then init or initWithSuiteName:nil or 
> initWithSuiteName:@“mySuiteName" to create your own defaults?
> 
> --Richard Charles

___

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com


Re: Several different NSUserDefaults in the same app?

2021-04-03 Thread Jack Brindle via Cocoa-dev
Gabriel;

It appears you are trying to get NSUserDefaults to do something that Apple 
doesn’t want it to do these days. Why not create your own defaults,
writing the data to a dictionary that is then written to a file that you save 
in the ~/Library/Preferences folder, with a name of your choice?

This does work in Big Sur, we use it ourselves. The down side is that you don’t 
have the nice (and infuriating) caching of defaults that the system provides.
Note that the system will still create the standard user defaults file for you, 
to save things like window positioning. But, you can save these things
yourself in your own files. Just make sure you don’t use the same file name as 
the system uses, or it will overwrite yours. You can modify it as you suggested 
previously, though.

Jack

> On Apr 3, 2021, at 11:26 AM, Richard Charles via Cocoa-dev 
>  wrote:
> 
> 
>> On Apr 3, 2021, at 9:56 AM, Gabriel Zachmann  wrote:
>> 
>> Sorry for asking: the shared instance is the one that is persistent, right?
> 
> 
> Looks like an instance created from alloc init would not be useful in your 
> situation. It appears you would be in charge of persistence.
> 
> NSUserDefault , Alloc init vs standard Userdefault
> 
> https://stackoverflow.com/questions/36615260
> 
> --Richard Charles
> 
> ___
> 
> Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)
> 
> Please do not post admin requests or moderator comments to the list.
> Contact the moderators at cocoa-dev-admins(at)lists.apple.com
> 
> Help/Unsubscribe/Update your Subscription:
> https://lists.apple.com/mailman/options/cocoa-dev/jackbrindle%40me.com
> 
> This email sent to jackbrin...@me.com

___

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com


Re: Customizing the Notarization Workflow fails

2020-04-25 Thread Jack Brindle via Cocoa-dev
Before someone reminds me, be sure to use the Xcode global variables for all 
this work. You will find the build directory in one of the variables (it’s 
Saturday - I don’t remember right now, so I hope someone bales me out again).
You can then use that var in the Notarization script to get your final product.

Once you get the hang of Notarization, you will find it isn’t difficult. 
Getting there is, however.

Jack


> On Apr 25, 2020, at 6:23 PM, Jack Brindle via Cocoa-dev 
>  wrote:
> 
> It seems like it would be easier to find the Build directory’s releases 
> folder and the find the built product somewhere inside. It’s relation to the 
> Build directory won’t change from build to build. Once you find that, just 
> Notarize it in place. You need to make sure that it is already code/product 
> signed (with hardened runtimes enabled).
> 
> Sometimes doing things yourself is easier and simpler than having Xcode do it 
> for you.
> 
> Jack
> 
> 
>> On Apr 25, 2020, at 10:05 AM, Gabriel Zachmann via Cocoa-dev 
>>  wrote:
>> 
>> Thanks a lot for your response.
>> 
>>> I’m not sure how you would script the export, but if you go to menu option 
>>> Window ->  Organizer, you can see your archives.
>> 
>> Yes, I can see them.
>> But when I do "Show in Finder", then "Show package contents", they contain 
>> nothing
>> (except for an empty Products folder, and an Info.plist).
>> 
>>> From there you can export. Apps have the button “Distribute App”, and a 
>>> command line program has the button “Distrubute Content”.
>> 
>> Yes, screen savers have the “Distrubute Content” button, too.
>> 
>>> Clicking that button lets you export the archive or the app/built products. 
>>> Those are exported into a folder named with the date by default.
>> 
>> Yes, but they contain just an empty "Products" folder.
>> 
>> 
>> Best regards, Gabriel
>> 
>> 
>> ___
>> 
>> Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)
>> 
>> Please do not post admin requests or moderator comments to the list.
>> Contact the moderators at cocoa-dev-admins(at)lists.apple.com
>> 
>> Help/Unsubscribe/Update your Subscription:
>> https://lists.apple.com/mailman/options/cocoa-dev/jackbrindle%40me.com
>> 
>> This email sent to jackbrin...@me.com
> 
> ___
> 
> Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)
> 
> Please do not post admin requests or moderator comments to the list.
> Contact the moderators at cocoa-dev-admins(at)lists.apple.com
> 
> Help/Unsubscribe/Update your Subscription:
> https://lists.apple.com/mailman/options/cocoa-dev/jackbrindle%40me.com
> 
> This email sent to jackbrin...@me.com

___

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com


Re: Customizing the Notarization Workflow fails

2020-04-25 Thread Jack Brindle via Cocoa-dev
It seems like it would be easier to find the Build directory’s releases folder 
and the find the built product somewhere inside. It’s relation to the Build 
directory won’t change from build to build. Once you find that, just Notarize 
it in place. You need to make sure that it is already code/product signed (with 
hardened runtimes enabled).

Sometimes doing things yourself is easier and simpler than having Xcode do it 
for you.

Jack


> On Apr 25, 2020, at 10:05 AM, Gabriel Zachmann via Cocoa-dev 
>  wrote:
> 
> Thanks a lot for your response.
> 
>> I’m not sure how you would script the export, but if you go to menu option 
>> Window ->  Organizer, you can see your archives.
> 
> Yes, I can see them.
> But when I do "Show in Finder", then "Show package contents", they contain 
> nothing
> (except for an empty Products folder, and an Info.plist).
> 
>> From there you can export. Apps have the button “Distribute App”, and a 
>> command line program has the button “Distrubute Content”.
> 
> Yes, screen savers have the “Distrubute Content” button, too.
> 
>> Clicking that button lets you export the archive or the app/built products. 
>> Those are exported into a folder named with the date by default.
> 
> Yes, but they contain just an empty "Products" folder.
> 
> 
> Best regards, Gabriel
> 
> 
> ___
> 
> Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)
> 
> Please do not post admin requests or moderator comments to the list.
> Contact the moderators at cocoa-dev-admins(at)lists.apple.com
> 
> Help/Unsubscribe/Update your Subscription:
> https://lists.apple.com/mailman/options/cocoa-dev/jackbrindle%40me.com
> 
> This email sent to jackbrin...@me.com

___

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com


Re: Future of Cocoa

2019-11-21 Thread Jack Brindle via Cocoa-dev
I would add that for those of us developing for the Mac platform, the security 
sessions have been critical for the last two years. Without a good 
understanding of the issues discussed in those sessions, I don’t see how a 
developer's application could run properly on Catalina.

I see the WWDC sessions as part of my job as a Mac developer. Staying up to 
date on Mac developments is critical, otherwise I become stale and not as 
useful in my work. So, I do devote time to watching important Mac WWDC videos 
for things that I need to learn or be refreshed on.

Jack


> On Nov 21, 2019, at 1:08 PM, Jens Alfke via Cocoa-dev 
>  wrote:
> 
> 
> 
>> On Nov 21, 2019, at 12:20 PM, Pier Bover via Cocoa-dev 
>>  wrote:
>> 
>> If someone can afford days/weeks to do watch WWDC sessions consistently
>> every year it's great. That's not a luxury all of us can afford and it's
>> ridiculous to think this should be a requirement.
> 
> All you need to watch are the keynote, and the "State Of The Union" talks the 
> same day. That's maybe 3-4 hours. Or if you're really short on time you can 
> read the multitude of blog posts and news articles, or read through the text 
> transcripts of the talks after Apple posts those.
> 
> If you're developing for Apple platforms, you need to keep abreast of what's 
> happening on those platforms. That's just common sense. Tech moves fast, and 
> if you don't stay informed and stay educated, you'll be left behind.
> 
> —Jens
> ___
> 
> Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)
> 
> Please do not post admin requests or moderator comments to the list.
> Contact the moderators at cocoa-dev-admins(at)lists.apple.com
> 
> Help/Unsubscribe/Update your Subscription:
> https://lists.apple.com/mailman/options/cocoa-dev/jackbrindle%40me.com
> 
> This email sent to jackbrin...@me.com

___

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com


Re: Apple Notary Service returning false "Could not find the RequestUUID"

2019-11-02 Thread Jack Brindle via Cocoa-dev
Jerry;

Thanks for updating that info. Your info has helped a lot in my own 
notarization efforts.

The Notarization system consists of two parts - the front end that our scripts 
communicate with to request takes and get info, and a back-end that actually 
does the notarization work. When we get that error, it is the back-end that is 
down.
And the response is correct - the front end doesn’t know anything about that 
task, because no one is at home to tell it. The data is queued, and will run 
eventually when the back end comes back up. If you watch your history info over 
time, you will see the task complete. Still, when this happens it is 
aggravating. Adding a check for that error in the script really helps; at least 
it tells me why Notarization is taking so long. My scripts will then abort the 
request, and we will queue up a fresh build later.

The notarization service should be running just fine at present, at least that 
is what the developer status page is indicating: 
https://developer.apple.com/system-status/ 


Jack


> On Nov 2, 2019, at 2:43 PM, Jerome Krinock via Cocoa-dev 
>  wrote:
> 
> I think this list still has a lot of Mac developers.
> 
> Recently, and particularly today, Apple Notary Service has been returning 
> false errors code 1519 “could not find the RequestUUID” responses to 
> notification info requests which in fact contain good Request UUIDs.  One 
> short answer is to ignore this error and keep trying; after several hours, 
> the response will change to the expected “in progress” and shortly 
> thereafter, “success”.  I’m shipping several Developer ID apps and have seen 
> this happen 5 times so far today.
> 
> I’ve posted a longer answer here:
> 
> https://stackoverflow.com/questions/56890749/macos-notarize-in-script/56890758#56890758
> 
> Scroll down to "UPDATE 2019-11-03”.
> ___
> 
> Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)
> 
> Please do not post admin requests or moderator comments to the list.
> Contact the moderators at cocoa-dev-admins(at)lists.apple.com
> 
> Help/Unsubscribe/Update your Subscription:
> https://lists.apple.com/mailman/options/cocoa-dev/jackbrindle%40me.com
> 
> This email sent to jackbrin...@me.com

___

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com


Re: Scrolling differences when using Trackpad or Mouse-Wheel

2018-06-21 Thread Jack Brindle
At this point I am comfortable eliminating the mouse as an issue for you. You 
are right, mouse wheel processing is different. It came into the system well 
before the trackpad support. I believe macOS is in the second or third 
generation of trackpad support, with the last change adding gesture and depth 
control.

Good luck finding the problem!

Jack


> On Jun 21, 2018, at 12:42 AM, Michael Starke 
>  wrote:
> 
> The mice where all connected via USB. No wireless mice where used or tested.
> 
> Connections where:
>   Mouse - MacBook
>   Mouse - Dell Hub - MacBook
>   Mouse - Apple Keyboard - Dell Hub - MacBook
> 
> Checking the Trace in Instruments reveals that the scrolling via mouse wheel 
> get processed differently than scrolling on the trackpad.
> 
> - Michael
> 
>> On 21. Jun 2018, at 02:01, Jack Brindle  wrote:
>> 
>> Logitech mice don’t have drivers for the Mac these days, but the Options 
>> software can add interesting capabilities. It is not required for general 
>> use, but is required if you want any of the additional buttons or features 
>> to be used.
>> 
>> The next question I would ask is how you have the mouse attached to the 
>> computer - Unifying receiver or bluetooth (BLE). It does make a difference, 
>> we have seen interesting lag issues with BLE that don’t exist with the 
>> Unifying receiver. If you are using BLE, I would suggest plugging in a 
>> Unifying receiver that is paired to the mouse and trying the mouse with that 
>> method of communications.
>> 
>> I’m not saying this is a mouse issue, just trying to make sure it isn’t one.
>> 
>> Jack Brindle
>> Logitech Engineering
>> 
>> 
>>> On Jun 20, 2018, at 4:53 AM, Michael Starke 
>>>  wrote:
>>> 
>>> I'm using a Logitech mouse without any additional drivers installed.
>>> 
>>> I tried using a couple of Logitech mouses, directly attached to the Laptop, 
>>> attached to the Hub inside the monitor, nothing changes. Every mouse 
>>> behaves the same way that is, it's lagging on the initial scroll.
>>> 
>>> I'll try to find some more mice from different vendors to see if this makes 
>>> any difference. And I'll run Instruments to see if I can identify the 
>>> bottleneck.
>>> 
>>> - Michael
>>> 
>>>> On 20. Jun 2018, at 06:03, Jack Brindle  wrote:
>>>> 
>>>> What’s the mouse? It’s not from Apple, so what is it, how is it connected 
>>>> and does it use any software to help it work?
>>>> 
>>>> Jack
>>>> 
>>>> 
>>>>> On Jun 19, 2018, at 2:56 AM, Michael Starke 
>>>>>  wrote:
>>>>> 
>>>>> Hi list,
>>>>> 
>>>>> I'm currently trying to find the bottleneck in my app MacPass that's 
>>>>> causing the scrolling in the main table to be sluggish.
>>>>> 
>>>>> Before diving deeply into Instruments to find the culprit I realized that 
>>>>> scrolling with the trackpad is butter-smooth but scrolling using the 
>>>>> mouse wheel is rather slow. When I start to scroll down, there's a slight 
>>>>> delay but then the scrolling works smooth. This is not the case when 
>>>>> scrolling up or when scrolling using the trackpad.
>>>>> 
>>>>> I'm gladi if anyone could point me to a solution
>>>>> 
>>>>> SDK is 10.12, deployment target is 10.10 and the NSTableView is NSView 
>>>>> based
>>>>> 
>>>>> - Michael
>>>>> 
>>>>> ___m i c h a e l   s t a r k e 
>>>>>   geschäftsführer
>>>>>   HicknHack Software GmbH
>>>>>   www.hicknhack-software.com
>>>>> 
>>>>> ___k o n t a k t
>>>>>   +49 (170) 3686136
>>>>>   cont...@hicknhack.com
>>>>> 
>>>>> ___H i c k n H a c k   S o f t w a r e   G m b H
>>>>>   geschäftsführer - maik lathan | andreas reischuck | michael starke
>>>>>   bayreuther straße 32
>>>>>   01187 dresden
>>>>>   amtsgericht dresden HRB 30351
>>>>>   sitz - dresden
>>>>> 
>>>>> ___
>>>>> 
>>>>> Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)
>>>>> 
>>>>> Please do not post admin requests or moderator comments to the list.
>>

Re: Scrolling differences when using Trackpad or Mouse-Wheel

2018-06-20 Thread Jack Brindle
Logitech mice don’t have drivers for the Mac these days, but the Options 
software can add interesting capabilities. It is not required for general use, 
but is required if you want any of the additional buttons or features to be 
used.

The next question I would ask is how you have the mouse attached to the 
computer - Unifying receiver or bluetooth (BLE). It does make a difference, we 
have seen interesting lag issues with BLE that don’t exist with the Unifying 
receiver. If you are using BLE, I would suggest plugging in a Unifying receiver 
that is paired to the mouse and trying the mouse with that method of 
communications.

I’m not saying this is a mouse issue, just trying to make sure it isn’t one.

Jack Brindle
Logitech Engineering


> On Jun 20, 2018, at 4:53 AM, Michael Starke 
>  wrote:
> 
> I'm using a Logitech mouse without any additional drivers installed.
> 
> I tried using a couple of Logitech mouses, directly attached to the Laptop, 
> attached to the Hub inside the monitor, nothing changes. Every mouse behaves 
> the same way that is, it's lagging on the initial scroll.
> 
> I'll try to find some more mice from different vendors to see if this makes 
> any difference. And I'll run Instruments to see if I can identify the 
> bottleneck.
> 
> - Michael
> 
>> On 20. Jun 2018, at 06:03, Jack Brindle  wrote:
>> 
>> What’s the mouse? It’s not from Apple, so what is it, how is it connected 
>> and does it use any software to help it work?
>> 
>> Jack
>> 
>> 
>>> On Jun 19, 2018, at 2:56 AM, Michael Starke 
>>>  wrote:
>>> 
>>> Hi list,
>>> 
>>> I'm currently trying to find the bottleneck in my app MacPass that's 
>>> causing the scrolling in the main table to be sluggish.
>>> 
>>> Before diving deeply into Instruments to find the culprit I realized that 
>>> scrolling with the trackpad is butter-smooth but scrolling using the mouse 
>>> wheel is rather slow. When I start to scroll down, there's a slight delay 
>>> but then the scrolling works smooth. This is not the case when scrolling up 
>>> or when scrolling using the trackpad.
>>> 
>>> I'm gladi if anyone could point me to a solution
>>> 
>>> SDK is 10.12, deployment target is 10.10 and the NSTableView is NSView based
>>> 
>>> - Michael
>>> 
>>> ___m i c h a e l   s t a r k e 
>>> geschäftsführer
>>> HicknHack Software GmbH
>>> www.hicknhack-software.com
>>> 
>>> ___k o n t a k t
>>> +49 (170) 3686136
>>> cont...@hicknhack.com
>>> 
>>> ___H i c k n H a c k   S o f t w a r e   G m b H
>>> geschäftsführer - maik lathan | andreas reischuck | michael starke
>>> bayreuther straße 32
>>> 01187 dresden
>>> amtsgericht dresden HRB 30351
>>> sitz - dresden
>>> 
>>> ___
>>> 
>>> Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)
>>> 
>>> Please do not post admin requests or moderator comments to the list.
>>> Contact the moderators at cocoa-dev-admins(at)lists.apple.com
>>> 
>>> Help/Unsubscribe/Update your Subscription:
>>> https://lists.apple.com/mailman/options/cocoa-dev/jackbrindle%40me.com
>>> 
>>> This email sent to jackbrin...@me.com
>> 
> 
> 
> ___m i c h a e l   s t a r k e 
>   geschäftsführer
>   HicknHack Software GmbH
>   www.hicknhack-software.com
> 
> ___k o n t a k t
>   +49 (170) 3686136
>   cont...@hicknhack.com
> 
> ___H i c k n H a c k   S o f t w a r e   G m b H
>   geschäftsführer - maik lathan | andreas reischuck | michael starke
>   bayreuther straße 32
>   01187 dresden
>   amtsgericht dresden HRB 30351
>   sitz - dresden
> 
> ___
> 
> Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)
> 
> Please do not post admin requests or moderator comments to the list.
> Contact the moderators at cocoa-dev-admins(at)lists.apple.com
> 
> Help/Unsubscribe/Update your Subscription:
> https://lists.apple.com/mailman/options/cocoa-dev/jackbrindle%40me.com
> 
> This email sent to jackbrin...@me.com

___

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com


Re: Scrolling differences when using Trackpad or Mouse-Wheel

2018-06-19 Thread Jack Brindle
What’s the mouse? It’s not from Apple, so what is it, how is it connected and 
does it use any software to help it work?

Jack


> On Jun 19, 2018, at 2:56 AM, Michael Starke 
>  wrote:
> 
> Hi list,
> 
> I'm currently trying to find the bottleneck in my app MacPass that's causing 
> the scrolling in the main table to be sluggish.
> 
> Before diving deeply into Instruments to find the culprit I realized that 
> scrolling with the trackpad is butter-smooth but scrolling using the mouse 
> wheel is rather slow. When I start to scroll down, there's a slight delay but 
> then the scrolling works smooth. This is not the case when scrolling up or 
> when scrolling using the trackpad.
> 
> I'm gladi if anyone could point me to a solution
> 
> SDK is 10.12, deployment target is 10.10 and the NSTableView is NSView based
> 
> - Michael
> 
> ___m i c h a e l   s t a r k e 
>   geschäftsführer
>   HicknHack Software GmbH
>   www.hicknhack-software.com
> 
> ___k o n t a k t
>   +49 (170) 3686136
>   cont...@hicknhack.com
> 
> ___H i c k n H a c k   S o f t w a r e   G m b H
>   geschäftsführer - maik lathan | andreas reischuck | michael starke
>   bayreuther straße 32
>   01187 dresden
>   amtsgericht dresden HRB 30351
>   sitz - dresden
> 
> ___
> 
> Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)
> 
> Please do not post admin requests or moderator comments to the list.
> Contact the moderators at cocoa-dev-admins(at)lists.apple.com
> 
> Help/Unsubscribe/Update your Subscription:
> https://lists.apple.com/mailman/options/cocoa-dev/jackbrindle%40me.com
> 
> This email sent to jackbrin...@me.com

___

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com


Re: Crashes inside CFStringDeallocate

2018-05-25 Thread Jack Brindle
Not necessarily. I have never seen a guarantee that the C++ string functions 
output their data in the exact format that [NSString 
stringWithCharacters:length:] needs as an input. As you discovered, getting 
UTF8 from the C++ string does give you proper data for the corresponding 
NSString creator method.

Assuming things are compatible between C++ and Cocoa methods usually leads to 
bug reports at the very least.

Jack

> On May 25, 2018, at 2:18 PM, Vojtěch Meluzín  
> wrote:
> 
> Ok so I got a solution - it's the utf16 indeed. When I use [NSString
> stringWithUTF8String] instead, it doesn't crash. Considering it does that
> only on 10.10 (and probably older), it seems like OSX malfunction... oh
> well... Fortunately no big deal.
> 
> Cheers!
> Vojtech
> www.meldaproduction.com
> 
> 2018-05-25 22:49 GMT+02:00 Vojtěch Meluzín :
> 
>> Thanks for the reply Ken. I don't really know what Zombies instrument is,
>> I'll check. The GetLength returns the number of UTF-16 characters (hence
>> half of the buffer length), not including zero terminator.
>> 
>> Cheers!
>> Vojtech
>> 
>> 2018-05-25 16:26 GMT+02:00 Ken Thomases :
>> 
>>> On May 25, 2018, at 5:44 AM, Vojtěch Meluzín 
>>> wrote:
 
 I have received a few cases like the trace below - it always happens in
>>> OSX
 10.10 and runModalForWindow and crashes in CFStringDeallocate. Any ideas
 what that could be?
>>> 
>>> Have you run your app with the Zombies instrument?
>>> 
 […] NSStrings, which are
 probably the issue here are always created from our MString like this:
 
 const unichar *utf16 = (const unichar  *)s.GetUTF16();
 return [NSString stringWithCharacters: utf16 length: s.GetLength()];
>>> 
>>> Does MString::GetLength() return the length in UTF-16 code units (as
>>> opposed to, say, UTF-8 code units)?
>>> 
>>> Regards,
>>> Ken
>>> 
>>> 
>> 
> ___
> 
> Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)
> 
> Please do not post admin requests or moderator comments to the list.
> Contact the moderators at cocoa-dev-admins(at)lists.apple.com
> 
> Help/Unsubscribe/Update your Subscription:
> https://lists.apple.com/mailman/options/cocoa-dev/jackbrindle%40me.com
> 
> This email sent to jackbrin...@me.com

___

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com


Re: Persistent User Defaults

2018-04-24 Thread Jack Brindle
One thing further. The defaults are set in the program, and changes are written 
to the plist when they first differ from the set defaults. This can be very 
confusing since many folks expect to see all defaults in the file and are 
surprised to see only a few. Interestingly it appears that if they are changed 
back the change is still written to the plist so that over time you may get the 
entire set there.

- Jack


> On Apr 24, 2018, at 8:51 AM, Rob Petrovec  wrote:
> 
> 
> 
>> On Apr 24, 2018, at 11:42 AM, Richard Charles  wrote:
>> 
>> On macOS an applications user defaults are stored in a preference plist file 
>> located in ~/Library/Preferences.
>   Thats not entirely accurate.  They can be in various locations, 
> including but not limited to ~/Library/Preferences/ByHost, 
> /Library/Preferences & /Library/Preferences/ByHost
> 
> 
>> If this file is deleted, user preferences for the application still persist 
>> until the machine is rebooted. In other words if you want to start with a 
>> clean set of user preferences not only must you delete the preference plist 
>> file but you must also restart the machine.
>> 
>> Can anyone shed light on this behavior?
>   You should use the ‘defaults’ command in Terminal to do modifications 
> like this (see 'man defaults’ for more info).  It will cause CFPreferences to 
> reload the prefs for the effected app automagically.  If you want to blow 
> away all the prefs for an app use ‘defaults delete ’.  
> If you want to load a pre-configured .plist use 'defaults import  identifier string> ’.
> 
> Hope that helps.
> 
> —Rob
> 
> 
> 
> ___
> 
> Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)
> 
> Please do not post admin requests or moderator comments to the list.
> Contact the moderators at cocoa-dev-admins(at)lists.apple.com
> 
> Help/Unsubscribe/Update your Subscription:
> https://lists.apple.com/mailman/options/cocoa-dev/jackbrindle%40me.com
> 
> This email sent to jackbrin...@me.com

___

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com


Re: NSLayoutConstraint crash

2018-03-16 Thread Jack Brindle
I would be willing to bet that you are throwing a lot of constraint exceptions 
without realizing it.
When the view is laid out the constraints are evaluated, including the 
priorities. When a set
of constraints has a conflict with another (very easy to do) the priorities 
come into play. If
you set the constraints in IB and do not set the priorities, then they will 
usually be the same.
The view system will then have to take a guess at what you really wanted to do, 
breaking
one of the constraints (usually the very one you find most important). This 
will be
displayed in the log as a constraint exception. Many times it will take several 
layout
passes before it finds a setup it can work with. Reading the constraint display 
information
is an art, but one that can be learned and is then very valuable.

It turns out that the key to really understanding and working with constraints 
is in setting
priorities properly. This takes a while to figure out, but it appears to be 
something you
are about to go through. As you lay out the views and set the constraints, try 
to make
sure that there is only a single set of constraints on each view, and then if 
there are
more than one, the priorities are set so that the views will display where you 
want
them to be.

There is another thing that most developers don’t realize - the view system 
will create
constraints behind your back if you let it. It will use the autoresizing mask 
to generate
constraints, which means there is an extra set of constraints that can 
interfere with
what you really want. In most of my view controllers in either the viewDidLoad 
or 
awakeFromNib you will find the line:
view.translatesAutoresizingMaskIntoConstraints = NO;
This allows me to only have the constraints I set, eliminating a lot of issues.

There are a few NSView methods that will dump the constraints in place for the 
view:

constraints

will return the constraints for a view. This is all the constraints (in an 
NSArray) and
will show you everything, including some not so useful things.

After a layout has occurred, use:
constraintsAffectingLayoutForOrientation:

The NSArray of constraints will include the ones you really want to look at for
the view. This is the one you really want to use to see what is actually going 
on.

Constraints is a very big topic with many things to learn and control. They are
very powerful, and thus very maddening when they don’t work they way you
understand. Take the time to learn how to use them, and you will be much 
happier!

- Jack


> On Mar 16, 2018, at 9:40 AM, David Catmull  wrote:
> 
> I might try it, but it's difficult to do accurately because the views are
> assembled programmatically - it's dynamically generated based on the data
> read in.
> 
> On Fri, Mar 16, 2018 at 10:37 AM, Richard Charles 
> wrote:
> 
>> 
>>> On Mar 16, 2018, at 9:03 AM, David Catmull 
>> wrote:
>>> 
>>> After I set up a somewhat complex view hierarchy, I'm getting a crash
>> with
>>> this exception:
>>> 
>>> 2018-03-16 08:59:21.814873-0600 App[31201:13046721] *** Assertion
>> failure
>>> in -[NSLayoutConstraint setPriority:],
>>> /BuildRoot/Library/Caches/com.apple.xbs/Sources/Foundation/
>> Foundation-1451/Foundation/Layout.subproj/NSLayoutConstraint.m:222
>>> 
>>> It happens on the main event loop where none of my code is involved; I
>>> never set constraint priorities myself. What could be causing this error?
>> 
>> Have you tried manually exercising the constraints? In Interface Builder
>> drag the views into random positions and sizes then click "Update Frames”
>> to force the constraint system to apply the constraints. This may uncover
>> any errors you have in the constraints containted in the view hierarchy.
>> 
>> --Richard Charles
>> 
>> 
> ___
> 
> Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)
> 
> Please do not post admin requests or moderator comments to the list.
> Contact the moderators at cocoa-dev-admins(at)lists.apple.com
> 
> Help/Unsubscribe/Update your Subscription:
> https://lists.apple.com/mailman/options/cocoa-dev/jackbrindle%40me.com
> 
> This email sent to jackbrin...@me.com

___

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com


Re: [ANN] Nursery Framework 1.0.1 (build with Xcode 9) released

2017-10-27 Thread Jack Brindle
Not all of these words are bad. In fact some have pretty common utilization.

For example, a “pupil” is another name for a student. This is used every day in 
schools here in California and has no negative connotation.

Stalk can have a few meanings. A corn stalk is a pretty good thing, it grows up 
from the ground and produces ears of corn. On the other
hand, stalking someone can be bad - it means that you are watching their moves 
to perhaps attack them. Unless we are talking about the
military and war, this is generally a bad thing.

Play Lot is a new term, not commonly used at all. Perhaps Playground (which 
Apple uses for the Swift development environment), or
sandbox (which has other uses in computing). Sand Lot may work as well. Those 
of us who played baseball in our younger days
most likely played on a sand lot (I bet this is done in Japan as well, since 
baseball is popular there).

Now I find a negative connotation of Peephole interesting. It can have a 
negative connotation, however at downtown construction
projects around the world the barricades and fences generally have peepholes 
sop that folks can look at the construction. And I
wonder if anyone really objects to peephole optimization in compilers.

What this really points out is that words in the English language commonly have 
multiple meanings. Some of those meanings _may_
be bad, but most are not. And some have been perverted into negative use. Folks 
new to English almost always have problems with
our multiple meaning words, and spend a lot of time learning what they really 
mean. Helping those people learn our nuances is very
much a worthwhile effort, and one I enjoy.

And, a story. My wife once had lunch with a coworker where they discussed the 
ins and outs of creating new processes in Unix. They
received many horrified looks as they discussed forking, child died events and 
so forth. It provided much laughter after they explained
what the discussion was all about.

Best of luck learning our complex language. And if we can help, just ask!

- Jack Brindle


> On Oct 27, 2017, at 12:57 AM, Akifumi Takata  wrote:
> 
> Dear Quincey Morris,
> 
> Thank you for suggesting your opinion and Romaji use.
> 
> However, I would like people in the world to freely use the Nursery framework.
> Also, I think that the world wide language is English.
> 
> Currently, I learned that the following words are inappropriate or strange.
> 
> Kidnapper
> Peephole
> Stalker
> Stalk
> Play Lot
> Pupil
> 
> Can anyone tell me the proper English to replace these?
> 
> My English skills are not enough, so even if myself chooses words, there is 
> the danger of repeating the same mistake again.
> 
> I need help from someone fluent in English.
> 
> Regards,
> Akifumi Takata
> 
>> 2017/10/27 9:27、Quincey Morris のメール:
>> 
>> Akifumi,
>> 
>> Alex Zavatone is just one voice. Not everyone has the same opinion.
>> 
>> I am *not* offended at calling a class “NUKidnapper”.
>> 
>> If the English naming is a problem, then I suggest you name the classes in 
>> Japanese (romaji). TBH, I don’t see why English speakers must demand English 
>> names.
>> 
>> Of course, I’m just one voice, too.
>> 
>>> On Oct 26, 2017, at 16:34 , Akifumi Takata  wrote:
>>> 
>>> Dear Alex Zavatone,
>>> 
>>> I understood that the words I chose are very problematic in 
>>> English-speaking countries.
>>> 
>>> I need help from those with fluent English to solve the problem.
>> 
>> 
> 
> ___
> 
> Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)
> 
> Please do not post admin requests or moderator comments to the list.
> Contact the moderators at cocoa-dev-admins(at)lists.apple.com
> 
> Help/Unsubscribe/Update your Subscription:
> https://lists.apple.com/mailman/options/cocoa-dev/jackbrindle%40me.com
> 
> This email sent to jackbrin...@me.com

___

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com


Re: Inserting a button into another application's toolbar

2017-09-18 Thread Jack Brindle
Actually, there may be a way. It all depends on exactly where in the menu bar 
you want to place the menu item.
If you want to add it on the right side as a status item, then you need to 
check out NSStatusBar. This would
allow you to add a separate application (more likely a user Agent which can be 
launched when the user logs in).
You can place normal menu items in the NSStatusBar menu which refer to things 
in your app. It, of course,
would communicate with the target app using Apple Events. I would add an extra 
touch to determine when
the target app is active and have the status bar item (along with its UI) 
enabled then, disabling it when the
target app is not active (either launched or frontmost).

Note that running your app as a user agent also means there is no main menu or 
dock icon, which is probably
a good thing. You will also want to treat the windows and controls carefully so 
that they can accept clicks
but do not take over as the frontmost application, instead leaving the target 
app as the frontmost application.

This may not be exactly what you want - like others I don’t know of any 
legitimate way to add an item to
the left side of an apps menu bar, but it certainly is doable, and is even 
within the security guidelines, as
long as using AppleEvents works with the target app.

- Jack
 
 
> On Sep 18, 2017, at 4:15 PM, Jens Alfke  wrote:
> 
> 
> 
>> On Sep 18, 2017, at 2:35 PM, Nick  wrote:
>> 
>> adding/injecting a toolbar icon
>> with a custom handler code into the main window of the application.
> 
> Sorry, there's no reasonable way to do that if the app doesn't already 
> support plugins. There used to be some awful hacks that patched into the 
> app-launching mechanism and made it possible to inject code into other apps, 
> but that approach causes stability problems and is in general terrible for 
> security.
> 
> —Jens
> ___
> 
> Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)
> 
> Please do not post admin requests or moderator comments to the list.
> Contact the moderators at cocoa-dev-admins(at)lists.apple.com
> 
> Help/Unsubscribe/Update your Subscription:
> https://lists.apple.com/mailman/options/cocoa-dev/jackbrindle%40me.com
> 
> This email sent to jackbrin...@me.com

___

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com


Re: NSTouchBar in Carbon

2017-01-01 Thread Jack Brindle
The NSTouchBar docs provide the keys for what is needed. 
The object it is defined in must be in the responder chain (i.e a window, view 
or anything  else that is in the chain),
Conform to the NSTouchBarProvider protocol,
and implement the makeTouchBar method.

I suspect the hardest one for you will be the first, attaching the toucher to 
an object that is in the responder chain. The system appears to use
that to determine when to switch in and out the touchBar - when it activates a 
window or view that has a touchbar, it displays it. When it is 
deactivated, whatever is activated gets a shot at showing its touchBar, if it 
has one.

So, you need to come up with an object that is in the responder chain, can 
become first responder (or owns the first responder),
implements the NSTouchBarProvider protocol, and implements the makeTouchBar 
method, returning the touchBar object.
Might be an interesting challenge in our environment, especially without 
windows or views available. Please let us know how you do it!

Jack Brindle




> On Dec 30, 2016, at 5:30 AM, Uli Kusterer  
> wrote:
> 
> On 12 Dec 2016, at 07:22, David M. Cotter  wrote:
>> My app is mostly C++ (because it’s cross platform) with Carbon on the UI 
>> edges, and the absolute minimum required ObjectiveC++ to make it work.  
>> (please no discussion about why this is stupid / i should write a modern app 
>> etc)
>> 
>> So I need to programmatically instantiate an NSTouchBar, somehow
>> 
>> i do have a “MainController” which is just an NSObject, and a literally 
>> empty nib i COULD put something into.
>> 
>> but i do NOT have an NSView or NSViewController to connect the touch bar to, 
>> and i’d prefer not to have to use any storyboard if i can avoid it (of 
>> course i will if it can’t be avoided)
>> 
>> how do i go about just creating an NSTouchBar in objC and having it show up 
>> and respond to taps?
> 
> From a casual look at the comments in the NSTouchBar.h header, it seems as if 
> you only need an application delegate (which I assume you mean by your 
> MainController NSObject?) that implements NSTouchBarProvider to return an 
> NSTouchBar object. Of course, if you implement it all there, you'll have to 
> come up with your own way to determine from the frontmost window etc. which 
> items to show.
> 
> As to implementing the actual items, it seems like, lacking an NSCarbonView, 
> you need to use an NSView to provide those (and if you're using some standard 
> view, that will in turn need to either be subclassed or need another object 
> to talk to that knows how to dispatch messages to your Carbon code.
> 
> FWIW, in our Cocoa port, we tried just funneling everything through the app 
> delegate as fake Carbon events (and all our existing code needed minimal 
> changes to handle fake instead of real events because the structure stayed 
> the same). We eventually gave up on that as it just invites impedance 
> mismatches about who gets what message. So in the end, we changed all our C++ 
> classes to create Cocoa NSWindowController objects and load the actual 
> windows from Cocoa (but still use our fake Carbon Events to dispatch stuff 
> under the hood).
> 
> That meant all windows converted worked as part of the responder chain. It's 
> been too long for me to remember what we actually did in what order. I think 
> we first converted the menu bar to Cocoa alone, then slowly migrated windows 
> bit by bit, starting with modal windows first. Maybe that info helps you some 
> in deciding what to do.
> 
> Cheers,
> -- Uli Kusterer
> "The Witnesses of TeachText are everywhere..."
> http://www.zathras.de
> 
> 
> ___
> 
> Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)
> 
> Please do not post admin requests or moderator comments to the list.
> Contact the moderators at cocoa-dev-admins(at)lists.apple.com
> 
> Help/Unsubscribe/Update your Subscription:
> https://lists.apple.com/mailman/options/cocoa-dev/jackbrindle%40me.com
> 
> This email sent to jackbrin...@me.com


___

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Re: Anyone recommend Dash?

2015-07-09 Thread Jack Brindle
Way back when (Xcode 3) the doc interface was pretty good. Now its really 
awful. The web interface is far better. But Dash is even better than that. Dash 
2 (and now Dash 3) gives you searchable interface for not just Xcode docs but 
others as well. Dash 3 extends this, adding archives, and as far as I am 
concerned, it a much better experience. Dash is definitely recommended.

Note though that Dash does suffer from the same issue that the Xcode docs 
suffers from, since it uses those docs. If there is an error in the docket, 
then it will show up both places. The best example is the -hash method in 
NSObject. For some unknown reason it was marked as deprecated in the 10.10 
docs. It is correct on-line, and in the 10.11 docs, but…
Weird..

Also, take a good look at the Dash content. I believe the Mac version does 
contain both sample code and tech notes, and contains support for snippets. The 
iOS version does not contain snippet storage as I recall. With Dash 3, though, 
there is a cool new feature - mate your iPad to your Mac and it becomes the 
display for your docs, giving you back precious screen real estate. Works quite 
nicely.

Definitely worth the $20 (plus additional $10 for the Dash-3 upgrade) I paid.

- Jack
 
> On Jul 9, 2015, at 12:02 AM, Roland King  wrote:
> 
> 
>> On 9 Jul 2015, at 14:52, Graham Cox  wrote:
>> 
>> 
>> Is anyone using Dash for API documentation? Can you recommend it?
>> 
>> I received a bundle offer including this today and it seems like a good 
>> deal, but wonder if it’s worth using over and above XCode’s standard docs?
>> 
>> —Graham
>> 
> 
> Love it - don’t use anything else. It’s a hotkey away - you can pick docsets 
> so I have an OSX set and an iOS set (both of which include XCode’s docs too). 
> There’s a snippet editor I’ve not really used as much as I ought to, you also 
> get updated downloads of lots of other useful manuals like perl and shell 
> etc. It was upgraded recently to Swift-compatible BUT you can turn it off and 
> just see the ObjC stuff if you like. 
> 
> Downside I guess you don’t get searchable tech notes and example code, just 
> the API docs. That’s about the only time I go back to Xcode’s doc viewer. 
> 
> I did get an update the other day which just told me a new version is on the 
> way, or just released perhaps. I think I have Dash 2, this is Dash 3 and is 
> an extra 10 bucks which I will probably end up paying eventually. How that 
> works thru the appstore I’m not entirely sure - I didn’t think you could do 
> paid upgrades through the appstore. 
> 
> Anyway you can try it out for free IIRC - give it a few days and see if you 
> like it. x
> ___
> 
> Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)
> 
> Please do not post admin requests or moderator comments to the list.
> Contact the moderators at cocoa-dev-admins(at)lists.apple.com
> 
> Help/Unsubscribe/Update your Subscription:
> https://lists.apple.com/mailman/options/cocoa-dev/jackbrindle%40me.com
> 
> This email sent to jackbrin...@me.com


___

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Re: Cheating a synchronous call on the main thread

2015-06-30 Thread Jack Brindle
Well, actually not quite true. Pthreads has that mechanism with the join 
facility. I like pthreads (er.. did before I began to grok GCD), but personally 
have no use for pthread-join, and definitely don’t recommend its use, but it 
does exactly this - waits for another thread to exit before continuing. 
Pthreads have been in OS X for a very long time…

Now let me repeat. pthread_join is evil, bad, not to be used. There are much 
better ways of doing things, even in pthreads.
And definitely not to be used in the main thread…

- Jack Brindle

> On Jun 29, 2015, at 2:41 PM, Quincey Morris 
>  wrote:
> 
> On Jun 29, 2015, at 13:50 , Gavin Eadie  wrote:
>> 
>> The main thread is not involved in the above, but the idea of an 
>> “asynchronous-that-waits” == “apparently synchronous” call is demonstrated.
> 
> Yes, but you achieved that by blocking a background thread. It works because 
> you don’t care that the thread is blocked.
> 
> Incidentally, this sort of thing will break GCD. If the background thread was 
> allocated to your block by GCD and it blocks, GCD will start another thread 
> to do the next thing in the same queue. In a situation where this can happen 
> repeatedly, you can end up with unlimited numbers of threads in flight 
> simultaneously — unlimited until the system crashes, that is.
> 
> OS X (and iOS) have *never* had a thread “yield” mechanism other than 
> returning to the main event loop. That means that your only valid reply to 
> the code’s author is, “There’s no way to do what you want.”
> 
> The only exception to this statement — one that it’s really a bad idea to 
> even present, since it reflects old-fashioned Cocoa design principles from 
> the 1980s — is the idea of running the run loop modally, which is what 
> buttons (e.g.) do when you click on them.
> 
> But the real question is, what is the downside of re-factoring the code in 
> the way Jens suggested? Has the code author tried? That’s what’s frustrating 
> — after all this discussion, there’s a good chance that re-factoring will 
> fall out problem-free with about 5 minutes of effort.
> 
> 
> 
> ___
> 
> Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)
> 
> Please do not post admin requests or moderator comments to the list.
> Contact the moderators at cocoa-dev-admins(at)lists.apple.com
> 
> Help/Unsubscribe/Update your Subscription:
> https://lists.apple.com/mailman/options/cocoa-dev/jackbrindle%40me.com
> 
> This email sent to jackbrin...@me.com


___

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Re: NSFontPanel for a modal window

2015-06-14 Thread Jack Brindle
I’’m surprised that no one else has suggested looking at the TextEdit source. 
It’s available from Apple as a sample…
That should be rather revealing.

- Jack

> On Jun 13, 2015, at 10:00 PM, Kurt Sutter  wrote:
> 
> Good point. Yes, I have some changeFont: selectors in some of my classes, but 
> I don’t think any of them should be in the responder chain in that situation. 
> Anyway, when I place stops in each of them, I see that none of them gets 
> called until I make the font panel the key, whereupon the changeFont: 
> selector of my textView is (correctly) called.
> 
> Best regards
> Kurt
> 
>> On 14 Jun 2015, at 06:55, Ken Thomases  wrote:
>> 
>> On Jun 13, 2015, at 12:08 AM, Kurt Sutter  wrote:
>> 
>>> I have a modal window (run with [NSApp runModalForWindow:]) that sports a 
>>> view that is a descendant of NSTextView. The view has key focus and text is 
>>> selected therein. I then bring up the font panel calling [NSFontPanel 
>>> sharedFontPanel]
>>> 
>>> The font panel comes up, and does not have key focus. When I now click a 
>>> new font in the font panel, nothing happens, changeFont: of my view is not 
>>> called. Only when I make the font panel the key window, operations in the 
>>> font panel send a changeFont: message to my view. This is, however, not 
>>> standard behavior (see e.g. TextEdit) where the key focus remains with the 
>>> text window and you still can click a new font in the font panel to change 
>>> the text in the text window.
>>> 
>>> I have tried setting delegate of NSFontManager and/or of the font panel, 
>>> and also the target of the font panel, all to non avail.
>>> 
>>> When I show my window in non-modal mode, things work as expected, but that 
>>> is not an option for the time being.
>> 
>> Have you implemented any method with the selector changeFont: in any of your 
>> classes which might be in the responder chain?
>> 
>> Regards,
>> Ken
>> 
> 
> 
> ___
> 
> Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)
> 
> Please do not post admin requests or moderator comments to the list.
> Contact the moderators at cocoa-dev-admins(at)lists.apple.com
> 
> Help/Unsubscribe/Update your Subscription:
> https://lists.apple.com/mailman/options/cocoa-dev/jackbrindle%40me.com
> 
> This email sent to jackbrin...@me.com


___

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Re: NSPathControl

2015-05-31 Thread Jack Brindle
Oops, not any more. clickedPathComponentCell was deprecated in Yosemite.
Instead, look at the URL property. Valid back to 10.5.



> On May 27, 2015, at 3:43 PM, Lee Ann Rucker  wrote:
> 
> 
> On May 27, 2015, at 2:55 PM, Jens Alfke  wrote:
> 
>> 
>>> On May 27, 2015, at 2:46 PM, Raglan T. Tiger  
>>> wrote:
>>> 
>>> I can setObjectValue: for the path;  now I want to know what path component 
>>> the users selects.  I am using Pop Up style.
>> 
>> It’s an NSControl. Wire up the target/action to your IBAction method, either 
>> in IB or programmatically.
>> 
> 
> And then look at clickedPathComponentCell
> 
> 
> ___
> 
> Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)
> 
> Please do not post admin requests or moderator comments to the list.
> Contact the moderators at cocoa-dev-admins(at)lists.apple.com
> 
> Help/Unsubscribe/Update your Subscription:
> https://lists.apple.com/mailman/options/cocoa-dev/jackbrindle%40me.com
> 
> This email sent to jackbrin...@me.com


___

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Re: Where is my bicycle?

2015-04-06 Thread Jack Brindle
Have you checked the Font you are using to display the character string to see 
if it contains the bicycle character? If not, you probably won’t get the 
character you seek.

- Jack

> On Apr 6, 2015, at 11:15 AM, Gerriet M. Denkmann  wrote:
> 
> 
>> On 7 Apr 2015, at 00:15, Quincey Morris 
>>  wrote:
>> 
>> On Apr 6, 2015, at 09:19 , Gerriet M. Denkmann  wrote:
>>> 
>>> Where is my bicycle gone? What am I doing wrong?
>> 
>> Before this thread heads further into outer space…
>> 
>> I suspect it [NSCharacterSet] is just broken. Look here, for example:
>> 
>>  
>> http://stackoverflow.com/questions/23000812/creating-nscharacterset-with-unicode-smp-entries-testing-membership-is-this
>> 
>> The problem is that it’s unclear whether the “characters” in NSCharacterSet 
>> are internally UTF-16 code units, UTF-32 code units, Unicode code points, or 
>> something else. According to the NSCharacterSet documentation:
>> 
>>> "An NSCharacterSet object represents a set of Unicode-compliant characters.”
>> 
>> and:
>> 
>>> "The NSCharacterSet class declares the programmatic interface for an object 
>>> that manages a set of Unicode characters (see the NSString class cluster 
>>> specification for information on Unicode).”
>> 
>> According the NSString documentation:
>> 
>>> "A string object presents itself as an array of Unicode characters (Unicode 
>>> is a registered trademark of Unicode, Inc.). You can determine how many 
>>> characters a string object contains with the length method and can retrieve 
>>> a specific character with the characterAtIndex: method.”
>> 
>> Working backwards, we know that the characters that are counted by 
>> -[NSString length]’ are UTF-16 code units, so this all *possibly* implies 
>> that NSCharacterSet characters are UTF-16 code units, too. Plus, back in 
>> NSCharacterSet documentation:
>> 
>>> "NSCharacterSet’s principal primitive method, characterIsMember:, provides 
>>> the basis for all other instance methods in its interface.”
>> 
>> If that’s true, ‘longCharacterIsMember:’ is pretty much screwed.
>> 
>> Perhaps the NSCharacterSet documentation is just wrong. Or perhaps, when the 
>> API was enhanced in 10.2 (see: 
>> http://www.cocoabuilder.com/archive/cocoa/73297-working-with-32-bit-unicode-nsstring-stringwithutf32string-const-utf32char-bytes-needed.html,
>>  for some tantalizing hints about NSCharacterSet), the implementation was a 
>> hack that works somehow but isn’t documented. I don’t think you’re going to 
>> get any definitive answer except directly from Apple.
>> 
>> A suggestion, though:
>> 
>> Try building your character set using ‘characterSetWithRange:’ and/or the 
>> NSMutableCharacterSet methods that add ranges, instead of using NSStrings. 
>> Maybe NSCharacterSet really is UTF-32-based, but not — for code 
>> compatibility reasons — when using NSStrings explicitly.
> 
> 1. longCharacterIsMember seems to be ok:
>   NSCharacterSet *alphanumericCharacterSet = [ NSCharacterSet 
> alphanumericCharacterSet ];
>   BOOL pp = [ alphanumericCharacterSet longCharacterIsMember: 
> 0x2f800 ];
> returns YES as it should.
> 
> 2. characterSetWithCharactersInString seems to take only the lower 16 bits of 
> the code points in the string. Bug.
> Works ok though, if all chars in the string have code points ≥ 0x1 (e.g. 
> "𝄞🚲")
> 
> 3. the documentation about bitmapRepresentation  is wrong. It says: "A raw 
> bitmap representation of a character set is a byte array of 2^16 bits (that 
> is, 8192 bytes)."
> But alphanumericCharacterSet has a bitmap with 32771 = 0x8003 bytes, which 
> mostly look ok.
> It has some strange things though at the end: 
> 0x2fa1e → 0x2fa2d 
> 0x30011 → 0x30207 
> which I do not recognise as alphanumeric.
> 
> 4. characterSetWithRange works a bit better:
>   NSCharacterSet *a = [ NSCharacterSet characterSetWithRange: 
> NSMakeRange(0x1F6B2,1) ];
>   BOOL pp = [ a longCharacterIsMember: 0x1F6B2 ]; → returns YES as it 
> should.
> 
> But when I look at the bitmapRepresentation I see 16385 bytes with two bits 
> set: 0x1 and 0x1f6ba (8 bits off)
> 
> Looks like the format of the bitmapRepresentation is slightly more complex 
> than documented.
> 
> 
> Kind regards,
> 
> Gerriet.
> 
> 
> ___
> 
> Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)
> 
> Please do not post admin requests or moderator comments to the list.
> Contact the moderators at cocoa-dev-admins(at)lists.apple.com
> 
> Help/Unsubscribe/Update your Subscription:
> https://lists.apple.com/mailman/options/cocoa-dev/jackbrindle%40me.com
> 
> This email sent to jackbrin...@me.com


___

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/cocoa-dev/archive%

Re: get class of a method

2015-02-22 Thread Jack Brindle
Doesn’t [self class] do this? The method is within whatever self is, so it 
seems appropriate that [self class]
would provide what you want.

- Jack

> On Feb 22, 2015, at 4:41 AM, BareFeetWare  
> wrote:
> 
> Hi all,
> 
> How can I get the class of a method, at runtime?
> 
> I can get the name of the class methods via:
> 
>Method *methods = 
> class_copyMethodList(objc_getMetaClass([NSStringFromClass([self class]) 
> UTF8String]), &methodCount);
>for (int i = 0; i < methodCount; i++) {
>Method method = methods[i];
>NSString *methodName = NSStringFromSelector(method_getName(method));
> 
> 
> And I can get the "returnType" via:
> 
>char *returnType = method_copyReturnType(method);
>NSLog(@"The return type is %s", returnType);
> 
> 
> However, the returnType is just a char that is set to "@" for all classes. I 
> want to know which class is returned.
> 
> References:
> 
> Apple's documentation on the Objective C runtime library:
> https://developer.apple.com/library/mac/documentation/Cocoa/Reference/ObjCRuntimeRef/index.html
> 
> This article points to some private methods in NSObject that will return the 
> full syntax of the method header, but is as clueless as I am as to how they 
> get the class:
> http://bou.io/ExtendedTypeInfoInObjC.html
> 
> Any introspective answers out there?
> 
> Thanks,
> Tom
> 
> Tom Brodhurst-Hill
> BareFeetWare 👣
> 
> --
> iPhone/iPad/iPod and Mac software development, specialising in databases
> develo...@barefeetware.com
> --
> Follow us on Twitter: http://twitter.com/barefeetware/
> Like us on Facebook: http://www.facebook.com/BareFeetWare
> 
> ___
> 
> Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)
> 
> Please do not post admin requests or moderator comments to the list.
> Contact the moderators at cocoa-dev-admins(at)lists.apple.com
> 
> Help/Unsubscribe/Update your Subscription:
> https://lists.apple.com/mailman/options/cocoa-dev/jackbrindle%40me.com
> 
> This email sent to jackbrin...@me.com


___

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Re: Application Crashing Under Mavericks, but not Yosemite (Entitlements Issue?)

2014-12-31 Thread Jack Brindle
You might want to extend that. The header file indicates that containsString: 
_only_ is available in OS X starting with 10.10 and iOS starting with 8.0. I 
would expect this to crash, or at least behave very poorly, under any prior OS 
since the call simply doesn’t exist there.

Interesting that the only place it appears to be documented by Apple is in the 
header file. It is widely “documented” at various web sites, but using any call 
based on that is definitely rolling the dice. The central rule is that if you 
are releasing code for others to run, be sure to use calls that Apple documents 
to be available for the earliest targeted OS.

I’d replace it with a more suitable call, which appears to be 
rangeOfString:options: The header file indicates it should be called with no 
options. in fact you probably should read the NSString header file info for 
that call. It is somewhat interesting.

- Jack Brindle

> On Dec 29, 2014, at 5:06 PM, Roland King  wrote:
> 
> 
>> 
>> I'm currently trying to set up developer tools on my new, fresh Mavericks 
>> installation, but there is only one place where containsString: is being 
>> called, at least by my code, and its here:
>> 
>> - (void)detectDistributionFamily {
>>  SBLinuxDistribution family = [SBUSBDevice 
>> distributionTypeForISOName:self.fileURL.absoluteString];
>>  switch (family) {
>>  case SBDistributionUbuntu:
>>  [self.distributionSelectorPopup 
>> selectItemWithTitle:@"Ubuntu"];
>>  break;
>>  case SBDistributionDebian:
>>  case SBDistributionTails:
>>  [self.distributionSelectorPopup 
>> selectItemWithTitle:@"Debian"];
>>  break;
>>  case SBDistributionUnknown:
>>  default:
>>  [self.distributionSelectorPopup 
>> selectItemWithTitle:@"Other"];
>>  break;
>>  }
>> 
>>  if ([[[self.fileURL path] lastPathComponent] containsString:@"+mac"]) {
>>  [self.isMacVersionCheckBox setState:NSOnState];
>>  } else {
>>  [self.isMacVersionCheckBox setState:NSOffState];
>>  }
>> }
>> 
>> There's nothing special about this code; I see no reason why it shouldn't 
>> work, but then again, this *is* programming. I'll take a look and 
>> investigate some more.
> 
> Where does containsString: come from by the way? The (n)ever-useful 
> documentation on my box doesn’t have it, the header file for NSString tells 
> me it does exist in 10.10 or iOS8. Apart from despairing again that 
> documentation doesn’t appear to be driven from the header files, is it 
> possible you have a category somewhere which is now interfering in a nasty 
> way with a new selector? 
> ___
> 
> Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)
> 
> Please do not post admin requests or moderator comments to the list.
> Contact the moderators at cocoa-dev-admins(at)lists.apple.com
> 
> Help/Unsubscribe/Update your Subscription:
> https://lists.apple.com/mailman/options/cocoa-dev/jackbrindle%40me.com
> 
> This email sent to jackbrin...@me.com


___

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com