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

.NET / Rust Developer

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

Как выбрать NewSQL-СУБД для вашей компании

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

Привет! Меня зовут Пётр, я менеджер по отказоустойчивости в QIWI. В этом посте мы поговорим про выбор новых классов продуктов. Как-то раз мы с одним разработчиком из другой компании стали обсуждать, почему бы не выбрать для работы какую-то распределенную СУБД, поддерживающую SQL? Из этой дискуссии родился мой доклад для нашей QIWI Server Party. Представляю вам его текстовую версию.

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

Вырываемся в top10. Бот для игры в телеграме

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

Вырываемся в top10. Бот для игры в Telegram


Предыстория


Все началось с того, что мне прислали ссылку на бота в Telegram с предложением поиграть.
Выглядит он примерно так.



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


Поехали


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


Структура базы выглядит так.


CREATE TABLE IF NOT EXISTS words (
    word VARCHAR(225) UNIQUE NOT NULL,
    length INTEGER NOT NULL
);

  • word — из название понятно, что это хранимое буквенное значение слова.
  • length — символьная длина.

Структура есть, для ее заполнения воспользовался списком существительных русских слов.


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


Так же само создание файла базы и создание таблицы реализовываются в init()


func init() {
    var err error
    connection, err = sql.Open("sqlite3", "./words.db")
    if err != nil {
        log.Fatalf("Failed connection: %v", err)
    }
    _, err = connection.Exec(`CREATE TABLE IF NOT EXISTS words (word VARCHAR(225) UNIQUE NOT NULL, length INTEGER NOT NULL);`)
    if err != nil {
        log.Fatalf("Failed create database table words: %v", err)
    }
}
Читать дальше →
Всего голосов 20: ↑18 и ↓2+16
Комментарии12

Highload++: Как помочь ERP-системе справиться с 500 000 запросов в секунду

Время на прочтение11 мин
Количество просмотров19K
Мы в X5 обрабатываем много данных в ERP-системе. Есть мнение, что больше нас в SAP ERP и SAP BW в России не обрабатывает никто. Но есть еще один момент – число операций и нагрузка на эту систему увеличивается быстро. 3 года мы «сражались» за производительность нашего ERP-тяжеловеса, набили немало шишек, а какими методами их лечили, рассказываем под катом.

image
Читать дальше →
Всего голосов 36: ↑35 и ↓1+34
Комментарии32

Контейнерно-ориентированное интеграционное тестирование

Время на прочтение5 мин
Количество просмотров6.2K
Интеграционное тестирование остается важной частью производственного цикла CI/CD, в том числе при разработке контейнерных приложений. Интеграционные тесты, как правило, представляют собой не очень продолжительные, но очень ресурсоемкие рабочие нагрузки. Посмотрим, как можно объединить технологии и инструменты интеграционного тестирования со средствами оркестрации контейнеров (в частности, с Red Hat OpenShift), чтобы ускорить тестирование, повысить его динамичность, и более эффективно использовать ресурсы.



Создадим интеграционные BDD-тесты (behavior-driven development – разработка через поведение) с помощью Cucumber, Protractor и Selenium и выполним их на платформе OpenShift, используя Zalenium.
Читать дальше: Контейнерно-ориентированное интеграционное тестирование
Всего голосов 15: ↑15 и ↓0+15
Комментарии2

Octopus Deploy. Улучшаем мир в кровавом энтерпрайзе

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


Сегодня я хочу рассказать о системе деплоя Octopus Deploy. На данный момент на Хабре есть всего одна вводная статья на эту тему, поэтому в своем материале я хочу расширить описание системы, подробнее рассказать о таких важных понятиях как «жизненные циклы» (lifecycles) и «каналы» (channels), а также о том, как мы внедрили и используем Octopus в своей работе.
Читать дальше →
Всего голосов 10: ↑10 и ↓0+10
Комментарии9

Оптимизация веб-серверов для повышения пропускной способности и уменьшения задержки

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


Привет! Меня зовут Макс Матюхин, я работаю в SRV-команде Badoo. Мы в Badoo не только активно пишем посты в свой блог, но и внимательно читаем блоги наших коллег из других компаний. Недавно ребята из Dropbox опубликовали шикарный пост о различных способах оптимизации серверных приложений: начиная с железа и заканчивая уровнем приложения. Его автор – Алексей Иванов – дал огромное количество советов и ссылок на дополнительные источники информации. К сожалению, у Dropbox нет блога на Хабре, поэтому я решил перевести этот пост для наших читателей.

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

