Как стать автором
Обновить
1
0
Андрей @Painhardcore

Маг волшебник

Отправить сообщение

Дефицит цветов в современных фильмах

Время на прочтение4 мин
Количество просмотров52K

Настал небольшой отпуск и я решил посмотреть наконец несколько фильмов. В процессе просмотра меня посетило ощущение, что в современных фильмах что-то не так, что раньше трава была зеленее и тому подобное. Больше всего выделялось то, что на экране большую часть времени очень мало цветов (как правило, два). Субъективно, эти два преобладающие цвета - это оранжевый и сине-зелёный.

Read more
Всего голосов 115: ↑102 и ↓13+134
Комментарии229

Микросервисы на С++. Выдумка или реальность?

Время на прочтение5 мин
Количество просмотров15K


В этой статье я расскажу о том, как создал шаблон (cookiecutter) и настроил окружение для написания REST API сервиса на С++ с использованием docker/docker-compose и пакетного менеджера conan.


Во время очередного хакатона, в котором я участвовал в качестве бекенд-разработчика, встал вопрос о том, на чем писать очередной микросервис. Все что было написано на текущий момент, писалось мной и моим товарищем на языке Python, так как мой коллега был специалистом в этой области и профессионально занимался разработкой бекендов, в то время как я вообще являлся разработчиком под встроенные системы и писал на великом и ужасном С++, а Python просто подучил в университете.


Так вот, перед нами встала задача написать высоконагруженный сервис, основной задачей которого был препроцессинг поступающих к нему данных и запись их в БД. И после очередного перекура товарищ предложил мне, как С++ разработчику, написать этот сервис на плюсах. Аргументируя это тем, что так будет быстрее, производительнее, да и вообще, жюри будут в восторге от того, как мы умеем распоряжаться ресурсами команды. На что я ответил, что никогда не занимался такими вещами на С++ и с легкостью могу оставшиеся 20+ часов посвятить поиску, компиляции и компоновке подходящих библиотек. Проще говоря, я струсил. На том и порешили и спокойно дописали все на Python.

Читать дальше →
Всего голосов 18: ↑14 и ↓4+16
Комментарии52

5 бесплатных инструментов, повышающих продуктивность труда веб-разработчика

Время на прочтение4 мин
Количество просмотров35K
Автор статьи, перевод которой мы сегодня публикуем, говорит, что один из способов разумной организации труда разработчика заключается в использовании инструментов, позволяющих достигать большего, прикладывая меньше усилий. Здесь он хочет рассказать о 5 замечательных инструментах, которые позволят любому разработчику повысить производительность своего труда. Вот видео, в котором сделан обзор этих инструментов.


Читать дальше →
Всего голосов 23: ↑20 и ↓3+32
Комментарии17

C++ быстрее и безопаснее Rust, Yandex сделала замеры

Время на прочтение15 мин
Количество просмотров125K

Спойлер: C++ не быстрее и не медленнее и вообще смысл не в этом. Эта статья является продолжением славных традиций развенчания мифов крупных российских компаний о языке Rust. Предыдущая была "Go быстрее Rust, Mail.Ru Group сделала замеры".


Недавно я пытался заманить коллегу, сишника из соседнего отдела, на Тёмную сторону Rust. Но мой разговор с коллегой не задался. Потому что, цитата:


В 2019 году я был на конференции C++ CoreHard, слушал доклад Антона antoshkka Полухина о незаменимом C++. По словам Антона, Rust еще молодой, не очень быстрый и вообще не такой безопасный.

Антон Полухин является представителем России в ISO на международных заседаниях рабочей группы по стандартизации C++, автором нескольких принятых предложений к стандарту языка C++. Антон действительно крутой и авторитетный человек в вопросах по C++. Но доклад содержит несколько серьёзных фактических ошибок в отношении Rust. Давайте их разберём.

Всего голосов 175: ↑159 и ↓16+198
Комментарии1205

