~brown121407/brown.121407.xyz

81259cd337b0cc1e1e73749e179bde75b1f381a6 — Alexandru-Sergiu Marton 14 days ago 0652821 master
Merge extra with assets.
13 files changed, 163 insertions(+), 258 deletions(-)

M Makefile
D assets
A assets/bin/openring
R extra/books/{lambda-calc-a-short-intro.pdf => /lambda-calc-a-short-intro.pdf}
R extra/books/{lambda-calc-geuvers.pdf => /lambda-calc-geuvers.pdf}
R extra/books/{lambda-calc-lecture-notes-dalhousie-uni.pdf => /lambda-calc-lecture-notes-dalhousie-uni.pdf}
R extra/books/{lambda-calc-university-of-iowa.pdf => /lambda-calc-university-of-iowa.pdf}
A assets/css/style.css
A assets/pubkey.asc
D extra/picom.conf
D extra/test.php
M posts/2019-12-24-getting-into-lambda-calculus.org
M project.el
M Makefile => Makefile +1 -1
@@ 7,7 7,7 @@ publish : clean
	emacs --script project.el
	mv -f rss.xml public/rss.xml
	cp -f COPYING public/COPYING
	cp -f project.el public/extra/project.el
	cp -f project.el public/assets/project.el

ring :
	assets/bin/openring \

D assets => assets +0 -1
@@ 1,1 0,0 @@
Subproject commit 099a41a781cd2ca596e4647c6f16aeba566338fb

A assets/bin/openring => assets/bin/openring +0 -0

R extra/books/lambda-calc-a-short-intro.pdf => assets/books/lambda-calc-a-short-intro.pdf +0 -0

R extra/books/lambda-calc-geuvers.pdf => assets/books/lambda-calc-geuvers.pdf +0 -0

R extra/books/lambda-calc-lecture-notes-dalhousie-uni.pdf => assets/books/lambda-calc-lecture-notes-dalhousie-uni.pdf +0 -0

R extra/books/lambda-calc-university-of-iowa.pdf => assets/books/lambda-calc-university-of-iowa.pdf +0 -0

A assets/css/style.css => assets/css/style.css +99 -0
@@ 0,0 1,99 @@
body {
    /* font-family: monospace; */
    font-size: 1rem;
    padding: 10px;
    border: 0.6rem double;
    margin: 0 auto;
    max-width: 60%;
}

header {
    font-size: 1.2rem;
    font-weight: bold;
    font-family: monospace;
}

@media only screen and (max-width: 600px) {
    body {
	max-width: 100%;
    }
}

@media only screen and (max-width: 1000px) and (min-width: 601px) {
    body {
	max-width: 80%;
    }
}

a.liberapay {
    border: 0.2rem #f6c915 outset;
    background-color: #f6c915;;
    padding: 5px;
    color: black !important;
}

a.liberapay:hover {
    background-color: #ffd940 !important;
}

pre.inside-src {
    position: relative;
    overflow-x: auto;
    margin: 0;
    border: none;
    box-shadow: none;
    padding: 16px 8px;
}

pre.src {
    padding: 0px;
}

pre.src.src-text::before {
    content: 'Plain text';
}


code {
    background-color: #e4e4e4;
    border-radius: 3px;
}

.timestamp {
    color: #a1a1a1;
}

.table-container {
    overflow-x: auto;
}

a:visited:hover {
    background-color: blueviolet;
    color: white;
}

a:link:hover {
    background-color: blue;
    color: white;
}

a:hover code {
    background-color: gray;
}

ul.project-list {
    list-style-type: none;
    padding: 0;
}

.project-list li {
    border: 1px solid gray;
    padding: 10px;
    margin-bottom: 10px;
}

.project-list details summary {
    font-size: 1.1rem;
    font-weight: bold;
    cursor: pointer;
}

A assets/pubkey.asc => assets/pubkey.asc +50 -0
@@ 0,0 1,50 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----

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
=0PmO
-----END PGP PUBLIC KEY BLOCK-----

D extra/picom.conf => extra/picom.conf +0 -228
@@ 1,228 0,0 @@
# Thank you code_nomad: http://9m.no/ꪯ鵞
# and Arch Wiki contributors: https://wiki.archlinux.org/index.php/Compton

#################################
#
# Backend
#
#################################

# Backend to use: "xrender" or "glx".
# GLX backend is typically much faster but depends on a sane driver.
backend = "glx";

#################################
#
# GLX backend
#
#################################

glx-no-stencil = true;

# GLX backend: Copy unmodified regions from front buffer instead of redrawing them all.
# My tests with nvidia-drivers show a 10% decrease in performance when the whole screen is modified,
# but a 20% increase when only 1/4 is.
# My tests on nouveau show terrible slowdown.
glx-copy-from-front = false;

# GLX backend: Use MESA_copy_sub_buffer to do partial screen update.
# My tests on nouveau shows a 200% performance boost when only 1/4 of the screen is updated.
# May break VSync and is not available on some drivers.
# Overrides --glx-copy-from-front.
# glx-use-copysubbuffermesa = true;

