77 posts • joined 20 Nov 2006
Re: Why Ballmer?
Horrific thought, but possibly some truth in it. What's even scarier (I didn't realise this) is that Gates is apparently responsible for picking Ballmer's successor. So what do we get - Bill's second best friend? If I worked for Microsoft, I'd be putting a lot of spit and polish into that CV. Yes, sir....
Agree that Steve was a total dodo from the word go. What I don't understand is why Bill put Ballmer in charge in the first place? Maybe it amused him to have someone called "Steve" head-to-head against the late Mr. Jobs? Maybe he knew Ballmer was clueless (heck, it didn't require much insight) and would make Bill's period of tenure look even better. I guess Ballmer is to Microsoft as Sculley was to Apple.
Well, so long Monkey-man. Don't hurry back...
Not sure we can refer to graphene as superconducting - this seems a bit premature and/or inaccurate. If it can be made to superconduct, then (a) it will need doping with some impurities and (b) it isn't going to be available as a room temperature superconductor (from Argos or otherwise!) any time soon.
No big surprises here then….
At the end of the day, the iPad is a general purpose hand-held Mac with tens of thousands of available apps. The Kindle is a book reader. Period. So is it any wonder that iPads get a higher satisfaction rating?
Yes, the Kindle Fire sports a colour screen, but you can't buy it from Amazon here in the UK which doesn't make for a high customer satisfaction coefficient. Oh, and did I mention that I flogged my black and white Kindle on eBay as soon as I realised that I could just install the Kindle app for iOS? That way, I got to keep my Kindle books and all my PDF files are now in glorious technicolour. Very satisfying.
And In the run up to Xmas 2010, I got £40 more than I paid for it because everybody wanted one and Amazon had run out. Lol. Now THAT did give me enormous customer satisfaction…. :-))
Can you say: "daisy-chain" ?
I also wanted to see the business end. Couldn't really believe that Elgato would be dumb enough to stick just one connector on the thing. But if you follow the link to the Elgato web site, that's exactly what you find. Duhhh…..
Iomega - never again
Completely agree with other comments r.e. Iomega. I got badly burnt by these guys when Snow Leopard became available. They never released compatible drivers for Snow Leopard, and they were *INCREDIBLY* slow at bringing out drivers for Leopard. Which never allowed you to format the drive cartridge as HFS, by the way. In order to do THAT, you needed to boot up under Tiger, believe it or not!
Executive Summary: Iomega - AVOID.
RE: what strikes me more ...
Your experiences with "twatwat" mirror my own. Only positive thing I can say about them is that it took 'em a whole year before they realised they weren't charging me money!! So I got a year's broadband free, and with frequent dropped-connections, speed never greater than 0.5MBytes/sec, I probably got what I paid for. Eventually managed to escape their evil clutches, and now have a rock-solid, 8MB/sec connection with Sky. Twatwat is assuredly the most incompetent ISP I've ever dealt with.
Since writing the article, a correspondent has drawn my attention to another image editor, specifically for creating icons. It's called IcoFX and you can find it here:
Plus points: It's tiny (written in Delphi, natch) and surprisingly powerful for it's size. Oh, and it's free (donation-ware). Negative points: it doesn't come with a ton of royalty-free images like IconWorkshop does.... and it's another Windows app.
Yeah, I know, spoken like a true fanboy, blah-blah...... ;-)
RE: Seems costly
Bassey said: "It looks excellent but it seems horribly expensive when packages like Glyph Combine (http://www.icons3d.com/combine.html) will allow you to do the exact same thing for free"
I agree that IconWorkshop is more expensive than I'd prefer, but not horribly so! ;-) Maybe I'm just a cheapskate - hence my personal choice to "roll my own" rather than going with a pro icon designer.
I suppose it depends on other factors too. E.g. if I've just spent a few winter evenings knocking up some little preference pane (sorry - Mac speak!) and I don't expect to make much money from it, then I might roll my own icon and post it on a website as "donation-ware". But if I've laboured over something wonderful for six months or more, and I expect it to keep the prawns on the table for a while, then it's more likely to warrant the attentions of a pro designer. That makes sense, at least to me.... ;-)
I've just looked at Glyph Combine (thanks for the heads-up) and it looks ok, but very crude. It's only for combining images whereas IconWorkshop will let you create stuff from scratch -- if you're able to do so.
Math Campbell 1 said: " the type of mind that excels at programming rarely excels at artwork"
You're absolutely right -- hence the need (in my opinion) for tools like Axialis. I consider myself an absolute duffer on the artistic side, but I was surprised how easy it was to make some really nice looking icons with this app. Despite another reader's comments, they definitely didn't look like cobbled-together monstrosities! At the end of the day, I suspect that even a pro icon designer would build up their own library of PSD masks, etc, that he/she can draw upon as needed. In effect, this is what IconDesigner is giving you.
That said, it works for me, but I can certainly appreciate that the results achieved by a pro icon designer can't be matched by the Axialis compositing approach. Happy to further your shameless self-promotion (<grin>) by providing your web address: http://www.graphicsforge.co.uk/. And your icons look great, BTW. ;-)
RE: And why are we designing our own icons?
Gene Cash said: "Except for a desktop icon for your own program, you should be using the native OS and/or toolkit icons for a standard look & feel."
What an odd coincidence! It just so happens that this article is all about designing your own desktop icons for your own apps. Odd, that..... ;-)
RE: Paid for by Axialis?
SpamBot said: "XCode has icon composer (free) and OSX native. If you are developing apps for the iphone or OSX you will have XCode... you will have icon composer. I'll admit that Its not really for doing the icon design but you can cut and paste from your fave painting program!"
Your second sentence demolishes your first. You kick off by saying that XCode has a free icon composer, then you admit that it's no good for composing icons. ;-)) I've used a variety of dev tools including Visual Studio on Windows. All the built-in icon/bitmap editors these tools provide are just that -- bitmap editors. They present you with an array of empty pixels for you to fill in!!! Did you actually read what I said in the article? Some of us need a little more help than that.
And by the way, Axialis have not paid me a penny. On the contrary, I paid them by buying myself a copy of IconDesigner. Yes, I'd love to see something like this native on the Mac, but thus far, I haven't seen anything that comes close.
Onions or snails?
Why is this only happening in France? What exactly are the frenchies doing to their iPhones? I think we should be told....
RE: face palm
Sorry Tom. Just got my brain in gear and realised you're probably talking about the header file with all the undocumented stuff inside it. Yeah, it would be nice to have someone be the owner of it, and apply some version control, but at the moment everyone -- me included -- seems to have their own version.
RE: face palm
Non sequitur, Tom. Nobody is editing or changing anything. If you don't understand the purpose of the article, then why comment?
Yeah, yeah, I know. Large hairy warts will grow all over my body, my gonads will drop off, etc, etc. Please see the standard disclaimer earlier in the series. Pretty please, Mr. Cheese! ;-)
1.8 metre high cabinets? What are BT using these days - valves? I suppose the homeless could cluster round the cabinets on a cold winter's night to keep warm..... ;-)
RE: So why do Apple get away with...
"Imagine the uproar if it turned out there were undocumented calls in a Microsoft application these days. The EU and DoJ would probably hold a street party with the "fines" raised (and Apple and Google would provide the lemonade) yet Apple - with arguably a monopoly on the MP3 player market these days is free from critisicm because they're cool?!"
Yeah, I've often wondered this myself. Years ago, Andrew Schulman wrote a book called "Undocumented Windows" in which he discovered numerous secret API's which Microsoft freely used in their apps. Microsoft hotly denied the allegations, and muttered about a "chinese wall" between their OS and Office divisions, but the code was there for all to see. The alleged chinese wall was about as effective as the Maginot Line. ;-)
I think part of the reason for the difference in culture between Microsoft and Apple is because -- as you say -- Apple stuff is cool. Apple developers seem to be a lot more loyal to Apple than Microsoft developers ever were to Microsoft. When Apple took away my on-loan Developer Transition Kit (an early Intel-based Mac) and unexpectedly replaced it with a mine-for-ever Intel iMac, I started to understand why. :-)
RE: Tudor anthems?
Hey - I like Tudor anthems. Very relaxing when you're working. ;-)
You said, "Sorry, I can't really see this article being of interest to anyone other than programmers!...."
Absolutely right! Folks need to realize that www.theregister.co.uk is shared with www.regdeveloper.co.uk and casual Register readers can also see the technical articles. Point your web browser at www.regdeveloper.co.uk, and you'll see this article in the developer section. Suddenly, it all begins to make sense..... ;-)
Yeah - Thanks to Daniel and James for the encouraging comments. As for the earlier posters, they can get back to doing what everyone does whose IQ is less than their shoe size: watching the new series of "Big Brother".....
RE: Getting localized strings doesn't require private API
Thanks for that, Brian - interesting. Given the example code you provide, it's easy to see why the Apple developers came up with a more succinct way of doing things. ;-)
Incidentally, _NXKitString is just a wrapper around [NSBundle localizedStringForKey:value:table:], using another undocumented routine to retrieve the bundle instance for AppKit.
RE: *cough* Excuse me?
Ken Hagan said:
"As for the legality, reverse engineering was (perhaps still is) specifically permitted under EU law for the purposes of producing a product that works with another (rather than competing with it). The DMCA is not the only law in town, and most other laws are considerably less brain-dead."
Absolutely. The main reason I ever reverse engineer Apple stuff is for the purposes of interoperability. And as other have pointed out, the DCMA doesn't apply in dear old Blighty....
Web site wobbles.....
I should just mention that some of the printable characters used in this article didn't quite come out right on the website. So, whenever you see a reference to "_F5", this should really be cloverleaf - F5 where the cloverleaf is the familiar Cmd key symbol. I'm sure ya' know what I mean! ;-)
Yeah - the video is nearly 2 and a half years old, and the phone itself looks like it's made out of Lego bricks.....
RE: No wonder we 200 GB disks
Hi John. I agree that it's a bit surprising all that stuff is still in there. But a lot of the really old icons are pretty poor quality by today's standards, and hence small. Taking 'em out wouldn't buy all that much disk space. A drop in the ocean compared to -- for example -- all the built in foreign language support.
Aperture Font Sizes....
Thanks for the comments guys. I take the point about the drab colour scheme being useful for colour matching, etc. All the same, my retinas suffer from 'rod fatigue' after staring at Aperture for too long.... ;-)
As regards altering the default font size in the pro apps, I've just been browsing the relevant code in the ProKit framework. I had hoped there would be some hidden defaults setting which would do the job, but the relevant point size is apparently "hard-wired" into the ProKit binary. I'm loathe to patch the binary, but keep upping the ante in the Pledge Fund, and I might go for it..... ;-))
> The Mac OS X restrictions help reduce bad design. It's pretty
> rare that you find a freeware or shareware OS X application
> that looks like shit.
True enough. I remember when VB first came out for the PC, and everyone freaked because of the psychedelic user interfaces that could be put together with a few mouse-clicks.
Personally, in a commercial app, I'd hardly ever see the justification in using these specific techniques, unless I was intentionally setting out to create an alternative look like -- as you say -- the PowerGoo stuff. Next month, I promise to be much better behaved.... but still undocumented.... ;-)
RE: Everyone seems to be missing the point
Mafro said: "As an aside, I have entered the developer program (and half written an app) but am waiting for Jobs' approval."
That makes two of us! ;-)
"I'd like to see someone hack the code signing - then jail broken is definitely the future."
Agree again. If the hacker community can by-pass the code signing stuff (and -- like I said -- I think they already have) then there's really very little advantage to sticking with the official SDK, unless you're happy to confine yourself to writing kosher, Apple-approved apps.
RE: Missing the point
"Apple choose who they are prepared to join this programme. 80% of application are rejected."
With respect, I think you're missing the point. I'm not quibbling about the $99/$299 "admission fee". Like I said, that's not a key issue.
Remember that the 2.0 firmware and new 3G phone haven't officially been released yet. Once the 11th July deadline is passed, *THEN* we'll be in a better position to judge whether or not Apple plan to approve the outstanding developer applications. For now, I'm giving Apple the benefit of the doubt, but only for now...
But, but, but.....you've got to agree that *some* windows don't ever need to be resizable. Personally, I think it's a good thing that the underlying system offers this flexibility: look at the various preferences pages in (e.g.) Apple's Mail application: some are resizable, some ain't.
Remember: we're not talking specifically about an app's main window.
RE: 1600 songs?
> Uh, 1,600 songs isn't very many at all, really.
Yeah, I knew I'd get some stick for saying that! I know my iTunes collection is pathetically small compared to that of some folks!! :-)
RE: Hindsight is a wonderful thing...
Thanks, Eliakim for your insightful, tightly-argued, and perceptive debating skills. Or not.... ;-)
Hi zato. I would never disagree that you should use the documented API's wherever possible, but in this case Apple are clearly using the "don't touch undocumented API" strategy to limit what third-party developers are allowed to do in relation to Apple's own apps. That's the key point.
Check out Jonathan Zdziarski's blog at http://www.zdziarski.com/ where you'll see he's built a Nintendo simulator for the iPhone. Point here is that Jonathan is using a lot of private/undocumented API calls, and none of this stuff is changing from one iteration of the SDK to the next. Why not? Because this is the real API that Apple use internally. The official, documented API is just a tightly restricted subset of this. To me, that can't be right. Background/foreground app issues aside, Apple are simply not providing a level playing field for third-party developers.
RE: free press
Can't argue with that! ;-)
Re: fail gracefully
Hi AC. I wouldn't disagree with that. As should be obvious, if you're gonna use undocumented features, then you should do your best to get your app to fail gracefully if Apple change the goalposts.
E.g. use "respondsToSelector:" to check for the presence of undocumented methods, NSClassFromString to check for the presence of undocumented classes, etc.
I didn't put this into my article because (a) I have a very tight word count of 800 words and (b) it should be obvious that this column isn't for noobs. Maybe I should devote a column specificially to bullet-proofing....
RE: Listening to Mr. Randolph
Hi Jeff. Thanks for the comments. As I'm sure you're aware, I had a protracted email chat with John. I got the standard argument that the class isn't ready for prime time. This, despite the fact that Apple's production applications (Mail/Safari) have been using it for years!!!
I can't quite figure out why a class is ready for prime time if an Apple application is using it, but it's not ready for prime time if anybody else wants to use it? Weird, don't you think? ;-)
RE: Bloody Stupid
Hi John. As I've already pointed out to you via email, my article discusses the preference windows that an application displays when you choose "Preferences..." from that application's menu.
The XCode template you're referring to is used to create a preference pane (file extension ".prefPane") that's dynamically loaded and displayed by the System Preferences application.
They are two completely different things.
You have misunderstood what I was writing about.
RE: 2 Bonehead moves in 1!
Hi Jeff. You have also misunderstood the article. Perhaps you've been talking to Mr. Randolph? ;-)
Do you think the program preferences in (e.g.) Apple Mail look like System Preferences? No? Me neither. But by your way of thinking, they should, because Mail uses NSPreferences.
Please reread the article and run the sample app.
I won't discuss the use of undocumented API's here because I cover it in the article. I'll just say that if Apple bothered to document them, they wouldn't be undocumented! ;-)
RE: Thank You!
Thanks for the kind comments, Charles. We plan to publish a Mac Secrets article once a month, so keep checking back.
Thanks for the comments so far guys. My take on this is that Apple shouldn't leave undocumented those features which application developers are >>obviously<< going to need. The ability to create preference panes is just such a feature.
There is obviously going to be low-level nastiness that the average developer shouldn't need to touch, except in very rare circumstances but -- heck -- preference panes ain't exactly rocket science. To me, they're a core part of the Mac user experience.
RE: The Cocoa Name
Firstly, yes you're right about CoreFoundation / Foundation. That was a typo: I was thinking about the layer kit and Core Animation while writing Foundation! As you say, iPhone apps primarily use Foundation and UIKit, although CoreFoundation is present, at least on 1.1.2.
The NIB thing is more interesting. I've pulled apart several iPhone apps, and not found a NIB yet. As far as I can tell, most apps hard-code the position of each UI element. Calculator, for example, has a method called [CalculatorController init] which laboriously lays out all the buttons used by the calculator in their hard-wired positions. This, I suspect, is the reason you can't just rotate your iPhone and get a landscape-oriented calculator. It's just a major hassle doing this once, let alone twice! Hopefully, the official SDK will have some sort of GUI design tool which lets you lay out a window graphically, and then at least spit out a chunk of Objective-C which you can then paste into your app. But then again, maybe we won't have that, at least initially....
So why no NIBs? I guess the short answer is reducing the code footprint. The business of bringing in a NIB, parsing it, auto-generating the various controls and then linking up the actions, etc, is a lot of code. Maybe in iPhone 2.0 ?
Hi Stu - thanks for the comment: I'm glad you liked the piece.
I'm planning a follow-on article which looks at how to build a small app using the classes in the UIKit framework. Just waiting for Apple to bring out the official SDK in case there are any huge changes.
ps: Cocoa is indeed an odd name for a development framework - nothing to do with chocolate. But then, I guess Java hasn't got much to do with coffee... ;-)
sektah - Thanks for the heads-up. I've checked the website and it does indeed look very cool. Will be interesting to see how much of this stuff survives the 1.1.3 update.... <nervous laugh>
RE: How to blow your foot off....
Hi Douglas, good comment. I can't help feeling that Microsoft have simply lost the ability to look at things from the end-users perspective. Using Windows these days is a succession of jumping through hoops before you can get down to any real work.
As regards people with pirated copies having better experiences than legitimate customers, this may well be true. But I think the people with the best user experience of all are those who eschew Microsoft altogether...
To Webster Phreaky
You are Microsoft's Marketing Department, And I Claim My £5.
Seriously, I have had zero problems with OS X updates, endless problems with Windows updates, and total bloody nightmares every time Microsoft do a major new OS release.
You refer to spending $3000 on a MacBook Pro. Sure, the high-end 17" model costs $2799, but MacBook Pro's start at $1999. I've kitted my two boys out with Mac minis ($599 a throw) and very happy they are too. Historically, Apple kit was overpriced. It isn't overpriced any more, and when you factor in the lost productivity and grief that you get by going the Microsoft route, Apple are virtually giving the stuff away...
Vista fast and elegant? LOL^10 !
>>> “Our company had its head in the sands about open source, just hoping it was a fad and would go away,” <<<
Very true, but doesn't really address the question: how *DOES* one compete when so many other (arguably better?) tools such as VS.NET Express are completely free?
>>> Might that mean a Delphi plug-in for Visual Studio? “That’s one of many approaches. I’m not going to comment specifically, but thematically you are in the right direction,” says Douglas. <<<
I've been arguing for a Delphi add-in for VS for at least the last three years. I'm sure the penny will drop eventually.... but don't hold your breath... ;-)
RE: Quiz Question
Hi Blain. You said "In regards to the final quiz question, it's the same reason the last stack entry of printf would be the first string; namely, it's a variable/unknown length argument list, so you don't know where the first argument would be if it was pushed first. Last in first out, and all that. Because after self and the selector, you've got all the arguments that the selector may or may not have."
That's certainly true as far as it goes, but not quite the angle I was coming from. One of the oddities/conveniences (delete as appropriate) of Objective-C is that --- as I'm sure you know --- it's possible to send a message to a nil object. In the PPC implementation, the implicit "self" pointer is passed in the r3 register which (suprise, surprise!) just happens to be the register that's used to return scalar function arguments. The effect is that if you send a message to a nil object using a selector that's expected to return a boolean, int, float, etc, you'll effectively get NO, 0, 0.0 (respectively) back *because* the appropriate value is already in r3.
The effect is the same with the Intel implementation. 'Self' is passed in the EAX register, and EAX is used for the return value. This is -- I believe -- the reason why GCC ensures that Self is the last value that's placed in EAX immediately before the dispatcher call.
RE: Just a little aside
Jeremy said: "I'm struggling to see why any part of this statement could be considered embarrassing. Why do you find it so?"
'Tis a reference to the preceeding paragraph. Some people collect stamps, some folks build model boats, some like photography (I've done all those in my time) but during that phase of my life, I liked nothing better than a nice x86 MSDOS disassembly to get my teeth into! ;-)
Don't think the leaked source was spaghetti code? Apparently Microsoft thought it was too. :-) Point your browser at the following:
Of course, this raises the question of why Vista isn’t a whole lot better if the developers really started with a clean slate? The answer, of course, is that they didn’t start with a clean slate. I think this would have been impossible – all vestiges of backward app compatibility would have gone out the window. I think the bottom line is they probably made an effort to untangle some of the spaghetti, but not much. A complete rewrite? No way Hosay! And if they did spend all their time restructuring code, this also explains the lack of new goodies.