{"id":605,"date":"2025-03-02T15:04:00","date_gmt":"2025-03-02T14:04:00","guid":{"rendered":"https:\/\/noiseonthenet.space\/noise\/?p=605"},"modified":"2025-03-02T22:40:54","modified_gmt":"2025-03-02T21:40:54","slug":"posting-from-jupyter","status":"publish","type":"post","link":"https:\/\/noiseonthenet.space\/noise\/2025\/03\/posting-from-jupyter\/","title":{"rendered":"Posting From Jupyter"},"content":{"rendered":"<div id=\"orgb8592eb\" class=\"figure\"> <p><img data-recalc-dims=\"1\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/noiseonthenet.space\/noise\/wp-content\/uploads\/2025\/03\/retrosupply-jLwVAUtLOAQ-unsplash.jpg?ssl=1\" alt=\"retrosupply-jLwVAUtLOAQ-unsplash.jpg\" \/> <\/p> <\/div>\n\n<p> Photo by <a href=\"https:\/\/unsplash.com\/@retrosupply?utm_content=creditCopyText&amp;utm_medium=referral&amp;utm_source=unsplash\">RetroSupply<\/a> on <a href=\"https:\/\/unsplash.com\/photos\/vintage-teal-typewriter-beside-book-jLwVAUtLOAQ?utm_content=creditCopyText&amp;utm_medium=referral&amp;utm_source=unsplash\">Unsplash<\/a> <\/p>\n\n<p> This post contains a description of some tools I used my recent posts about data analysis introduction <\/p>\n\n<p> This is a very opinionated selection of tools which is based on my personal journey in the Open Source Software world <\/p>\n<div id=\"outline-container-org377f266\" class=\"outline-2\">\n<h2 id=\"org377f266\">Jupyter Lab<\/h2>\n<div class=\"outline-text-2\" id=\"text-org377f266\">\n<p> <a href=\"https:\/\/jupyterlab.readthedocs.io\/en\/latest\/\">Jupyter Lab<\/a> is a multi-language environment started as a python shell on steroids and evolved into a really cool tool. <\/p>\n\n<p> You can find more information about <a href=\"https:\/\/noiseonthenet.space\/noise\/2025\/01\/a-trip-to-jupyter-lab\/\">how to install and use it<\/a> as well as <a href=\"https:\/\/noiseonthenet.space\/noise\/2025\/02\/coming-back-down-to-earth\/\">transform a notebook into a stand-alone script<\/a>. <\/p>\n\n<p> Its interactivity makes it a go-to tools for data scientist and beginners but I find it also convenient to teach programming languages <\/p>\n\n<p> Other than python <a href=\"https:\/\/github.com\/jupyter\/jupyter\/wiki\/Jupyter-kernels\">dozen of progrmming languages<\/a> are supported. <\/p>\n\n<p> Markdown cells including Latex equations are available to comment the code; exports in many document formats too. <\/p>\n\n<p> Its ability to launch remote shells and dozen of integration tools (e.g. GIT) makes it the tool of choice for cloud prototyping in many of the greatest environments including Google and IBM <\/p>\n<\/div>\n<\/div>\n<div id=\"outline-container-org9e76620\" class=\"outline-2\">\n<h2 id=\"org9e76620\">Emacs and Org-Mode<\/h2>\n<div class=\"outline-text-2\" id=\"text-org9e76620\">\n<p> let&rsquo;s address with the elephant in the room. <\/p>\n\n<p> I&rsquo;ve been using <a href=\"https:\/\/www.gnu.org\/software\/emacs\/\">Emacs<\/a> since 1995; it is almost 30 years this piece of libre software is helping in my journey as a developer and content creator, also becoming my personal project tracking tool <\/p>\n\n<p> <a href=\"https:\/\/orgmode.org\/\">Org Mode<\/a> is one of the Emacs default extensions which enables rich structured notes taking, project management etc. all in plain text. One of its submodules called Org Babel is a has a lot of features in common with Jupyter Lab, but it is less popular nowadays because it has very little support outside of Emacs <\/p>\n\n<p> Org mode has a lot of extensions: one of my favorites is <a href=\"https:\/\/github.com\/org2blog\/org2blog\">org2blog<\/a> which allows me to transform an org-mode file into a WordPress post&#x2026; more on that below. <\/p>\n\n<p> That said I can&rsquo;t make without it &#x2013; it is not a tool I recommend to beginners, but is enabling my workflow in so many ways that Visual Studio Code still cannot do. Moreover is lighter than VSC, can run on a terminal and respects my privacy. <\/p>\n\n<p> Just for those who are interested, I&rsquo;m a <a href=\"https:\/\/github.com\/doomemacs\/doomemacs\">Doom Emacs<\/a> user (of course with vi keybindings) <\/p>\n<\/div>\n<\/div>\n<div id=\"outline-container-org47855a4\" class=\"outline-2\">\n<h2 id=\"org47855a4\">Pandoc<\/h2>\n<div class=\"outline-text-2\" id=\"text-org47855a4\">\n<p> <a href=\"https:\/\/pandoc.org\/\">this tool<\/a> is really great: it enables transforming between a lot of markdown languages! In this case it helps me bridging the gap between ipynb (notebook format) to org-mode; it works perfectly out of the box. <\/p>\n\n<p> A simple command like <\/p>\n\n<div class=\"org-src-container\">\n<label class=\"org-src-name\"><em><\/em><\/label>\n<pre class=\"src src-bash\" id=\"nil\">pandoc Part1.ipynb -f ipynb -t org -o Part1.org --extract-media=images\n<\/pre>\n<\/div>\n\n<p> already does what I need <\/p>\n\n<ul class=\"org-ul\">\n<li>converts the format<\/li>\n<li>extracts all the images in a directory<\/li>\n<li>creates the org-babel environments properly<\/li>\n<\/ul>\n\n<p> I just need to <\/p>\n\n<ul class=\"org-ul\">\n<li>clean up the content type of the org-babel environments (more details below)<\/li>\n<li>add the <code>org2blog<\/code> heading<\/li>\n<\/ul>\n\n<p> And I&rsquo;m good to go. <\/p>\n<\/div>\n<div id=\"outline-container-orge0f32cb\" class=\"outline-3\">\n<h3 id=\"orge0f32cb\">Edit Iterations<\/h3>\n<div class=\"outline-text-3\" id=\"text-orge0f32cb\">\n<p> What if I change something after publishing it with <code>org2blog<\/code> ? <\/p>\n\n<p> I need to <\/p>\n\n<ul class=\"org-ul\">\n<li>copy the generated heading in a different file<\/li>\n<li>copy the footer (generated when uploading images) in a different file<\/li>\n<li>extend the conversion command to look like this one<\/li>\n<\/ul>\n<div class=\"org-src-container\">\n<label class=\"org-src-name\"><em><\/em><\/label>\n<pre class=\"src src-bash\" id=\"nil\">pandoc Part_5.ipynb -f ipynb -t org --extract-media=images\/ -o Part_5.org -H Part_5_head.org -A Part_5_foot.org\n<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"outline-container-org4f5cbbb\" class=\"outline-3\">\n<h3 id=\"org4f5cbbb\">Exporting Latex from notebook<\/h3>\n<div class=\"outline-text-3\" id=\"text-org4f5cbbb\">\n<p> The only viable way to have formulae included is to have them embedded in the Markdown cell; the `%%latex` magic command does not work when translating the files in the org format <\/p>\n\n<p> Luckily Jupyter Lab markdown includes both inline formulae using pairs of <code>$<\/code> sign as delimiter and <code>\\begin{equation}<\/code> <code>\\end{equation}<\/code> environments <\/p>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"outline-container-orgab80fbc\" class=\"outline-2\">\n<h2 id=\"orgab80fbc\">WordPress and Org-Mode<\/h2>\n<div class=\"outline-text-2\" id=\"text-orgab80fbc\">\n<p> While I never chose <code>php<\/code> as a development language for my projects, WordPress remains one of the most convenient content management solutions out there <\/p>\n\n<ul class=\"org-ul\">\n<li>there is tons of cheap hosting<\/li>\n<li>also tons of plug-ins<\/li>\n<\/ul>\n\n<p> Org Mode has a <\/p>\n<\/div>\n<div id=\"outline-container-orgd34d1f0\" class=\"outline-4\">\n<h4 id=\"orgd34d1f0\">Fixing language<\/h4>\n<div class=\"outline-text-4\" id=\"text-orgd34d1f0\">\n<p> we need to clean up a little the result <\/p>\n\n<ul class=\"org-ul\">\n<li>all occurrences of <code>#+begin_src python<\/code> with <code>#+begin_src python :noeval :exports code<\/code> this will preserve examples in the markdown<\/li>\n<li>all occurrences of <code>jupyter-python<\/code> have to be translated as <code>python<\/code> in order to have them properly colorized<\/li>\n<li><p> add an header for <code>org-babel<\/code> execution: this will prevent <code>org2blog<\/code> reexecute all snippets unless you really want it <\/p>\n\n<em><\/em>\n<pre class=\"example\" id=\"nil\">\n#+PROPERTY: header-args:python :noeval\n<\/pre><\/li>\n<\/ul>\n\n<p> However you may want to execute your code into emacs anyway&#x2026; in this case: <\/p>\n\n<ul class=\"org-ul\">\n<li>create a virtual environment which contains all of the packages you want to execute<\/li>\n<li>set <code>python-shell-virtualenv-path<\/code> emacs variable to your virtual environment path<\/li>\n<li><p> add an header for <code>org-babel<\/code> execution: you may need to tweak your output to get the expected result <\/p>\n\n<em><\/em>\n<pre class=\"example\" id=\"nil\">\n#+PROPERTY: header-args:python :session *Python* :exports both :results table\n<\/pre><\/li>\n<li>some output may not fit in a table <code>#+begin_src python :results verbatim drawer<\/code><\/li>\n<li>execute <code>org-babel-execute-buffer<\/code> to get the actual result of export before <code>org2blog<\/code> does<\/li>\n<\/ul>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"outline-container-org4b52be1\" class=\"outline-2\">\n<h2 id=\"org4b52be1\">Unsplash, Gimp and optimizing images for publications<\/h2>\n<div class=\"outline-text-2\" id=\"text-org4b52be1\">\n<p> I like to have a splash image to be shared within social media: <a href=\"https:\/\/unsplash.com\/\">unsplash<\/a> is my go-to site for free quality images <\/p>\n\n<p> With <a href=\"https:\/\/www.gimp.org\/\">Gimp<\/a> I scale the image to a 1200px width and reduce the jpg quality to 20-30% this gives me a good image wich is not so big in size. <\/p>\n\n<p> There are many places on the Internet where you can find optimization for wordpress image: consider look for your case <\/p>\n<\/div>\n<\/div>\n<div id=\"outline-container-org1d039ed\" class=\"outline-2\">\n<h2 id=\"org1d039ed\">Conclusions<\/h2>\n<div class=\"outline-text-2\" id=\"text-org1d039ed\">\n<p> While this setup is not a good chioce for everyone I hope you can find some useful tip for your case. <\/p>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"A very opinionated open source toolkit to create post from python lessons","protected":false},"author":1,"featured_media":698,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"nf_dc_page":"","inline_featured_image":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[25],"tags":[7],"class_list":["post-605","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tools","tag-python"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Posting From Jupyter - Noise On The Net<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/noiseonthenet.space\/noise\/2025\/03\/posting-from-jupyter\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Posting From Jupyter - Noise On The Net\" \/>\n<meta property=\"og:description\" content=\"A very opinionated open source toolkit to create post from python lessons\" \/>\n<meta property=\"og:url\" content=\"https:\/\/noiseonthenet.space\/noise\/2025\/03\/posting-from-jupyter\/\" \/>\n<meta property=\"og:site_name\" content=\"Noise On The Net\" \/>\n<meta property=\"article:published_time\" content=\"2025-03-02T14:04:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-03-02T21:40:54+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/i0.wp.com\/noiseonthenet.space\/noise\/wp-content\/uploads\/2025\/03\/retrosupply-jLwVAUtLOAQ-unsplash.jpg?fit=1200%2C800&ssl=1\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"800\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"marco.p.v.vezzoli\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"marco.p.v.vezzoli\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/noiseonthenet.space\\\/noise\\\/2025\\\/03\\\/posting-from-jupyter\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/noiseonthenet.space\\\/noise\\\/2025\\\/03\\\/posting-from-jupyter\\\/\"},\"author\":{\"name\":\"marco.p.v.vezzoli\",\"@id\":\"https:\\\/\\\/noiseonthenet.space\\\/noise\\\/#\\\/schema\\\/person\\\/88c3a70f2b23480197bc61d6e1e2e982\"},\"headline\":\"Posting From Jupyter\",\"datePublished\":\"2025-03-02T14:04:00+00:00\",\"dateModified\":\"2025-03-02T21:40:54+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/noiseonthenet.space\\\/noise\\\/2025\\\/03\\\/posting-from-jupyter\\\/\"},\"wordCount\":819,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/noiseonthenet.space\\\/noise\\\/#\\\/schema\\\/person\\\/88c3a70f2b23480197bc61d6e1e2e982\"},\"image\":{\"@id\":\"https:\\\/\\\/noiseonthenet.space\\\/noise\\\/2025\\\/03\\\/posting-from-jupyter\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/i0.wp.com\\\/noiseonthenet.space\\\/noise\\\/wp-content\\\/uploads\\\/2025\\\/03\\\/retrosupply-jLwVAUtLOAQ-unsplash.jpg?fit=1200%2C800&ssl=1\",\"keywords\":[\"Python\"],\"articleSection\":[\"Tools\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/noiseonthenet.space\\\/noise\\\/2025\\\/03\\\/posting-from-jupyter\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/noiseonthenet.space\\\/noise\\\/2025\\\/03\\\/posting-from-jupyter\\\/\",\"url\":\"https:\\\/\\\/noiseonthenet.space\\\/noise\\\/2025\\\/03\\\/posting-from-jupyter\\\/\",\"name\":\"Posting From Jupyter - Noise On The Net\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/noiseonthenet.space\\\/noise\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/noiseonthenet.space\\\/noise\\\/2025\\\/03\\\/posting-from-jupyter\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/noiseonthenet.space\\\/noise\\\/2025\\\/03\\\/posting-from-jupyter\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/i0.wp.com\\\/noiseonthenet.space\\\/noise\\\/wp-content\\\/uploads\\\/2025\\\/03\\\/retrosupply-jLwVAUtLOAQ-unsplash.jpg?fit=1200%2C800&ssl=1\",\"datePublished\":\"2025-03-02T14:04:00+00:00\",\"dateModified\":\"2025-03-02T21:40:54+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/noiseonthenet.space\\\/noise\\\/2025\\\/03\\\/posting-from-jupyter\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/noiseonthenet.space\\\/noise\\\/2025\\\/03\\\/posting-from-jupyter\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/noiseonthenet.space\\\/noise\\\/2025\\\/03\\\/posting-from-jupyter\\\/#primaryimage\",\"url\":\"https:\\\/\\\/i0.wp.com\\\/noiseonthenet.space\\\/noise\\\/wp-content\\\/uploads\\\/2025\\\/03\\\/retrosupply-jLwVAUtLOAQ-unsplash.jpg?fit=1200%2C800&ssl=1\",\"contentUrl\":\"https:\\\/\\\/i0.wp.com\\\/noiseonthenet.space\\\/noise\\\/wp-content\\\/uploads\\\/2025\\\/03\\\/retrosupply-jLwVAUtLOAQ-unsplash.jpg?fit=1200%2C800&ssl=1\",\"width\":1200,\"height\":800},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/noiseonthenet.space\\\/noise\\\/2025\\\/03\\\/posting-from-jupyter\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/noiseonthenet.space\\\/noise\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Posting From Jupyter\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/noiseonthenet.space\\\/noise\\\/#website\",\"url\":\"https:\\\/\\\/noiseonthenet.space\\\/noise\\\/\",\"name\":\"Noise On The Net\",\"description\":\"Sharing adventures in code\",\"publisher\":{\"@id\":\"https:\\\/\\\/noiseonthenet.space\\\/noise\\\/#\\\/schema\\\/person\\\/88c3a70f2b23480197bc61d6e1e2e982\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/noiseonthenet.space\\\/noise\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/noiseonthenet.space\\\/noise\\\/#\\\/schema\\\/person\\\/88c3a70f2b23480197bc61d6e1e2e982\",\"name\":\"marco.p.v.vezzoli\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/b9d9aab1df560bc14d73b0b442198f196ce39e7c7a38df1dc22fec0b97f17da9?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/b9d9aab1df560bc14d73b0b442198f196ce39e7c7a38df1dc22fec0b97f17da9?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/b9d9aab1df560bc14d73b0b442198f196ce39e7c7a38df1dc22fec0b97f17da9?s=96&d=mm&r=g\",\"caption\":\"marco.p.v.vezzoli\"},\"logo\":{\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/b9d9aab1df560bc14d73b0b442198f196ce39e7c7a38df1dc22fec0b97f17da9?s=96&d=mm&r=g\"},\"description\":\"Self taught assembler programming at 11 on my C64 (1983). Never stopped since then -- always looking up for curious things in the software development, data science and AI. Linux and FOSS user since 1994. MSc in physics in 1996. Working in large semiconductor companies since 1997 (STM, Micron) developing analytics and full stack web infrastructures, microservices, ML solutions\",\"sameAs\":[\"https:\\\/\\\/noiseonthenet.space\\\/noise\\\/\",\"https:\\\/\\\/www.linkedin.com\\\/in\\\/marco-paolo-valerio-vezzoli-0663835\\\/\"],\"url\":\"https:\\\/\\\/noiseonthenet.space\\\/noise\\\/author\\\/marco-p-v-vezzoli\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Posting From Jupyter - Noise On The Net","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/noiseonthenet.space\/noise\/2025\/03\/posting-from-jupyter\/","og_locale":"en_US","og_type":"article","og_title":"Posting From Jupyter - Noise On The Net","og_description":"A very opinionated open source toolkit to create post from python lessons","og_url":"https:\/\/noiseonthenet.space\/noise\/2025\/03\/posting-from-jupyter\/","og_site_name":"Noise On The Net","article_published_time":"2025-03-02T14:04:00+00:00","article_modified_time":"2025-03-02T21:40:54+00:00","og_image":[{"width":1200,"height":800,"url":"https:\/\/i0.wp.com\/noiseonthenet.space\/noise\/wp-content\/uploads\/2025\/03\/retrosupply-jLwVAUtLOAQ-unsplash.jpg?fit=1200%2C800&ssl=1","type":"image\/jpeg"}],"author":"marco.p.v.vezzoli","twitter_card":"summary_large_image","twitter_misc":{"Written by":"marco.p.v.vezzoli","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/noiseonthenet.space\/noise\/2025\/03\/posting-from-jupyter\/#article","isPartOf":{"@id":"https:\/\/noiseonthenet.space\/noise\/2025\/03\/posting-from-jupyter\/"},"author":{"name":"marco.p.v.vezzoli","@id":"https:\/\/noiseonthenet.space\/noise\/#\/schema\/person\/88c3a70f2b23480197bc61d6e1e2e982"},"headline":"Posting From Jupyter","datePublished":"2025-03-02T14:04:00+00:00","dateModified":"2025-03-02T21:40:54+00:00","mainEntityOfPage":{"@id":"https:\/\/noiseonthenet.space\/noise\/2025\/03\/posting-from-jupyter\/"},"wordCount":819,"commentCount":0,"publisher":{"@id":"https:\/\/noiseonthenet.space\/noise\/#\/schema\/person\/88c3a70f2b23480197bc61d6e1e2e982"},"image":{"@id":"https:\/\/noiseonthenet.space\/noise\/2025\/03\/posting-from-jupyter\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/noiseonthenet.space\/noise\/wp-content\/uploads\/2025\/03\/retrosupply-jLwVAUtLOAQ-unsplash.jpg?fit=1200%2C800&ssl=1","keywords":["Python"],"articleSection":["Tools"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/noiseonthenet.space\/noise\/2025\/03\/posting-from-jupyter\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/noiseonthenet.space\/noise\/2025\/03\/posting-from-jupyter\/","url":"https:\/\/noiseonthenet.space\/noise\/2025\/03\/posting-from-jupyter\/","name":"Posting From Jupyter - Noise On The Net","isPartOf":{"@id":"https:\/\/noiseonthenet.space\/noise\/#website"},"primaryImageOfPage":{"@id":"https:\/\/noiseonthenet.space\/noise\/2025\/03\/posting-from-jupyter\/#primaryimage"},"image":{"@id":"https:\/\/noiseonthenet.space\/noise\/2025\/03\/posting-from-jupyter\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/noiseonthenet.space\/noise\/wp-content\/uploads\/2025\/03\/retrosupply-jLwVAUtLOAQ-unsplash.jpg?fit=1200%2C800&ssl=1","datePublished":"2025-03-02T14:04:00+00:00","dateModified":"2025-03-02T21:40:54+00:00","breadcrumb":{"@id":"https:\/\/noiseonthenet.space\/noise\/2025\/03\/posting-from-jupyter\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/noiseonthenet.space\/noise\/2025\/03\/posting-from-jupyter\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/noiseonthenet.space\/noise\/2025\/03\/posting-from-jupyter\/#primaryimage","url":"https:\/\/i0.wp.com\/noiseonthenet.space\/noise\/wp-content\/uploads\/2025\/03\/retrosupply-jLwVAUtLOAQ-unsplash.jpg?fit=1200%2C800&ssl=1","contentUrl":"https:\/\/i0.wp.com\/noiseonthenet.space\/noise\/wp-content\/uploads\/2025\/03\/retrosupply-jLwVAUtLOAQ-unsplash.jpg?fit=1200%2C800&ssl=1","width":1200,"height":800},{"@type":"BreadcrumbList","@id":"https:\/\/noiseonthenet.space\/noise\/2025\/03\/posting-from-jupyter\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/noiseonthenet.space\/noise\/"},{"@type":"ListItem","position":2,"name":"Posting From Jupyter"}]},{"@type":"WebSite","@id":"https:\/\/noiseonthenet.space\/noise\/#website","url":"https:\/\/noiseonthenet.space\/noise\/","name":"Noise On The Net","description":"Sharing adventures in code","publisher":{"@id":"https:\/\/noiseonthenet.space\/noise\/#\/schema\/person\/88c3a70f2b23480197bc61d6e1e2e982"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/noiseonthenet.space\/noise\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/noiseonthenet.space\/noise\/#\/schema\/person\/88c3a70f2b23480197bc61d6e1e2e982","name":"marco.p.v.vezzoli","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/b9d9aab1df560bc14d73b0b442198f196ce39e7c7a38df1dc22fec0b97f17da9?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/b9d9aab1df560bc14d73b0b442198f196ce39e7c7a38df1dc22fec0b97f17da9?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/b9d9aab1df560bc14d73b0b442198f196ce39e7c7a38df1dc22fec0b97f17da9?s=96&d=mm&r=g","caption":"marco.p.v.vezzoli"},"logo":{"@id":"https:\/\/secure.gravatar.com\/avatar\/b9d9aab1df560bc14d73b0b442198f196ce39e7c7a38df1dc22fec0b97f17da9?s=96&d=mm&r=g"},"description":"Self taught assembler programming at 11 on my C64 (1983). Never stopped since then -- always looking up for curious things in the software development, data science and AI. Linux and FOSS user since 1994. MSc in physics in 1996. Working in large semiconductor companies since 1997 (STM, Micron) developing analytics and full stack web infrastructures, microservices, ML solutions","sameAs":["https:\/\/noiseonthenet.space\/noise\/","https:\/\/www.linkedin.com\/in\/marco-paolo-valerio-vezzoli-0663835\/"],"url":"https:\/\/noiseonthenet.space\/noise\/author\/marco-p-v-vezzoli\/"}]}},"jetpack_featured_media_url":"https:\/\/i0.wp.com\/noiseonthenet.space\/noise\/wp-content\/uploads\/2025\/03\/retrosupply-jLwVAUtLOAQ-unsplash.jpg?fit=1200%2C800&ssl=1","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/pdDUZ5-9L","jetpack-related-posts":[],"jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/noiseonthenet.space\/noise\/wp-json\/wp\/v2\/posts\/605","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/noiseonthenet.space\/noise\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/noiseonthenet.space\/noise\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/noiseonthenet.space\/noise\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/noiseonthenet.space\/noise\/wp-json\/wp\/v2\/comments?post=605"}],"version-history":[{"count":5,"href":"https:\/\/noiseonthenet.space\/noise\/wp-json\/wp\/v2\/posts\/605\/revisions"}],"predecessor-version":[{"id":705,"href":"https:\/\/noiseonthenet.space\/noise\/wp-json\/wp\/v2\/posts\/605\/revisions\/705"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/noiseonthenet.space\/noise\/wp-json\/wp\/v2\/media\/698"}],"wp:attachment":[{"href":"https:\/\/noiseonthenet.space\/noise\/wp-json\/wp\/v2\/media?parent=605"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/noiseonthenet.space\/noise\/wp-json\/wp\/v2\/categories?post=605"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/noiseonthenet.space\/noise\/wp-json\/wp\/v2\/tags?post=605"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}