Handshake is quick. Takes 0.000567 seconds on my Mac
Changed priorities and removed text related to getting NC in the AppStore
Added 2 important events to the change log
Perhaps obtain details about movies from IMDB
#5 This is a temporary solution. The [[NSSocketPortNameServer sharedInstance] portForName:name host:@"*"] takes 5 seconds to lookup the port name.
This is done twice for every child process. Starting a child process takes 10 seconds! This used to take less than 0.1 second.
10 seconds is much longer than 3 seconds, so I have increased the timeout for handshake to 23 seconds.

It’s incredibly painful when opening a new tab takes 10 seconds!
Experiments using posix_spawn instead of NSTask, so that I can open 4 didicated pipes for IPC (besides stdin, stdout, stderr).

Currently I’m using sockets for IPC and have relied on Bonjour for resolving the port.
However this setup is horrible slow on Mavericks. It used to work flawless and fast on older OSX versions.

Instead of doing IPC via sockets, I will try out unix pipes for IPC.
#3 Eliminated warning about garbage collection being deprecated. I found a fork of PSMTabBarControl that has been migrated to ARC. I also removed code signing from it and validated the project.
#3 Made a PSMTabBarControl cocoapod, so that the project structure becomes simpler.
Removed old Pods folder that I had checked in by accident
GIT integration would be nice
Made a replacement for the NCDirEnumerator which internally uses getdirentries(). The new code uses fts_read().
Eliminated dependency on NCDirEnumerator
Got rid of NSDirEnumerator which used getdirentries() that has long been deprecated by Apple. Sadly getdirentries() was the only way to obtain details about ghosted files.
Now we use FTS instead. FTS cannot provide info about ghosted files.
Removed dead code
Introduced Cocoapods: Over the last week I have been working on splitting Newton Commander up into smaller cocoapods. I can now almost build Newton Commander so it behaves as it did before switching to cocoa pods.
Preparing to switch browse-worker to another user.

# Problem
It is really annoying that I have to do a clean build whenever I want to build & run the NewtonCommander app.

# Long explanation why this is a problem
Currently I SETUID the browse-worker from the NewtonCommander app.
With Cocoapods I can no longer do that.

Cocoapods has deprecated pre_install and post_install, so I cannot compile the browse-worker in this step.
Instead I have to place a compiled version of the browse-worker in a NewtonCommanderBrowse.bundle
When I compile the entire NewtonCommander app, then this NewtonCommanderBrowse.bundle is copied into the Resources folder.
When running the NewtonCommander app then I change permissions of the browse-worker within the NewtonCommanderBrowse.bundle.
All this works from a clean build.

However if I have not cleaned then the NewtonCommanderBrowse.bundle cannot be overwritten because of its altered permissions.

# Solution
Instead have a command line util that can start the NewtonCommanderBrowse.bundle/browse-worker with the right permissions.
spawn-browse is a .c program. No need to link with Foundation.framework
Inserted newlines, so that error messages reads better in the console
Renamed from “spawn-browse” to “newton-commander-spawner”
I’m now copying the browse-worker from the NewtonCommanderBrowse.bundle into the MacOS folder.