— by Tobias Kuhn, 4 April 2022; reporting on work with Cristina Bucur, Davide Ceolin, and Jacco van Ossenbruggen [1,2] —
I believe we have made the first steps venturing into a new era of scientific publishing. Let me explain. [Update: At what point exactly a new era begins and what counts as first steps are of course subject to debate. I therefore added a section on related initiatives and further reading below.]
Science is nowadays communicated in a digital manner through the internet. We essentially have a kind of "scientific knowledge cloud", where researchers with the help of publishers upload their latest findings in the form of scientific articles, and where everybody who is interested can access and retrieve these findings. (This is in fact only true for articles that are published as Open Access, but that is not the point here.)
Stable branch, I can see you in the stable branch
See you again, I see you again
In my dreams, in my dreams, in my dreams, in my dreamsMorning light, I remember the morning li-i-i-i-ight
Outside my door (outside my door), I'll see you no more (see you no more)
In my dreams, in my dreams, in my dreams, in my dreams
>
This document is an attempt to pin down all the things you don't think about when quoting for a project, and hopefully provide a starting point for some kind of framework to make quoting, working and delivering small-medium jobs more predictable and less stressful.
import { promises as fs } from "fs"; | |
import * as path from "path"; | |
import * as jsyaml from "js-yaml"; | |
import { fileURLToPath } from "url"; | |
import MarkdownIt from "markdown-it"; | |
const mdit = new MarkdownIt({}); | |
const __dirname = path.dirname(fileURLToPath(import.meta.url)); | |
const srcdir = path.resolve(__dirname, "./src"); | |
const builddir = path.resolve(__dirname, "./build"); |
Albeit the title might (probably) be a bit inflammatory, I've come to feel like REST is a bad solution for the problem that it solves.
The thing with REST, is that at its core, it's basically a RPC (Remote Procedure Call) that we've been trying to cram in the HTTP protocol. There is no good reason to do that. HTTP wasn't made for this, and we should instead be abstracting that layer away instead of trying to use it for purposes it isn't meant to fulfill.
This is inspired by https://fasterthanli.me/blog/2020/a-half-hour-to-learn-rust/
the command zig run my_code.zig
will compile and immediately run your Zig
program. Each of these cells contains a zig program that you can try to run
(some of them contain compile-time errors that you can comment out to play
with)
from datetime import datetime | |
import pytz | |
import boto3 | |
# define our CloudEvents client | |
client = boto3.client('events') | |
# Let's grab our current time in GMT and convert it to local time (US Central) | |
utc_time = datetime.utcnow().replace(tzinfo=pytz.utc) | |
# Set your timezone here! See timezones here: https://gist.github.com/heyalexej/8bf688fd67d7199be4a1682b3eec7568 |
title |
---|
Comparison to OCaml |
If you come from OCaml or are a newcomer reading a tutorial written on OCaml, this guide's for you! But don't forget that reason-tools can convert between OCaml and Reason syntax on the fly.
OCaml | Reason |
---|
def l2_distance_matrix(x, exact=True): | |
""" | |
Calculate an L2 distance matrix from embedding vectors) | |
:param | |
x: embedding tensor size (batch_size, embedding_length) | |
exact: if False, skip the final sqrt | |
:return: l2 distance matrix tensor tensor size (batch_size, batch_size) | |
""" | |
r = K.sum(x*x, 1) | |
r = K.reshape(r, [-1, 1]) # turn r into column vector |