Pull to refresh
-6
0
Send message

Self-hosted EXPLAIN: наглядно и безопасно

Reading time2 min
Views7.8K

С момента первой же хабрапубликации о возможностях нашего сервиса визуализации планов запросов PostgreSQL explain.tensor.ru (а было это уже больше 2 лет назад) пользователи задавали резонный вопрос: "Все у вас круто, но у нас в запросах и планах есть коммерческая инфа, которую отправлять куда-то наружу низзя... Можно как-то ваш сервис развернуть на своей площадке?"

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

Читать далее
Total votes 32: ↑32 and ↓0+32
Comments9

Псс, парень… индекс нужен?

Reading time8 min
Views21K

Самый больной вопрос для любого разработчика, которому приходится вычитывать данные из базы: "Как сделать мой запрос быстрее?". Классический ответ - необходимо создать подходящий индекс. Но куда именно его стоит "накатывать", да и как вообще он должен выглядеть?..

Мы научили наш сервис визуализации планов PostgreSQL отвечать на эти вопросы, и под катом расскажем, чем именно он руководствуется в своих рекомендациях.

Читать далее
Total votes 22: ↑22 and ↓0+22
Comments24

Настраиваем профиль IT специалиста в LinkedIn

Reading time10 min
Views50K

Данная короткая статья поможет IT коллегам из русскоязычного сегмента интернета заполнить свой профиль в LinkedIn. Заполненный профиль дает возможность в случае необходимости оперативно получить предложения о работе и оставаться в курсе актуальных новостей профессиональной сферы.

Читать далее
Total votes 19: ↑14 and ↓5+11
Comments5

Маленький и быстрый BERT для русского языка

Reading time9 min
Views59K

BERT – нейросеть, способная неплохо понимать смысл текстов на человеческом языке. Впервые появившись в 2018 году, эта модель совершила переворот в компьютерной лингвистике. Базовая версия модели долго предобучается, читая миллионы текстов и постепенно осваивая язык, а потом её можно дообучить на собственной прикладной задаче, например, классификации комментариев или выделении в тексте имён, названий и адресов. Стандартная версия BERT довольно толстая: весит больше 600 мегабайт, обрабатывает предложение около 120 миллисекунд (на CPU). В этом посте я предлагаю уменьшенную версию BERT для русского языка – 45 мегабайт, 6 миллисекунд на предложение. Она была получена в результате дистилляции нескольких больших моделей. Уже есть tinybert для английского от Хуавея, есть моя уменьшалка FastText'а, а вот маленький (англо-)русский BERT, кажется, появился впервые. Но насколько он хорош?

Читать далее
Total votes 57: ↑57 and ↓0+57
Comments17

Автоматический анализ документов

Reading time6 min
Views13K

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

Читать далее
Total votes 7: ↑7 and ↓0+7
Comments2

Использование диаграммы вариантов использования UML при проектировании программного обеспечения

Reading time10 min
Views356K

Проектирование – один из важных шагов при разработке программы, который очень часто игнорируется начинающими разработчиками. Обычно они пытаются удержать всё в голове или, в лучшем случае, записать некоторые важные сведения на листе бумаги. Как результат, у них нет чёткого плана дальнейших действий, и проект может быть отложен в долгий ящик.

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

Читать далее
Total votes 8: ↑6 and ↓2+9
Comments10

Где покупать радиодетали и компоненты? Часть I: Россия

Reading time4 min
Views168K
Давайте поговорим о покупке электронных компонентов в интернете. Я собрал список интересных отечественных и зарубежных магазинов:

а) которые заточены под любителей DIY и делают свои собственные крутые продукты: конструкторы, модули, обучающие курсы и т.д.;

б) для профи, с широкой номенклатурой электронных компонентов.

Продолжение: Часть II: зарубежные магазины

Кадр из к/ф «Иван Васильевич меняет профессию»
Продолжение
Total votes 130: ↑120 and ↓10+110
Comments158

Есть ли жизнь после CentOS?

Reading time12 min
Views88K

Под конец и без того нелегкого 2020 года Red Hat преподнесла всем поклонникам CentOS весьма неожиданный «подарок», объявив о радикальном сокращении EOL восьмой версии дистрибутива и последующем отказе от дальнейшего развития проекта. Пользователи операционной системы, на протяжении многих лет занимавшей третье место по популярности в мире, оказались на распутье. Что выбрать в такой ситуации? Стать «вечным бета-тестером», перейдя на CentOS Stream? Выделить бюджет на покупку лицензии Red Hat Enterprise Linux? Или быть может попробовать одно из конкурирующих решений?
Читать дальше →
Total votes 30: ↑29 and ↓1+37
Comments45

Внедрение зависимостей в GO

Reading time12 min
Views24K

Источник изображения

