A few people have asked me about Mavericks, the soon-to-be-released Mac OS X 10.9. (I'm going to miss the cat names that Apple has used for all their earlier releases.)
From what I've seen so far, there's no reason why Solitaire Till Dawn won't be fully compatible with Mavericks I intend for the new Solitaire Till Dawn to work with any version of Mac OS X from Lion (10.7) at least up through Mavericks—of course I can't promise anything beyond that at this time, since we have no idea what future OS X releases will be like.
My last post went up only about 24 hours ago, but I have been working since then. I am writing the online help. Yesterday I spent mostly fighting with CSS, trying to get the pages nicely laid out. In the process I got the first few pages of help written in the new style; their actual text content I just copied from the old version, because none of that info had changed much in the new release.
I've learned some useful trivia in the process, such as how to write "⌘" in HTML. (It's ⌘ if you're curious.)
Today I'm starting to design the pages for stuff that has changed. So I have to write new text, but at least I've mostly got the formatting problems solved now. Onward!
Tuesday, June 18, 2013
Monday, June 17, 2013
Back in the Saddle
No news since March! Time for an update.
The house-moving is done, yay! (Well, it's never completely done, but it's 99% done and the rest isn't urgent.) The family's health issues I've been alluding to are also mostly resolved, and in a good way: we're all doing fine, thanks.
So... does that mean I'm finally back to work on Solitaire Till Dawn?
Yes. Yes, it does. It's taken half of a year to get all of these issues taken care of, but life is finally settling back towards sanity, and I have actually been able to spend time on software development during the last few weeks. Here's where we are:
I am nearly done with adding features (whether new or old). Most recently I completed work on the old "Game Number" feature, where every shuffle has a number that can be used to re-create it. You can share a challenge with a friend, for example, by choosing "Show Game Number" from the File menu and sending the number to your friend, who enters it by choosing "Play Game Number" and entering the number you sent.
I have also finished adding in some missing behaviors. For example, until a couple of weeks ago, selecting "New Game" didn't give you any warning or chance to change your mind if you were in the middle of an unfinished game. Now the old preference settings for that sort of thing are fully implemented, and you do get the warning and chance to cancel if, for example, you clicked the New Game button by accident.
This morning I achieved a really good improvement in startup time. It had been taking 30 seconds or longer to launch Solitaire Till Dawn and present the game window; now it takes about 3 seconds.
So all of that is just to show you that yes, I've been working! But I know that what you really want to know is what's left to do, and how long it will take.
Sorry, but I still can't predict how long it will take to finish. (Pause for loud groans from the audience, and a few people shouting boo! and throwing overripe fruit.) This is because much of what's left isn't up to me.
There's still the polish-and-debug stage to get through; that part is up to me. It will be done when I feel like all of the significant bugs are fixed, and when I'm not finding new ones very often. But I've done a lot of that already, as I worked on other things, so I'm not too concerned about it.
I also have to write the online help. That will take time, but it's pretty straightforward and I don't expect any big difficulties or setbacks; so I'm not too concerned about that either.
Then there's artwork. This is a big deal. When I wrote the first version of Solitaire Till Dawn, most of my customers still had black-and-white Macs with a tiny screen. It was fairly easy for me to provide all the artwork, even though I'm not much of an artist. When the Mac II and larger color screens started getting popular, it was harder (because I'm not much of an artist!) but I could still manage on my own. But when really big, deep-color Macs became common, I started having to hire real artists. Nowadays, the App Store and the high-resolution Retina displays have raised the bar absurdly high. All of the artwork must be of professional quality: not only because users have come to expect it, but because the App Store will not accept apps that look slapdash. (For example, every app must have an app icon in deep color, and sized at 1024x1024 pixels! That's bigger than my cards used to be!) So one of my next tasks is to come up with a comprehensive list of images—card art, app icon, toolbar buttons, dialog images, status bar icons, etc.—and hire somebody to make them. And then wait for them to be done.
And when everything is really done and ready to go, I have to submit it to the App Store. Getting a new app approved can take months, from what I'm told.
So hang in there, if you can. I know that inevitably some of you are going to give up on waiting. I'm truly sorry to disappoint you; I probably want this done myself more than anyone else on the planet; but as I keep saying, it's a big job and it will take as long as it takes.
But I am working on it!
The house-moving is done, yay! (Well, it's never completely done, but it's 99% done and the rest isn't urgent.) The family's health issues I've been alluding to are also mostly resolved, and in a good way: we're all doing fine, thanks.
So... does that mean I'm finally back to work on Solitaire Till Dawn?
Yes. Yes, it does. It's taken half of a year to get all of these issues taken care of, but life is finally settling back towards sanity, and I have actually been able to spend time on software development during the last few weeks. Here's where we are:
I am nearly done with adding features (whether new or old). Most recently I completed work on the old "Game Number" feature, where every shuffle has a number that can be used to re-create it. You can share a challenge with a friend, for example, by choosing "Show Game Number" from the File menu and sending the number to your friend, who enters it by choosing "Play Game Number" and entering the number you sent.
I have also finished adding in some missing behaviors. For example, until a couple of weeks ago, selecting "New Game" didn't give you any warning or chance to change your mind if you were in the middle of an unfinished game. Now the old preference settings for that sort of thing are fully implemented, and you do get the warning and chance to cancel if, for example, you clicked the New Game button by accident.
This morning I achieved a really good improvement in startup time. It had been taking 30 seconds or longer to launch Solitaire Till Dawn and present the game window; now it takes about 3 seconds.
So all of that is just to show you that yes, I've been working! But I know that what you really want to know is what's left to do, and how long it will take.
Sorry, but I still can't predict how long it will take to finish. (Pause for loud groans from the audience, and a few people shouting boo! and throwing overripe fruit.) This is because much of what's left isn't up to me.
There's still the polish-and-debug stage to get through; that part is up to me. It will be done when I feel like all of the significant bugs are fixed, and when I'm not finding new ones very often. But I've done a lot of that already, as I worked on other things, so I'm not too concerned about it.
I also have to write the online help. That will take time, but it's pretty straightforward and I don't expect any big difficulties or setbacks; so I'm not too concerned about that either.
Then there's artwork. This is a big deal. When I wrote the first version of Solitaire Till Dawn, most of my customers still had black-and-white Macs with a tiny screen. It was fairly easy for me to provide all the artwork, even though I'm not much of an artist. When the Mac II and larger color screens started getting popular, it was harder (because I'm not much of an artist!) but I could still manage on my own. But when really big, deep-color Macs became common, I started having to hire real artists. Nowadays, the App Store and the high-resolution Retina displays have raised the bar absurdly high. All of the artwork must be of professional quality: not only because users have come to expect it, but because the App Store will not accept apps that look slapdash. (For example, every app must have an app icon in deep color, and sized at 1024x1024 pixels! That's bigger than my cards used to be!) So one of my next tasks is to come up with a comprehensive list of images—card art, app icon, toolbar buttons, dialog images, status bar icons, etc.—and hire somebody to make them. And then wait for them to be done.
And when everything is really done and ready to go, I have to submit it to the App Store. Getting a new app approved can take months, from what I'm told.
So hang in there, if you can. I know that inevitably some of you are going to give up on waiting. I'm truly sorry to disappoint you; I probably want this done myself more than anyone else on the planet; but as I keep saying, it's a big job and it will take as long as it takes.
But I am working on it!
Sunday, March 10, 2013
Of the Essence
My last post talked about a new feature I've added to Solitaire Till Dawn, and so did another earlier post. Recently someone posted a comment to the effect that he, and many others, have been waiting a long time for me to get Solitaire Till Dawn finally ready for distribution, and that he doesn't want new features; he just wants a working version as quickly as possible.
I've been expecting some feedback like that, and I'm only surprised that it didn't come sooner, and in greater quantity, and louder. Because I totally understand: you all just want to play some solitaire. That's the only reason you're interested in Solitaire Till Dawn, the only reason you pay attention to my ramblings, the only reason you come to this blog. Come on, Holzgrafe, just finish it up already!
So now seems like a good time to explain a few things. You have all shown tremendous good will toward me and my project, and I want to stay on your collective good side while we're all still waiting and working toward a hopeful happy conclusion.
The first thing to say is that I'm still not free to spend much time on software development. I am still in the middle of moving house, and that process still has a ways to go. There have also been some medical issues in my family: nothing life-threatening, but they took a lot of time and attention, and to some degree are still on-going. The combination has been devastating to my ability to sit and concentrate on software.
And that's the next thing to say: time to sit and concentrate, for hours on end, is critical to software development. This is something that almost no one other than software engineers seems to understand. In fact, when I retired from my day job last November, it was largely because new management did not understand this, and could not be made to understand it. They were convinced that software development got done in meetings. (Here I originally wrote a long rant about all the things they changed that reduced the engineering department's ability to actually get anything done; but then I decided to take mercy on you all, and deleted it.)
I had hoped that, by retiring, I would finally be able to devote big chunks of my time to Solitaire Till Dawn development, but so far that has not happened. The move is one reason: I can't afford to be retired and still live in one of the most expensive places on earth, so I must move, and soon. The health issues are another reason. So for the past four months, not much has gotten done on solitaire, I'm afraid.
And yet I somehow found time to add a couple of new features. How did that happen, and why wasn't I just working on finishing the original feature set instead?
One reason is that bit about having long periods of uninterrupted time to work. The job of debugging an almost-finished product absolutely requires that kind of time. Every bug has to be discovered, then studied until I know how to reproduce it, then studied until I understand it. Then I have to devise a fix (that doesn't break something else), implement the fix, then spend more hours testing to be sure that the fix really works, really fixes all manifestations of the bug in all circumstances, and really doesn't break something else. This kind of sustained effort can't be done in 5-minute pieces, or even one-hour pieces.
Some new features are like this, too. It can take weeks to add some features. But in other cases, a new feature may be able to go in fairly easily and quickly, and without interfering with other things. That's been the case with the last couple of features I've added, so I didn't feel too bad about using small bits of time for them.
It's also true that I need to keep my own interest up. Not everything about software development is fun, even though I do enjoy most of the process. Tossing in a nifty new feature once in a while makes me feel good. This way, I have not just spent five years re-creating something old; I can honestly say that the new version will be better than ever before. That keeps me happy and motivated to do the boring, difficult stuff... when I can find the time.
I've been expecting some feedback like that, and I'm only surprised that it didn't come sooner, and in greater quantity, and louder. Because I totally understand: you all just want to play some solitaire. That's the only reason you're interested in Solitaire Till Dawn, the only reason you pay attention to my ramblings, the only reason you come to this blog. Come on, Holzgrafe, just finish it up already!
So now seems like a good time to explain a few things. You have all shown tremendous good will toward me and my project, and I want to stay on your collective good side while we're all still waiting and working toward a hopeful happy conclusion.
The first thing to say is that I'm still not free to spend much time on software development. I am still in the middle of moving house, and that process still has a ways to go. There have also been some medical issues in my family: nothing life-threatening, but they took a lot of time and attention, and to some degree are still on-going. The combination has been devastating to my ability to sit and concentrate on software.
And that's the next thing to say: time to sit and concentrate, for hours on end, is critical to software development. This is something that almost no one other than software engineers seems to understand. In fact, when I retired from my day job last November, it was largely because new management did not understand this, and could not be made to understand it. They were convinced that software development got done in meetings. (Here I originally wrote a long rant about all the things they changed that reduced the engineering department's ability to actually get anything done; but then I decided to take mercy on you all, and deleted it.)
I had hoped that, by retiring, I would finally be able to devote big chunks of my time to Solitaire Till Dawn development, but so far that has not happened. The move is one reason: I can't afford to be retired and still live in one of the most expensive places on earth, so I must move, and soon. The health issues are another reason. So for the past four months, not much has gotten done on solitaire, I'm afraid.
And yet I somehow found time to add a couple of new features. How did that happen, and why wasn't I just working on finishing the original feature set instead?
One reason is that bit about having long periods of uninterrupted time to work. The job of debugging an almost-finished product absolutely requires that kind of time. Every bug has to be discovered, then studied until I know how to reproduce it, then studied until I understand it. Then I have to devise a fix (that doesn't break something else), implement the fix, then spend more hours testing to be sure that the fix really works, really fixes all manifestations of the bug in all circumstances, and really doesn't break something else. This kind of sustained effort can't be done in 5-minute pieces, or even one-hour pieces.
Some new features are like this, too. It can take weeks to add some features. But in other cases, a new feature may be able to go in fairly easily and quickly, and without interfering with other things. That's been the case with the last couple of features I've added, so I didn't feel too bad about using small bits of time for them.
It's also true that I need to keep my own interest up. Not everything about software development is fun, even though I do enjoy most of the process. Tossing in a nifty new feature once in a while makes me feel good. This way, I have not just spent five years re-creating something old; I can honestly say that the new version will be better than ever before. That keeps me happy and motivated to do the boring, difficult stuff... when I can find the time.
Wednesday, February 13, 2013
Mouseless
I've been silent for a while; this was due to "life intervening." The holidays, the circus of trying to sell and buy and move house, and some other issues have been claiming my time and attention. I'm still pretty busy in ways that preclude daily work on Solitaire Till Dawn, but things are starting to calm down and I have gotten a bit done in the last few days.
I've been working on a new feature: "mostly mouseless" play. You can already hold down the Shift key to highlight all movable cards, to see what your options are. With the new feature, you can use the arrow keys to select any one of the movable cards; then just pressing the Return key acts as if you had clicked the card, sending it to a default legal destination. If you haven't made a selection yet, pressing Return will act on the first movable card, which is a handy shortcut when there's only one movable card or you're sure the one you want to move would be the first one.
That bit about "a default legal destination": that's what makes this only mostly mouseless. There's no keyboard-driven way to choose among multiple destinations, so you may still have to reach for the mouse once in a while if the card you want to move doesn't go where you want it to go. I might address this some day, but perhaps not right away.
I need to spend a bit more time on the screen display (showing which card is currently selected), but the feature itself is in and working just fine.
I've been working on a new feature: "mostly mouseless" play. You can already hold down the Shift key to highlight all movable cards, to see what your options are. With the new feature, you can use the arrow keys to select any one of the movable cards; then just pressing the Return key acts as if you had clicked the card, sending it to a default legal destination. If you haven't made a selection yet, pressing Return will act on the first movable card, which is a handy shortcut when there's only one movable card or you're sure the one you want to move would be the first one.
That bit about "a default legal destination": that's what makes this only mostly mouseless. There's no keyboard-driven way to choose among multiple destinations, so you may still have to reach for the mouse once in a while if the card you want to move doesn't go where you want it to go. I might address this some day, but perhaps not right away.
I need to spend a bit more time on the screen display (showing which card is currently selected), but the feature itself is in and working just fine.
Tuesday, December 18, 2012
Have It Your Way
I've just finished adding a new feature to Solitaire Till Dawn, one I've wanted since forever ago. I have a compulsive nature, and when I play cards to the foundations (the goal piles), I like to assign the suits to piles in this order: Hearts, Spades, Diamonds, Clubs. If it's a two-deck game then I like to double them, two by two: Hearts, Hearts, Spades, Spades, and so on. I want this enough that if an Ace is auto-played to the "wrong" pile, I will undo and then drag the offending card to the "right" pile before continuing. Of course it's easy enough to just do the dragging; but it would be even easier to just click the card and see it go straight to the right place!
I could have just hard-coded this behavior, but I never did that because I am sure that some of you have your own preferences in this, and they may differ from mine. I don't want to force my own baseless prejudices on any of you. Over the years I occasionally considered inventing a set of options for the Preference panel to give you some control over suit placement, but this always seemed like huge and confusing overkill, so I never did anything about it.
But I think I've finally got it sussed out, and my solution will be included in the new release. It is simply this: for each kind of solitaire that you play, Solitaire Till Dawn will remember which suit you put in each goal pile. After that, any automatically-moved cards of each suit will go to the same piles where you put them in prior games.
If you later decide you don't like that placement, all you have to do is place the cards by hand in whatever other piles you like, and Solitaire Till Dawn will remember your new choices from then on.
Very simple, and no need for any new controls or options in the Preferences window or anywhere else. There's nothing you need to learn; it will just happen automagically. (And of course, if you just don't care where the Aces fall, you can ignore the whole business.)
I got this working today. Yay!
I could have just hard-coded this behavior, but I never did that because I am sure that some of you have your own preferences in this, and they may differ from mine. I don't want to force my own baseless prejudices on any of you. Over the years I occasionally considered inventing a set of options for the Preference panel to give you some control over suit placement, but this always seemed like huge and confusing overkill, so I never did anything about it.
But I think I've finally got it sussed out, and my solution will be included in the new release. It is simply this: for each kind of solitaire that you play, Solitaire Till Dawn will remember which suit you put in each goal pile. After that, any automatically-moved cards of each suit will go to the same piles where you put them in prior games.
If you later decide you don't like that placement, all you have to do is place the cards by hand in whatever other piles you like, and Solitaire Till Dawn will remember your new choices from then on.
Very simple, and no need for any new controls or options in the Preferences window or anywhere else. There's nothing you need to learn; it will just happen automagically. (And of course, if you just don't care where the Aces fall, you can ignore the whole business.)
I got this working today. Yay!
Thursday, December 13, 2012
Winner, Winner, Chicken Dinner
Just finished up the "you win" alert. This was not so complex as the All Statistics window, but it had its own little collection of picky details to get right: show on early win or not, according to your preferences; several relevant prefs checkboxes right there in the alert, for convenient access; and it will start a new game when you dismiss it, if you've selected that option.
Per ardua ad astra!
Per ardua ad astra!
Sunday, December 9, 2012
The Clock is Ticking
Last time, I wrote that the "All Statistics" window was nearly complete, and that I was working on the clock. Like the All Stats window, the clock is more complex than you'd expect. It needs to pause when Solitaire Till Dawn is not the frontmost application, resume when you come back to the game, and stop when the game is won. It needs to save the current time when you quit, and restore it when you open Solitaire Till Dawn again. It needs to know whether you want the clock to be running at all; and when you change your mind and turn it on, it needs to wait until you start a new game before it begins keeping time: no fair starting the clock from zero in the middle of your current game!
And of course, it needs to display and update correctly; and statistics for the times of won games need to be harvested and saved and shown in the All Stats window.
I was originally going to punt the clock for a later release, but I realized that I'd have to rearrange a lot of the user interface so that the missing clock wouldn't leave either ugly blank spaces or useless non-working displays; and then put it all back when I later got around to adding the clock back in. So rather than that, I just bit the bullet and made it work. And it's done now, and so is the All Statistics window. Yay!
And of course, it needs to display and update correctly; and statistics for the times of won games need to be harvested and saved and shown in the All Stats window.
I was originally going to punt the clock for a later release, but I realized that I'd have to rearrange a lot of the user interface so that the missing clock wouldn't leave either ugly blank spaces or useless non-working displays; and then put it all back when I later got around to adding the clock back in. So rather than that, I just bit the bullet and made it work. And it's done now, and so is the All Statistics window. Yay!
Subscribe to:
Posts (Atom)