Подкасты для разработчиков

Время на прочтение10 мин
Количество просмотров20K
Интересно наблюдать за историей. Netflix, YouTube, Twitch постепенно вытеснили телевизор из нашей жизни. Сейчас похожий процесс происходит с подкастами и радио. За последние 2 года количество подкастов в мире выросло с 525 000 до 900 000, а количество эпизодов увеличилось с 18 000 000 до 30 000 000. В России эта волна началась в прошлом году, но уже сейчас становится сложно в них ориентироваться. Мы сделали для вас подборку из 57 техноподкастов и около того.


Читать дальше →
Всего голосов 26: ↑23 и ↓3+29
Комментарии56

Используем passwordstore.org — менеджер паролей в стиле KISS

Время на прочтение11 мин
Количество просмотров17K

Всем привет. В этой статье я хотел бы поделиться своим опытом настройки и использования pass — менеджера паролей для Linux и не только, примечательного своей простотой, использованием уже присутствующих в системе инструментов и возможностью работать исключительно из консоли. Конкретнее, будут затронуты проблемы, связанные с генерацией и хранением секретного ключа gpg, а также с настройкой совместной работы pass, gpg, git, github и браузера. Всё — под Linux, Windows и Android.

Читать дальше →
Всего голосов 18: ↑18 и ↓0+18
Комментарии2

Хорошее публичное выступление: 11 простых советов

Время на прочтение5 мин
Количество просмотров44K

Дисклеймер


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

1. Структура доклада


Парадоксально, но многие докладчики даже на крутых конференциях зачастую не делят своё выступление на три основные части – формулировка проблемы, предпринятые шаги, выводы. Структура может быть сложнее, но базовая она почти всегда такая, даже если вывод – «у нас ничего не получилось».

Ключевая проблема для слушателя – отсутствие вводной части. Выводы он может сделать и сам, а вот стартовать с опозданием сложно и неприятно. Он ещё не понял, что вы будете про пищеварение, а уже нужно вникать в строение эпителия тонкого кишечника. Результат – ваш доклад попадает в слушателя не на все 100%, а имеет шансы и вовсе пролететь мимо.
Читать дальше →
Всего голосов 67: ↑64 и ↓3+61
Комментарии36

Если вы что-то создаёте, избегайте расписания менеджера

Время на прочтение5 мин
Количество просмотров54K


В книге ”Masters of Doom” о компании id Software и её влиянии на массовую культуру Дэвид Кушнер размышлял о необычном стиле работы ведущего программиста Джона Кармака.

Чтобы повысить производительность и не отвлекаться от работы над движком Quake, тот принял агрессивный подход — начал постепенно смещать начало рабочего дня. В конце концов Джон садился программировать вечером, а заканчивал перед рассветом. Эти непрерывные отрезки тишины, изоляции и глубокой работы позволили ему создать первый в мире сверхбыстрый 3D-движок. Игра Quake произвела настоящий фурор.
Читать дальше →
Всего голосов 134: ↑131 и ↓3+128
Комментарии98

С чего начать новичку в Go

Время на прочтение2 мин
Количество просмотров160K
Если вы решили попробовать замечательный язык Go, но не знаете с чего начать, вам прямая дорога в этот пост, где я постарался перечислить все необходимые для новичков ресурсы.
Читать дальше →
Всего голосов 56: ↑50 и ↓6+44
Комментарии50

Почему Go — это плохо продуманный язык программирования

Время на прочтение9 мин
Количество просмотров88K
Это перевод статьи юзернейма tucnak с Medium, которая получила обширное обсуждение на reddit.com/r/programming.