Идея внедрения зависимости проста: объект, зависящий от другого объекта, делегирует управление его жизненным циклом внешнему коду. Однако её применение создаёт дополнительное требование - зависимостями нужно управлять. О механизмах, помогающих в этом, и их реализациях в Go - в этой статье.

Читать далее
Total votes 15: ↑10 and ↓5+12
Comments14

Как реализовать интеграцию с ЕСИА на Java без лишних проблем

Reading time12 min
Views14K
Долгое время основным способом идентификации граждан был обычный паспорт. Ситуация изменилась, когда в 2011 году по заказу Минкомсвязи была внедрена Единая система идентификации и аутентификации (ЕСИА), ― она позволила распознавать личность человека и получать о ней данные в режиме онлайн.

Благодаря внедрению ЕСИА государственные и коммерческие организации, разработчики и владельцы онлайн-сервисов получили возможность ускорить и сделать более безопасными операции, связанные с вводом и верификацией пользовательских данных. Русфинанс Банк также решил использовать потенциал системы и при доработке сервиса по оформлению кредита онлайн (банк специализируется на автокредитовании) реализовал интеграцию с платформой.

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

В данной статье мы постараемся рассказать про основные моменты и методические указания, которые важно знать тем, кто хочет самостоятельно реализовать интеграцию с ЕСИА, а также приведём фрагменты кода на языке Java, которые помогут преодолеть трудности при разработке (часть реализации опущена, но общая последовательность действий ясна).

Надеемся, наш опыт поможет Java-разработчикам (и не только) сэкономить массу времени при разработке и ознакомлении с методическими рекомендациями Минкомсвязи.

Читать дальше →
Total votes 11: ↑11 and ↓0+11
Comments4

CRM: не играйте в конструкторы, это больно

Reading time9 min
Views8.3K
У сотрудника был конструктор Lego с интересной особенностью: он достался ему без инструкции по сборке. По идее, это должна была быть вполне симпатичная машинка с рабочими дверцами и прочими интересными фишечками, но собрать её без инструкции невозможно: куча одинаковых блоков и кубиков не оставляли шансов сделать безошибочно. Одно время конструктор работал антистрессом: во время телефонных переговоров и совещаний сотрудник делал из кубиков произвольных жирафов, динозавров и домики. В итоге инструкцию скачали на сайте, машинка благополучно встала на колёса, динозаврики с совещаний пропали и об этой истории все забыли. 

А буквально пару недель назад этот конструктор вспомнили все — причём именно применительно к CRM. Угадали, почему?


В разработке абсолютно то же самое
Читать дальше →
Total votes 23: ↑16 and ↓7+24
Comments26

Как работает доказательство Гёделя

Reading time8 min
Views74K

Его теоремы о неполноте разгромили поиск математической теории всего. Почти сто лет спустя мы всё ещё пытаемся осмыслить последствия этого.




В 1931 году австрийский логик Курт Гёдель провернул, вероятно, один из самых потрясающих интеллектуальных трюков в истории.

Математики той эпохи искали неколебимые основы математики: набор базовых фактов, аксиом, которые были бы непротиворечивыми и полными, играя роль строительных блоков всех математических истин.

Однако шокирующие теоремы Гёделя о неполноте, опубликованные им всего лишь в 25-летнем возрасте, разбили эту мечту. Он доказал, что любой набор аксиом, который вы можете предложить на роль основы математики, неизбежно будет неполным. Всегда найдутся истинные утверждения, касающиеся чисел, которые невозможно будет доказать при помощи этих аксиом. Он также показал, что ни один набор аксиом нельзя использовать для доказательства их собственной непротиворечивости.
Читать дальше →
Total votes 81: ↑76 and ↓5+99
Comments346

А давайте заставим пользователя использовать безопасный пароль

Reading time5 min
Views48K

Когда-то для защиты пароля было достаточно иметь злую бабушку на входе в машинный зал

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

Если у вас есть пользователи и они авторизуются по паролю, я предлагаю еще раз посмотреть на свежие рекомендации от таких организаций как National Institute of Standards and Technologies и National Cyber Security Centre.

В частности, требовать ротации паролей уже не модно. И требовать определенных символов в лучших традициях анекдота про «1ГРЕБАНАЯрозоваяроза» тоже. Давайте пробежимся по основным тезисам и попробуем сделать пользователям удобнее и безопаснее.
Читать дальше →
Total votes 74: ↑71 and ↓3+104
Comments210

Переезжаем на ClickHouse: 3 года спустя

Reading time19 min
Views22K
Три года назад Виктор Тарнавский и Алексей Миловидов из Яндекса на сцене HighLoad++ рассказывали, какой ClickHouse хороший, и как он не тормозит. А на соседней сцене был Александр Зайцев с докладом о переезде на ClickHouse с другой аналитической СУБД и с выводом, что ClickHouse, конечно, хороший, но не очень удобный. Когда в 2016 году компания LifeStreet, в которой тогда работал Александр, переводила мультипетабайтовую аналитическую систему на ClickHouse, это была увлекательная «дорога из желтого кирпича», полная неведомых опасностей — ClickHouse тогда напоминал минное поле.

