From mboxrd@z Thu Jan 1 00:00:00 1970 From: Karl Voit Subject: Implementing Org-mode tools in languages other than ELISP (was: Converting org-mode/org-contacts to VCard (importing to Android)) Date: Sun, 24 Nov 2013 14:06:06 +0100 Message-ID: <2013-11-24T13-29-07@devnull.Karl-Voit.at> References: <2013-11-22T17-28-29@devnull.Karl-Voit.at> <3414130.xOGDSAomuL@descartes> <2013-11-22T17-57-08@devnull.Karl-Voit.at> <81482742.cUeHUGJmrV@descartes> Reply-To: news1142@Karl-Voit.at Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:35829) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VkZOP-0000pa-7I for emacs-orgmode@gnu.org; Sun, 24 Nov 2013 08:06:34 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1VkZOK-0003jV-9j for emacs-orgmode@gnu.org; Sun, 24 Nov 2013 08:06:29 -0500 Received: from plane.gmane.org ([80.91.229.3]:39023) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VkZOJ-0003jQ-Ul for emacs-orgmode@gnu.org; Sun, 24 Nov 2013 08:06:24 -0500 Received: from list by plane.gmane.org with local (Exim 4.69) (envelope-from ) id 1VkZOI-0006sl-Aw for emacs-orgmode@gnu.org; Sun, 24 Nov 2013 14:06:22 +0100 Received: from mail.michael-prokop.at ([88.198.6.110]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Sun, 24 Nov 2013 14:06:22 +0100 Received: from news1142 by mail.michael-prokop.at with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Sun, 24 Nov 2013 14:06:22 +0100 List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: emacs-orgmode@gnu.org Executive summary of this rather long email: I am aware that ELISP is the language of choice for Org-mode features/tools. Here, I describe my motivation behind using Python instead. * RĂ¼diger Sonderfeld wrote: > On Friday 22 November 2013 18:09:42 Karl Voit wrote: > > Org-contacts has an :ICON: property and supports Gravatar. It doesn't seem to > be handled in the VCard export though. :ICON:, I see. Thanks. >> You see: I want to have ways to tweak the export process. And as >> long as I don't know ELISP that well, I stick to the tools I know. > > I understand that and it solved your problem for now. Exactly. > But having an external tool in a different programming language is > usually not a good idea to solve the problem in the long run. The > code base of org-contacts and your tool is under the risk of > diverting quickly. If it's in org-contacts then it is maintained > in one piece and easily accessible to other users. Don't worry: I totally agree. :-) > So my point is you should take a look at elisp. It's a lot of fun > to use and if you are using org-mode and Emacs then you will have > to learn it sooner or later. I tried but I could not get a decent progress to implement the features I want to use. It is a rather high learning effort. I am not only referring to ELISP as a language. The basics are not that hard to learn. However, the more important part is to get into the existing libraries and their feature-set. For me, I could not get into it or I am not patient any more :-) It might be laziness or my brain might not be compatible with the world of functional programming languages. Therefore, I develop all my Org-mode tools with Python which I am comfortably with. I have done various things and put it on http://github.com/novoid I agree that implementing this stuff in ELISP would have been better for the community. However, as long as I don't have an ELISP code-monkey that implements my ideas and wishes, I have to stick to Python which is doing well to me and I don't have to invest a couple of weeks/months of not being that productive. You don't have to forget that I am not a programmer - I am an advanced user who is tweaking his personal set-up in a small sub-set of his spare time. If the features of my tools are implemented in Org-mode as well, I feel happy about it. I don't want to write "please add this highly sophisticated feature to Org-mode"-messages on the ML and wait for somebody to implement it. I can do it on my own (in Python) and I am able to do it the way I need/want and I am able to *use* it right away. Works for me. Additionally, I would never be able to implement Memacs (see sig) without the help of several students of mine. And here is the next thing: I could get several students with Python-knowledge and no one(!) with (E)LISP knowledge. Sad but true. I have the feeling that ELISP knowledge is found only at a small set of experts. Therefore: I did it in Python and I am aware that this is not the best thing to do. However, if somebody finds my stuff handy, she/he can grab it from github. If somebody re-implements it in ELISP, I am fine as well. It is even "worse" than that: I totally insist on writing a complete stand-alone blog system which parses my Org-mode files and generates (static) HTML5: https://github.com/novoid/lazyblorg Bam! Worst case scenario! :-) I tried to get other people infected with my thoughts [1] on a IMHO perfect blog system. So far, it seems that everybody is happy with the blog generating systems we do have now. When I stick to my current development velocity of lazyblorg, it will be finished right for the Christmas season ... of 2014 ;-) > I have to admit the org-contacts format is pretty much ad-hoc and > not really well designed. It is documented a bit in the file > itself (contrib/lisp/contacts.el). M-x customize-group RET > org-contacts RET should also tell you more about the options. Thanks for the pointer. However, I consider my template a bit more elaborated since I want to differ things like, e.g., mobile phone, work phone, land-line phone, and so forth. > Your format choice is not fully compatible with the existing > org-contacts. Right now multiple entries are separated by space > (which sadly breaks for addresses) and different entry names are > used. > > However I'd look forward to some new ideas and improvements. > Right now it's not ideal solution. I am glad to help here as well if my help is needed. The current examples in org-contacts.el were not able to suit my personal requirements. Therefore, I did my own definitions. In future, I will derive my complete mailserver whitelist directly from my Org-mode contacts and more. 1. http://article.gmane.org/gmane.emacs.orgmode/49747/ -- mail|git|SVN|photos|postings|SMS|phonecalls|RSS|CSV|XML to Org-mode: > get Memacs from https://github.com/novoid/Memacs < https://github.com/novoid/extract_pdf_annotations_to_orgmode + more on github