|Home » Learning Curve » Developers Workshop
Or 'Clipothèque: Another 48 Hours'.
The Clipothèque out now is what we internally call 'G3' - third generation. The first version (completed in less than 48 hours) was fine. And then we realised (not atypical) there was so much more we could do with it.
So the three of us progressed over a period of days through a hybrid 'G2' to the current version. G2 kept all of the old stuff but added on the new stuff for G3 as well and then G3 successively removed all the G1 stuff. What we have now we think is pretty cool.
The process was not without its moments of enlightenment. And frankly the more we look at the Apple development tools the more we rub our eyes in disbelief. We're also reminded that NeXT third party developers once seriously suggested Apple make the tools open source so they could fix all the bugs. Weird things like programs crashing for use of arrow keys and so forth. Apple didn't nix the idea at the time but they never put the code out there either. We're reaping the results now. The chickens are coming home to roost.
One of the big things with table view work is the ability - the need - to completely hide table columns. Users simply drag one column over another and the latter is gone. At this point the hidden column has a width of -3. And up until the tools for Tiger this could be set programmatically. But lo and behold: someone in their infinite wisdom decided again to 'improve things'.
The worst about IB for Tiger is that there are entire sections of the program that seem to have never been completed. When you look at the settings for a table view you'll notice there's a configuration for how the table view deals with the last column. Default it will adjust the size of this column to fit. Which is great if that's what you need but absolutely not great if you need the view to not do that.
Our Xbase can never let its table view do that: the rightmost column must always be visible and only the user can choose to hide it. To fully grasp what's going on here: when a table view is set to automatically adjust the final column to fit and the widths of the visible columns already exceed the total width of the view - you'll NEVER get to see that final column. Never. Not too cool.
But with IB for Tiger you're fucked. It's true you have a combo box to choose which alignment you want and it's true the first option is 'no adjustment at all' but the danged thing simply doesn't stick. Change the setting, save, exit, open again - and you'll see: the previous setting is back again.
Changing the widths of columns to initially be invisible is also fun. If you go in the main window's tree view and change the widths you'll find things changing on you all over the place. Set one of the columns to -3 and the others will jump back to 10. Change those from 10 to -3 and the first one will change to 10. And so forth.
What you have to so is expand your window on the x axis, expand your view along the same axis, and then click through to the columns to get the widths you want. Of course this is all a question of buggy code but fortunately there's a bug in the bug and you can fuck with this long enough and get it to stick. Then you reduce your view back again, reduce your window back again, and hope for the best.
Things get even funkier on IB3 for Leopard. It's doubtful developers will ever get used to the new layout and new way to work. It's just too bulky and things have moved all over the place (or disappeared) and a lot of shit you don't need to know is suddenly there instead. But worse: someone has taken the bloopers of IB2 for Tiger and 'improved' on them.
Now (in IB3) when you try to set a column width to -3 the configuration panel just freezes. They've got a formatter in there and in somebody's 'infinite wisdom' they just don't allow negative values. If you input a negative value you can't get out of the field - the formatter stops you. [That's what formatters are for and that's one reason smart developers don't touch them with a barge pole.]
And if you spin down to a zero value and keep going the value wraps around instead - you're back at your topmost value. Whatever that happens to be.
Now obviously any user can at any time with any program using a table view drag any column over to completely cover another. As if. And if and when these table view column settings are saved you'll be able to look in the PLIST file and see: the column will be set to a width of -3. As plain as day.
Yet some wannabe probably on a summer apprenticeship as all the heavier dudes were working on the iPhone decided it would be good to wrap around at zero. He obviously had zip experience actually using table views and so completely fucked it up.
It's probably possible to go into the NIB used by IB3 and fix it but the question is how many of these things have to be fixed and above all who is going to take responsibility for them? Because it's pretty obvious Apple are going to do nothing. Having PBX (Xcode) and IB as open source would solve it - count on almost all bugs gone within weeks - but this isn't Steve-0's way. He can't let anyone else stroke his whole banana.
When things get too bad - and there are countless other areas of IB3 where features are simply not implemented with WebKit being one notorious example - third party developers will simply stop writing software for the platform (and internally Apple developers will pull out more hair than ever). And they'll all go over to Etoile or whatever instead. Or maybe even Windows again. Windows is at least a market.
Not that Steve-0 will mind of course. He doesn't like third party developers writing software for his platform anyway. And some people say he's going to try to stop them completely in the near future.
The Clipothèque out there now is blazing. It uses something referred to as 'Smart Drop™'. Try the app and you'll see. It's just a hack but some people go ga-ga over it. You probably will too.
The ACP: Clipothèque
The ACP: Xfile Test Drive
Rixstep Downloads: Clipothèque
Developers Workshop: Paperback Cliché
Rixstep Downloads: Xfile Test Drive with Clipothèque
Developers Workshop: 48 Hours: The Clipothèque™ Beta
Learning Curve: Clipothèque Part 1: Add a Clip and Share It
Industry Watch: Clipothèque Scaleable Vector Graphics Test