Как стать автором
Обновить
33
0

Программист

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

Изучаем Latency: теория массового обслуживания

Время на прочтение27 мин
Количество просмотров44K
Тема latency со временем становится интересной в разных системах в Яндексе и не только. Происходит это по мере того, как в этих системах появляются какие-либо гарантии по обслуживанию. Очевидно, дело в том, что важно не только пообещать какую-то возможность пользователям, но и гарантировать её получение с разумным временем отклика. «Разумность» времени отклика, конечно, сильно различается для разных систем, но базовые принципы, по которым во всех системах проявляется латентность, — общие, и их вполне можно рассматривать в отрыве от конкретики.

Меня зовут Сергей Трифонов, я работаю в команде Real-Time Map Reduce в Яндексе. Мы разрабатываем платформу для обработки потока данных в реальном времени с секундным и субсекундным временем отклика. Платформа доступна для внутренних пользователей и позволяет им выполнять прикладной код над постоянно поступающими потоками данных. Я попытаюсь сделать краткий обзор основных концепций человечества на тему анализа latency за последние сто десять лет, и сейчас мы попробуем понять, что именно про latency можно узнать, применяя теорию массового обслуживания.
Читать дальше →
Всего голосов 51: ↑50 и ↓1+49
Комментарии3

Подробная инструкция по изготовлению сплит клавиатуры на основе ATmega32U4. Аналог Iris / Jiran своими руками

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

Моя самоделка


image

Перед изготовлением своей клавиатуры я наметил следующие цели:

  1. Максимально возможный тактильный комфорт.
  2. Добиться того, чтобы совершенно не было необходимости смотреть на клавиатуру при работе, чтобы она никоим образом не отвлекала внимание на себя, чтобы даже смотреть на нее было бессмысленно. Именно поэтому на моих колпачках нет надписей.
  3. Клавиатура — это мой рабочий инструмент, сосредотачиваемся на ее функционале и удобстве. Внешний вид совершенно неважен. Кто не может жить без RGB подсветки и внешней броской красоты – нам с вами не по пути, эта статья совсем про другое. В этой статье я вас научу как недорого и просто сделать себе удобный и функциональный инструмент для работы.
  4. Удобство перевозки. Сделать компактное и удобное для переноски устройство.
Всего голосов 79: ↑79 и ↓0+79
Комментарии75

Всё, о чём должен знать разработчик Телеграм-ботов

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

Вы вряд ли найдете в интернете что-то про разработку ботов, кроме документаций к библиотекам, историй "как я создал такого-то бота" и туториалов вроде "как создать бота, который будет говорить hello world". При этом многие неочевидные моменты просто нигде не описаны.

Как вообще устроены боты? Как они взаимодействуют с пользователями? Что с их помощью можно реализовать, а что нельзя?

Подробный гайд о том, как работать с ботами — под катом.

Читать далее
Всего голосов 127: ↑127 и ↓0+127
Комментарии73

Как удалить «неудаляемые» приложения со смартфона

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


Чтобы увеличить привлекательность смартфонов, производители ставят на них как можно больше разных программ. Это понятно. Просто берём и удаляем ненужное… Стоп.

Оказывается, некоторые программы невозможно удалить. Например, на отдельных моделях Samsung невозможно удалить Facebook (есть только опция 'disable'). Говорят, на Samsung S9 вдобавок предустановлены «неудаляемые» приложения Microsoft.

Эти смартфоны приведены для примера. Такая же проблема и на других моделях. На многих есть неудаляемые программы от самого производителя.

Всё это надо зачистить.
Читать дальше →
Всего голосов 190: ↑179 и ↓11+168
Комментарии203

Крауд-перевод книги “Мир после капитала” Альберта Венгера (часть 1/7)

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

Книга Мир после капитала американского инвестора немецкого происхождения Альберта Венгера — один из наиболее значимых текстов об экономике после капитализма.

Этот перевод мы делаем сообществом энтузиастов совершенно бесплатно.