# GLX backend: Avoid rebinding pixmap on window damage.
# Probably could improve performance on rapid window content changes, but is known to break things on some drivers (LLVMpipe).
# Recommended if it works.
# glx-no-rebind-pixmap = true;

# GLX backend: GLX buffer swap method we assume.
# Could be undefined (0), copy (1), exchange (2), 3-6, or buffer-age (-1).
# undefined is the slowest and the safest, and the default value.
# copy is fastest, but may fail on some drivers,
# 2-6 are gradually slower but safer (6 is still faster than 0).
# Usually, double buffer means 2, triple buffer means 3.
# buffer-age means auto-detect using GLX_EXT_buffer_age, supported by some drivers.
# Useless with --glx-use-copysubbuffermesa.
# Partially breaks --resize-damage.
# Defaults to undefined.
#glx-swap-method = "undefined";

#################################
#
# Shadows
#
#################################

# Enabled client-side shadows on windows.
shadow = true;
# The blur radius for shadows. (default 12)
shadow-radius = 5;
# The left offset for shadows. (default -15)
shadow-offset-x = -5;
# The top offset for shadows. (default -15)
shadow-offset-y = -5;
# The translucency for shadows. (default .75)
shadow-opacity = 0.5;

# Set if you want different colour shadows
# shadow-red = 0.0;
# shadow-green = 0.0;
# shadow-blue = 0.0;

# The shadow exclude options are helpful if you have shadows enabled. Due to the way compton draws its shadows, certain applications will have visual glitches
# (most applications are fine, only apps that do weird things with xshapes or argb are affected).
# This list includes all the affected apps I found in my testing. The "! name~=''" part excludes shadows on any "Unknown" windows, this prevents a visual glitch with the XFWM alt tab switcher.
shadow-exclude = [
    "! name~=''",
    "name = 'Notification'",
    "name = 'Plank'",
    "name = 'Docky'",
    "name = 'Kupfer'",
    "name = 'xfce4-notifyd'",
	"name *= 'polybar'",
    "name *= 'VLC'",
    "name *= 'compton'",
    "name *= 'Chromium'",
    "name *= 'Chrome'",
    "class_g = 'Firefox' && argb",
    "class_g = 'Conky'",
    "class_g = 'Kupfer'",
    "class_g = 'Synapse'",
    "class_g ?= 'Notify-osd'",
    "class_g ?= 'Cairo-dock'",
    "class_g ?= 'Xfce4-notifyd'",
    "class_g ?= 'Xfce4-power-manager'",
    "_GTK_FRAME_EXTENTS@:c",
    "_NET_WM_STATE@:32a *= '_NET_WM_STATE_HIDDEN'"
];
# Avoid drawing shadow on all shaped windows (see also: --detect-rounded-corners)
shadow-ignore-shaped = false;

#################################
#
# Opacity
#
#################################

inactive-opacity = 1;
active-opacity = 1;
frame-opacity = 1;
inactive-opacity-override = false;

# Dim inactive windows. (0.0 - 1.0)
# inactive-dim = 0.2;
# Do not let dimness adjust based on window opacity.
# inactive-dim-fixed = true;
# Blur background of transparent windows. Bad performance with X Render backend. GLX backend is preferred.
# blur-background = true;
# Blur background of opaque windows with transparent frames as well.
# blur-background-frame = true;
# Do not let blur radius adjust based on window opacity.
blur-background-fixed = false;
blur-background-exclude = [
    "window_type = 'dock'",
    "window_type = 'desktop'"
];

#################################
#
# Fading
#
#################################

# Fade windows during opacity changes.
fading = false;
# The time between steps in a fade in milliseconds. (default 10).
fade-delta = 4;
# Opacity change between steps while fading in. (default 0.028).
fade-in-step = 0.03;
# Opacity change between steps while fading out. (default 0.03).
fade-out-step = 0.03;
# Fade windows in/out when opening/closing
no-fading-openclose = true;

# Specify a list of conditions of windows that should not be faded.
fade-exclude = [ ];

#################################
#
# Other
#
#################################

# Try to detect WM windows and mark them as active.
mark-wmwin-focused = true;
# Mark all non-WM but override-redirect windows active (e.g. menus).
mark-ovredir-focused = true;
# Use EWMH _NET_WM_ACTIVE_WINDOW to determine which window is focused instead of using FocusIn/Out events.
# Usually more reliable but depends on a EWMH-compliant WM.
use-ewmh-active-win = true;
# Detect rounded corners and treat them as rectangular when --shadow-ignore-shaped is on.
detect-rounded-corners = true;

# Detect _NET_WM_OPACITY on client windows, useful for window managers not passing _NET_WM_OPACITY of client windows to frame windows.
# This prevents opacity being ignored for some apps.
# For example without this enabled my xfce4-notifyd is 100% opacity no matter what.
detect-client-opacity = true;

# Specify refresh rate of the screen.
# If not specified or 0, compton will try detecting this with X RandR extension.
refresh-rate = 0;

# Vertical synchronization: match the refresh rate of the monitor
#vsync = true;

# Enable DBE painting mode, intended to use with VSync to (hopefully) eliminate tearing.
# Reported to have no effect, though.
dbe = false;

