Solipsism Gradient

Rainer Brockerhoff’s blog

Browsing Posts in Development

RBSplitView 1.1

No comments

Well, it took over a month, but version 1.1 of RBSplitView is now out.

Originally I was calling it 1.0.5, but several people made so many good feature requests it became clear that 1.1 would be more appropriate. Special thanks to Dan Wood, Steve Gehrman and Brad Miller for their input and help with debugging.

When I began coding on XRay 2 some months ago, I ran into severe limitations with Cocoa’s NSSplitView. After a couple of frustrating weeks to make it behave like it should, I began looking for alternatives, to no avail; so I started coding my own version.

Then, as I realized that many other people were having similar problems, and that numerous Apple applications also seemed to have their own handrolled extensions to NSSplitView, I decided to publish my source. It has been a great learning experience.

With my recent decision to attend WWDC, I think the time has come to stop fiddling around with RBSplitView and return to XRay 2, in order to have a working alpha to bug the Apple engineers with. This will be fun!

Furthur

No comments

Yes, I know, it’s been over two weeks. I’ve been holding back some posts I’ve wanted to make, since they demanded preliminary work I couldn’t do at the time… scanning stuff and processing pictures, and so on. Hopefully next week…

Meanwhile, my proposed paper for the 2005 Advanced Developers Hands On Conference has been accepted. ADHOC (formerly famous as MacHack) will happen July 27-31, 2005, in Dearborn MI (near Detroit). A great conference for Mac developers.

Regarding the paper, the working title is: “Out of the Bottle: Beyond the Genie Effect”.

One Cocoa FAQ is how to do the Genie Effect. Unfortunately, the effect itself is done behind the curtain by the Window Manager. We’ll show how to do it in a few easy steps, which will teach you how to:

1) Overlay a transparent window over the screen and draw into it

2) Use OpenGL in that window to move images around

3) Make it appear that your windows are actually doing cool stuff.

Most important, this is the first paper I’ll be doing with a coauthor: Jeff Biggus, the mild-mannered secret identity of HyperJeff (cue applause!). Jeff will be doing the OpenGL part – something about which I know very little right now – and I’ll be doing the graphic interface part. He’ll also attend the conference to present the paper, as I won’t be able to make it this year.

In other news, RBSplitView 1.0.5 is nearly ready for publication. There’s still one feature request and a couple of bugs to take care of, but I hope to have it ready over the weekend. So watch this space…

DrunkenBlog has yet another great developer interview, this time with Jon “Wolf” Rentzsch of Red Shed and mach_inject fame. Even though I’ve run into Jon several times at MacHack, I knew relatively little about him; especially not that he comes from a noble German family.

If you’re a developer, it’s a must read. Also, be sure to look up the other interviews, which I’ve been remiss not to point at before; especially the one with Brent and Sheila Simmons.

Follow-up; unfortunately it didn’t work out as well as I had hoped.

It seems that Firefox is limited to files under 2GB; at least it misreported the file size, which should be 2314MB, as 2097MB, and cut off the download at that point, with the final 200-odd megabytes missing. It also doesn’t support resuming downloads after quitting the application.

Several other tricks I tried to resume the download, or to download from the command line, also didn’t work. So I reported the issue to Apple DTS… let’s hope the actual DVD arrives sometime soon. It usually takes 2-3 weeks. icon_sad.gif

As the gentle readers who’ve met me in person probably know, I don’t own any socks.

It must be some sort of thermal disability, but the last time I recall borrowing a pair of socks to use inside my standard Birkenstocks was some 5-6 years ago when we went for a walk on the Columbia Icefield. A well-known anecdote about this features a slack-jawed landlady near the Titisee, where we went looking for a room in somewhat dismal weather, gasping “but… you have no socks on!” after opening the door.

