Re: [O] [RFC] Dog food, anyone?

2017-12-22 Thread Yasushi SHOJI
Hi Nicolas,

On Sun, Dec 17, 2017 at 7:34 PM, Nicolas Goaziou  wrote:
> The task started by Thomas S. Dye a couple years ago is now complete.
> The "manual.org" file in "contrib/" directory is an up-to-date,
> sometimes enhanced, version of the Org manual. Org can now eat its own
> dog food.

This is at great news!!

I remember a thread on the emacs-devel saying that texinfo html exporter doesn't
render as cute as the current standard (whatever that is).
But now we have the manual in org, and we can convert it to many format.

I just tried rst exporter, which I just happen to be using, and it works great,
with the following tiny patch. And the results is this.

http://org-manual.readthedocs.io/en/latest/

Info and orgmode.org/org.html is already super useful so this doesn't
gain much for me.  but someone might like the way it renders.

regards,
-- 
   yashi (now on to fix my own exporters ;-p)

--- ox-rst.el~ 2017-11-22 21:01:58.503667382 +0900
+++ ox-rst.el 2017-11-22 21:52:31.213331562 +0900
@@ -1086,7 +1086,7 @@
   ;; Protect ..
   (setq text (replace-regexp-in-string "^[\s-]*\\.\\. [^\\[]" ".. " text))
   ;; Protect ^\d+.
-  (setq text (replace-regexp-in-string "^\\([[:digit:]]\\)+\\." "\\1\\." text))
+  (setq text (replace-regexp-in-string "^\\([[:digit:]]\\)+\\."
"\\1." text))
   ;; Return value.
   text)



Re: [O] possible to store a link to a specific entry in the *texinfo* file?

2017-12-22 Thread Yasushi SHOJI
Hi,

