Как стать автором
Обновить
3
0
Холстинников Григорий @scarych

Системное проектирование

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

Один клик, и телеграм-каналы превращаются в…

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

В подкасты! Рассказываем, как с помощью ИИ мы создали аудио-стриминг телеграм-каналов.

Сейчас в Телеграм много очень интересного контента. Но часто не хватает времени, чтобы все это читать. Вот тут-то и приходит на помощь Radiogram. Мы сделали так, что ваши любимые телеграм-каналы можно просто слушать – как подкасты.

Читать далее
Всего голосов 15: ↑12 и ↓3+12
Комментарии12

Как мы Schema Registry для Kafka настраивали, и что могло пойти не так…

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

Всем привет.

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

Спойлер: на данный момент реестр схем данных настроен и используется в боевой системе, каких-то проблем, связанных с SR, замечено не было.

Читать далее
Всего голосов 3: ↑2 и ↓1+3
Комментарии4

Apache Kafka. Безопасность, мониторинг и управление кластером

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

Мы расскажем, как настроить безопасность кластеров Kafka и Zookeeper, какие инструменты можно использовать для мониторинга и управления кластером, а также про особенности продукта, с которыми мы столкнулись.

 Почему Apache Kafka?

 Apache Kafka — это унификация. Десятки поставщиков и потребителей, миллионы сообщений в день и огромные массивы данных — для этого нужна надежная, отказоустойчивая и высокопроизводительная шина данных. Существует множество версий дистрибутивов Apache Kafka, например vanilla kafka, oбразы от confluent, bitnami, wurstmeister и т.д. Мы расскажем про решение на базе сборок от Confluent в виде Docker-образов. Оно самое надежное в плане информационной безопасности. Конфигурирование и запуск контейнеров с Kafka в данном случае происходит с помощью docker-compose.

 За время работы с Kafka мы прошли  путь от «коробочного» решения до тонкой настройки безопасности кластера, применения TLS шифрования и разворачивания по рекомендациям вендора по построению геораспределенного кластера. В конфигурации «из коробки» нет первоначальных настроек безопасности. Для контроля доступов, вносимых изменений и безопасного взаимодействия перед нами встала задача настройки на кластере Apache Kafka TLS шифрования, аутентификации и авторизации средствами встроенного ACL.

 TLS шифрование

Обеспечивает шифрование соединения между брокерами Kafka, серверами Zookeeper, клиентами и брокерами. Вся ключевая информация помещается в хранилища — keystore, которые разделяют на два вида:

keystore, где хранятся ключи и сертификаты стороны, в отношении которой пройдет процедура аутентификации и установления защищенного соединения, например, приватный ключ и ассоциированный с ним и подписанный со стороны центра сертификации (ЦC) сертификат.

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

Как мы запустили телеграм-радио

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

Привет, я Леша, и я подписан на 38 телеграм-каналов. В этих каналах много интересного: про технологии и стартапы, про бизнес и политику, про финансы и науку.

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

Так и родилась идея телеграм-радио. Потом были 9 месяцев сложной и неочевидной разработки, и получился Radiogram (www.radiogram.ai).

Читать далее
Всего голосов 17: ↑13 и ↓4+11
Комментарии14

Типы личности и командная работа

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

Есть два типа личности по тому, как они отвечают сами себе на вопрос о том, почему есть разница между тем, каким должен быть мир для автора вопроса к себе и тем, каков этот мир есть. В чем корень проблемы между "хочу" и "есть"?

Одни отвечают что проблема "в мире", другие отвечают что проблема в "во мне".

Первые это психотики, вторые - невротики. Есть пограничное между ними состояние - оно так и называется "пограничное".

Читать далее
Всего голосов 12: ↑6 и ↓6+2
Комментарии10

Почему плохо быть отличником

