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

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

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

Сегодня ночью мы успешно выполнили обновление вашего организма

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

Добрый день!

Мы рады представить вам новую версию, в которой много замечательных изменений! Вот только некоторые из них:

  • Убраны пальцы ног. Отдельные пальцы только тратили излишние ресурсы, теперь ступня просто заканчивается второй пяткой меньшего размера. Форма второй пятки примерно совпадает с формой пальцев прошлой версии для совместимости с обувью. В некоторых азиатских и греческих локалях, увы, ряд сандалий будет несовместим с новой версией. Пользователи этих локалей могли прочесть уведомления о необходимости обновить обувь за 2 недели до релиза в подразделе 14.22 оферты на нашем официальном сайте.
  • Исправлена ошибка в 6-й жаберной дуге, возвратный гортанный нерв больше не возвратный. В новой стабильной версии это прямой гортанный нерв.
  • RBP v1.0: добавлена возможность для разработчиков обращаться к нервной системе по API.

Также исправлено более сотни мелких ошибок, внесено несколько изменений в архитектуру для большего удобства пользователя, поддержки экологичности, стабильности развития, снижения углеродного следа и экономии невозобновляемых энергоресурсов. Часть обновлений связана с безопасностью, но мы не раскрываем эти данные на текущий момент.
Читать дальше →
Всего голосов 281: ↑267 и ↓14 +253
Комментарии 198

Реализация системы GTD на основе новых возможностей Google Keep и Calendar

Время на прочтение 19 мин
Количество просмотров 34K
This article in English: GTD Implementation via New Google Keep and Calendar Features

За последние годы Google Keep и Calendar значительно расширили свою функциональность, что дает возможность построить более удобную реализацию методологии GTD (Getting Things Done) на их основе. Ранее я уже публиковал материал с реализацией GTD на основе Google Calendar. Представленный теперь материал можно рассматривать как обновленную реализацию GTD на тех же принципах, но с использованием более современных средств.

В моем материале 2015 года в качестве базового элемента для всех пяти фаз управления рабочим процессом (Control) в системе GTD был выбран один и тот же сервис — Google Calendar. Теперь на различных фазах в качестве базовых элементов будут использоваться два разных сервиса — Calendar и Keep — в соответствии с приспособленностью их функционала для отдельных фаз.

  • Calendar теперь будет использоваться в качестве базы для фазы обзора (Review-Reflect), а также для фазы выполнения (Do-Engage).
  • Keep будет использоваться в качестве базы для фазы сбора (Collect-Capture), фазы обработки (Process-Clarify) и фазы организации (Organize).

Реализация GTD в Google Calendar (развернут список ближайших действий на неделю):


Pеализация GTD в Google Keep (категория ближайших действий):
Читать дальше →
Всего голосов 16: ↑16 и ↓0 +16
Комментарии 18

Как делать меньше ошибок в английском. Поясняет носитель языка

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


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

На начальном этапе это помогает разобраться в фонетике, но потом приходится свыкаться с большим количеством правил и исключений, которые не имеют аналогов в русском.
Мы попросили одного из самых опытных носителей английского языка в нашей школе, Трессу, рассказать о наиболее частых ошибках ее русскоязычных студентов и как их исправить. Но прежде чем перейти к самому списку, есть ряд советов от нее, чтобы количество ошибок постоянно уменьшалось:
Читать дальше →
Всего голосов 53: ↑49 и ↓4 +45
Комментарии 56

Краш-курс по интерфейсам в Go

Время на прочтение 9 мин
Количество просмотров 89K
Интерфейсы в Go представляют собой одну из отличительных особенностей языка, формирующих способ решения задач. При схожести с интерфейсами в других языках, интерфейсы Go всё же имеют важные отличия и это поначалу приводит к избыточному переиспользованию интерфейсов и путанице в том, как и когда их использовать. Это нормально, но давайте попробуем разобраться, в чем же особенность интерфейсов в Go, как они устроены, почему так важны и что значит ортогональность интерфейсных типов и структурных типов в Go.

В этой статье вы узнаете:

  • в чем отличие от интерфейсов в Java
  • важные и неочевидные последствия этих отличий
  • как устроены интерфейсы под капотом
  • вспомним про пустой интерфейс (interface{})
  • затронем сакральную тему про дженерики
  • разберемся, кто и зачем должен создавать интерфейс
  • и постараемся научиться не абьюзить интерфейсы и начать жить

