Pull to refresh
21
14.9

Пользователь

Send message

Интервью Роберта Пайка про Go

Level of difficultyHard
Reading time8 min
Views7.4K

Первого января 2024 года Роберт Пайк дал интервью Medium.

Вообще-то редакторы предполагали, что он расскажет о пятнадцати годах программирования с применением языка, основным идеологом которого он считается. К окончанию беседы выяснилось, что интервьюер извлек больше информации, чем предполагал, и, естественно, редакторы решили урезать содержание "для пользы индустрии", но, как обычно получается в таких случаях, произошла утечка информации.

Вот полная и нередактированная запись интервью - это не похоже на обычные запланированные вопросы/ответы.

Вам наверняка покажется это интересным.

Читать далее
Total votes 28: ↑26.5 and ↓1.5+25
Comments10

Особенности управления реальными устройствами с точки зрения backend разработчика. Часть 1. Разработка на стенде

Level of difficultyMedium
Reading time13 min
Views9.1K

Началось всё с того, что я захотел повысить мощность двигателя автомобиля установкой компрессора.

В процессе понадобилось разобраться с Arduino и написать алгоритмы автоматического управления реальными устройствами, формально - управление всего одним моторчиком, но на практике - выявилось несколько подводных камней, о которых не подозреваешь в начале.

Разработка и особенности управления "реальными" устройствами с позиции человека, который раньше не работал ни с Arduino, ни тем более не управлял какими-то устройствами - показались интересными для написания статьи.

Алгоритмы получились посложнее, чем "помигать светодиодом", но с точки зрения опытных разработчиков подобных систем, которые знают все нужные алгоритмы - наверняка покажутся наивными, тем более, в автоиндустрии всё это давно отлажено - в машинах много лет стоят контроллеры управления различными подобными устройствами.

Читать далее
Total votes 12: ↑12 and ↓0+12
Comments56

Go: Как использовать nil-значения без использования ссылочных типов

Reading time5 min
Views6.7K


Создано на базе изображений gopherize.me


Довольно часто из Go кода нам приходится работать с различными HTTP API или самим выполнять роль HTTP сервиса.


Один из частых случаев: получаем данные в виде структуры из базы данных, отправляем структуру внешнему API, в ответ получаем другую структуру, как-то её преобразуем и сохраняем в базу.


Другими словами: такая обработка не требует множества отдельных операций со структурами запроса и ответа.


Для API нормальна ситуация, когда в структурах запроса и ответа есть поля, которые могут быть nil и могут принимать какие-то не-nil значения. Такие структуры выглядят обычно так

Читать дальше →
Total votes 14: ↑9 and ↓5+4
Comments6

Nomad: проблемы и решения

Reading time9 min
Views35K

Первый сервис в Nomad я запустил в сентябре 2016 года. На данный момент пользуюсь как программист и занимаюсь поддержкой как администратор двух Nomad кластеров — один "домашний" для своих личных проектов (6 микро-виртуалок в Hetzner Cloud и ArubaCloud в 5 разных датацентрах Европы) и второй рабочий (порядка 40 приватных виртуальных и физических серверов в двух датацентрах).


За прошедшее время накопился довольно большой опыт работы с Nomad окружением, в статье опишу встреченные проблемы Nomad и как с ними можно справиться.



Ямальский кочевник делает Continous Delivery инстанса вашего ПО © National Geographic Россия

Читать дальше →
Total votes 16: ↑16 and ↓0+16
Comments6

Написание кода в docker окружении

Reading time4 min
Views23K

В компании, где я работаю — большинство сервисов запускаются и работают в docker-контейнерах.


В связи с этим, у моих коллег-новичков-в-докере часто возникает вопрос — а как писать код и запускать его в этом чёртовом контейнере???



Для человека, написавшего около сотни docker-образов и запускающего их несколько раз в день — такой вопрос уже не стоит, но когда я разбирался с докером в давние времена — мысль "Как же писать код в докере? Это же сверхнеудобно!" долго была актуальной.


В статье я опишу свои практики работы с образами docker, которые позволяют писать код "как у себя в home", и даже лучше.

docker run --rm -it -v
Total votes 14: ↑10 and ↓4+6
Comments21

Фото-реалистичная графика в мобильной игре или первая в мире «видео»-игра (мобильная)

Reading time7 min
Views17K

Видеоигра, согласно википедии — игра с использованием изображений, сгенерированных электронной аппаратурой.


image


В нашем же случае, "видео"-игра — это видеоигра, основанная на реальном видео.


Читать дальше →
Total votes 22: ↑15 and ↓7+8
Comments16

Простой greylisting в opensmtpd

Reading time3 min
Views4.8K

Данная статья является логическим продолжением статьи "Интеграция почтового анти-спама rspamd с opensmtpd" из-за некоторого вызова, который мне бросили, сказав, что сложно реализовать greylisting в связке opensmtpd+rspamd.


"Историй успеха" интеграции greylisting в opensmtpd я не встречал (если они существуют, то просьба написать в комментариях).


Что реализовать greylisting в моём случае сложно — я не отрицал и не собирался делать данный функционал до того, как в opensmtpd реализуют фильтры, хотя и понимал, что greylisting — одна из неплохих методик борьбы со спамом. Но брошенный вызов и желание ещё немного снизить количество спама и спать спокойно — не дали спать спокойно и заставили сделать это.


Мне удалось реализовать простой способ greylisting'а.


Читать дальше →
Total votes 11: ↑11 and ↓0+11
Comments7

Интеграция почтового анти-спама rspamd с opensmtpd

Reading time5 min
Views7.7K

В сети довольно мало информации о подобной интеграции. То, что задача решаема — свидетельствуют редкие комментарии на сайтах, но готового решения я не нашёл. Возможно, это обусловлено тем, большинство используют postfix/exim.


Цели статьи:


  1. Описать методику решения задачи, чтобы было проще тем, кто пойдёт по моим следам;
  2. Отвлечь внимание коммьюнити от старого-доброго-древнего postfix и компании.

Читать дальше →
Total votes 15: ↑14 and ↓1+13
Comments11

Information

Rating
410-th
Registered
Activity