Still, for one special case I’m all for socks. SOCKS, that is. I was stymied by trying to download a 2GB+ file from the Apple ADC Site. Apparently, my ISP interposes a transparent proxy cache which breaks downloads of such huge files over the standard HTTP port (80). So after beating my head against that wall for a few weeks, I chanced to ask Mike Ash about this, and he promptly came out with a recipe for doing it over a SOCKS proxy! And it has other nice side effects:

…This allows your traffic to traverse your local network without being visible to snoopers, even when visiting unencrypted sites.

It also allows you to appear to come from a different IP address, allowing you to defeat geolocation schemes. In particular, some credit card processors try to make sure that your credit card billing address is correlated with your IP address, which can be hard on us expatriates.

Thanks a lot Mike!

Ping…

No comments

Whew, this has been a long dry spell. I had one of those pesky attacks of “programmer’s block”, where a couple of silly bugs hold things up for weeks.

Fortunately I can report that it’s over and we’re seeing real progress again. Expect RBSplitView 1.0.2 to be released in 1 or 2 days…

Re: Transparency

No comments

Regarding issues of trust between shareware authors and users, an interesting discussion has developed over on the XRay 1.1 support forum.

It appears to be based on a difference of mindset between old-time Mac users and users coming in from Unix or Linux platforms. I’m squarely inside the first camp, of course, never having used Unix or Linux (nor Windows, either, except on a very few occasions).

XRay‘s original purpose, as regular readers well know, was to offer a user-friendly way to view and set file/folder attributes, including BSD permission flags – the latter being a completely new concept to me and, judging by the software’s popularity, most Mac OS X users. As such, both the installation process and normal use try to insulate the user from the details as much as possible; the rationale being that anybody knowledgeable enough to use various Terminal commands such as chown and chmod would prefer using them directly, while old-time Mac users would prefer using XRay as a graphic wrapper for these commands.

I think is this the second (or third?) time, in the 3+ years that XRay has been available, that a former Unix/Linux user has thought that XRay’s installation procedure is “suspicious”; either because it asks for an administrator password to copy stuff into /Library/Application Support, or because it sets world-writeable permissions on the folders it creates there, or something. I must confess I had a hard time even understanding those arguments at first…

Of course I’m concerned with that and will try to make the whole process more transparent, but I’m not entirely sure how to go about that. Should I ask the user first “are you an old-time Machead or a suspicious former Unixer?”… icon_lol.gif

So far the least disagreeable solution seems to be to list, on demand, all steps that are done – or perhaps before each one is done – and explain why, and offer the user a chance not to do that, and say what restrictions will result from cancelling. Seems an awful lot of work, though, to accomodate a very small proportion of users.

Comments?

Transparency

No comments

An excellent article by Eric Sink is out: The Tenets of Transparency. Thomas Warfield also has some good comments. If you’re a developer doing (or considering doing) shareware, you should read it.

I observe that buying software is closer to the “high trust” end of the spectrum. When people buy software from your ISV [Independent Software Vendor], they are expecting a lot from you, both now and in the future:

  • They trust that your product will work on their machines.
  • They trust that you will help them if they have problems.
  • They trust that you will continue to improve the product.
  • They trust that you will provide them with a reasonable and fairly priced way of getting those improved versions.
  • They trust that you are not going out of business anytime soon.

Transparency is an ISV’s way of trusting your customers. By letting your customers see behind the corporate veil, you extend them your trust, making it easier for them to trust you in return.

He then goes on to list 8 ways of implementing transparency:

  1. Have a weblog.
  2. Offer web-based discussion forums.
  3. Don’t hide your product’s problems.
  4. Don’t annoy honest people.
  5. Offer a painless demo download.
  6. Offer a money-back guarantee.
  7. Share a little about your financial standing.
  8. Talk about your future plans.

