Wednesday, November 28th, 2007
I did a quick edit to my QuickLook plug-in to make it work with cbz files exclusively.
For those that don’t know, cbz is an extension used to identify comic zip files. This change allows users to install other zip QuickLook plugins without worrying about conflicts.
The new version can be downloaded here: Link
Users of Simple Comic should probably delete QuickComic from their QuickLook directory as Simple Comic now bundles it. This makes it much easier for me to keep the plug-ins up to date.
Tuesday, November 13th, 2007
Well I neglected to post a blog entry for the release of 1.6. So this one will have to suffice for 1.6 and 1.6.1.
In any case here it is.Download 1.6.1
The localizers really knocked themselves out getting all the changes I made in 1.6 translated for 1.6.1. A round of applause for all of them.
If you have a jonesing for sweet sweet code the Simple Comic’s repository is up to date. Link
As a heads up to all of the Tiger users out there, future major releases will probably be Leopard only. Worry not on the bug fix front however, the 1.6.x branch will continue to be updated.
Monday, November 12th, 2007
To get used to the QuickLook plug-in architecture I did what everyone seems to be doing. Namely write a zip inspection module. The mysterious and prolific Hetima has already created one which is available here.
So anyway my plugin uses Hetima’s unzip framework to inspect the contents of any given zip/cbz, ignoring everything but images, sorts those images by name and draws the first to the thumbnail context. Nice and simple. The preview code is almost as simple except it iterates through up to 20 image and creates a multi page preview.
One caveat with this implementation is that the image name sorting slows down thumbnail generation noticeably. If that annoys you feel free to tweak it. I might even add some prefs that can be changed via the command line in the next version.
Download the source code.
Edit:I did a quick edit to my QuickLook plug-in to make it work with cbz files exclusively. This should prevent conflicts with other zip QuickLook plug-ins.Download
Monday, October 22nd, 2007
During the Apple dark years , OS 8 till OS X, I was a Linux and Windows user. Mainly Linux. Upon the arrival of OS 10.2 I gratefully came back into the fold. So it has been about five or so years since I have messed about with Linux. On the whole the experience was not bad. That said I could not see myself using it on a daily basis. This is due to any number of small issues that cropped up in just the few minutes that I was using it. Here is my stream of consciousness UI critique.
- Resizing windows is an unholy pain. Grabbing the edge of a window is very difficult. I am guessing that the designers are expecting users to maximize all windows.
- Alt tabbing through open windows can not be reversed. Meaning the user has to cycle all the way though the list if a mistake is made.
EDIT: This needed to be configured. Got it working. Not sure why it was not configured to allow reversing direction by default.
- No exposé equivalent.
EDIT: Definitely not true. If anything there are too many exposé alternatives.
- Dragging a file into a window without releasing does not make that window active.
- I was prompted to re-insert the install CD to install apps. This really bothered me.
EDIT: The CD was not required. Another case of crappy initial defaults. The package manager did not check the online repositories by default.
- Dragging around a window causes visible onscreen artifacting.
- Various things that the community docs said would work out of the box did not do so. Such as plugging in a Wacom tablet and multi-button emulation with a synaptix touch pad.
EDIT: Got the touch-pad working, but it required that I edit a text configuration file.
Anyway there are quite a few other things that bothered me but I can’t recall them. I guess this is just a reminder to me that it is the small stuff that makes or breaks an interface for most users.
Much better now especially since I now have an exposé clone
Friday, October 19th, 2007
Okay 1.5.3 is out now.Full disclosure I screwed up the localizations and have been doing so for some time by the looks of things. The strings where properly localized by the fine folks who volunteered their time but I neglected to give them enough room in their respective text fields, resulting in clipping. For this reason 1.5.4 will be released on monday.
Sunday, October 14th, 2007
I just created a Google code project for Simple Comic. I realize that better solutions exist, namely trac, but I don’t want to have to hassle with configuring all that jive.
From my few minutes of using it the interface appears quite adequate. The configurable tag auto-completetion seems especially handy.
In any case the advent of an actual organized issue tracker should help improve the overall quality of Simple Comic and make the development process a little more transparent to the end user.
Project is located here.
Wednesday, October 10th, 2007
Here is the most current version of Comic Icon. My little comic archive skinning app. Also it appears that I never released the source for it previously.
Comic Icon 0.2.4
Source
Sunday, October 7th, 2007
Scott Stevenson showed off one way to go about creating a proportionately scaled image. I decided to clean up Simple Comic’s thumbnail creation code and post it. It is a little more in line with what some of the comments suggested, in that it breaks the method up into several chunks.
NSSize scaleSize(NSSize aSize, float scale)
{
if(NSEqualSizes(aSize , NSZeroSize))
{
return NSZeroSize;
}
NSSize outputSize;
outputSize.width = (aSize.width * scale);
outputSize.height = (aSize.height * scale);
return outputSize;
}
NSRect rectWithSizeCenteredInRect(NSSize size, NSRect rect)
{
if(NSWidth(rect) < size.width || NSHeight(rect) < size.height)
{
if( size.height / size.width > NSHeight(rect) / NSWidth(rect))
{
size = scaleSize(size, NSHeight(rect) / size.height);
}
else
{
size = scaleSize(size, NSWidth(rect) / size.width);
}
}
float x = rect.origin.x + ((rect.size.width - size.width) / 2);
float y = rect.origin.y + ((rect.size.height - size.height) / 2);
return NSIntegralRect(NSMakeRect(x, y, size.width, size.height));
}
NSImage * imageScaledToSizeFromImage(NSSize size, NSImage * image)
{
NSRect scaledRect = rectWithSizeCenteredInRect([image size],
NSMakeRect(0, 0, size.width, size.height));
NSImage * scaledImage = [[NSImage alloc] initWithSize: scaledRect.size];
[scaledImage lockFocus];
[[NSGraphicsContext currentContext] setImageInterpolation: NSImageInterpolationHigh];
[scaledImage drawInRect: scaledRect
fromRect: NSZeroRect
operation: NSCompositeSourceOver
fraction: 1.0];
[scaledImage unlockFocus];
return [scaledImage autorelease];
}
Monday, September 24th, 2007
Here is a source dump for version 1.5. This is effectively 1.5.1 as the localizations have been added as well. 1.5 Source