Читать перевод части 1/7
Всего голосов 12: ↑8 и ↓4+4
Комментарии10

Как сделать интерактивную карту с помощью Python и open source библиотек

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

Сегодня делимся с вами пошаговым руководством создания интерактивных карт для веб-приложения или блога. Просто сохраните эту статью в закладках. Хоть и существует, например, библиотека d3.js, которая может создавать пользовательские карты, есть несколько инструментов еще проще. В этом посте посмотрим на три простые в обращении, но мощные библиотеки Python с открытым исходным кодом и поработаем с ними.
Читать дальше →
Всего голосов 20: ↑18 и ↓2+16
Комментарии3

Bash-скрипты: начало

Время на прочтение11 мин
Количество просмотров1.7M
Bash-скрипты: начало
Bash-скрипты, часть 2: циклы
Bash-скрипты, часть 3: параметры и ключи командной строки
Bash-скрипты, часть 4: ввод и вывод
Bash-скрипты, часть 5: сигналы, фоновые задачи, управление сценариями
Bash-скрипты, часть 6: функции и разработка библиотек
Bash-скрипты, часть 7: sed и обработка текстов
Bash-скрипты, часть 8: язык обработки данных awk
Bash-скрипты, часть 9: регулярные выражения
Bash-скрипты, часть 10: практические примеры
Bash-скрипты, часть 11: expect и автоматизация интерактивных утилит

Сегодня поговорим о bash-скриптах. Это — сценарии командной строки, написанные для оболочки bash. Существуют и другие оболочки, например — zsh, tcsh, ksh, но мы сосредоточимся на bash. Этот материал предназначен для всех желающих, единственное условие — умение работать в командной строке Linux.


Читать дальше →
Всего голосов 69: ↑61 и ↓8+53
Комментарии123

Статические анализаторы кода на примере ClickHouse

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

Чуть больше месяца назад была опубликована статья, содержащая анализ исходного кода ClickHouse с помощью PVS-Studio. Статья оказалась достаточно успешной: так, ссылку на неё мне отправили по меньшей мере десять раз в день её публикации. Общий тон статьи позитивный, а посещаемость сайта clickhouse.yandex в день её выхода заметно выросла.


Я очень уважаю, когда какая-либо компания или человек делает свою работу исчерпывающим образом. Так, у PVS-Studio исчерпывающий подход к продвижению: одних только статей на Хабре 337 штук. Они проводят доклады почти на всех российских конференциях по C++. В любом случае стоит отметить: люди стараются и своим трудом приносят пользу другим людям.


Та статья пробудила в нас интерес к статическим анализаторам, и мы решили проверить работу нескольких общедоступных аналогов PVS-Studio на кодовой базе ClickHouse. В сегодняшней статье мы поделимся с вами результатами этого исследования.


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

Подборка 143 переводов эссе Пола Грэма (из 184)

Время на прочтение8 мин
Количество просмотров59K
image

Пол Грэм — один из самых уважаемых людей среди ИТишников, основателей и инвесторов. Он первоклассный программист (написал два языка программирования), хакер, создатель дерзкого акселератора Y Combinator, философ. Своими помыслами и разумом Пол Грэм врывается в широкий спектр областей: от прогнозирования развития языков программирования на сто лет вперед до человеческих качеств и способов починить/хакнуть экономику. А ещё он осознает важность того, чтобы формулировать свои мысли в текст и делиться ими с окружающими.

Когда в 2015 году я начал читать Пола Грэма мой взгляд на жизнь поменялся. Я считаю его эссе одними из самых важных текстов, которые стоит прочитать все как можно раньше, чтобы сформировать у себя мышление, способ рассуждения и изложения мыслей.