Header
(artwork by Svitlana Agudova)
Читать дальше →
Всего голосов 39: ↑32 и ↓7 +25
Комментарии 19

Внутренние механизмы ТСР, влияющие на скорость загрузки: часть 2

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


В первой части мы разобрали «тройное рукопожатие» TCP и некоторые технологии — TCP Fast Open, контроль потока и перегрузкой и масштабирование окна. Во второй части узнаем, что такое TCP Slow Start, как оптимизировать скорость передачи данных и увеличить начальное окно, а также соберем все рекомендации по оптимизации TCP/IP стека воедино.
Читать дальше →
Всего голосов 14: ↑14 и ↓0 +14
Комментарии 6

Пишем Telegram-бота на Rust, который будет запускать код на… Rust?

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

Доброй ночи! Сегодня хотелось бы кратко рассказать о том, как написать Telegram-бота на Rust, который будет запускать код на Rust. У статьи нет цели произвести полное погружение в API telegram_bot, Serde, Telegram или в нюансы разработки на Rust. Она скорее носит ознакомительный характер. Числа Пеано с помощью системы типов складывать не будем.
Превью к статье


Хотел складывать числа Пеано, но ладно, давай своего бота...
Всего голосов 52: ↑47 и ↓5 +42
Комментарии 12

Телеграмм-бот, опрашивающий linux-сервер

Время на прочтение 3 мин
Количество просмотров 29K
В последнее время увлекаюсь Pythonом. Хотелось написать что-то более существенное, чем коды типа helloworld. Поскольку с интересом смотрел еще и в сторону ботов телеграмма, родилась идея создать бота, который бы запускал команды или скрипты на удаленном сервере (linux) и возвращал бы результат в телеграмм. Зачем? Удобно! Не надо логиниться на сервак, чтобы получить информацию о нагрузке на процессор, свободной памяти или объеме диска. Можно даже запускать скрипты.
Читать дальше →
Всего голосов 16: ↑13 и ↓3 +10
Комментарии 18

Использование HAproxy iptables+еtcd+confd для автоматического service discovery в переменчивых сетях

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


Сергей Пузырёв (Mail.Ru Group)


Меня зовут Сергей Пузырев, я системный администратор в Mail.ru, я занимаюсь проектом «Поиск». Да, на удивление, у Mail.ru есть поиск. Я люблю сервисы, которые не требуют внимания. Я системный администратор, и я не люблю работать системным администратором очень много, я люблю делать так, чтобы работы было меньше, поэтому одно из решений, которое мы пытаемся использовать в своей работе, я вам опишу.


Всего голосов 21: ↑20 и ↓1 +19
Комментарии 3

Как мы прошли программу УМНИК для получение гранта от начала до конца с проектом разработки ЧПУ станка

Время на прочтение 7 мин
Количество просмотров 19K
Всем привет! Я бы хотел рассказать о программе УМНИК, направленной на получение гранта от Фонда содействия, о нашей разработке безопасного и простого ЧПУ станка ИНЖИР и о том, к чему мы идем.
Читать дальше →
Всего голосов 17: ↑17 и ↓0 +17
Комментарии 7

Особенности разработки Telegram бота с Google API в Docker

Время на прочтение 5 мин
Количество просмотров 25K
Коротко о боте: получает список YouTube-каналов пользователя и уведомляет о новых видео с возможностью напомнить о нем позже.

В статье расскажу об особенностях написания этого бота и взаимодействия с Google API. Я люблю краткость, поэтому в статье будет мало «воды».

На какие вопросы ответит статья:

  • Где взять внешний адрес сайта для Webhook
  • Где взять HTTPS-сертификат как его использовать, чтобы Telegram ему доверял
  • Как передавать данные и обрабатывать нажатия на Inline-кнопки
  • Как получить вечный OAuth токен для Google API
  • Как передать данные пользователя через OAuth callback url
  • Как получить бесплатный домен 3 уровня

Стэк:

  1. Back-end: Node.js + Express.js
  2. БД: Mongo.js + mongoose
  3. Пакетный менеджер: Yarn (он действительно быстрый)
  4. Telegram-бот фреймворк: Telegraf
  5. Продакшн: Docker + Docker Compose + Vscale.io
