tag:blogger.com,1999:blog-133633192024-03-13T07:49:31.001+01:00Some Mixed StuffDavide Restivohttp://www.blogger.com/profile/00132926969744050826noreply@blogger.comBlogger1204125tag:blogger.com,1999:blog-13363319.post-71929762843417253312021-08-29T18:53:00.003+02:002021-08-29T18:53:17.143+02:00Elisp: Lambda functions in a lexical environment<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<!-- 2021-08-29 Sun 18:52 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>‎</title>
<meta name="generator" content="Org mode" />
<meta name="author" content="Davide Restivo" />
<style type="text/css">
<!--/*--><![CDATA[/*><!--*/
.title { text-align: center;
margin-bottom: .2em; }
.subtitle { text-align: center;
font-size: medium;
font-weight: bold;
margin-top:0; }
.todo { font-family: monospace; color: red; }
.done { font-family: monospace; color: green; }
.priority { font-family: monospace; color: orange; }
.tag { background-color: #eee; font-family: monospace;
padding: 2px; font-size: 80%; font-weight: normal; }
.timestamp { color: #bebebe; }
.timestamp-kwd { color: #5f9ea0; }
.org-right { margin-left: auto; margin-right: 0px; text-align: right; }
.org-left { margin-left: 0px; margin-right: auto; text-align: left; }
.org-center { margin-left: auto; margin-right: auto; text-align: center; }
.underline { text-decoration: underline; }
#postamble p, #preamble p { font-size: 90%; margin: .2em; }
p.verse { margin-left: 3%; }
pre {
border: 1px solid #ccc;
box-shadow: 3px 3px 3px #eee;
padding: 8pt;
font-family: monospace;
overflow: auto;
margin: 1.2em;
}
pre.src {
position: relative;
overflow: auto;
padding-top: 1.2em;
}
pre.src:before {
display: none;
position: absolute;
background-color: white;
top: -10px;
right: 10px;
padding: 3px;
border: 1px solid black;
}
pre.src:hover:before { display: inline; margin-top: 14px;}
/* Languages per Org manual */
pre.src-asymptote:before { content: 'Asymptote'; }
pre.src-awk:before { content: 'Awk'; }
pre.src-C:before { content: 'C'; }
/* pre.src-C++ doesn't work in CSS */
pre.src-clojure:before { content: 'Clojure'; }
pre.src-css:before { content: 'CSS'; }
pre.src-D:before { content: 'D'; }
pre.src-ditaa:before { content: 'ditaa'; }
pre.src-dot:before { content: 'Graphviz'; }
pre.src-calc:before { content: 'Emacs Calc'; }
pre.src-emacs-lisp:before { content: 'Emacs Lisp'; }
pre.src-fortran:before { content: 'Fortran'; }
pre.src-gnuplot:before { content: 'gnuplot'; }
pre.src-haskell:before { content: 'Haskell'; }
pre.src-hledger:before { content: 'hledger'; }
pre.src-java:before { content: 'Java'; }
pre.src-js:before { content: 'Javascript'; }
pre.src-latex:before { content: 'LaTeX'; }
pre.src-ledger:before { content: 'Ledger'; }
pre.src-lisp:before { content: 'Lisp'; }
pre.src-lilypond:before { content: 'Lilypond'; }
pre.src-lua:before { content: 'Lua'; }
pre.src-matlab:before { content: 'MATLAB'; }
pre.src-mscgen:before { content: 'Mscgen'; }
pre.src-ocaml:before { content: 'Objective Caml'; }
pre.src-octave:before { content: 'Octave'; }
pre.src-org:before { content: 'Org mode'; }
pre.src-oz:before { content: 'OZ'; }
pre.src-plantuml:before { content: 'Plantuml'; }
pre.src-processing:before { content: 'Processing.js'; }
pre.src-python:before { content: 'Python'; }
pre.src-R:before { content: 'R'; }
pre.src-ruby:before { content: 'Ruby'; }
pre.src-sass:before { content: 'Sass'; }
pre.src-scheme:before { content: 'Scheme'; }
pre.src-screen:before { content: 'Gnu Screen'; }
pre.src-sed:before { content: 'Sed'; }
pre.src-sh:before { content: 'shell'; }
pre.src-sql:before { content: 'SQL'; }
pre.src-sqlite:before { content: 'SQLite'; }
/* additional languages in org.el's org-babel-load-languages alist */
pre.src-forth:before { content: 'Forth'; }
pre.src-io:before { content: 'IO'; }
pre.src-J:before { content: 'J'; }
pre.src-makefile:before { content: 'Makefile'; }
pre.src-maxima:before { content: 'Maxima'; }
pre.src-perl:before { content: 'Perl'; }
pre.src-picolisp:before { content: 'Pico Lisp'; }
pre.src-scala:before { content: 'Scala'; }
pre.src-shell:before { content: 'Shell Script'; }
pre.src-ebnf2ps:before { content: 'ebfn2ps'; }
/* additional language identifiers per "defun org-babel-execute"
in ob-*.el */
pre.src-cpp:before { content: 'C++'; }
pre.src-abc:before { content: 'ABC'; }
pre.src-coq:before { content: 'Coq'; }
pre.src-groovy:before { content: 'Groovy'; }
/* additional language identifiers from org-babel-shell-names in
ob-shell.el: ob-shell is the only babel language using a lambda to put
the execution function name together. */
pre.src-bash:before { content: 'bash'; }
pre.src-csh:before { content: 'csh'; }
pre.src-ash:before { content: 'ash'; }
pre.src-dash:before { content: 'dash'; }
pre.src-ksh:before { content: 'ksh'; }
pre.src-mksh:before { content: 'mksh'; }
pre.src-posh:before { content: 'posh'; }
/* Additional Emacs modes also supported by the LaTeX listings package */
pre.src-ada:before { content: 'Ada'; }
pre.src-asm:before { content: 'Assembler'; }
pre.src-caml:before { content: 'Caml'; }
pre.src-delphi:before { content: 'Delphi'; }
pre.src-html:before { content: 'HTML'; }
pre.src-idl:before { content: 'IDL'; }
pre.src-mercury:before { content: 'Mercury'; }
pre.src-metapost:before { content: 'MetaPost'; }
pre.src-modula-2:before { content: 'Modula-2'; }
pre.src-pascal:before { content: 'Pascal'; }
pre.src-ps:before { content: 'PostScript'; }
pre.src-prolog:before { content: 'Prolog'; }
pre.src-simula:before { content: 'Simula'; }
pre.src-tcl:before { content: 'tcl'; }
pre.src-tex:before { content: 'TeX'; }
pre.src-plain-tex:before { content: 'Plain TeX'; }
pre.src-verilog:before { content: 'Verilog'; }
pre.src-vhdl:before { content: 'VHDL'; }
pre.src-xml:before { content: 'XML'; }
pre.src-nxml:before { content: 'XML'; }
/* add a generic configuration mode; LaTeX export needs an additional
(add-to-list 'org-latex-listings-langs '(conf " ")) in .emacs */
pre.src-conf:before { content: 'Configuration File'; }
table { border-collapse:collapse; }
caption.t-above { caption-side: top; }
caption.t-bottom { caption-side: bottom; }
td, th { vertical-align:top; }
th.org-right { text-align: center; }
th.org-left { text-align: center; }
th.org-center { text-align: center; }
td.org-right { text-align: right; }
td.org-left { text-align: left; }
td.org-center { text-align: center; }
dt { font-weight: bold; }
.footpara { display: inline; }
.footdef { margin-bottom: 1em; }
.figure { padding: 1em; }
.figure p { text-align: center; }
.equation-container {
display: table;
text-align: center;
width: 100%;
}
.equation {
vertical-align: middle;
}
.equation-label {
display: table-cell;
text-align: right;
vertical-align: middle;
}
.inlinetask {
padding: 10px;
border: 2px solid gray;
margin: 10px;
background: #ffffcc;
}
#org-div-home-and-up
{ text-align: right; font-size: 70%; white-space: nowrap; }
textarea { overflow-x: auto; }
.linenr { font-size: smaller }
.code-highlighted { background-color: #ffff00; }
.org-info-js_info-navigation { border-style: none; }
#org-info-js_console-label
{ font-size: 10px; font-weight: bold; white-space: nowrap; }
.org-info-js_search-highlight
{ background-color: #ffff00; color: #000000; font-weight: bold; }
.org-svg { width: 90%; }
/*]]>*/-->
</style>
<script type="text/javascript">
// @license magnet:?xt=urn:btih:1f739d935676111cfff4b4693e3816e664797050&dn=gpl-3.0.txt GPL-v3-or-Later
<!--/*--><![CDATA[/*><!--*/
function CodeHighlightOn(elem, id)
{
var target = document.getElementById(id);
if(null != target) {
elem.classList.add("code-highlighted");
target.classList.add("code-highlighted");
}
}
function CodeHighlightOff(elem, id)
{
var target = document.getElementById(id);
if(null != target) {
elem.classList.remove("code-highlighted");
target.classList.remove("code-highlighted");
}
}
/*]]>*///-->
// @license-end
</script>
</head>
<body>
<div id="content">
<div class="org-src-container">
<pre class="src src-elisp">;; Enable lexical bindings
(setq lexical-binding t)
;; In a lexically scoped environment lambda functions evaluates to
;; closures objects. Closures are functions that capture the lexical
;; environment where they are defined. The lexical environment is
;; captured in an alist terminated by 't'. See below.
;; Let's define an high order functions that returns a lambda (a
;; closure). Every time the lambda is funcall-ed it returns an
;; incremented integer (remembering the previous value):
(defun incrementer (x)
(lambda ()
(setq x
(1+ x))) ; The lambda evaluate to a closure => (closure (t) nil (setq x (1+ x)))
)
;; Let's create an incrementer starting from 1
(setq inc-from-1 (incrementer 0)) ; => (closure ((x . 0) t) nil (setq x (1+ x)))
(funcall inc-from-1) ; => 1
(funcall inc-from-1) ; => 2
;; Thanks to the homiconicity of Lisp, a closure object can be
;; manipulated as a regular list during runtime and the captured
;; environment can be modified:
;; Let's modify the closure and jump the incrementer to 100 directly:
(setf (caadr inc-from-1) '(x . 100))
(funcall inc-from-1) ; => 101
</pre>
</div>
</div>
<div id="postamble" class="status">
<p class="author">Author: Davide Restivo</p>
<p class="date">Created: 2021-08-29 Sun 18:52</p>
<p class="validation"><a href="https://validator.w3.org/check?uri=referer">Validate</a></p>
</div>
</body>
</html>
Davide Restivohttp://www.blogger.com/profile/00132926969744050826noreply@blogger.com0tag:blogger.com,1999:blog-13363319.post-359270498047967122021-01-01T18:42:00.000+01:002021-01-01T18:42:13.369+01:00Enable ERC notifications on macOS<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<!-- 2021-01-01 Fri 18:40 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="generator" content="Org mode" />
<meta name="author" content="Davide Restivo" />
<style type="text/css">
<!--/*--><![CDATA[/*><!--*/
.title { text-align: center;
margin-bottom: .2em; }
.subtitle { text-align: center;
font-size: medium;
font-weight: bold;
margin-top:0; }
.todo { font-family: monospace; color: red; }
.done { font-family: monospace; color: green; }
.priority { font-family: monospace; color: orange; }
.tag { background-color: #eee; font-family: monospace;
padding: 2px; font-size: 80%; font-weight: normal; }
.timestamp { color: #bebebe; }
.timestamp-kwd { color: #5f9ea0; }
.org-right { margin-left: auto; margin-right: 0px; text-align: right; }
.org-left { margin-left: 0px; margin-right: auto; text-align: left; }
.org-center { margin-left: auto; margin-right: auto; text-align: center; }
.underline { text-decoration: underline; }
#postamble p, #preamble p { font-size: 90%; margin: .2em; }
p.verse { margin-left: 3%; }
pre {
border: 1px solid #ccc;
box-shadow: 3px 3px 3px #eee;
padding: 8pt;
font-family: monospace;
overflow: auto;
margin: 1.2em;
}
pre.src {
position: relative;
overflow: auto;
padding-top: 1.2em;
}
pre.src:before {
display: none;
position: absolute;
background-color: white;
top: -10px;
right: 10px;
padding: 3px;
border: 1px solid black;
}
pre.src:hover:before { display: inline; margin-top: 14px;}
/* Languages per Org manual */
pre.src-asymptote:before { content: 'Asymptote'; }
pre.src-awk:before { content: 'Awk'; }
pre.src-C:before { content: 'C'; }
/* pre.src-C++ doesn't work in CSS */
pre.src-clojure:before { content: 'Clojure'; }
pre.src-css:before { content: 'CSS'; }
pre.src-D:before { content: 'D'; }
pre.src-ditaa:before { content: 'ditaa'; }
pre.src-dot:before { content: 'Graphviz'; }
pre.src-calc:before { content: 'Emacs Calc'; }
pre.src-emacs-lisp:before { content: 'Emacs Lisp'; }
pre.src-fortran:before { content: 'Fortran'; }
pre.src-gnuplot:before { content: 'gnuplot'; }
pre.src-haskell:before { content: 'Haskell'; }
pre.src-hledger:before { content: 'hledger'; }
pre.src-java:before { content: 'Java'; }
pre.src-js:before { content: 'Javascript'; }
pre.src-latex:before { content: 'LaTeX'; }
pre.src-ledger:before { content: 'Ledger'; }
pre.src-lisp:before { content: 'Lisp'; }
pre.src-lilypond:before { content: 'Lilypond'; }
pre.src-lua:before { content: 'Lua'; }
pre.src-matlab:before { content: 'MATLAB'; }
pre.src-mscgen:before { content: 'Mscgen'; }
pre.src-ocaml:before { content: 'Objective Caml'; }
pre.src-octave:before { content: 'Octave'; }
pre.src-org:before { content: 'Org mode'; }
pre.src-oz:before { content: 'OZ'; }
pre.src-plantuml:before { content: 'Plantuml'; }
pre.src-processing:before { content: 'Processing.js'; }
pre.src-python:before { content: 'Python'; }
pre.src-R:before { content: 'R'; }
pre.src-ruby:before { content: 'Ruby'; }
pre.src-sass:before { content: 'Sass'; }
pre.src-scheme:before { content: 'Scheme'; }
pre.src-screen:before { content: 'Gnu Screen'; }
pre.src-sed:before { content: 'Sed'; }
pre.src-sh:before { content: 'shell'; }
pre.src-sql:before { content: 'SQL'; }
pre.src-sqlite:before { content: 'SQLite'; }
/* additional languages in org.el's org-babel-load-languages alist */
pre.src-forth:before { content: 'Forth'; }
pre.src-io:before { content: 'IO'; }
pre.src-J:before { content: 'J'; }
pre.src-makefile:before { content: 'Makefile'; }
pre.src-maxima:before { content: 'Maxima'; }
pre.src-perl:before { content: 'Perl'; }
pre.src-picolisp:before { content: 'Pico Lisp'; }
pre.src-scala:before { content: 'Scala'; }
pre.src-shell:before { content: 'Shell Script'; }
pre.src-ebnf2ps:before { content: 'ebfn2ps'; }
/* additional language identifiers per "defun org-babel-execute"
in ob-*.el */
pre.src-cpp:before { content: 'C++'; }
pre.src-abc:before { content: 'ABC'; }
pre.src-coq:before { content: 'Coq'; }
pre.src-groovy:before { content: 'Groovy'; }
/* additional language identifiers from org-babel-shell-names in
ob-shell.el: ob-shell is the only babel language using a lambda to put
the execution function name together. */
pre.src-bash:before { content: 'bash'; }
pre.src-csh:before { content: 'csh'; }
pre.src-ash:before { content: 'ash'; }
pre.src-dash:before { content: 'dash'; }
pre.src-ksh:before { content: 'ksh'; }
pre.src-mksh:before { content: 'mksh'; }
pre.src-posh:before { content: 'posh'; }
/* Additional Emacs modes also supported by the LaTeX listings package */
pre.src-ada:before { content: 'Ada'; }
pre.src-asm:before { content: 'Assembler'; }
pre.src-caml:before { content: 'Caml'; }
pre.src-delphi:before { content: 'Delphi'; }
pre.src-html:before { content: 'HTML'; }
pre.src-idl:before { content: 'IDL'; }
pre.src-mercury:before { content: 'Mercury'; }
pre.src-metapost:before { content: 'MetaPost'; }
pre.src-modula-2:before { content: 'Modula-2'; }
pre.src-pascal:before { content: 'Pascal'; }
pre.src-ps:before { content: 'PostScript'; }
pre.src-prolog:before { content: 'Prolog'; }
pre.src-simula:before { content: 'Simula'; }
pre.src-tcl:before { content: 'tcl'; }
pre.src-tex:before { content: 'TeX'; }
pre.src-plain-tex:before { content: 'Plain TeX'; }
pre.src-verilog:before { content: 'Verilog'; }
pre.src-vhdl:before { content: 'VHDL'; }
pre.src-xml:before { content: 'XML'; }
pre.src-nxml:before { content: 'XML'; }
/* add a generic configuration mode; LaTeX export needs an additional
(add-to-list 'org-latex-listings-langs '(conf " ")) in .emacs */
pre.src-conf:before { content: 'Configuration File'; }
table { border-collapse:collapse; }
caption.t-above { caption-side: top; }
caption.t-bottom { caption-side: bottom; }
td, th { vertical-align:top; }
th.org-right { text-align: center; }
th.org-left { text-align: center; }
th.org-center { text-align: center; }
td.org-right { text-align: right; }
td.org-left { text-align: left; }
td.org-center { text-align: center; }
dt { font-weight: bold; }
.footpara { display: inline; }
.footdef { margin-bottom: 1em; }
.figure { padding: 1em; }
.figure p { text-align: center; }
.equation-container {
display: table;
text-align: center;
width: 100%;
}
.equation {
vertical-align: middle;
}
.equation-label {
display: table-cell;
text-align: right;
vertical-align: middle;
}
.inlinetask {
padding: 10px;
border: 2px solid gray;
margin: 10px;
background: #ffffcc;
}
#org-div-home-and-up
{ text-align: right; font-size: 70%; white-space: nowrap; }
textarea { overflow-x: auto; }
.linenr { font-size: smaller }
.code-highlighted { background-color: #ffff00; }
.org-info-js_info-navigation { border-style: none; }
#org-info-js_console-label
{ font-size: 10px; font-weight: bold; white-space: nowrap; }
.org-info-js_search-highlight
{ background-color: #ffff00; color: #000000; font-weight: bold; }
.org-svg { width: 90%; }
/*]]>*/-->
</style>
<script type="text/javascript">
// @license magnet:?xt=urn:btih:e95b018ef3580986a04669f1b5879592219e2a7a&dn=public-domain.txt Public Domain
<!--/*--><![CDATA[/*><!--*/
function CodeHighlightOn(elem, id)
{
var target = document.getElementById(id);
if(null != target) {
elem.classList.add("code-highlighted");
target.classList.add("code-highlighted");
}
}
function CodeHighlightOff(elem, id)
{
var target = document.getElementById(id);
if(null != target) {
elem.classList.remove("code-highlighted");
target.classList.remove("code-highlighted");
}
}
/*]]>*///-->
// @license-end
</script>
</head>
<body>
<div id="content">
<div id="table-of-contents">
<h2>Table of Contents</h2>
<div id="text-table-of-contents">
<ul>
<li><a href="#org8c33cd1">1. Enable ERC notifications on macOS</a></li>
<li><a href="#org4056a03">2. Useful Links</a>
<ul>
<li><a href="#orga9fc028">2.1. Apple Script</a></li>
<li><a href="#org03fef0f">2.2. ERC Notifications</a></li>
<li><a href="#org4e84e28">2.3. Elisp examples</a></li>
</ul>
</li>
</ul>
</div>
</div>
<div id="outline-container-org8c33cd1" class="outline-2">
<h2 id="org8c33cd1"><span class="section-number-2">1</span> Enable ERC notifications on macOS</h2>
<div class="outline-text-2" id="text-1">
<p>
A quick post on how to enable ERC notification on macOS via
Notification Center using AppleScript:
</p>
<div class="org-src-container">
<pre class="src src-elisp">;; Send notification using Apple Script on macOS
(defun galactic-emacs-erc-ns-notify (nick msg &optional PRIVP)
"Notify that NICK send a MSG using Apple Notification Center"
(ns-do-applescript (concat "display notification \"" nick
" wrote: " msg "\"" "with title"
"\"ERC Notification\"")))
;; Desktop notifications
(require 'erc-desktop-notifications)
(erc-notifications-enable)
;; Use Notification Center on macOS
(when (string= system-type "darwin")
(advice-add 'erc-notifications-notify :after #'galactic-emacs-erc-ns-notify))
</pre>
</div>
</div>
</div>
<div id="outline-container-org4056a03" class="outline-2">
<h2 id="org4056a03"><span class="section-number-2">2</span> Useful Links</h2>
<div class="outline-text-2" id="text-2">
</div>
<div id="outline-container-orga9fc028" class="outline-3">
<h3 id="orga9fc028"><span class="section-number-3">2.1</span> Apple Script</h3>
<div class="outline-text-3" id="text-2-1">
<p>
Link: <a href="https://emacs.stackexchange.com/questions/28896/how-to-get-notifications-from-erc-in-macos">https://emacs.stackexchange.com/questions/28896/how-to-get-notifications-from-erc-in-macos</a>
Link: <a href="https://apple.stackexchange.com/questions/57412/how-can-i-trigger-a-notification-center-notification-from-an-applescript-or-shel">https://apple.stackexchange.com/questions/57412/how-can-i-trigger-a-notification-center-notification-from-an-applescript-or-shel</a>
</p>
</div>
</div>
<div id="outline-container-org03fef0f" class="outline-3">
<h3 id="org03fef0f"><span class="section-number-3">2.2</span> ERC Notifications</h3>
<div class="outline-text-3" id="text-2-2">
<p>
Link: <a href="https://julien.danjou.info/erc-notifications/">https://julien.danjou.info/erc-notifications/</a>
Link: <a href="https://github.com/emacs-mirror/emacs/blob/master/lisp/erc/erc-desktop-notifications.el">https://github.com/emacs-mirror/emacs/blob/master/lisp/erc/erc-desktop-notifications.el</a>
</p>
</div>
</div>
<div id="outline-container-org4e84e28" class="outline-3">
<h3 id="org4e84e28"><span class="section-number-3">2.3</span> Elisp examples</h3>
<div class="outline-text-3" id="text-2-3">
<div class="org-src-container">
<pre class="src src-elisp">(ns-do-applescript "display notification \"hello world\"")
</pre>
</div>
</div>
</div>
</div>
</div>
</body>
</html>Davide Restivohttp://www.blogger.com/profile/00132926969744050826noreply@blogger.com0tag:blogger.com,1999:blog-13363319.post-63197241252910316672020-11-08T17:50:00.004+01:002020-11-08T17:52:59.479+01:00Multi-Arity Multi-Methods<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<!-- 2020-11-08 Sun 17:47 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>‎</title>
<meta name="generator" content="Org mode" />
<meta name="author" content="Davide Restivo" />
<style type="text/css">
<!--/*--><![CDATA[/*><!--*/
.title { text-align: center;
margin-bottom: .2em; }
.subtitle { text-align: center;
font-size: medium;
font-weight: bold;
margin-top:0; }
.todo { font-family: monospace; color: red; }
.done { font-family: monospace; color: green; }
.priority { font-family: monospace; color: orange; }
.tag { background-color: #eee; font-family: monospace;
padding: 2px; font-size: 80%; font-weight: normal; }
.timestamp { color: #bebebe; }
.timestamp-kwd { color: #5f9ea0; }
.org-right { margin-left: auto; margin-right: 0px; text-align: right; }
.org-left { margin-left: 0px; margin-right: auto; text-align: left; }
.org-center { margin-left: auto; margin-right: auto; text-align: center; }
.underline { text-decoration: underline; }
#postamble p, #preamble p { font-size: 90%; margin: .2em; }
p.verse { margin-left: 3%; }
pre {
border: 1px solid #ccc;
box-shadow: 3px 3px 3px #eee;
padding: 8pt;
font-family: monospace;
overflow: auto;
margin: 1.2em;
}
pre.src {
position: relative;
overflow: auto;
padding-top: 1.2em;
}
pre.src:before {
display: none;
position: absolute;
background-color: white;
top: -10px;
right: 10px;
padding: 3px;
border: 1px solid black;
}
pre.src:hover:before { display: inline;}
/* Languages per Org manual */
pre.src-asymptote:before { content: 'Asymptote'; }
pre.src-awk:before { content: 'Awk'; }
pre.src-C:before { content: 'C'; }
/* pre.src-C++ doesn't work in CSS */
pre.src-clojure:before { content: 'Clojure'; }
pre.src-css:before { content: 'CSS'; }
pre.src-D:before { content: 'D'; }
pre.src-ditaa:before { content: 'ditaa'; }
pre.src-dot:before { content: 'Graphviz'; }
pre.src-calc:before { content: 'Emacs Calc'; }
pre.src-emacs-lisp:before { content: 'Emacs Lisp'; }
pre.src-fortran:before { content: 'Fortran'; }
pre.src-gnuplot:before { content: 'gnuplot'; }
pre.src-haskell:before { content: 'Haskell'; }
pre.src-hledger:before { content: 'hledger'; }
pre.src-java:before { content: 'Java'; }
pre.src-js:before { content: 'Javascript'; }
pre.src-latex:before { content: 'LaTeX'; }
pre.src-ledger:before { content: 'Ledger'; }
pre.src-lisp:before { content: 'Lisp'; }
pre.src-lilypond:before { content: 'Lilypond'; }
pre.src-lua:before { content: 'Lua'; }
pre.src-matlab:before { content: 'MATLAB'; }
pre.src-mscgen:before { content: 'Mscgen'; }
pre.src-ocaml:before { content: 'Objective Caml'; }
pre.src-octave:before { content: 'Octave'; }
pre.src-org:before { content: 'Org mode'; }
pre.src-oz:before { content: 'OZ'; }
pre.src-plantuml:before { content: 'Plantuml'; }
pre.src-processing:before { content: 'Processing.js'; }
pre.src-python:before { content: 'Python'; }
pre.src-R:before { content: 'R'; }
pre.src-ruby:before { content: 'Ruby'; }
pre.src-sass:before { content: 'Sass'; }
pre.src-scheme:before { content: 'Scheme'; }
pre.src-screen:before { content: 'Gnu Screen'; }
pre.src-sed:before { content: 'Sed'; }
pre.src-sh:before { content: 'shell'; }
pre.src-sql:before { content: 'SQL'; }
pre.src-sqlite:before { content: 'SQLite'; }
/* additional languages in org.el's org-babel-load-languages alist */
pre.src-forth:before { content: 'Forth'; }
pre.src-io:before { content: 'IO'; }
pre.src-J:before { content: 'J'; }
pre.src-makefile:before { content: 'Makefile'; }
pre.src-maxima:before { content: 'Maxima'; }
pre.src-perl:before { content: 'Perl'; }
pre.src-picolisp:before { content: 'Pico Lisp'; }
pre.src-scala:before { content: 'Scala'; }
pre.src-shell:before { content: 'Shell Script'; }
pre.src-ebnf2ps:before { content: 'ebfn2ps'; }
/* additional language identifiers per "defun org-babel-execute"
in ob-*.el */
pre.src-cpp:before { content: 'C++'; }
pre.src-abc:before { content: 'ABC'; }
pre.src-coq:before { content: 'Coq'; }
pre.src-groovy:before { content: 'Groovy'; }
/* additional language identifiers from org-babel-shell-names in
ob-shell.el: ob-shell is the only babel language using a lambda to put
the execution function name together. */
pre.src-bash:before { content: 'bash'; }
pre.src-csh:before { content: 'csh'; }
pre.src-ash:before { content: 'ash'; }
pre.src-dash:before { content: 'dash'; }
pre.src-ksh:before { content: 'ksh'; }
pre.src-mksh:before { content: 'mksh'; }
pre.src-posh:before { content: 'posh'; }
/* Additional Emacs modes also supported by the LaTeX listings package */
pre.src-ada:before { content: 'Ada'; }
pre.src-asm:before { content: 'Assembler'; }
pre.src-caml:before { content: 'Caml'; }
pre.src-delphi:before { content: 'Delphi'; }
pre.src-html:before { content: 'HTML'; }
pre.src-idl:before { content: 'IDL'; }
pre.src-mercury:before { content: 'Mercury'; }
pre.src-metapost:before { content: 'MetaPost'; }
pre.src-modula-2:before { content: 'Modula-2'; }
pre.src-pascal:before { content: 'Pascal'; }
pre.src-ps:before { content: 'PostScript'; }
pre.src-prolog:before { content: 'Prolog'; }
pre.src-simula:before { content: 'Simula'; }
pre.src-tcl:before { content: 'tcl'; }
pre.src-tex:before { content: 'TeX'; }
pre.src-plain-tex:before { content: 'Plain TeX'; }
pre.src-verilog:before { content: 'Verilog'; }
pre.src-vhdl:before { content: 'VHDL'; }
pre.src-xml:before { content: 'XML'; }
pre.src-nxml:before { content: 'XML'; }
/* add a generic configuration mode; LaTeX export needs an additional
(add-to-list 'org-latex-listings-langs '(conf " ")) in .emacs */
pre.src-conf:before { content: 'Configuration File'; }
table { border-collapse:collapse; }
caption.t-above { caption-side: top; }
caption.t-bottom { caption-side: bottom; }
td, th { vertical-align:top; }
th.org-right { text-align: center; }
th.org-left { text-align: center; }
th.org-center { text-align: center; }
td.org-right { text-align: right; }
td.org-left { text-align: left; }
td.org-center { text-align: center; }
dt { font-weight: bold; }
.footpara { display: inline; }
.footdef { margin-bottom: 1em; }
.figure { padding: 1em; }
.figure p { text-align: center; }
.equation-container {
display: table;
text-align: center;
width: 100%;
}
.equation {
vertical-align: middle;
}
.equation-label {
display: table-cell;
text-align: right;
vertical-align: middle;
}
.inlinetask {
padding: 10px;
border: 2px solid gray;
margin: 10px;
background: #ffffcc;
}
#org-div-home-and-up
{ text-align: right; font-size: 70%; white-space: nowrap; }
textarea { overflow-x: auto; }
.linenr { font-size: smaller }
.code-highlighted { background-color: #ffff00; }
.org-info-js_info-navigation { border-style: none; }
#org-info-js_console-label
{ font-size: 10px; font-weight: bold; white-space: nowrap; }
.org-info-js_search-highlight
{ background-color: #ffff00; color: #000000; font-weight: bold; }
.org-svg { width: 90%; }
/*]]>*/-->
</style>
<script type="text/javascript">
// @license magnet:?xt=urn:btih:e95b018ef3580986a04669f1b5879592219e2a7a&dn=public-domain.txt Public Domain
<!--/*--><![CDATA[/*><!--*/
function CodeHighlightOn(elem, id)
{
var target = document.getElementById(id);
if(null != target) {
elem.classList.add("code-highlighted");
target.classList.add("code-highlighted");
}
}
function CodeHighlightOff(elem, id)
{
var target = document.getElementById(id);
if(null != target) {
elem.classList.remove("code-highlighted");
target.classList.remove("code-highlighted");
}
}
/*]]>*///-->
// @license-end
</script>
</head>
<body>
<div id="content">
<p>
Q: Is it possible to overload Clojure multi-methods on arity?
<br>
A: Yes. Below a code example
</p>
<div class="org-src-container">
<pre class="src src-clojure">
(def u1 {:name "bob" :company "Facebook" :salary 100000})
(def u2 {:name "jane" :company "Google" :salary 150000})
(def u3 {:name "mike" :company "Other" :salary 160000})
(defmulti tm (fn [user & etc] (:company user)))
(defmethod tm "Google" [user] "Google user")
(defmethod tm "Facebook" [user] "Facebook user")
(defmethod tm "Other"
([user] "Other user with one argument")
([user y] "Other user with two argument")
([user y & etc] "Other user with many arguments"))
;; (tm u1)
;; "Facebook user"
;; (tm u2)
;; "Google user"
;; (tm u3)
;; "Other user with one argument"
;; (tm u3 1)
;; "Other user with two argument"
;; (tm u3 1 3)
;; "Other user with many arguments"
</pre>
</div>
</div>
</body>
</html>Davide Restivohttp://www.blogger.com/profile/00132926969744050826noreply@blogger.com0tag:blogger.com,1999:blog-13363319.post-78058337865877213092019-12-15T09:53:00.002+01:002019-12-15T11:07:16.324+01:00Midnight Commander Cheat Sheet<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<!-- 2019-12-15 Sun 11:06 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Midnight Commander Cheat Sheet</title>
<meta name="generator" content="Org mode" />
<meta name="author" content="Davide Restivo" />
<style type="text/css">
<!--/*--><![CDATA[/*><!--*/
.title { text-align: center;
margin-bottom: .2em; }
.subtitle { text-align: center;
font-size: medium;
font-weight: bold;
margin-top:0; }
.todo { font-family: monospace; color: red; }
.done { font-family: monospace; color: green; }
.priority { font-family: monospace; color: orange; }
.tag { background-color: #eee; font-family: monospace;
padding: 2px; font-size: 80%; font-weight: normal; }
.timestamp { color: #bebebe; }
.timestamp-kwd { color: #5f9ea0; }
.org-right { margin-left: auto; margin-right: 0px; text-align: right; }
.org-left { margin-left: 0px; margin-right: auto; text-align: left; }
.org-center { margin-left: auto; margin-right: auto; text-align: center; }
.underline { text-decoration: underline; }
#postamble p, #preamble p { font-size: 90%; margin: .2em; }
p.verse { margin-left: 3%; }
pre {
border: 1px solid #ccc;
box-shadow: 3px 3px 3px #eee;
padding: 8pt;
font-family: monospace;
overflow: auto;
margin: 1.2em;
}
pre.src {
position: relative;
overflow: visible;
padding-top: 1.2em;
}
pre.src:before {
display: none;
position: absolute;
background-color: white;
top: -10px;
right: 10px;
padding: 3px;
border: 1px solid black;
}
pre.src:hover:before { display: inline;}
/* Languages per Org manual */
pre.src-asymptote:before { content: 'Asymptote'; }
pre.src-awk:before { content: 'Awk'; }
pre.src-C:before { content: 'C'; }
/* pre.src-C++ doesn't work in CSS */
pre.src-clojure:before { content: 'Clojure'; }
pre.src-css:before { content: 'CSS'; }
pre.src-D:before { content: 'D'; }
pre.src-ditaa:before { content: 'ditaa'; }
pre.src-dot:before { content: 'Graphviz'; }
pre.src-calc:before { content: 'Emacs Calc'; }
pre.src-emacs-lisp:before { content: 'Emacs Lisp'; }
pre.src-fortran:before { content: 'Fortran'; }
pre.src-gnuplot:before { content: 'gnuplot'; }
pre.src-haskell:before { content: 'Haskell'; }
pre.src-hledger:before { content: 'hledger'; }
pre.src-java:before { content: 'Java'; }
pre.src-js:before { content: 'Javascript'; }
pre.src-latex:before { content: 'LaTeX'; }
pre.src-ledger:before { content: 'Ledger'; }
pre.src-lisp:before { content: 'Lisp'; }
pre.src-lilypond:before { content: 'Lilypond'; }
pre.src-lua:before { content: 'Lua'; }
pre.src-matlab:before { content: 'MATLAB'; }
pre.src-mscgen:before { content: 'Mscgen'; }
pre.src-ocaml:before { content: 'Objective Caml'; }
pre.src-octave:before { content: 'Octave'; }
pre.src-org:before { content: 'Org mode'; }
pre.src-oz:before { content: 'OZ'; }
pre.src-plantuml:before { content: 'Plantuml'; }
pre.src-processing:before { content: 'Processing.js'; }
pre.src-python:before { content: 'Python'; }
pre.src-R:before { content: 'R'; }
pre.src-ruby:before { content: 'Ruby'; }
pre.src-sass:before { content: 'Sass'; }
pre.src-scheme:before { content: 'Scheme'; }
pre.src-screen:before { content: 'Gnu Screen'; }
pre.src-sed:before { content: 'Sed'; }
pre.src-sh:before { content: 'shell'; }
pre.src-sql:before { content: 'SQL'; }
pre.src-sqlite:before { content: 'SQLite'; }
/* additional languages in org.el's org-babel-load-languages alist */
pre.src-forth:before { content: 'Forth'; }
pre.src-io:before { content: 'IO'; }
pre.src-J:before { content: 'J'; }
pre.src-makefile:before { content: 'Makefile'; }
pre.src-maxima:before { content: 'Maxima'; }
pre.src-perl:before { content: 'Perl'; }
pre.src-picolisp:before { content: 'Pico Lisp'; }
pre.src-scala:before { content: 'Scala'; }
pre.src-shell:before { content: 'Shell Script'; }
pre.src-ebnf2ps:before { content: 'ebfn2ps'; }
/* additional language identifiers per "defun org-babel-execute"
in ob-*.el */
pre.src-cpp:before { content: 'C++'; }
pre.src-abc:before { content: 'ABC'; }
pre.src-coq:before { content: 'Coq'; }
pre.src-groovy:before { content: 'Groovy'; }
/* additional language identifiers from org-babel-shell-names in
ob-shell.el: ob-shell is the only babel language using a lambda to put
the execution function name together. */
pre.src-bash:before { content: 'bash'; }
pre.src-csh:before { content: 'csh'; }
pre.src-ash:before { content: 'ash'; }
pre.src-dash:before { content: 'dash'; }
pre.src-ksh:before { content: 'ksh'; }
pre.src-mksh:before { content: 'mksh'; }
pre.src-posh:before { content: 'posh'; }
/* Additional Emacs modes also supported by the LaTeX listings package */
pre.src-ada:before { content: 'Ada'; }
pre.src-asm:before { content: 'Assembler'; }
pre.src-caml:before { content: 'Caml'; }
pre.src-delphi:before { content: 'Delphi'; }
pre.src-html:before { content: 'HTML'; }
pre.src-idl:before { content: 'IDL'; }
pre.src-mercury:before { content: 'Mercury'; }
pre.src-metapost:before { content: 'MetaPost'; }
pre.src-modula-2:before { content: 'Modula-2'; }
pre.src-pascal:before { content: 'Pascal'; }
pre.src-ps:before { content: 'PostScript'; }
pre.src-prolog:before { content: 'Prolog'; }
pre.src-simula:before { content: 'Simula'; }
pre.src-tcl:before { content: 'tcl'; }
pre.src-tex:before { content: 'TeX'; }
pre.src-plain-tex:before { content: 'Plain TeX'; }
pre.src-verilog:before { content: 'Verilog'; }
pre.src-vhdl:before { content: 'VHDL'; }
pre.src-xml:before { content: 'XML'; }
pre.src-nxml:before { content: 'XML'; }
/* add a generic configuration mode; LaTeX export needs an additional
(add-to-list 'org-latex-listings-langs '(conf " ")) in .emacs */
pre.src-conf:before { content: 'Configuration File'; }
table { border-collapse:collapse; }
caption.t-above { caption-side: top; }
caption.t-bottom { caption-side: bottom; }
td, th { vertical-align:top; }
th.org-right { text-align: center; }
th.org-left { text-align: center; }
th.org-center { text-align: center; }
td.org-right { text-align: right; }
td.org-left { text-align: left; }
td.org-center { text-align: center; }
dt { font-weight: bold; }
.footpara { display: inline; }
.footdef { margin-bottom: 1em; }
.figure { padding: 1em; }
.figure p { text-align: center; }
.equation-container {
display: table;
text-align: center;
width: 100%;
}
.equation {
vertical-align: middle;
}
.equation-label {
display: table-cell;
text-align: right;
vertical-align: middle;
}
.inlinetask {
padding: 10px;
border: 2px solid gray;
margin: 10px;
background: #ffffcc;
}
#org-div-home-and-up
{ text-align: right; font-size: 70%; white-space: nowrap; }
textarea { overflow-x: auto; }
.linenr { font-size: smaller }
.code-highlighted { background-color: #ffff00; }
.org-info-js_info-navigation { border-style: none; }
#org-info-js_console-label
{ font-size: 10px; font-weight: bold; white-space: nowrap; }
.org-info-js_search-highlight
{ background-color: #ffff00; color: #000000; font-weight: bold; }
.org-svg { width: 90%; }
/*]]>*/-->
</style>
<script type="text/javascript">
/*
@licstart The following is the entire license notice for the
JavaScript code in this tag.
Copyright (C) 2012-2019 Free Software Foundation, Inc.
The JavaScript code in this tag is free software: you can
redistribute it and/or modify it under the terms of the GNU
General Public License (GNU GPL) as published by the Free Software
Foundation, either version 3 of the License, or (at your option)
any later version. The code is distributed WITHOUT ANY WARRANTY;
without even the implied warranty of MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE. See the GNU GPL for more details.
As additional permission under GNU GPL version 3 section 7, you
may distribute non-source (e.g., minimized or compacted) forms of
that code without the copy of the GNU GPL normally required by
section 4, provided you include this license notice and a URL
through which recipients can access the Corresponding Source.
@licend The above is the entire license notice
for the JavaScript code in this tag.
*/
<!--/*--><![CDATA[/*><!--*/
function CodeHighlightOn(elem, id)
{
var target = document.getElementById(id);
if(null != target) {
elem.cacheClassElem = elem.className;
elem.cacheClassTarget = target.className;
target.className = "code-highlighted";
elem.className = "code-highlighted";
}
}
function CodeHighlightOff(elem, id)
{
var target = document.getElementById(id);
if(elem.cacheClassElem)
elem.className = elem.cacheClassElem;
if(elem.cacheClassTarget)
target.className = elem.cacheClassTarget;
}
/*]]>*///-->
</script>
</head>
<body>
<div id="content">
<div id="table-of-contents">
<h2>Table of Contents</h2>
<div id="text-table-of-contents">
<ul>
<li><a href="#org7fd43ae">1. General</a></li>
<li><a href="#orgdcea1ee">2. Command Prompt</a></li>
<li><a href="#orgac2558b">3. Files Selection</a></li>
<li><a href="#org8aac15d">4. File View mode</a></li>
<li><a href="#org82174c5">5. References</a></li>
</ul>
</div>
</div>
<div id="outline-container-org7fd43ae" class="outline-2">
<h2 id="org7fd43ae"><span class="section-number-2">1</span> General</h2>
<div class="outline-text-2" id="text-1">
<p>
On modern keyboards instead of [META] both [ALT] and [ESC] can be
used.
</p>
<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<colgroup>
<col class="org-left" />
<col class="org-left" />
</colgroup>
<thead>
<tr>
<th scope="col" class="org-left">Shortcut</th>
<th scope="col" class="org-left">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="org-left">TAB</td>
<td class="org-left">Jump from one panel to the other</td>
</tr>
<tr>
<td class="org-left">C-u</td>
<td class="org-left">Swap panels</td>
</tr>
<tr>
<td class="org-left">C-r</td>
<td class="org-left">Refresh current pane</td>
</tr>
<tr>
<td class="org-left">C-l</td>
<td class="org-left">Redraw current pane</td>
</tr>
<tr>
<td class="org-left">C-\</td>
<td class="org-left">Show the directory Hotlist</td>
</tr>
<tr>
<td class="org-left">C-SPACE</td>
<td class="org-left">Show current directory size</td>
</tr>
<tr>
<td class="org-left">M-i</td>
<td class="org-left">Make the other panel show the same directory as the active panel</td>
</tr>
<tr>
<td class="org-left">M-c</td>
<td class="org-left">Quick cd dialog</td>
</tr>
<tr>
<td class="org-left">M-?</td>
<td class="org-left">Search dialog</td>
</tr>
<tr>
<td class="org-left">M-.</td>
<td class="org-left">Toggle "Show Hidden Files" feature</td>
</tr>
<tr>
<td class="org-left">M-,</td>
<td class="org-left">Switch MC layout from left-right to top-bottom</td>
</tr>
<tr>
<td class="org-left">M-t</td>
<td class="org-left">Change panel listing mode: standard, brief, full</td>
</tr>
<tr>
<td class="org-left">M-o</td>
<td class="org-left">Load the directory under the cursor on the other</td>
</tr>
<tr>
<td class="org-left"> </td>
<td class="org-left">panel and move the selection to the next one in the current panel</td>
</tr>
<tr>
<td class="org-left">M-SHIFT-h</td>
<td class="org-left">Show the directory history</td>
</tr>
<tr>
<td class="org-left">M-y</td>
<td class="org-left">Move to the previous directory in the directory history</td>
</tr>
<tr>
<td class="org-left">M-u</td>
<td class="org-left">Move to the next directory in the directory history</td>
</tr>
<tr>
<td class="org-left">SHIFT-F4</td>
<td class="org-left">Create new file</td>
</tr>
</tbody>
</table>
</div>
</div>
<div id="outline-container-orgdcea1ee" class="outline-2">
<h2 id="orgdcea1ee"><span class="section-number-2">2</span> Command Prompt</h2>
<div class="outline-text-2" id="text-2">
<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<colgroup>
<col class="org-left" />
<col class="org-left" />
</colgroup>
<thead>
<tr>
<th scope="col" class="org-left">Shortcut</th>
<th scope="col" class="org-left">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="org-left">C-o</td>
<td class="org-left">Drop to the console</td>
</tr>
<tr>
<td class="org-left">M-TAB</td>
<td class="org-left">Command prompt auto-completion</td>
</tr>
<tr>
<td class="org-left">M-Enter</td>
<td class="org-left">Copy file/directory name to the prompt</td>
</tr>
<tr>
<td class="org-left">M-a</td>
<td class="org-left">Copy file/directory name to the prompt (full path included)</td>
</tr>
<tr>
<td class="org-left">M-h</td>
<td class="org-left">Show command prompt history</td>
</tr>
<tr>
<td class="org-left">M-p</td>
<td class="org-left">Returns the previous command prompt</td>
</tr>
<tr>
<td class="org-left">M-n</td>
<td class="org-left">Returns the next command prompt</td>
</tr>
<tr>
<td class="org-left">C-x t</td>
<td class="org-left">Copy all your selected files to the prompt</td>
</tr>
<tr>
<td class="org-left">C-x C-t</td>
<td class="org-left">Copy all your selected files to the prompt for the opposing panel</td>
</tr>
<tr>
<td class="org-left">C-x p</td>
<td class="org-left">Copy the current path to the prompt</td>
</tr>
<tr>
<td class="org-left">C-x C-p</td>
<td class="org-left">Copy the current path to the prompt for the opposite panel</td>
</tr>
</tbody>
</table>
</div>
</div>
<div id="outline-container-orgac2558b" class="outline-2">
<h2 id="orgac2558b"><span class="section-number-2">3</span> Files Selection</h2>
<div class="outline-text-2" id="text-3">
<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<colgroup>
<col class="org-left" />
<col class="org-left" />
</colgroup>
<thead>
<tr>
<th scope="col" class="org-left">Shortcut</th>
<th scope="col" class="org-left">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="org-left">Insert or C-t</td>
<td class="org-left">Select/deselect file</td>
</tr>
<tr>
<td class="org-left">*</td>
<td class="org-left">Invert selection on files</td>
</tr>
<tr>
<td class="org-left">+</td>
<td class="org-left">Specify file selection options</td>
</tr>
<tr>
<td class="org-left">-</td>
<td class="org-left">Specify file de-selection options</td>
</tr>
</tbody>
</table>
</div>
</div>
<div id="outline-container-org8aac15d" class="outline-2">
<h2 id="org8aac15d"><span class="section-number-2">4</span> File View mode</h2>
<div class="outline-text-2" id="text-4">
<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<colgroup>
<col class="org-left" />
<col class="org-left" />
</colgroup>
<thead>
<tr>
<th scope="col" class="org-left">Shortcut</th>
<th scope="col" class="org-left">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="org-left">C-f</td>
<td class="org-left">View the next file</td>
</tr>
<tr>
<td class="org-left">C-b</td>
<td class="org-left">View the previous file</td>
</tr>
</tbody>
</table>
</div>
</div>
<div id="outline-container-org82174c5" class="outline-2">
<h2 id="org82174c5"><span class="section-number-2">5</span> References</h2>
<div class="outline-text-2" id="text-5">
<ul class="org-ul">
<li><a href="http://nawaz.org/media/docs/mc/mc.pdf">http://nawaz.org/media/docs/mc/mc.pdf</a></li>
<li><a href="http://klimer.eu/2015/05/01/use-midnight-commander-like-a-pro/">http://klimer.eu/2015/05/01/use-midnight-commander-like-a-pro/</a></li>
<li><a href="https://midnight-commander.org/rufork/docs/mc_hotkeys_en.pdf">https://midnight-commander.org/rufork/docs/mc_hotkeys_en.pdf</a></li>
</ul>
</div>
</div>
</div>
</body>
</html>Davide Restivohttp://www.blogger.com/profile/00132926969744050826noreply@blogger.com0tag:blogger.com,1999:blog-13363319.post-13033001384873136202019-12-14T15:54:00.001+01:002019-12-15T12:31:02.991+01:00 Lisp Expressions vs. Lisp Forms<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<!-- 2019-12-14 Sat 15:53 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Lisp Expressions vs. Lisp Forms</title>
<meta name="generator" content="Org mode" />
<meta name="author" content="Davide Restivo" />
<style type="text/css">
<!--/*--><![CDATA[/*><!--*/
.title { text-align: center;
margin-bottom: .2em; }
.subtitle { text-align: center;
font-size: medium;
font-weight: bold;
margin-top:0; }
.todo { font-family: monospace; color: red; }
.done { font-family: monospace; color: green; }
.priority { font-family: monospace; color: orange; }
.tag { background-color: #eee; font-family: monospace;
padding: 2px; font-size: 80%; font-weight: normal; }
.timestamp { color: #bebebe; }
.timestamp-kwd { color: #5f9ea0; }
.org-right { margin-left: auto; margin-right: 0px; text-align: right; }
.org-left { margin-left: 0px; margin-right: auto; text-align: left; }
.org-center { margin-left: auto; margin-right: auto; text-align: center; }
.underline { text-decoration: underline; }
#postamble p, #preamble p { font-size: 90%; margin: .2em; }
p.verse { margin-left: 3%; }
pre {
border: 1px solid #ccc;
box-shadow: 3px 3px 3px #eee;
padding: 8pt;
font-family: monospace;
overflow: auto;
margin: 1.2em;
}
pre.src {
position: relative;
overflow: visible;
padding-top: 1.2em;
}
pre.src:before {
display: none;
position: absolute;
background-color: white;
top: -10px;
right: 10px;
padding: 3px;
border: 1px solid black;
}
pre.src:hover:before { display: inline;}
/* Languages per Org manual */
pre.src-asymptote:before { content: 'Asymptote'; }
pre.src-awk:before { content: 'Awk'; }
pre.src-C:before { content: 'C'; }
/* pre.src-C++ doesn't work in CSS */
pre.src-clojure:before { content: 'Clojure'; }
pre.src-css:before { content: 'CSS'; }
pre.src-D:before { content: 'D'; }
pre.src-ditaa:before { content: 'ditaa'; }
pre.src-dot:before { content: 'Graphviz'; }
pre.src-calc:before { content: 'Emacs Calc'; }
pre.src-emacs-lisp:before { content: 'Emacs Lisp'; }
pre.src-fortran:before { content: 'Fortran'; }
pre.src-gnuplot:before { content: 'gnuplot'; }
pre.src-haskell:before { content: 'Haskell'; }
pre.src-hledger:before { content: 'hledger'; }
pre.src-java:before { content: 'Java'; }
pre.src-js:before { content: 'Javascript'; }
pre.src-latex:before { content: 'LaTeX'; }
pre.src-ledger:before { content: 'Ledger'; }
pre.src-lisp:before { content: 'Lisp'; }
pre.src-lilypond:before { content: 'Lilypond'; }
pre.src-lua:before { content: 'Lua'; }
pre.src-matlab:before { content: 'MATLAB'; }
pre.src-mscgen:before { content: 'Mscgen'; }
pre.src-ocaml:before { content: 'Objective Caml'; }
pre.src-octave:before { content: 'Octave'; }
pre.src-org:before { content: 'Org mode'; }
pre.src-oz:before { content: 'OZ'; }
pre.src-plantuml:before { content: 'Plantuml'; }
pre.src-processing:before { content: 'Processing.js'; }
pre.src-python:before { content: 'Python'; }
pre.src-R:before { content: 'R'; }
pre.src-ruby:before { content: 'Ruby'; }
pre.src-sass:before { content: 'Sass'; }
pre.src-scheme:before { content: 'Scheme'; }
pre.src-screen:before { content: 'Gnu Screen'; }
pre.src-sed:before { content: 'Sed'; }
pre.src-sh:before { content: 'shell'; }
pre.src-sql:before { content: 'SQL'; }
pre.src-sqlite:before { content: 'SQLite'; }
/* additional languages in org.el's org-babel-load-languages alist */
pre.src-forth:before { content: 'Forth'; }
pre.src-io:before { content: 'IO'; }
pre.src-J:before { content: 'J'; }
pre.src-makefile:before { content: 'Makefile'; }
pre.src-maxima:before { content: 'Maxima'; }
pre.src-perl:before { content: 'Perl'; }
pre.src-picolisp:before { content: 'Pico Lisp'; }
pre.src-scala:before { content: 'Scala'; }
pre.src-shell:before { content: 'Shell Script'; }
pre.src-ebnf2ps:before { content: 'ebfn2ps'; }
/* additional language identifiers per "defun org-babel-execute"
in ob-*.el */
pre.src-cpp:before { content: 'C++'; }
pre.src-abc:before { content: 'ABC'; }
pre.src-coq:before { content: 'Coq'; }
pre.src-groovy:before { content: 'Groovy'; }
/* additional language identifiers from org-babel-shell-names in
ob-shell.el: ob-shell is the only babel language using a lambda to put
the execution function name together. */
pre.src-bash:before { content: 'bash'; }
pre.src-csh:before { content: 'csh'; }
pre.src-ash:before { content: 'ash'; }
pre.src-dash:before { content: 'dash'; }
pre.src-ksh:before { content: 'ksh'; }
pre.src-mksh:before { content: 'mksh'; }
pre.src-posh:before { content: 'posh'; }
/* Additional Emacs modes also supported by the LaTeX listings package */
pre.src-ada:before { content: 'Ada'; }
pre.src-asm:before { content: 'Assembler'; }
pre.src-caml:before { content: 'Caml'; }
pre.src-delphi:before { content: 'Delphi'; }
pre.src-html:before { content: 'HTML'; }
pre.src-idl:before { content: 'IDL'; }
pre.src-mercury:before { content: 'Mercury'; }
pre.src-metapost:before { content: 'MetaPost'; }
pre.src-modula-2:before { content: 'Modula-2'; }
pre.src-pascal:before { content: 'Pascal'; }
pre.src-ps:before { content: 'PostScript'; }
pre.src-prolog:before { content: 'Prolog'; }
pre.src-simula:before { content: 'Simula'; }
pre.src-tcl:before { content: 'tcl'; }
pre.src-tex:before { content: 'TeX'; }
pre.src-plain-tex:before { content: 'Plain TeX'; }
pre.src-verilog:before { content: 'Verilog'; }
pre.src-vhdl:before { content: 'VHDL'; }
pre.src-xml:before { content: 'XML'; }
pre.src-nxml:before { content: 'XML'; }
/* add a generic configuration mode; LaTeX export needs an additional
(add-to-list 'org-latex-listings-langs '(conf " ")) in .emacs */
pre.src-conf:before { content: 'Configuration File'; }
table { border-collapse:collapse; }
caption.t-above { caption-side: top; }
caption.t-bottom { caption-side: bottom; }
td, th { vertical-align:top; }
th.org-right { text-align: center; }
th.org-left { text-align: center; }
th.org-center { text-align: center; }
td.org-right { text-align: right; }
td.org-left { text-align: left; }
td.org-center { text-align: center; }
dt { font-weight: bold; }
.footpara { display: inline; }
.footdef { margin-bottom: 1em; }
.figure { padding: 1em; }
.figure p { text-align: center; }
.equation-container {
display: table;
text-align: center;
width: 100%;
}
.equation {
vertical-align: middle;
}
.equation-label {
display: table-cell;
text-align: right;
vertical-align: middle;
}
.inlinetask {
padding: 10px;
border: 2px solid gray;
margin: 10px;
background: #ffffcc;
}
#org-div-home-and-up
{ text-align: right; font-size: 70%; white-space: nowrap; }
textarea { overflow-x: auto; }
.linenr { font-size: smaller }
.code-highlighted { background-color: #ffff00; }
.org-info-js_info-navigation { border-style: none; }
#org-info-js_console-label
{ font-size: 10px; font-weight: bold; white-space: nowrap; }
.org-info-js_search-highlight
{ background-color: #ffff00; color: #000000; font-weight: bold; }
.org-svg { width: 90%; }
/*]]>*/-->
</style>
<script type="text/javascript">
/*
@licstart The following is the entire license notice for the
JavaScript code in this tag.
Copyright (C) 2012-2019 Free Software Foundation, Inc.
The JavaScript code in this tag is free software: you can
redistribute it and/or modify it under the terms of the GNU
General Public License (GNU GPL) as published by the Free Software
Foundation, either version 3 of the License, or (at your option)
any later version. The code is distributed WITHOUT ANY WARRANTY;
without even the implied warranty of MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE. See the GNU GPL for more details.
As additional permission under GNU GPL version 3 section 7, you
may distribute non-source (e.g., minimized or compacted) forms of
that code without the copy of the GNU GPL normally required by
section 4, provided you include this license notice and a URL
through which recipients can access the Corresponding Source.
@licend The above is the entire license notice
for the JavaScript code in this tag.
*/
<!--/*--><![CDATA[/*><!--*/
function CodeHighlightOn(elem, id)
{
var target = document.getElementById(id);
if(null != target) {
elem.cacheClassElem = elem.className;
elem.cacheClassTarget = target.className;
target.className = "code-highlighted";
elem.className = "code-highlighted";
}
}
function CodeHighlightOff(elem, id)
{
var target = document.getElementById(id);
if(elem.cacheClassElem)
elem.className = elem.cacheClassElem;
if(elem.cacheClassTarget)
target.className = elem.cacheClassTarget;
}
/*]]>*///-->
</script>
</head>
<body>
<div id="content">
<div id="table-of-contents">
<h2>Table of Contents</h2>
<div id="text-table-of-contents">
<ul>
<li><a href="#org6ff27ab">1. Lisp Expressions vs. Lisp Forms</a>
<ul>
<li><a href="#orgd55c2c0">1.1. General</a></li>
<li><a href="#org4d59f4b">1.2. Examples</a></li>
<li><a href="#orga8c5084">1.3. References</a></li>
</ul>
</li>
</ul>
</div>
</div>
<div id="outline-container-org6ff27ab" class="outline-2">
<h2 id="org6ff27ab"><span class="section-number-2">1</span> Lisp Expressions vs. Lisp Forms</h2>
<div class="outline-text-2" id="text-1">
</div>
<div id="outline-container-orgd55c2c0" class="outline-3">
<h3 id="orgd55c2c0"><span class="section-number-3">1.1</span> General</h3>
<div class="outline-text-3" id="text-1-1">
<p>
During my Lisp studies (Emacs Lisp and Clojure), I often encountered
the terms: Lisp "Expression" and Lisp "Form" and I started wondering
what is the difference since most literature seems to use both terms
interchangeable.
</p>
<p>
An excerpt from: “Living Clojure” - Carin Meier
</p>
<blockquote>
<p>
"An expression is [Lisp] code that can be evaluated for a result, and a
form is a valid expression that can be evaluated"
</p>
</blockquote>
<p>
In other words an <span class="underline">expression</span> is a valid input for the LISP `READ` (<u>R</u>EPL) while a <span class="underline">form</span> is a valid input for both the `READ` and the `EVAL`
part of the (<u>RE</u>PL).
</p>
</div>
</div>
<div id="outline-container-org4d59f4b" class="outline-3">
<h3 id="org4d59f4b"><span class="section-number-3">1.2</span> Examples</h3>
<div class="outline-text-3" id="text-1-2">
<p>
The below is a valid form (valid both for the `READ` and the `EVAL`)
</p>
<div class="org-src-container">
<pre class="src src-clojure">(+ 1 2)
;; => 3
</pre>
</div>
<p>
The below (assuming the 'foo' function is not defined) is a valid
expression but not a valid form, it can be read but not evaluated
since 'foo' is not defined:
</p>
<div class="org-src-container">
<pre class="src src-clojure">(foo 1 2)
;; => Syntax error compiling at (REPL:1:1). Unable to resolve symbol: foo in this context
</pre>
</div>
</div>
</div>
<div id="outline-container-orga8c5084" class="outline-3">
<h3 id="orga8c5084"><span class="section-number-3">1.3</span> References</h3>
<div class="outline-text-3" id="text-1-3">
<ul class="org-ul">
<li><a href="https://en.wikipedia.org/wiki/S-expression">https://en.wikipedia.org/wiki/S-expression</a></li>
<li><a href="https://stackoverflow.com/questions/17206657/are-lisp-forms-and-lisp-expressions-same-thing">https://stackoverflow.com/questions/17206657/are-lisp-forms-and-lisp-expressions-same-thing</a></li>
</ul>
</div>
</div>
</div>
</div>
</body>
</html>Davide Restivohttp://www.blogger.com/profile/00132926969744050826noreply@blogger.com0tag:blogger.com,1999:blog-13363319.post-18250401026663096642019-06-28T09:52:00.001+02:002019-06-28T09:53:59.712+02:00Declarative Thinking, Declarative Practice - Kevlin Henney<iframe allowfullscreen="" frameborder="0" height="270" src="https://www.youtube.com/embed/nrVIlhtoE3Y" width="480"></iframe>Davide Restivohttp://www.blogger.com/profile/00132926969744050826noreply@blogger.com0tag:blogger.com,1999:blog-13363319.post-45230472763544477312019-01-27T23:13:00.001+01:002019-01-27T23:14:13.714+01:00It's Magit! - John Wiegley<iframe allowfullscreen="" frameborder="0" height="270" src="https://www.youtube.com/embed/j-k-lkilbEs" width="480"></iframe>Davide Restivohttp://www.blogger.com/profile/00132926969744050826noreply@blogger.com0tag:blogger.com,1999:blog-13363319.post-3341287011800143992017-10-07T17:55:00.001+02:002017-10-07T17:55:15.841+02:00Smoking Man<a data-flickr-embed="true" href="https://www.flickr.com/photos/somemixedstuff/37520500722/in/dateposted-public/" title="Smoking Man"><img src="https://farm5.staticflickr.com/4495/37520500722_598c0e0c3e.jpg" width="333" height="500" alt="Smoking Man"></a><script async src="//embedr.flickr.com/assets/client-code.js" charset="utf-8"></script>Davide Restivohttp://www.blogger.com/profile/00132926969744050826noreply@blogger.com0tag:blogger.com,1999:blog-13363319.post-61408550584212844792017-04-23T22:10:00.001+02:002017-04-23T22:12:23.088+02:00P vs. NP and the Computational Complexity Zoo<iframe allowfullscreen="" frameborder="0" height="270" src="https://www.youtube.com/embed/YX40hbAHx3s" width="480"></iframe>Davide Restivohttp://www.blogger.com/profile/00132926969744050826noreply@blogger.com0tag:blogger.com,1999:blog-13363319.post-39507018614394560202016-08-20T21:10:00.005+02:002016-08-20T21:11:35.879+02:00buskers-bern-2016 #16<a data-flickr-embed="true" href="https://www.flickr.com/photos/somemixedstuff/28354976824/in/dateposted-public/" title="buskers-bern-2016 #16"><img src="https://c1.staticflickr.com/9/8591/28354976824_c0563a1eb3.jpg" width="333" height="500" alt="buskers-bern-2016 #16"></a><script async src="//embedr.flickr.com/assets/client-code.js" charset="utf-8"></script>Davide Restivohttp://www.blogger.com/profile/00132926969744050826noreply@blogger.com0tag:blogger.com,1999:blog-13363319.post-82804428965183267912016-08-20T21:10:00.002+02:002016-08-20T21:11:35.948+02:00buskers-bern-2016 #15<a data-flickr-embed="true" href="https://www.flickr.com/photos/somemixedstuff/28354973824/in/dateposted-public/" title="buskers-bern-2016 #15"><img src="https://c1.staticflickr.com/9/8569/28354973824_5e96e8a150.jpg" width="333" height="500" alt="buskers-bern-2016 #15"></a><script async src="//embedr.flickr.com/assets/client-code.js" charset="utf-8"></script>Davide Restivohttp://www.blogger.com/profile/00132926969744050826noreply@blogger.com0tag:blogger.com,1999:blog-13363319.post-7919948066934965852016-08-20T21:09:00.007+02:002016-08-20T21:11:35.942+02:00buskers-bern-2016 #14<a data-flickr-embed="true" href="https://www.flickr.com/photos/somemixedstuff/28354969354/in/dateposted-public/" title="buskers-bern-2016 #14"><img src="https://c3.staticflickr.com/9/8717/28354969354_336d83e1d4.jpg" width="500" height="333" alt="buskers-bern-2016 #14"></a><script async src="//embedr.flickr.com/assets/client-code.js" charset="utf-8"></script>Davide Restivohttp://www.blogger.com/profile/00132926969744050826noreply@blogger.com0tag:blogger.com,1999:blog-13363319.post-65612860006644909702016-08-20T21:09:00.005+02:002016-08-20T21:11:35.890+02:00buskers-bern-2016 #13<a data-flickr-embed="true" href="https://www.flickr.com/photos/somemixedstuff/28354964534/in/dateposted-public/" title="buskers-bern-2016 #13"><img src="https://c7.staticflickr.com/9/8267/28354964534_eaec78ebd3.jpg" width="333" height="500" alt="buskers-bern-2016 #13"></a><script async src="//embedr.flickr.com/assets/client-code.js" charset="utf-8"></script>Davide Restivohttp://www.blogger.com/profile/00132926969744050826noreply@blogger.com0tag:blogger.com,1999:blog-13363319.post-67151126229715734832016-08-20T21:09:00.003+02:002016-08-20T21:11:35.900+02:00buskers-bern-2016 #12<a data-flickr-embed="true" href="https://www.flickr.com/photos/somemixedstuff/28688335670/in/dateposted-public/" title="buskers-bern-2016 #12"><img src="https://c7.staticflickr.com/8/7569/28688335670_daae7d094d.jpg" width="333" height="500" alt="buskers-bern-2016 #12"></a><script async src="//embedr.flickr.com/assets/client-code.js" charset="utf-8"></script>Davide Restivohttp://www.blogger.com/profile/00132926969744050826noreply@blogger.com0tag:blogger.com,1999:blog-13363319.post-73911188701986663132016-08-20T21:09:00.001+02:002016-08-20T21:11:35.930+02:00buskers-bern-2016 #11<a data-flickr-embed="true" href="https://www.flickr.com/photos/somemixedstuff/28688331250/in/dateposted-public/" title="buskers-bern-2016 #11"><img src="https://c3.staticflickr.com/9/8633/28688331250_7babeb9907.jpg" width="500" height="333" alt="buskers-bern-2016 #11"></a><script async src="//embedr.flickr.com/assets/client-code.js" charset="utf-8"></script>Davide Restivohttp://www.blogger.com/profile/00132926969744050826noreply@blogger.com0tag:blogger.com,1999:blog-13363319.post-66971056632090026392016-08-20T21:08:00.005+02:002016-08-20T21:11:35.895+02:00buskers-bern-2016 #10<a data-flickr-embed="true" href="https://www.flickr.com/photos/somemixedstuff/28357679053/in/dateposted-public/" title="buskers-bern-2016 #10"><img src="https://c6.staticflickr.com/9/8307/28357679053_6ce22e73e6.jpg" width="333" height="500" alt="buskers-bern-2016 #10"></a><script async src="//embedr.flickr.com/assets/client-code.js" charset="utf-8"></script>Davide Restivohttp://www.blogger.com/profile/00132926969744050826noreply@blogger.com0tag:blogger.com,1999:blog-13363319.post-13239885734856444772016-08-20T21:08:00.003+02:002016-08-20T21:11:35.861+02:00buskers-bern-2016 #9<a data-flickr-embed="true" href="https://www.flickr.com/photos/somemixedstuff/28941757916/in/dateposted-public/" title="buskers-bern-2016 #9"><img src="https://c5.staticflickr.com/9/8217/28941757916_847e86aed3.jpg" width="333" height="500" alt="buskers-bern-2016 #9"></a><script async src="//embedr.flickr.com/assets/client-code.js" charset="utf-8"></script>Davide Restivohttp://www.blogger.com/profile/00132926969744050826noreply@blogger.com0tag:blogger.com,1999:blog-13363319.post-64454093208689686382016-08-20T21:08:00.001+02:002016-08-20T21:11:35.885+02:00buskers-bern-2016 #8<a data-flickr-embed="true" href="https://www.flickr.com/photos/somemixedstuff/28869238112/in/dateposted-public/" title="buskers-bern-2016 #8"><img src="https://c1.staticflickr.com/9/8620/28869238112_12dcc1bc53.jpg" width="333" height="500" alt="buskers-bern-2016 #8"></a><script async src="//embedr.flickr.com/assets/client-code.js" charset="utf-8"></script>Davide Restivohttp://www.blogger.com/profile/00132926969744050826noreply@blogger.com0tag:blogger.com,1999:blog-13363319.post-24518967312019917742016-08-20T21:07:00.006+02:002016-08-20T21:11:35.868+02:00buskers-bern-2016 #7<a data-flickr-embed="true" href="https://www.flickr.com/photos/somemixedstuff/28869235492/in/dateposted-public/" title="buskers-bern-2016 #7"><img src="https://c5.staticflickr.com/9/8628/28869235492_9ab0a6c004.jpg" width="333" height="500" alt="buskers-bern-2016 #7"></a><script async src="//embedr.flickr.com/assets/client-code.js" charset="utf-8"></script>Davide Restivohttp://www.blogger.com/profile/00132926969744050826noreply@blogger.com0tag:blogger.com,1999:blog-13363319.post-339730308253469832016-08-20T21:07:00.004+02:002016-08-20T21:11:35.873+02:00buskers-bern-2016 #6<a data-flickr-embed="true" href="https://www.flickr.com/photos/somemixedstuff/28869232072/in/dateposted-public/" title="buskers-bern-2016 #6"><img src="https://c1.staticflickr.com/9/8705/28869232072_0a7be2df93.jpg" width="333" height="500" alt="buskers-bern-2016 #6"></a><script async src="//embedr.flickr.com/assets/client-code.js" charset="utf-8"></script>Davide Restivohttp://www.blogger.com/profile/00132926969744050826noreply@blogger.com0tag:blogger.com,1999:blog-13363319.post-68875762460237208622016-08-20T21:07:00.002+02:002016-08-20T21:11:35.908+02:00buskers-bern-2016 #5<a data-flickr-embed="true" href="https://www.flickr.com/photos/somemixedstuff/28897831441/in/dateposted-public/" title="buskers-bern-2016 #5"><img src="https://c2.staticflickr.com/9/8582/28897831441_3ca4be52a0.jpg" width="333" height="500" alt="buskers-bern-2016 #5"></a><script async src="//embedr.flickr.com/assets/client-code.js" charset="utf-8"></script>Davide Restivohttp://www.blogger.com/profile/00132926969744050826noreply@blogger.com0tag:blogger.com,1999:blog-13363319.post-72925782103242419392016-08-20T21:06:00.006+02:002016-08-20T21:11:35.919+02:00buskers-bern-2016 #4<a data-flickr-embed="true" href="https://www.flickr.com/photos/somemixedstuff/28897829131/in/dateposted-public/" title="buskers-bern-2016 #4"><img src="https://c4.staticflickr.com/9/8845/28897829131_f56a8fa8d4.jpg" width="333" height="500" alt="buskers-bern-2016 #4"></a><script async src="//embedr.flickr.com/assets/client-code.js" charset="utf-8"></script>Davide Restivohttp://www.blogger.com/profile/00132926969744050826noreply@blogger.com0tag:blogger.com,1999:blog-13363319.post-7180790902130615312016-08-20T21:06:00.003+02:002016-08-20T21:11:35.913+02:00buskers-bern-2016 #3<a data-flickr-embed="true" href="https://www.flickr.com/photos/somemixedstuff/28941740326/in/dateposted-public/" title="buskers-bern-2016 #3"><img src="https://c7.staticflickr.com/9/8038/28941740326_ff3bc6fbf2.jpg" width="333" height="500" alt="buskers-bern-2016 #3"></a><script async src="//embedr.flickr.com/assets/client-code.js" charset="utf-8"></script>Davide Restivohttp://www.blogger.com/profile/00132926969744050826noreply@blogger.com0tag:blogger.com,1999:blog-13363319.post-77276880942198514382016-08-20T21:06:00.001+02:002016-08-20T21:11:35.936+02:00buskers-bern-2016 #2<a data-flickr-embed="true" href="https://www.flickr.com/photos/somemixedstuff/28941735426/in/dateposted-public/" title="buskers-bern-2016 #2"><img src="https://c3.staticflickr.com/9/8076/28941735426_689e7d3aeb.jpg" width="333" height="500" alt="buskers-bern-2016 #2"></a><script async src="//embedr.flickr.com/assets/client-code.js" charset="utf-8"></script>Davide Restivohttp://www.blogger.com/profile/00132926969744050826noreply@blogger.com0tag:blogger.com,1999:blog-13363319.post-73510310014531605272016-08-20T21:05:00.002+02:002016-08-20T21:11:35.924+02:00buskers-bern-2016 #1<a data-flickr-embed="true" href="https://www.flickr.com/photos/somemixedstuff/28941731536/in/dateposted-public/" title="buskers-bern-2016 #1"><img src="https://c1.staticflickr.com/9/8893/28941731536_a15011c737.jpg" width="333" height="500" alt="buskers-bern-2016 #1"></a><script async src="//embedr.flickr.com/assets/client-code.js" charset="utf-8"></script>Davide Restivohttp://www.blogger.com/profile/00132926969744050826noreply@blogger.com0