Первую подборку переводов эссе Пола Грэма меня вдохновили сделать коллеги из tceh.com (60 переводов из 176). Вторую — Edison Software (125 переводов). Третью — PhilTech-акселератор (134 перевода и еще несколько в процессе). Потом был период (2017, 2018 и 2019), когда Пол Грэм не писал эссе (а занимался с детьми), а только немного в Твиттер и дал одно видео-интервью для стартап-школы. Но в конце 2019 и начале 2020 года он вновь стал публиковать глубокие тексты об которые интересно подумать. Предлагаю вашему вниманию ссылки на новые переводы (upd с прошлой подборки) и полный список всех эссе.

Novelty and Heresy (Да здравствует ересь!)
The Lesson to Unlearn (Вредные уроки)
The Bus Ticket Theory of Genius (Теория навязчивых идей)

Five Questions about Language Design (Пять вопросов о проектировании языков программирования)
What Made Lisp Different (Что сделало Lisp особенным)
After the Ladder (На смену корпоративной лестнице)
What I’ve Learned from Hacker News (Чему я научился у Hacker News)
Snapshot: Viaweb, June 1998 (разбор полетов: Viaweb июня 1998 года)
Some Heroes (Мои кумиры)
The Equity Equation (Как делить доли в стартапе)

Бонус - видео из стартап-школы 2018 с русскими субтитрами


Всего голосов 33: ↑30 и ↓3+27
Комментарии10

Шпаргалка по работе с Tmux (терминальный мультиплексор)

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

На Хабрахабре Tmux (ти-макс) упоминался неоднократно, тем не менее, решил написать еще одну шпаргалку, т.к. в других некоторые важные моменты не показаны.

Tmux (терминальный мультиплексор) позволяет работать с несколькими сессиями в 1 окне. Вместо нескольких окон терминала к серверу — вы можете использовать одно. Позволяет подключаться/отключаться к текущему состоянию сессии. Запущенные программы и процессы продолжают работать. (Можно использовать вместо nohup, dtach).

Например, на работе правим файлы в Vim. Окно терминала с открытыми файлами, процессами. Отключаемся от сессии. Далее подключаемся к этой сессии из дома и получаем те же окна с открытыми файлами в Vim, процессами и т.д. Можно продолжить работу с того же момента, на котором остановились. Также удобно при разрыве связи. Дополнительно можно работать совместно с другими в терминале, если подключены к одной сессии. Каждый видит, что делает другой.
Читать дальше →
Всего голосов 28: ↑17 и ↓11+6
Комментарии20

Свой стек навигации. Лучше чем у ROS?

Время на прочтение17 мин
Количество просмотров7.3K
Это вторая статья команды setUP про наш опыт создания автономных роботов для соревнований Eurobot Open и использования для этого ROS.

Первая статья про механику и общую архитектуру роботов.

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

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


Всего голосов 12: ↑12 и ↓0+12
Комментарии4

Что общего между револьвером, шайбами и автономным роботом

Время на прочтение8 мин
Количество просмотров6.5K
Мы любим роботов. Мы студенты технических ВУЗов, конструкторы, электронщики, программисты, и мы все любим создавать роботов. Два года назад на базе лаборатории робототехники Сбербанка появилась наша команда setUP и тогда же впервые участвовала в соревнованиях по созданию мобильных автономных роботов Eurobot Open для молодых любителей робототехники. Команда отыграла 2 сезона, дважды стала вице-чемпионом, выходила на международный этап. Мы не спали сутками, программировали, паяли, собирали и разбирали наших роботов, находили серьезные проблемы за час до соревнований, а затем всё-таки их запускали. Ещё получили незабываемый опыт и наработали ряд интересных решений, о чем и расскажем в серии статей (осторожно, гифки).


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

Y-метод — действительно простой способ собрать кубик Рубика

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

Введение


В статье рассматривается «Y-метод» сборки кубика Рубика — его легко понять и запомнить. Он основан всего на одной последовательности, которая называется «Y-движение». Поняв этот алгоритм, вы навряд ли забудете как собрать кубик самостоятельно.
Читать дальше →
Всего голосов 118: ↑117 и ↓1+116
Комментарии78

