Archive for April, 2006


I’ve been looking for a great piece of software like this for awhile, and I finally stumbled upon it this morning. Sogudi is a great little tool that is the equivalent to Firefox keywords (from what I hear, I don’t use them, so I don’t know how similar they are). Basically, it just creates shortcuts for Safari, that you can set up yourself. So, I’ve got basic things like “blog” opening “”. However, you can add search terms as well, for example, I have “tag” open “”, where the three at-symbols are replaced by any text following the word tag. So, If I type “tag css” into my Safari location bar, it’ll pull up “”. It’s very dynamic, and has actually caused me to remove the bookmark bar from Safari all together. This, combined with, has completely revamped the way I store my bookmarks, to make a much faster and dynamic setup.

Design Award

Apple Design AwardStraight from the “Why-The-Hell-Not” Department, I just submitted Assignment Planner for an Apple Design Award. Hey, you never know, right?

IE Font Resizing

Real quick post… So I’m still working on the Kluznickian Calendar site, which means that (once again), this post will be about the hardships of working with Internet Explorer. It sucks. Anyways, the client wanted to be able to use his browser’s text size feature to be able to change the website font size. This is a feature that’s quite standard in browsers, and it’s helpful for the older folks who need larger font sizes. Well, all throughout the website’s CSS, I had fonts at sizes like ’14px’ and ’24px’. It made sense. However, IE won’t scale fonts that are sepecified like this. But, luckily, I ran across this blog post which explains the issue, and what must be done. Turns out, the font sizes have to be specified in the generic string terms, such as ‘medium’, ‘large’ and ‘xx-large’ in order for IE to scale them correctly. So, I set the base font for the whole website to ‘medium’, for the average viewer, allowing the font to be scaled up (or down) for those who would prefer to do so. I also added bigger fonts for titles and navigation by setting font sizes by percentage, such as ’90%’ (smaller than standard font) or ’150%’ (bigger). It works quite well, in IE, Firefox (Mac and PC) and Safari. Great little tidbit.

Filter Bar and CrashReporter

So, just a quick update on what I’ve been working on with Assignment Planner. Remember the filter bar that was suggested only about a week ago? Well, it’s been implemented now. I think it’s a great solution, and it looks really great. There are only two issues with it. First of all, it doesn’t have the same gradient as the iTunes or ones, just the generic lined background of any regular window. I tried getting this to work, but the gradient did screw up the background drawing. There’s more information about the issues here. I would like to get the gradient working, but if I end up going with the lined background, that’d be fine by me. Also, sometimes, the Types do not change colors when being hovered over. However, the courses always can. I have no idea why this would be, since they’re implemented with the exact same code, but something is up with that. Not the biggest problem, but something that would be nice to fix.

Oh, while I’m recapping the last post, I’ve been working with Bob to try to get the problem fixed.

We’ve slowly been getting there, and I’m confident that the problem will be solved before the release of version 2.3.

As a result of all of Bob’s crashing, I’ve decided to implement a nice little CrashReporter. So, say Assignment Planner crashes for whatever reason. The next time you open up the program, the CrashReporter will show up, looking much like Apple’s own crash window. However, this one will actually be sent to me, so I can do something about it. (just a small problem with Apple’s solution is that it doesn’t help developers at all) So, please, when the program crashes, just provide a small amount of information about what you were doing when the app crashed, and it will really help me to fix problems with the program. Also, I thought it was a great idea to have the CrashReporter automatically send me all of the user’s data, in case that is part of the problem. However, I do realize that this is a slight breach of privacy, and that some people might not want their data e-mailed straight to me. So, there is a nice little checkbox, and if for whatever reason, you’d rather I didn’t see all your Assignments, Courses, Textbooks, etc., just deselect it.

Anyways, just a small update. I don’t really what to include too many more features in the next update, so it shouldn’t be too long before it’s released.

Javascript and CSS Pop-Ups

Well, lately I’ve been in the mood to add pop-ups to websites, I guess. (As a quick introduction, not only to I program Cocoa, but I do a lot of HTML, CSS, JavaScript, PHP, etc. for web design.) One of my big accomplishments, as of late, is the design for this very blog. I really enjoyed using WordPress, as opposed to the original blog which was Blogger. WordPress is to blogs as PHPBB is to forums. Both of them are very great utilities, both of which I have used on my site. Enough digression… one of the features of this blog was the Archive and Categories pop-up menus, which I think are really cool and really help to minimize screen real-estate in addition to providing all of the information that anyone would ever want to find, with a simple button click.

But I’m not here to talk about the blog tonight. I want to talk about a friend’s website, discussing the Kluznickian Calendar, a “calendar reform” project which a friend of my father’s has designed. It’s basically an alternative to the current calendar, in order to remove odd discrepancies, like different lengths of months and leap years, stuff like that. It really is quite fascinating, and worth a read on the website. Kluznickian Calendar PopupAnyways, on the calendar on the main page, we wanted to simply abbreviate holidays and proposed holidays, in order to keep the basic calendar frame intact. However, when I initially designed the site about a year or two ago, I decided it would be a really cool idea to have the full name of the holiday appear when the user moved the mouse over the abbreviation. Makes sense, right? Well, I added in some hidden <span&rt;s, and a nice little a:hover css script. However, the client for whom I was designing the site for was never able to see these pop up words. I never was able to figure out why, and I let it drop. The only difference was that I was using Safari and Firefox on my Mac, while he used Internet Explorer.