image
Окей, заголовок действительно несколько громкий, признаю. Cкажу больше: я прусь от громких заголовков, все из-за внимания. В этой блогозаписи я постараюсь доказать тот факт, что Go это ужасно продуманный язык (спойлер: это так). Я уже играюсь с Go уже на протяжении нескольких месяцев, первый helloworld собрал, кажется, в июне. Математик из меня никакой, но с тех пор прошло уже что-то около 4 месяцев и я даже успел залить на Github несколько репозиториев и собрать немного звезд! Стоит также упомянуть, что у меня совершенно нет опыта применения Go в продакшне, так что любые мои слова о «поддержке кода» или «деплое» не стоит принимать за единственноверную истину.

Я люблю Go, я полюбил его как только впервые попробовал его. Я потратил несколько дней на то, чтобы принять идиоматику, смириться с отсутствием дженериков, разобраться с откровенно странным способом обработки ошибок и вы знаете, всеми этими классическими проблемами, так или иначе связанными с Go. Я прочел Effective Go, много статеек из блога Dave Cheney, следил за всеми новостями из мира Go. Я даже могу сказать, что я достаточно активный участник сообщетсва! Я люблю Go и ничего не могу с этим поделать — Go просто замечательный. Тем не менее, я считаю, что Go это ужасный плохо продуманный язык, который делает совершенно не то, что «продает».
Читать дальше →
Всего голосов 140: ↑114 и ↓26+88
Комментарии289

Почему Go — это хорошо продуманный язык программирования

Время на прочтение9 мин
Количество просмотров44K
В недавнем посте с критикой Go, который был выдан за перевод, пользователь tucnak, помимо избыточной фамильярности в адрес Роба Пайка, поднял несколько интересных моментов языка. Поскольку формат статьи предполагал, увы, не желание разобраться в теме, а разжечь холивары, предлагаю в этой статье пройтись по озвученным «проблемам» и понять, о чём же речь на самом деле, и что же заставляет современные компании выбирать Go.

image
Читать дальше →
Всего голосов 156: ↑92 и ↓64+28
Комментарии362

Ошибки — это значения

Время на прочтение5 мин
Количество просмотров25K
(Перевод статьи из официального блога Go)

Частой темой среди Go программистов, особенно тех, которые только познакомились с языком, является вопрос о том, как обрабатывать ошибки. Разговор часто сводится к жалобам на то, что последовательность
if err != nil {
    return err
}

появляется слишком часто. Недавно мы просканировали все open-source проекты, которые мы только смогли найти и увидели, что этот сниппет появляется лишь раз на страницу или две, гораздо реже, чем многие могли бы подумать. И всё же, если впечатление того, что вы должны всегда писать
 if err != nil
остается, значит, очевидно, что-то тут не так, и мишенью оказывается сам Go.

Это неверно, это вводит в заблуждение и это легко исправить. Наверное происходит следующее — программист, знакомясь с Go, задаёт вопрос — «Как я должен обрабатывать ошибки?», заучивает этот паттерн и тут и останавливается. В других языках, это может быть блок try-catch или другой механизм обработки ошибок. Соответственно, думает программист, там где я бы использовал try-catch в моём старом языке, в Go я просто напечатаю if err != nil. Со временем, в Go коде накапливается много таких сниппетов, и результат выглядит неуклюже.

Но вне зависимости от того, как это объясняется на самом деле, очевиден тот факт, что эти Go программисты упускают фундаментальную идею ошибок: Ошибки это значения.
Читать дальше →
Всего голосов 53: ↑27 и ↓26+1
Комментарии139

Генерация кода в Go

Время на прочтение6 мин
Количество просмотров44K
Перевод статьи Роба Пайка из официального блога Go о автоматической кодогенерации с помощью go generate. Статья немного устарела (была написана перед выходом Go 1.4, в котором и появился go generate), но хорошо объясняет суть работы go generate.
Читать дальше →
Всего голосов 34: ↑26 и ↓8+18
Комментарии26

Изучаем net/context в Go