On Wed, Dec 20, 2017 at 11:57 PM, Shiyao MA  wrote:
> Is it possible to specify an exact match?
>
>  [[info:elisp#define-minor-mode]] gives two potential matches.

Not that I know of.  The behavior is of Info-index and I don't think
it can do that.
Unless, of cause, you change the function to handle only the exact matches.

regards,
-- 
 yashi



Re: [O] make org-fill-paragraph stop fill list headlines.

2017-12-22 Thread Shiyao MA
Thanks.  that really helps.

best,

On Sat, Dec 23, 2017 at 2:08 AM, Nicolas Goaziou  wrote:
> Hello,
>
> Shiyao MA  writes:
>
>> given this:
>>

>> some text.
>> - a list node.
>>   some context.
>> <<
>>
>> after filling, it will be:

>> some text.
>> - a list node.  some context.
>> <<
>>
>> possible to stop the joining of the list headline (=a list node.=) and
>> the content (=some context=)?
>
> You can use line break:
>
> - a list node. \\
>   some context.
>
>
> Regards,
>
> --
> Nicolas Goaziou



-- 
Best,
Shiyao



Re: [O] Hope ob-js can support :session feature

2017-12-22 Thread Martin Alsinet
Hello,

I don't have a blog yet, it is in my list of new year's resolutions. I will
try to explain it here anyway, maybe it can serve as a draft for a blog
post.

When you hit *C-c* inside of a javascript source block, *ob-js* takes the
js code from the js block and saves it into a temp file (in linux the temp
file will be in saved /tmp/random-name, while in Mac OS X it will be saved
in /var/folders/random-name). Then, it uses *org-babel-eval* to execute the
js code, which in turn creates a temp buffer, inserts the contents of the
temp file into the temp buffer and uses *shell-command-on-region* to run
the js code with *node* as the executed command.

That is the reason why you must use absolute paths in the require, because
when the code runs it is no longer in the same directory of the org file,
but in a temporary folder. If you use require("./src/my-component.js"),
require won't find the js file because it is in another directory.

Let's try an example (if you want you can send me one of your examples and
I can modify it to use my approach)

First, I will define two functions to show an array of javascript objects
as an org-mode table:

#+BEGIN_SRC js :tangle src/table.js
function table_row(cells){
console.log("|" + cells.join("|") + "|");
}
function table(rows){
console.log("|---|");
table_row(Object.keys(rows[0]));
console.log("|---|");
rows.map(row => table_row(Object.keys(row).map(k => row[k])));
console.log("|---|");
}
module.exports = table;
#+END_SRC

Notice the :tangle src/table.js property, which I will use to require it in
a later block:

#+BEGIN_SRC js :results output raw drawer
var data = [ { day: 'SUNDAY', accidents: 3986 },
  { day: 'MONDAY', accidents: 6109 },
  { day: 'SATURDAY', accidents: 6274 },
  { day: 'WEDNESDAY', accidents: 6453 },
  { day: 'THURSDAY', accidents: 6546 },
  { day: 'TUESDAY', accidents: 6557 },
  { day: 'FRIDAY', accidents: 6916 } ];

// here you have to use the full path to the table.js file
var view_as_table = require("/app/src/table.js");

view_as_table(data);
#+END_SRC

Then I run *org-babel-tangle* to write the table.js file, and when I hit
*C-c* inside of this last block, it requires the tangled table.js file,
runs the function and we get the following results:

#+RESULTS:
:RESULTS:
|---+---|
| day   | accidents |
|---+---|
| SUNDAY|  3986 |
| MONDAY|  6109 |
| SATURDAY  |  6274 |
| WEDNESDAY |  6453 |
| THURSDAY  |  6546 |
| TUESDAY   |  6557 |
| FRIDAY|  6916 |
|---+---|
:END:

About the order of execution, if you used sessions in my example, you have
to run the first block (which defines the function) before running the
second (which uses it), or it would fail because the table function has not
been loaded.

Now imagine a very long document with dozens of source blocks. In order to
run the block number 23, you will have to run all the preceding blocks on
which that block depends. I don't like that, even if the document is meant
to be read sequentially, from start to finish, I want to be able to open
the org file, go to any section and running  any source code block without
having to remember the sequence of dependencies between them. Worst case,
all I have to do is run org-babel-tangle to update the tangled files. This
has also the added benefit that it forces me to structure my blocks
correctly, from a code architecture point of view.

I hope this makes it clearer for you.


Martin

On Fri, Dec 22, 2017 at 8:07 PM numbch...@gmail.com 
wrote:

>
> Can you describe how do you do this in detailed?
> Like:
> > but since I am using docker containers to run node, I always mount the
> current directory as a volume in /app inside the container, so that works
> out fine.
> > I also think that this way forces me to separate the code in modular
> blocks, which is already a good practice in itself.
> How to do this? About this: > With sessions you have to make sure to
> execute the blocks in the correct order to build the "state" that your
> current block needs.
> I think have to use `noweb` reference here.
> (If you have a blog article describe this whole JS literate programming
> setup, that will be useful.)
> Finally, thanks you provide this paradigm.
>
> [stardiviner] GPG key ID: 47C32433
> IRC(freeenode): stardiviner Twitter:  @numbchild
> Key fingerprint = 9BAA 92BC CDDD B9EF 3B36  CB99 B8C4 B8E5 47C3 2433
> Blog: http://stardiviner.github.io/
>
> On Sat, Dec 23, 2017 at 2:32 AM, Martin Alsinet 
> wrote:
>
>> Hello stardiviner,
>>
>> On Fri, Dec 22, 2017 at 6:57 AM stardiviner  wrote:
>>
>>>
>>> I wish to do JavaScript Literate Programming in Org-mode.
>>>
>>> So the :session header argument is very necessary.
>>>
>>>
>> I do Literate Programming in Javascript with Org-mode, and I have found a
>> workaround using a combination of tangled files and 

Re: [O] Hope ob-js can support :session feature

2017-12-22 Thread numbch...@gmail.com
Can you describe how do you do this in detailed?
Like:
> but since I am using docker containers to run node, I always mount the
current directory as a volume in /app inside the container, so that works
out fine.
> I also think that this way forces me to separate the code in modular
blocks, which is already a good practice in itself.
How to do this? About this: > With sessions you have to make sure to
execute the blocks in the correct order to build the "state" that your
current block needs.
I think have to use `noweb` reference here.
(If you have a blog article describe this whole JS literate programming
setup, that will be useful.)
Finally, thanks you provide this paradigm.

[stardiviner] GPG key ID: 47C32433
IRC(freeenode): stardiviner Twitter:  @numbchild
Key fingerprint = 9BAA 92BC CDDD B9EF 3B36  CB99 B8C4 B8E5 47C3 2433
Blog: http://stardiviner.github.io/

On Sat, Dec 23, 2017 at 2:32 AM, Martin Alsinet 
wrote:

> Hello stardiviner,
>
> On Fri, Dec 22, 2017 at 6:57 AM stardiviner  wrote:
>
>>
>> I wish to do JavaScript Literate Programming in Org-mode.
>>
>> So the :session header argument is very necessary.
>>
>>
> I do Literate Programming in Javascript with Org-mode, and I have found a
> workaround using a combination of tangled files and require.
>
> I separate the logic in source code blocks which then I tangle into js
> files and I require those js files in other source blocks.
>
> Example:
>
> #+BEGIN_SRC js :tangle src/parser.js
> const fs = require('fs');
> const parse = require('csv-parse')
>
> function columns(line){
> return line.map(s => s.toLowerCase());
> }
> parse_csv = function(filename, fn, limit){
> fs.readFile(filename, "utf8", function (err, fileData) {
> var opts = {columns: columns, trim: true};
> if (limit) {
> opts.to = limit;
> }
> parse(fileData, opts, (err, rows) => fn(rows));
> });
> }
> module.exports = parse_csv;
> #+END_SRC
>
> So, I tangle that source block into a js file, and then I can use it from
> other blocks, without needing sessions at all:
>
> #+BEGIN_SRC
> const parser = require("/app/src/parser.js");
> const inputFile = './data/records.csv';
> parse_csv(inputFile, console.log);
> #+END_SRC
>
> The only drawback is that you have to use absolute paths requiring the js
> files, but since I am using docker containers to run node, I always mount
> the current directory as a volume in /app inside the container, so that
> works out fine.
> I also think that this way forces me to separate the code in modular
> blocks, which is already a good practice in itself.
> With sessions you have to make sure to execute the blocks in the correct
> order to build the "state" that your current block needs.
> This way source blocks function as standalone units that can be run at any
> time, I just run *org-babel-tangle* and then hit *C-c *inside the js
> block.
>
> I hope that helps you.
>
>
> Martin
>


Re: [O] Bug: org-clock-total-time is calculated from midnight in UTC (not in current time zone) [9.1.4 (9.1.4-13-g84cb63-elpa @ /home/yantar92/.emacs.d/elpa/org-20171218/)]

2017-12-22 Thread Ihor Radchenko

(while (not yant/check-from-field-before-sending-bug-report)
   (insert "I will always check my From field before sending bug 
report.\n"))

P.S. Does anyone know how to set alternative default sending account for bug
reporting specifically?

Regards,
Ihor

Samuel Wales  writes:

> in friendly jest:
>
> On 12/21/17, Ihor Radchenko  wrote:
>> intended recipient, you are hereby notified that any use, dissemination,
>> distribution, or copying of this message, or any attachment, is strictly
>> prohibited. If you have received this email in error, please inform the
>
> all those people who read the archives have to send you email and
> delete the archives!
>
> that poor bot!  it is being told to send you email for each message!
> it is disseminating!  or maybe distributing!
>
> i'm gonna prohibit you from combing your hair for the next week!
> because you received this email!  i'll bet you think this email is
> about you!  don't you!  don't you!
>
> -- 
> The Kafka Pandemic: 
>
> The disease DOES progress. MANY people have died from it. And ANYBODY
> can get it at any time.
>
> "You’ve really gotta quit this and get moving, because this is murder
> by neglect." ---
> .
>

-- 
Ihor Radchenko,
PhD Student
Singapore University of Technology and Design,
8 Somapah Road Singapore 487372
Email: yanta...@gmail.com, ihor_radche...@mymail.sutd.edu.sg
Tel: +6584017977


signature.asc
Description: PGP signature


Re: [O] Canonical way to strip off all markup from an element in Org exporter backend?

2017-12-22 Thread Kaushal Modi
On Thu, Dec 21, 2017 at 9:22 AM Nicolas Goaziou 
wrote:

> (let ((no-thrill (lambda (o c _) (or c (org-element-property :value
> o)
>   (org-export-create-backend
>:parent 'ascii   ;or `hugo', depending on what you mean
>:transcoders (mapcar (lambda (type) (cons type no-thrill))
> '(bold code italic strike-through underline
> verbatim
>
> Five locs. Not bad either.
>

Thank you. That also looks a cleaner way to implement what I want.

You're basically describing `ox-ascii' with stripped emphasis markers.
>

Exactly. That's why I suggested extending ox-ascii from this "raw" backend.

At this point, I'm not convinced we need this in Org proper.
>

That's understood. No problem. The snippet you suggested above serves the
purpose very well for now.

Thanks!
-- 

Kaushal Modi


Re: [O] TIL about use of eval in user Org macros.. Documentation?

2017-12-22 Thread Samuel Wales
note that this feature overlaps babel:

head src_emacs-lisp[]{(shell-command-to-string "git rev-parse HEAD" )}\\
time {{{time(%F)}}}



Re: [O] wrong behavior of org-open-at-point with certain url.

2017-12-22 Thread Samuel Wales
maybe related or maybe not related, but i notice that a filled url
cannot be opened with RET.  it can be opened with c-c c-o.  an
unfilled url can be opened with RET.



Re: [O] Bug: org-clock-total-time is calculated from midnight in UTC (not in current time zone) [9.1.4 (9.1.4-13-g84cb63-elpa @ /home/yantar92/.emacs.d/elpa/org-20171218/)]

2017-12-22 Thread Samuel Wales
in friendly jest:

On 12/21/17, Ihor Radchenko  wrote:
> intended recipient, you are hereby notified that any use, dissemination,
> distribution, or copying of this message, or any attachment, is strictly
> prohibited. If you have received this email in error, please inform the

all those people who read the archives have to send you email and
delete the archives!

that poor bot!  it is being told to send you email for each message!
it is disseminating!  or maybe distributing!

i'm gonna prohibit you from combing your hair for the next week!
because you received this email!  i'll bet you think this email is
about you!  don't you!  don't you!

-- 
The Kafka Pandemic: 

The disease DOES progress. MANY people have died from it. And ANYBODY
can get it at any time.

"You’ve really gotta quit this and get moving, because this is murder
by neglect." ---
.



Re: [O] Bug: shiftmeta[left|right] on multi line items [9.1.2 (release_9.1.2-40-g6ca906 @ /usr/local/share/emacs/27.0.50/lisp/org/)]

2017-12-22 Thread Nicolas Goaziou
Hello,

Nathan Aclander  writes:

> Now I'm curious, do you have an example list where this would be
> obviously confusing and ambiguous?

* Headline 1

** Sub-headline

- Plain list

  - Sub-list

  - Sub-item

[X]


If the point is at [X], any headline, plain-list or item could claim
`M-S-'. This can be confusing if the surrounding structure is not
visible around point.

Regards,

-- 
Nicolas Goaziou0x80A93738



Re: [O] Hope ob-js can support :session feature

2017-12-22 Thread Martin Alsinet
Hello stardiviner,

On Fri, Dec 22, 2017 at 6:57 AM stardiviner  wrote:

>
> I wish to do JavaScript Literate Programming in Org-mode.
>
> So the :session header argument is very necessary.
>
>
I do Literate Programming in Javascript with Org-mode, and I have found a
workaround using a combination of tangled files and require.

I separate the logic in source code blocks which then I tangle into js
files and I require those js files in other source blocks.

Example:

#+BEGIN_SRC js :tangle src/parser.js
const fs = require('fs');
const parse = require('csv-parse')

function columns(line){
return line.map(s => s.toLowerCase());
}
parse_csv = function(filename, fn, limit){
fs.readFile(filename, "utf8", function (err, fileData) {
var opts = {columns: columns, trim: true};
if (limit) {
opts.to = limit;
}
parse(fileData, opts, (err, rows) => fn(rows));
});
}
module.exports = parse_csv;
#+END_SRC

So, I tangle that source block into a js file, and then I can use it from
other blocks, without needing sessions at all:

#+BEGIN_SRC
const parser = require("/app/src/parser.js");
const inputFile = './data/records.csv';
parse_csv(inputFile, console.log);
#+END_SRC

The only drawback is that you have to use absolute paths requiring the js
files, but since I am using docker containers to run node, I always mount
the current directory as a volume in /app inside the container, so that
works out fine.
I also think that this way forces me to separate the code in modular
blocks, which is already a good practice in itself.
With sessions you have to make sure to execute the blocks in the correct
order to build the "state" that your current block needs.
This way source blocks function as standalone units that can be run at any
time, I just run *org-babel-tangle* and then hit *C-c *inside the js block.

I hope that helps you.


Martin


Re: [O] [RFC] Dog food, anyone?

2017-12-22 Thread Nicolas Goaziou
Hello,

phillip.l...@russet.org.uk (Phillip Lord) writes:

> Oh, might even be trivial things. I mean, emacs.texi contains a "title"
> statement, but none of its include files do.

You need to export other files "body only".

> Also, cross references, I believe have to be unique within a file and
> all include files.

Org cannot ensure node name (if that's what you are talking about) are
unique across multiple files at the moment. You need to make sure there
are no headlines with the same name in two different files.

Regards,

-- 
Nicolas Goaziou



Re: [O] wrong behavior of org-open-at-point with certain url.

2017-12-22 Thread Nicolas Goaziou
Hello,

Shiyao MA  writes:

> Hi,
>
> For the given link, which is directly copied from chrome url bar,
> [[https://lwn.net/Articles/262464/#Quick Quiz 5]]
>
> org-open-at-point will open it as
> https://lwn.net/Articles/262464/%23Quick%20Quiz%205
>
> where as the correct url should be:
> https://lwn.net/Articles/262464/#Quick%20Quiz%205
>
> note that in the wrong one, # becomes %23.

FWIW, I cannot reproduce it.

Regards,

-- 
Nicolas Goaziou



Re: [O] Bug: org-clock-total-time is calculated from midnight in UTC (not in current time zone) [9.1.4 (9.1.4-13-g84cb63-elpa @ /home/yantar92/.emacs.d/elpa/org-20171218/)]

2017-12-22 Thread Nicolas Goaziou
Hello,

Allen Li  writes:

> On Thu, Dec 21, 2017 at 5:55 PM, Ihor Radchenko
>  wrote:
>>
>> org-clock-in in org-clock.el calculates org-clock-total-time via calling
>> (org-clock-sum-current-item (org-clock-get-sum-start)).
>> However, org-clock-get-sum-start returns the time in UTC, which is not
>> considered by org-clock-sum-current-time.
>>
>> My time zone if UTC+8 and org-clock-mode-line-total is 'today. Hence
>> org-clock-total-time is gives total time starting from 8am today (which
>> is midnight in UTC) instead of midnight in UTC+8.
>
> This sounds like a continuation of Org mode’s timezone issues.

Indeed. This is a leftover from timezone issues. I removed it.

Thank you.

Regards,

-- 
Nicolas Goaziou



Re: [O] make org-fill-paragraph stop fill list headlines.

2017-12-22 Thread Nicolas Goaziou
Hello,

Shiyao MA  writes:

> given this:
>
>>>
> some text.
> - a list node.
>   some context.
> <<
>
> after filling, it will be:
>>>
> some text.
> - a list node.  some context.
> <<
>
> possible to stop the joining of the list headline (=a list node.=) and
> the content (=some context=)?

You can use line break:

- a list node. \\
  some context.


Regards,

-- 
Nicolas Goaziou



[O] wrong behavior of org-open-at-point with certain url.

2017-12-22 Thread Shiyao MA
Hi,

For the given link, which is directly copied from chrome url bar,
[[https://lwn.net/Articles/262464/#Quick Quiz 5]]

org-open-at-point will open it as
https://lwn.net/Articles/262464/%23Quick%20Quiz%205

where as the correct url should be:
https://lwn.net/Articles/262464/#Quick%20Quiz%205

note that in the wrong one, # becomes %23.

Best,

-- 
Best,
Shiyao



[O] Hope ob-js can support :session feature

2017-12-22 Thread stardiviner

I know that ob-js "Session evaluation with node.js is not supported"

- [X] mozrepl (deprecated):
  "mozrepl" need package `moz'. https://github.com/bard/mozrepl/
- [X] node.js does not support :session

so might consider integrate indium https://github.com/NicolasPetton/Indium ?

I wish to do JavaScript Literate Programming in Org-mode.

So the :session header argument is very necessary.




[O] Some org-mode key interface popup buffers can't by managed by display-buffer-alist

2017-12-22 Thread stardiviner
I use following config, but does not work. How can I manage those popup 
buffers with display-buffer-alist?



   (add-to-list 'display-buffer-alist
 '("^\\*Org Agenda\\*" (display-buffer-same-window)))

   (add-to-list 'display-buffer-alist
 '("^\\*Clock Task Select\\*"
   (display-buffer-below-selected)))



Re: [O] Bug: Editing src blocks: user-error: Cannot modify an area being edited in a dedicated buffer [9.1.4 (9.1.4-2-g118753-elpaplus @ /home/paul/.emacs.d/elpa/org-plus-contrib-20171211/)]

2017-12-22 Thread stardiviner
@Paul Do you have similar config? I use it to enable flycheck in editing 
temp src buffer.



   (defadvice org-edit-src-code (around set-buffer-file-name activate
   compile)
  (let ((file-name (buffer-file-name)))
    ad-do-it
    (setq buffer-file-name file-name)))


On 12/22/2017 06:39 AM, Paul Davis wrote:


Turns out that the issue was caused by trying to disable a flycheck 
checker using the org edit src hook



On Mon, Dec 18, 2017, 6:30 AM Nicolas Goaziou > wrote:


Hello,

Paul Davis > writes:

> Using ~C-c '~ to edit a src block works as expected, but if I make
> changes and use ~C-c '~ again, I get the error ~Cannot modify an
area
> being edited in a dedicated buffer~

I need more information. Where do you make changes? In the newly
created
buffer? Where do you call ~C-c '~?

For example, I created the following buffer

    #+begin_src emacs-lisp
      (+ 1 2)
    #+end_src

moved on the source block, used C-c '. Then, in the new buffer,
I replaced 2 with 3 and pressed C-c ' again, without any error?

IOW, could you provide a precise recipe demonstrating the issue?

Thank you.

Regards,

--
Nicolas Goaziou





Re: [O] Bug: List does not fold correctly with inline tasks in the middle [9.1.4 (9.1.4-13-g84cb63-elpa @ /home/yantar92/.emacs.d/elpa/org-20171218/)]

2017-12-22 Thread Ihor Radchenko
I am dumb...
Forgot to load 'org-inlinetask


'Ihor Radchenko'  writes:

> 1. Create the following same org file:
> * Test
>   - blah
> - a
> - b
> - c
> *** List folding stops here
>  :PROPERTIES:
>  :ID:   27eb85b6-114f-437f-9424-b28d400f6aa9
>  :END:
> *** END
> - everything here and below folds on tab at =**...END=
> - f
>
> 2. Try to fold at =-blah=. Everything started from inline task is not
> folded, while should.
>
> 3. Try to fold at =*... END=. Everything below *is* folded, while should
> not.
>
> Regards,
> Ihor
>
>
> Emacs  : GNU Emacs 25.3.1 (x86_64-pc-linux-gnu, X toolkit)
>  of 2017-12-06
> Package: Org mode version 9.1.4 (9.1.4-13-g84cb63-elpa @ 
> /home/yantar92/.emacs.d/elpa/org-20171218/)
> -- 
> Ihor Radchenko,
> PhD Student
> Singapore University of Technology and Design,
> 8 Somapah Road Singapore 487372
> Email: yanta...@gmail.com, ihor_radche...@mymail.sutd.edu.sg
> Tel: +6584017977

-- 
Ihor Radchenko,
PhD Student
Singapore University of Technology and Design,
8 Somapah Road Singapore 487372
Email: yanta...@gmail.com, ihor_radche...@mymail.sutd.edu.sg
Tel: +6584017977


signature.asc
Description: PGP signature


[O] Bug: List does not fold correctly with inline tasks in the middle [9.1.4 (9.1.4-13-g84cb63-elpa @ /home/yantar92/.emacs.d/elpa/org-20171218/)]

2017-12-22 Thread 'Ihor Radchenko'

1. Create the following same org file:
* Test
  - blah
- a
- b
- c
*** List folding stops here
 :PROPERTIES:
 :ID:   27eb85b6-114f-437f-9424-b28d400f6aa9
 :END:
*** END
- everything here and below folds on tab at =**...END=
- f

2. Try to fold at =-blah=. Everything started from inline task is not
folded, while should.

3. Try to fold at =*... END=. Everything below *is* folded, while should
not.

Regards,
Ihor


Emacs  : GNU Emacs 25.3.1 (x86_64-pc-linux-gnu, X toolkit)
 of 2017-12-06
Package: Org mode version 9.1.4 (9.1.4-13-g84cb63-elpa @ 
/home/yantar92/.emacs.d/elpa/org-20171218/)
-- 
Ihor Radchenko,
PhD Student
Singapore University of Technology and Design,
8 Somapah Road Singapore 487372
Email: yanta...@gmail.com, ihor_radche...@mymail.sutd.edu.sg
Tel: +6584017977


signature.asc
Description: PGP signature