История Vim и руководство по его эффективному использованию

Время на прочтение14 мин
Количество просмотров46K
Примечание от переводчика: это первая часть монументальной (на самом деле монументальной) статьи о Vim и его возможностях от разработчика из Миннеаполиса и автора проекта PostgREST Джо begriffs Нельсона.

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




Эта статья основана на исследовании истории Vim и прочтении его руководства пользователя от корки до корки. Надеюсь, эти заметки помогут вам открыть (или переоткрыть?) для себя основные функциональные возможности этого редактора, а также позволят отказаться от использования предупакованных файлов vimrc и более вдумчиво использовать плагины.



Список литературы


Чтобы выйти за границы привычных тем, я бы порекомендовал обзавестись бумажной копией этого руководства и емким карманным справочником. Я не смог найти печатную копию руководства пользователя для Vim, так что в итоге просто распечатал идущий вместе с редактором PDF-файл с помощью printme1.com. Он идет вместе с софтом в $VIMRUNTIME/doc/usr_??. В качестве удобного списка команд могу посоветовать справочник «Vi and Vim Editors Pocket».

Содержание

  • История
  • Иерархия конфигурации
  • Сторонние плагины
  • Бекапы и откаты
  • Include и path
  • Редактирование и компиляция цикла
  • Диффы и патчи
  • Буфер ввода / вывода
  • Типы файлов
  • Не забывайте про мышь
  • Разное

История


Рождение vi


Команды и функции Vi существуют уже более пятидесяти лет, начиная с редактора QED. Вот его таймлайн:
Читать дальше →
Всего голосов 46: ↑42 и ↓4+38
Комментарии14

Вещество и антивещество: что это такое, в чем разница и при чем тут нейтрино

Время на прочтение14 мин
Количество просмотров50K
Антивещество — штука достаточно популярная, как в научной фантастике, так и просто в околонаучных спорах о том, “как все устроено на самом деле”. Фантасты нам подарили звезды и целые планетные системы из антивещества. Дэн Браун через “Ангелов и демонов” донес этот феномен практически до каждого.

В общем, вымыслов и домыслов предостаточно. В статье немного окунемся в историю: как почти чистая математика предсказала такой феномен, как им пытались «пренебречь», до тех пор, пока антивещество само не залетело в детекторы. Потом пробежимся по тому, что известно сейчас и дойдем до самой большой головной боли физиков — почему вещества во Вселенной оказалось больше, чем антивещества?

image
Всего голосов 124: ↑122 и ↓2+120
Комментарии96

Марвин Мински «The Emotion Machine»: Глава 4. «Как мы распознаем Сознание»

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


4-3 Как мы распознаем Сознание?


Студент: Вы до сих пор не ответили на мой вопрос: если «сознание» является лишь многозначным словом, что делает его такой определенной вещью.

Вот теория, объясняющая почему так сложилось: Большая часть нашей умственной деятельности протекает, в большей или меньшей степени, «бессознательно» — в том смысле что мы едва догадываемся о её существовании. Но когда мы встречаемся с трудностями, она запускает высокоуровневые процессы, которые имеют следующие свойства:
 
  1. Они используют наши последние воспоминания.
  2. Они чаще работают последовательно, чем параллельно.
  3. Они используют абстрактные, символические или словесные описания.
  4. Они используют модели, которые мы сложили о себе.

Теперь предположите, что мозг может создать ресурс С который запускается, когда совместно начинают работать все вышеописанные процессы:
Читать дальше →
Всего голосов 11: ↑9 и ↓2+7
Комментарии1

Liveprof покажет, когда и почему менялась производительность вашего PHP-приложения

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


Привет, Хабр! Меня зовут Тимур Шагиахметов, я PHP-разработчик в Badoo.

Производительность приложения — один из важнейших критериев качества работы программиста. В вопросах оптимизации PHP-приложений помощником является профайлер.

