On Wed, Feb 25, 2009 at 1:16 PM, Kyle Sluder <kyle.slu...@gmail.com> wrote:
> How so? Resource loading? I guess it was less of an issue back in > the NeXT days. But I've got ten machines in my lab, and an Xserve > serving out /Network/Library... why can't I use /Network/Applications > and have it Just Work(TM)? Well, see my last response for the general overview of my reasoning. For specifics, though, consider that your setup is not the only network topology. Imagine a complicated app with many resources (its UI divided up into many nibs like Mail.app, and different sounds and plug-ins, etc.). To mitigate this problem so that it "just works" (as long as you can initially launch the application successfully), the application would have to load *everything*, which obviates most of the benefit of separating things into separate nibs, loading them only when needed. Obviously, this is even less desirable on a larger app that's being loaded over the network (loading everything takes longer). > I'm not all that worried about network interruptions. Must be nice. ;-) Even in the simplest topologies, they happen, so you *should* be ... Imagine a more complicated network topology. Many business and other institutions are larger and more complicated. The application server might be centrally managed by corporate headquarters, which may or may not be where you are. "We pay top dollar for the fastest point-to-point connections, so it'll load plenty fast," they say. What they don't think of are interruptions and they certainly don't tend to test even business-critical applications for robustness in this scenario ... how many man-hours are lost if the app fails ungracefully and whacks important data? More than that, though, are sprawling LANS with old equipment or power problems. Wireless networks which are prone to interference. Network interruptions *happen*, so while one network might be reliable, it's been my experience in the many business and institutes I've worked for that most aren't 100%. There's no planning for the many kinds of network environments on which your apps may be run, but you can at least plan for plenty of those environments being unreliable. In this case, your only choice is to load every resource the app needs at launch, or over-engineer the hell out of the app so that it intelligently handles every possibility that can arise from a resource not being available at runtime (and deciding whether it's safe to save data in that state, etc). Personally, my previous employers were an engineering firm who ran *everything* from the server. Apps, home folders, the works. A screwed up server installation (which the admin team refused to accept and handle for weeks) ended up corrupting drawings, losing business documents, and more until tens of thousands of dollars of man-hours were wasted and deadlines were missed. With sufficient screaming from management, the problem was fixed, but it highlighted the dangerous nature of the problem. Lessons learned: - Use portable home folders, rather than server-hosted home folders. - Install apps locally since many of them freaked the hell out when they couldn't load resources all the sudden, disallowing even a local save to their machine. - When your server(s) are everything, don't let them get so bad they bring down the whole f*****g company! - Even software developers can point out specific OS issues for the admin team ... ;-) Put simply, yes, there are other problems caused by intermittent network outages, but like those other problems, there're no simple solutions. You always sacrifice convenience for safety or the other way around. In this case, you can load all your resources or over-engineer the app to handle every 'missing resource' situation perfectly. -- I.S. _______________________________________________ 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: http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com