Как пропатчить K̶D̶E̶ TCP-стек под FreeBSD

Время на прочтение10 мин
Количество просмотров14K
Когда стоит вопрос выбора между проприетарным и открытым программным обеспечением, часто в пользу последнего приводят следующий аргумент: при необходимости можно изменить исходники под нужды своего проекта, или исправить ошибку прямо сейчас, а не дожидаясь месяцами реакции вендора. Зачастую это соображение является оторванным от практики — куда проще исправить SQL запрос, чем оптимизировать SQL-планировщик, или поменять проблемное оборудование вместо того, чтобы искать и исправлять ошибку в драйвере. Тем не менее, иногда именно открытость кода позволяет избежать потенциальных убытков и перерасхода вычислительных ресурсов. Хочу рассказать об одном из таких кейсов, случившемся за время моей работы в Advanced Hosting
Читать дальше →
Всего голосов 62: ↑61 и ↓1+60
Комментарии35

Хайлайтинг больших текстовых полей в ElasticSearch

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

В декабре 2016 года мы с товарищем начали заниматься новым проектом — системой сбора-индексации-поиска по документам. Система построена вокруг ElasticSearch (далее — ES), который мы используем как основной движок для полнотекстового поиска.


Ценными данными, приобретенными в ходе работы над проектом мы бы хотели поделиться с читателями в цикле статей про ES. Начнём с основы любого поисковика — подсветки результатов поиска (далее — хайлайтинг).


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


Одним из ключевых требований к нашей поисковой системе была возможность быстро и эффективно работать с большими файлами (более 100 Мб). В статье мы расскажем как добиться высокой производительности от ES при хайлайтинге больших полей документа.


На скриншоте ниже показано как работает подсветка результатов поиска в нашем проекте.


Пример результатов поиска с хайлайтом

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

Тестируем сервер Fujitsu PRIMERGY RX2530 M2

Время на прочтение5 мин
Количество просмотров9.9K
Привет Хабр! Предлагаем вашему вниманию краткий обзор универсального стоечного сервера PRIMERGY RX2530 M2, обладающего широкими возможностями для расширения ресурсов и достойной производительностью для решения различных задач, требующих использования серверных систем. Тестирование сервера было выполнено специалистами аналитического интернет-портала IT Pro. Надеемся узнать ваше мнение о продукте и готовы ответить на вопросы в комментариях.
Читать дальше →
Всего голосов 12: ↑11 и ↓1+10
Комментарии15

История моего стартапа: 500000 пользователей за 5 дней на стодолларовом сервере

Время на прочтение11 мин
Количество просмотров35K
Похоже, все в мире стартапов согласны с тем, что первые версии приложений должны представлять собой минимально жизнеспособный продукт (MVP, Minimal Viable Product), создавая который можно не особо заботиться о его масштабировании с технической точки зрения. Мне много раз доводилось слышать о том, что самое главное в подобных делах – поскорее выпустить нечто работающее. И, до тех пор, пока бизнес-модель нормально функционирует в условиях роста клиентской базы – всё нормально. А тратить время и деньги на то, чтобы сделать систему, которая сможет выдержать внезапный наплыв пользователей, не стоит. Беспокоиться нужно лишь о проверке предположений, об оценке рынка и о раскрутке бизнеса. Масштабируемость – это то, что можно отложить на потом. К несчастью, такая вот слепая вера в шаблонные идеи уже не раз приводила к оглушительным провалам. Pokémon GO, и, в частности, связанные с этим проектом приложения, служат напоминанием об этом.


Читать дальше →
Всего голосов 31: ↑22 и ↓9+13
Комментарии13

ASP.NET MVC, WebApi, SignalR и UnityContainer

Время на прочтение15 мин
Количество просмотров31K
Известно, что все хорошие джедаи используют внедрение зависимости (перевод) в своих проектах, это увеличивает концентрацию мидихлориан в крови и тестируемость кода в приложении. В данной статье я хочу рассмотреть некоторые аспекты использования UnityContainer в ASP.NET приложении, а именно, использование инжекции зависимостей через конструкторы контроллеров в ASP.NET MVC и WebApi и хабов в SignalR. Пример приложения присутствует.

Dependency Injection - Golf analogy
Читать дальше →
Всего голосов 19: ↑18 и ↓1+17
Комментарии13

Информация

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