The Journler open source project
Objective-C HTML C Other
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
English.lproj
ID3.framework
Journler QuickLook.qlgenerator/Contents
Journler.xcodeproj
JournlerCMI.plugin/Contents
JournlerMetadataImporter.mdimporter/Contents
LAME.framework
LAMEEncoder.component/Contents
Pantomime.framework
Save PDF to Journler.app/Contents
Sparkle.framework
SproutedAVI.framework
SproutedInterface.framework
SproutedUtilities.framework
da.lproj
de.lproj
iMediaBrowser.framework
relaunch.app/Contents
.gitignore
2.6 Changelog.rtf
2.6 Notes.rtf
ActivityViewer.h
ActivityViewer.m
AddressPanelController.h
AddressPanelController.m
AddressRecordController.h
AddressRecordController.m
AttachmentTransformer.h
AttachmentTransformer.m
AudioViewController.h
AudioViewController.m
AutoCorrectArrayController.h
AutoCorrectArrayController.m
AutoCorrectWordPair.h
AutoCorrectWordPair.m
BlogAccountCell.h
BlogAccountCell.m
BlogPref.h
BlogPref.m
BloggedTransformer.h
BloggedTransformer.m
BrowseTableFieldEditor.h
BrowseTableFieldEditor.m
BulkImportController.h
BulkImportController.m
CHEmbeddedMediaQuicklookObject.h
CHEmbeddedMediaQuicklookObject.m
Calendar.h
Calendar.m
CalendarButtonCell.h
CalendarButtonCell.m
CalendarController.h
CalendarController.m
CategoriesTableView.h
CategoriesTableView.m
Collection.icns
CollectionsSourceList.h
CollectionsSourceList.m
ConsoleController.h
ConsoleController.m
ContentBevel_Bottom.tif
ContentBevel_Sides.tif
ContentBevel_Top.tif
DateSelectionController.h
DateSelectionController.m
DatesController.h
DatesController.m
Debug_Macros.h
DefaultMediabarAction.rtf
Definitions.h
DropBox.icns
DropBoxDialog.h
DropBoxDialog.m
DropBoxFoldersController.h
DropBoxFoldersController.m
DropBoxHUDWindow.h
DropBoxHUDWindow.m
DropBoxSourceList.h
DropBoxSourceList.m
DropBoxTable.h
DropBoxTable.m
EntriesController.h
EntriesController.m
EntriesTableView.h
EntriesTableView.m
Entry.icns
EntryCellController.h
EntryCellController.m
EntryChecked.png
EntryDrag.tif
EntryExportController.h
EntryExportController.m
EntryFilterController.h
EntryFilterController.m
EntryFullScreenController.h
EntryFullScreenController.m
EntryInfoController.h
EntryInfoController.m
EntryTabController.h
EntryTabController.m
EntryWindowController.h
EntryWindowController.m
ExportJournalController.h
ExportJournalController.m
FastForward.tif
FiltersArrayController.h
FiltersArrayController.m
FlaggedTransformer.h
FlaggedTransformer.m
FloatingEntryWindowController.h
FloatingEntryWindowController.m
FolderBookmarks.png
FolderDocuments.png
FolderImages.png
FolderInfoController.h
FolderInfoController.m
FolderMovies.png
FolderMusic.png
FolderPDFs.png
FolderRegular.png
FolderSmart.png
FolderTrash.png
FolderWebarchives.png
FolderWorktoolDisabled.tif
FolderWorktoolEnabled.tif
FolderWorktoolPressed.tif
FoldersController.h
FoldersController.m
FooterHandle.tif
FullScreenController.h
FullScreenController.m
FullScreenWindow.h
FullScreenWindow.m
GenericMediaController.h
GenericMediaController.m
GetMailSelection.scpt
GetMailSelectionPathDictionaries.scpt
HUDCloseButton.tiff
HideResourcesDisabled.png
HideResourcesEnabled.png
HideResourcesPressed.png
ImageTextAndRankCell.h
ImageTextAndRankCell.m
ImageViewController.h
ImageViewController.m
ImportReviewController.h
ImportReviewController.m
ImportReviewSourceList.h
ImportReviewSourceList.m
ImportReviewTable.h
ImportReviewTable.m
IndexArrayController.h
IndexArrayController.m
IndexBrowser.h
IndexBrowser.m
IndexColumn.h
IndexColumn.m
IndexColumnView.h
IndexColumnView.m
IndexImageAndTextCell.h
IndexImageAndTextCell.m
IndexLetterView.h
IndexLetterView.m
IndexNode.h
IndexNode.m
IndexOutlineScrollView.h
IndexOutlineScrollView.m
IndexOutlineView.h
IndexOutlineView.m
IndexSearchField.h
IndexSearchField.m
IndexServerPDFView.h
IndexServerPDFView.m
IndexServerTextView.h
IndexServerTextView.m
IndexTextCell.h
IndexTextCell.m
IndexTreeController.h
IndexTreeController.m
IndividualLabelView.h
IndividualLabelView.m
Info copy.plist
Info.plist
InfoTip.tif
IntelligentCollectionController.h
IntelligentCollectionController.m
JADUID.icns
JRLRBulkImport.h
JRLRBulkImport.m
JournalCollection.xml
JournalFullScreenController.h
JournalFullScreenController.m
JournalLocked.png
JournalPList.xml
JournalTabController.h
JournalTabController.m
JournalUpgradeController.h
JournalUpgradeController.m
JournalWindowController.h
JournalWindowController.m
Journler.icns
JournlerAddressBookWindow.h
JournlerAddressBookWindow.m
JournlerApplication.h
JournlerApplication.m
JournlerApplicationDelegate.h
JournlerApplicationDelegate.m
JournlerCollection.h
JournlerCollection.m
JournlerCondition.h
JournlerCondition.m
JournlerConditionController.h
JournlerConditionController.m
JournlerEntry.h
JournlerEntry.m
JournlerEntryTest.h
JournlerEntryTest.m
JournlerFNSubscribeFileWatcher.h
JournlerFNSubscribeFileWatcher.m
JournlerFileWatcher.h
JournlerFileWatcher.m
JournlerIndexServer.h
JournlerIndexServer.m
JournlerJournal.h
JournlerJournal.m
JournlerKQueue.h
JournlerKQueue.m
JournlerLicenseManager.h
JournlerLicenseManager.m
JournlerMainThreadProxy.h
JournlerMainThreadProxy.m
JournlerMediaContentController.h
JournlerMediaContentController.m
JournlerMediaViewer.h
JournlerMediaViewer.m
JournlerObject.h
JournlerObject.m
JournlerResource.h
JournlerResource.m
JournlerResourceMediaController.h
JournlerResourceMediaController.m
JournlerResourceTest.h
JournlerResourceTest.m
JournlerSearchManager.h
JournlerSearchManager.m
JournlerWeblogInterface.h
JournlerWeblogInterface.m
JournlerWindow.h
JournlerWindow.m
JournlerWindowController.h
JournlerWindowController.m
Journler_Prefix.pch
LCDBackground.png
LabelTransformer.h
LabelTransformer.m
LexiconFullScreenController.h
LexiconFullScreenController.m
LinksOnlyNSTextView.h
LinksOnlyNSTextView.m
LoadErrorReporter.h
LoadErrorReporter.m
Lock.tif
LockoutController.h
LockoutController.m
MP3AddScript.txt
MailMessageController.h
MailMessageController.m
Media Support Note.txt
MediaBarEquals.png
MissingFileController.h
MissingFileController.m
MonthAndYearCell.h
MonthAndYearCell.m
MovieViewController.h
MovieViewController.m
MultipleEntryInfoController.h
MultipleEntryInfoController.m
NFHUDFrame.h
NFHUDFrame.m
NFHUDWindow.h
NFHUDWindow.m
NFIFrame.h
NFIFrame.m
NFIWindow.h
NFIWindow.m
NSAlert+JournlerAdditions.h
NSAlert+JournlerAdditions.m
NSArray_JournlerAdditions.h
NSArray_JournlerAdditions.m
NSAttributedString+JournlerAdditions.h
NSAttributedString+JournlerAdditions.m
NSFrameView.h
NSGrayFrame.h
NSImage+FrameworkImage.h
NSImage+FrameworkImage.m
NSString+JournlerAdditions.h
NSString+JournlerAdditions.m
NSString+JournlerUtilities.h
NSString+JournlerUtilities.m
NSThemeFrame.h
NSTitledFrame.h
NSURL+JournlerAdditions.h
NSURL+JournlerAdditions.m
NewEntryController.h
NewEntryController.m
NewFolderDisabled.tif
NewFolderEnabled.tif
NewFolderPressed.tif
NewResourceFile.png
NewResourceMovie.png
OverBack.png
OverBackDisabled.png
OverBackPressed.png
OverForward.png
OverForwardDisabled.png
OverForwardPressed.png
PDAboutBoxController.h
PDAboutBoxController.m
PDBorderedFill.h
PDBorderedFill.m
PDCalendarButton.h
PDCalendarButton.m
PDCornerView.h
PDCornerView.m
PDDatePicker.h
PDDatePicker.m
PDExportableImageView.h
PDExportableImageView.m
PDFSelectionNode.h
PDFSelectionNode.m
PDPDFViewController.h
PDPDFViewController.m
PDPersonPropertyCell.h
PDPersonPropertyCell.m
PDPersonPropertyField.h
PDPersonPropertyField.m
PDPersonViewer.h
PDPersonViewer.m
PDSingletons.h
PDStylesBar.h
PDStylesBar.m
PDTableHeaderCell.h
PDTableHeaderCell.m
PageSetupController.h
PageSetupController.m
Point.tif
PointBlack.png
PointDarkGray.png
PointLightGray.png
PrefWindowController.h
PrefWindowController.m
PrintJournalController.h
PrintJournalController.m
QLPreviewPanel.h
QLPreviewView.h
QTInstallController.h
QTInstallController.m
QuickLinkArrayController.h
QuickLinkArrayController.m
QuickLinkController.h
QuickLinkController.m
QuickLinkTable.h
QuickLinkTable.m
README.md
ResourceCellController.h
ResourceCellController.m
ResourceController.h
ResourceController.m
ResourceInfoController.h
ResourceInfoController.m
ResourceInfoView.h
ResourceInfoView.m
ResourceNode.h
ResourceNode.m
ResourceTableView.h
ResourceTableView.m
ResourceWorktoolDisabled.tif
ResourceWorktoolEnabled.tif
ResourceWorktoolPressed.tif
Rewind.tif
ScriptMenu.png
SendEmailWithAttachments.scpt
SendToiWeb.scpt
ShowEntry.applescript
ShowResourcesDisabled.tif
ShowResourcesEnabled.tif
ShowResourcesPressed.tif
SmallAltDisclosure.tif
SmallDisclosure.tif
SmallEntryIcon.png
TabController.h
TabController.m
TakeSnapshot.png
TermIndexTab.h
TermIndexTab.m
TermIndexWindowController.h
TermIndexWindowController.m
TextAndPictures.png
TextDocumentController.h
TextDocumentController.m
TextOnly.png
ToolbarAudioVideo.tif
ToolbarItemAddressBook.tiff
ToolbarItemAdvanced.tiff
ToolbarItemAppearance.tif
ToolbarItemBack.png
ToolbarItemBackDisabled.png
ToolbarItemBackPressed.png
ToolbarItemBlockQuote.png
ToolbarItemBlog.tiff
ToolbarItemBrowser.png
ToolbarItemCalendar.tif
ToolbarItemCorrespondence.png
ToolbarItemDelete.tif
ToolbarItemDetails.tif
ToolbarItemDonations.tif
ToolbarItemEditing.tiff
ToolbarItemEmail.tif
ToolbarItemExport.png
ToolbarItemExport.tif
ToolbarItemFilter.tif
ToolbarItemFilterActive.tif
ToolbarItemFlag.tif
ToolbarItemFontsColors.tif
ToolbarItemForward.png
ToolbarItemForwardDisabled.png
ToolbarItemForwardPressed.png
ToolbarItemGeneralPreferences.png
ToolbarItemHeader.tif
ToolbarItemHighlight.png
ToolbarItemIPod.png
ToolbarItemInsertCheckbox.tif
ToolbarItemInsertDateTime.tif
ToolbarItemInsertLink.tif
ToolbarItemInsertList.tif
ToolbarItemInsertTable.tif
ToolbarItemLabels.icns
ToolbarItemLexicon.png
ToolbarItemLink.tif
ToolbarItemMediaPrefs.png
ToolbarItemNewEntry.tif
ToolbarItemNewFolder.png
ToolbarItemNewSmartFolder.png
ToolbarItemPhotos.tif
ToolbarItemPost.tif
ToolbarItemRecordAudio.png
ToolbarItemRecordVideo.png
ToolbarItemRuler.tif
ToolbarItemSecurity.tif
ToolbarItemSnapshot.png
ToolbarItemStopWords.tif
ToolbarItemSubscript.tif
ToolbarItemSuperscript.tif
ToolbarItemSynonyms.tif
ToolbarItemiLife.tiff
ToolbarItemiTunes.png
ToolbarItemiWeb.png
ToolbarLockout.tif
ToolbarNewTab.png
TrashCollection.xml
TrashLarge.tiff
TutorialGeneral.xml
UnknownFSObjectIcon.icns
UnknownFileLarge.png
VolumeMeter1.tif
VolumeMeter2.tif
VolumeMeter3.tif
VolumeMeterMute.tif
WebViewController.h
WebViewController.m
WhiteTriangleClosed.tif
WhiteTriangleOpen.tif
WordDocumentController.h
WordDocumentController.m
beginrecording.png
blogged.png
browseblogged.tif
browseheaderblogged.tif
cautionlarge.tif
checkboxchecked.tif
checkboxunchecked.tif
da.lproj.zip
de.lproj.zip
defaults.xml
dragBadge1.png
dragBadge2.png
dragBadge3.png
dropbox.aif
flagged.tif
folder.png
headerattachment.tiff
headerflagged.tif
headerlabel.png
hud_titlebar-close.tiff
iWebPlaceholder.png
journler.sdef
journler.sdef.zip
label.png
main.m
metering.png
pauserecording.png
photo_shutter.aiff
playlist.png
playrecording.png
poparrows.tif
safari.tif
smallwarning.tif
stoprecording.png
trash.tiff
vCard.tiff
worktool.tif

