From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp12.migadu.com ([2001:41d0:2:bcc0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms0.migadu.com with LMTPS id 4NRlMPDX1WGBIwEAgWs5BA (envelope-from ) for ; Wed, 05 Jan 2022 18:40:00 +0100 Received: from aspmx1.migadu.com ([2001:41d0:2:bcc0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp12.migadu.com with LMTPS id KILxLPDX1WGCAwEAauVa8A (envelope-from ) for ; Wed, 05 Jan 2022 18:40:00 +0100 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id B1E613B00A for ; Wed, 5 Jan 2022 18:39:59 +0100 (CET) Received: from localhost ([::1]:59026 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1n5AGU-0002Be-Kv for larch@yhetil.org; Wed, 05 Jan 2022 12:39:58 -0500 Received: from eggs.gnu.org ([209.51.188.92]:57606) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1n5AFr-0002BW-HV for emacs-orgmode@gnu.org; Wed, 05 Jan 2022 12:39:19 -0500 Received: from wout4-smtp.messagingengine.com ([64.147.123.20]:45465) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1n5AFp-0002dH-DE for emacs-orgmode@gnu.org; Wed, 05 Jan 2022 12:39:19 -0500 Received: from compute6.internal (compute6.nyi.internal [10.202.2.46]) by mailout.west.internal (Postfix) with ESMTP id 28A073202056; Wed, 5 Jan 2022 12:39:14 -0500 (EST) Received: from mailfrontend2 ([10.202.2.163]) by compute6.internal (MEProxy); Wed, 05 Jan 2022 12:39:14 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=block-party.net; h=content-type:mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; s=fm2; bh=9 Cj60udf5IVeK+n8BdB09tM3Kz6iASE78bDEK1Ixj10=; b=f44JnFtlXF12xMJgs V3ZXlIevmCbyk9hw2lPhdFqM31dNG5rvOsxVaUoP3qIpnNZlIgXw0kIruVXdM9sq QGPzLPYWLd9FbHHhk+TGC7niszZW5k7NAZVJ1K69dCpT3wjuodH/3Te6oH//GM+l QS99t2eH1e0HCvUbLpwYxT0D1yBAkcZGgRInf3Vky7AufEFdfa8fY/fhWzHBNgFD jaMBg1WA2byphOBA2wK7muSiEo25duM6NXkJGjOo+qXNfJAqNw5DjVjNV+pg9N1F oQ4ikoTwgdCShwws20GXuS1qL/tPwvo75DwGF97h1QmkTjQ6uuNjhHLBMy5wEwKZ fO9fA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:content-type :date:from:in-reply-to:message-id:mime-version:references :subject:to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender :x-sasl-enc; s=fm1; bh=9Cj60udf5IVeK+n8BdB09tM3Kz6iASE78bDEK1Ixj 10=; b=kym8ZjCFD+h7Ug25NPWw6MXf0QZgJAnElhKxwXCtqe8WPyJItgQ4CXPQF kySBqgiLHlOBelzqCo7j8EtYPgCQKCVCeIfT0hPmhsz7fg5uKV5aKTcNU6LwOy5x 4/vbdpPEuOkMlY5mMGzTIZpitkpJ550Xda1vgonQ4LzIY6fq22Gsrf2QRUNlOh6k ZNrlBcw+22DnWQINbh6J0+8oqAt94rgPGMSG9V99jRL5b5XEVh7LjHKKs2YeBdtf CqWbxo14Z+EnvzMQXkiMiK0nn2n/8xiGdqfNivDYV4gBhMjQcd/jx3LzRzv9yypo JUqebOAMSTfTNnKZs18fUOKaFeeSA== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvuddrudefjedgudejucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne cujfgurheptggguffhjgffgffkfhfvofesthhqmhdthhdtjeenucfhrhhomhepffgrvhhi ugcuffihnhgvrhhmrghnuceovghmphgvrhhorhgurghlihessghlohgtkhdqphgrrhhthi drnhgvtheqnecuggftrfgrthhtvghrnhephfduuedtgfeihedutdevgeegieeihefhteek fffgheejveevvdfgjedtgfdtvdffnecuffhomhgrihhnpehgihhthhhusgdrtghomhdpjh huphihthgvrhdrohhrghdpohhrghhmohguvgdrohhrghenucevlhhushhtvghrufhiiigv pedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpegvmhhpvghrohhruggrlhhisegslhhotg hkqdhprghrthihrdhnvght X-ME-Proxy: Received: by mail.messagingengine.com (Postfix) with ESMTPA; Wed, 5 Jan 2022 12:39:12 -0500 (EST) Content-Type: text/plain; charset=utf-8 Mime-Version: 1.0 (Mac OS X Mail 15.0 \(3693.20.0.1.32\)) Subject: Re: Feedback on Emacs-Jupyter From: David Dynerman In-Reply-To: <87o84rkru0.fsf@gmail.com> Date: Wed, 5 Jan 2022 09:39:11 -0800 Content-Transfer-Encoding: quoted-printable Message-Id: <15302A63-FD67-4754-A32E-46EE40AD4076@block-party.net> References: <87o84rkru0.fsf@gmail.com> To: Nathaniel Nicandro X-Mailer: Apple Mail (2.3693.20.0.1.32) Received-SPF: pass client-ip=64.147.123.20; envelope-from=emperordali@block-party.net; helo=wout4-smtp.messagingengine.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-orgmode@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Org Mode List Errors-To: emacs-orgmode-bounces+larch=yhetil.org@gnu.org Sender: "Emacs-orgmode" X-Migadu-Flow: FLOW_IN X-Migadu-Country: US ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1641404400; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post:dkim-signature; bh=9Cj60udf5IVeK+n8BdB09tM3Kz6iASE78bDEK1Ixj10=; b=CDN236/H30ok4YJMf1BLhqelDVflRNDI0BbDZGjoHYuotfyeXZKLgvnpoNeAUe1XF8nqv5 qvW7vrEds6HGI9XXEak5daVCg5woZMGcQGWHQvDIY/WkVM4ahwqUu+O3c1eIw1f8UzAXii N3rqsZQ8zv+F4U+8+fRvYv8ORsAf79kCuyXnMSqkyMkUlfu5am2nELuCvowTwKjBa1vTgZ mKxIMIkUZXhL+8XXEj1PyW2QkKVqbkSp4o0/IOnOlVuychw7iQ3xkby0D7z6CnL+la2VDs volFBHpsJH7Tj6EO+pQgBcQHajV9/vfisO1Ff9BFw3QWZlrSQLwShl5ixxu/6Q== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1641404400; a=rsa-sha256; cv=none; b=VjLy/v50XRg1KfHwOKauDI/wYmc4E/0XFaX13SQShxDBMd8/276Zf8OCNUS6AsjO6gyAB7 WlgJWQyQrHUxU9Tupav2QDAJUvWUgHzziJyUSFyAcumPWuID3Iium2eT8yjRVMkiLQ9E5B FWAxqUlvO5MifStc99/KV2Rvn7tZlE/WlrjW9pYp/xu7VPa+imyp3mkwZTStydqZZNyQPK Y3CObQckPGr3XcT2WDOQve8F3QaInrpFANOJcj6L8oKskYQjUT+m7NEIcUCE/t92gpG2es nu3HUtP3M4T49O8aZpb/edm8HRBprgqBq7D7WejXeeL2+6OLciD42lVAlBcBJg== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=pass header.d=block-party.net header.s=fm2 header.b=f44JnFtl; dkim=pass header.d=messagingengine.com header.s=fm1 header.b=kym8ZjCF; dmarc=none; spf=pass (aspmx1.migadu.com: domain of "emacs-orgmode-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="emacs-orgmode-bounces+larch=yhetil.org@gnu.org" X-Migadu-Spam-Score: -8.10 Authentication-Results: aspmx1.migadu.com; dkim=pass header.d=block-party.net header.s=fm2 header.b=f44JnFtl; dkim=pass header.d=messagingengine.com header.s=fm1 header.b=kym8ZjCF; dmarc=none; spf=pass (aspmx1.migadu.com: domain of "emacs-orgmode-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="emacs-orgmode-bounces+larch=yhetil.org@gnu.org" X-Migadu-Queue-Id: B1E613B00A X-Spam-Score: -8.10 X-Migadu-Scanner: scn0.migadu.com X-TUID: kNSktGlmSH21 Dear Nathaniel, Let me echo others=E2=80=99 comments by saying how much I appreciate = your work on emacs-jupyter. I use the package daily in my work and = it=E2=80=99s been really fantastic. Thank you very, very much for your = huge efforts and time investment in creating and maintaining this = package. emacs-jupyter has proved so useful that I=E2=80=99ve been collecting a = list of suggested improvements - I was actually intending on trying to = contribute some of these myself, but I think it would be good to discuss = first with you and other users of emacs-jupyter (is there an = emacs-jupyter mailing list or preferred venue?). For now I=E2=80=99ll = just share what I think would be the biggest improvement for my use = case. I use emacs-jupyter to connect from my laptop to remote jupyter kernels = and notebook servers running on powerful machines provided by my = employer. I work in a notebook locally on my laptop, but execute code = blocks remotely. I specify a single remote jupyter notebook = server+kernel to connect to in a #+PROPERTY line at the top of my org = file which globally sets header-args for jupyter-python to include the = correct :session argument. For me, the biggest improvements would be addressing some pain points = with disconnecting/reconnecting to the jupyter notebook server or = kernel. I don=E2=80=99t have technical suggestions yet on how these = could be addressed, so I=E2=80=99ll just describe the user experience = side of things. 1) Reconnecting to the notebook server after disconnecting. Commonly = I=E2=80=99ll work in my notebook, then take a break and close my laptop = or disconnect from my work VPN. When I re-open my laptop/reconnect to = VPN it seems like the connections to the remote notebook server are in a = bad state (this may be a tramp thing, also). Currently my work around is = to kill the associated emacs jupyter REPL buffer, then navigate to one = of the source blocks in the notebook and run org-babel-pop-to-session = which has the side-effect of re-connecting to the jupyter notebook = server and recreating the jupyter REPL buffer.=20 The main downside to this workaround is that the scroll back history of = the REPL buffer is lost, since the buffer was killed. It would be great = to be able to re-establish the connection to the REPL without discarding = the buffer. 2) Getting results from a running block after = disconnecting/reconnecting. Currently it=E2=80=99s difficult to manage = long-running code blocks using emacs-jupyter if I disconnect from the = remote server while the code block is running. The work around in #1 = above to re-connect to a remote kernel doesn=E2=80=99t work if the = kernel is still executing a block. If the kernel has completed executing = the block, then the results are not populated back into the notebook = (the execution UUID populated when the code block began executing = remains). I don=E2=80=99t know much about jupyter, but I saw some jupyter logs = about buffered messages. Perhaps jupyter buffers output when a remote = client disconnects? If so, maybe this buffered output could be replayed = in a notebook when the emacs jupyter REPL connection is re-established? 3) Similarly, improving feedback from a long-running block would be very = helpful. Currently you can use print statements in a long running block = to report progress, but these are lost after disconnecting (maybe they = are buffered on the jupyter server side and could be replayed on = reconnect?). Further, I don=E2=80=99t know if this is feasible, but it = would be amazing to have support for progress bars for long-running = tasks (e.g., have a tqdm progress bar render in the org notebook). Thanks again for the wonderful package - I hope we can talk a bit more = about some of these friction points. I=E2=80=99d be happy to give a = crack at contributing a PR, if that would be welcome. Thank you, David > On Jan 4, 2022, at 15:24, Nathaniel Nicandro = wrote: >=20 >=20 > Hello all, >=20 > I'm the maintainer of the emacs-jupyter project > (https://github.com/nnicandro/emacs-jupyter) which essentially > integrates Jupyter kernels (https://jupyter.org) with Org mode source > blocks. >=20 > I wanted to make an introduction to the Org community. So...hello! = And > thanks for promoting the project on https://orgmode.org/features.html. >=20 > I believe a lot of users of the project use it mainly for the Org > integration. I thought it would be a good idea to get some feedback > from the community on how their experience using emacs-jupyter has = been. > I'm getting back into active maintenance of the project and am looking > for feedback to get a better idea of what the future of the project > could look like. What features of standard Org source blocks do you > find Jupyter source blocks are lacking? What potential features do = you > think would be useful for Jupyter source blocks to support, given the > capabilities of Jupyter? What would it mean to see Emacs-Jupyter and > Org more integrated? Of course, any other thoughts are welcome. >=20 > --=20 > Nathaniel >=20