Статьи

Как масштабирование WhatsApp до 1 миллиарда пользователей с помощью всего 50 инженеров

Инженерная культура

  1. Делайте вещи небольшими (наличие меньшего количества серверов означает, что меньше вещей ломается, что облегчает работу команды).
  2. Делайте вещи простыми (Только достаточно разработки,избегайте чрезмерных инвестиций в системы и компоненты, сосредоточьтесь на создании ровно столько, сколько необходимо для масштабируемости, безопасности и надежности.)
  3. Сосредоточьтесь на миссии (предназначенной для предоставления основного коммуникационного приложения с отличным пользовательским интерфейсом.избегайте лишних наворотов и не внедряйте функции, которые исключительно не сосредоточены на основном коммуникации.)

Почему у вас могут быть миллионы горутин, но только тысячи потоков Java

  1. JVM делегирует потоки потокам операционной системы. Go реализует собственный планировщик, который позволяет запускать множество горутин в одном потоке ОС.
  2. JVM по умолчанию использует стек размером 1 МБ на поток. Стеки Go имеют динамический размер, и новая горутина будет иметь стек размером около 4 КБ.

Обучение с недостаточным количеством данных, часть 1: частично контролируемое обучение

Я потратил 720 долларов США на 100 блокнотов от Alibaba и начал бизнес на бумажном веб-сайте

Автор использует NLP API для создания веб-сайта, который принимает изображения и превращает их в сообщения в блоге.

Учебники

Различные способы добавления комментариев на ваш статический сайт

Визуальное руководство по использованию эффектов — очистки

Выполнение HTTP-запросов с помощью сокетов в Python

HTTP — это прикладной протокол. В основном это означает, что HTTP сам по себе не может использоваться для передачи информации в/из удаленной конечной точки. Вместо этого он опирается на базовый протокол, которым в случае HTTP является TCP.

С другой стороны, сокеты — это API, который предоставляет большинство операционных систем для связи с сетью. API сокетов поддерживает различные протоколы от транспортного уровня и ниже.

import socket
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.connect(("www.example.com", 80))
sock.send(b"GET / HTTP/1.1\r\nHost:www.example.com\r\n\r\n") response = sock.recv(4096)
sock.close()
print(response.decode())

чтобы исправить блокирующий сокет, мы можем:

  1. отключить постоянное HTTP-соединение
  2. 2) установить тайм-аут на сокете
  3. 3) прочитайте заголовки ответа HTTP, чтобы определить, когда выйти

Инструменты

codepng — превратите свой код в потрясающие картинки.

Microdiff — крошечная (в настоящее время ‹1 КБ), быстрая библиотека для сравнения объектов и массивов с нулевой зависимостью. Он значительно быстрее, чем большинство других библиотек для глубокого сравнения, и имеет полную поддержку TypeScript.

AppFlowyАльтернатива концепции открытого исходного кода

it-dependsIt-Depends — это инструмент для автоматического построения графа зависимостей и спецификации программного обеспечения (SBOM) для пакетов и произвольных репозиториев исходного кода.

Не по теме

Изготовление табурета из фиванской решетки

Избыточность — это жизнь, за исключением случаев, когда это смерть

Когда у самолета больше двигателей, это не делает его более безопасным