Monday, October 31, 2005

Avoiding work with more work that I was avoiding so I can avoid yet more work


I had originally intended to tackle audio recording for 4.0d4. I decided on that because I was avoiding the new blogging architecture, like I had been doing fairly successfully for much of 4.0 so far. I just hadn’t wrapped my head around it yet. But then I looked at audio recording and CoreAudio. CoreAudio is a deceivingly small API but there are loads upon loads of things that you have to do that aren’t readily apparent, which is annoying on several levels. In a happy world, the CoreAudio folks would provide a nice wrapper to do simple operations (like what I want to do) as sample code that I could compile right into MacJournal and we’d all be shiny. I guess this sort of exists, but it’s written in C++, which I dislike more than nonintuitive C APIs. So that’s out the window. I will probably end up using this third-party wrapper framework that I found on the interweb instead. So I’m avoiding that for now.


Instead, I went back to blogging (because I’m really avoiding .Mac syncing) and actually got quite a lot done. The groundwork is all there and rough UI is in place now. This will allow for one-click upload of an entry to a blog (properly configured). This also brings MetaWeblog and Atom support. The latter makes WordPress and TypePad a lot happier, while the former works well with Blogger right now (better than the antiquated API that bears their name could do, paradoxically enough). However, I’d like to minimize the importance of the protocols as much as possible though, if only for the reason that the Blogger API will no longer be the best one to use with Blogger. Over the weekend I put in some automatic configuration so you can just put the URL of your weblog and MacJournal will figure out all the surrounding details to best of its ability. There are loads of different blogging software packages out there, but I’m focusing on six for this release: Blogger, LiveJournal, WordPress, TypePad, Movable Type, and Blojsom. Blojsom makes it on the list just because Tiger Server installs it as the weblog software, so it makes sense to try and make that work as best as possible. Others will work just as well once you have them set up, but it will all depend on how nice the software is. The nice blogging sites have little tags that help offline clients like MacJournal to figure out what to do. In fact, of the six, WordPress is the only one that includes no such information. Boo for that. However, there are other ways I can figure out it is WordPress so it’s not such a big deal. It was a little disappointing though, given the fact that WordPress is the most popular right now.


If you’re in for a laugh, check out Xanga. That is some of the worst HTML I have ever seen. There are two body tags! Can someone explain this to me? Yowzers.


The problem is going to be testing all of these sites. I only have capabilities to test uploading to a few different kinds of blogs right now (Blogger, LiveJournal, WordPress), so I will need to work out some way to test the others before I can really feel comfortable that the auto-configuration is making the right decisions.


In terms of the next pre-release, I’m still deciding how much of this I want to be done before the next release. I will probably fall on the side of having a more complete implementation that’s closer to the final product rather than putting something out now. Depending on how things go the next release will probably be mid- to late-November.


Maybe then I’ll get back to audio recording.


Friday, October 14, 2005

MacJournal 4.0d3

Go here to download.

This is the third developmental release. This release provides a mix of new features and bug fixes from d2. An error dialog that some people were seeing while editing text should be fixed. In the realm of new features, new UI has been added for when you click on a journal, locked or otherwise. It should be a lot faster to come up for large journals and provides some new functionality (and looks pretty nifty in my opinion). You can now control encryption on the journal level: each journal can be told to encrypt its data when locked or not at all independent of the app-wide pref. You can also manually encrypt a locked journal independent of any persistent setting.

Changes in this release:
- Fixed some problems dragging around entries.
- Added toolbar item for viewing the current entry in a new window
- Added fancy new appearance for what you see when you click a locked journal, or when a journal is empty due to a search, or when you click an expanded journal.
- Added a per-journal setting for encryption and a way to manually encrypt any locked journal apart from persistent settings.
- Worked around a possible exception in AppKit (a.k.a. the OS) when editing text.
- Creating a new tab will create a new entry to put in that tab.
- Fixed the day names in the calendar for date formats like Hebrew.
- Added hidden pref StripFileExtensionWhenImportingFiles.
- Importing pictures will now respect the "Store attachments externally" preference.
- The calendar will no longer change selection when you activate the app by clicking on it. This matches table behavior and used to work but at some point it broke.
- When selecting a journal in the table, more of the inappropriate controls in the Inspector will be disabled (like annotation). More menu items will be disabled as well.
- Dragging an entry or journal onto a range of selected text will add a link to that item for that range.
- Added in-app viewing of the PDF help file thanks to PDFKit on TIger. Panther users will have to use Preview as before.

Keep in mind that this is developmental software: there are probably bugs lurking somewhere that could cause crashes and/or data loss. MacJournal 4 has a lot of new data being stored and I can't guarantee the future of that. I may need to change how it is stored and I can't guarantee that everything will work. That being said, it works pretty well for me in normal usage. You should definitely read the Version History to see what is new. Here are the top-tier things:

- New Inspector for manipulating attributes of entries and journals
- New per-object attributes
• background color
• label
• sorting
• entry template
• editable
- A real implementation of tabs
- Links, smileys, and words are recognized as you type now (not just when you save), including a live word count field.
- AppleScript support