I hope most of those sound familiar… icon_wink.gif. You’re reading the weblog now (#1), and there are discussion forums (#2) for each major product. Not that people take as much advantage of that as I hoped, but support over e-mail or AIM is often faster.

Don’t hide your product’s problems (#3): Eric takes this to refer to bug fixes and updates:

…But not only do users want you to keep improving your product, they usually care about specifically how the product grows and matures. They want to be reassured that your product will be growing deeper, not just wider. I define these terms like this:

  1. A product gets “wider” when it appeals to new users.
  2. A product gets “deeper” when it works better for the users it already has.

My bug fix and update policy is relatively simple. My freeware stuff is nearly all written for my own use too, so I try to keep it running on current releases, and try to keep it reasonably bug-free and functional. Beyond that, I’m open to suggestions for fixing stuff or adding functionality, but I can’t promise any huge efforts. So far, it looks like all my freeware will continue to work in the upcoming Tiger (10.4) release.

Regarding my shareware, which at present consists only of XRay, I of course try a little harder than that. If a paying customer complains of a specific bug I always try to fix it; if several customer declare they can’t live without a certain feature, I’ll implement it or (sometimes) convince them it’s not such a good idea. The latest release (1.1) is getting a little long in the tooth; a few minor bugs have surfaced, but on the other hand recent Finder versions have progressed to incorporate most of the functionality I originally wrote XRay 1.0 for, way back in the 10.1.x days; so fixing those isn’t on my high priority list anymore, unless more people suddenly start complaining.

Still, as I’ve mentioned before here, I’m working steadily on making XRay both wider and deeper, by recoding it from the ground up and calling it XRay 2.0. And at no charge to current users. However, I’ll be taking away some features that duplicate, by now needlessly, modern Finder capabilities.

Don’t annoy honest people (#4): I think I’m doing well on this. In fact, some users wrote in complaining that they couldn’t find any way to download the “real” XRay, without noticing that the serial number gets entered for them when they buy online… I suppose Eric also means this in the sense of not having any complex copy-protection or product activation. Rest assured I’ll never do any product activation on XRay, although this would of course be a defense against the bogus serial numbers and hacked binaries that are floating around.

Painless demo download (#5) is of course a given with shareware; just entering a valid serial number will convert the demo to the registered version. Eric says:

Nonetheless, although there should be no question about “if” you have a demo download, there are good questions to be asked about “how” you manage it. The high-trust path looks like this:

  1. Use time-limited demos, not feature-limited. (People who use “crippleware” as their demo are not willing to trust me, so I don’t trust them.)
  2. Don’t ask people to register just to see a demo. (I want to evaluate your product, not your privacy policy.)
  3. Don’t make people agree not to talk about your product. (People who try to prevent me from talking are trying to hide something, and are not to be trusted.)

OK, XRay is 15-day feature limited, and even after that it still has nearly all features; you just have to rerun it more often. I’m very puzzled at the last point… I want people to talk about my product, I can’t imagine someone requiring silence!

I’ve read conflicting views on money-back guarantees (#6); some developers don’t offer them, some tell horror tales about customers demanding refunds en masse. In practice, for me there has been only a single case of having to refund a customer’s money, and that was because he had paid twice because of a network glitch…

Share a little about your financial standing (#7):

When I buy software from a small ISV, I usually wish I could know all kinds of things about the company’s financials:

  • Is the company profitable?
  • How much cash does it have? How much debt?
  • What kind of corporation is it? Who are the owners?
  • Do they have outside investors?
  • Is the founder still involved? Does she still have a decent equity stake?

I’ve never touched on this issue before, and I don’t release sales figures for a variety of reasons. However, I can say that sales have been more than I expected, that they’re not high enough to make a living from (although I probably could do so if I were able to work fulltime at shareware), and that I and my wife have independent income. We have no debt and never had; not even a mortgage. It’s not even a corporation; just myself… so, rest assured my software won’t go away because of financial issues.

Talk about your future plans (#8 ): I often do, right here… so stay tuned!

Photos licensed by Creative Commons license. Unless otherwise noted, content © 2002-2025 by Rainer Brockerhoff. Iravan child theme by Rainer Brockerhoff, based on Arjuna-X, a WordPress Theme by SRS Solutions. jQuery UI based on Aristo.