Classic case of knows-too-much
This is a classic case of knowing too much and trying to solve the problem yourself.
Scott Stewart took an Apple laptop in to the “Genius bar” (Yeah, I’m using quotes around it. I haven’t been impressed with the geniuses at the genius bar myself) because it would run hot on the left hand side of the keyboard after it had been on for a while. He made a bunch of assumptions about the hardware based on his previous knowledge and had a pre-defined plan for what the tech support person should do. Then he got upset when the tech support person didn’t follow his script.
He called me a few weeks into college to tell me that his laptop was getting very hot under where his left palm would rest when typing. I immediately assumed a battery problem. After a few seconds of research, I found that recently there had been a few recalls on Apple laptop batteries. So, we had him pull out the battery and check it against this list of recalls. Having him do this, we realized that his battery was located under the area where his right palm rested, not his left. Not good. This probably meant his hard-drive was below the problem area.
It turns out that the hard drive ISN’T located under the battery on any Powerbook or iBook model I could find. It is localed near the battery though. I can’t remember all of the times that I’ve had someone with some technical expertise try to apply that knowledge to something they don’t know anything about. Back when I did tech support for users, I’d always have someone telling me “I think it’s my blah that’s bad” when the problem was completely unrelated. In Scott’s case, his panic was compounded by Google. He found the recall of some iBook batteries from a few months ago and started to wonder if the batter would blow up because it was too hot and his son would loose all his data.
FYI, my iBook runs a little hot under my left palm after I’ve used it for a little while IF I’m using it with the AC adapter plugged in. I haven’t noticed any problems in over a year. As far as I know, it’s a known problem with Power PC based Apple laptops (and probably one of the reasons they are switching to Intel chips).
That being said, if something goes wrong with my Apple. Chances are I’m heading to the local user group first before I wait around 45 minutes at the “genius bar”. I’ve probably forgotten more about computers than the “genius” helping me knows. Damn whippersnappers.
PC versus Mac lines of code
I found one interesting stat in the Phanfare blog.
The Mac version is not entirely finished yet, and is missing key features that the PC version already has. Roughly eliminating the PC code that has no Mac counterpart yet and any open source, the Mac client is 44,973 lines and the PC version is 55,736 lines.
Depending on how they did the counting, I thought it was interesting that they wrote about 11,000 fewer lines of code to port their application to Cocoa and Objective-C.
XCode and Visual Studio go head to head
Brian Goldfarb's Blog : XCode and Visual Studio go head to head: ""
I've been using Visual Studio since version 4.0 (32-bit, not 16-bit thankyouverymuch
) and I've just recently started working with XCode 2.1. So I can chime in a bit.
Up until Visual Studio 2005, I'd have to say that Interface Builder, for all of the problems that these guys are reporting with it, wins hands-down over Visual Studio for helping me design a nice UI. It was interesting to NOT have to fight the designer while laying out controls. IB provided me with rules and snap-tos that complied with the Apple UI guidelines while Visual Studio made me try to line things up using by eyeball or using the clumsy "Format" menu.
This is how they describe adding a button to your app in Visual Studio.
1. Drag a button onto the window
2. Double click the button
3. Write code
Here's how it usually goes for me.
1. Drag a button onto the window
2. Double click the button
3. Write code
4. Remember that the buttons name is set to "buttonx" where x is the number of the last button with the name "buttonx".
5. Go find and replace all instances of "buttonx" with the new name in my code.
That being said, the experience they describe when using XCode is very similar to my own. Except that I had professional Cocoa/Mac developers teach me how to use XCode. Their advice was to set up all of your classes first, IBOutlets, methods, etc... Then go into Interface Builder, create your UI, and connect the buttons.
XCode itself provides intellisense...kind of. no where near what Visual Studio has for a while. But intellisense tends to annoy me. It always seems to be covering up code I want to see.
You can't even compare the debuggers. Visual Studio wins hands-down. Has there ever been a better debugger? I haven't used one yet.
My personal favorte anecdote is just how easy it is for them to do Web Serivces from Objective C -- all it took was re-writing the compiler for an open source solution called gSoap -- you know, simple stuff
![]()
Yeah, you'd have to talk to Joe Heck about consuming SOAP services in Objective-C, I think he's done some of that. But calling and consuming an XML-RPC service in Cocoa isn't as hard as the blog makes it out to be. And consuming wild SOAP services in .NET isn't as easy and it's made out to be. Mainly due to the strict definition of SOAP that Microsoft enforces and the variations of SOAP envelopes that you'll encounter in the wild.
Here's some example code straight from Brent Simmons example. (I can't find a link to the code, I'll try emailing Brent and asking him where he put it. update: Found it here. He also has some excellent examples of parsing OPML and RSS feeds in Objective-C and Cocoa/CF)
-
WSMethodInvocationRef rpcCall;
-
NSURL *rpcURL = [NSURL URLWithString: @"http://betty.userland.com/RPC2"];
-
NSString *methodName = @"examples.getStateName";
-
NSDictionary *params = [NSDictionary dictionaryWithObject: stateNum forKey: @"foo"];
-
NSDictionary *result;
(Also via Brent's Newsgator weblog, an XML-RPC client debugger for OS X.)
As I see it now, you have to roll your own classes when calling XML-RPC from within .NET. So the two frameworks are about equal. It's my understanding that this will change once Indigo hits the streets.
Here's the bottom line for me.
XCode price: free with free upgrades. So my cost of experimenting and exploring is nothing. I've stated before, the cost is the only reason I'm playing with Cocoa at all. How much did the Phanfare developers have to invest in creating their Mac client? Just their time. They didn't have to buy an expensive development environment.
update: I found some Apple sample code for consuming a SOAP web service using Cocoa
The implementation is pretty hair, but logical. Here is the entire header file. (at least the code part)
-
#import <Foundation/Foundation.h>
-
#import "MyURLConnection.h"
-
-
// A simple abstraction of some of the work that a SOAP
-
// client would have to do.
-
@interface SOAPClient : NSObject {
-
NSURL *url;
-
}
-
-
- (id)initWithServerName:(NSString *)name;
-
-
- (NSXMLDocument *)sendMessage:(NSXMLDocument *)xml waitForReply:(BOOL)b;
-
-
@end
-
-
-
and here is the implementation of the sendMessage method.
-
-
- (NSXMLDocument *)sendMessage:(NSXMLDocument *)xml waitForReply:(BOOL)b {
-
NSData *data = [xml XMLData];
-
-
NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] initWithURL:url cachePolicy:NSURLRequestReloadIgnoringCacheData timeoutInterval:60.0] autorelease];
-
[request setHTTPMethod:@"POST"];
-
[request setHTTPBody:data];
-
[request setValue:[NSString stringWithFormat:@"%d", [data length]] forHTTPHeaderField:@"Content-Length"];
-
MyURLConnection *conn = [[[MyURLConnection alloc] initWithRequest:request delegate:self] autorelease];
-
-
xml = nil;
-
if (b) {
-
while (![conn isFinished]) {
-
[[NSRunLoop currentRunLoop] runMode:NSDefaultRunLoopMode beforeDate:[NSDate distantFuture]];
-
}
-
NSError *error = nil;
-
xml = [[[NSXMLDocument alloc] initWithData:[conn data] options:NSXMLNodeOptionsNone error:&error] autorelease];
-
}
-
-
return xml;
-
}
Still pretty hairy, but not overly complicated. I mean, Objective-C isn't BASIC. It's C. It has to be a little complicated.
Windows vs OS X for wireless networking
I brought my "take-home" Dell laptop in to work because we are hosting some meetings this week and I needed a Wintel box to run some demos. This laptop came pre-configured by our IT dept. to connect to our campus wide wireless network. I can't get it to connect to my home wireless network UNLESS I turn off ALL security. Right now I'm only performing MAC address authentication at home and the Dell laptop can't even handle that. I'm at work now and I can't connect to our network even if I plug into the hard-wired network.
I knew I should have brought my iBook in today and just used RDC to connect to my workstation. I've never had any problem connecting to any wireless network using my iBook. No matter what kind of security was in place.
Update: I removed the MAC Authentication from my WAP at home and set up WPA. Now both my Dell and my iBook are able to connect to the WAP with no problems. I have no idea why MAC authentication screwed with the Dell so much.
Office 12 looks like iTunes
Check out the screenshot of the "ribbon" in Office 12.
Those of you that like the "flip feature" in Vista, may want to check out Expose in OS X or one of the many Windows clones.
But I'm not going to point out each and every item that Vista copied from OS X. The marketing folks at MS are expecting people to make those comparisons. They've pre-trained their minions to ignore those comparisons. I'm just excited that Windows is FINALLY getting a lot of the features that I love about OS X in the actual OS instead of as third-party tools.
update: Here's a screenshot that shows the similarities between the new look of Office 12 and iTunes new look.
Brent Simmons (of NetNewsWire) had some great comments when the new look of iTunes made it's debut. My favorite was the comparison to NeXT. He also notes some trends that he's seen in the latest OS X apps. From the looks of Office 12, maybe those design trends aren't specific to OS X? Notice the margins bounding the Word window? According to John Gruber, this new look is so bad-ass that it doesn't even have a name. The only thing that O12 is missing is the combined title-toobar. Well, that and getting rid of the Aqua buttons. But I kind of like them.
iTunes 5 and iTunes phone
Boy it's a big day if you're an iTunes fan. Steve Jobs announced both the iTunes phone from Motorola and iTunes 5. They also announced a Harry Potter iPod, which ships with the Harry Potter books in audio book format. I'm still not completely on the iPod bandwagon, at least not a full fledged iPod. I love my shuffle and that's pretty much all I need in a music player. If they ever release a "Jazz essentials" iPod, crammed full of Jazz albums I might break down.
I heard the announcements and thought, "I wonder when they'll be available?". Too many years of Microsoft announcements have dulled my thinking I guess. Apple doesn't talk much until something is shipping. Microsoft just seems to talk a lot.
edit:Almost forgot about the iPod nano, their flash based iPod that everyone was expecting.