Ahhh… IE… the bane of every web developers existence. If only Microsoft wasn’t full of such bastards. Standards are a great thing, and over in Redmond, they seem to completely ignore any standard in existence. Anyways, this was the problem with the popups, and it just wasn’t working. But today, I am a little older and a little wiser, and I actually have access to a Windows machine with IE where I can test out the site (thank you new job). So, lo and behold, I tried out the site, and the popups didn’t work. I was determined to find a solution that would.

And after some toying around, I realized that it was the exact a:hover trick that wouldn’t work. Making a <span&rt; (okay, I actually changed them into <div&rt;s, just because it made more sence) appear during hover just isn’t something that IE can comprehend. But I was able to utilize some Javascript to get a solution I wanted. It involves adding onMouseOver and onMouseOut actions to every link, in the form of a javascript, that changes the visibility of the <span&rt; to show and hide, respectively. IE quite enjoys this solution, and fortunately, the pop-ups will now work for everyone.

Here is the HTML for any given link…

<a class=proposedHolidays href="#" onMouseOver="javascript:showFullName
('WinterSolstice');" onMouseOut="javascript:hideFullName('WinterSolstic
e');">WS</a><div class="proposedHolidays" id="WinterSolstice">
Winter Solstice</div>
and here are my two very simple javascript functions…
function showFullName(spanName) {
  document.getElementById(spanName).style.visibility = 'visible';

function hideFullName(spanName) { document.getElementById(spanName).style.visibility = 'hidden'; }

A few issues with 2.2

So, with the release of Assignment Planner version 2.2, there have been a few issues and feature requests flowing in, and I just wanted to let everyone know about them.

The most crucial issue that was brought to my attention has to do with the Search textbox in the toolbar. Bob emailed me to let me know that he’s using the program as a general to-do list, and found that when he wanted to get rid of the Search textbook from the toolbar, the program would crash. Not a big deal, but it would be nice to get it fixed. I’ve found that it’s a problem with changing the label of the Search box. As you might have noticed, whenever you perform a search, the label changes from just “Search” to “5 found”, or however many items have been found. However, once the textbox was removed, the program still tried to change the label, which no longer existed, causing the program to crash. As for now, I will try to get the problem fixed, and will probably release it as version 2.2.1, along with any other issues that users report.

On the upside, I recieved an email from Gabriel, with quite a few great suggestions for new features. Amazingly enough, he used his great graphic designing skills to create some mockups about his ideas. His first idea involves adding a graphical calendar, with which the user can select the due date for the assignment. The image has Today highlighted in blue, and the current due date for the assignment highlighted in orange (kind of an arrested color, I think I might choose something different, but a great idea to have both dates identified none the less). This is a good idea, and something that I have Graphical Calendargiven some thought to before. I think that it would be the best to have a collapsable calendar, which would be triggered by a disclosure triangle (you know, the one from the Finder’s list view? yeah.. it has an official name… go figure…). A calendar would take up a lot of real estate, and so this way, it would stay hidden, unless the user actually wanted to see the calendar.

Gabriel’s second suggestion is one that I absolutely love, and want to add to th eprogram immediately. He suggested that, instead of the two pull-down menus to filter the assignments FilterBar shown, add a bar like the ones that appear when you search in iTunes or Mail. This is a great way to minimize the space involved in filtering the assignments. There are just two issues that I see here. The first, big issue is implementing the idea in the first place. This is not an item that Apple provides for Cocoa programming, and so I would have to put it together piece by piece. While that’s probably not too difficult for me to accomplish, it wouldn’t be ideal. The second problem just has to do with how many courses the user provides. If they have a ton of courses, this bar would not be able to present all of the courses, and I’m not sure yet what I would want to happen.

Anyways, just an update with the program and what features should be coming soon. Please feel free to leave a comment with how you feel about these issues. Thanks!

Assignment Planner 2.2

I just wanted to let everybody know that I’ve just today released version 2.2 of Assignment Planner. It isn’t a huge update, but it does contain a handful of small bug fixes and updates. The only major change is that the Preferences were completely rewritten, even though they might not look any different. I also added in Sparkle, a system that will automatically install updates to Assignment Planner when they’re available. Anyways, I hope you’ll check it out, and definitely let me know what you think once you use it.

Download :: 699kb

New Blog

Hello there. I’ve decided that I would like to maintain a blog about my experiences, mostly using Cocoa to develop applications. I guess I’ll just post some hints, fixes and other techniques that I find interesting, just in case anyone else would like to know. I’m not much for talking, but there we go. Let me know if you utilize anything mentioned here, or find any of it interesting. Thanks.

:: RSS Feed :: Archive :: Categories :: Admin