Читать дальше →
Всего голосов 34: ↑30 и ↓4 +26
Комментарии 33

Проектирование импульсного источника питания с активным ККМ. Эпизод I

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

Предисловие


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

Еще одной причиной отсутствия статей была моя работа в одной «современной успешной IT-hardware-компании», сейчас наконец-то я ее покинул и окончательно пересел на фриланс, так что время для статьи появилось))

Недавно ко мне обратился мой старый наставник и просто очень хороший человек. Естественно я не мог отказать в помощи, а оказалось все достаточно просто — меня попросили сделать блок питания для КВ трансивера FT-450, который будет более стабильный в работе, особенно при пониженном входном напряжении, чем уже имеющийся Mean Well. Прошу заметить, я не говорю о том, что Mean Well плохая фирма, просто в данном случае нагрузка достаточно специфическая, а так продукция у них вполне себе хорошая.

Диагноз примерно такой:


— Заявлен выходной ток в 40А, на деле при потреблением в 30-35А (на передаче) блок уходит в защиту;
— Наблюдается сильный нагрев при длительной нагрузке;
— Совсем становится плохо, когда использует его на даче, где напряжение в сети 160-180В;
— Напряжение максимальное 13,2-13,4В, а хотелось бы 13,8-14В с возможностью подкрутить +-20%.

Особенностью данной статьи будет то, что проект продвигается вместе с ней. Я за него только засел и поэтому смогу рассказать обо всех этапах разработки: от ТЗ до готового прототипа. В таком формате статей с наскоку на гике я не нашел, обычно люди пишут уже проделав всю работу и забыв половину мелочей, которые часто несут в себе главный интерес. Так же эту статью я хочу написать доступным для новичков языком, поэтому местным гуру стоит чуточку проще относиться к «неакадемичности» моего слога.
Читать дальше →
Всего голосов 52: ↑52 и ↓0 +52
Комментарии 289

Пишем диалоговые Telegram-боты на Питоне

Время на прочтение 11 мин
Количество просмотров 233K
Думаю, всем здесь в той или иной мере известен мессенджер Telegram. Создатель заявляет, что это самый безопасный мессенджер с убойным алгоритмом шифрования собственной разработки, но нас, разработчиков, конечно же, куда сильнее интересует другое. Боты!

Тема эта, конечно, не раз поднималась на Хабре: ботов писали на Python с tornado, Node.js, Ruby со специальным гемом, Ruby on Rails, C#, C# с WCF и даже PHP; ботов писали для RSS-каналов, мониторинга сайтов, удалённого включения компьютера и, вероятно, для многого, многого другого.

И всё же я возьму на себя смелость изъездить эту тему ещё раз и вдобавок к этому показать немного магии Питона. Мы будем писать фреймворк™ для удобного написания нетривиальных диалоговых ботов на основе пакета python-telegram-bot.
Читать дальше →
Всего голосов 44: ↑41 и ↓3 +38
Комментарии 14

Очереди и блокировки. Теория и практика

Время на прочтение 12 мин
Количество просмотров 31K
Мы выдохнули после HighLoad++ и продолжаем публикации лучших докладов прошлых лет. HighLoad++ получился прекрасным, количество организационных улучшений скачкообразно переросло в новое качество продукта. Хабр, кстати, вёл текстовую трансляцию с конференции (первый, второй дни).

Александр Календарёв

Александр Календарев ( akalend )


Здравствуйте, уважаемые коллеги! Мой доклад будет про вещь, без которой не обходится ни один HighLoad-проект — про сервера очередей, и если успею, то расскажу про блокировки (примечание расшифровщика — успел :).
Читать дальше →
Всего голосов 28: ↑27 и ↓1 +26
Комментарии 41

Рак. Что с этим делать и чего делать не надо. Личный опыт

Время на прочтение 5 мин
Количество просмотров 254K
Примерно год назад я расширенно ответил на статью о раке. Это вызвало массу комментариев и неподдельный интерес к теме. Я долго не писал, потому что я не был уверен, что все закончится в итоге хорошо. К сожалению, хорошо не закончилось. Эта статья в основном, о том чего делать не надо.
Читать дальше →
Всего голосов 170: ↑146 и ↓24 +122
Комментарии 332

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

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


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

NooLite + Raspberry Pi + Telegram = умный дом

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

