20 random bookmarks
Тут будут ссылки на всё-всё, что я найду интересным
Тут будут ссылки на всё-всё, что я найду интересным
In the debrief, BG shared some advice for actually getting good at Clojure: work through the problems on 4clojure using only the official documentation (not ClojureDocs, which include examples!) and the Clojure source code.
4Clojure is a collection of programming problems that teach you the standard library, each problem building on the one before it, kind of in the spirit of The Little Schemer. The reason to go through it looking at source code rather than examples is to force you to reason from first principles (the implementation) rather than from someone’s ideas of how code is written.
Вывели с клиентом универсальную «инструкцию к терапии». На случай, если кому-то это нужно. Как часто и бывает, у него была популярная мечта сначала что-то поменять в голове, а потом зажить по-новому.
Chats, emails, phone calls, mailing lists, issue tracking systems, face-to-face meetings, and other communication instruments for a software project.
Макс на Луне. Одна из моих любимых поинт-н-клик игр. С милой анимацией и озвучкой на нескольких языках.
Также есть и другие части, но эта мне нравится особенно.
Sisyphus eventually found peace with his fate. Instead of seeing his punishment as an eternal burden, he saw it as his life's purpose. Maybe those comparatively small annoyances in our life are worth enjoying. They're part of what makes us human.
package src
type config struct {
// Required
foo, bar string
// Optional
fizz, bazz int
}
// Each optional configuration attribute will have its own public method
func (c *config) WithFizz(fizz int) *config {
c.fizz = fizz
return c
}
func (c *config) WithBazz(bazz int) *config {
c.bazz = bazz
return c
}
// This only accepts the required options as params
func NewConfig(foo, bar string) *config {
// First fill in the options with default values
return &config{foo, bar, 10, 100}
}
func Do(c *config) {}
You’d use the API as follows:
package main
import ".../src"
func main() {
// Initialize the struct with only the required options and then chain
// the option methods to update the optional configuration attributes
c := src.NewConfig("hello", "world").WithFizz(0).WithBazz(42)
src.Do(c)
}
Task is a task runner / build tool that aims to be simpler and easier to use
version: '3'
tasks:
hello:
cmds:
- echo 'Hello World from Task!'
silent: true
— О чем вы подумали, впервые открыв секретный архив ГУЛАГа и узнав, что число репрессированных значительно меньше, чем считалось и говорилось?
Земсков о репрессиях
Pagefind is a fully static search library that aims to perform well on large sites, while using as little of your users’ bandwidth as possible, and without hosting any infrastructure.
The David Rumsey Map Collection has been home to tens of thousands of historical maps, and now you can search the collection by the text in the maps
Ещё одна коллекция интерактивных штуковин.
Очень много разных визуализаций
Everything you need to know about monorepos, and the tools to build them.
Илья тыкает в Эйблтон и рассказывает, из чего обычно состоит электронная музыка
О том, как находить места на фото с помощью Оверпасс турбо
Переосмысление дорожных знаков от Ильи Бирмана