# Limit compton to repaint at most once every 1 / refresh_rate second to boost performance.
# This should not be used with --vsync drm/opengl/opengl-oml as they essentially does --sw-opti's job already,
# unless you wish to specify a lower refresh rate than the actual value.
#sw-opti = true;

# Unredirect all windows if a full-screen opaque window is detected, to maximize performance for full-screen windows, like games.
# Known to cause flickering when redirecting/unredirecting windows.
unredir-if-possible = false;

# Specify a list of conditions of windows that should always be considered focused.
focus-exclude = [ ];

# Use WM_TRANSIENT_FOR to group windows, and consider windows in the same group focused at the same time.
detect-transient = true;
# Use WM_CLIENT_LEADER to group windows, and consider windows in the same group focused at the same time.
# WM_TRANSIENT_FOR has higher priority if --detect-transient is enabled, too.
detect-client-leader = true;

#################################
#
# Window type settings
#
#################################

wintypes:
{
    tooltip =
    {
        # fade: Fade the particular type of windows.
        fade = true;
        # shadow: Give those windows shadow
        shadow = false;
        # opacity: Default opacity for the type of windows.
        opacity = 0.85;
        # focus: Whether to always consider windows of this type focused.
        focus = true;
    };
};

######################
#
# XSync
# See: https://github.com/yshui/compton/commit/b18d46bcbdc35a3b5620d817dd46fbc76485c20d
#
######################

# Use X Sync fence to sync clients' draw calls. Needed on nvidia-drivers with GLX backend for some users.
xrender-sync-fence = true;


D extra/test.php => extra/test.php +0 -13
@@ 1,13 0,0 @@
<DOCTYPE html>
<html>
    <head>
	<title>PHP Test - brown.121407</title>
	<meta charset="UTF-8">
    </head>
    <body>
	<h1>Server's date</h1>
	<p>
	    <?php echo "Today is " . date("Y/m/d"); ?>
	</p>
    </body>
</html>

M posts/2019-12-24-getting-into-lambda-calculus.org => posts/2019-12-24-getting-into-lambda-calculus.org +12 -8
@@ 1,11 1,14 @@
#+TITLE: Getting into Lambda Calculus
#+DATE: <2019-12-24 Tue>

I first heard about Lambda Calculus in [[https://www.youtube.com/watch?v=eis11j_iGMs][a Computerphile video]]. I thought it was a neat & weird bit of math. I remember I especially liked composing booleans and logic using only lambda expressions or whatever those functions are called.
I first heard about Lambda Calculus in [[https://www.youtube.com/watch?v=eis11j_iGMs][a Computerphile video]]. I thought it was a
neat & weird bit of math. I remember I especially liked composing booleans and
logic using only lambda expressions or whatever those functions are called.

That was about half a year ago.

How I got into λs again is through LISP. I was filled with joy when I recreated the boolean logic from a while ago in Scheme:
How I got into λs again is through LISP. I was filled with joy when I recreated
the boolean logic from a while ago in Scheme:

#+BEGIN_SRC scheme
(define T (λ (x y) x))


@@ 16,9 19,10 @@ How I got into λs again is through LISP. I was filled with joy when I recreated
(define OR (λ (x y) (x T b)))
#+END_SRC

I made this post because I tought I should post the resources I found about this topic as they may prove useful for others. Here we go:
- [[../extra/books/lambda-calc-geuvers.pdf][Introduction to Lambda Calculus]] by Henk Barendregt and Erik Barendsen.
- [[../extra/books/lambda-calc-a-short-intro.pdf][A short introduction to Lambda Calculus]] by Achim Jung
- [[../extra/books/lambda-calc-lecture-notes-dalhousie-uni.pdf][Lecture Notes on the Lambda Calculus]] by Peter Selinger
- [[../extra/books/lambda-calc-university-of-iowa.pdf][Chapter 5: THE LAMBDA CALCULUS]] from the University of Iowa
    
I made this post because I tought I should post the resources I found about this
topic as they may prove useful for others. Here we go:

- [[../assets/books/lambda-calc-geuvers.pdf][Introduction to Lambda Calculus]] by Henk Barendregt and Erik Barendsen.
- [[../assets/books/lambda-calc-a-short-intro.pdf][A short introduction to Lambda Calculus]] by Achim Jung
- [[../assets/books/lambda-calc-lecture-notes-dalhousie-uni.pdf][Lecture Notes on the Lambda Calculus]] by Peter Selinger
- [[../assets/books/lambda-calc-university-of-iowa.pdf][Chapter 5: THE LAMBDA CALCULUS]] from the University of Iowa

M project.el => project.el +1 -7
@@ 21,13 21,7 @@
         :recursive t
         :publishing-directory "public/assets"
         :publishing-function org-publish-attachment)
        ("extra"
         :base-directory "extra"
         :base-extension any
         :recursive t
         :publishing-directory "public/extra"
         :publishing-function org-publish-attachment)
        ("website" :components ("pages" "posts" "assets" "extra"))))
        ("website" :components ("pages" "posts" "assets"))))

(setq geiser-default-implementation 'guile
      org-export-with-toc nil