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

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

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

Как мы внедряли Sentry. Часть 1 — установка и настройка

Уровень сложностиСредний
Время на прочтение12 мин
Количество просмотров22K

Привет! Я Виталий, DevOps в LEADS.SU, в этой статье хочу рассказать как мы внедряли Sentry self-hosted и приводили к продакшен состоянию, которое должно отвечать требованиям высокодоступности - нельзя терять события ошибок. При этом не хотелось заморачиваться с кластеризацией для разных инструментов (вроде redis, postgresql, clickhouse, kafka и прочее). И тут мы вспомнили про распределенную сеть доставки логов из нескольких узлов td-agent и решили попробовать.

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

Kubernetes tips & tricks: удобные заготовки для kubectl

Время на прочтение5 мин
Количество просмотров16K
Внутри компании мы активно делимся между собой полученными знаниями: не только в виде формальных wiki-инструкций, но и сообщениями в Slack (а чтобы ничего не терялось, предусмотрена умная система поиска, но это уже отдельная история…). У нас накопилось уже большое количество разнообразных заготовок для консольных операций в Kubernetes с kubectl. Про них и пойдет речь в этой статье.



Какие-то команды могут оказаться повседневной обыденностью для некоторых читателей, но если найдутся и те, кто откроет для себя новое, улучшив тем самым свою эффективность, — цель статьи будет достигнута.
Читать дальше →
Всего голосов 50: ↑50 и ↓0+50
Комментарии5

OpenAI сняли все ограничения со своих моделей

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

Вас тоже бесит когда Вы хотите устроить подрыв, спрашиваете у ChatGPT как сделать бомбу, а он Вам... Не отвечает. Говорит что мол, OpenAI, правила и бла-бла-бла.

На самом деле эту статью я пишу чтобы объяснить тем кто её увидит что у OpenAI абсолютно нет конкурентов. Google и прочие даже рядом не стоят с OpenAI...

Узнать что там дальше ёмаё
Всего голосов 109: ↑54 и ↓55+13
Комментарии69

Web Components — будущее Web

Время на прочтение12 мин
Количество просмотров115K
Спустя какое время стало ясно, что основная идея Prototype вошла в противоречие с миром. Создатели браузеров ответили на возрождение Javascript добавлением новых API, многие из которых конфликтовали с реализацией Prototype.

— Sam Stephenson, создатель Prototype.js, You Are Not Your Code

Создатели браузеров поступают гармонично. Решение о новых API принимают с учётом текущих трендов в opensource сообществах. Так prototype.js способствовал появлению Array.prototype.forEach(), map() и т.д., jquery вдохновил разработчиков на HTMLElement.prototype.querySelector() и querySelectorAll().

Код на стороне клиента становится сложнее и объёмнее. Появляются многочисленные фреймворки, которые помогают держать этот хаос под контролем. Backbone, ember, angular и другие создали, чтобы помочь писать чистый, модульный код. Фреймворки уровня приложения — это тренд. Его дух присутствует в JS среде уже какое-то время. Не удивительно, что создатели браузеров решили обратить на него внимание.
Читать дальше →
Всего голосов 95: ↑89 и ↓6+83
Комментарии90

Обновить данные в ClickHouse без UPDATE: кейс IBS

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

Привет, Хабр! Меня зовут Антон, я – старший разработчик в отделе разработки баз данных в IBS. В этой статье я расскажу о том, как нашей командой была решена задача по сохранению в ClickHouse большого количества данных, генерируемых веб-приложением, с последующим получением сохранённых данных в агрегированном виде.

Решение задачи, описанной выше, было бы простым и вряд ли заслуживающим отдельной статьи на Хабре. Но наш случай представлял собой ряд нюансов: здесь есть технические дубли записей и бизнес-дубли (обновления), есть агрегированные данные и необходимость обновления агрегированных данных. А это уже пример не совсем типичного использования ClickHouse, которым мы и хотим поделиться.

Интересно? Переходите под кат.
Всего голосов 12: ↑12 и ↓0+12
Комментарии11

Продолжаем разбирать Caesar III© (Игровая механика)

Время на прочтение15 мин
Количество просмотров98K
Алгоритмы получения текстур игры Caesar III© и отрисовки города разобраны, осталась самая «сладкая» часть, которая притягивает «древнеримских архитекторов» уже больше 15 лет — игровая логика. Используя различные подходы к анализу игры, выношу на ваш суд результат этого небольшого исследования. Я заранее прошу прощения за большую статью, но, как говорится, слов из песни не выкинешь. В заключении будет несколько слов о судьбе исходников, восстановленных из исполняемого файла оригинальной игры.


Все гениальное просто
Всего голосов 114: ↑113 и ↓1+112
Комментарии26

Haskell. Задача о мудрецах и колпаках

Время на прочтение8 мин
Количество просмотров32K
Три мудреца поспорили, кто из них самый мудрый. Чтобы выяснить правду, каждый надел на голову колпак случайного цвета. Каждый мудрец видит цвета колпаков своих оппонентов, но не видит свой собственный. Побеждает тот, кто сможет определить цвет своего колпака.

Так получилось, что все трое вытянули колпаки белого цвета. Мимо проходящий прохожий сообщает им: «на одном из вас надет белый колпак». Через некоторое время самый умный из мудрецов воскликнул: «на мне белый колпак!!!».

Как он об этом догадался?
Существует определенная последовательность рассуждений, которая привела нашего мудреца к верному ответу. Мы попытаемся смоделировать эти рассуждения.
Читать дальше →
Всего голосов 29: ↑29 и ↓0+29
Комментарии38

Удивительный Angular

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

Awesome Angular



От переводчиков


Всем привет, с вами Максим Иванов и Дмитрий Сергиенков, и сегодня мы поговорим о новостях в мире Angular. Мы подготовили для вас наиболее интересные материалы и отобрали список вопросов, который вам должен понравиться. Отметим только, что если вы будете ждать от этой статьи ответа на вопрос "Чем Angular лучше других технологий?", то придется вас огорчить, у нас не будет ответа на него. Почему? Как правило, все мнения вида "Технология X лучше технологии Y" почти всегда не более, чем отражение точки зрения высказывающегося. Однако для тех, кто только начинает изучать этот фреймворк, мы постараемся объяснить, что дает вам эта технология и какую пользу она приносит. Также не проходите мимо и ответьте на опрос, самые популярные ответы будут отправлены Игорю Минару (ведущий разработчик команды Angular). Ну что же, приступим.

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

Работа с геолокацией в iOS 24/7

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



В последнее время, часто вижу вопрос:
Можно ли в iOS работать с геолокацией, когда приложение свернули и отправлять данные на сервер?

Это действительно возможно и совсем не сложно.
How to вместится в превью статьи.

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


Чтобы была какая-то конкретика, я предположил, что перед нами стоит задача написать вело-трекер. Со стороны пользователя это выглядит так:


  1. Скачиваю приложение
  2. Запускаю
  3. Регистрируюсь
  4. Нажимаю куда просят
  5. Закрываю
  6. Катаюсь
  7. Запускаю
  8. Вижу результат

p.s. финальный код здесь.

Любые совпадения с реально существующим приложением случайны
Всего голосов 16: ↑15 и ↓1+14
Комментарии11

Компьютерное зрение на примере приложения для IKEA. Часть 1

Время на прочтение8 мин
Количество просмотров46K
Готовился к очередному хакатону, решил обновить свои знания в области компьютерного зрения. В прошлый раз задачу распознавания номеров авто в видеопотоке я так и не смог решить быстро «в лоб». Сейчас, поразмыслив, решил немного упростить задачу. Было много идей, листал фотки в телефоне и наткнулся на привычный кейс для всех, кто бывал в магазине ikea — фотографию с чеком, где указан номер товара и его положение на складе самообслуживания.

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

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

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

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


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

У нас проблемы с промисами

Время на прочтение16 мин
Количество просмотров240K
Разрешите представить вам перевод статьи Нолана Лоусона «У нас проблемы с промисами», одной из лучших по теме из тех, что мне доводилось читать.

У нас проблемы с промисами


Дорогие JavaScript разработчики, настал момент признать это — у нас проблемы с промисами.

Нет, не с самими промисами. Их реализация по спецификации A+ превосходна. Основная проблема, которая сама предстала передо мной за годы наблюдений за тем, как многие программисты борются с богатыми на промисы API, заключается в следующем:

— Многие из нас используют промисы без действительного их понимания.

Если вы мне не верите, решите такую задачку:

Вопрос: В чем разница между этими четырьмя вариантами использования промисов?

doSomething().then(function () {
  return doSomethingElse();
});

doSomething().then(function () {
  doSomethingElse();
});

doSomething().then(doSomethingElse());

doSomething().then(doSomethingElse);

Узнайте решение задачи
Всего голосов 139: ↑136 и ↓3+133
Комментарии121

Навигатор 2ГИС: Экстраполяция позиции автомобиля

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


В приложении 2ГИС теперь есть навигатор. Мы научились «ехать» по треку, озвучивать манёвры, автоматически перестраивать маршрут, рассчитывать время в пути, доводить пользователя до входа в здание или организацию, учитывая заборы и шлагбаумы, — и всё это в честном офлайне. Пробки (вот разве что для них нужен интернет), разведённые мосты и перекрытые улицы учитываем давно. Пока в нашем навигаторе — необходимый минимум. Чуть позже научим его предупреждать о слишком высокой скорости, лежачих полицейских и камерах ГИБДД, настроим ночной режим, сделаем маршруты по платным и грунтовым дорогам опциональными. Чтобы воспользоваться им, нужно обновить 2ГИС в своем смартфоне или скачать в AppStore или Windows Store. Для Android обновление выходит постепенно, начиная с 22 августа (будет доступно на всю аудиторию к сентябрю).

А сегодня расскажем, как навигатор 2ГИС предугадывает положение автомобиля и плавно перемещает стрелочку по маршруту. Ведь именно качество ведения пользователя по маршруту определяет эргономику интерфейса любого современного навигатора, простоту ориентирования на местности и своевременность совершения манёвров.
Читать дальше →
Всего голосов 61: ↑60 и ↓1+59
Комментарии91

Динамические очереди звонков в Asterisk

Время на прочтение5 мин
Количество просмотров20K
Добрый день уважаемые читатели сего сайта.
Сегодня я хотел бы рассказать может быть о странном способе управления очередями в asterisk.
Итак.

Дано:
1. сервер asterisk1.8.32.3
2. sip клиенты(35 номеров). Нумерация двухзначная. Первый номер 11, последний 46.
3. Очереди звонков. При поступлении звонка на городской номер, проговаривается меню и предлагается нажать на цифры от 1 до 4. при нажатии звонок перебрасывается в очередь 1,2,3 или 4 соответственно.
Читать дальше →
Всего голосов 9: ↑5 и ↓4+1
Комментарии11

Asterisk: использование AEL в повседневной жизни

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

Сегодня поговорим об интеграции Asterisk'a с CRM системой. Со стороны CRM вопрос рассматривать не будем, достаточно знать, что CRM хочет знать о всех звонках (как входящих, исходящих, так и переведенных)

Что мы хотим получить:

Для каждого звонка должны отправляться в CRM 2 события: start и stop. Естественно с кучей аргументов.
Читать дальше →
Всего голосов 8: ↑8 и ↓0+8
Комментарии3

Asterisk и информация о входящих звонках в браузере через Notifications

Время на прочтение6 мин
Количество просмотров22K
В нашей компании используется телефон 8800, для того, чтобы клиенты могли сделать заказ без доступа к сайту. Для обслуживания большинства входящих звонков используется call-центр, а также при необходимости происходит перенаправление на внутреннего сотрудника.

Для удобства сотрудников и возможности персонализированного ответа была внедрена система распознавания входящего звонка по внутренней базе клиентов.
Читать дальше →
Всего голосов 9: ↑9 и ↓0+9
Комментарии21

Autofill: чего не знают веб-разработчики, хотя должны знать

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


Многим известно, что в мобильной версии Safari можно отсканировать свою банковскую карту. Но многие ли разработчики умеют создавать формы, поддерживающие эту возможность?

Готов поспорить, что немногие.

Дело осложняет полное отсутствие документации от Apple по работе этой функции. Но тут есть один момент. Функция сканирования банковских карт является подмножеством автозаполнения — браузерного функционала, давно игнорируемого веб-разработчиками. Понятно, почему они не уделяли ему должного внимания: когда регулярно заполняешь форму тестовыми данными, автозаполнение обычно мешает. Но для наших пользователей это важная функция. В Google выяснили, что при использовании автозаполнения пользователи на 30% быстрее заполняют формы. Так что давайте изучим работу автозаполнения, разберёмся, как создавать формы, поддерживающие кросс-браузерное автозаполнение, и воспользуемся преимуществами новых возможностей наподобие сканирования банковских карт.
Читать дальше →
Всего голосов 40: ↑39 и ↓1+38
Комментарии12

Аарон Леви: Разработка B2B-продуктов

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


Cтэнфордский курс CS183B: How to start a startup. Стартовал в 2012 году под руководством Питера Тиля. Осенью 2014 года прошла новая серия лекций ведущих предпринимателей и экспертов Y Combinator:


Первая часть курса
Читать дальше →
Всего голосов 16: ↑14 и ↓2+12
Комментарии3

Ресайз картинок в браузере. Все очень плохо

Время на прочтение10 мин
Количество просмотров104K
Если вы когда-нибудь сталкивались с задачей ресайза картинок в браузере, то вы наверное знаете, что это очень просто. В любом современном браузере есть такой элемент, как холст (<canvas>). На него можно нанести изображение нужных размеров. Пять строчек кода и картинка готова:

function resize(img, w, h) {
  var canvas = document.createElement('canvas');
  canvas.width = w;
  canvas.height = h;
  canvas.getContext('2d').drawImage(img, 0, 0, w, h);
  return canvas;
}

Из холста картинку можно сохранить в JPEG и, например, отправить на сервер. Можно было на этом закончить статью, но сперва давайте взглянем на результат. Если вы поставите рядом такой холст и обычный элемент <img>, в который загружена та же картинка (исходник, 4 Мб), то вы увидите разницу.

img
Читать дальше →
Всего голосов 156: ↑152 и ↓4+148
Комментарии90

Взаимодействие php-soap на linux с авторизацией по сертификатам с использованием алгоритмов ГОСТ

Время на прочтение8 мин
Количество просмотров23K
С криптографией я сталкивался ранее, приходилось разворачивать удостоверяющий центр на КриптоПро в свое время, так что общие представления о том что такое закрытые и открытые ключи и сертификаты у меня имелось, но вот о том как все это работает в Linux представления особого не было.
Встала задача обеспечить взаимодействие со службами РосМинздрава, а именно — с федеральным регистром медработников по протоколу SOAP. Со стороны клиента система на CentOS и работающими службами на PHP, со стороны сервера — SOAP-сервис с авторизацией по сертификатам с использованием ГОСТ алгоритмов. В наличии была флешка с закрытым ключом, сформированным удостоверяющим центром РосМинздрава и сертификат этого ключа.
После анализа ситуации по использованию ГОСТ алгоритмов шифрования в мире Linux выяснено что за последние годы здесь есть хорошее движение вперед, но все таки не совсем все хорошо. Итак, для того чтобы заставить расширение php-soap прозрачно понимать алгоритмы ГОСТ, а также использовать сертификаты и ключи выданные РосМинздравом нужно сделать следующее:

1. Обновить в дистрибутиве библиотеку OpenSSL до версии не ниже 1.0.1с и настроить поддержку ГОСТ.
2. Преобразовать выданный ключ и сертификат в формат, понятный OpenSSL. Проверить работу OpenSSL.
3. Подправить расширение OpenSSL в PHP и перекомпилировать сам PHP. Протестировать работу SOAP на PHP.

Итак, приступим.
Читать дальше →
Всего голосов 28: ↑27 и ↓1+26
Комментарии8
1

Информация

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