Время на прочтение7 мин
Количество просмотров132K
Я отличница. Конечно, не совсем та, которая со сложенными ручками, пятёркой по поведению и отглаженным воротничком. Но золотая медаль, олимпиады, красные дипломы в количестве трёх штук и прочая атрибутика «школьного» успеха налицо. Вот уже 11 лет я работаю в бизнесе — всё это время в ИТ: инженером по тестированию, инженером VoIP, коммерсом. Хорошо работаю, почти не придраться. Всё на «пять», часто с плюсом. И у меня, как у любой отличницы, много историй про одноклассниц, которые в 33 года и замужем, и на последних «мерсах», и со своим делом. «Харэ ныть, пора разобраться, какого, собственно, так происходит?» — в один из дней эта мысль плотно засела в голове. И вот он, разбор полётов — для нас, отличников, для будущего поколения и для родителей, которые «тянут» своих детей от пятёрки к пятёрке.


Читать дальше →
Всего голосов 163: ↑133 и ↓30+103
Комментарии468

Что конкретно входит в понятие «блокчейн»

Время на прочтение7 мин
Количество просмотров27K
Автор статьи — Алексей Маланов, эксперт отдела развития антивирусных технологий «Лаборатории Касперского».

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

Давайте разбираться.

Предупреждаю сразу, статья философская с пространными рассуждениями и демагогией. Хотите конкретики, читайте другую. Хотите разобраться — читайте третью.


Иллюстрация из книги Мелани Свон «Блокчейн. Схема новой экономики»
Читать дальше →
Всего голосов 27: ↑21 и ↓6+15
Комментарии15

Как перевести криптовалюту в другой блокчейн: немного о сайдчейнах

Время на прочтение5 мин
Количество просмотров19K
Биткоин продолжает укрепляться после недавнего спада. На положительную динамику влияет развитие блокчейн-технологий и череда событий в криптовалютной экосистеме.

Приложила к этому руку и компания Bitfury Group. Например, в начале июля мы провели первую транзакцию в Lightning Network c использованием биткойн-протокола. Задача этой сети — ускорить транзакции и снизить издержки на их проведение.

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

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

Тайминговая атака на Node.js — когда время работает против вас

Время на прочтение5 мин
Количество просмотров9.7K
Представьте себе сервис (или веб-приложение), который выдаёт вам сообщение вида «пятый символ введённого вами пароля неверный» в ответ на вашу попытку аутентификации. Выглядит абсурдно, не так ли? Предоставляя потенциальному злоумышленнику информацию подобного рода, мы попросту даём ему шанс «сбрутить» (подобрать, методом перебора) пароль от сервиса.

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


Сама по себе «тайминговая атака» или «атака по времени» — это нападение на систему по открытому каналу доступа, когда атакующий пытается скомпрометировать систему с помощью анализа времени, затрачиваемого на исполнение алгоритмов. Каждая операция (особенно математическая, будь то сложение, вычитание, возведение в степень и т.д.) требует определённого времени на исполнение, и это время может различаться в зависимости от входных данных. Располагая точными измерениями времени, которое расходуется на эти операции, злоумышленник может восстановить данные, необходимые для входа в систему.
Читать дальше →
Всего голосов 32: ↑23 и ↓9+14
Комментарии24

Смарт контракты Ethereum: пишем простой контракт для ICO

Время на прочтение7 мин
Количество просмотров29K
В последнее время ко мне поступает огромное количество запросов за помощью в разработке смартконтракта для проведения ICO, при этом у меня не хватает времени, чтобы помочь каждому. Поэтому я решил написать этот небольшой пост (ссылка на видео в конце поста), в котором описываю очень простой смартконтракт для проведения crowdsale, который вы можете использовать в своих проектах.


Читать дальше →
Всего голосов 35: ↑31 и ↓4+27
Комментарии83

Биткойн — цена революции

Время на прочтение5 мин
Количество просмотров26K
Невероятных размеров волна движется на нас на всех. Такое же ощущение было, когда приходил интернет, но сейчас оно сильнее, а явление масштабнее. Человек всё время идёт путём реализации возможностей внутренней нейронной среды вовне. И вот мы подходим к этапу, который можно назвать «Ты — это Я». Прямиком из «Ты — это Мы». Много всяких инструментов было создано для выражения воли этого «Мы»: государства, организации, религии, языки. Постепенно прогресс снял самые жесткие границы и обнаружилось, что «Мы» — это одна планета, один вид, один организм. Понеслась интеграция всего во всё.


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