README.md

Readme

License

Journler Created by Philip Dow Copyright Philip Dow / Sprouted.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  • Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

  • Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

  • Neither the name of the author nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

3rd Party Open Source

Journler uses the following open source software, many of whose source files are contained within the Journler code base. The Journler open source license does not supersede any licenses imposed by the included 3rd party code. If you find unaccredited code or improperly used licenses, please let me know.

  • RBSplitView by Rainer Brockerhoff
  • LJKit by Benjamin Peter Ragheb
  • ID3 Framework by Chris Drew
  • XMLRPCCocoa by Brent Simmons
  • CURLHandle+extras by Dan Wood
  • The LAME encoder by the lame group at mp3dev.org
  • The LAME Framework and Quicktime Component by Lynn Pye
  • NDAlias by Nathan Day
  • KFAppleScript Additions by Ken Ferry
  • iMediaBrowser by Greg Hulands and the crew / Karelia
  • L0iPod by Emanuele Vulcano
  • CocoaSequenceGrabber by Tim Omernick
  • Sparkle framework by Andy Matuschak
  • Cool windows and other visual candy by Matt Gemmell
  • More cool windows and candy by Chad Weider
  • MUPhotoView by Blake Seely
  • The Pantomime framework by Ludovic Marcotte
  • UKKQueue by M. Uli Kusterer
  • GTResourceFork by Jonathan Grynspan
  • KBWordCountingTextStorage by Keith Blount

Sprouted Dependencies

  1. SproutedUtilities
  2. SproutedInterface
  3. SproutedAVI

Journler relies on a three additional frameworks from Sprouted. SproutedAVI handled's audio-visual input and is already available at github. The Utilities and Interface frameworks are forthcoming.

Initially I thought it wise to collect generic code used in Journler into these two separate frameworks to improve their re-usability. I no longer believe this was necessary, and a portion of the open sourcing effort includes the decomposition of these frameworks into their constituent parts and the re-incorporation of that code back into the main Journler project.

The issue is not so much that the code is kept separate. In fact I will likely continue to maintain separate repositories for re-usable code. The issue is that I combined this code into a framework, whereas I should have just grabbed the source files from the repository as I required them.

About Journler Open Source

This is the complete Xcode project for the Journler application, including source code, interface files and application resources, and it is the same code I am currently developing for the 2.6 Mac OS compatibility update . Compiling this project will produce an application identical to the current version of the publicly available 2.6b update. As I make improvements to the code I will push them to github so that this repository should reflect changes to the latest binaries.

The 2.6 compatibility update is a significant undertaking. In addition to the Journler code itself, I am also updating local frameworks on which the application is dependent as well as incorporating newer versions of other 3rd party code and frameworks. The update mostly consists of refactoring existing code and replacing deprecated API calls. To get an idea of just how much work is involved, simply compile the application and have a look at the warnings.

Moreover, the code is a mess, and much of it is four, five and even six years old, written before I had developed solid object-oriented coding practices. Object coupling is a problem, although the application does have clearly defined data and interface layers, and an overall hierarchy should become evident upon investigation of the code. I may try to produce a diagram detailing the relationships and spheres of influence for future development.

A word about the data layer: it was written in the days before Core Data. If all you've ever known is Core Data, welcome to the painful world of writing a quasi-relational database layer from scratch in a time before you even realized that's what you were doing.

Journler is not being open source for any specific reason. Although there is a hope that other developers may pick up the code and customize it for their own use or improve it for general use, I believe the significance of the application lies not so much in the implementation but in the idea. The code is mostly obsolete, and a much more efficient project could be begun from scratch to realize the Journler vision.