You can update Journler by selecting the Check for Updates from the Journler menu.
Journler 2.6 is a compatibility upgrade. The goal is to produce an application with the same feature set as the current release which will continue to be viable for a number of years on recent and new versions of the Mac OS. There will be no new features, but there should be many fixes.
The final release of Journler 2.6 is still quite some time away, but the application is in beta and beta updates should come regularly. If you have automatic update enabled in the application you will receive updates as they become available. I recommend that Snow Leopard and Lion users switch to the 2.6 version even though it is still in beta.
I have a prepared a Journler 2.6 FAQ (Frequently Asked Questions) when I strongly recommend you read before downloading the 2.6 beta.
Fixing bugs and getting help
Although I am not taking feature requests for this update I will be fixing bugs! Old bugs, new bugs, Mac OS compatibility bugs. If it’s broke, I’d like to fix it. I need your help to get this done. If you encounter bugs in the 2.6 update, either features that have been broken on new versions of the Mac OS for some time, or bugs which I introduce as I modify the code, please let me know. I have set up a Contacts page for bug reporting and will be publicly tracking the issues and development.
This Contacts page is also available for support related issues, but I ask that you please read the Journler 2.6 FAQ before submitting a report request. Emails can quickly get out of hand, as I’m sure you know.
Once more, The Journler 2.6 FAQ (Frequently Asked Questions)
For bug reports and support, Submit a Contacts Email
To keep up with the issues and development, check out the Public Tracking Page and choose the Journler project at the top right.
Open source Journler
With Journler 2.6, official Sprouted development on the application will end. As also promised in February I will be open sourcing the complete Journler code base and releasing it to the public. I will very likely do this before the 2.6 release is complete.
Nevertheless, there is still quite some work to do before I am comfortable releasing the source. Journler is a huge project. For the developers out there: I am undertaking a massive refactoring of the Journler code, replacing hundreds of calls to deprecated Mac OS APIs and switching to Objective-C 2.0 syntax. I’d like the bulk of this work to be completed before I release the code. The effort is already well under way. (1000+ lines of code deleted after switching to fast enumeration. Eep!)
And the download
And, finally, on to the download. You may download Journler 2.6 Beta 1 for Mac OS 10.6 Snow Leopard and Mac OS 10.7 Lion at the Downloads page.]]>
This is a significant decision for me, and one which did not occur spontaneously. It follows two others which naturally led to it. The first involves a new application I’ll be releasing in the coming weeks and the second involves Journler.
Per Se: New Journaling Software for the Mac.
For the past couple of months I’ve been working on a new journaling application. Unhappy with the current crop, including Journler, I decided to get back to basics. Per Se is the outcome.
Per Se is dead gorgeous, dead simple journaling software. The goal is to provide the most enjoyable journaling experience possible. To that end Per Se focuses on design and usability, emulating as closely as possible what every writer is already familiar with: the handwritten journal.
Per Se looks and feels like a real journal, as much as a digital version will allow it. No panes, no divided interface, tabs, columns or extraneous windows demanding your attention. No flipping through dates and creating entries. No dead white screen staring back at you. Instead it’s you and your journal, two open pages ready for the writing.
Of course Per Se is more that just writing. Here Per Se takes its cue from Journler. Add anything to your journal and Per Se knows what to do with it. Embed media and files of any kind and view them right in your journal. Or if you’re in the mood make a quick video or audio entry, right in Per Se.
As befits a good journaling application, Per Se features custom page layout for your media. No blocky images occupying the entire line this time. Place the media wherever you like and Per Se wraps the text around it, no matter how complex the layout. Just how you’d do it in a real journal.
Although Per Se is not for information management, you still need to find your entries. Per Se includes a luscious calendar for selecting dates, super fast searching, bookmarks and everyone’s favorite: tags. None of these features are obtrusive, but they are all readily available and fade right into place when you need them.
Per Se is also fun. Journaling should be enjoyable. Embellish your entries with the included icons and images or add your own. Take zany polaroid snapshots of you and your friends. Add attention grabbing notes. And print it all out just the way it looks on your screen.
Under the hood I’ve endeavored to learn from my mistakes with Journler. Per Se is built on the newest and greatest core Mac OS technologies at every turn. The data and file management is rock solid and everywhere else the code is lightweight. Per Se does a lot with a small footprint. Additionally, you’ll be able to create as many journals as you like and store your data anywhere you want.
I also hope to have learned from my business mistakes with Journler. I will be charging for Per Se from the outset. There will also be a renewed emphasis on customer support and email response time. With Per Se, Sprouted becomes a business, not just a full time hobby, and I aim to treat it like one.
Per Se will be available for public beta testing in the coming weeks. If you’d like to know more about this great app or would like to get your hands on it for early testing, have a look at the Per Se page over at the new Sprouted website. You can sign up for beta testing at the bottom of the page.
Open Sourcing Journler for Leopard
I have also been pondering the decision I made over a year ago to end Journler. I wasn’t happy with the decision then, and I’m still not. The abrupt move left many thousands of users stranded. It also failed to give me closure on an application I was dedicated to for so long.
Since that announcement I have received a number of inquires regarding the possible sale of Journler. I pursued few of these solicitations seriously. I was uncomfortable selling the application, despite wanting it to continue.
I’ve finally decide to open source Journler 100%. Some of Journler has already been open sourced but the aim over the next few months is to release all of the code into the public domain. If you’re interested in helping with this effort, see the Sprouted Developers page.
I do this reluctantly. Quite frankly the code is a mess, and it’s a personal embarrassment to make that work available to scrutinizing developers more capable than myself three years ago. Nevertheless, I believe it’s the best decision and the best opportunity for closure. In a sense I am freeing Journler from myself and releasing it to anyone who’d like it. It also paves the way for future development.
At the same time I will be modifying the code so that Journler continues to work on newer versions of the Mac OS. Many people still use the application every day, and I’d like to ensure they have the option of continuing to do so. Journler for Leopard will come. It may take a number of months, but it’ll get there.
All of this is an effort to restart Sprouted. As part of that endeavor everything related to Journler will be moving to the Sprouted website in the coming months. I will be winding down the forums during this time and will eventually discontinue the Journler webpage.
In the next few days I will also be closing the Journler forum to new user registrations in an effort to get a handle on the debacle of spam which has overrun it.
To new beginnings.
It was over four years ago while I was living in Austria that I began working on Journler. I had recently broken up with my girlfriend and had waxed nostalgic about our relationship on my blog. A post inadvertently offended her. The event deeply upset me and I forswore blogging, but I still wanted to write in a digital format. I researched the available private journaling software for the Mac and wasn’t pleased with the options, so I decided to try my hand at creating one of my own.
Those of you who have been with Journler so long will recall the breakneck pace at which early development took place. At the time I was a teaching assistant in the Austrian school system. I worked twelve hours to a week and was able to dedicate a great deal of time to the program. I reckon I worked more than forty hours a week on Journler for a couple of years even as I held my regular job. It was as though teaching were a hobby and programming my work.
I did not charge for Journler. My teaching position, though requiring so few hours of my day, paid quite well, and I did not need the money. I was just excited to be writing a program and to be sharing it with others. I was excited to receive thanks and suggestions and to know that the program was useful to so many. I was excited to see a community flourishing around an application I had envisioned and executed. And I was an active member of that community, regularly contributing to the forum, fielding questions and posting updates. I accepted only donations for the work, not of the monetary kind, but books and movies.
Journler grew. It was a feature download at Apple. Macworld gave it an excellent review and it was discussed in a number of US and international publications. The program was translated into five or six languages. The user base grew exponentially, almost all of it by word of mouth. I participated in Google Adwords for a short time but otherwise I never advertised. Folks loved Journler and told their friends, family and colleagues.
I attribute the downfall of Journler to its success. As the number of users grew so too did the problems. In response to feature requests the program’s code became exceedingly complex. Bloat crept in. The volume of emails increased to a level I was not able to manage. The forum exploded with activity and I was no longer able to read let alone address every post. The support requirements were becoming too much. I would spend hours helping a user with damaged data. It would take me days to track down an esoteric bug a single user was experiencing which I could not reproduce. I could easily spend all my time on support alone. I needed to hire extra help but was in something of a bind. I was still not charging for the application. I had in fact promised that I would never charge for Journler. But as my job ended I broke that promise and began explicitly to request that users purchase the program.
For the past two years I have struggled to live on those volunteer purchases while working on the next major iteration of the program. I have made enough to live a relatively frugal life but never enough to hire help, and even after I had decided to take the next step and begin charging for Journler, I couldn’t do it without releasing the next major upgrade in which I would implement the shareware lock and so enforce the licensing policy. Help wouldn’t come until I reached that point, but I needed help to get there. I have not been able to figure out a way out of this problem. The difficulties have overwhelmed and depressed me. Consequently everything about the application has suffered, in turn re-enforcing those difficulties. Something had to change.
Emotionally I have been exhausted for many months now, but only in the last few months have I reached a financial breaking point. I am no longer able to live on income from Journler. Purchases have fallen below a sustainable level. I have borrowed from friends and family to keep going and have still not made enough progress. Were I a business I would be on the verge of declaring bankruptcy. I had hoped to push through, recently announcing that I would open source a substantial portion of Journler’s code. It is now apparent to me that I am not able to continue with that effort.
Unhappily I must announce that I am ending work on Journler, effective immediately. All development has ceased. I will not be releasing any further updates, and it is unlikely I will release updates to the already open sourced segments of the code.
I will continue to support Journler users indefinitely, that is, I do not have a timeframe for ending that support, although I imagine it will come eventually. I have hundreds of unanswered emails many of them months old to address as well as a still active online community with which to work. In fact, all of my Journler related energy will be focused here. I will make time as I am able, necessarily working around the regular employment which I am now in search of.
I would like to thank everyone who has been involved in Journler for the past four years, especially a number of unnamed individuals who contributed more than their fare share: translators, web masters, apple script geniuses, designers, editors, nanotechnologists, beta testers, friends, family and the many volunteers who took to the forums to help others in my absence. Journler has an awesome community of users and that has certainly brought the most pleasure to my work. There are tens of thousands of you. I never thought something like that could be possible. Thank you.
Finally, I would like to hold out a last hope that Journler will continue in one form or another. If you or someone you know may be interested in picking up Journler where I have left off, please contact me. I would love to see Journler once again thrive in the hands of a capable developer or team.
Sprouted, Journler, 2005-2009
Journler 2.5.4 beta is the pre-release version of Journler’s next incremental update. Journler 2.5.4 includes a number of changes, but most important for early Leopard adopters, it ensures compatibility with the new OS.
Although 2.5.4 is still in the beta stage, it is strongly advised that Leopard users update their copies of Journler. The current version of Journler sports a number of compatibility issues which 2.5.4 addresses. Of course, Mac OS Tigers users may update to the beta as well, but it is not necessary.
Download Journler 2.5.4 beta
Please note that it may be necessary to reset your password with this update. You’ll find the instructions at the Journler wiki: Resetting your Password. All beta users should enable auto-updating in Journler’s preferences and monitor the beta forum for announcements.
Journler Drops Support For Blogging
I have decided to drop blogging from Journler. I originally added blogging because it was a popular request, but I have never been able to fully realize the feature. Rather than continue to support a half-finished product which I feel reflects poorly on the overall quality of Journler, I chose to remove it. If you are a prolific or even causal blogger you will need to use another program such as MarsEdit or Ecto for that portion of your journaling.
Journler 2.5.4 is the Last Donationware Version of Journler
I intend to release the final version of Journler 2.5.4 by November 15th. This will be the last version of Journler to use donations or the dual license system. Slated for release in two to three months, Journler 2.6 will include a number of major improvements and fully take advantage of the new Leopard features. It will require a full license for all uses.
I have not come to this decision lightly. While there are many reasons why I have chosen to stop offering Journler as donationware, two stand out. First, Journler has grown too big. I am no longer capable of single handedly managing a project of this size. I require assistance and additional expertise, and both come at a price.
Second, I have come to the conclusion that the donationware model is not sustainable. Software development is what I do for a living, and while I have had some financial success, this is the second month I will not break even since Journler 2.5 was released. Software development is a cyclical business, I understand that, but I must be able to pay the bills consistently. And if I’m going to take on additional help, I’ll certainly need a steady income.
The pricing structure for Journler 2.6 will be announced at a later date. In the meantime, enjoy the 2.5.4 beta if you’re on Leopard, and keep an eye out for the final version in mid November if you’re not.]]>
Download Journler 2.5.3 here
I have reached the bi-weekly bandwidth limit on my .Mac account and the spigot has been turned off. External access to the account has been suspended until the 16th. Because I host the Journler download on my .Mac account, direct links to the Journler download from any number of sites are not working. Up until about five minutes ago the auto-update feature was also not working.
It blows my mind that I can move 125GB of a 9.8MB download in two weeks, but it is the case. I guess that’s a good thing! A maxed out .Mac account offers 250GB of monthly bandwidth, roughly 26,000 Journler downloads, but it is split into two periods for the month. The one begins on the 1st and the other on the 16th. If you surpass half the total during the first period, as I have, the download stream is disabled until the start of the second. This isn’t terrible. My account is still active, I just have to wait until the 16th for downloads to resume.
Until then I have implemented a temporary workaround. I am now hosting the Journler download from journler.com itself. If you tried to auto-updated earlier today and it did not work, give it another go. If you are looking to download Journler directly, you may use this direct download link instead. Sites which insist on having a hard link to a fixed location, such as VersionTracker and MacUpdate, will not work with the Journler download until the 16th.]]>
v2.5.3 is a maintenance release for the 2.5 series and is a recommend update for all Journler users. v2.5.3 features numerous improvements and a lot of behind the scenes work, including:
If you are updating Journler using the direct link provided above, follow these steps to install the new version:
Be sure to check out the Journler Forums if you have any questions or run into any problems with the update. Enjoy!]]>
I wanted a simple, friendly GUI to a database of thoughts and ideas that was also a writing tool; in essence an easily searched, easily edited journal that would allow me to attach images and other media. I wanted this note manager/snippet collector to be scriptable (what else, coming from the editor of these pages?). I didn’t need a powerful (and expensive) database manager like DEVONThink; but I did want an elegant, inexpensive ($25, fully-functional demo), middle-of-the-road application for storing virtually anything and recovering it with a simple search from either its user interface or from a script.
Adam found Journler to be the right tool for the job and recommends MacScripter readers to give it a try. Adam also points to MacScripter’s Journler category as a repository for Journler Apple Scripts and suggests that interested users have a look at Journler’s own AppleScript and Automator forum. Check out enough of the posts there and you’ll stumble across Adam’s own extensive contributions made under the username NovaScotian. Be sure to say hi!]]>
Alongside Journler I am working on Lex. Lex picks up where Journler leaves off. If Journler is “entry based information” then Lex is project based documents. Journler was originally designed for journaling your life. Although the program benefits from recent features seen more commonly in information managers, Journler is not one by its nature. Lex is, and where Journler runs a single database, Lex is databases plural so that you can split projects up and deal with the relevant data in distinct groupings.
Development has, however, taken longer than expected. In a post two months ago I said I would need four weeks to produce a working version. It was a naïve enthusiasm. The coding itself isn’t so much the problem. My style is. I go about my work in an erratic way, jumping between features to see if they are all possible. I have reached a point where, although I am confident everything can be done, I am lost in a maze of half accomplished ideas.
“Iterative” software development refers to a process which moves forward in short, repeated, independent phases. The steps involved in the development of a complete product — requirements analysis, design, coding, testing, and documentation — are compacted and micro-applied to every change made over a product’s lifetime. With each completed change an improved, fully functioning product is ready for release, even if it is not actually delivered.
I have decided to apply this approach to Lex. It is an opportunity to discipline my practice and ideally produce a better product faster. Hoping to add to iterative design theory, I will be adapting the process to fit the needs of this project. Rather than applying the iterative method to small changes built into the project as a single system, I am partitioning Lex into self contained, feature specific “proxy applications” and applying the iterative process there. The goal is to produce independent, fully functioning applications out of the many features that Lex brings together.
The Proxy Application
I am calling them proxy applications because during development they stand in for the corresponding features actually built into Lex. This differs from prototyping. I will not be developing models that demonstrate or test an idea. Instead, the process should produce applications, feature complete though highly focused on a single task. By isolating a subset of Lex’s functionality into a separate application, the proxy allows me to analyze, design, code and test that subset independent of every other. While one proxy undergoes real world testing I’ll be able to work on others without interfering with the first, and vice versa.
Lex is an extensible application from the ground up. Although I define the program’s core functionality at the outset, plugins are responsible for the actual implementation. Lex itself is tiny, a simple structure with hooks for the plugins. I believe that projects of this nature are especially suited to the use of proxy applications. Most of the proxies I have envisioned for Lex are simply wrappers for a feature expressed by one of the hooks.
Applying the Method to Lex
If this is all too abstract let me offer a concrete example. In addition to the regular and smart folders already familiar in Journler, Lex allows you to build spotlight folders which automatically collect documents on your computer. Support for executing this action is built into Lex, but the means by which you specify a folder’s criteria is implemented with plugins. This is the hook. Lex examines the document type targeted by the folder, e.g. PDF or Image, and loads the most appropriate plugin, permitting plugin developers to target files with custom metadata or taylor the existing set.
Spotlight folders concretely define one of Lex’s features. Following the proxy strategy, I isolate the relevant code and wrap it inside a proxy application. The proxy takes center stage during development. I do all my design, implementation, and testing on it. Furthermore, the proxy is a complete application in itself. In this case I’m calling it Smarts. As soon as Smarts reaches a mature stage I intend to release it as a standalone application. Real world testing will verify that the feature performs as expected, at which point I can integrate the code back into Lex itself.
Where It All Leads
From the user’s perspective it will look like I’m not working on Lex at all. Instead, you’ll see the release of a number of simple applications with strongly defined feature sets. But behind the scenes I am actually combining each verified proxy into a single, whole application: Lex. The method should allow me to establish the code for each feature more quickly as well as more efficiently test and debug it. Ideally, before a beta of Lex is even made available, most of its functionality will have been tested and verified. The end product is one of higher quality that is produced more efficiently.
That’s the hope. Lex has just become an experiment in software development. It’ll be interesting to see how this works out.]]>