{"id":666,"date":"2010-04-27T21:58:23","date_gmt":"2010-04-28T04:58:23","guid":{"rendered":"http:\/\/www.graphics-muse.org\/wp\/?p=666"},"modified":"2010-04-27T22:00:31","modified_gmt":"2010-04-28T05:00:31","slug":"xnotesng-xnotesplus-never-dies-it-just-evolves","status":"publish","type":"post","link":"https:\/\/www.graphics-muse.org\/wp\/?p=666","title":{"rendered":"XNotesNG:  XNotesPlus never dies, it just evolves"},"content":{"rendered":"<p><font face=\"sans-serif\">Today I released a complete rewrite of XNotesPlus, which I&#39;ve renamed <b>XNotesNG<\/b>.&nbsp; This version was properly architected (well, mostly) and implemented in Java.&nbsp; Unlike other Java developers, I don&#39;t use IDEs like Eclipse or NetBeans.&nbsp; Instead, I rely on the tried and true tools of kernel developers:&nbsp; <a href=\"http:\/\/cscope.sourceforge.net\/\">cscope<\/a> and vi.&nbsp; It turns out cscope works quite well with Java. <\/p>\n<p>\tAnyway, despite not using Eclipse I did integrate an offshoot of Eclipse into the project: <a href=\"http:\/\/www.eclipse.org\/swt\/\">SWT<\/a>.&nbsp; This widget toolkit wraps a variety of platform specific toolkits which make Java apps appear more integrated with the desktop.&nbsp; In the case of XNotesNG I use the GTK+ version of SWT, though using Motif or Aqua should be nothing more than replacing the swt library with the appropriate version for those environments.&nbsp; Since I don&#39;t have a Mac (or Windows) box I didn&#39;t try other platforms.&nbsp; Not that it matters since I don&#39;t plan on supporting them.&nbsp; I&#39;m a Linux dude.<\/p>\n<p>\tSo XNotesNG is out there.&nbsp; It has the old notes functions, a todo manager, a calendar manager, and a category manager.&nbsp; It also has a plugin API that makes it possible to add third party applications.&nbsp; The plugin API is based on the Java Plugin Framework (JPF).&nbsp; It is not dynamic &#8211; you have to restart the application to pick up new plugins &#8211; though there is no reason this can&#39;t be fixed to by dynamic later.<\/p>\n<p>\tI&#39;ve always used this program to experiment with new technologies and ideas.&nbsp; I have lots of ideas now that I have the plugin API.&nbsp; One of the things I want to try is replacing the standard menu interface from the system tray with an iPhone-like graphical application chooser.&nbsp; That won&#39;t be a plugin, however.&nbsp; <\/p>\n<p>\tI also changed the license (MIT), setup a web site and blog (<a href=\"https:\/\/xnotesng.org\">xnotesng.org<\/a>), and started using <a href=\"https:\/\/sourceforge.net\/projects\/xnotesng\/\">Sourceforge<\/a> to manage release files, issue tracking and forums.&nbsp; I&#39;ve also packaged it in both RPM and .deb formats for various Linux distros.&nbsp; Announcements were posted to Sourceforge and Freshmeat.<\/p>\n<p>\t<\/font><font face=\"sans-serif\">So XNotesPlus goes on.&nbsp; Hopefully a few others will find it interesting and join in.&nbsp; If not, I&#39;ll keep doing it myself.&nbsp; I still get some satisfaction out of working on it.<\/font><br \/>\n\t&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Today I released a complete rewrite of XNotesPlus, which I&#39;ve renamed XNotesNG.&nbsp; This version was properly architected (well, mostly) and implemented in Java.&nbsp; Unlike other Java developers, I don&#39;t use IDEs like Eclipse or NetBeans.&nbsp; Instead, I rely on the tried and true tools of kernel developers:&nbsp; cscope and vi.&nbsp; It turns out cscope works [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"ngg_post_thumbnail":0,"jetpack_post_was_ever_published":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","enabled":false},"version":2}},"categories":[35,1,11,51,5,203],"tags":[330,328,623,635,329,327,619,326,57,331,82],"class_list":{"0":"post-666","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-fedora","7":"category-general","8":"category-gtk","9":"category-java","10":"category-linux","11":"category-swt","12":"tag-calendar-manager","13":"tag-cscope","14":"tag-gtk","15":"tag-java","16":"tag-java-plugin","17":"tag-jpf","18":"tag-linux","19":"tag-plugin-api","20":"tag-rpm","21":"tag-xnotesng","22":"tag-xnotesplus","23":"czr-hentry"},"jetpack_publicize_connections":[],"aioseo_notices":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/pe9t8-aK","jetpack_sharing_enabled":true,"jetpack-related-posts":[],"jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/www.graphics-muse.org\/wp\/index.php?rest_route=\/wp\/v2\/posts\/666","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.graphics-muse.org\/wp\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.graphics-muse.org\/wp\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.graphics-muse.org\/wp\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.graphics-muse.org\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=666"}],"version-history":[{"count":2,"href":"https:\/\/www.graphics-muse.org\/wp\/index.php?rest_route=\/wp\/v2\/posts\/666\/revisions"}],"predecessor-version":[{"id":668,"href":"https:\/\/www.graphics-muse.org\/wp\/index.php?rest_route=\/wp\/v2\/posts\/666\/revisions\/668"}],"wp:attachment":[{"href":"https:\/\/www.graphics-muse.org\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=666"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.graphics-muse.org\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=666"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.graphics-muse.org\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=666"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}