Время на прочтение11 мин
Количество просмотров62K
Не секрет, что основная ниша использования Go это сетевые сервисы: всевозможные серверы, бекенды, микросервисы, распределенные базы данных и файловые хранилища. Такой класс программ очень активно использует сетевые запросы, весь необходимый функционал для которых есть в стандартной библиотеке, но один аспект разработки сетевых архитектур остается для многих темным пятном — контексты запросов. В этой статье я хочу рассмотреть этот аспект повнимательней и показать, какой это мощный и важный инструмент.


Читать дальше →
Всего голосов 26: ↑23 и ↓3+20
Комментарии8

Бенчмарки в Go

Время на прочтение4 мин
Количество просмотров66K

Бенчмарки


Бенчмарки это тесты для производительности. Довольно полезно иметь их в проекте и сравнивать их результаты от коммита к коммиту. В Go есть очень хороший инструментарий для написания и запуска бенчмарков. В этой статье я покажу, как использовать пакет testing для написания бенчмарков.
Читать дальше →
Всего голосов 30: ↑27 и ↓3+24
Комментарии2

Перевод: Один год с Go

Время на прочтение6 мин
Количество просмотров51K
Под катом — перевод статьи опытного разработчика о его опыте практического применения Go. Важно — мнение переводчика может не совпадать с мнением автора статьи.



почитать что он там пишет
Всего голосов 110: ↑100 и ↓10+90
Комментарии304

Сбор и визуализация метрик приложения в Graphite и Graph-Explorer

Время на прочтение9 мин
Количество просмотров66K
Зачастую возникает необходимость отслеживать различные параметры работы приложения/сервиса. Например, интерес представляет количество запросов в секунду, среднее время ответа сервера, количество ответов сервера с различным HTTP-статусом (технические метрики), количество регистраций пользователей в час, количество платежных транзакций в минуту (бизнес-метрики) и пр. Без системы сбора метрик разработка и сопровождение продукта происходит практически вслепую.



Данная статья является руководством по настройке системы сбора и анализа метрик приложения на базе Graphite и vimeo/graph-explorer.
Читать дальше →
Всего голосов 10: ↑10 и ↓0+10
Комментарии13

Организация «чистого» завершения приложений на Go

Время на прочтение6 мин
Количество просмотров27K


Здравствуйте, в данной заметке будет затронута тема организации «чистого» завершения для приложений, написанных на языке Go.
Чистым выходом я называю наличие гарантий того, что в момент завершения процесса (по сигналу или по любым иным причинам кроме system failure), будут выполнены определённые процедуры и выход будет отложен до окончания их выполнения. Далее я приведу несколько типичных примеров, расскажу о стандартном подходе, а также продемонстрирую свой пакет для упрощённого применения этого подхода в ваших программах и сервисах.

TL;DR: github.com/xlab/closer GoDoc
Читать дальше →
Всего голосов 53: ↑48 и ↓5+43
Комментарии10

Разработка веб-приложения на Golang

Время на прочтение8 мин
Количество просмотров60K
В этой статье я рассмотрю разработку веб-приложения на Go. Материал не содержит принципиально новых знаний и рассчитан скорее для таких же новоиспеченных исследователей языка как и я. Хотя, надеюсь, какие-то свежие идеи вы все-таки для себя найдете.

У некоторых читателей могут возникнуть вопросы о «велосипедостроении» — это всё плоды любопытства и живого интереса при ознакомлении с языком Golang.
Читать дальше →
Всего голосов 39: ↑33 и ↓6+27
Комментарии28

Moscow Python Meetup на тему «Async: why and when?» в офисе Rambler&Co

Время на прочтение1 мин
Количество просмотров8.7K


Друзья, спешу сообщить, что 28 мая в 19:00 в офисе компании Rambler&Co пройдет встреча сообщества Moscow Python Meetup. Тема встречи — «Async: why and when?».

В программе интересные доклады, общение, холивары и море позитива.
Читать дальше →
Всего голосов 15: ↑14 и ↓1+13
Комментарии12

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность