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

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

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

Как переехать из Slack в Mattermost — личный опыт

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

Как переехать из Slack в Mattermost — личный опыт

Приветствую, уважаемые читатели Хабра. Меня зовут Иван, я руковожу направлением омниканальных решений в Лиге Цифровой Экономики. На старте одного из проектов около шести лет назад мы с заказчиком решили, что будем вести все проектные коммуникации в Slack. На тот момент для нашей небольшой команды стоил он не так дорого, да еще и был удобнее, чем альтернативные мессенджеры.

Summary: Из-за проблем со Slack нам нужно было искать альтернативу, а терять накопленные наработки не хотелось. Мы нашли способ переехать относительно безболезненно и с сохранением данных — рассказываем, как это сделали.

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

Суровая оптимизация работы с market data для криптобиржи

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


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

1. REST-интерфес;
2. WEBSocket broadcast subscription.

Метод REST зачастую используется для получения исторических данных, в то время, как по WEBSocket рассылается актуальная информация в режиме online. В некоторых случаях WEBSocket вообще не используется, а обновление происходит регулярными запросами через REST.

И вроде все довольны. Но, при более детальном рассмотрении, становится очевидными огромные накладные расходы на такую концепцию. Их основная масса ложится на REST. Для обеспечения функционирования REST-интерфейса мы должны создать backend отвечающий требованиям высоконагруженных систем. Естественно, тут можно выбирать различные варианты решения от PHP до нынче модного Golang.

Также требуется создать высокодоступную инфраструктуру, реализовать такие мелочи как CI/CD для сервисов, обеспечить все это нужными спецами по разработке, сопровождению, и т.д., и т.п.

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

Стажёр Вася и его истории об идемпотентности API

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

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


Меня зовут Денис Исаев, и я руковожу одной из бэкенд групп в Яндекс.Такси. Сегодня я поделюсь с читателями Хабра описанием проблем, которые могут возникнуть, если не учитывать идемпотентность распределенных систем в своем проекте. Для этого я выбрал формат вымышленных историй о стажёре Васе, который только-только учится работать с API. Так будет нагляднее и полезнее. Поехали.


image

Читать дальше →
Всего голосов 219: ↑216 и ↓3+213
Комментарии163

Product very first. Выгорание

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

Когда-то я работал в медицинском Калифорнийском стартапе. Там было 20 человек, но ни одного доктора.

Даже медсестры не было. Зато было 10 программистов. Я сам гуглил бывает ли рак груди у мужчин, про то, что у женщин бывает, я знаю, благодаря Анджелине Джоли. Фиг его знает, сколько американцев лечилось на основе моих ценных рекомендаций американским докторам :)

Я ушел оттуда, потому что не понимал, как я могу определять, какие анализы рекомендовать в выпадашке, если у меня нет медобразования.

У нас с женой договоренность, перед тем как покупать лекарство, она гуглит его, и если там не написано БАД или гомеопатия, то покупает.

Спасибо Яндекс.Медицина, ты торчишь мне 460 рублей за купленный женой Эргоферон. Я считал Я.Медицину адекватной, извините.
Читать дальше →
Всего голосов 119: ↑88 и ↓31+87
Комментарии164

Разработчики — никакая не элита, а голые короли индустрии

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

ЛОЛШТО?


Пожалуйста, не поймите меня неправильно. Я профессиональный разработчик с 30-летним стажем. Я могу читать и понимать почти двадцать языков, полных по Тюрингу. Я могу писать ясный и выразительный код на доброй дюжине из них. В языках, которые я действительно люблю и использую ежедневно — мое имя можно увидеть на доске почета StackOverflow (топ-20 в мире: ruby, elixir). Я по-настоящему люблю писать код, и я отклоняю все предложения «вырасти» по должностной лестнице, будь то руководство проектами, CTO, или что угодно в этом направлении, несмотря на потенциальное увеличение дохода в разы.


professional beggars were often seen as people not deserving of aid
— Abraham Willemsens (Metropolitan Museum of Art)


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

Читать дальше →
Всего голосов 554: ↑292 и ↓262+125
Комментарии1984

Светодиодное враньё невиданных масштабов

Время на прочтение3 мин
Количество просмотров261K
В магазинах можно встретить множество мощных светодиодных ламп, например «свечки» и «шарики» 9 и 11 Вт.

Вот только свечек и шариков такой мощности сегодня существовать не может.
Читать дальше →
Всего голосов 365: ↑364 и ↓1+363
Комментарии569

Производительность PHP: планируем, профилируем, оптимизируем

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


Привет, Хабр! Два года назад мы писали о том, как перешли на PHP 7.0 и сэкономили миллион долларов. На нашем профиле нагрузки новая версия оказалась в два раза более эффективной по использованию CPU: ту нагрузку, которую раньше у нас обслуживали ~600 серверов, после перехода начали обслуживать ~300. В результате на протяжении двух лет у нас был запас мощностей.

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

Мы оказались в ситуации, когда двукратный выигрыш в производительности нивелировался более чем двукратным ростом запросов, и мы опять стали приближаться к пределам нашего кластера. В ядре PHP снова ожидаются полезные оптимизации (JIT, предзагрузка), но они запланированы только на PHP 7.4, а эта версия выйдет не раньше, чем через год. Поэтому трюк с переходом сейчас повторить не удастся — нужно оптимизировать сам код приложения.

Под катом я расскажу, как мы подходим к таким задачам, какими пользуемся инструментами, и приведу примеры оптимизаций, идей и подходов, которые мы применяем и которые помогли нам в своё время.
Читать дальше →
Всего голосов 105: ↑105 и ↓0+105
Комментарии58

Блеск и нищета джавовых веб-фреймворков

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

Привет, Хабр! Помоги выбрать веб-фреймворк? Требования: модный, молодежный, популярный, качественный фреймворк для соло-технономада.


Надо ли нам каждый месяц читать очередной пост про это?



Несколько лет участия в проектах на границе энтерпрайза и системщины окончательно отбили нюх. Чтобы разобраться в вопросе, я заглянул в топ гугла и обнаружил там кучу однобоких рейтингов. Наверное, самым лучшим оказался Java Web Frameworks Index от ZeroTurnaround.

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

Тестирование безопасности клиент-серверного API

Время на прочтение6 мин
Количество просмотров41K
2 года назад я выступал на конференции CodeFest с темой «Пентест на стероидах. Автоматизируем процесс» и делал пересказ выступления в качестве статьи. В этом году я с большим удовольствием снова принял участие в конференции и выступил с темой «BlackBox тестирование безопасности клиент-серверного API» и, видимо уже в качестве традиции, также делаю пересказ выступления.



Уязвимости в API встречаются. Правда.

О чем разговор?


Разговор про API, но API бывает разным — API операционной системы, сайта, десктопной программы, да хоть чего. Вкратце — API это обращение к методам чего-либо (например в случае ОС — запись в файл) через определенный метод. И запуск какого-нибудь файла с т.ч. зрения разработки произойдет схожим образом (тоже через API метод ОС), хотя результат выполнения команды совершенно разный. В веб-технологиях многие тоже реализуют API к своим проектам, и если на пальцах: можно отправить сообщение в соц. сети зайдя на сайт, а можно — сформировав специальный HTTP запрос. И при реализации подобного альтернативного использования функционала допускаются (как и везде) ошибки в безопасности. Статья как раз о специфичных ошибках при реализации подобного функционала в веб-проектах.
Читать дальше →
Всего голосов 68: ↑66 и ↓2+64
Комментарии16

Избранное: ссылки по IT безопасности

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




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




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

CSRF-уязвимости все еще актуальны

Время на прочтение14 мин
Количество просмотров78K
CSRF (Сross Site Request Forgery) в переводе на русский — это подделка межсайтовых запросов. Михаил Егоров (0ang3el) в своем докладе на Highload++ 2017 рассказал о CSRF-уязвимостях, о том, какие обычно используются механизмы защиты, а также как их все равно можно обойти. А в конце вывел ряд советов о том, как правильно защищаться от CSRF-атак. Под катом расшифровка этого выступления.


О спикере: Михаил Егоров работает в компании Ingram Micro Cloud и занимается Application security. В свободное время Михаил занимается поиском уязвимостей и Bug hunting и выступает на security-конференциях

Дисклаймер: приведенная информация является сугубо мнением автора, все совпадения случайны.


В том, что CSRF-атаки работают виноват этот Cookie-монстр. Дело в том, что многие веб-приложения используют куки (здесь и далее считаем уместным называть cookies по-русски) для управления сессией пользователя. Браузер устроен так, что, если у него есть куки пользователя для данного домена и пути, он их автоматически отправляет вместе с HTTP-запросом.
Всего голосов 54: ↑54 и ↓0+54
Комментарии20

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

Время на прочтение11 мин
Количество просмотров1.8M
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

Vysor — удобный инструмент для тестирования

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

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

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

Дайджест продуктового дизайна, февраль 2017

Время на прочтение11 мин
Количество просмотров7.5K
Уже семь лет я публикую регулярные обзоры свежих статей по теме интерфейсов, новых инструментов и коллекций паттернов, интересных кейсов и исторических рассказов. Из лент нескольких сотен тематических подписок отбирается примерно 5% стоящих публикаций, которыми интересно поделиться. Предыдущие материалы: апрель 2010-январь 2017.

Дайджест продуктового дизайна, февраль 2017
Читать дальше →
Всего голосов 23: ↑19 и ↓4+15
Комментарии0

Экосистема разработчиков в Telegram

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

Многим уже известно, что в мессенджере Telegram помимо прямого общения между двумя людьми также реализованы другие полезные инструменты:

  • Каналы — некий симбиоз сообщений и списков рассылки, где автор или коллектив авторов обращаются к своей аудитории, но аудитория не может влиять на содержимое канала.
  • Группы — своеобразные чаты между большим количеством пользователей, где каждый участник является полноправным представителем сообщества и может влиять на повестку дня.
  • Боты — специальные аккаунты в Telegram, созданные для того, чтобы автоматически обрабатывать и отправлять сообщения, часто используются для интеграции c сервисами.

На днях на просторах Github, наткнулся на список каналов, групп, ботов в Telegram, который пополняется непосредственно разработчиками, использующими этот проект совместной разработки. Под катом можно увидеть саму IT-подборку, из которой каждый сможет выбрать что-то интересное для себя.
Читать дальше →
Всего голосов 39: ↑35 и ↓4+31
Комментарии46

Выбор светодиодных ламп. 2. Об оптимальной мощности

Время на прочтение3 мин
Количество просмотров24K
Вторая часть методического материала посвящена анализу оптимальной мощности светодиодных ламп (СДЛ) типа «кукуруза». Т.е. лампы какой мощности выгоднее всего покупать.
Читать дальше →
Всего голосов 16: ↑14 и ↓2+12
Комментарии36

Адаптируем nooLite для работы с Apple HomeKit

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

Я давно увлекаюсь темой технологий в общем и домашней автоматизации в частности. Пару лет назад это увлечение переросло в профессиональную деятельность, которой я занимаюсь по сей день. Моя компания специализируется на установке и настройке систем "Удобный дом" (ну не позволяет мне совесть назвать умным домом то, что можно сделать за адекватные деньги).


Работу с объектом можно условно разделить на 3 этапа:


  1. Общение с заказчиком, получение информации об ожидаемых функциях системы и их приоритетах
  2. Установка и настройка
  3. Общение с заказчиком, получении отзыва о системе, недостающих функциях, функциях, оставшихся невостребованными.

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



Я понимал, что этот процесс можно как-то упростить, однако всерьез этим не занимался. Но недавно на рынок вышли два интересных обновления, которые подтолкнули нас с @RagimovRV попробовать добавить моему и клиентским "Удобным домам" немного сообразительности.


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

Шаблоны взаимодействия для интернета вещей

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


Сегодня мы рассмотрим одиннадцать шаблонов взаимодействия в IoT-системах.
Читать дальше →
Всего голосов 25: ↑22 и ↓3+19
Комментарии4

Нейробиологи предупреждают: многозадачность истощает энергетические резервы вашего мозга

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

Постоянная проверка телефона снижает производительность

И вот опять — каждодневная утренняя суета: проверить электронную почту, просмотреть Фейсбук, быстренько выпить чашечку кофе, прогуглить, направляясь к поезду, одну последнюю идею, проверить уведомления, ещё кофе, пролистать рабочую электронную почту … — уф! Бесчисленное множество дел переполняет ваше утро, и постоянное переключение между ними, похоже, заметно утомляет вас.

Когда мы пытаемся заниматься несколькими делами одновременно, мы фактически не делаем больше одного дела сразу, а просто быстро переключаемся между ними. И такое переключение истощает. Оно расходует насыщенную кислородом глюкозу в головном мозге, потребляя то же топливо, которое требуется для сосредоточения на задаче.
Читать дальше →
Всего голосов 30: ↑28 и ↓2+26
Комментарии21

Как стать профессиональным веб-разработчиком: практическое руководство

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

Дорога длинна и трудна, но интересна и полезна!

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

По статье разбросано множество ссылок на бесплатные и важные ресурсы. Для простоты я собрал их в PDF и разбил по категориям. Мне не платят за упоминания сайтов, ссылки на которые я привёл – я всего лишь хочу порекомендовать вам лучшие ресурсы, чтобы помочь вам достичь вашей цели.

Что нужно помнить:

1. Статью разрешается пролистывать

Руководство может помочь вам вне зависимости от вашего положения на дороге к профессиональной разработке. Прокрутите его к тому заголовку, который лучше всего описывает ваше сегодняшнее положение, и читайте оттуда. Если вы только начали этот путь, или пока размышляете об этом – последуйте совету Короля из «Алисы в стране чудес»:

Начните с начала, и продолжайте, пока не дойдёте до конца; и там уже остановитесь.
Читать дальше →
Всего голосов 49: ↑38 и ↓11+27
Комментарии129

Информация

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