20 random bookmarks
Тут будут ссылки на всё-всё, что я найду интересным
Тут будут ссылки на всё-всё, что я найду интересным
you don’t have to sign your kids up to do expensive things in order for them to reach their full potential
Beautiful, Modern & Opinionated Linux by DHH
A specification for adding human and machine readable meaning to commit messages
Uiua (wee-wuh) is a general purpose, stack-based, array-oriented programming language with a focus on simplicity, beauty, and tacit code
Так уж случилось, что мы с женой занимаемся сортировкой мусора. Инициатива её, я выступаю скорее противовесом. Начинали с радикализма и это было неудобно. Сейчас быт чуть более обустроен, стало гораздо лучше.
Главное правило пропаганды — посыл должен быть простым. Если хочешь, чтобы твоя вера распространялась, нужно упаковать ее в короткое и броское сообщение — мем. Чем он проще и тупее, тем ему легче распространяться. Если мем в рифму — еще лучше.
Мем дожен быть безапелляционным, без деталей, однозначным и не вызывающим сомнений. В идеале — чтобы он касался каких-то человеческих грехов — например, гордыни, алчности или гнева. Это сейчас самые социально одобряемые грехи.
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)
}
довольно годная web-based рисовалка мышкой помещений, планировок итд . Справился даже такой дебил как я. Набор компонентов не суперобширный, но для примерного понимания где розетки, где выключатели, где батареи - вполне неплохо.
Единственный минус (или я просто не понял) - не нашёл режима просмотра в 2D как всё накладывается друг на друга. Только при ревью в 3D заметил что у меня розетка прямо на воротах, другие две розетки спрятаны за конвектором, а один из светильников смонтирован прямо на стекло окна.
За 500 рублей на месяц - вполне неплохое решение для того чтобы быстренько нарисовать спальную, кабинет или гараж. Дают нарисовать пять проектов. На выходе - PDF-альбом на 10-12 листов с планами, размерами итд, в целом похожие на те, что делают полноценные дизайн-студии.
Index the independent
wherepredicates to improve hash join performance.
Indexing join predicates doesn’t improve hash join performance.
Indexing a hash join is independent of the join order.
Select fewer columns to improve hash join performance.
Hash joins do not need indexes on the join predicates. They use the hash table instead.
A hash join uses indexes only if the index supports the independent predicates.
Reduce the hash table size to improve performance; either horizontally (less rows) or vertically (less columns).
Hash joins cannot perform joins that have range conditions in the join predicates.
Whenever I explain my research at Google into mobile text editing, I’m usually met with blank stares or a slightly hostile “Everyone can edit text on their phones, right? What’s the problem?”
repost from bouncepaw:
Если делать дизайн только из красного света, то глаза не будут терять ночное видение, потому что ночные палочки не замечают красный свет. Так-то толку от этого мало, но в некоторых случаях супер-полезно. Например, морякам и астрономам.