From: Karl Voit <devnull@Karl-Voit.at>
To: emacs-orgmode@gnu.org
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 [thread overview]
Message-ID: <2013-11-24T13-29-07@devnull.Karl-Voit.at> (raw)
In-Reply-To: 81482742.cUeHUGJmrV@descartes
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 <ruediger@c-plusplus.de> 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
next prev parent reply other threads:[~2013-11-24 13:06 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-11-22 16:37 Converting org-mode/org-contacts to VCard (importing to Android) Karl Voit
2013-11-22 16:54 ` Rüdiger Sonderfeld
2013-11-22 17:09 ` Karl Voit
2013-11-23 0:00 ` Rüdiger Sonderfeld
2013-11-24 13:06 ` Karl Voit [this message]
2014-01-04 14:58 ` Implementing Org-mode tools in languages other than ELISP Bastien
2014-01-04 16:43 ` François Pinard
2014-01-05 16:43 ` Daniel Clemente
2014-01-06 10:44 ` Parsing Org-mode in Python (was: Implementing Org-mode tools in languages other than ELISP) Karl Voit
2014-01-07 2:33 ` Parsing Org-mode in Python François Pinard
2014-01-07 16:09 ` Brett Viren
2014-01-08 12:33 ` François Pinard
2014-01-08 15:42 ` Brett Viren
2014-01-08 16:11 ` François Pinard
2014-01-09 4:13 ` Daniel Clemente
2014-01-09 14:13 ` Brett Viren
2014-01-07 1:47 ` Implementing Org-mode tools in languages other than ELISP François Pinard
2013-11-23 8:36 ` Converting org-mode/org-contacts to VCard (importing to Android) Feng Shu
2013-11-23 8:29 ` Feng Shu
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.orgmode.org/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=2013-11-24T13-29-07@devnull.Karl-Voit.at \
--to=devnull@karl-voit.at \
--cc=emacs-orgmode@gnu.org \
--cc=news1142@Karl-Voit.at \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).