Недавно мы рассказывали о том, какими инструментами пользуемся для профилирования. Напомню: одним из инструментов для анализа производительности, когда непонятно, какие части кода повлияли больше всего на увеличение времени формирования ответа, является XHProf. Это расширение для PHP, которое позволяет профилировать код на боевом сервере и впоследствии  улучшать его.

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

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

В этой статье я расскажу о деталях реализации и особенностях использования этого инструмента.
Читать дальше →
Всего голосов 84: ↑84 и ↓0+84
Комментарии7

Non fiction. Что почитать?

Время на прочтение5 мин
Количество просмотров6.6K
Хочу поделиться с вами несколькими из прочитанных за последние годы книг в жанре non fiction. Однако при составлении списка возникла неожиданная проблема отбора. Книги, что называется, для широкого круга, которые читаются влет даже совершенно неподготовленным читателем и могут конкурировать с художественными в смысле захватывающего повествования. Книги для более вдумчивого чтения, для понимания которых потребуется слегка напрячь мозг, и учебники (сборники лекций), для студентов и тех, кто хочет более серьезно разобраться в каких-то вопросах. В данном списке представлена именно первая часть — книги для максимально широкого круга читателей (хотя это, конечно, весьма субъективно). Я намеренно отказался от мысли давать книгам собственное описание и оставил оригинальные аннотации даже в тех случаях, когда они не устраивали меня самого, чтобы никак не влиять на процесс отбора для дальнейшего чтения. Как обычно, если вы хотите добавить что-то к этому списку — добро пожаловать в комментарии.

Как музыка стала свободной 1. Как музыка стала свободной [Конец индустрии звукозаписи, технологический переворот и «нулевой пациент» пиратства]
Автор. Стивен Уитт

"Как музыка стала свободной" представляет из себя захватывающую историю, в которой переплелись между собой одержимость, жадность, музыка, преступность и деньги. История эта рассказывается через визионеров и преступников, магнатов и подростков, создающих новую цифровую реальность. Это история о величайшем пирате в истории, самом влиятельном руководителе в музыкальном бизнесе, революционном изобретении и нелегальном сайте, который по своим размерам превосходил iTunes Music Store в четыре раза.
Читать дальше →
Всего голосов 17: ↑15 и ↓2+13
Комментарии1

Подборка: 5 полезных сервисов для написания статей на английском

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


Всем привет! Меня зовут Марго, я профессиональный маркетолог и редактор, в последние пару лет фокусируюсь на продвижении за рубежом и много пишу на английском. Я решила поделиться ссылками на приложения и сайты, которые помогают мне в ежедневной работе при создании контента. Надеюсь, список поможет изучающим английский и тем, кто публикует англоязычные материалы на Хабре.
Читать дальше →
Всего голосов 51: ↑48 и ↓3+45
Комментарии29

Монады за 15 минут

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

Вступление


На конференции YOW! 2013 один из разработчиков языка Haskell, проф. Филип Вадлер, показал, как монады позволяют чистым функциональным языкам осуществлять императивные по сути операции, такие, как ввод-вывод и обработку исключений. Неудивительно, что интерес аудитории к этой теме породил взрывной рост публикаций о монадах в Интернет. К сожалению, бо́льшая часть этих публикаций использует примеры, написанные на функциональных языках, подразумевая, что о монадах хотят узнать новички в функциональном программировании. Но монады не специфичны для Haskell или функциональных языков, и вполне могут быть проиллюстрированы примерами на императивных языках программирования. Это и является целью данного руководства.

Чем это руководство отличается от остальных? Мы попытаемся не более чем за 15 минут «открыть» монады, используя лишь интуицию и несколько элементарных примеров кода на Python. Мы поэтому не станем теоретизировать и углубляться в философию, рассуждая о буррито, космических скафандрах, письменных столах и эндофункторах.
Читать дальше →
Всего голосов 36: ↑35 и ↓1+34
Комментарии13
1

Информация

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