But that's just the really top stuff; there is a lot of good stuff (not just bug fixes) in the Version History. It will do you well to read it. The Preferences as been reorganized and split up and will continue to change. I added a few new panes and I think there's one too many now. Expect to see lots of change there.

The good news with all the new data types (like labels and background colors) is that the recently released 3.2 supports them insofar as it won't discard them when saving the data. So you can add labels in 4.0, go back to 3.2 for a while, and when you come back to 4.0 the labels will still be there. The exception here is per-journal sorting: this was added after 3.2 was released and will be lost if you save your data with 3.2.

MacJournal no longer supports Jaguar. At this point, it might not support Panther either. Development is being done on Tiger and there might be some lurking bugs on Panther.

Special Note for Blogging: the blogging areas of the app are next on the list to be overhauled. Lots of functionality will be added, but for now they might work a little differently than in 3.2.

Reporting Bugs

This is a developmental release so things are still very much in flux. For that reason, reporting bugs isn't as important as normal. There are a lot of areas that are still changing a lot and will continue to change for some time. Some icons are temporary (such as non-editable entries) and will be replaced later. I would appreciate comments about the general direction of the changes though.

Wednesday, October 05, 2005

Time for MacJournal 4.0d2

Head here to download.

This is the second developmental release. I fixed up a lot of bugs from the first developmental release and added a few new features. The goal here is to provide a little more stability before ripping a bunch of other stuff up. I started a bit on the new blogging features but I'm still working that out mentally so there isn't anything different on the surface right now. A new window has been added for "Advanced Search." This is all done via Spotlight so the window will not be available on Panther. Right now there is only one field that searches everything (like the other search field) but I hope to add more fields for more of the data types (one for the topic, one for text, etc.) to make it truly more "advanced." However, it's pretty nifty already if you always wanted a separate, flat search listing.

Changes in this release:
- Added the aforementioned Advanced Search window
- Fixed up tabs a bit to hopefully resolve some of the problems people have been seeing
- Added new UUID links. There is a hidden preference to enable their creation. These links are both ugly and location-independent.
- Drag objects out of the drawers or search window into the entry text to add links to them.
- Select a bunch of items in the drawer and use Paste Ruler (along with previously available Paste Style)
- Added a disclosure triangle in the Stats window to hide the big Word Frequencies table.
- Added an Export button to the Welcome window if your trial period has expired so you can export any data out of the app.
- Added Bigger and Smaller menu items to the Text Zoom submenu.
- Lots of under the hood work, bug fixes, and appearance tweaks to things.

Keep in mind that this is developmental software: there are probably bugs lurking somewhere that could cause crashes and/or data loss. MacJournal 4 has a lot of new data being stored and I can't guarantee the future of that. I may need to change how it is stored and I can't guarantee that everything will work. That being said, it works pretty well for me in normal usage. You should definitely read the Version History to see what is new. Here are the top-tier things:

- New Inspector for manipulating attributes of entries and journals
- New per-object attributes
• background color
• label
• sorting
• entry template
• editable
- A real implementation of tabs
- Links, smileys, and words are recognized as you type now (not just when you save), including a live word count field.
- AppleScript support

But that's just the really top stuff; there is a lot of good stuff (not just bug fixes) in the Version History. It will do you well to read it. The Preferences as been reorganized and split up and will continue to change. I added a few new panes and I think there's one too many now. Expect to see lots of change there.

The good news with all the new data types (like labels and background colors) is that the recently released 3.2 supports them insofar as it won't discard them when saving the data. So you can add labels in 4.0, go back to 3.2 for a while, and when you come back to 4.0 the labels will still be there. The exception here is per-journal sorting: this was added after 3.2 was released and will be lost if you save your data with 3.2.

MacJournal no longer supports Jaguar. At this point, it might not support Panther either. Development is being done on Tiger and there might be some lurking bugs on Panther.

Special Note for Blogging: the blogging areas of the app are next on the list to be overhauled. Lots of functionality will be added, but for now they might work a little differently than in 3.2.

Reporting Bugs

This is a developmental release so things are still very much in flux. For that reason, reporting bugs isn't as important as normal. There are a lot of areas that are still changing a lot and will continue to change for some time. Some icons are temporary (such as non-editable entries) and will be replaced later. I would appreciate comments about the general direction of the changes though.

Monday, October 03, 2005

Blog spam is fun!

Yeah, I don’t know what is going with all the stupid comments in all of the posts. I imagine this one will collect a few spam comments as well. I don’t know if there’s anything I can do about it either. Stupid Blogger. ☺

On brighter news, 3.2.1 is almost out the door and I should be posting a new developmental build of 4.0 any day now. The focus of that is to fix a lot of the small bugs that blocked usability in d1. I can’t always promise that the 4.0 builds will be usable in an everyday situation until later in the process, but I’d like to get one out now before I tear things up again. Changes are in the normal spot.

On a completely developer-focused note, Objective-C is very fun to work with. That’s all; I just wanted to get that out there.

Back soon.