Три года спустя ClickHouse стал гораздо лучше — за это время Александр основал компанию Altinity, которая не только помогает переезжать на ClickHouse десяткам проектов, но и совершенствует сам продукт вместе с коллегами из Яндекса. Сейчас ClickHouse все еще не беззаботная прогулка, но уже и не минное поле.

Александр занимается распределенными системами с 2003 года, разрабатывал крупные проекты на MySQL, Oracle и Vertica. На прошедшей HighLoad++ 2019 Александр, один из пионеров использования ClickHouse, рассказал, что сейчас из себя представляет эта СУБД. Мы узнаем про основные особенности ClickHouse: чем он отличается от других систем и в каких случаях его эффективнее использовать. На примерах рассмотрим свежие и проверенные проектами практики по построению систем на ClickHouse.


Total votes 35: ↑35 and ↓0+35
Comments9

Пишем движок полнотекстового поиска на Go

Reading time8 min
Views18K
Полнотекстовый поиск — один из тех инструментов, которые мы используем практически каждый день, когда ищем какую-то информацию в интернете. Full-Text Search (FTS) — это метод поиска текста в коллекции документов. Документ может ссылаться на веб-страницу, газетную статью, сообщение электронной почты или любой структурированный текст.

Сегодня мы собираемся написать собственный движок FTS. К концу этой статьи он сможет выполнять поиск по миллионам документов менее чем за миллисекунду. Начнём с простых поисковых запросов, таких как «Выдать все документы со словом cat», а потом расширим движок для поддержки более сложных логических запросов.

Примечание: самым известным движком полнотекстового поиска является Lucene (а также Elasticsearch и Solr, построенные на его основе).
Читать дальше →
Total votes 36: ↑35 and ↓1+45
Comments23

Новый API Go для Protocol Buffers

Reading time7 min
Views5K
В преддверии старта курса «Разработчик Golang» подготовили для вас перевод статьи из официального блога Golang.




Введение


Мы рады объявить вам о релизе major ревизии API Go для protocol buffers — формата обмена данными Google, не зависящего от языка.

Предпосылки для обновления API


Первые биндинги protocol buffer для Go были представлены Робом Пайком в марте 2010 года. Go 1 не будет выпущен еще два года.

За десять лет, прошедших с момента первого релиза, пакет рос и развивался вместе с Go. Выросли и запросы его пользователей.
Читать дальше →
Total votes 8: ↑4 and ↓40
Comments1

Нейронки «с нуля», или Как мы делали помощника для наших диспетчеров техподдержки

Reading time8 min
Views9.9K
Привет, Хабр! Меня зовут Александр Соловьев, я программист компании DataLine.

Хочу поделиться опытом внедрения модных нынче нейронных сетей в нашей компании. Все началось с того, что мы решили строить свой Service Desk. Зачем и почему именно свой, можно почитать моего коллегу Алексея Волкова (cface) тут

Я же расскажу о недавнем новшестве в системе: нейросеть в помощь диспетчеру первой линии поддержки. Если интересно, добро пожаловать под кат.


Читать дальше →
Total votes 15: ↑15 and ↓0+15
Comments5

Инструменты реализации API-сервера на Golang с автогенерацией кода и документации

Reading time13 min
Views34K

Я бы хотел в этой статье рассказать вам о том как можно быстро и просто сделать веб сервер на языке Golang с документацией к нему. И о том какие есть подходы и инструменты для их реализации


Сегодня мы разберем эти готовые инструменты:


Читать дальше →
Total votes 8: ↑7 and ↓1+11
Comments0

Настройка сервера для развертывания Rails приложения при помощи Ansible

Reading time14 min
Views7.1K

Не так давно мне было необходимо написать несколько ansible playbooks для подготовки сервера к деплою rails приложения. И, на удивление, я не нашел простого пошагового мануала. Копировать чужой плейбук без понимая происходящего я не хотел и в итоге пришлось читать документацию, собирая все самостоятельно. Возможно кому-то я смогу помочь этот процесс ускорить при помощи данной статьи.


Первым делом стоит понимать, что ansible предоставляет вам удобный интерфейс для выполнения заранее определенного списка действий на удаленном сервере (серверах) через SSH. Тут нет никакой магии, нельзя поставить плагин и получить из коробки zero downtime деплой своего приложения с докером, мониторингом и прочими плюшками. Для того чтобы написать плейбук вы должны знать что именно вы хотите сделать и как это сделать. Поэтому меня не устраивают готовые плейбуки с гитхаба, или статьи вида: “Скопируйте и запустите, — будет работать”.

Читать дальше →
Total votes 13: ↑13 and ↓0+13
Comments14

Information

Rating
Does not participate
Location
Лимассол, Government controlled area, Кипр
Registered
Activity