2 года назад передо мной встала задача реализовать удаленное управление обогревательными приборами в своем загородном доме. В данной статье я хочу поделиться моим вариантом автоматизации и удаленного управления, к которому я в итоге пришел. Постараюсь охватить весь процесс и подробности создания этого хобби-проекта и поделиться всеми сложностями, с которыми пришлось столкнуться. В процессе реализации, как видно из названия статьи, я использовал Noolite (о нем расскажу в статье), Telegram и совсем немного Python.


image
Читать дальше →
Всего голосов 43: ↑38 и ↓5 +33
Комментарии 47

Tarantool: примеры использования

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


Tarantool — это СУБД с открытым исходным кодом. Кто угодно может скачать её с GitHub и использовать как в коммерческих приложениях, так и в некоммерческих. Сегодня технический директор Почта@Mail.ru Денис Аникин расскажет о примерах использования этой базы данных. Материал подготовлен по мотивам выступления на конференции FailOver Conference.
Читать дальше →
Всего голосов 60: ↑58 и ↓2 +56
Комментарии 61

Собираем и анализируем логи с помощью Lumberjack+Logstash+Elasticsearch+RabbitMQ

Время на прочтение 9 мин
Количество просмотров 43K
Добрый день.

Логи часто и абсолютно не заслуженно обделены вниманием разработчиков. И когда программистам необходимо пропарсить log-файлы, иногда с нескольких десятков серверов одновременно, задача эта ложится на системных администраторов и отнимает у них много времени и сил.

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

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

Почему? Maxifier представляет собой SaaS-продукт с клиентами в США, Бразилии, в нескольких странах Европы и в Японии, так что у нас около сотни серверов, раскиданных по всему миру. Для оперативной работы нам необходимо иметь удобный доступ к логам наших приложений и быстрый поиск ошибок в них в случае проблем на сторонних сервисах/api, появления некорректных данных т.д. Кстати, похожей системой сборки логов пользуются The Guardian (одни из наших клиентов).

После нескольких случаев сборки логов Rsync-ом со множества серверов мы задумались над альтернативой, менее долгой и трудоемкой. И недавно мы разработали свою систему сборки логов для разных приложений. Поделюсь собственным опытом и описанием, как это работает.
image
Читать дальше →
Всего голосов 35: ↑31 и ↓4 +27
Комментарии 19

Списки с пропусками: вероятностная альтернатива сбалансированным деревьям

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

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

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

Балансировать структуру данных вероятностно проще, чем явно обеспечивать баланс. Для многих задач списки пропуска это более естественное представление данных по сравнению с деревьями. Алгоритмы получаются более простыми для реализации и, на практике, более быстрыми по сравнению со сбалансированными деревьями. Кроме того, списки с пропусками очень эффективно используют память. Они могут быть реализованы так, чтобы на один элемент приходился в среднем примерно 1.33 указатель (или даже меньше) и не требуют хранения для каждого элемента дополнительной информации о балансе или приоритете.
Читать дальше →
Всего голосов 63: ↑62 и ↓1 +61
Комментарии 9

Чем заменить ELK для просмотра логов?

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

Что обычно делает python-программист, когда его отправляют воевать с ошибкой?
Сначала он лезет в sentry. Здесь можно найти время, сервер, подробности сообщения об ошибке, traceback и, может быть, какой-нибудь полезный контекст. Затем, если этих данных недостаточно, программист идет c бутылкой к админам. Те залезают на сервер, ищут это сообщение в файловых логах, и, может быть, находят его и некоторые предшествующие ошибке записи, которые в редких случаях могут помочь в расследовании.
А что делать, если в логах только loglevel=ERROR, а ошибка настолько крута, что ее локализация требует сопоставления логики поведения нескольких различных демонов, которые запущены на десятке серверов?


Решение — централизованное хранилище логов. В самом простом случае — syslog (за 5 лет, что был развернут в rutube, не использовался ни разу), для более сложных целей — ELK. Скажу честно, "ластик" — крут, и позволяет быстро крутить разнообразную аналитику, но вы интерфейс Kibana видели? Этой штуке так же далеко до консольных less/grep, как винде до линукса. Поэтому мы решили сделать свой велосипед, без Java и Node.js, зато с sphinxsearch и Python.

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

Информация

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