Учим webworkers хорошим манерам

Время на прочтение4 мин
Количество просмотров9K
Рано или поздно у каждого кто работал с webworkers возникает ситуация когда код превращается в кашу вроде этого:

main.js
const worker = new Worker('test.worker.js');
worker.onmessage = (data) => {
  if(data.eventName === 'someFuncResult')
    someFunc();
  else if(data.eventName === 'someFunc2Result')
    someFunc2();
};

worker.postMessage({eventName: 'someFunc'});

test.worker.js
self.addEventListener('message', (data) => {
  if(data.eventName === 'someFunc') {
    doSomeFunc();
    self.postMessage('someFuncResult');
  }
  
 if(data.eventName === 'someFunc2') {
    doSomeFunc();
    self.postMessage('someFunc2Result');
  }
})


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

Цели:

— Читаемость кода
— Конкурентные запросы
— Ассинхронные функции
— Прозрачная обработка ошибок
— Возможность отправки промежуточных результатов выполнения процедуры
Читать дальше →
Всего голосов 17: ↑15 и ↓2+13
Комментарии1

PUSH-авторизация в сервисах с помощью мобильного приложения

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

Мы рады представить сообществу сервис PushAuth, который позволяет Вашим клиентам авторизироваться с помощью PUSH-сообщений на мобильном устройстве!



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

Всего голосов 11: ↑10 и ↓1+9
Комментарии11

Легион одиноких мужчин

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

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


image

В четверг, 13 июля 1995 года высокое давление в верхних слоях атмосферы над Чикаго опустило огромное количество горячего воздуха на землю, из-за чего температура подымалась до отметки 41°C. В городе Среднего Запада, не готовом к тропической жаре, деформировались дороги, на улицах ломались машины и закрывались школы. В пятницу три трансформатора энергетической компании Consolidated Edison вышли из строя, оставив 49000 людей без электричества. В апартаментах небоскрёбов без кондиционирования воздуха температура поднималась до 49°C даже с открытыми окнами. Жара не ушла и в субботу. Тело человека способно справляться с такой жарой лишь в течении 48 часов подряд, после чего оно начинает отключать защитные механизмы. Отделения скорой помощи в больницах были так переполнены, что не принимали жертв солнечного удара. Воскресенье было не лучше, в результате чего выросло количество смертей – от обезвоживания, жары и почечной недостаточности. Морги переполнились, тела хранились в грузовиках для перевозки мяса. В целом 739 человек погибло в этот период сильной жары.
Читать дальше →
Всего голосов 50: ↑43 и ↓7+36
Комментарии527

Знайте меньше, молчите чаще: или как в России и Китае ICO запретили

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


Если есть на этом свете кто-то, кто может удивлять меня каждодневно, то это — государственные органы Российской Федерации: буквально сегодня, вчера, если учитывать всё же часовой пояс собственного местонахождения, я заканчивал четвёртую часть о законах, которые изменят лицо отечественного IT. Уже изменили.

Но не суждено: сначала Китай громогласно крикнул, что ICO не только запрещено, но и универсальная аксиома «закон обратной силы не имеет» (ещё больше меня смущает подобная же оговорка Э. Сидоренко летом сего года на Криптобазаре относительно перспектив на просторах Необъятной) в этом случае не применяется, то есть все обязаны вернуть средства инвесторам. После этого мой телеграм, facebook, skype & vk сломались: более 1500 запросов за 24 часа — это перебор.
Читать дальше →
Всего голосов 64: ↑46 и ↓18+28
Комментарии501

Готовим сборку Go-приложения в продакшн

