You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

440 lines
18 KiB

3 years ago
2 years ago
3 years ago
2 years ago
3 years ago
2 years ago
3 years ago
2 years ago
3 years ago
2 years ago
3 years ago
2 years ago
3 years ago
2 years ago
3 years ago
2 years ago
3 years ago
2 years ago
3 years ago
2 years ago
3 years ago
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  3. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  4. <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
  5. <head>
  6. <!-- 2020-08-24 Mon 14:53 -->
  7. <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
  8. <meta name="viewport" content="width=device-width, initial-scale=1" />
  9. <title>Nicolas Petton</title>
  10. <meta name="generator" content="Org mode" />
  11. <meta name="author" content="Nicolas Petton" />
  12. <style type="text/css">
  13. <!--/*--><![CDATA[/*><!--*/
  14. .title { text-align: center;
  15. margin-bottom: .2em; }
  16. .subtitle { text-align: center;
  17. font-size: medium;
  18. font-weight: bold;
  19. margin-top:0; }
  20. .todo { font-family: monospace; color: red; }
  21. .done { font-family: monospace; color: green; }
  22. .priority { font-family: monospace; color: orange; }
  23. .tag { background-color: #eee; font-family: monospace;
  24. padding: 2px; font-size: 80%; font-weight: normal; }
  25. .timestamp { color: #bebebe; }
  26. .timestamp-kwd { color: #5f9ea0; }
  27. .org-right { margin-left: auto; margin-right: 0px; text-align: right; }
  28. .org-left { margin-left: 0px; margin-right: auto; text-align: left; }
  29. .org-center { margin-left: auto; margin-right: auto; text-align: center; }
  30. .underline { text-decoration: underline; }
  31. #postamble p, #preamble p { font-size: 90%; margin: .2em; }
  32. p.verse { margin-left: 3%; }
  33. pre {
  34. border: 1px solid #ccc;
  35. box-shadow: 3px 3px 3px #eee;
  36. padding: 8pt;
  37. font-family: monospace;
  38. overflow: auto;
  39. margin: 1.2em;
  40. }
  41. pre.src {
  42. position: relative;
  43. overflow: visible;
  44. padding-top: 1.2em;
  45. }
  46. pre.src:before {
  47. display: none;
  48. position: absolute;
  49. background-color: white;
  50. top: -10px;
  51. right: 10px;
  52. padding: 3px;
  53. border: 1px solid black;
  54. }
  55. pre.src:hover:before { display: inline;}
  56. /* Languages per Org manual */
  57. pre.src-asymptote:before { content: 'Asymptote'; }
  58. pre.src-awk:before { content: 'Awk'; }
  59. pre.src-C:before { content: 'C'; }
  60. /* pre.src-C++ doesn't work in CSS */
  61. pre.src-clojure:before { content: 'Clojure'; }
  62. pre.src-css:before { content: 'CSS'; }
  63. pre.src-D:before { content: 'D'; }
  64. pre.src-ditaa:before { content: 'ditaa'; }
  65. pre.src-dot:before { content: 'Graphviz'; }
  66. pre.src-calc:before { content: 'Emacs Calc'; }
  67. pre.src-emacs-lisp:before { content: 'Emacs Lisp'; }
  68. pre.src-fortran:before { content: 'Fortran'; }
  69. pre.src-gnuplot:before { content: 'gnuplot'; }
  70. pre.src-haskell:before { content: 'Haskell'; }
  71. pre.src-hledger:before { content: 'hledger'; }
  72. pre.src-java:before { content: 'Java'; }
  73. pre.src-js:before { content: 'Javascript'; }
  74. pre.src-latex:before { content: 'LaTeX'; }
  75. pre.src-ledger:before { content: 'Ledger'; }
  76. pre.src-lisp:before { content: 'Lisp'; }
  77. pre.src-lilypond:before { content: 'Lilypond'; }
  78. pre.src-lua:before { content: 'Lua'; }
  79. pre.src-matlab:before { content: 'MATLAB'; }
  80. pre.src-mscgen:before { content: 'Mscgen'; }
  81. pre.src-ocaml:before { content: 'Objective Caml'; }
  82. pre.src-octave:before { content: 'Octave'; }
  83. pre.src-org:before { content: 'Org mode'; }
  84. pre.src-oz:before { content: 'OZ'; }
  85. pre.src-plantuml:before { content: 'Plantuml'; }
  86. pre.src-processing:before { content: 'Processing.js'; }
  87. pre.src-python:before { content: 'Python'; }
  88. pre.src-R:before { content: 'R'; }
  89. pre.src-ruby:before { content: 'Ruby'; }
  90. pre.src-sass:before { content: 'Sass'; }
  91. pre.src-scheme:before { content: 'Scheme'; }
  92. pre.src-screen:before { content: 'Gnu Screen'; }
  93. pre.src-sed:before { content: 'Sed'; }
  94. pre.src-sh:before { content: 'shell'; }
  95. pre.src-sql:before { content: 'SQL'; }
  96. pre.src-sqlite:before { content: 'SQLite'; }
  97. /* additional languages in org.el's org-babel-load-languages alist */
  98. pre.src-forth:before { content: 'Forth'; }
  99. pre.src-io:before { content: 'IO'; }
  100. pre.src-J:before { content: 'J'; }
  101. pre.src-makefile:before { content: 'Makefile'; }
  102. pre.src-maxima:before { content: 'Maxima'; }
  103. pre.src-perl:before { content: 'Perl'; }
  104. pre.src-picolisp:before { content: 'Pico Lisp'; }
  105. pre.src-scala:before { content: 'Scala'; }
  106. pre.src-shell:before { content: 'Shell Script'; }
  107. pre.src-ebnf2ps:before { content: 'ebfn2ps'; }
  108. /* additional language identifiers per "defun org-babel-execute"
  109. in ob-*.el */
  110. pre.src-cpp:before { content: 'C++'; }
  111. pre.src-abc:before { content: 'ABC'; }
  112. pre.src-coq:before { content: 'Coq'; }
  113. pre.src-groovy:before { content: 'Groovy'; }
  114. /* additional language identifiers from org-babel-shell-names in
  115. ob-shell.el: ob-shell is the only babel language using a lambda to put
  116. the execution function name together. */
  117. pre.src-bash:before { content: 'bash'; }
  118. pre.src-csh:before { content: 'csh'; }
  119. pre.src-ash:before { content: 'ash'; }
  120. pre.src-dash:before { content: 'dash'; }
  121. pre.src-ksh:before { content: 'ksh'; }
  122. pre.src-mksh:before { content: 'mksh'; }
  123. pre.src-posh:before { content: 'posh'; }
  124. /* Additional Emacs modes also supported by the LaTeX listings package */
  125. pre.src-ada:before { content: 'Ada'; }
  126. pre.src-asm:before { content: 'Assembler'; }
  127. pre.src-caml:before { content: 'Caml'; }
  128. pre.src-delphi:before { content: 'Delphi'; }
  129. pre.src-html:before { content: 'HTML'; }
  130. pre.src-idl:before { content: 'IDL'; }
  131. pre.src-mercury:before { content: 'Mercury'; }
  132. pre.src-metapost:before { content: 'MetaPost'; }
  133. pre.src-modula-2:before { content: 'Modula-2'; }
  134. pre.src-pascal:before { content: 'Pascal'; }
  135. pre.src-ps:before { content: 'PostScript'; }
  136. pre.src-prolog:before { content: 'Prolog'; }
  137. pre.src-simula:before { content: 'Simula'; }
  138. pre.src-tcl:before { content: 'tcl'; }
  139. pre.src-tex:before { content: 'TeX'; }
  140. pre.src-plain-tex:before { content: 'Plain TeX'; }
  141. pre.src-verilog:before { content: 'Verilog'; }
  142. pre.src-vhdl:before { content: 'VHDL'; }
  143. pre.src-xml:before { content: 'XML'; }
  144. pre.src-nxml:before { content: 'XML'; }
  145. /* add a generic configuration mode; LaTeX export needs an additional
  146. (add-to-list 'org-latex-listings-langs '(conf " ")) in .emacs */
  147. pre.src-conf:before { content: 'Configuration File'; }
  148. table { border-collapse:collapse; }
  149. caption.t-above { caption-side: top; }
  150. caption.t-bottom { caption-side: bottom; }
  151. td, th { vertical-align:top; }
  152. th.org-right { text-align: center; }
  153. th.org-left { text-align: center; }
  154. th.org-center { text-align: center; }
  155. td.org-right { text-align: right; }
  156. td.org-left { text-align: left; }
  157. td.org-center { text-align: center; }
  158. dt { font-weight: bold; }
  159. .footpara { display: inline; }
  160. .footdef { margin-bottom: 1em; }
  161. .figure { padding: 1em; }
  162. .figure p { text-align: center; }
  163. .equation-container {
  164. display: table;
  165. text-align: center;
  166. width: 100%;
  167. }
  168. .equation {
  169. vertical-align: middle;
  170. }
  171. .equation-label {
  172. display: table-cell;
  173. text-align: right;
  174. vertical-align: middle;
  175. }
  176. .inlinetask {
  177. padding: 10px;
  178. border: 2px solid gray;
  179. margin: 10px;
  180. background: #ffffcc;
  181. }
  182. #org-div-home-and-up
  183. { text-align: right; font-size: 70%; white-space: nowrap; }
  184. textarea { overflow-x: auto; }
  185. .linenr { font-size: smaller }
  186. .code-highlighted { background-color: #ffff00; }
  187. .org-info-js_info-navigation { border-style: none; }
  188. #org-info-js_console-label
  189. { font-size: 10px; font-weight: bold; white-space: nowrap; }
  190. .org-info-js_search-highlight
  191. { background-color: #ffff00; color: #000000; font-weight: bold; }
  192. .org-svg { width: 90%; }
  193. /*]]>*/-->
  194. </style>
  195. <link href='/images/favicon.ico' rel='shortcut icon' type='image/x-icon'>
  196. <link rel='stylesheet' href='https://code.cdn.mozilla.net/fonts/fira.css'>
  197. <link rel='stylesheet' href='css/site.css?v=3' type='text/css'/>
  198. <meta name='viewport' content='width=device-width, initial-scale=1'>
  199. <script src='/js/jquery.js' type='text/javascript'></script>
  200. <link href='https://netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.css' rel='stylesheet'><script>
  201. (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
  202. (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
  203. m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
  204. })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
  205. ga('create', 'UA-2614862-2', 'nicolas-petton.fr');
  206. ga('send', 'pageview');
  207. </script>
  208. <link rel='stylesheet' href='css/index.css?v=2' type='text/css'/>
  209. <script type="text/javascript">
  210. /*
  211. @licstart The following is the entire license notice for the
  212. JavaScript code in this tag.
  213. Copyright (C) 2012-2020 Free Software Foundation, Inc.
  214. The JavaScript code in this tag is free software: you can
  215. redistribute it and/or modify it under the terms of the GNU
  216. General Public License (GNU GPL) as published by the Free Software
  217. Foundation, either version 3 of the License, or (at your option)
  218. any later version. The code is distributed WITHOUT ANY WARRANTY;
  219. without even the implied warranty of MERCHANTABILITY or FITNESS
  220. FOR A PARTICULAR PURPOSE. See the GNU GPL for more details.
  221. As additional permission under GNU GPL version 3 section 7, you
  222. may distribute non-source (e.g., minimized or compacted) forms of
  223. that code without the copy of the GNU GPL normally required by
  224. section 4, provided you include this license notice and a URL
  225. through which recipients can access the Corresponding Source.
  226. @licend The above is the entire license notice
  227. for the JavaScript code in this tag.
  228. */
  229. <!--/*--><![CDATA[/*><!--*/
  230. function CodeHighlightOn(elem, id)
  231. {
  232. var target = document.getElementById(id);
  233. if(null != target) {
  234. elem.cacheClassElem = elem.className;
  235. elem.cacheClassTarget = target.className;
  236. target.className = "code-highlighted";
  237. elem.className = "code-highlighted";
  238. }
  239. }
  240. function CodeHighlightOff(elem, id)
  241. {
  242. var target = document.getElementById(id);
  243. if(elem.cacheClassElem)
  244. elem.className = elem.cacheClassElem;
  245. if(elem.cacheClassTarget)
  246. target.className = elem.cacheClassTarget;
  247. }
  248. /*]]>*///-->
  249. </script>
  250. </head>
  251. <body>
  252. <div id="preamble" class="status">
  253. <div class='intro'>
  254. <img src='/images/profile.jpg' alt='Nicolas Petton'/>
  255. <h1>Nicolas Petton</h1>
  256. <p>Web developer, Lisper, Smalltalker & Emacs maniac.</p>
  257. </div>
  258. <div class='nav'>
  259. <ul>
  260. <li><a href='/'>Home</a></li>
  261. <li><a href='/blog/index.html'>Blog</a></li>
  262. <li><a href='https://emacs.cafe'>Emacs Café</a></li>
  263. <li><a href='/contact.html'>Contact</a></li>
  264. <li><a href='http://github.com/NicolasPetton'><i class="fa fa-github"></i></a></li>
  265. <li><a href='http://twitter.com/NicolasPetton'><i class="fa fa-twitter"></i></a></li>
  266. </ul>
  267. </div>
  268. </div>
  269. <div id="content">
  270. <h1 class="title">Nicolas Petton</h1>
  271. <div class="index">
  272. <div id="outline-container-org96a2a86" class="outline-2 column first">
  273. <h2 id="org96a2a86"><b>About</b> me</h2>
  274. <div class="outline-text-2" id="text-org96a2a86">
  275. <p>
  276. I'm a Software engineer, passionate about Lisp, Emacs, Smalltalk and the Web. I split
  277. my time between Stockholm (Sweden) and Brest (France).
  278. </p>
  279. <p>
  280. I'm also a hobbyist photographer.
  281. </p>
  282. </div>
  283. <div id="outline-container-org7aa0df8" class="outline-3">
  284. <h3 id="org7aa0df8">Work</h3>
  285. <div class="outline-text-3" id="text-org7aa0df8">
  286. <p>
  287. I'm the CTO at <a href="http://foretagsplatsen.se">Finsit</a>. I previously worked in the <a href="http://rmod.lille.inria.fr/web/">RMoD</a> team at
  288. <a href="http://inria.fr">Inria</a>. I was also the co-founder of <a href="objectfusion.html">Objectfusion</a>.
  289. </p>
  290. </div>
  291. </div>
  292. <div id="outline-container-orgf8735f7" class="outline-3">
  293. <h3 id="orgf8735f7">Projects</h3>
  294. <div class="outline-text-3" id="text-orgf8735f7">
  295. <ul class="org-ul">
  296. <li>I'm doing the releases of <a href="https://www.gnu.org/software/emacs/">Emacs</a> since the version 24.5. I also maintain
  297. several Emacs packages, including <a href="https://github.com/NicolasPetton/indium">Indium</a>, <a href="https://github.com/magnars/js2-refactor.el">js2-refactor</a>, <a href="https://github.com/NicolasPetton/seq.el">seq.el</a>, map.el,
  298. thunk.el, <a href="https://github.com/NicolasPetton/stream">stream.el</a>, <a href="https://github.com/NicolasPetton/amd-mode.el">amd-mode</a>, <a href="https://github.com/NicolasPetton/xref-js2">xref-js2</a>, <a href="https://github.com/NicolasPetton/zerodark-theme">zerodark</a>, <a href="https://github.com/NicolasPetton/niflheim-emacs">niflheim</a>, as well as
  299. some others.</li>
  300. <li>I like to <a href="https://www.gnu.org/software/emacs/">design websites</a> &amp; <a href="http://amber-lang.net/">logos</a>.</li>
  301. </ul>
  302. <p>
  303. You can find most of my git repositories on my <a href="https://gitea.petton.fr/nico">Gitea instance</a> and on <a href="https://github.com/NicolasPetton">GitHub</a>.
  304. </p>
  305. </div>
  306. </div>
  307. <div id="outline-container-org8e42bf4" class="outline-3">
  308. <h3 id="org8e42bf4">Past projects</h3>
  309. <div class="outline-text-3" id="text-org8e42bf4">
  310. <ul class="org-ul">
  311. <li>I'm the creator of <a href="http://amber-lang.net">Amber</a>, a Smalltalk that runs inside the web
  312. browser (I don't maintain it anymore)</li>
  313. <li>I'm the author of <a href="https://github.com/foretagsplatsen/klassified">klassified</a>, a Smalltalk-inspired object model for
  314. JavaScript, maintained together with <a href="http://benjamin.vanryseghem.com/">Ben</a>.</li>
  315. <li>I'm also the author of <a href="http://smalltalkhub.com">SmalltalkHub</a>, a code repository and project
  316. management application for Smalltalk (I don't maintain it anymore)</li>
  317. <li>I contributed to <a href="http://smalltalkhub.com/#!/~MongoTalkTeam/mongotalk">MongoTalk</a>, the Pharo driver for MongoDB, and
  318. <a href="http://smalltalkhub.com/#!/~gokr/Phriak">Phriak</a>, the Pharo driver for Riak.</li>
  319. <li>I worked with <a href="http://smallworks.eu/">Esteban</a> on <a href="https://github.com/tide-framework/tide">Tide</a>, a new web framework for Pharo and Amber.</li>
  320. </ul>
  321. <p>
  322. You can learn more about Amber on the <a href="https://github.com/amber-smalltalk">GitHub page</a>, and can find more
  323. projects on my <a href="http://github.com/NicolasPetton">Github</a> and <a href="http://smalltalkhub.com/#!/~NicolasPetton">SmalltalkHub</a> accounts.
  324. </p>
  325. </div>
  326. </div>
  327. <div id="outline-container-org39077a4" class="outline-3">
  328. <h3 id="org39077a4">Some <a href="presentations.html">presentations</a> I gave</h3>
  329. <div class="outline-text-3" id="text-org39077a4">
  330. </div>
  331. </div>
  332. </div>
  333. <div id="outline-container-org28674ad" class="outline-2 column last">
  334. <h2 id="org28674ad"><b>Writings</b> &amp; notes</h2>
  335. <div class="outline-text-2" id="text-org28674ad">
  336. </div>
  337. <div id="outline-container-org20408f6" class="outline-3">
  338. <h3 id="org20408f6">The <a href="https://emacs.cafe">Emacs café</a> blog</h3>
  339. <div class="outline-text-3" id="text-org20408f6">
  340. <p>
  341. I'm also writing posts in this blog dedicated to Emacs &amp; JavaScript.
  342. </p>
  343. </div>
  344. </div>
  345. <div id="outline-container-orgbcecc2b" class="outline-3">
  346. <h3 id="orgbcecc2b">Series of interviews of my colleagues at <a href="http://foretagsplatsen.se/en">FTGP</a></h3>
  347. <div class="outline-text-3" id="text-orgbcecc2b">
  348. <ul class="org-ul">
  349. <li><a href="blog/interview-damien-cassou.html">Damien Cassou</a></li>
  350. <li><a href="blog/interview-mikael.html">Mikael Hägerbro</a></li>
  351. <li><a href="blog/interview-seckin.html">Seçkin Savasçi</a></li>
  352. <li><a href="blog/interview-louise.html">Louise Axhake</a></li>
  353. <li><a href="blog/interview-johan.html">Johan Degerfeldt</a></li>
  354. <li><a href="blog/interview-ben.html">Benjamin Van Ryseghem</a></li>
  355. </ul>
  356. </div>
  357. </div>
  358. <div id="outline-container-orgda16383" class="outline-3">
  359. <h3 id="orgda16383">Some Emacs related posts</h3>
  360. <div class="outline-text-3" id="text-orgda16383">
  361. <ul class="org-ul">
  362. <li><a href="blog/working-on-the-emacs-website.html">Working on the Emacs website</a></li>
  363. <li><a href="blog/working-on-the-emacs-logo.html">Working on the Emacs logo</a></li>
  364. <li><a href="blog/stream.html">Lazy sequences in Emacs with stream.el</a></li>
  365. <li><a href="blog/fourth-emacs-meetup.html">Fourth Emacs meetup</a> in Stockholm the 14th of June</li>
  366. <li><a href="blog/emacs-meetup-orgmode.html">Third Emacs meetup</a> in Stockholm the 9th of April</li>
  367. <li><a href="blog/emacs-meetup.html">Emacs meetup</a> the 23rd of January</li>
  368. <li><a href="blog/buffer-watcher.html">Watching file changes with buffer-watcher.el</a></li>
  369. <li><a href="blog/mutli-occur-on-projects.html">Multi-occur on projects</a></li>
  370. <li><a href="blog/emacs-dark-window-decoration.html">A dark window decoration for Emacs in Gnome</a></li>
  371. <li><a href="blog/isearch-thing.html">isearch thing</a></li>
  372. <li><a href="blog/per-computer-emacs-settings.html">Per-computer Emacs settings</a></li>
  373. <li><a href="blog/niflheim-theme.html">A dark theme for Emacs</a></li>
  374. <li><a href="blog/discover-js2-refactor.html">discover-js2-refactor</a></li>
  375. <li><a href="blog/blogging-with-org-mode.html">Blogging with org-mode</a></li>
  376. </ul>
  377. </div>
  378. </div>
  379. <div id="outline-container-orgd52a631" class="outline-3">
  380. <h3 id="orgd52a631">Latest <a href="http://amber-lang.net">Amber</a> related posts</h3>
  381. <div class="outline-text-3" id="text-orgd52a631">
  382. <ul class="org-ul">
  383. <li><a href="blog/amber-0.13-released.html">Amber 0.13 released!</a></li>
  384. <li><a href="blog/amber-new-maintainer.html">Amber has a new maintainer</a></li>
  385. <li><a href="blog/helios-sunit.html">Helios has a test runner</a></li>
  386. <li><a href="blog/amber-1.12.4-released.html">Amber 0.12.4 released!</a></li>
  387. <li><a href="blog/nw-helios.html">Running Helios as a desktop app</a></li>
  388. <li><a href="blog/details-matter.html">Details matter</a></li>
  389. <li><a href="blog/helios-keybindings.html">Keybindings in Amber's new IDE</a></li>
  390. </ul>
  391. </div>
  392. </div>
  393. <div id="outline-container-org736443f" class="outline-3">
  394. <h3 id="org736443f">Interviews of my colleagues at <a href="http://rmod.lille.inria.fr/web/">RMoD</a></h3>
  395. <div class="outline-text-3" id="text-org736443f">
  396. <ul class="org-ul">
  397. <li><a href="blog/interview-clara.html">Clara Allende</a></li>
  398. <li><a href="objectfusion.html">Guillermo Polito</a></li>
  399. <li><a href="blog/interview-jean-baptiste.html">Jean-Baptiste Arnaud</a></li>
  400. <li><a href="blog/interview-stef.html">Stéphane Ducasse</a></li>
  401. <li><a href="blog/interview-esteban.html">Esteban Lorenzano</a></li>
  402. <li><a href="blog/interview-damien.html">Damien Cassou</a></li>
  403. <li><a href="blog/working-at-rmod.html">How is it to work at RMoD? <i>A series of interviews</i></a></li>
  404. </ul>
  405. </div>
  406. </div>
  407. </div>
  408. </div>
  409. <div id="postamble" class="status">
  410. <div class='footer'>
  411. Copyright 2020 Nicolas Petton.<br>
  412. Last updated 2020-08-24 Mon 14:53. <br>
  413. Built with <a href="https://www.gnu.org/software/emacs/">Emacs</a> 26.3 (<a href="https://orgmode.org">Org</a> mode 9.3.6).
  414. </div>
  415. </div>
  416. </body>
  417. </html>