Время на прочтение6 мин
Количество просмотров28K
В июне на конференции РИТ++ мы с коллегой Игорем Должиковым делились опытом автоматизации процесса разработки сервисов на Go — от первого коммита и до релиза в продакшн-окружение Kubernetes (да-да, видео начинается с 07:16, и нам тоже это не нравится). С момента публикации мастер-класса время от времени я получаю вопросы по тем или иным темам, затронутым в нем. Пожалуй, самые горячие вопросы достойны отдельного рассмотрения, и сегодня я хотела бы поговорить о процессе сборки приложения. Затрагиваемые темы актуальны не только при подготовке сервисов, но и вообще для любых приложений, написанных на Go.

Всё, что описано в этой статье, актуально для текущей версии Go — 1.9.
Читать дальше →
Всего голосов 17: ↑16 и ↓1+15
Комментарии24

Сударь, ваша команда — не команда

Время на прочтение5 мин
Количество просмотров57K
За свои 12 лет работы в сфере разработки ПО, мне посчастливилось поработать в команде только два раза. Хотя я сменил порядка десяти мест работы. Но попробовав раз, ем и сейчас… Т.к. я не жадный, и готов своими достижениями делиться с сообществом, то решил я предпринять попытку вывести из равновесия неумных руководителей, которые до сих пор не осознали важность команды, а также тех руководителей, которые профессионально занимаются самообманом — мол, они строят команду, а на деле — тьфу, а не команда.
Читать дальше →
Всего голосов 110: ↑95 и ↓15+80
Комментарии254

Практическое применение блокчейна как распределенного хранилища данных

Время на прочтение5 мин
Количество просмотров13K
Блокчейн – технология о которой сейчас говорят все вплоть до домохозяек, пишут газеты и журналы. Если забыть о хайпе и не добавлять в проект блокчейн ради блокчейна, то оправданным его применение будет далеко не всегда. Нам посчастливилось столкнуться именно с такой ситуацией. К нам обратился один из наших крупных заказчиков – компания, предоставляющая услуги площадки по электронным госзакупкам.
Читать дальше →
Всего голосов 14: ↑12 и ↓2+10
Комментарии47

Создатель Node.js: «Для серверов я не могу представить другой язык кроме Go»

Время на прочтение3 мин
Количество просмотров54K
Перевод отрывка из интервью с создателем Node.js Раяном Далом (Ryan Dahl) в котором обсуждается модель программирования и язык Go.

— Расскажи нам, как проходила начальная разработка Node? Это ведь уже было достаточно давно, ты создал Node в 2009.

Райан: — Я думаю для себя лично, что нет лучшего момента в жизни, когда ты, как это говорится, «в потоке» и у тебя есть идея, в которую ты сильно веришь. И при этом есть время, чтобы сесть и на самом деле работать над ней. И я думаю, Node была именно такой идеей, которая ждала, чтобы её кто-то ухватил, и если бы не я, то это бы сделал кто-то другой. Но так случалось, что я был тогда достаточно свободен от работы и имел время, и мог работать нон-стоп несколько месяцев, которых как раз были нужны, чтобы выкатить начальную версию. Так что да, это был отличный период.

— Отлично, супер. Node построена на идее «полностью асинхронной» модели программирования. Удачна ли она была для Node?
Читать дальше →
Всего голосов 94: ↑65 и ↓29+36
Комментарии618

Пошаговый план старта на Upwork

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

Рано или поздно разработчик всерьез задумывается о фрилансе. В этот момент большинство идут на биржи. Выбор бирж огромен. В СНГ: fl.ru, weblancer и прочие. Но когда доходишь до дела начинаешь понимать в каком все упадке. Единственным местом где водятся более-менее нормальные заказы можно назвать fl.ru и еще одну-две биржы. Но на fl.ru нужен pro аккаунт, ведь оказывается чтобы взять заказ нужно заплатить бирже, и далеко не факт что тебе что-то светит. Поэтому было решено идти на Upwork.
Читать дальше →
Всего голосов 57: ↑51 и ↓6+45
Комментарии99
1
23 ...

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность